doc: Rework tables for built-in operator classes of index AMs
authorMichael Paquier
Fri, 28 Aug 2020 07:54:59 +0000 (16:54 +0900)
committerMichael Paquier
Fri, 28 Aug 2020 07:54:59 +0000 (16:54 +0900)
The tables listing all the operator classes available for BRIN, GIN,
GiST and SP-GiST had a confusing format where the same operator could be
listed multiple times, for different data types.  This improves the
shape of these tables by adding the types associated to each operator,
for their associated operator class.

Each table included previously the data type that could be used for an
operator class in an extra column.  This is removed to reduce the width
of the tables as this is now described within each operator.  This also
makes the tables fit better in the PDF documentation.

Reported-by: osdba
Author: Michael Paquier
Reviewed-by: Álvaro Herrera, Tom Lane, Bruce Momjian
Discussion: https://postgr.es/m/38d55061.9604.173b32c60ec[email protected]

doc/src/sgml/brin.sgml
doc/src/sgml/gin.sgml
doc/src/sgml/gist.sgml
doc/src/sgml/spgist.sgml

index b9d596e3c4e75d19fae1df9b485746490b6488b6..4420794e5bb520ba3fbe341d5e22e6a22aed173f 100644 (file)
@@ -120,354 +120,292 @@ LOG:  request for BRIN range summarization for index "brin_wi_idx" page 128 was
 
  
   Built-in <acronym>BRIN</acronym> Operator Classes
-  
-   
-   
-   
+  
    
     
      Name
-     Indexed Data Type
      Indexable Operators
     
    
    
     
-     int8_minmax_ops
-     bigint
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     bit_minmax_ops
-     bit
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     varbit_minmax_ops
-     bit varying
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     box_inclusion_ops
-     box
-     
-      <<
-      &<
-      &&
-      &>
-      >>
-      ~=
-      @>
-      <@
-      &<|
-      <<|
-      |>>
-      |&>
-     
-    
-    
-     bytea_minmax_ops
-     bytea
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     bpchar_minmax_ops
-     character
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     char_minmax_ops
-     "char"
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     date_minmax_ops
-     date
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     float8_minmax_ops
-     double precision
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     inet_minmax_ops
-     inet
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     network_inclusion_ops
-     inet
-     
-      &&
-      >>=
-      <<=
-      =
-      >>
-      <<
-     
-    
-    
-     int4_minmax_ops
-     integer
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     interval_minmax_ops
-     interval
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     macaddr_minmax_ops
-     macaddr
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     macaddr8_minmax_ops
-     macaddr8
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     name_minmax_ops
-     name
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     numeric_minmax_ops
-     numeric
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     pg_lsn_minmax_ops
-     pg_lsn
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     oid_minmax_ops
-     oid
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     range_inclusion_ops
-     any range type
-     
-      <<
-      &<
-      &&
-      &>
-      >>
-      @>
-      <@
-      -|-
-      =
-      <
-      <=
-      =
-      >
-      >=
-     
-    
-    
-     float4_minmax_ops
-     real
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     int2_minmax_ops
-     smallint
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     text_minmax_ops
-     text
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     tid_minmax_ops
-     tid
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     timestamp_minmax_ops
-     timestamp without time zone
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     timestamptz_minmax_ops
-     timestamp with time zone
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     time_minmax_ops
-     time without time zone
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     timetz_minmax_ops
-     time with time zone
-     
-      <
-      <=
-      =
-      >=
-      >
-     
-    
-    
-     uuid_minmax_ops
-     uuid
-     
-      <
-      <=
-      =
-      >=
-      >
-     
+     bit_minmax_ops
+     = (bit,bit)
+    
+    < (bit,bit)
+    > (bit,bit)
+    <= (bit,bit)
+    >= (bit,bit)
+
+    
+     box_inclusion_ops
+     @> (box,point)
+    
+    << (box,box)
+    &< (box,box)
+    &> (box,box)
+    >> (box,box)
+    <@ (box,box)
+    @> (box,box)
+    ~= (box,box)
+    && (box,box)
+    <<| (box,box)
+    &<| (box,box)
+    |&> (box,box)
+    |>> (box,box)
+
+    
+     bpchar_minmax_ops
+     = (character,character)
+    
+    < (character,character)
+    <= (character,character)
+    > (character,character)
+    >= (character,character)
+
+    
+     bytea_minmax_ops
+     = (bytea,bytea)
+    
+    < (bytea,bytea)
+    <= (bytea,bytea)
+    > (bytea,bytea)
+    >= (bytea,bytea)
+
+    
+     char_minmax_ops
+     = ("char","char")
+    
+    < ("char","char")
+    <= ("char","char")
+    > ("char","char")
+    >= ("char","char")
+
+    
+     date_minmax_ops
+     = (date,date)
+    
+    < (date,date)
+    <= (date,date)
+    > (date,date)
+    >= (date,date)
+
+    
+     float4_minmax_ops
+     = (float4,float4)
+    
+    < (float4,float4)
+    > (float4,float4)
+    <= (float4,float4)
+    >= (float4,float4)
+
+    
+     float8_minmax_ops
+     = (float8,float8)
+    
+    < (float8,float8)
+    <= (float8,float8)
+    > (float8,float8)
+    >= (float8,float8)
+
+    
+     inet_inclusion_ops
+     << (inet,inet)
+    
+    <<= (inet,inet)
+    >> (inet,inet)
+    >>= (inet,inet)
+    = (inet,inet)
+    && (inet,inet)
+
+    
+     inet_minmax_ops
+     = (inet,inet)
+    
+    < (inet,inet)
+    <= (inet,inet)
+    > (inet,inet)
+    >= (inet,inet)
+
+    
+     int2_minmax_ops
+     = (int2,int2)
+    
+    < (int2,int2)
+    > (int2,int2)
+    <= (int2,int2)
+    >= (int2,int2)
+
+    
+     int4_minmax_ops
+     = (int4,int4)
+    
+    < (int4,int4)
+    > (int4,int4)
+    <= (int4,int4)
+    >= (int4,int4)
+
+    
+     int8_minmax_ops
+     = (bigint,bigint)
+    
+    < (bigint,bigint)
+    > (bigint,bigint)
+    <= (bigint,bigint)
+    >= (bigint,bigint)
+
+    
+     interval_minmax_ops
+     = (interval,interval)
+    
+    < (interval,interval)
+    <= (interval,interval)
+    > (interval,interval)
+    >= (interval,interval)
+
+    
+     macaddr_minmax_ops
+     = (macaddr,macaddr)
+    
+    < (macaddr,macaddr)
+    <= (macaddr,macaddr)
+    > (macaddr,macaddr)
+    >= (macaddr,macaddr)
+
+    
+     macaddr8_minmax_ops
+     = (macaddr8,macaddr8)
+    
+    < (macaddr8,macaddr8)
+    <= (macaddr8,macaddr8)
+    > (macaddr8,macaddr8)
+    >= (macaddr8,macaddr8)
+
+    
+     name_minmax_ops
+     = (name,name)
+    
+    < (name,name)
+    <= (name,name)
+    > (name,name)
+    >= (name,name)
+
+    
+     numeric_minmax_ops
+     = (numeric,numeric)
+    
+    < (numeric,numeric)
+    <= (numeric,numeric)
+    > (numeric,numeric)
+    >= (numeric,numeric)
+
+    
+     oid_minmax_ops
+     = (oid,oid)
+    
+    < (oid,oid)
+    > (oid,oid)
+    <= (oid,oid)
+    >= (oid,oid)
+
+    
+     pg_lsn_minmax_ops
+     = (pg_lsn,pg_lsn)
+    
+    < (pg_lsn,pg_lsn)
+    > (pg_lsn,pg_lsn)
+    <= (pg_lsn,pg_lsn)
+    >= (pg_lsn,pg_lsn)
+
+    
+     range_inclusion_ops
+     = (anyrange,anyrange)
+    
+    < (anyrange,anyrange)
+    <= (anyrange,anyrange)
+    >= (anyrange,anyrange)
+    > (anyrange,anyrange)
+    && (anyrange,anyrange)
+    @> (anyrange,anyelement)
+    @> (anyrange,anyrange)
+    <@ (anyrange,anyrange)
+    << (anyrange,anyrange)
+    >> (anyrange,anyrange)
+    &< (anyrange,anyrange)
+    &> (anyrange,anyrange)
+    -|- (anyrange,anyrange)
+
+    
+     text_minmax_ops
+     = (text,text)
+    
+    < (text,text)
+    <= (text,text)
+    > (text,text)
+    >= (text,text)
+
+    
+     tid_minmax_ops
+     = (tid,tid)
+    
+    < (tid,tid)
+    > (tid,tid)
+    <= (tid,tid)
+    >= (tid,tid)
+
+    
+     timestamp_minmax_ops
+     = (timestamp,timestamp)
+    
+    < (timestamp,timestamp)
+    <= (timestamp,timestamp)
+    > (timestamp,timestamp)
+    >= (timestamp,timestamp)
+
+    
+     timestamptz_minmax_ops
+     = (timestamptz,timestamptz)
+    
+    < (timestamptz,timestamptz)
+    <= (timestamptz,timestamptz)
+    > (timestamptz,timestamptz)
+    >= (timestamptz,timestamptz)
+
+    
+     time_minmax_ops
+     = (time,time)
+    
+    < (time,time)
+    <= (time,time)
+    > (time,time)
+    >= (time,time)
+
+    
+     timetz_minmax_ops
+     = (timetz,timetz)
+    
+    < (timetz,timetz)
+    <= (timetz,timetz)
+    > (timetz,timetz)
+    >= (timetz,timetz)
+
+    
+     uuid_minmax_ops
+     = (uuid,uuid)
+    
+    < (uuid,uuid)
+    > (uuid,uuid)
+    <= (uuid,uuid)
+    >= (uuid,uuid)
+
+    
+     varbit_minmax_ops
+     = (varbit,varbit)
     
+    < (varbit,varbit)
+    > (varbit,varbit)
+    <= (varbit,varbit)
+    >= (varbit,varbit)
    
   
  
index 2d862669c33767729d5fe3cce3133378e7e6063f..5c8d4d52757cf4210bb32c0ee42cbb575a8450fc 100644 (file)
 
   
    Built-in <acronym>GIN</acronym> Operator Classes
-   3">
+   2">
     
      
       Name
-      Indexed Data Type
       Indexable Operators
      
     
     
      
-      array_ops
-      anyarray
-      
-       &&
-       <@
-       =
-       @>
-      
+      array_ops
+      && (anyarray,anyarray)
      
      
-      jsonb_ops
-      jsonb
-      
-       ?
-       ?&
-       ?|
-       @>
-       @?
-       @@
-      
+      @> (anyarray,anyarray)
      
      
-      jsonb_path_ops
-      jsonb
-      
-       @>
-       @?
-       @@
-      
+      <@ (anyarray,anyarray)
      
      
-      tsvector_ops
-      tsvector
-      
-       @@
-       @@@
-      
+      = (anyarray,anyarray)
+     
+     
+      jsonb_ops
+      @> (jsonb,jsonb)
+     
+     
+      @? (jsonb,jsonpath)
+     
+     
+      @@ (jsonb,jsonpath)
+     
+     
+      ? (jsonb,text)
+     
+     
+      ?| (jsonb,text[])
+     
+     
+      ?& (jsonb,text[])
+     
+     
+      jsonb_path_ops
+      @> (jsonb,jsonb)
+     
+     
+      @? (jsonb,jsonpath)
+     
+     
+      @@ (jsonb,jsonpath)
+     
+     
+      tsvector_ops
+      @@ (tsvector,tsquery)
+     
+     
+      @@@ (tsvector,tsquery)
      
     
    
index a505815f4ec582a831154a9032180ac4d4e759d7..f9226e7a35cbbae69cce918f5b17662d0114fc19 100644 (file)
 
   
    Built-in <acronym>GiST</acronym> Operator Classes
-   4">
+   3">
     
      
       Name
-      Indexed Data Type
       Indexable Operators
       Ordering Operators
      
     
     
      
-      box_ops
-      box
-      
-       &&
-       &>
-       &<
-       &<|
-       >>
-       <<
-       <<|
-       <@
-       @>
-       @
-       |&>
-       |>>
-       ~
-       ~=
-      
-      
-       <->
-      
+      box_ops
+      << (box,box)
+      <-> (box,point)
      
+     &< (box,box)
+     && (box,box)
+     &> (box,box)
+     >> (box,box)
+     ~= (box,box)
+     @> (box,box)
+     <@ (box,box)
+     &<| (box,box)
+     <<| (box,box)
+     |>> (box,box)
+     |&> (box,box)
+     ~ (box,box)
+     @ (box,box)
+
      
-      circle_ops
-      circle
-      
-       &&
-       &>
-       &<
-       &<|
-       >>
-       <<
-       <<|
-       <@
-       @>
-       @
-       |&>
-       |>>
-       ~
-       ~=
-      
-      
-       <->
-      
+      circle_ops
+      << (circle,circle)
+      <-> (circle,point)
      
+     &< (circle,circle)
+     &> (circle,circle)
+     >> (circle,circle)
+     <@ (circle,circle)
+     @> (circle,circle)
+     ~= (circle,circle)
+     && (circle,circle)
+     |>> (circle,circle)
+     <<| (circle,circle)
+     &<| (circle,circle)
+     |&> (circle,circle)
+     @ (circle,circle)
+     ~ (circle,circle)
+
      
-      inet_ops
-      inetcidr
-      
-       &&
-       >>
-       >>=
-       >
-       >=
-       <>
-       <<
-       <<=
-       <
-       <=
-       =
-      
-      
-      
+      inet_ops
+      << (inet,inet)
+      
      
+     <<= (inet,inet)
+     >> (inet,inet)
+     >>= (inet,inet)
+     = (inet,inet)
+     <> (inet,inet)
+     < (inet,inet)
+     <= (inet,inet)
+     > (inet,inet)
+     >= (inet,inet)
+     && (inet,inet)
+
      
-      point_ops
-      point
-      
-       >>
-       >^
-       <<
-       <@
-       <@
-       <@
-       <^
-       ~=
-      
-      
-       <->
-      
+      point_ops
+      >^ (point,point)
+      <-> (point,point)
      
+     << (point,point)
+     >> (point,point)
+     <^ (point,point)
+     ~= (point,point)
+     <@ (point,box)
+     <@ (point,polygon)
+     <@ (point,circle)
+
      
-      poly_ops
-      polygon
-      
-       &&
-       &>
-       &<
-       &<|
-       >>
-       <<
-       <<|
-       <@
-       @>
-       @
-       |&>
-       |>>
-       ~
-       ~=
-      
-      
-       <->
-      
+      poly_ops
+      << (polygon,polygon)
+      <-> (polygon,point)
      
+     &< (polygon,polygon)
+     &> (polygon,polygon)
+     >> (polygon,polygon)
+     <@ (polygon,polygon)
+     @> (polygon,polygon)
+     ~= (polygon,polygon)
+     && (polygon,polygon)
+     <<| (polygon,polygon)
+     &<| (polygon,polygon)
+     |&> (polygon,polygon)
+     |>> (polygon,polygon)
+     @ (polygon,polygon)
+     ~ (polygon,polygon)
+
      
-      range_ops
-      any range type
-      
-       &&
-       &>
-       &<
-       >>
-       <<
-       <@
-       -|-
-       =
-       @>
-       @>
-      
-      
-      
+      range_ops
+      = (anyrange,anyrange)
+      
      
+     && (anyrange,anyrange)
+     @> (anyrange,anyelement)
+     @> (anyrange,anyrange)
+     <@ (anyrange,anyrange)
+     << (anyrange,anyrange)
+     >> (anyrange,anyrange)
+     &< (anyrange,anyrange)
+     &> (anyrange,anyrange)
+     -|- (anyrange,anyrange)
+
      
-      tsquery_ops
-      tsquery
-      
-       <@
-       @>
-      
-      
-      
+      tsquery_ops
+      <@ (tsquery,tsquery)
+      
      
+     @> (tsquery,tsquery)
      
-      tsvector_ops
-      tsvector
-      
-       @@
-      
-      
-      
+      tsvector_ops
+      @@ (tsvector,tsquery)
+      
      
     
    
index b86302e4efdee55f242233c552106f49ddcc660b..68d09951d9fc83f10e72e6a166f8a9a0c8906f4c 100644 (file)
 
   
    Built-in <acronym>SP-GiST</acronym> Operator Classes
-   4">
+   3">
     
      
       Name
-      Indexed Data Type
       Indexable Operators
       Ordering Operators
      
     
     
      
-      kd_point_ops
-      point
-      
-       <<
-       <@
-       <^
-       >>
-       >^
-       ~=
-      
-      
-       <->
-      
+      box_ops
+      << (box,box)
+      <-> (box,point)      
      
+     &< (box,box)
+     &> (box,box)
+     >> (box,box)
+     <@ (box,box)
+     @> (box,box)
+     ~= (box,box)
+     && (box,box)
+     <<| (box,box)
+     &<| (box,box)
+     |&> (box,box)
+     |>> (box,box)
+
      
-      quad_point_ops
-      point
-      
-       <<
-       <@
-       <^
-       >>
-       >^
-       ~=
-      
-      
-       <->
-      
+      kd_point_ops
+      >^ (point,point)
+      <-> (point,point)
      
+     << (point,point)
+     >> (point,point)
+     <^ (point,point)
+     ~= (point,point)
+     <@ (point,box)
+
      
-      range_ops
-      any range type
-      
-       &&
-       &<
-       &>
-       -|-
-       <<
-       <@
-       =
-       >>
-       @>
-      
-      
-      
+      network_ops
+      << (inet,inet)
+      
      
+     <<= (inet,inet)
+     >> (inet,inet)
+     >>= (inet,inet)
+     = (inet,inet)
+     <> (inet,inet)
+     < (inet,inet)
+     <= (inet,inet)
+     > (inet,inet)
+     >= (inet,inet)
+     && (inet,inet)
+
      
-      box_ops
-      box
-      
-       <<
-       &<
-       &&
-       &>
-       >>
-       ~=
-       @>
-       <@
-       &<|
-       <<|
-       |>>
-       |&>
-      
-      
-       <->
-      
+      poly_ops
+      << (polygon,polygon)
+      <-> (polygon,point)
      
+     &< (polygon,polygon)
+     &> (polygon,polygon)
+     >> (polygon,polygon)
+     <@ (polygon,polygon)
+     @> (polygon,polygon)
+     ~= (polygon,polygon)
+     && (polygon,polygon)
+     <<| (polygon,polygon)
+     &<| (polygon,polygon)
+     |>> (polygon,polygon)
+     |&> (polygon,polygon)      
+
      
-      poly_ops
-      polygon
-      
-       <<
-       &<
-       &&
-       &>
-       >>
-       ~=
-       @>
-       <@
-       &<|
-       <<|
-       |>>
-       |&>
-      
-      
-        <->
-      
+      quad_point_ops
+      >^ (point,point)
+      <-> (point,point)
      
+     << (point,point)
+     >> (point,point)
+     <^ (point,point)
+     ~= (point,point)
+     <@ (point,box)
+
      
-      text_ops
-      text
-      
-       <
-       <=
-       =
-       >
-       >=
-       ~<=~
-       ~<~
-       ~>=~
-       ~>~
-       ^@
-      
-      
-      
+      range_ops
+      = (anyrange,anyrange)
+      
      
+     && (anyrange,anyrange)
+     @> (anyrange,anyelement)
+     @> (anyrange,anyrange)
+     <@ (anyrange,anyrange)
+     << (anyrange,anyrange)
+     >> (anyrange,anyrange)
+     &< (anyrange,anyrange)
+     &> (anyrange,anyrange)
+     -|- (anyrange,anyrange)
      
-      inet_ops
-      inetcidr
-      
-       &&
-       >>
-       >>=
-       >
-       >=
-       <>
-       <<
-       <<=
-       <
-       <=
-       =
-      
-      
-      
+      text_ops
+      = (text,text)
+      
      
+     < (text,text)
+     <= (text,text)
+     > (text,text)
+     >= (text,text)
+     ~<~ (text,text)
+     ~<=~ (text,text)
+     ~>=~ (text,text)
+     ~>~ (text,text)
+     ^@ (text,text)