We have been working on issue #8007. After our analysis, we found that the length and scale of the argument's data type are not stored in the database server, making it difficult to fetch. In the debugger, pgAdmin typecasts the provided value to its data type when calling the function, which is causing the issue.
If we typecast the value to a character without specifying the length, it is treated as a character (1) (character of length 1). For example, the output ofSELECT 'pgadmin', 'pgadmin'::character;is different.
There are two solutions we can consider:
Do not typecast if the data type is character.
Typecast tovarcharwhen the data type is character.
Please provide your suggestions which solution looks good to you.
Why not include the length in the cast? We know what the input string is, so can't we just do the equivalent of:
'pgadmin'::character(7);
Just to confirm, this will be only for the character data type?