非互換
FUJITSU Enterprise Postgres 9.6以降では、SELECT文の出力リスト内の揮発性のある、もしくは高コストの関数をORDER BYソートの順序で実行するように変更します。また、この変更により、LIMIT句を指定している場合は、必要とされる回数以上に関数が実行されなくなります。
関数はORDER BYソートの前に実行します。
[例]
=# CREATE SEQUENCE seq1; CREATE SEQUENCE =# SELECT c1,c2,nextval('seq1') FROM t1 ORDER BY c1 LIMIT 3; c1 | c2 | nextval ----+----+--------- 1 | 1 | 4 2 | 2 | 6 3 | 3 | 2 (3 rows) =# SELECT curval('seq1') currval --------- 10 (1 row)
関数はORDER BYソートの順序で実行します。
[例]
=# SELECT c1,c2,nextval('seq1') FROM t1 ORDER BY c1 LIMIT 3; c1 | c2 | nextval ----+----+--------- 1 | 1 | 1 2 | 2 | 2 3 | 3 | 3 (3 rows) =# SELECT curval('seq1') currval --------- 3 (1 row)
対処方法
ありません。