mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Add BRIN infrastructure for "inclusion" opclasses
This lets BRIN be used with R-Tree-like indexing strategies. Also provided are operator classes for range types, box and inet/cidr. The infrastructure provided here should be sufficient to create operator classes for similar datatypes; for instance, opclasses for PostGIS geometries should be doable, though we didn't try to implement one. (A box/point opclass was also submitted, but we ripped it out before commit because the handling of floating point comparisons in existing code is inconsistent and would generate corrupt indexes.) Author: Emre Hasegeli. Cosmetic changes by me Review: Andreas Karlsson
This commit is contained in:
@ -72,7 +72,9 @@
|
||||
<para>
|
||||
The <firstterm>minmax</>
|
||||
operator classes store the minimum and the maximum values appearing
|
||||
in the indexed column within the range.
|
||||
in the indexed column within the range. The <firstterm>inclusion</>
|
||||
operator classes store a value which includes the values in the indexed
|
||||
column within the range.
|
||||
</para>
|
||||
|
||||
<table id="brin-builtin-opclasses-table">
|
||||
@ -251,6 +253,18 @@
|
||||
<literal>></literal>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>inet_inclusion_ops</literal></entry>
|
||||
<entry><type>inet</type></entry>
|
||||
<entry>
|
||||
<literal>&&</>
|
||||
<literal>>></>
|
||||
<literal>>>=</>
|
||||
<literal><<</literal>
|
||||
<literal><<=</literal>
|
||||
<literal>=</literal>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>bpchar_minmax_ops</literal></entry>
|
||||
<entry><type>character</type></entry>
|
||||
@ -372,6 +386,25 @@
|
||||
<literal>></literal>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>range_inclusion_ops</></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>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>pg_lsn_minmax_ops</literal></entry>
|
||||
<entry><type>pg_lsn</type></entry>
|
||||
@ -383,6 +416,24 @@
|
||||
<literal>></literal>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>box_inclusion_ops</></entry>
|
||||
<entry><type>box</type></entry>
|
||||
<entry>
|
||||
<literal>&&</>
|
||||
<literal>&></>
|
||||
<literal>&<</>
|
||||
<literal>>></>
|
||||
<literal><<</>
|
||||
<literal><@</>
|
||||
<literal>~=</>
|
||||
<literal>@></>
|
||||
<literal>&>|</>
|
||||
<literal>|&<</>
|
||||
<literal>>>|</>
|
||||
<literal>|<<</literal>
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
Reference in New Issue
Block a user