On Tue, Aug 25, 2020 at 06:17:28PM -0400, Tom Lane wrote:
> Alvaro Herrera <alvhe...@2ndquadrant.com> writes:
>> (With the non-website stylesheet, as in the screenshot you showed, the
>> table looks somewhat crammed and visually unappealing; but the website
>> stylesheet looks pleasing enough.  Screenshot attached.)

Right, STYLE=website.

> I wonder if it would look better if we suppress the horizontal rules
> between the operator names within a cell.  IIRC, it's possible to do
> that, though the exact incantation isn't coming to mind right now.

I would imagine that rowsep=0 for a given <entry> can do that:
https://tdg.docbook.org/tdg/4.5/entry.html
However, it does not make a difference if I use the default style or
the website style.  I may be missing something with the stylesheet
though?

>> I suppose a commit would change all the index AMs where we document this
>> kind of thing.
> 
> Yeah, we should make all these sorts of tables consistent.

Of course, just wanted to make sure that we agree on the layer before
spending more time on that as shaping all the tables correctly is a
lot of work.  And GIN is the smallest one.

One thing to note about the BRIN table is that we have never
documented from the start any of the operators working across multiple
types.  For example, we only have 5 operators listed for each one of
int2/int4/int8, timestamptz/timestamp or real/float, but these are
listed with incorrect names and they miss a bunch of other operators
able to handle combinations of (int2,int4), etc.  So I have fixed the
table so as all the operators are listed, grouping together ints,
timestamps and reals, as \dAo says.  Now there could be also an
argument to stick with simplicity and list only the operators of one
single type, reducing the size of the table for BRIN.  But that would
be incorrect with the catalogs, and the attached classifies all
operators in alphabetical order.  (Switching to the original list is
not complicated as that would be just removing code from the attached,
so I took the complicated path for now.)
--
Michael
diff --git a/doc/src/sgml/brin.sgml b/doc/src/sgml/brin.sgml
index b9d596e3c4..341fe8e021 100644
--- a/doc/src/sgml/brin.sgml
+++ b/doc/src/sgml/brin.sgml
@@ -133,341 +133,357 @@ LOG:  request for BRIN range summarization for index "brin_wi_idx" page 128 was
    </thead>
    <tbody>
     <row>
-     <entry><literal>int8_minmax_ops</literal></entry>
-     <entry><type>bigint</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>bit_minmax_ops</literal></entry>
+     <entry morerows="4"><type>bit</type></entry>
+     <entry><literal>=(bit,bit)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(bit,bit)</literal></entry></row>
+    <row><entry><literal>&gt;(bit,bit)</literal></entry></row>
+    <row><entry><literal>&lt;=(bit,bit)</literal></entry></row>
+    <row><entry><literal>&gt;=(bit,bit)</literal></entry></row>
+    
     <row>
-     <entry><literal>bit_minmax_ops</literal></entry>
-     <entry><type>bit</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="12"><literal>box_inclusion_ops</literal></entry>
+     <entry morerows="12"><type>box</type></entry>
+     <entry><literal>@&gt;(box,point)</literal></entry>
     </row>
+    <row><entry><literal>&lt;&lt;(box,box)</literal></entry></row>
+    <row><entry><literal>&amp;&lt;(box,box)</literal></entry></row>
+    <row><entry><literal>&amp;&gt;(box,box)</literal></entry></row>
+    <row><entry><literal>&gt;&gt;(box,box)</literal></entry></row>
+    <row><entry><literal>&lt;@(box,box)</literal></entry></row>
+    <row><entry><literal>@&gt;(box,box)</literal></entry></row>
+    <row><entry><literal>~=(box,box)</literal></entry></row>
+    <row><entry><literal>&amp;&amp;(box,box)</literal></entry></row>
+    <row><entry><literal>&lt;&lt;|(box,box)</literal></entry></row>
+    <row><entry><literal>&amp;&lt;|(box,box)</literal></entry></row>
+    <row><entry><literal>|&amp;&gt;(box,box)</literal></entry></row>
+    <row><entry><literal>|&gt;&gt;(box,box)</literal></entry></row>
+    
     <row>
-     <entry><literal>varbit_minmax_ops</literal></entry>
-     <entry><type>bit varying</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>bpchar_minmax_ops</literal></entry>
+     <entry morerows="4"><type>character</type></entry>
+     <entry><literal>=(character,character)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(character,character)</literal></entry></row>
+    <row><entry><literal>&lt;=(character,character)</literal></entry></row>
+    <row><entry><literal>&gt;(character,character)</literal></entry></row>
+    <row><entry><literal>&gt;=(character,character)</literal></entry></row>
+    
     <row>
-     <entry><literal>box_inclusion_ops</literal></entry>
-     <entry><type>box</type></entry>
-     <entry>
-      <literal>&lt;&lt;</literal>
-      <literal>&amp;&lt;</literal>
-      <literal>&amp;&amp;</literal>
-      <literal>&amp;&gt;</literal>
-      <literal>&gt;&gt;</literal>
-      <literal>~=</literal>
-      <literal>@&gt;</literal>
-      <literal>&lt;@</literal>
-      <literal>&amp;&lt;|</literal>
-      <literal>&lt;&lt;|</literal>
-      <literal>|&gt;&gt;</literal>
-      <literal>|&amp;&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>bytea_minmax_ops</literal></entry>
+     <entry morerows="4"><type>bytea</type></entry>
+     <entry><literal>=(bytea,bytea)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(bytea,bytea)</literal></entry></row>
+    <row><entry><literal>&lt;=(bytea,bytea)</literal></entry></row>
+    <row><entry><literal>&gt;(bytea,bytea)</literal></entry></row>
+    <row><entry><literal>&gt;=(bytea,bytea)</literal></entry></row>
+    
     <row>
-     <entry><literal>bytea_minmax_ops</literal></entry>
-     <entry><type>bytea</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>char_minmax_ops</literal></entry>
+     <entry morerows="4"><type>"char"</type></entry>
+     <entry><literal>=("char","char")</literal></entry>
     </row>
+    <row><entry><literal>&lt;("char","char")</literal></entry></row>
+    <row><entry><literal>&lt;=("char","char")</literal></entry></row>
+    <row><entry><literal>&gt;("char","char")</literal></entry></row>
+    <row><entry><literal>&gt;=("char","char")</literal></entry></row>
+    
     <row>
-     <entry><literal>bpchar_minmax_ops</literal></entry>
-     <entry><type>character</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="44"><literal>datetime_minmax_ops</literal></entry>
+     <entry morerows="44"><type>date</type>, <type>timestamp with time zone</type>, <type>timestamp without time zone</type></entry>
+     <entry><literal>=(date,date)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(date,date)</literal></entry></row>
+    <row><entry><literal>&lt;=(date,date)</literal></entry></row>
+    <row><entry><literal>&gt;(date,date)</literal></entry></row>
+    <row><entry><literal>&gt;=(date,date)</literal></entry></row>
+    <row><entry><literal>=(timestamp with time zone,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>&lt;(timestamp with time zone,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>&lt;=(timestamp with time zone,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>&gt;(timestamp with time zone,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>&gt;=(timestamp with time zone,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>=(timestamp without time zone,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>&lt;(timestamp without time zone,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>&lt;=(timestamp without time zone,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>&gt;(timestamp without time zone,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>&gt;=(timestamp without time zone,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>&lt;(date,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>&lt;=(date,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>=(date,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>&gt;=(date,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>&gt;(date,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>&lt;(date,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>&lt;=(date,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>=(date,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>&gt;=(date,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>&gt;(date,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>&lt;(timestamp without time zone,date)</literal></entry></row>
+    <row><entry><literal>&lt;=(timestamp without time zone,date)</literal></entry></row>
+    <row><entry><literal>=(timestamp without time zone,date)</literal></entry></row>
+    <row><entry><literal>&gt;=(timestamp without time zone,date)</literal></entry></row>
+    <row><entry><literal>&gt;(timestamp without time zone,date)</literal></entry></row>
+    <row><entry><literal>&lt;(timestamp with time zone,date)</literal></entry></row>
+    <row><entry><literal>&lt;=(timestamp with time zone,date)</literal></entry></row>
+    <row><entry><literal>=(timestamp with time zone,date)</literal></entry></row>
+    <row><entry><literal>&gt;=(timestamp with time zone,date)</literal></entry></row>
+    <row><entry><literal>&gt;(timestamp with time zone,date)</literal></entry></row>
+    <row><entry><literal>&lt;(timestamp without time zone,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>&lt;=(timestamp without time zone,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>=(timestamp without time zone,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>&gt;=(timestamp without time zone,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>&gt;(timestamp without time zone,timestamp with time zone)</literal></entry></row>
+    <row><entry><literal>&lt;(timestamp with time zone,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>&lt;=(timestamp with time zone,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>=(timestamp with time zone,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>&gt;=(timestamp with time zone,timestamp without time zone)</literal></entry></row>
+    <row><entry><literal>&gt;(timestamp with time zone,timestamp without time zone)</literal></entry></row>
+    
     <row>
-     <entry><literal>char_minmax_ops</literal></entry>
-     <entry><type>"char"</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="19"><literal>float_minmax_ops</literal></entry>
+     <entry morerows="19"><type>double precision</type>, <type>real</type></entry>
+     <entry><literal>=(real,real)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(real,real)</literal></entry></row>
+    <row><entry><literal>&gt;(real,real)</literal></entry></row>
+    <row><entry><literal>&lt;=(real,real)</literal></entry></row>
+    <row><entry><literal>&gt;=(real,real)</literal></entry></row>
+    <row><entry><literal>=(double precision,double precision)</literal></entry></row>
+    <row><entry><literal>&lt;(double precision,double precision)</literal></entry></row>
+    <row><entry><literal>&lt;=(double precision,double precision)</literal></entry></row>
+    <row><entry><literal>&gt;(double precision,double precision)</literal></entry></row>
+    <row><entry><literal>&gt;=(double precision,double precision)</literal></entry></row>
+    <row><entry><literal>=(real,double precision)</literal></entry></row>
+    <row><entry><literal>&lt;(real,double precision)</literal></entry></row>
+    <row><entry><literal>&gt;(real,double precision)</literal></entry></row>
+    <row><entry><literal>&lt;=(real,double precision)</literal></entry></row>
+    <row><entry><literal>&gt;=(real,double precision)</literal></entry></row>
+    <row><entry><literal>=(double precision,real)</literal></entry></row>
+    <row><entry><literal>&lt;(double precision,real)</literal></entry></row>
+    <row><entry><literal>&gt;(double precision,real)</literal></entry></row>
+    <row><entry><literal>&lt;=(double precision,real)</literal></entry></row>
+    <row><entry><literal>&gt;=(double precision,real)</literal></entry></row>
+    
     <row>
-     <entry><literal>date_minmax_ops</literal></entry>
-     <entry><type>date</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="44"><literal>integer_minmax_ops</literal></entry>
+     <entry morerows="44"><type>smallint</type>, <type>integer</type>, <type>bigint</type></entry>
+     <entry><literal>=(integer,bigint)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(integer,bigint)</literal></entry></row>
+    <row><entry><literal>&gt;(integer,bigint)</literal></entry></row>
+    <row><entry><literal>&lt;=(integer,bigint)</literal></entry></row>
+    <row><entry><literal>&gt;=(integer,bigint)</literal></entry></row>
+    <row><entry><literal>=(smallint,smallint)</literal></entry></row>
+    <row><entry><literal>&lt;(smallint,smallint)</literal></entry></row>
+    <row><entry><literal>=(integer,integer)</literal></entry></row>
+    <row><entry><literal>&lt;(integer,integer)</literal></entry></row>
+    <row><entry><literal>=(bigint,bigint)</literal></entry></row>
+    <row><entry><literal>&lt;(bigint,bigint)</literal></entry></row>
+    <row><entry><literal>&gt;(bigint,bigint)</literal></entry></row>
+    <row><entry><literal>&lt;=(bigint,bigint)</literal></entry></row>
+    <row><entry><literal>&gt;=(bigint,bigint)</literal></entry></row>
+    <row><entry><literal>=(bigint,integer)</literal></entry></row>
+    <row><entry><literal>&lt;(bigint,integer)</literal></entry></row>
+    <row><entry><literal>&gt;(bigint,integer)</literal></entry></row>
+    <row><entry><literal>&lt;=(bigint,integer)</literal></entry></row>
+    <row><entry><literal>&gt;=(bigint,integer)</literal></entry></row>
+    <row><entry><literal>&gt;(smallint,smallint)</literal></entry></row>
+    <row><entry><literal>&gt;(integer,integer)</literal></entry></row>
+    <row><entry><literal>&lt;=(smallint,smallint)</literal></entry></row>
+    <row><entry><literal>&lt;=(integer,integer)</literal></entry></row>
+    <row><entry><literal>&gt;=(smallint,smallint)</literal></entry></row>
+    <row><entry><literal>&gt;=(integer,integer)</literal></entry></row>
+    <row><entry><literal>=(smallint,integer)</literal></entry></row>
+    <row><entry><literal>=(integer,smallint)</literal></entry></row>
+    <row><entry><literal>&lt;(smallint,integer)</literal></entry></row>
+    <row><entry><literal>&lt;(integer,smallint)</literal></entry></row>
+    <row><entry><literal>&gt;(smallint,integer)</literal></entry></row>
+    <row><entry><literal>&gt;(integer,smallint)</literal></entry></row>
+    <row><entry><literal>&lt;=(smallint,integer)</literal></entry></row>
+    <row><entry><literal>&lt;=(integer,smallint)</literal></entry></row>
+    <row><entry><literal>&gt;=(smallint,integer)</literal></entry></row>
+    <row><entry><literal>&gt;=(integer,smallint)</literal></entry></row>
+    <row><entry><literal>=(smallint,bigint)</literal></entry></row>
+    <row><entry><literal>&lt;(smallint,bigint)</literal></entry></row>
+    <row><entry><literal>&gt;(smallint,bigint)</literal></entry></row>
+    <row><entry><literal>&lt;=(smallint,bigint)</literal></entry></row>
+    <row><entry><literal>&gt;=(smallint,bigint)</literal></entry></row>
+    <row><entry><literal>=(bigint,smallint)</literal></entry></row>
+    <row><entry><literal>&lt;(bigint,smallint)</literal></entry></row>
+    <row><entry><literal>&gt;(bigint,smallint)</literal></entry></row>
+    <row><entry><literal>&lt;=(bigint,smallint)</literal></entry></row>
+    <row><entry><literal>&gt;=(bigint,smallint)</literal></entry></row>
+    
     <row>
-     <entry><literal>float8_minmax_ops</literal></entry>
-     <entry><type>double precision</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>interval_minmax_ops</literal></entry>
+     <entry morerows="4"><type>interval</type></entry>
+     <entry><literal>=(interval,interval)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(interval,interval)</literal></entry></row>
+    <row><entry><literal>&lt;=(interval,interval)</literal></entry></row>
+    <row><entry><literal>&gt;(interval,interval)</literal></entry></row>
+    <row><entry><literal>&gt;=(interval,interval)</literal></entry></row>
+    
     <row>
-     <entry><literal>inet_minmax_ops</literal></entry>
-     <entry><type>inet</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>maxaddr8_minmax_ops</literal></entry>
+     <entry morerows="4"><type>macaddr8</type></entry>
+     <entry><literal>=(macaddr8,macaddr8)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(macaddr8,macaddr8)</literal></entry></row>
+    <row><entry><literal>&lt;=(macaddr8,macaddr8)</literal></entry></row>
+    <row><entry><literal>&gt;(macaddr8,macaddr8)</literal></entry></row>
+    <row><entry><literal>&gt;=(macaddr8,macaddr8)</literal></entry></row>
+    
     <row>
-     <entry><literal>network_inclusion_ops</literal></entry>
-     <entry><type>inet</type></entry>
-     <entry>
-      <literal>&amp;&amp;</literal>
-      <literal>&gt;&gt;=</literal>
-      <literal>&lt;&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;&gt;</literal>
-      <literal>&lt;&lt;</literal>
-     </entry>
+     <entry morerows="4"><literal>maxaddr_minmax_ops</literal></entry>
+     <entry morerows="4"><type>macaddr</type></entry>
+     <entry><literal>=(macaddr,macaddr)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(macaddr,macaddr)</literal></entry></row>
+    <row><entry><literal>&lt;=(macaddr,macaddr)</literal></entry></row>
+    <row><entry><literal>&gt;(macaddr,macaddr)</literal></entry></row>
+    <row><entry><literal>&gt;=(macaddr,macaddr)</literal></entry></row>
+    
     <row>
-     <entry><literal>int4_minmax_ops</literal></entry>
-     <entry><type>integer</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>name_minmax_ops</literal></entry>
+     <entry morerows="4"><type>name</type></entry>
+     <entry><literal>=(name,name)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(name,name)</literal></entry></row>
+    <row><entry><literal>&lt;=(name,name)</literal></entry></row>
+    <row><entry><literal>&gt;(name,name)</literal></entry></row>
+    <row><entry><literal>&gt;=(name,name)</literal></entry></row>
+    
     <row>
-     <entry><literal>interval_minmax_ops</literal></entry>
-     <entry><type>interval</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="5"><literal>network_inclusion_ops</literal></entry>
+     <entry morerows="5"><type>inet</type></entry>
+     <entry><literal>&lt;&lt;(inet,inet)</literal></entry>
     </row>
+    <row><entry><literal>&lt;&lt;=(inet,inet)</literal></entry></row>
+    <row><entry><literal>&gt;&gt;(inet,inet)</literal></entry></row>
+    <row><entry><literal>&gt;&gt;=(inet,inet)</literal></entry></row>
+    <row><entry><literal>=(inet,inet)</literal></entry></row>
+    <row><entry><literal>&amp;&amp;(inet,inet)</literal></entry></row>
+    
     <row>
-     <entry><literal>macaddr_minmax_ops</literal></entry>
-     <entry><type>macaddr</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>network_minmax_ops</literal></entry>
+     <entry morerows="4"><type>inet</type></entry>
+     <entry><literal>=(inet,inet)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(inet,inet)</literal></entry></row>
+    <row><entry><literal>&lt;=(inet,inet)</literal></entry></row>
+    <row><entry><literal>&gt;(inet,inet)</literal></entry></row>
+    <row><entry><literal>&gt;=(inet,inet)</literal></entry></row>
+    
     <row>
-     <entry><literal>macaddr8_minmax_ops</literal></entry>
-     <entry><type>macaddr8</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>numeric_minmax_ops</literal></entry>
+     <entry morerows="4"><type>numeric</type></entry>
+     <entry><literal>=(numeric,numeric)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(numeric,numeric)</literal></entry></row>
+    <row><entry><literal>&lt;=(numeric,numeric)</literal></entry></row>
+    <row><entry><literal>&gt;(numeric,numeric)</literal></entry></row>
+    <row><entry><literal>&gt;=(numeric,numeric)</literal></entry></row>
+    
     <row>
-     <entry><literal>name_minmax_ops</literal></entry>
-     <entry><type>name</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>oid_minmax_ops</literal></entry>
+     <entry morerows="4"><type>oid</type></entry>
+     <entry><literal>=(oid,oid)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(oid,oid)</literal></entry></row>
+    <row><entry><literal>&gt;(oid,oid)</literal></entry></row>
+    <row><entry><literal>&lt;=(oid,oid)</literal></entry></row>
+    <row><entry><literal>&gt;=(oid,oid)</literal></entry></row>
+    
     <row>
-     <entry><literal>numeric_minmax_ops</literal></entry>
-     <entry><type>numeric</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>pg_lsn_minmax_ops</literal></entry>
+     <entry morerows="4"><type>pg_lsn</type></entry>
+     <entry><literal>=(pg_lsn,pg_lsn)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(pg_lsn,pg_lsn)</literal></entry></row>
+    <row><entry><literal>&gt;(pg_lsn,pg_lsn)</literal></entry></row>
+    <row><entry><literal>&lt;=(pg_lsn,pg_lsn)</literal></entry></row>
+    <row><entry><literal>&gt;=(pg_lsn,pg_lsn)</literal></entry></row>
+    
     <row>
-     <entry><literal>pg_lsn_minmax_ops</literal></entry>
-     <entry><type>pg_lsn</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="13"><literal>range_inclusion_ops</literal></entry>
+     <entry morerows="13"><type>any range type</type></entry>
+     <entry><literal>=(anyrange,anyrange)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(anyrange,anyrange)</literal></entry></row>
+    <row><entry><literal>&lt;=(anyrange,anyrange)</literal></entry></row>
+    <row><entry><literal>&gt;=(anyrange,anyrange)</literal></entry></row>
+    <row><entry><literal>&gt;(anyrange,anyrange)</literal></entry></row>
+    <row><entry><literal>&amp;&amp;(anyrange,anyrange)</literal></entry></row>
+    <row><entry><literal>@&gt;(anyrange,anyelement)</literal></entry></row>
+    <row><entry><literal>@&gt;(anyrange,anyrange)</literal></entry></row>
+    <row><entry><literal>&lt;@(anyrange,anyrange)</literal></entry></row>
+    <row><entry><literal>&lt;&lt;(anyrange,anyrange)</literal></entry></row>
+    <row><entry><literal>&gt;&gt;(anyrange,anyrange)</literal></entry></row>
+    <row><entry><literal>&amp;&lt;(anyrange,anyrange)</literal></entry></row>
+    <row><entry><literal>&amp;&gt;(anyrange,anyrange)</literal></entry></row>
+    <row><entry><literal>-|-(anyrange,anyrange)</literal></entry></row>
+    
     <row>
-     <entry><literal>oid_minmax_ops</literal></entry>
-     <entry><type>oid</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>text_minmax_ops</literal></entry>
+     <entry morerows="4"><type>text</type></entry>
+     <entry><literal>=(text,text)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(text,text)</literal></entry></row>
+    <row><entry><literal>&lt;=(text,text)</literal></entry></row>
+    <row><entry><literal>&gt;(text,text)</literal></entry></row>
+    <row><entry><literal>&gt;=(text,text)</literal></entry></row>
+    
     <row>
-     <entry><literal>range_inclusion_ops</literal></entry>
-     <entry><type>any range type</type></entry>
-     <entry>
-      <literal>&lt;&lt;</literal>
-      <literal>&amp;&lt;</literal>
-      <literal>&amp;&amp;</literal>
-      <literal>&amp;&gt;</literal>
-      <literal>&gt;&gt;</literal>
-      <literal>@&gt;</literal>
-      <literal>&lt;@</literal>
-      <literal>-|-</literal>
-      <literal>=</literal>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;</literal>
-      <literal>&gt;=</literal>
-     </entry>
+     <entry morerows="4"><literal>tid_minmax_ops</literal></entry>
+     <entry morerows="4"><type>tid</type></entry>
+     <entry><literal>=(tid,tid)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(tid,tid)</literal></entry></row>
+    <row><entry><literal>&gt;(tid,tid)</literal></entry></row>
+    <row><entry><literal>&lt;=(tid,tid)</literal></entry></row>
+    <row><entry><literal>&gt;=(tid,tid)</literal></entry></row>
+    
     <row>
-     <entry><literal>float4_minmax_ops</literal></entry>
-     <entry><type>real</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>time_minmax_ops</literal></entry>
+     <entry morerows="4"><type>time without time zone</type></entry>
+     <entry><literal>=(time without time zone,time without time zone)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(time without time zone,time without time zone)</literal></entry></row>
+    <row><entry><literal>&lt;=(time without time zone,time without time zone)</literal></entry></row>
+    <row><entry><literal>&gt;(time without time zone,time without time zone)</literal></entry></row>
+    <row><entry><literal>&gt;=(time without time zone,time without time zone)</literal></entry></row>
+    
     <row>
-     <entry><literal>int2_minmax_ops</literal></entry>
-     <entry><type>smallint</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>timetz_minmax_ops</literal></entry>
+     <entry morerows="4"><type>time with time zone</type></entry>
+     <entry><literal>=(time with time zone,time with time zone)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(time with time zone,time with time zone)</literal></entry></row>
+    <row><entry><literal>&lt;=(time with time zone,time with time zone)</literal></entry></row>
+    <row><entry><literal>&gt;(time with time zone,time with time zone)</literal></entry></row>
+    <row><entry><literal>&gt;=(time with time zone,time with time zone)</literal></entry></row>
+    
     <row>
-     <entry><literal>text_minmax_ops</literal></entry>
-     <entry><type>text</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>uuid_minmax_ops</literal></entry>
+     <entry morerows="4"><type>uuid</type></entry>
+     <entry><literal>=(uuid,uuid)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(uuid,uuid)</literal></entry></row>
+    <row><entry><literal>&gt;(uuid,uuid)</literal></entry></row>
+    <row><entry><literal>&lt;=(uuid,uuid)</literal></entry></row>
+    <row><entry><literal>&gt;=(uuid,uuid)</literal></entry></row>
+    
     <row>
-     <entry><literal>tid_minmax_ops</literal></entry>
-     <entry><type>tid</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
-    </row>
-    <row>
-     <entry><literal>timestamp_minmax_ops</literal></entry>
-     <entry><type>timestamp without time zone</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
-    </row>
-    <row>
-     <entry><literal>timestamptz_minmax_ops</literal></entry>
-     <entry><type>timestamp with time zone</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
-    </row>
-    <row>
-     <entry><literal>time_minmax_ops</literal></entry>
-     <entry><type>time without time zone</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
-    </row>
-    <row>
-     <entry><literal>timetz_minmax_ops</literal></entry>
-     <entry><type>time with time zone</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
-    </row>
-    <row>
-     <entry><literal>uuid_minmax_ops</literal></entry>
-     <entry><type>uuid</type></entry>
-     <entry>
-      <literal>&lt;</literal>
-      <literal>&lt;=</literal>
-      <literal>=</literal>
-      <literal>&gt;=</literal>
-      <literal>&gt;</literal>
-     </entry>
+     <entry morerows="4"><literal>varbit_minmax_ops</literal></entry>
+     <entry morerows="4"><type>varbit</type></entry>
+     <entry><literal>=(bit varying,bit varying)</literal></entry>
     </row>
+    <row><entry><literal>&lt;(bit varying,bit varying)</literal></entry></row>
+    <row><entry><literal>&gt;(bit varying,bit varying)</literal></entry></row>
+    <row><entry><literal>&lt;=(bit varying,bit varying)</literal></entry></row>
+    <row><entry><literal>&gt;=(bit varying,bit varying)</literal></entry></row>
    </tbody>
   </tgroup>
  </table>
diff --git a/doc/src/sgml/gin.sgml b/doc/src/sgml/gin.sgml
index 2d862669c3..6fee0280be 100644
--- a/doc/src/sgml/gin.sgml
+++ b/doc/src/sgml/gin.sgml
@@ -85,43 +85,57 @@
     </thead>
     <tbody>
      <row>
-      <entry><literal>array_ops</literal></entry>
-      <entry><type>anyarray</type></entry>
-      <entry>
-       <literal>&amp;&amp;</literal>
-       <literal>&lt;@</literal>
-       <literal>=</literal>
-       <literal>@&gt;</literal>
-      </entry>
+      <entry morerows="3"><literal>array_ops</literal></entry>
+      <entry morerows="3"><type>anyarray</type></entry>
+      <entry><literal>&amp;&amp;(anyarray,anyarray)</literal></entry>
      </row>
      <row>
-      <entry><literal>jsonb_ops</literal></entry>
-      <entry><type>jsonb</type></entry>
-      <entry>
-       <literal>?</literal>
-       <literal>?&amp;</literal>
-       <literal>?|</literal>
-       <literal>@&gt;</literal>
-       <literal>@?</literal>
-       <literal>@@</literal>
-      </entry>
+      <entry><literal>@&gt;(anyarray,anyarray)</literal></entry>
      </row>
      <row>
-      <entry><literal>jsonb_path_ops</literal></entry>
-      <entry><type>jsonb</type></entry>
-      <entry>
-       <literal>@&gt;</literal>
-       <literal>@?</literal>
-       <literal>@@</literal>
-      </entry>
+      <entry><literal>&lt;@(anyarray,anyarray)</literal></entry>
      </row>
      <row>
-      <entry><literal>tsvector_ops</literal></entry>
-      <entry><type>tsvector</type></entry>
-      <entry>
-       <literal>@@</literal>
-       <literal>@@@</literal>
-      </entry>
+      <entry><literal>=(anyarray,anyarray)</literal></entry>
+     </row>
+     <row>
+      <entry morerows="5"><literal>jsonb_ops</literal></entry>
+      <entry morerows="5"><type>jsonb</type></entry>
+      <entry><literal>@&gt;(jsonb,jsonb)</literal></entry>
+     </row>
+     <row>
+      <entry><literal>@?(jsonb,jsonpath)</literal></entry>
+     </row>
+     <row>
+      <entry><literal>@@(jsonb,jsonpath)</literal></entry>
+     </row>
+     <row>
+      <entry><literal>?(jsonb,text)</literal></entry>
+     </row>
+     <row>
+      <entry><literal>?|(jsonb,text[])</literal></entry>
+     </row>
+     <row>
+      <entry><literal>?&amp;(jsonb,text[])</literal></entry>
+     </row>
+     <row>
+      <entry morerows="2"><literal>jsonb_path_ops</literal></entry>
+      <entry morerows="2"><type>jsonb</type></entry>
+      <entry><literal>@&gt;(jsonb,jsonb)</literal></entry>
+     </row>
+     <row>
+      <entry><literal>@?(jsonb,jsonpath)</literal></entry>
+     </row>
+     <row>
+      <entry><literal>@@(jsonb,jsonpath)</literal></entry>
+     </row>
+     <row>
+      <entry morerows="1"><literal>tsvector_ops</literal></entry>
+      <entry morerows="1"><type>tsvector</type></entry>
+      <entry><literal>@@(tsvector,tsquery)</literal></entry>
+     </row>
+     <row>
+      <entry><literal>@@@(tsvector,tsquery)</literal></entry>
      </row>
     </tbody>
    </tgroup>
diff --git a/doc/src/sgml/gist.sgml b/doc/src/sgml/gist.sgml
index a505815f4e..0637077f6f 100644
--- a/doc/src/sgml/gist.sgml
+++ b/doc/src/sgml/gist.sgml
@@ -64,146 +64,119 @@
     </thead>
     <tbody>
      <row>
-      <entry><literal>box_ops</literal></entry>
-      <entry><type>box</type></entry>
-      <entry>
-       <literal>&amp;&amp;</literal>
-       <literal>&amp;&gt;</literal>
-       <literal>&amp;&lt;</literal>
-       <literal>&amp;&lt;|</literal>
-       <literal>&gt;&gt;</literal>
-       <literal>&lt;&lt;</literal>
-       <literal>&lt;&lt;|</literal>
-       <literal>&lt;@</literal>
-       <literal>@&gt;</literal>
-       <literal>@</literal>
-       <literal>|&amp;&gt;</literal>
-       <literal>|&gt;&gt;</literal>
-       <literal>~</literal>
-       <literal>~=</literal>
-      </entry>
-      <entry>
-       <literal>&lt;-&gt;</literal>
-      </entry>
+      <entry morerows="13"><literal>box_ops</literal></entry>
+      <entry morerows="13"><type>box</type></entry>
+      <entry><literal>&lt;&lt;(box,box)</literal></entry>
+      <entry morerows="13"><literal>&lt;-&gt;(box,point)</literal></entry>
      </row>
+     <row><entry><literal>&amp;&lt;(box,box)</literal></entry></row>
+     <row><entry><literal>&amp;&amp;(box,box)</literal></entry></row>
+     <row><entry><literal>&amp;&gt;(box,box)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;(box,box)</literal></entry></row>
+     <row><entry><literal>~=(box,box)</literal></entry></row>
+     <row><entry><literal>@&gt;(box,box)</literal></entry></row>
+     <row><entry><literal>&lt;@(box,box)</literal></entry></row>
+     <row><entry><literal>&amp;&lt;|(box,box)</literal></entry></row>
+     <row><entry><literal>&lt;&lt;|(box,box)</literal></entry></row>
+     <row><entry><literal>|&gt;&gt;(box,box)</literal></entry></row>
+     <row><entry><literal>|&amp;&gt;(box,box)</literal></entry></row>
+     <row><entry><literal>~(box,box)</literal></entry></row>
+     <row><entry><literal>@(box,box)</literal></entry></row>
      <row>
-      <entry><literal>circle_ops</literal></entry>
-      <entry><type>circle</type></entry>
-      <entry>
-       <literal>&amp;&amp;</literal>
-       <literal>&amp;&gt;</literal>
-       <literal>&amp;&lt;</literal>
-       <literal>&amp;&lt;|</literal>
-       <literal>&gt;&gt;</literal>
-       <literal>&lt;&lt;</literal>
-       <literal>&lt;&lt;|</literal>
-       <literal>&lt;@</literal>
-       <literal>@&gt;</literal>
-       <literal>@</literal>
-       <literal>|&amp;&gt;</literal>
-       <literal>|&gt;&gt;</literal>
-       <literal>~</literal>
-       <literal>~=</literal>
-      </entry>
-      <entry>
-       <literal>&lt;-&gt;</literal>
-      </entry>
+      <entry morerows="13"><literal>circle_ops</literal></entry>
+      <entry morerows="13"><type>circle</type></entry>
+      <entry><literal>&lt;&lt;(circle,circle)</literal></entry>
+      <entry morerows="13"><literal>&lt;-&gt;(circle,point)</literal></entry>
      </row>
+     <row><entry><literal>&amp;&lt;(circle,circle)</literal></entry></row>
+     <row><entry><literal>&amp;&gt;(circle,circle)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;(circle,circle)</literal></entry></row>
+     <row><entry><literal>&lt;@(circle,circle)</literal></entry></row>
+     <row><entry><literal>@&gt;(circle,circle)</literal></entry></row>
+     <row><entry><literal>~=(circle,circle)</literal></entry></row>
+     <row><entry><literal>&amp;&amp;(circle,circle)</literal></entry></row>
+     <row><entry><literal>|&gt;&gt;(circle,circle)</literal></entry></row>
+     <row><entry><literal>&lt;&lt;|(circle,circle)</literal></entry></row>
+     <row><entry><literal>&amp;&lt;|(circle,circle)</literal></entry></row>
+     <row><entry><literal>|&amp;&gt;(circle,circle)</literal></entry></row>
+     <row><entry><literal>@(circle,circle)</literal></entry></row>
+     <row><entry><literal>~(circle,circle)</literal></entry></row>
      <row>
-      <entry><literal>inet_ops</literal></entry>
-      <entry><type>inet</type>, <type>cidr</type></entry>
-      <entry>
-       <literal>&amp;&amp;</literal>
-       <literal>&gt;&gt;</literal>
-       <literal>&gt;&gt;=</literal>
-       <literal>&gt;</literal>
-       <literal>&gt;=</literal>
-       <literal>&lt;&gt;</literal>
-       <literal>&lt;&lt;</literal>
-       <literal>&lt;&lt;=</literal>
-       <literal>&lt;</literal>
-       <literal>&lt;=</literal>
-       <literal>=</literal>
-      </entry>
-      <entry>
-      </entry>
+      <entry morerows="10"><literal>inet_ops</literal></entry>
+      <entry morerows="10"><type>inet</type>, <type>cidr</type></entry>
+      <entry><literal>&lt;&lt;(inet,inet)</literal></entry>
+      <entry morerows="10"></entry>
      </row>
+     <row><entry><literal>&lt;&lt;=(inet,inet)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;(inet,inet)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;=(inet,inet)</literal></entry></row>
+     <row><entry><literal>=(inet,inet)</literal></entry></row>
+     <row><entry><literal>&lt;&gt;(inet,inet)</literal></entry></row>
+     <row><entry><literal>&lt;(inet,inet)</literal></entry></row>
+     <row><entry><literal>&lt;=(inet,inet)</literal></entry></row>
+     <row><entry><literal>&gt;(inet,inet)</literal></entry></row>
+     <row><entry><literal>&gt;=(inet,inet)</literal></entry></row>
+     <row><entry><literal>&amp;&amp;(inet,inet)</literal></entry></row>
      <row>
-      <entry><literal>point_ops</literal></entry>
-      <entry><type>point</type></entry>
-      <entry>
-       <literal>&gt;&gt;</literal>
-       <literal>&gt;^</literal>
-       <literal>&lt;&lt;</literal>
-       <literal>&lt;@</literal>
-       <literal>&lt;@</literal>
-       <literal>&lt;@</literal>
-       <literal>&lt;^</literal>
-       <literal>~=</literal>
-      </entry>
-      <entry>
-       <literal>&lt;-&gt;</literal>
-      </entry>
+      <entry morerows="7"><literal>point_ops</literal></entry>
+      <entry morerows="7"><type>point</type></entry>
+      <entry><literal>&gt;^(point,point)</literal></entry>
+      <entry morerows="7"><literal>&lt;-&gt;(point,point)</literal></entry>
      </row>
+     <row><entry><literal>&lt;&lt;(point,point)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;(point,point)</literal></entry></row>
+     <row><entry><literal>&lt;^(point,point)</literal></entry></row>
+     <row><entry><literal>~=(point,point)</literal></entry></row>
+     <row><entry><literal>&lt;@(point,box)</literal></entry></row>
+     <row><entry><literal>&lt;@(point,polygon)</literal></entry></row>
+     <row><entry><literal>&lt;@(point,circle)</literal></entry></row>
      <row>
-      <entry><literal>poly_ops</literal></entry>
-      <entry><type>polygon</type></entry>
-      <entry>
-       <literal>&amp;&amp;</literal>
-       <literal>&amp;&gt;</literal>
-       <literal>&amp;&lt;</literal>
-       <literal>&amp;&lt;|</literal>
-       <literal>&gt;&gt;</literal>
-       <literal>&lt;&lt;</literal>
-       <literal>&lt;&lt;|</literal>
-       <literal>&lt;@</literal>
-       <literal>@&gt;</literal>
-       <literal>@</literal>
-       <literal>|&amp;&gt;</literal>
-       <literal>|&gt;&gt;</literal>
-       <literal>~</literal>
-       <literal>~=</literal>
-      </entry>
-      <entry>
-       <literal>&lt;-&gt;</literal>
-      </entry>
+      <entry morerows="14"><literal>poly_ops</literal></entry>
+      <entry morerows="14"><type>polygon</type></entry>
+      <entry><literal>&lt;&lt;(polygon,polygon)</literal></entry>
+      <entry morerows="14"><literal>&lt;-&gt;(polygon,point)</literal></entry>
      </row>
+     <row><entry><literal>&amp;&lt;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&amp;&gt;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&lt;@(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>@&gt;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>~=(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&amp;&amp;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&lt;&lt;|(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&amp;&lt;|(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>|&amp;&gt;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>|&gt;&gt;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>@(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>~(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&lt;-&gt;(polygon,point)</literal></entry></row>
      <row>
-      <entry><literal>range_ops</literal></entry>
-      <entry>any range type</entry>
-      <entry>
-       <literal>&amp;&amp;</literal>
-       <literal>&amp;&gt;</literal>
-       <literal>&amp;&lt;</literal>
-       <literal>&gt;&gt;</literal>
-       <literal>&lt;&lt;</literal>
-       <literal>&lt;@</literal>
-       <literal>-|-</literal>
-       <literal>=</literal>
-       <literal>@&gt;</literal>
-       <literal>@&gt;</literal>
-      </entry>
-      <entry>
-      </entry>
+      <entry morerows="9"><literal>range_ops</literal></entry>
+      <entry morerows="9">any range type</entry>
+      <entry><literal>=(anyrange,anyrange)</literal></entry>
+      <entry morerows="9"></entry>
      </row>
+     <row><entry><literal>&amp;&amp;(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>@&gt;(anyrange,anyelement)</literal></entry></row>
+     <row><entry><literal>@&gt;(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>&lt;@(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>&lt;&lt;(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>&amp;&lt;(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>&amp;&gt;(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>-|-(anyrange,anyrange)</literal></entry></row>
      <row>
-      <entry><literal>tsquery_ops</literal></entry>
-      <entry><type>tsquery</type></entry>
-      <entry>
-       <literal>&lt;@</literal>
-       <literal>@&gt;</literal>
-      </entry>
-      <entry>
-      </entry>
+      <entry morerows="1"><literal>tsquery_ops</literal></entry>
+      <entry morerows="1"><type>tsquery</type></entry>
+      <entry><literal>&lt;@(tsquery,tsquery)</literal></entry>
+      <entry morerows="1"></entry>
      </row>
+     <row><entry><literal>@&gt;(tsquery,tsquery)</literal></entry></row>
      <row>
       <entry><literal>tsvector_ops</literal></entry>
       <entry><type>tsvector</type></entry>
-      <entry>
-       <literal>@@</literal>
-      </entry>
-      <entry>
-      </entry>
+      <entry><literal>@@(tsvector,tsquery)</literal></entry>
+      <entry></entry>
      </row>
     </tbody>
    </tgroup>
diff --git a/doc/src/sgml/spgist.sgml b/doc/src/sgml/spgist.sgml
index b86302e4ef..5d45ef81e0 100644
--- a/doc/src/sgml/spgist.sgml
+++ b/doc/src/sgml/spgist.sgml
@@ -75,131 +75,113 @@
     </thead>
     <tbody>
      <row>
-      <entry><literal>kd_point_ops</literal></entry>
-      <entry><type>point</type></entry>
-      <entry>
-       <literal>&lt;&lt;</literal>
-       <literal>&lt;@</literal>
-       <literal>&lt;^</literal>
-       <literal>&gt;&gt;</literal>
-       <literal>&gt;^</literal>
-       <literal>~=</literal>
-      </entry>
-      <entry>
-       <literal>&lt;-&gt;</literal>
-      </entry>
+      <entry morerows="11"><literal>box_ops</literal></entry>
+      <entry morerows="11"><type>box</type></entry>
+      <entry><literal>&lt;&lt;(box,box)</literal></entry>
+      <entry morerows="11"><literal>&lt;-&gt;(box,point)</literal></entry>      
      </row>
+     <row><entry><literal>&amp;&lt;(box,box)</literal></entry></row>
+     <row><entry><literal>&amp;&gt;(box,box)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;(box,box)</literal></entry></row>
+     <row><entry><literal>&lt;@(box,box)</literal></entry></row>
+     <row><entry><literal>@&gt;(box,box)</literal></entry></row>
+     <row><entry><literal>~=(box,box)</literal></entry></row>
+     <row><entry><literal>&amp;&amp;(box,box)</literal></entry></row>
+     <row><entry><literal>&lt;&lt;|(box,box)</literal></entry></row>
+     <row><entry><literal>&amp;&lt;|(box,box)</literal></entry></row>
+     <row><entry><literal>|&amp;&gt;(box,box)</literal></entry></row>
+     <row><entry><literal>|&gt;&gt;(box,box)</literal></entry></row>
+
      <row>
-      <entry><literal>quad_point_ops</literal></entry>
-      <entry><type>point</type></entry>
-      <entry>
-       <literal>&lt;&lt;</literal>
-       <literal>&lt;@</literal>
-       <literal>&lt;^</literal>
-       <literal>&gt;&gt;</literal>
-       <literal>&gt;^</literal>
-       <literal>~=</literal>
-      </entry>
-      <entry>
-       <literal>&lt;-&gt;</literal>
-      </entry>
+      <entry morerows="5"><literal>kd_point_ops</literal></entry>
+      <entry morerows="5"><type>point</type></entry>
+      <entry><literal>&gt;^(point,point)</literal></entry>
+      <entry morerows="5"><literal>&lt;-&gt;(point,point)</literal></entry>
      </row>
+     <row><entry><literal>&lt;&lt;(point,point)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;(point,point)</literal></entry></row>
+     <row><entry><literal>&lt;^(point,point)</literal></entry></row>
+     <row><entry><literal>~=(point,point)</literal></entry></row>
+     <row><entry><literal>&lt;@(point,box)</literal></entry></row>
+
      <row>
-      <entry><literal>range_ops</literal></entry>
-      <entry>any range type</entry>
-      <entry>
-       <literal>&amp;&amp;</literal>
-       <literal>&amp;&lt;</literal>
-       <literal>&amp;&gt;</literal>
-       <literal>-|-</literal>
-       <literal>&lt;&lt;</literal>
-       <literal>&lt;@</literal>
-       <literal>=</literal>
-       <literal>&gt;&gt;</literal>
-       <literal>@&gt;</literal>
-      </entry>
-      <entry>
-      </entry>
+      <entry morerows="10"><literal>network_ops</literal></entry>
+      <entry morerows="10"><type>inet</type>, <type>cidr</type></entry>
+      <entry><literal>&lt;&lt;(inet,inet)</literal></entry>
+      <entry morerows="10"></entry>
      </row>
+     <row><entry><literal>&lt;&lt;=(inet,inet)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;(inet,inet)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;=(inet,inet)</literal></entry></row>
+     <row><entry><literal>=(inet,inet)</literal></entry></row>
+     <row><entry><literal>&lt;&gt;(inet,inet)</literal></entry></row>
+     <row><entry><literal>&lt;(inet,inet)</literal></entry></row>
+     <row><entry><literal>&lt;=(inet,inet)</literal></entry></row>
+     <row><entry><literal>&gt;(inet,inet)</literal></entry></row>
+     <row><entry><literal>&gt;=(inet,inet)</literal></entry></row>
+     <row><entry><literal>&amp;&amp;(inet,inet)</literal></entry></row>
+
      <row>
-      <entry><literal>box_ops</literal></entry>
-      <entry><type>box</type></entry>
-      <entry>
-       <literal>&lt;&lt;</literal>
-       <literal>&amp;&lt;</literal>
-       <literal>&amp;&amp;</literal>
-       <literal>&amp;&gt;</literal>
-       <literal>&gt;&gt;</literal>
-       <literal>~=</literal>
-       <literal>@&gt;</literal>
-       <literal>&lt;@</literal>
-       <literal>&amp;&lt;|</literal>
-       <literal>&lt;&lt;|</literal>
-       <literal>|&gt;&gt;</literal>
-       <literal>|&amp;&gt;</literal>
-      </entry>
-      <entry>
-       <literal>&lt;-&gt;</literal>
-      </entry>
+      <entry morerows="11"><literal>poly_ops</literal></entry>
+      <entry morerows="11"><type>polygon</type></entry>
+      <entry><literal>&lt;&lt;(polygon,polygon)</literal></entry>
+      <entry morerows="11"><literal>&lt;-&gt;(polygon,point)</literal></entry>
      </row>
+     <row><entry><literal>&amp;&lt;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&amp;&gt;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&lt;@(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>@&gt;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>~=(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&amp;&amp;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&lt;&lt;|(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>&amp;&lt;|(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>|&gt;&gt;(polygon,polygon)</literal></entry></row>
+     <row><entry><literal>|&amp;&gt;(polygon,polygon)</literal></entry></row>      
+
      <row>
-      <entry><literal>poly_ops</literal></entry>
-      <entry><type>polygon</type></entry>
-      <entry>
-       <literal>&lt;&lt;</literal>
-       <literal>&amp;&lt;</literal>
-       <literal>&amp;&amp;</literal>
-       <literal>&amp;&gt;</literal>
-       <literal>&gt;&gt;</literal>
-       <literal>~=</literal>
-       <literal>@&gt;</literal>
-       <literal>&lt;@</literal>
-       <literal>&amp;&lt;|</literal>
-       <literal>&lt;&lt;|</literal>
-       <literal>|&gt;&gt;</literal>
-       <literal>|&amp;&gt;</literal>
-      </entry>
-      <entry>
-        <literal>&lt;-&gt;</literal>
-      </entry>
+      <entry morerows="5"><literal>quad_point_ops</literal></entry>
+      <entry morerows="5"><type>point</type></entry>
+      <entry><literal>&gt;^(point,point)</literal></entry>
+      <entry morerows="5"><literal>&lt;-&gt;(point,point)</literal></entry>
      </row>
+     <row><entry><literal>&lt;&lt;(point,point)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;(point,point)</literal></entry></row>
+     <row><entry><literal>&lt;^(point,point)</literal></entry></row>
+     <row><entry><literal>~=(point,point)</literal></entry></row>
+     <row><entry><literal>&lt;@(point,box)</literal></entry></row>
+
      <row>
-      <entry><literal>text_ops</literal></entry>
-      <entry><type>text</type></entry>
-      <entry>
-       <literal>&lt;</literal>
-       <literal>&lt;=</literal>
-       <literal>=</literal>
-       <literal>&gt;</literal>
-       <literal>&gt;=</literal>
-       <literal>~&lt;=~</literal>
-       <literal>~&lt;~</literal>
-       <literal>~&gt;=~</literal>
-       <literal>~&gt;~</literal>
-       <literal>^@</literal>
-      </entry>
-      <entry>
-      </entry>
+      <entry morerows="9"><literal>range_ops</literal></entry>
+      <entry morerows="9">any range type</entry>
+      <entry><literal>=(anyrange,anyrange)</literal></entry>
+      <entry morerows="9"></entry>
      </row>
+     <row><entry><literal>&amp;&amp;(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>@&gt;(anyrange,anyelement)</literal></entry></row>
+     <row><entry><literal>@&gt;(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>&lt;@(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>&lt;&lt;(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>&gt;&gt;(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>&amp;&lt;(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>&amp;&gt;(anyrange,anyrange)</literal></entry></row>
+     <row><entry><literal>-|-(anyrange,anyrange)</literal></entry></row>
+ 
      <row>
-      <entry><literal>inet_ops</literal></entry>
-      <entry><type>inet</type>, <type>cidr</type></entry>
-      <entry>
-       <literal>&amp;&amp;</literal>
-       <literal>&gt;&gt;</literal>
-       <literal>&gt;&gt;=</literal>
-       <literal>&gt;</literal>
-       <literal>&gt;=</literal>
-       <literal>&lt;&gt;</literal>
-       <literal>&lt;&lt;</literal>
-       <literal>&lt;&lt;=</literal>
-       <literal>&lt;</literal>
-       <literal>&lt;=</literal>
-       <literal>=</literal>
-      </entry>
-      <entry>
-      </entry>
+      <entry morerows="9"><literal>text_ops</literal></entry>
+      <entry morerows="9"><type>text</type></entry>
+      <entry><literal>=(text,text)</literal></entry>
+      <entry morerows="9"></entry>
      </row>
+     <row><entry><literal>&lt;(text,text)</literal></entry></row>
+     <row><entry><literal>&lt;=(text,text)</literal></entry></row>
+     <row><entry><literal>&gt;(text,text)</literal></entry></row>
+     <row><entry><literal>&gt;=(text,text)</literal></entry></row>
+     <row><entry><literal>~&lt;~(text,text)</literal></entry></row>
+     <row><entry><literal>~&lt;=~(text,text)</literal></entry></row>
+     <row><entry><literal>~&gt;=~(text,text)</literal></entry></row>
+     <row><entry><literal>~&gt;~(text,text)</literal></entry></row>
+     <row><entry><literal>^@(text,text)</literal></entry></row>
     </tbody>
    </tgroup>
   </table>

Attachment: signature.asc
Description: PGP signature

Reply via email to