ALTER OPERATOR
ALTER OPERATOR â измениÑÑ Ð¾Ð¿Ñеделение опеÑаÑоÑа
СинÑакÑиÑ
ALTER OPERATORимÑ( {Ñип_Ñлева| NONE } ,Ñип_ÑпÑава) OWNER TO {новÑй_владелеÑ| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER OPERATORимÑ( {Ñип_Ñлева| NONE } ,Ñип_ÑпÑава) SET SCHEMAноваÑ_ÑÑ ÐµÐ¼Ð°ALTER OPERATORимÑ( {Ñип_Ñлева| NONE } ,Ñип_ÑпÑава) SET ( { RESTRICT = {пÑоÑедÑÑа_огÑаниÑениÑ| NONE } | JOIN = {пÑоÑедÑÑа_ÑоединениÑ| NONE } | COMMUTATOR =коммÑÑ_опеÑаÑоÑ| NEGATOR =обÑаÑнÑй_опеÑаÑоÑ| HASHES | MERGES } [, ... ] )
ÐпиÑание
ALTER OPERATOR изменÑÐµÑ Ð¾Ð¿Ñеделение опеÑаÑоÑа.
ÐÑполниÑÑ ALTER OPERATOR Ð¼Ð¾Ð¶ÐµÑ ÑолÑко Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ ÑооÑвеÑÑÑвÑÑÑего опеÑаÑоÑа. ЧÑÐ¾Ð±Ñ ÑмениÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑа, необÑ
одимо имеÑÑ Ð¿Ñаво SET ROLE Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð¹ Ñоли-владелÑÑа, а ÑÑа ÑÐ¾Ð»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° имеÑÑ Ð¿Ñаво CREATE в ÑÑ
еме опеÑаÑоÑа. (С Ñакими огÑаниÑениÑми пÑи Ñмене владелÑÑа не пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð½Ð¸Ñего Ñакого, ÑÑо нелÑÐ·Ñ Ð±Ñло Ð±Ñ ÑделаÑÑ, Ð¸Ð¼ÐµÑ Ð¿Ñаво ÑдалиÑÑ Ð¸ Ð²Ð½Ð¾Ð²Ñ ÑоздаÑÑ Ð¾Ð¿ÐµÑаÑоÑ. Ðднако ÑÑпеÑполÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ ÑмениÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑа опеÑаÑоÑа в лÑбом ÑлÑÑае.)
ÐаÑамеÑÑÑ
имÑÐÐ¼Ñ ÑÑÑеÑÑвÑÑÑего опеÑаÑоÑа (возможно, дополненное ÑÑ ÐµÐ¼Ð¾Ð¹).
Ñип_ÑлеваТип даннÑÑ Ð»ÐµÐ²Ð¾Ð³Ð¾ опеÑанда опеÑаÑоÑа; еÑли Ñ Ð¾Ð¿ÐµÑаÑоÑа Ð½ÐµÑ Ð»ÐµÐ²Ð¾Ð³Ð¾ опеÑанда, ÑкажиÑе
NONE.Ñип_ÑпÑаваТип даннÑÑ Ð¿Ñавого опеÑанда опеÑаÑоÑа.
новÑй_владелеÑÐовÑй Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ð¾Ð¿ÐµÑаÑоÑа.
новаÑ_ÑÑ ÐµÐ¼Ð°ÐÐ¾Ð²Ð°Ñ ÑÑ ÐµÐ¼Ð° опеÑаÑоÑа.
пÑоÑедÑÑа_огÑаниÑениÑФÑнкÑÐ¸Ñ Ð¾Ñенки избиÑаÑелÑноÑÑи огÑаниÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ опеÑаÑоÑа; знаÑение NONE ÑдалÑÐµÑ ÑÑÑеÑÑвÑÑÑÑÑ ÑÑнкÑÐ¸Ñ Ð¾Ñенки.
пÑоÑедÑÑа_ÑоединениÑФÑнкÑÐ¸Ñ Ð¾Ñенки избиÑаÑелÑноÑÑи ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑÑого опеÑаÑоÑа; знаÑение NONE ÑдалÑÐµÑ ÑÑÑеÑÑвÑÑÑÑÑ ÑÑнкÑÐ¸Ñ Ð¾Ñенки.
коммÑÑ_опеÑаÑоÑÐпеÑаÑоÑ, коммÑÑиÑÑÑÑий Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾. Ðожно измениÑÑ, ÑолÑко еÑли Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ опеÑаÑоÑа коммÑÑиÑÑÑÑий оÑÑÑÑÑÑвÑеÑ.
обÑаÑнÑй_опеÑаÑоÑÐпеÑаÑоÑ, обÑаÑнÑй к данномÑ. Ðожно измениÑÑ, ÑолÑко еÑли Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ опеÑаÑоÑа обÑаÑнÑй оÑÑÑÑÑÑвÑеÑ.
HASHESÐоказÑваеÑ, ÑÑо ÑÑÐ¾Ñ Ð¾Ð¿ÐµÑаÑÐ¾Ñ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶Ð¸Ð²Ð°ÐµÑ Ñоединение по Ñ ÐµÑÑ. Ðожно ÑолÑко вклÑÑиÑÑ, но не оÑклÑÑиÑÑ.
MERGESÐоказÑваеÑ, ÑÑо ÑÑÐ¾Ñ Ð¾Ð¿ÐµÑаÑÐ¾Ñ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶Ð¸Ð²Ð°ÐµÑ Ñоединение ÑлиÑнием. Ðожно ÑолÑко вклÑÑиÑÑ, но не оÑклÑÑиÑÑ.
ÐÑимеÑаниÑ
Ðолее подÑобно инÑоÑмаÑÐ¸Ñ Ð¾Ð¿Ð¸Ñана в Разделе 36.14 и Разделе 36.15.
ÐоÑколÑÐºÑ ÐºÐ¾Ð¼Ð¼ÑÑиÑÑÑÑие опеÑаÑоÑÑ ÑвÑÐ·Ð°Ð½Ñ Ð¿Ð°Ñами и ÑвлÑÑÑÑÑ ÐºÐ¾Ð¼Ð¼ÑÑиÑÑÑÑими дÑÑг Ð´Ð»Ñ Ð´ÑÑга, команда ALTER OPERATOR SET COMMUTATOR Ñакже назнаÑÐ¸Ñ Ð´Ð°Ð½Ð½Ñй опеÑаÑÐ¾Ñ ÐºÐ¾Ð¼Ð¼ÑÑиÑÑÑÑим Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑоÑа из паÑамеÑÑа коммÑÑ_опеÑаÑоÑ. ÐналогиÑно команда ALTER OPERATOR SET NEGATOR назнаÑÐ¸Ñ Ð´Ð°Ð½Ð½Ñй опеÑаÑÐ¾Ñ Ð¾Ð±ÑаÑнÑм Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑоÑа из паÑамеÑÑа обÑаÑнÑй_опеÑаÑоÑ. Таким обÑазом, Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð½ÐµÐ¾Ð±Ñ
одимо ÑвлÑÑÑÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑем и данного опеÑаÑоÑа, и назнаÑаемого коммÑÑиÑÑÑÑего или обÑаÑного опеÑаÑоÑа.
ÐÑимеÑÑ
Смена владелÑÑа неÑÑандаÑÑного опеÑаÑоÑа a @@ b Ð´Ð»Ñ Ñипа text:
ALTER OPERATOR @@ (text, text) OWNER TO joe;
Смена ÑÑнкÑий оÑенки избиÑаÑелÑноÑÑи огÑаниÑÐµÐ½Ð¸Ñ Ð¸ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð½ÐµÑÑандаÑÑного опеÑаÑоÑа a && b Ð´Ð»Ñ Ñипа int[]:
ALTER OPERATOR && (int[], int[]) SET (RESTRICT = _int_contsel, JOIN = _int_contjoinsel);
ÐомеÑка опеÑаÑоÑа && как коммÑÑиÑÑÑÑего Ð´Ð»Ñ Ñамого ÑебÑ:
ALTER OPERATOR && (int[], int[]) SET (COMMUTATOR = &&);
СовмеÑÑимоÑÑÑ
Ðоманда ALTER OPERATOR оÑÑÑÑÑÑвÑÐµÑ Ð² ÑÑандаÑÑе SQL.