To whom it may concern,
Some functions if they are missing the correct arguments give vague error messages while others give specific ones.
Specific error message example query 1:
SELECT sum();
Specific error message example output 1:
ERROR: function sum() does not exist
LINE 1: SELECT sum();
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Specific error message example query 2:
SELECT sum();
Specific error message example output 2:
ERROR: function lower() does not exist
LINE 1: SELECT lower();
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Vague error message example query 1:
SELECT nullif();
Vague error message example output 1:
ERROR: syntax error at or near ")"
LINE 1: SELECT nullif();
^
Vague error message example query 2:
SELECT nullif(1);
Vague error message example output 2:
ERROR: syntax error at or near ")"
LINE 1: SELECT nullif(1);
^
Vague error message example query 1:
SELECT coalesce();
Vague error message example output 1:
ERROR: syntax error at or near ")"
LINE 1: SELECT coalesce();
^
These examples it is clear the function is the issue, but in my actual query there were many parentheses nearby so I thought I had mismatched parentheses for a while and it sent me hunting for the wrong thing wasting precious time on a production bugfix mid-crisis. I do not know if any other function besides NULLIF and COALESCE are affected by this. They are just the two I happened to test.
Best,
Luke