ページの先頭行へ戻る
Symfoware Server V12.4.0 移行ガイド(OpenインタフェースからSymfoware Server (Postgres)への移行)
FUJITSU Software

Solaris3.3.32 関数をORDER BYソートの順序で実行するように変更

非互換

Symfoware Server (Postgres)では、SELECT文の出力リスト内の揮発性のある、もしくは高コストの関数をORDER BYソートの順序で実行するように変更します。また、この変更により、LIMIT句を指定している場合は、必要とされる回数以上に関数が実行されなくなります。

Symfoware Server (Openインタフェース)の場合

関数は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)
Symfoware Server (Postgres)の場合

関数は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)

対処方法

ありません。