pgsql: Fix float4/8 to handle Infinity and Nan consistently, e.g. - Mailing list pgsql-committers

From momjian@postgresql.org (Bruce Momjian)
Subject pgsql: Fix float4/8 to handle Infinity and Nan consistently, e.g.
Date
Msg-id 20070102200050.416F29F9CE3@postgresql.org
Whole thread Raw
List pgsql-committers
Log Message:
-----------
Fix float4/8 to handle Infinity and Nan consistently, e.g. Infinity is a
valid result from a computation if one of the input values was infinity.
The previous code assumed an operation that returned infinity was an
overflow.

Handle underflow/overflow consistently, and add checks for aggregate
overflow.

Consistently prevent Inf/Nan from being cast to integer data types.

Fix INT_MIN % -1 to prevent overflow.

Update regression results for new error text.

Per report from Roman Kononov.

Modified Files:
--------------
    pgsql/src/backend/utils/adt:
        float.c (r1.131 -> r1.132)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/float.c.diff?r1=1.131&r2=1.132)
        int.c (r1.75 -> r1.76)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/int.c.diff?r1=1.75&r2=1.76)
    pgsql/src/test/regress/expected:
        float4-exp-three-digits.out (r1.7 -> r1.8)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/float4-exp-three-digits.out.diff?r1=1.7&r2=1.8)
        float4.out (r1.13 -> r1.14)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/float4.out.diff?r1=1.13&r2=1.14)
        float8-exp-three-digits-win32.out (r1.7 -> r1.8)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/float8-exp-three-digits-win32.out.diff?r1=1.7&r2=1.8)
        float8-small-is-zero.out (r1.10 -> r1.11)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/float8-small-is-zero.out.diff?r1=1.10&r2=1.11)
        float8-small-is-zero_1.out (r1.4 -> r1.5)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/float8-small-is-zero_1.out.diff?r1=1.4&r2=1.5)
        float8.out (r1.24 -> r1.25)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/float8.out.diff?r1=1.24&r2=1.25)
    pgsql/src/test/regress/sql:
        float4.sql (r1.8 -> r1.9)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/float4.sql.diff?r1=1.8&r2=1.9)

pgsql-committers by date:

Previous
From: andrewd@pgfoundry.org (User Andrewd)
Date:
Subject: pgbuildfarm - client-code: Try to unlimit core files if possible, and
Next
From: momjian@postgresql.org (Bruce Momjian)
Date:
Subject: pgsql: Add #include for platforms that still need it.