PostgreSQL

PostgreSQL Elephant Logo

68.2. Built-in Operator Classes

The core PostgreSQL distribution includes the GiST operator classes shown in Table 68.1. (Some of the optional modules described in Appendix F provide additional GiST operator classes.)

Table 68.1. Built-in GiST Operator Classes

Name Indexable Operators Ordering Operators

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, anymultirange)

&& (anymultirange, anymultirange)

&& (anymultirange, anyrange)

@> (anymultirange, anyelement)

@> (anymultirange, anymultirange)

@> (anymultirange, anyrange)

<@ (anymultirange, anymultirange)

<@ (anymultirange, anyrange)

<< (anymultirange, anymultirange)

<< (anymultirange, anyrange)

>> (anymultirange, anymultirange)

>> (anymultirange, anyrange)

&< (anymultirange, anymultirange)

&< (anymultirange, anyrange)

&> (anymultirange, anymultirange)

&> (anymultirange, anyrange)

`+-

- (anymultirange, anymultirange)+`

`+-

- (anymultirange, anyrange)+`

point_ops

`+

>> (point, point)+`

<-> (point, point)

<< (point, point)

>> (point, point)

`+<<

(point, point)+`

~= (point, point)

<@ (point, box)

<@ (point, polygon)

<@ (point, circle)

poly_ops

<< (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, anymultirange)+`

tsquery_ops

<@ (tsquery, tsquery)

@> (tsquery, tsquery)

tsvector_ops

@@ (tsvector, tsquery)

+

For historical reasons, the inet_ops operator class is not the default class for types inet and cidr. To use it, mention the class name in CREATE INDEX, for example

CREATE INDEX ON my_table USING GIST (my_inet_column inet_ops);

Prev Up Next

68.1. Introduction

Home

68.3. Extensibility

Submit correction

If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.

Copyright © 1996-2023 The PostgreSQL Global Development Group