Commit 0903bbda authored by Peter Eisentraut's avatar Peter Eisentraut

Add separate error message for procedure does not exist

While we probably don't want to split up all error messages into
function and procedure variants, this one is a very prominent one, so
it's helpful to be more specific here.
parent eb270b00
...@@ -542,14 +542,24 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs, ...@@ -542,14 +542,24 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
if (is_column) if (is_column)
return NULL; return NULL;
ereport(ERROR, if (proc_call)
(errcode(ERRCODE_AMBIGUOUS_FUNCTION), ereport(ERROR,
errmsg("function %s is not unique", (errcode(ERRCODE_AMBIGUOUS_FUNCTION),
func_signature_string(funcname, nargs, argnames, errmsg("procedure %s is not unique",
actual_arg_types)), func_signature_string(funcname, nargs, argnames,
errhint("Could not choose a best candidate function. " actual_arg_types)),
"You might need to add explicit type casts."), errhint("Could not choose a best candidate procedure. "
parser_errposition(pstate, location))); "You might need to add explicit type casts."),
parser_errposition(pstate, location)));
else
ereport(ERROR,
(errcode(ERRCODE_AMBIGUOUS_FUNCTION),
errmsg("function %s is not unique",
func_signature_string(funcname, nargs, argnames,
actual_arg_types)),
errhint("Could not choose a best candidate function. "
"You might need to add explicit type casts."),
parser_errposition(pstate, location)));
} }
else else
{ {
...@@ -591,6 +601,15 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs, ...@@ -591,6 +601,15 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
"after all regular arguments of the aggregate."), "after all regular arguments of the aggregate."),
parser_errposition(pstate, location))); parser_errposition(pstate, location)));
} }
else if (proc_call)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_FUNCTION),
errmsg("procedure %s does not exist",
func_signature_string(funcname, nargs, argnames,
actual_arg_types)),
errhint("No procedure matches the given name and argument types. "
"You might need to add explicit type casts."),
parser_errposition(pstate, location)));
else else
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_FUNCTION), (errcode(ERRCODE_UNDEFINED_FUNCTION),
......
CALL nonexistent(); -- error CALL nonexistent(); -- error
ERROR: function nonexistent() does not exist ERROR: procedure nonexistent() does not exist
LINE 1: CALL nonexistent(); LINE 1: CALL nonexistent();
^ ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts. HINT: No procedure matches the given name and argument types. You might need to add explicit type casts.
CALL random(); -- error CALL random(); -- error
ERROR: random() is not a procedure ERROR: random() is not a procedure
LINE 1: CALL random(); LINE 1: CALL random();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment