From 51657504667c60b4bbaf3d4ba6d918f614898509 Mon Sep 17 00:00:00 2001 From: wangfeihuo Date: Wed, 4 Sep 2024 14:59:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84out=5Fparam=5Ffunc=5Foverload?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=E4=B8=8B=E4=B8=8D=E6=94=AF=E6=8C=81=E7=9A=84?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E7=9A=84=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/pl/plpgsql/src/gram.y | 4 +++- src/test/regress/expected/out_param_func_overload.out | 8 ++++++++ src/test/regress/sql/out_param_func_overload.sql | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) 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;