PostgreSQL

PostgreSQL Elephant Logo

65.2. Built-in Operator Classes

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

Table 65.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

65.1. Introduction

Home

65.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