summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2015-05-15 18:05:22 -0300
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2015-05-15 18:05:22 -0300
commitb0b7be61337fc64147f2ad0af5bf2c0e6b8a709f (patch)
treeb6eb7ebc5c73bb82023bdc5cc42aa1326472e719 /doc/src
parent199f5973c50fe94e128508ff2218c42126fd0ee1 (diff)
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
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/brin.sgml53
1 files changed, 52 insertions, 1 deletions
diff --git a/doc/src/sgml/brin.sgml b/doc/src/sgml/brin.sgml
index 92dac7c60b5..4d8fd20c1c4 100644
--- a/doc/src/sgml/brin.sgml
+++ b/doc/src/sgml/brin.sgml
@@ -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">
@@ -252,6 +254,18 @@
</entry>
</row>
<row>
+ <entry><literal>inet_inclusion_ops</literal></entry>
+ <entry><type>inet</type></entry>
+ <entry>
+ <literal>&amp;&amp;</>
+ <literal>&gt;&gt;</>
+ <literal>&gt;&gt;=</>
+ <literal>&lt;&lt;</literal>
+ <literal>&lt;&lt;=</literal>
+ <literal>=</literal>
+ </entry>
+ </row>
+ <row>
<entry><literal>bpchar_minmax_ops</literal></entry>
<entry><type>character</type></entry>
<entry>
@@ -373,6 +387,25 @@
</entry>
</row>
<row>
+ <entry><literal>range_inclusion_ops</></entry>
+ <entry><type>any range type</type></entry>
+ <entry>
+ <literal>&amp;&amp;</>
+ <literal>&amp;&gt;</>
+ <literal>&amp;&lt;</>
+ <literal>&gt;&gt;</>
+ <literal>&lt;&lt;</>
+ <literal>&lt;@</>
+ <literal>=</>
+ <literal>@&gt;</>
+ <literal>&lt;</literal>
+ <literal>&lt;=</literal>
+ <literal>=</literal>
+ <literal>&gt;=</literal>
+ <literal>&gt;</literal>
+ </entry>
+ </row>
+ <row>
<entry><literal>pg_lsn_minmax_ops</literal></entry>
<entry><type>pg_lsn</type></entry>
<entry>
@@ -383,6 +416,24 @@
<literal>&gt;</literal>
</entry>
</row>
+ <row>
+ <entry><literal>box_inclusion_ops</></entry>
+ <entry><type>box</type></entry>
+ <entry>
+ <literal>&amp;&amp;</>
+ <literal>&amp;&gt;</>
+ <literal>&amp;&lt;</>
+ <literal>&gt;&gt;</>
+ <literal>&lt;&lt;</>
+ <literal>&lt;@</>
+ <literal>~=</>
+ <literal>@&gt;</>
+ <literal>&amp;&gt;|</>
+ <literal>|&amp;&lt;</>
+ <literal>&gt;&gt;|</>
+ <literal>|&lt;&lt;</literal>
+ </entry>
+ </row>
</tbody>
</tgroup>
</table>