On Mon, Aug 03, 2020 at 03:28:27AM +0000, PG Bug reporting form wrote:
>The following bug has been logged on the website:
>
>Bug reference: 16569
>Logged by: osdba
>Email address: mailtch@163.com
>PostgreSQL version: 9.5.0
>Operating system: all
>Description:
>
>In Document "Table 59-1. Built-in GiST Operator Classes":
>
>"range_ops any range type && &> &< >> << <@ -|- = @> @>",
>
> double "@> @>", I think should be "<@ @>" .
>
>all version document have same clerical error.
>
I agree this is rather confusing, but I don't think it's a bug ...
I'd bet the reason why we have '@> @>' and not '<@ @>' is that those for
different argument types. GiST range_ops has
@>(anyrange,anyrange)
<@(anyrange,anyrange)
@>(anyrange,anyelement)
But we only show the first and third one, because the <@ is commutator
for the first one.
We have a similar thing for point_ops where we have <@ three times, but
those are for different combinations of point, box and circle types.
It's confusing, though. I wonder if we should do one or more of these
changes:
(1) include accepted argument types
(2) only list distinct oprname (so not printing <@ twice)
(3) include commutators (so printing both <@ and @>)
(4) link to https://www.postgresql.org/docs/12/functions-range.html
which already has alll these additional details
regards
--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services