Встроенные классы операторов#

Основной дистрибутив 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);