ページの先頭行へ戻る
Enterprise Postgres 17 リリース情報

2.2.18 オーバーフロー時の挙動の変更

非互換

Fujitsu Enterprise Postgres 16 SP1では、いくつかのケースにおいて、オーバーフロー時の挙動を変更します。

Fujitsu Enterprise Postgres 16以前の場合
postgres=# select date_bin('15 minutes'::interval, timestamp '294276-12-30', timestamp '4000-12-20 BC');
           date_bin
------------------------------
 294276-12-30 00:01:49.551616
(1 row)

postgres=# SELECT timestamp without time zone '294276-12-31 23:59:59' + interval '9223372036854775807 microseconds' AS "out of range";
        out of range
----------------------------
 1999-12-23 19:59:04.224191
(1 row)

postgres=# SELECT '-1'::money / 1.175494e-38::float4;
          ?column?
-----------------------------
 -\9,223,372,036,854,775,808
(1 row)

postgres=# insert into arr_pk_tbl(pk, f1[-2147483648:2147483647]) values (2, '{}');
INSERT 0 1

postgres=# SELECT round(4.4e131071, -131071) = 4e131071;
 ?column?
----------
 f
(1 row)

postgres=# SELECT trunc(9.9e131071, -131071) = 9e131071;
 ?column?
----------
 f
(1 row)
Fujitsu Enterprise Postgres 16 SP1の場合
postgres=# select date_bin('15 minutes'::interval, timestamp '294276-12-30', timestamp '4000-12-20 BC');
ERROR:  interval out of range

postgres=# SELECT timestamp without time zone '294276-12-31 23:59:59' + interval '9223372036854775807 microseconds' AS "out of range";
ERROR:  timestamp out of range

postgres=# SELECT '-1'::money / 1.175494e-38::float4;
ERROR:  money out of range

postgres=# insert into arr_pk_tbl(pk, f1[-2147483648:2147483647]) values (2, '{}');
ERROR:  array size exceeds the maximum allowed (134217727)

postgres=# SELECT round(4.4e131071, -131071) = 4e131071;
 ?column?
----------
 t
(1 row)

postgres=# SELECT trunc(9.9e131071, -131071) = 9e131071;
 ?column?
----------
 t
(1 row)

対処方法

ありません。