非互換
Symfoware Server (Postgres)では、NULL行をNULL行として返却すべき関数において、その引数に複数行を返却する関数が指定され、さらに返却データにNULLが含まれている場合、NULL行を返却するように変更となります。
NULL行を返却しません。
[例]
=# \pset null NULL =# SELECT abs(unnest(array[1,2,null,-3])); abs -------- 1 2 3
NULL行を返却します。
[例]
=# \pset null NULL =# SELECT abs(unnest(array[1,2,null,-3]));
abs -------- 1 2 NULL 3
対処方法
関数の返却するデータとしてNULL行が不要な場合、IS NOT NULLなどを使用してNULL行を取り除いてください。
[例]
=# SELECT * FROM (SELECT abs(unnest(array[1,2,null,-3]))) AS D1(DC1) WHERE DC1 IS NOT NULL