postgres.git / summary / log / commit / refs

commit    452b637d4b02e4aa09d45a34d7a048d3f70116bb
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Sat Nov 24 04:49:25 2018 +0000

    Adjust new test case for more portability.
    
    Early returns from the buildfarm say that most critters are good with
    commit cbdb8b4c0, but gaur gives unexpected results with the test case
    involving a float8 that's one-ULP-less-than-2^63.  It appears that that
    platform's version of rint() rounds that value up to 2^63 instead of
    leaving it be.  This is possibly a bug, and it's also possible that no
    other platform anybody is using anywhere behaves likewise.  Still, the
    point of the test is not to insist that everybody's rint() behaves exactly
    the same.  Let's use two-ULPs-less-than-2^63 instead, which I've tested
    to act the same on gaur as on more modern hardware.
    
    (This is, more or less, exactly the portability issue I'd feared might
    arise...)
    
    Discussion: https://postgr.es/m/15519-4fc785b483201ff1@postgresql.org


src/test/regress/expected/float8-small-is-zero.out | 4 ++-- src/test/regress/expected/float8.out | 4 ++-- src/test/regress/sql/float8.sql | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/regress/expected/float8-small-is-zero.out b/src/test/regress/expected/float8-small-is-zero.out index ce173f72c98..1c3bbae6b8b 100644 --- a/src/test/regress/expected/float8-small-is-zero.out +++ b/src/test/regress/expected/float8-small-is-zero.out @@ -511,10 +511,10 @@ SELECT '-2147483648.4'::float8::int4; SELECT '-2147483648.6'::float8::int4; ERROR: integer out of range -SELECT '9223372036854774784'::float8::int8; +SELECT '9223372036854773760'::float8::int8; int8 --------------------- - 9223372036854774784 + 9223372036854773760 (1 row) SELECT '9223372036854775807'::float8::int8; diff --git a/src/test/regress/expected/float8.out b/src/test/regress/expected/float8.out index 1d51012a697..75c0bf389b9 100644 --- a/src/test/regress/expected/float8.out +++ b/src/test/regress/expected/float8.out @@ -513,10 +513,10 @@ SELECT '-2147483648.4'::float8::int4; SELECT '-2147483648.6'::float8::int4; ERROR: integer out of range -SELECT '9223372036854774784'::float8::int8; +SELECT '9223372036854773760'::float8::int8; int8 --------------------- - 9223372036854774784 + 9223372036854773760 (1 row) SELECT '9223372036854775807'::float8::int8; diff --git a/src/test/regress/sql/float8.sql b/src/test/regress/sql/float8.sql index ed879424466..6595fd2b958 100644 --- a/src/test/regress/sql/float8.sql +++ b/src/test/regress/sql/float8.sql @@ -183,7 +183,7 @@ SELECT '2147483647.4'::float8::int4; SELECT '2147483647.6'::float8::int4; SELECT '-2147483648.4'::float8::int4; SELECT '-2147483648.6'::float8::int4; -SELECT '9223372036854774784'::float8::int8; +SELECT '9223372036854773760'::float8::int8; SELECT '9223372036854775807'::float8::int8; SELECT '-9223372036854775808.5'::float8::int8; SELECT '-9223372036854780000'::float8::int8; [parent: cbdb8b4c0155]