]> granicus.if.org Git - postgresql/commit
Fix daterange canonicalization for +/- infinity.
authorJeff Davis <jdavis@postgresql.org>
Fri, 19 Jul 2019 00:26:47 +0000 (17:26 -0700)
committerJeff Davis <jdavis@postgresql.org>
Fri, 19 Jul 2019 00:26:47 +0000 (17:26 -0700)
commit613eabcd51c3adec50e28c1f151d574db5a05a9e
tree1b7175d8ba046edb818f5b8c84f407dda453419c
parent7772dece98506233f40c6751e5adb7983a0c1635
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
src/backend/utils/adt/rangetypes.c
src/test/regress/expected/rangetypes.out
src/test/regress/sql/rangetypes.sql