Documentation PostgreSQL 14.22 » Internes » Index GiST » Classes d'opérateur internes

Précédent | Niveau supérieur | Suivant
65.1. Introduction | Sommaire | 65.3. Extensibilité

## 65.2. Classes d'opérateur internes

La distribution de PostgreSQL inclut les classes d'opérateur GiST indiquées dans Tableau 65.1. (Quelques modules optionnels décrits dans Annexe F fournissent des classes d'opérateur GiST supplémentaires.)

Tableau 65.1. Classes d'opérateur GiST internes

Nom | Opérateurs indexables | Opérateurs de tri
--- | --- | ---
`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)`
`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)`
`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)`
`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)` |

Pour des raisons historiques, la classe d'opérateurs `inet_ops` n'est pas la classe par défaut pour les types `inet` et `cidr`. Pour l'utiliser, mentionnez le nom de la classe dans la commande `CREATE INDEX`, par exemple

    CREATE INDEX ON ma_table USING GIST (ma_colonne_inet inet_ops);