非互換
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)
対処方法
ありません。