ページの先頭行へ戻る
Enterprise Postgres 17 リリース情報

2.3.188 DROP IF EXISTS FUNCTION/PROCEDURE/AGGREGATE/ROUTINEのメッセージの変更

非互換

FUJITSU Enterprise Postgres 12では、DROP IF EXISTS FUNCTION/PROCEDURE/AGGREGATE/ROUTINEが、引数リストを省略していて一致するオブジェクトが複数あるときに、エラーを出力すようになります。

FUJITSU Enterprise Postgres 11以前の場合

引数リストを省略していて一致するオブジェクトが複数あるときに、「NOTICE」を出力します。

[例]

=# CREATE FUNCTION f1() RETURNS int LANGUAGE sql AS $$ SELECT 1 $$;
CREATE FUNCTION
=# CREATE FUNCTION f1(p int) RETURNS int LANGUAGE sql AS $$ SELECT 1 $$;
CREATE FUNCTION
=# DROP FUNCTION IF EXISTS f1;
NOTICE:  function f1() does not exist, skipping (11891)
DROP FUNCTION
FUJITSU Enterprise Postgres 12の場合

引数リストを省略していて一致するオブジェクトが複数あるときに、「ERROR」を出力します。

[例]

=# CREATE FUNCTION f1() RETURNS int LANGUAGE sql AS $$ SELECT 1 $$;
CREATE FUNCTION
=# CREATE FUNCTION f1(p int) RETURNS int LANGUAGE sql AS $$ SELECT 1 $$;
CREATE FUNCTION
=# DROP FUNCTION IF EXISTS f1;
ERROR:  function name "f1" is not unique
HINT:  Specify the argument list to select the function unambiguously.

対処方法

ありません。