Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
docs: clarify infinite range values from data-type infinities
authorBruce Momjian <bruce@momjian.us>
Fri, 27 Dec 2019 19:33:30 +0000 (14:33 -0500)
committerBruce Momjian <bruce@momjian.us>
Fri, 27 Dec 2019 19:33:30 +0000 (14:33 -0500)
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

index 9557c16a4dbd29425367994299b609c706843479..8031b213d292dd8730334dfb3a897efb60b7d409 100644 (file)
@@ -131,29 +131,26 @@ SELECT isempty(numrange(1, 5));
   <title>Infinite (Unbounded) Ranges</title>
 
   <para>
-   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.,
+   <literal>(,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., <literal>[,]</> is converted to <literal>(,)</>.
+   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.
   </para>
 
   <para>
-   This is equivalent to considering that the lower bound is <quote>minus
-   infinity</quote>, or the upper bound is <quote>plus infinity</quote>,
-   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 &mdash; if you try to
-   write one, it will automatically be converted to an exclusive bound.)
-  </para>
-
-  <para>
-   Also, some element types have a notion of <quote>infinity</>, but that
-   is just another value so far as the range type mechanisms are concerned.
-   For example, in timestamp ranges, <literal>[today,]</> means the same
-   thing as <literal>[today,)</>.  But <literal>[today,infinity]</> means
-   something different from <literal>[today,infinity)</> &mdash; the latter
-   excludes the special <type>timestamp</> value <literal>infinity</>.
+   Element types that have the notion of <quote>infinity</quote> can
+   use them as explicit bound values.  For example, with timestamp
+   ranges, <literal>[today,infinity)</> excludes the special
+   <type>timestamp</type> value <literal>infinity</>,
+   while <literal>[today,infinity]</> include it, as does
+   <literal>[today,)</> and <literal>[today,]</>.
   </para>
 
   <para>