非互換
Fujitsu Enterprise Postgres 16 SP1では、いくつかのケースにおいて、オーバーフロー時の挙動を変更します。
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)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)対処方法
ありません。