ALTER OPERATOR CLASS

ALTER OPERATOR CLASS — изменить определение класса операторов

Синтаксис

ALTER OPERATOR CLASS имя USING индексный_метод
    RENAME TO новое_имя

ALTER OPERATOR CLASS имя USING индексный_метод
    OWNER TO { новый_владелец | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

ALTER OPERATOR CLASS имя USING индексный_метод
    SET SCHEMA новая_схема

Описание

ALTER OPERATOR CLASS изменяет определение класса операторов.

Выполнить ALTER OPERATOR CLASS может только владелец соответствующего класса операторов. Чтобы сменить владельца, необходимо быть непосредственным или опосредованным членом новой роли-владельца, а эта роль должна иметь право CREATE в схеме класса операторов. (С такими ограничениями при смене владельца не происходит ничего такого, что нельзя было бы сделать, имея право удалить и вновь создать класс операторов. Однако суперпользователь может сменить владельца классов операторов в любом случае.)

Параметры

имя

Имя существующего класса операторов (возможно, дополненное схемой).

индексный_метод

Имя индексного метода, для которого предназначен этот класс операторов.

новое_имя

Новое имя класса операторов.

новый_владелец

Новый владелец класса операторов.

новая_схема

Новая схема класса операторов.

Совместимость

Команда ALTER OPERATOR CLASS отсутствует в стандарте SQL.

63.2. Built-in Operator Classes

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

Table 63.1. Built-in GIN Operator Classes

NameIndexed Data TypeIndexable Operators
_abstime_opsabstime[]&& <@ = @>
_bit_opsbit[]&& <@ = @>
_bool_opsboolean[]&& <@ = @>
_bpchar_opscharacter[]&& <@ = @>
_bytea_opsbytea[]&& <@ = @>
_char_ops"char"[]&& <@ = @>
_cidr_opscidr[]&& <@ = @>
_date_opsdate[]&& <@ = @>
_float4_opsfloat4[]&& <@ = @>
_float8_opsfloat8[]&& <@ = @>
_inet_opsinet[]&& <@ = @>
_int2_opssmallint[]&& <@ = @>
_int4_opsinteger[]&& <@ = @>
_int8_opsbigint[]&& <@ = @>
_interval_opsinterval[]&& <@ = @>
_macaddr_opsmacaddr[]&& <@ = @>
_money_opsmoney[]&& <@ = @>
_name_opsname[]&& <@ = @>
_numeric_opsnumeric[]&& <@ = @>
_oid_opsoid[]&& <@ = @>
_oidvector_opsoidvector[]&& <@ = @>
_reltime_opsreltime[]&& <@ = @>
_text_opstext[]&& <@ = @>
_time_opstime[]&& <@ = @>
_timestamp_opstimestamp[]&& <@ = @>
_timestamptz_opstimestamp with time zone[]&& <@ = @>
_timetz_opstime with time zone[]&& <@ = @>
_tinterval_opstinterval[]&& <@ = @>
_varbit_opsbit varying[]&& <@ = @>
_varchar_opscharacter varying[]&& <@ = @>
jsonb_opsjsonb? ?& ?| @>
jsonb_path_opsjsonb@>
tsvector_opstsvector@@ @@@

Of the two operator classes for type jsonb, jsonb_ops is the default. jsonb_path_ops supports fewer operators but offers better performance for those operators. See Section 8.14.4 for details.