1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-24 14:22:24 +03:00

Add support of multirange matching to the existing range GiST indexes

6df7a9698b has introduced a set of operators between ranges and multiranges.
Existing GiST indexes for ranges could easily support majority of them.
This commit adds support for new operators to the existing range GiST indexes.
New operators resides the same strategy numbers as existing ones.  Appropriate
check function is determined using the subtype.

Catversion is bumped.
This commit is contained in:
Alexander Korotkov
2020-12-29 23:36:43 +03:00
parent d1d61a8b23
commit db6335b5b1
15 changed files with 1024 additions and 69 deletions

View File

@ -116,6 +116,29 @@
<row><entry><literal>&gt;= (inet,inet)</literal></entry></row>
<row><entry><literal>&amp;&amp; (inet,inet)</literal></entry></row>
<row>
<entry valign="middle" morerows="17"><literal>multirange_ops</literal></entry>
<entry><literal>= (anymultirange,anymultirange)</literal></entry>
<entry valign="middle" morerows="17"></entry>
</row>
<row><entry><literal>&amp;&amp; (anymultirange,anymultirange)</literal></entry></row>
<row><entry><literal>&amp;&amp; (anymultirange,anyrange)</literal></entry></row>
<row><entry><literal>@&gt; (anymultirange,anyelement)</literal></entry></row>
<row><entry><literal>@&gt; (anymultirange,anymultirange)</literal></entry></row>
<row><entry><literal>@&gt; (anymultirange,anyrange)</literal></entry></row>
<row><entry><literal>&lt;@ (anymultirange,anymultirange)</literal></entry></row>
<row><entry><literal>&lt;@ (anymultirange,anyrange)</literal></entry></row>
<row><entry><literal>&lt;&lt; (anymultirange,anymultirange)</literal></entry></row>
<row><entry><literal>&lt;&lt; (anymultirange,anyrange)</literal></entry></row>
<row><entry><literal>&gt;&gt; (anymultirange,anymultirange)</literal></entry></row>
<row><entry><literal>&gt;&gt; (anymultirange,anyrange)</literal></entry></row>
<row><entry><literal>&amp;&lt; (anymultirange,anymultirange)</literal></entry></row>
<row><entry><literal>&amp;&lt; (anymultirange,anyrange)</literal></entry></row>
<row><entry><literal>&amp;&gt; (anymultirange,anymultirange)</literal></entry></row>
<row><entry><literal>&amp;&gt; (anymultirange,anyrange)</literal></entry></row>
<row><entry><literal>-|- (anymultirange,anymultirange)</literal></entry></row>
<row><entry><literal>-|- (anymultirange,anyrange)</literal></entry></row>
<row>
<entry valign="middle" morerows="7"><literal>point_ops</literal></entry>
<entry><literal>|&gt;&gt; (point,point)</literal></entry>
@ -149,19 +172,27 @@
<row><entry><literal>~ (polygon,polygon)</literal></entry></row>
<row>
<entry valign="middle" morerows="9"><literal>range_ops</literal></entry>
<entry valign="middle" morerows="17"><literal>range_ops</literal></entry>
<entry><literal>= (anyrange,anyrange)</literal></entry>
<entry valign="middle" morerows="9"></entry>
<entry valign="middle" morerows="17"></entry>
</row>
<row><entry><literal>&amp;&amp; (anyrange,anyrange)</literal></entry></row>
<row><entry><literal>&amp;&amp; (anyrange,anymultirange)</literal></entry></row>
<row><entry><literal>@&gt; (anyrange,anyelement)</literal></entry></row>
<row><entry><literal>@&gt; (anyrange,anyrange)</literal></entry></row>
<row><entry><literal>@&gt; (anyrange,anymultirange)</literal></entry></row>
<row><entry><literal>&lt;@ (anyrange,anyrange)</literal></entry></row>
<row><entry><literal>&lt;@ (anyrange,anymultirange)</literal></entry></row>
<row><entry><literal>&lt;&lt; (anyrange,anyrange)</literal></entry></row>
<row><entry><literal>&lt;&lt; (anyrange,anymultirange)</literal></entry></row>
<row><entry><literal>&gt;&gt; (anyrange,anyrange)</literal></entry></row>
<row><entry><literal>&gt;&gt; (anyrange,anymultirange)</literal></entry></row>
<row><entry><literal>&amp;&lt; (anyrange,anyrange)</literal></entry></row>
<row><entry><literal>&amp;&lt; (anyrange,anymultirange)</literal></entry></row>
<row><entry><literal>&amp;&gt; (anyrange,anyrange)</literal></entry></row>
<row><entry><literal>&amp;&gt; (anyrange,anymultirange)</literal></entry></row>
<row><entry><literal>-|- (anyrange,anyrange)</literal></entry></row>
<row><entry><literal>-|- (anyrange,anymultirange)</literal></entry></row>
<row>
<entry valign="middle" morerows="1"><literal>tsquery_ops</literal></entry>