On Thursday, August 7, 2025, Dominique Devienne <ddevienne@gmail.com> wrote:
What's not nice is in the way it failed IMHO. I guess I persist it's not a user friendly message :)
Then write the error message you would have liked to see.
Can you overload a function solely by changing an argument name?
No, the signature is only the name and input argument types.
If not, as I suspect, then function lookup doesn't strictly depend on argument names (like in C++). So the function did exist, with the correct "signature" (ignoring argument names). And I was "just" using the wrong arg-name. That tripped me up.
How is it “just” an argument name when you are using named argument syntax?
David J.
(2025-08-07 15:58:24) postgres=# select fx(b=>10); ERROR: function fx(b => integer) does not exist LINE 1: select fx(b=>10); ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts.
The error message and hint is simillary unfriendly like for a case with unnamed parameters. I am afraid that implementing a more friendly error message can slow down the query execution :-/. Now we raise errors when we know, so we didn't find a good signature, but we don't know what is wrong, so it is difficult to raise errors in the sense that the name of the argument is wrong.