65.2. ÐÑÑÑоеннÑе клаÑÑÑ Ð¾Ð¿ÐµÑаÑоÑов #
РбазовÑй диÑÑÑибÑÑив Postgres Pro вклÑÑÐµÐ½Ñ ÐºÐ»Ð°ÑÑÑ Ð¾Ð¿ÐµÑаÑоÑов GiST, пеÑеÑиÑленнÑе в ТаблиÑе 65.1. (ÐекоÑоÑÑе дополниÑелÑнÑе модÑли, опиÑаннÑе в ÐÑиложении F, добавлÑÑÑ Ð´ÑÑгие клаÑÑÑ Ð¾Ð¿ÐµÑаÑоÑов GiST.)
ТаблиÑа 65.1. ÐÑÑÑоеннÑе клаÑÑÑ Ð¾Ð¿ÐµÑаÑоÑов 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) | ||
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) | Â |
Ðо иÑÑоÑиÑеÑким пÑиÑинам клаÑÑ Ð¾Ð¿ÐµÑаÑоÑов inet_ops не ÑвлÑеÑÑÑ ÐºÐ»Ð°ÑÑом по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ñипов inet и cidr. ЧÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ ÐµÐ³Ð¾, ÑкажиÑе Ð¸Ð¼Ñ ÐºÐ»Ð°ÑÑа в CREATE INDEX, напÑимеÑ:
CREATE INDEX ON my_table USING GIST (my_inet_column inet_ops);