pgsql: Fix daterange canonicalization for +/- infinity. - Mailing list pgsql-committers

From Jeff Davis
Subject pgsql: Fix daterange canonicalization for +/- infinity.
Date
Msg-id E1hoDKR-0000eT-Bn@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix daterange canonicalization for +/- infinity.

The values 'infinity' and '-infinity' are a part of the DATE type
itself, so a bound of the date 'infinity' is not the same as an
unbounded/infinite range. However, it is still wrong to try to
canonicalize such values, because adding or subtracting one has no
effect. Fix by treating 'infinity' and '-infinity' the same as
unbounded ranges for the purposes of canonicalization (but not other
purposes).

Backpatch to all versions because it is inconsistent with the
documented behavior. Note that this could be an incompatibility for
applications relying on the behavior contrary to the documentation.

Author: Laurenz Albe
Reviewed-by: Thomas Munro
Discussion: https://postgr.es/m/77f24ea19ab802bc9bc60ddbb8977ee2d646aec1.camel%40cybertec.at
Backpatch-through: 9.4

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/e6feef571a016c9dac52a01aebad484768eb5c68

Modified Files
--------------
src/backend/utils/adt/rangetypes.c       |  4 ++--
src/test/regress/expected/rangetypes.out | 24 ++++++++++++++++++++++++
src/test/regress/sql/rangetypes.sql      |  4 ++++
3 files changed, 30 insertions(+), 2 deletions(-)


pgsql-committers by date:

Previous
From: Peter Geoghegan
Date:
Subject: pgsql: Fix nbtree metapage cache upgrade bug.
Next
From: Jeff Davis
Date:
Subject: pgsql: Fix daterange canonicalization for +/- infinity.