From 5d72f85d4ca8e0a56836ea48576ff8f684f7dce7 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 27 Dec 2019 14:33:30 -0500 Subject: [PATCH] docs: clarify infinite range values from data-type infinities The previous docs referenced these distinct ideas confusingly. Reported-by: Eugen Konkov Discussion: https://postgr.es/m/376945611.20191026161529@yandex.ru Backpatch-through: 9.4 --- doc/src/sgml/rangetypes.sgml | 37 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/doc/src/sgml/rangetypes.sgml b/doc/src/sgml/rangetypes.sgml index 3a034d9b06..b75fb3a392 100644 --- a/doc/src/sgml/rangetypes.sgml +++ b/doc/src/sgml/rangetypes.sgml @@ -131,29 +131,26 @@ SELECT isempty(numrange(1, 5)); Infinite (Unbounded) Ranges - The lower bound of a range can be omitted, meaning that all points less - than the upper bound are included in the range. Likewise, if the upper - bound of the range is omitted, then all points greater than the lower bound - are included in the range. If both lower and upper bounds are omitted, all - values of the element type are considered to be in the range. + The lower bound of a range can be omitted, meaning that all + values less than the upper bound are included in the range, e.g., + (,3]. Likewise, if the upper bound of the range + is omitted, then all values greater than the lower bound are included + in the range. If both lower and upper bounds are omitted, all values + of the element type are considered to be in the range. Specifying a + missing bound as inclusive is automatically converted to exclusive, + e.g., [,] is converted to (,). + You can think of these missing values as +/-infinity, but they are + special range type values and are considered to be beyond any range + element type's +/-infinity values. - This is equivalent to considering that the lower bound is minus - infinity, or the upper bound is plus infinity, - respectively. But note that these infinite values are never values of - the range's element type, and can never be part of the range. (So there - is no such thing as an inclusive infinite bound — if you try to - write one, it will automatically be converted to an exclusive bound.) - - - - Also, some element types have a notion of infinity, but that - is just another value so far as the range type mechanisms are concerned. - For example, in timestamp ranges, [today,] means the same - thing as [today,). But [today,infinity] means - something different from [today,infinity) — the latter - excludes the special timestamp value infinity. + Element types that have the notion of infinity can + use them as explicit bound values. For example, with timestamp + ranges, [today,infinity) excludes the special + timestamp value infinity, + while [today,infinity] include it, as does + [today,) and [today,].