非互換
FUJITSU Enterprise Postgres 11では、関数と列参照において、構文形式を優先するように変更します。
関数名と同じ名前の列を定義することで、関数が実行されているかのように振る舞うことができます。
[例]
=# CREATE TABLE t1 (c1 int); CREATE TABLE =# CREATE FUNCTION f1(t1) RETURNS TEXT AS 'BEGIN RETURN ''HELLO, WORLD''; END; ' LANGUAGE 'plpgsql'; CREATE FUNCTION =# ALTER TABLE t1 ADD COLUMN f1 int; ALTER TABLE =# INSERT INTO t1 VALUES (10,10); INSERT 0 1 =# SELECT f1(t1) FROM t1; f1 ---- 10 (1 行)
関数と同じ名前の列が定義されている場合、構文形式に一致する方を優先します。
[例]
=# CREATE TABLE t1 (c1 int); CREATE TABLE =# CREATE FUNCTION f1(t1) RETURNS TEXT AS 'BEGIN RETURN ''HELLO, WORLD''; END; ' LANGUAGE 'plpgsql'; CREATE FUNCTION =# ALTER TABLE t1 ADD COLUMN f1 int; ALTER TABLE =# INSERT INTO t1 VALUES (10,10); INSERT 0 1 =# SELECT f1(t1) FROM t1; f1 -------------- HELLO, WORLD (1 行)
対処方法
ありません。