Встроенные классы операторов#
Основной дистрибутив PostgreSQL включает классы операторов GiST, показанные в таблице ниже.
Имя |
Индексируемые операторы |
Операторы упорядочивания |
|---|---|---|
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) |
<-> (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 |
<< (inet, inet) |
|
<<= (inet, inet) |
||
>> (inet, inet) |
||
>>= (inet, inet) |
||
= (inet, inet) |
||
<> (inet, inet) |
||
< (inet, inet) |
||
<= (inet, inet) |
||
> (inet, inet) |
||
>= (inet, inet) |
||
&& (inet, inet) |
||
multirange_ops |
= (anymultirange, anymulti- range) |
|
&& (anymultirange, anymulti- range) |
||
&& (anymultirange, anyrange) |
||
@> (anymultirange, anyele- ment) |
||
@> (anymultirange, anymulti- range) |
||
@> (anymultirange, anyrange) |
||
<@ (anymultirange, anymulti- range) |
||
<@ (anymultirange, anyrange) |
||
<< (anymultirange, anymulti- range) |
||
<< (anymultirange, anyrange) |
||
>> (anymultirange, anymulti- range) |
||
>> (anymultirange, anyrange) |
||
&< (anymultirange, anymulti- range) |
||
&< (anymultirange, anyrange) |
||
&> (anymultirange, anymulti- range) |
||
&> (anymultirange, anyrange) |
||
-|- (anymultirange, anymul- tirange) |
||
-|- (anymultirange, anyrange) |
||
point_ops |
|>> (point, point) |
<-> (point, point) |
<< (point, point) |
||
>> (point, point) |
||
<<| (point, point) |
||
~= (point, point) |
||
<@ (point, box) |
||
<@ (point, polygon) |
||
<@ (point, circle) |
||
поли_опы |
<< (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 |
= (anyrange, anyrange) |
|
&& (anyrange, anyrange) |
||
&& (anyrange, anymultirange) |
||
@> (anyrange, anyelement) |
||
@> (anyrange, anyrange) |
||
@> (anyrange, anymultirange) |
||
<@ (anyrange, anyrange) |
||
<@ (anyrange, anymultirange) |
||
<< (anyrange, anyrange) |
||
<< (anyrange, anymultirange) |
||
>> (anyrange, anyrange) |
||
>> (anyrange, anymultirange) |
||
&< (anyrange, anyrange) |
||
&< (anyrange, anymultirange) |
||
&> (anyrange, anyrange) |
||
&> (anyrange, anymultirange) |
||
-|- (anyrange, anyrange) |
||
-|- (anyrange, anymulti- range) |
||
tsquery_ops |
<@ (tsquery, tsquery) |
|
@> (tsquery, tsquery) |
||
tsvector_ops |
@@ (tsvector, tsquery) |
По историческим причинам класс операторов inet_ops не является классом по умолчанию для типов inet и cidr. Чтобы использовать его, укажите имя класса в CREATE INDEX, например:
CREATE INDEX ON my_table USING GIST (my_inet_column inet_ops);