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