diff --git a/src/common/pl/plpgsql/src/gram.y b/src/common/pl/plpgsql/src/gram.y index 0183dfc3d..1ee23aff6 100755 --- a/src/common/pl/plpgsql/src/gram.y +++ b/src/common/pl/plpgsql/src/gram.y @@ -7249,7 +7249,9 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate InsertErrorMessage(message, plpgsql_yylloc); ereport(errstate, (errcode(ERRCODE_DUPLICATE_FUNCTION), - errmsg("function \"%s\" isn't exclusive ", sqlstart))); + errmsg("function \"%s\" isn't exclusive ", sqlstart), + errdetail("The overload function must be package function or function with PACKAGE keyword.And do not mix overload functions of O style and PG style."), + errcause("The overload function must be package function."))); } } diff --git a/src/test/regress/expected/out_param_func_overload.out b/src/test/regress/expected/out_param_func_overload.out index dd1512266..a74eef8cf 100644 --- a/src/test/regress/expected/out_param_func_overload.out +++ b/src/test/regress/expected/out_param_func_overload.out @@ -327,6 +327,14 @@ drop view v1; drop package pac_test_1; NOTICE: drop cascades to function out_param_func_overload.f_test_1(integer,integer,integer) drop table t1; +create or replace procedure proc_test is +begin +perform count(1); +end; +/ +ERROR: function "count" isn't exclusive +DETAIL: The overload function must be package function or function with PACKAGE keyword.And do not mix overload functions of O style and PG style. +CONTEXT: compilation of PL/pgSQL function "proc_test" near line 1 --clean reset behavior_compat_options; drop schema out_param_func_overload cascade; diff --git a/src/test/regress/sql/out_param_func_overload.sql b/src/test/regress/sql/out_param_func_overload.sql index 1710d96db..4e3796d57 100644 --- a/src/test/regress/sql/out_param_func_overload.sql +++ b/src/test/regress/sql/out_param_func_overload.sql @@ -262,6 +262,11 @@ drop view v1; drop package pac_test_1; drop table t1; +create or replace procedure proc_test is +begin +perform count(1); +end; +/ --clean reset behavior_compat_options;