On Wed, Aug 26, 2020 at 07:19:09PM -0400, Tom Lane wrote: > With one eye on the PDF width issue, I propose that we not draw > the distinction, but just list all the relevant operators for each > opclass (its native ones, plus the applicable "loose" operators). > Then we only need two columns, opclass and operators.
Indeed, removing the types makes sense if we list them with the operators. I have been looking at your suggestions, and adding a space before the first parenthesis where the types are listed sounds good to me, but I am not sure that it is a good idea to add spaces between each type. Looking at the pdf produced, I think that we should also drop entirely colspec for the BRIN table as it gets much small in width once the data type column is removed. I also looked at rowsep for the PDF, and I tend to prefer the version where we separate each cell for the operator, as a matter of readability. This leads me to the updated version attached. BRIN has 29 different opclasses, visibly. -- Michael
diff --git a/doc/src/sgml/brin.sgml b/doc/src/sgml/brin.sgml
index b9d596e3c4..c3298ed92b 100644
--- a/doc/src/sgml/brin.sgml
+++ b/doc/src/sgml/brin.sgml
@@ -120,354 +120,293 @@ LOG: request for BRIN range summarization for index "brin_wi_idx" page 128 was
<table id="brin-builtin-opclasses-table">
<title>Built-in <acronym>BRIN</acronym> Operator Classes</title>
- <tgroup cols="3">
- <colspec colname="col1" colwidth="2*"/>
- <colspec colname="col2" colwidth="2*"/>
- <colspec colname="col3" colwidth="1*"/>
+ <tgroup cols="2">
<thead>
<row>
<entry>Name</entry>
- <entry>Indexed Data Type</entry>
<entry>Indexable Operators</entry>
</row>
</thead>
<tbody>
<row>
- <entry><literal>int8_minmax_ops</literal></entry>
- <entry><type>bigint</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="13"><literal>range_inclusion_ops</literal></entry>
+ <entry><literal>= (anyrange,anyrange)</literal></entry>
</row>
+ <row><entry><literal>< (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal><= (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>>= (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>> (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>&& (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>@> (anyrange,anyelement)</literal></entry></row>
+ <row><entry><literal>@> (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal><@ (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal><< (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>>> (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>&< (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>&> (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>-|- (anyrange,anyrange)</literal></entry></row>
+
<row>
- <entry><literal>bit_minmax_ops</literal></entry>
- <entry><type>bit</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>bit_minmax_ops</literal></entry>
+ <entry><literal>= (bit,bit)</literal></entry>
</row>
+ <row><entry><literal>< (bit,bit)</literal></entry></row>
+ <row><entry><literal>> (bit,bit)</literal></entry></row>
+ <row><entry><literal><= (bit,bit)</literal></entry></row>
+ <row><entry><literal>>= (bit,bit)</literal></entry></row>
+
<row>
- <entry><literal>varbit_minmax_ops</literal></entry>
- <entry><type>bit varying</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>varbit_minmax_ops</literal></entry>
+ <entry><literal>= (varbit,varbit)</literal></entry>
</row>
+ <row><entry><literal>< (varbit,varbit)</literal></entry></row>
+ <row><entry><literal>> (varbit,varbit)</literal></entry></row>
+ <row><entry><literal><= (varbit,varbit)</literal></entry></row>
+ <row><entry><literal>>= (varbit,varbit)</literal></entry></row>
+
<row>
- <entry><literal>box_inclusion_ops</literal></entry>
- <entry><type>box</type></entry>
- <entry>
- <literal><<</literal>
- <literal>&<</literal>
- <literal>&&</literal>
- <literal>&></literal>
- <literal>>></literal>
- <literal>~=</literal>
- <literal>@></literal>
- <literal><@</literal>
- <literal>&<|</literal>
- <literal><<|</literal>
- <literal>|>></literal>
- <literal>|&></literal>
- </entry>
+ <entry morerows="12"><literal>box_inclusion_ops</literal></entry>
+ <entry><literal>@> (box,point)</literal></entry>
</row>
+ <row><entry><literal><< (box,box)</literal></entry></row>
+ <row><entry><literal>&< (box,box)</literal></entry></row>
+ <row><entry><literal>&> (box,box)</literal></entry></row>
+ <row><entry><literal>>> (box,box)</literal></entry></row>
+ <row><entry><literal><@ (box,box)</literal></entry></row>
+ <row><entry><literal>@> (box,box)</literal></entry></row>
+ <row><entry><literal>~= (box,box)</literal></entry></row>
+ <row><entry><literal>&& (box,box)</literal></entry></row>
+ <row><entry><literal><<| (box,box)</literal></entry></row>
+ <row><entry><literal>&<| (box,box)</literal></entry></row>
+ <row><entry><literal>|&> (box,box)</literal></entry></row>
+ <row><entry><literal>|>> (box,box)</literal></entry></row>
+
<row>
- <entry><literal>bytea_minmax_ops</literal></entry>
- <entry><type>bytea</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>bpchar_minmax_ops</literal></entry>
+ <entry><literal>= (character,character)</literal></entry>
</row>
+ <row><entry><literal>< (character,character)</literal></entry></row>
+ <row><entry><literal><= (character,character)</literal></entry></row>
+ <row><entry><literal>> (character,character)</literal></entry></row>
+ <row><entry><literal>>= (character,character)</literal></entry></row>
+
<row>
- <entry><literal>bpchar_minmax_ops</literal></entry>
- <entry><type>character</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>bytea_minmax_ops</literal></entry>
+ <entry><literal>= (bytea,bytea)</literal></entry>
</row>
+ <row><entry><literal>< (bytea,bytea)</literal></entry></row>
+ <row><entry><literal><= (bytea,bytea)</literal></entry></row>
+ <row><entry><literal>> (bytea,bytea)</literal></entry></row>
+ <row><entry><literal>>= (bytea,bytea)</literal></entry></row>
+
<row>
- <entry><literal>char_minmax_ops</literal></entry>
- <entry><type>"char"</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>char_minmax_ops</literal></entry>
+ <entry><literal>= ("char","char")</literal></entry>
</row>
+ <row><entry><literal>< ("char","char")</literal></entry></row>
+ <row><entry><literal><= ("char","char")</literal></entry></row>
+ <row><entry><literal>> ("char","char")</literal></entry></row>
+ <row><entry><literal>>= ("char","char")</literal></entry></row>
+
<row>
- <entry><literal>date_minmax_ops</literal></entry>
- <entry><type>date</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>date_minmax_ops</literal></entry>
+ <entry><literal>= (date,date)</literal></entry>
</row>
+ <row><entry><literal>< (date,date)</literal></entry></row>
+ <row><entry><literal><= (date,date)</literal></entry></row>
+ <row><entry><literal>> (date,date)</literal></entry></row>
+ <row><entry><literal>>= (date,date)</literal></entry></row>
+
<row>
- <entry><literal>float8_minmax_ops</literal></entry>
- <entry><type>double precision</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>float4_minmax_ops</literal></entry>
+ <entry><literal>= (float4,float4)</literal></entry>
</row>
+ <row><entry><literal>< (float4,float4)</literal></entry></row>
+ <row><entry><literal>> (float4,float4)</literal></entry></row>
+ <row><entry><literal><= (float4,float4)</literal></entry></row>
+ <row><entry><literal>>= (float4,float4)</literal></entry></row>
+
<row>
- <entry><literal>inet_minmax_ops</literal></entry>
- <entry><type>inet</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>float8_minmax_ops</literal></entry>
+ <entry><literal>= (float8,float8)</literal></entry>
</row>
+ <row><entry><literal>< (float8,float8)</literal></entry></row>
+ <row><entry><literal><= (float8,float8)</literal></entry></row>
+ <row><entry><literal>> (float8,float8)</literal></entry></row>
+ <row><entry><literal>>= (float8,float8)</literal></entry></row>
+
<row>
- <entry><literal>network_inclusion_ops</literal></entry>
- <entry><type>inet</type></entry>
- <entry>
- <literal>&&</literal>
- <literal>>>=</literal>
- <literal><<=</literal>
- <literal>=</literal>
- <literal>>></literal>
- <literal><<</literal>
- </entry>
+ <entry morerows="5"><literal>inet_inclusion_ops</literal></entry>
+ <entry><literal><< (inet,inet)</literal></entry>
</row>
+ <row><entry><literal><<= (inet,inet)</literal></entry></row>
+ <row><entry><literal>>> (inet,inet)</literal></entry></row>
+ <row><entry><literal>>>= (inet,inet)</literal></entry></row>
+ <row><entry><literal>= (inet,inet)</literal></entry></row>
+ <row><entry><literal>&& (inet,inet)</literal></entry></row>
+
<row>
- <entry><literal>int4_minmax_ops</literal></entry>
- <entry><type>integer</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>inet_minmax_ops</literal></entry>
+ <entry><literal>= (inet,inet)</literal></entry>
</row>
+ <row><entry><literal>< (inet,inet)</literal></entry></row>
+ <row><entry><literal><= (inet,inet)</literal></entry></row>
+ <row><entry><literal>> (inet,inet)</literal></entry></row>
+ <row><entry><literal>>= (inet,inet)</literal></entry></row>
+
<row>
- <entry><literal>interval_minmax_ops</literal></entry>
- <entry><type>interval</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>int2_minmax_ops</literal></entry>
+ <entry><literal>= (int2,int2)</literal></entry>
</row>
+ <row><entry><literal>< (int2,int2)</literal></entry></row>
+ <row><entry><literal>> (int2,int2)</literal></entry></row>
+ <row><entry><literal><= (int2,int2)</literal></entry></row>
+ <row><entry><literal>>= (int2,int2)</literal></entry></row>
+
<row>
- <entry><literal>macaddr_minmax_ops</literal></entry>
- <entry><type>macaddr</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>int4_minmax_ops</literal></entry>
+ <entry><literal>= (int4,int4)</literal></entry>
</row>
+ <row><entry><literal>< (int4,int4)</literal></entry></row>
+ <row><entry><literal>> (int4,int4)</literal></entry></row>
+ <row><entry><literal><= (int4,int4)</literal></entry></row>
+ <row><entry><literal>>= (int4,int4)</literal></entry></row>
+
<row>
- <entry><literal>macaddr8_minmax_ops</literal></entry>
- <entry><type>macaddr8</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>int8_minmax_ops</literal></entry>
+ <entry><literal>= (bigint,bigint)</literal></entry>
</row>
+ <row><entry><literal>< (bigint,bigint)</literal></entry></row>
+ <row><entry><literal>> (bigint,bigint)</literal></entry></row>
+ <row><entry><literal><= (bigint,bigint)</literal></entry></row>
+ <row><entry><literal>>= (bigint,bigint)</literal></entry></row>
+
<row>
- <entry><literal>name_minmax_ops</literal></entry>
- <entry><type>name</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>interval_minmax_ops</literal></entry>
+ <entry><literal>= (interval,interval)</literal></entry>
</row>
+ <row><entry><literal>< (interval,interval)</literal></entry></row>
+ <row><entry><literal><= (interval,interval)</literal></entry></row>
+ <row><entry><literal>> (interval,interval)</literal></entry></row>
+ <row><entry><literal>>= (interval,interval)</literal></entry></row>
+
<row>
- <entry><literal>numeric_minmax_ops</literal></entry>
- <entry><type>numeric</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>macaddr_minmax_ops</literal></entry>
+ <entry><literal>= (macaddr,macaddr)</literal></entry>
</row>
+ <row><entry><literal>< (macaddr,macaddr)</literal></entry></row>
+ <row><entry><literal><= (macaddr,macaddr)</literal></entry></row>
+ <row><entry><literal>> (macaddr,macaddr)</literal></entry></row>
+ <row><entry><literal>>= (macaddr,macaddr)</literal></entry></row>
+
<row>
- <entry><literal>pg_lsn_minmax_ops</literal></entry>
- <entry><type>pg_lsn</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>macaddr8_minmax_ops</literal></entry>
+ <entry><literal>= (macaddr8,macaddr8)</literal></entry>
</row>
+ <row><entry><literal>< (macaddr8,macaddr8)</literal></entry></row>
+ <row><entry><literal><= (macaddr8,macaddr8)</literal></entry></row>
+ <row><entry><literal>> (macaddr8,macaddr8)</literal></entry></row>
+ <row><entry><literal>>= (macaddr8,macaddr8)</literal></entry></row>
+
<row>
- <entry><literal>oid_minmax_ops</literal></entry>
- <entry><type>oid</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>name_minmax_ops</literal></entry>
+ <entry><literal>= (name,name)</literal></entry>
</row>
+ <row><entry><literal>< (name,name)</literal></entry></row>
+ <row><entry><literal><= (name,name)</literal></entry></row>
+ <row><entry><literal>> (name,name)</literal></entry></row>
+ <row><entry><literal>>= (name,name)</literal></entry></row>
+
<row>
- <entry><literal>range_inclusion_ops</literal></entry>
- <entry><type>any range type</type></entry>
- <entry>
- <literal><<</literal>
- <literal>&<</literal>
- <literal>&&</literal>
- <literal>&></literal>
- <literal>>></literal>
- <literal>@></literal>
- <literal><@</literal>
- <literal>-|-</literal>
- <literal>=</literal>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>></literal>
- <literal>>=</literal>
- </entry>
+ <entry morerows="4"><literal>numeric_minmax_ops</literal></entry>
+ <entry><literal>= (numeric,numeric)</literal></entry>
</row>
+ <row><entry><literal>< (numeric,numeric)</literal></entry></row>
+ <row><entry><literal><= (numeric,numeric)</literal></entry></row>
+ <row><entry><literal>> (numeric,numeric)</literal></entry></row>
+ <row><entry><literal>>= (numeric,numeric)</literal></entry></row>
+
<row>
- <entry><literal>float4_minmax_ops</literal></entry>
- <entry><type>real</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>oid_minmax_ops</literal></entry>
+ <entry><literal>= (oid,oid)</literal></entry>
</row>
+ <row><entry><literal>< (oid,oid)</literal></entry></row>
+ <row><entry><literal>> (oid,oid)</literal></entry></row>
+ <row><entry><literal><= (oid,oid)</literal></entry></row>
+ <row><entry><literal>>= (oid,oid)</literal></entry></row>
+
<row>
- <entry><literal>int2_minmax_ops</literal></entry>
- <entry><type>smallint</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>pg_lsn_minmax_ops</literal></entry>
+ <entry><literal>= (pg_lsn,pg_lsn)</literal></entry>
</row>
+ <row><entry><literal>< (pg_lsn,pg_lsn)</literal></entry></row>
+ <row><entry><literal>> (pg_lsn,pg_lsn)</literal></entry></row>
+ <row><entry><literal><= (pg_lsn,pg_lsn)</literal></entry></row>
+ <row><entry><literal>>= (pg_lsn,pg_lsn)</literal></entry></row>
+
<row>
- <entry><literal>text_minmax_ops</literal></entry>
- <entry><type>text</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>text_minmax_ops</literal></entry>
+ <entry><literal>= (text,text)</literal></entry>
</row>
+ <row><entry><literal>< (text,text)</literal></entry></row>
+ <row><entry><literal><= (text,text)</literal></entry></row>
+ <row><entry><literal>> (text,text)</literal></entry></row>
+ <row><entry><literal>>= (text,text)</literal></entry></row>
+
<row>
- <entry><literal>tid_minmax_ops</literal></entry>
- <entry><type>tid</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>tid_minmax_ops</literal></entry>
+ <entry><literal>= (tid,tid)</literal></entry>
</row>
+ <row><entry><literal>< (tid,tid)</literal></entry></row>
+ <row><entry><literal>> (tid,tid)</literal></entry></row>
+ <row><entry><literal><= (tid,tid)</literal></entry></row>
+ <row><entry><literal>>= (tid,tid)</literal></entry></row>
+
<row>
- <entry><literal>timestamp_minmax_ops</literal></entry>
- <entry><type>timestamp without time zone</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>timestamp_minmax_ops</literal></entry>
+ <entry><literal>= (timestamp,timestamp)</literal></entry>
</row>
+ <row><entry><literal>< (timestamp,timestamp)</literal></entry></row>
+ <row><entry><literal><= (timestamp,timestamp)</literal></entry></row>
+ <row><entry><literal>> (timestamp,timestamp)</literal></entry></row>
+ <row><entry><literal>>= (timestamp,timestamp)</literal></entry></row>
+
<row>
- <entry><literal>timestamptz_minmax_ops</literal></entry>
- <entry><type>timestamp with time zone</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>timestamptz_minmax_ops</literal></entry>
+ <entry><literal>= (timestamptz,timestamptz)</literal></entry>
</row>
+ <row><entry><literal>< (timestamptz,timestamptz)</literal></entry></row>
+ <row><entry><literal><= (timestamptz,timestamptz)</literal></entry></row>
+ <row><entry><literal>> (timestamptz,timestamptz)</literal></entry></row>
+ <row><entry><literal>>= (timestamptz,timestamptz)</literal></entry></row>
+
<row>
- <entry><literal>time_minmax_ops</literal></entry>
- <entry><type>time without time zone</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>time_minmax_ops</literal></entry>
+ <entry><literal>= (time,time)</literal></entry>
</row>
+ <row><entry><literal>< (time,time)</literal></entry></row>
+ <row><entry><literal><= (time,time)</literal></entry></row>
+ <row><entry><literal>> (time,time)</literal></entry></row>
+ <row><entry><literal>>= (time,time)</literal></entry></row>
+
<row>
- <entry><literal>timetz_minmax_ops</literal></entry>
- <entry><type>time with time zone</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>timetz_minmax_ops</literal></entry>
+ <entry><literal>= (timetz,timetz)</literal></entry>
</row>
+ <row><entry><literal>< (timetz,timetz)</literal></entry></row>
+ <row><entry><literal><= (timetz,timetz)</literal></entry></row>
+ <row><entry><literal>> (timetz,timetz)</literal></entry></row>
+ <row><entry><literal>>= (timetz,timetz)</literal></entry></row>
+
<row>
- <entry><literal>uuid_minmax_ops</literal></entry>
- <entry><type>uuid</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>>=</literal>
- <literal>></literal>
- </entry>
+ <entry morerows="4"><literal>uuid_minmax_ops</literal></entry>
+ <entry><literal>= (uuid,uuid)</literal></entry>
</row>
+ <row><entry><literal>< (uuid,uuid)</literal></entry></row>
+ <row><entry><literal>> (uuid,uuid)</literal></entry></row>
+ <row><entry><literal><= (uuid,uuid)</literal></entry></row>
+ <row><entry><literal>>= (uuid,uuid)</literal></entry></row>
+
</tbody>
</tgroup>
</table>
diff --git a/doc/src/sgml/gin.sgml b/doc/src/sgml/gin.sgml
index 2d862669c3..4107a86cb0 100644
--- a/doc/src/sgml/gin.sgml
+++ b/doc/src/sgml/gin.sgml
@@ -75,53 +75,62 @@
<table id="gin-builtin-opclasses-table">
<title>Built-in <acronym>GIN</acronym> Operator Classes</title>
- <tgroup cols="3">
+ <tgroup cols="2">
<thead>
<row>
<entry>Name</entry>
- <entry>Indexed Data Type</entry>
<entry>Indexable Operators</entry>
</row>
</thead>
<tbody>
<row>
- <entry><literal>array_ops</literal></entry>
- <entry><type>anyarray</type></entry>
- <entry>
- <literal>&&</literal>
- <literal><@</literal>
- <literal>=</literal>
- <literal>@></literal>
- </entry>
+ <entry morerows="3"><literal>array_ops</literal></entry>
+ <entry><literal>&& (anyarray,anyarray)</literal></entry>
</row>
<row>
- <entry><literal>jsonb_ops</literal></entry>
- <entry><type>jsonb</type></entry>
- <entry>
- <literal>?</literal>
- <literal>?&</literal>
- <literal>?|</literal>
- <literal>@></literal>
- <literal>@?</literal>
- <literal>@@</literal>
- </entry>
+ <entry><literal>@> (anyarray,anyarray)</literal></entry>
</row>
<row>
- <entry><literal>jsonb_path_ops</literal></entry>
- <entry><type>jsonb</type></entry>
- <entry>
- <literal>@></literal>
- <literal>@?</literal>
- <literal>@@</literal>
- </entry>
+ <entry><literal><@ (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><literal>@> (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>?& (jsonb,text[])</literal></entry>
+ </row>
+ <row>
+ <entry morerows="2"><literal>jsonb_path_ops</literal></entry>
+ <entry><literal>@> (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><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..2ee06585d1 100644
--- a/doc/src/sgml/gist.sgml
+++ b/doc/src/sgml/gist.sgml
@@ -53,157 +53,126 @@
<table id="gist-builtin-opclasses-table">
<title>Built-in <acronym>GiST</acronym> Operator Classes</title>
- <tgroup cols="4">
+ <tgroup cols="3">
<thead>
<row>
<entry>Name</entry>
- <entry>Indexed Data Type</entry>
<entry>Indexable Operators</entry>
<entry>Ordering Operators</entry>
</row>
</thead>
<tbody>
<row>
- <entry><literal>box_ops</literal></entry>
- <entry><type>box</type></entry>
- <entry>
- <literal>&&</literal>
- <literal>&></literal>
- <literal>&<</literal>
- <literal>&<|</literal>
- <literal>>></literal>
- <literal><<</literal>
- <literal><<|</literal>
- <literal><@</literal>
- <literal>@></literal>
- <literal>@</literal>
- <literal>|&></literal>
- <literal>|>></literal>
- <literal>~</literal>
- <literal>~=</literal>
- </entry>
- <entry>
- <literal><-></literal>
- </entry>
+ <entry morerows="13"><literal>box_ops</literal></entry>
+ <entry><literal><< (box,box)</literal></entry>
+ <entry morerows="13"><literal><-> (box,point)</literal></entry>
</row>
+ <row><entry><literal>&< (box,box)</literal></entry></row>
+ <row><entry><literal>&& (box,box)</literal></entry></row>
+ <row><entry><literal>&> (box,box)</literal></entry></row>
+ <row><entry><literal>>> (box,box)</literal></entry></row>
+ <row><entry><literal>~= (box,box)</literal></entry></row>
+ <row><entry><literal>@> (box,box)</literal></entry></row>
+ <row><entry><literal><@ (box,box)</literal></entry></row>
+ <row><entry><literal>&<| (box,box)</literal></entry></row>
+ <row><entry><literal><<| (box,box)</literal></entry></row>
+ <row><entry><literal>|>> (box,box)</literal></entry></row>
+ <row><entry><literal>|&> (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>&&</literal>
- <literal>&></literal>
- <literal>&<</literal>
- <literal>&<|</literal>
- <literal>>></literal>
- <literal><<</literal>
- <literal><<|</literal>
- <literal><@</literal>
- <literal>@></literal>
- <literal>@</literal>
- <literal>|&></literal>
- <literal>|>></literal>
- <literal>~</literal>
- <literal>~=</literal>
- </entry>
- <entry>
- <literal><-></literal>
- </entry>
+ <entry morerows="13"><literal>circle_ops</literal></entry>
+ <entry><literal><< (circle,circle)</literal></entry>
+ <entry morerows="13"><literal><-> (circle,point)</literal></entry>
</row>
+ <row><entry><literal>&< (circle,circle)</literal></entry></row>
+ <row><entry><literal>&> (circle,circle)</literal></entry></row>
+ <row><entry><literal>>> (circle,circle)</literal></entry></row>
+ <row><entry><literal><@ (circle,circle)</literal></entry></row>
+ <row><entry><literal>@> (circle,circle)</literal></entry></row>
+ <row><entry><literal>~= (circle,circle)</literal></entry></row>
+ <row><entry><literal>&& (circle,circle)</literal></entry></row>
+ <row><entry><literal>|>> (circle,circle)</literal></entry></row>
+ <row><entry><literal><<| (circle,circle)</literal></entry></row>
+ <row><entry><literal>&<| (circle,circle)</literal></entry></row>
+ <row><entry><literal>|&> (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>&&</literal>
- <literal>>></literal>
- <literal>>>=</literal>
- <literal>></literal>
- <literal>>=</literal>
- <literal><></literal>
- <literal><<</literal>
- <literal><<=</literal>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- </entry>
- <entry>
- </entry>
+ <entry morerows="10"><literal>inet_ops</literal></entry>
+ <entry><literal><< (inet,inet)</literal></entry>
+ <entry morerows="10"></entry>
</row>
+ <row><entry><literal><<= (inet,inet)</literal></entry></row>
+ <row><entry><literal>>> (inet,inet)</literal></entry></row>
+ <row><entry><literal>>>= (inet,inet)</literal></entry></row>
+ <row><entry><literal>= (inet,inet)</literal></entry></row>
+ <row><entry><literal><> (inet,inet)</literal></entry></row>
+ <row><entry><literal>< (inet,inet)</literal></entry></row>
+ <row><entry><literal><= (inet,inet)</literal></entry></row>
+ <row><entry><literal>> (inet,inet)</literal></entry></row>
+ <row><entry><literal>>= (inet,inet)</literal></entry></row>
+ <row><entry><literal>&& (inet,inet)</literal></entry></row>
+
<row>
- <entry><literal>point_ops</literal></entry>
- <entry><type>point</type></entry>
- <entry>
- <literal>>></literal>
- <literal>>^</literal>
- <literal><<</literal>
- <literal><@</literal>
- <literal><@</literal>
- <literal><@</literal>
- <literal><^</literal>
- <literal>~=</literal>
- </entry>
- <entry>
- <literal><-></literal>
- </entry>
+ <entry morerows="7"><literal>point_ops</literal></entry>
+ <entry><literal>>^ (point,point)</literal></entry>
+ <entry morerows="7"><literal><-> (point,point)</literal></entry>
</row>
+ <row><entry><literal><< (point,point)</literal></entry></row>
+ <row><entry><literal>>> (point,point)</literal></entry></row>
+ <row><entry><literal><^ (point,point)</literal></entry></row>
+ <row><entry><literal>~= (point,point)</literal></entry></row>
+ <row><entry><literal><@ (point,box)</literal></entry></row>
+ <row><entry><literal><@ (point,polygon)</literal></entry></row>
+ <row><entry><literal><@ (point,circle)</literal></entry></row>
+
<row>
- <entry><literal>poly_ops</literal></entry>
- <entry><type>polygon</type></entry>
- <entry>
- <literal>&&</literal>
- <literal>&></literal>
- <literal>&<</literal>
- <literal>&<|</literal>
- <literal>>></literal>
- <literal><<</literal>
- <literal><<|</literal>
- <literal><@</literal>
- <literal>@></literal>
- <literal>@</literal>
- <literal>|&></literal>
- <literal>|>></literal>
- <literal>~</literal>
- <literal>~=</literal>
- </entry>
- <entry>
- <literal><-></literal>
- </entry>
+ <entry morerows="13"><literal>poly_ops</literal></entry>
+ <entry><literal><< (polygon,polygon)</literal></entry>
+ <entry morerows="13"><literal><-> (polygon,point)</literal></entry>
</row>
+ <row><entry><literal>&< (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>&> (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>>> (polygon,polygon)</literal></entry></row>
+ <row><entry><literal><@ (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>@> (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>~= (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>&& (polygon,polygon)</literal></entry></row>
+ <row><entry><literal><<| (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>&<| (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>|&> (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>|>> (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>@ (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>~ (polygon,polygon)</literal></entry></row>
+
<row>
- <entry><literal>range_ops</literal></entry>
- <entry>any range type</entry>
- <entry>
- <literal>&&</literal>
- <literal>&></literal>
- <literal>&<</literal>
- <literal>>></literal>
- <literal><<</literal>
- <literal><@</literal>
- <literal>-|-</literal>
- <literal>=</literal>
- <literal>@></literal>
- <literal>@></literal>
- </entry>
- <entry>
- </entry>
+ <entry morerows="9"><literal>range_ops</literal></entry>
+ <entry><literal>= (anyrange,anyrange)</literal></entry>
+ <entry morerows="9"></entry>
</row>
+ <row><entry><literal>&& (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>@> (anyrange,anyelement)</literal></entry></row>
+ <row><entry><literal>@> (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal><@ (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal><< (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>>> (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>&< (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>&> (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><@</literal>
- <literal>@></literal>
- </entry>
- <entry>
- </entry>
+ <entry morerows="1"><literal>tsquery_ops</literal></entry>
+ <entry><literal><@ (tsquery,tsquery)</literal></entry>
+ <entry morerows="1"></entry>
</row>
+ <row><entry><literal>@> (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..915aeef1a2 100644
--- a/doc/src/sgml/spgist.sgml
+++ b/doc/src/sgml/spgist.sgml
@@ -64,142 +64,116 @@
<table id="spgist-builtin-opclasses-table">
<title>Built-in <acronym>SP-GiST</acronym> Operator Classes</title>
- <tgroup cols="4">
+ <tgroup cols="3">
<thead>
<row>
<entry>Name</entry>
- <entry>Indexed Data Type</entry>
<entry>Indexable Operators</entry>
<entry>Ordering Operators</entry>
</row>
</thead>
<tbody>
<row>
- <entry><literal>kd_point_ops</literal></entry>
- <entry><type>point</type></entry>
- <entry>
- <literal><<</literal>
- <literal><@</literal>
- <literal><^</literal>
- <literal>>></literal>
- <literal>>^</literal>
- <literal>~=</literal>
- </entry>
- <entry>
- <literal><-></literal>
- </entry>
+ <entry morerows="11"><literal>box_ops</literal></entry>
+ <entry><literal><< (box,box)</literal></entry>
+ <entry morerows="11"><literal><-> (box,point)</literal></entry>
</row>
+ <row><entry><literal>&< (box,box)</literal></entry></row>
+ <row><entry><literal>&> (box,box)</literal></entry></row>
+ <row><entry><literal>>> (box,box)</literal></entry></row>
+ <row><entry><literal><@ (box,box)</literal></entry></row>
+ <row><entry><literal>@> (box,box)</literal></entry></row>
+ <row><entry><literal>~= (box,box)</literal></entry></row>
+ <row><entry><literal>&& (box,box)</literal></entry></row>
+ <row><entry><literal><<| (box,box)</literal></entry></row>
+ <row><entry><literal>&<| (box,box)</literal></entry></row>
+ <row><entry><literal>|&> (box,box)</literal></entry></row>
+ <row><entry><literal>|>> (box,box)</literal></entry></row>
+
<row>
- <entry><literal>quad_point_ops</literal></entry>
- <entry><type>point</type></entry>
- <entry>
- <literal><<</literal>
- <literal><@</literal>
- <literal><^</literal>
- <literal>>></literal>
- <literal>>^</literal>
- <literal>~=</literal>
- </entry>
- <entry>
- <literal><-></literal>
- </entry>
+ <entry morerows="5"><literal>kd_point_ops</literal></entry>
+ <entry><literal>>^ (point,point)</literal></entry>
+ <entry morerows="5"><literal><-> (point,point)</literal></entry>
</row>
+ <row><entry><literal><< (point,point)</literal></entry></row>
+ <row><entry><literal>>> (point,point)</literal></entry></row>
+ <row><entry><literal><^ (point,point)</literal></entry></row>
+ <row><entry><literal>~= (point,point)</literal></entry></row>
+ <row><entry><literal><@ (point,box)</literal></entry></row>
+
<row>
- <entry><literal>range_ops</literal></entry>
- <entry>any range type</entry>
- <entry>
- <literal>&&</literal>
- <literal>&<</literal>
- <literal>&></literal>
- <literal>-|-</literal>
- <literal><<</literal>
- <literal><@</literal>
- <literal>=</literal>
- <literal>>></literal>
- <literal>@></literal>
- </entry>
- <entry>
- </entry>
+ <entry morerows="10"><literal>network_ops</literal></entry>
+ <entry><literal><< (inet,inet)</literal></entry>
+ <entry morerows="10"></entry>
</row>
+ <row><entry><literal><<= (inet,inet)</literal></entry></row>
+ <row><entry><literal>>> (inet,inet)</literal></entry></row>
+ <row><entry><literal>>>= (inet,inet)</literal></entry></row>
+ <row><entry><literal>= (inet,inet)</literal></entry></row>
+ <row><entry><literal><> (inet,inet)</literal></entry></row>
+ <row><entry><literal>< (inet,inet)</literal></entry></row>
+ <row><entry><literal><= (inet,inet)</literal></entry></row>
+ <row><entry><literal>> (inet,inet)</literal></entry></row>
+ <row><entry><literal>>= (inet,inet)</literal></entry></row>
+ <row><entry><literal>&& (inet,inet)</literal></entry></row>
+
<row>
- <entry><literal>box_ops</literal></entry>
- <entry><type>box</type></entry>
- <entry>
- <literal><<</literal>
- <literal>&<</literal>
- <literal>&&</literal>
- <literal>&></literal>
- <literal>>></literal>
- <literal>~=</literal>
- <literal>@></literal>
- <literal><@</literal>
- <literal>&<|</literal>
- <literal><<|</literal>
- <literal>|>></literal>
- <literal>|&></literal>
- </entry>
- <entry>
- <literal><-></literal>
- </entry>
+ <entry morerows="11"><literal>poly_ops</literal></entry>
+ <entry><literal><< (polygon,polygon)</literal></entry>
+ <entry morerows="11"><literal><-> (polygon,point)</literal></entry>
</row>
+ <row><entry><literal>&< (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>&> (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>>> (polygon,polygon)</literal></entry></row>
+ <row><entry><literal><@ (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>@> (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>~= (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>&& (polygon,polygon)</literal></entry></row>
+ <row><entry><literal><<| (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>&<| (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>|>> (polygon,polygon)</literal></entry></row>
+ <row><entry><literal>|&> (polygon,polygon)</literal></entry></row>
+
<row>
- <entry><literal>poly_ops</literal></entry>
- <entry><type>polygon</type></entry>
- <entry>
- <literal><<</literal>
- <literal>&<</literal>
- <literal>&&</literal>
- <literal>&></literal>
- <literal>>></literal>
- <literal>~=</literal>
- <literal>@></literal>
- <literal><@</literal>
- <literal>&<|</literal>
- <literal><<|</literal>
- <literal>|>></literal>
- <literal>|&></literal>
- </entry>
- <entry>
- <literal><-></literal>
- </entry>
+ <entry morerows="5"><literal>quad_point_ops</literal></entry>
+ <entry><literal>>^ (point,point)</literal></entry>
+ <entry morerows="5"><literal><-> (point,point)</literal></entry>
</row>
+ <row><entry><literal><< (point,point)</literal></entry></row>
+ <row><entry><literal>>> (point,point)</literal></entry></row>
+ <row><entry><literal><^ (point,point)</literal></entry></row>
+ <row><entry><literal>~= (point,point)</literal></entry></row>
+ <row><entry><literal><@ (point,box)</literal></entry></row>
+
<row>
- <entry><literal>text_ops</literal></entry>
- <entry><type>text</type></entry>
- <entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- <literal>></literal>
- <literal>>=</literal>
- <literal>~<=~</literal>
- <literal>~<~</literal>
- <literal>~>=~</literal>
- <literal>~>~</literal>
- <literal>^@</literal>
- </entry>
- <entry>
- </entry>
+ <entry morerows="9"><literal>range_ops</literal></entry>
+ <entry><literal>= (anyrange,anyrange)</literal></entry>
+ <entry morerows="9"></entry>
</row>
+ <row><entry><literal>&& (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>@> (anyrange,anyelement)</literal></entry></row>
+ <row><entry><literal>@> (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal><@ (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal><< (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>>> (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>&< (anyrange,anyrange)</literal></entry></row>
+ <row><entry><literal>&> (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>&&</literal>
- <literal>>></literal>
- <literal>>>=</literal>
- <literal>></literal>
- <literal>>=</literal>
- <literal><></literal>
- <literal><<</literal>
- <literal><<=</literal>
- <literal><</literal>
- <literal><=</literal>
- <literal>=</literal>
- </entry>
- <entry>
- </entry>
+ <entry morerows="9"><literal>text_ops</literal></entry>
+ <entry><literal>= (text,text)</literal></entry>
+ <entry morerows="9"></entry>
</row>
+ <row><entry><literal>< (text,text)</literal></entry></row>
+ <row><entry><literal><= (text,text)</literal></entry></row>
+ <row><entry><literal>> (text,text)</literal></entry></row>
+ <row><entry><literal>>= (text,text)</literal></entry></row>
+ <row><entry><literal>~<~ (text,text)</literal></entry></row>
+ <row><entry><literal>~<=~ (text,text)</literal></entry></row>
+ <row><entry><literal>~>=~ (text,text)</literal></entry></row>
+ <row><entry><literal>~>~ (text,text)</literal></entry></row>
+ <row><entry><literal>^@ (text,text)</literal></entry></row>
</tbody>
</tgroup>
</table>
signature.asc
Description: PGP signature
