Commit 650692a1 authored by Bruce Momjian's avatar Bruce Momjian

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
parent a052f6cb
...@@ -131,29 +131,26 @@ SELECT isempty(numrange(1, 5)); ...@@ -131,29 +131,26 @@ SELECT isempty(numrange(1, 5));
<title>Infinite (Unbounded) Ranges</title> <title>Infinite (Unbounded) Ranges</title>
<para> <para>
The lower bound of a range can be omitted, meaning that all points less The lower bound of a range can be omitted, meaning that all
than the upper bound are included in the range. Likewise, if the upper values less than the upper bound are included in the range, e.g.,
bound of the range is omitted, then all points greater than the lower bound <literal>(,3]</literal>. Likewise, if the upper bound of the range
are included in the range. If both lower and upper bounds are omitted, all is omitted, then all values greater than the lower bound are included
values of the element type are considered to be in the range. in the range. If both lower and upper bounds are omitted, all values
</para> of the element type are considered to be in the range. Specifying a
missing bound as inclusive is automatically converted to exclusive,
<para> e.g., <literal>[,]</literal> is converted to <literal>(,)</literal>.
This is equivalent to considering that the lower bound is <quote>minus You can think of these missing values as +/-infinity, but they are
infinity</quote>, or the upper bound is <quote>plus infinity</quote>, special range type values and are considered to be beyond any range
respectively. But note that these infinite values are never values of element type's +/-infinity values.
the range's element type, and can never be part of the range. (So there </para>
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> Element types that have the notion of <quote>infinity</quote> can
use them as explicit bound values. For example, with timestamp
<para> ranges, <literal>[today,infinity)</literal> excludes the special
Also, some element types have a notion of <quote>infinity</quote>, but that <type>timestamp</type> value <literal>infinity</literal>,
is just another value so far as the range type mechanisms are concerned. while <literal>[today,infinity]</literal> include it, as does
For example, in timestamp ranges, <literal>[today,]</literal> means the same <literal>[today,)</literal> and <literal>[today,]</literal>.
thing as <literal>[today,)</literal>. But <literal>[today,infinity]</literal> means
something different from <literal>[today,infinity)</literal> &mdash; the latter
excludes the special <type>timestamp</type> value <literal>infinity</literal>.
</para> </para>
<para> <para>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment