ALTER OPERATOR — 演算子の定義を変更する
ALTER OPERATORname( {left_type| NONE } ,right_type) OWNER TO {new_owner| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER OPERATORname( {left_type| NONE } ,right_type) SET SCHEMAnew_schemaALTER OPERATORname( {left_type| NONE } ,right_type) SET ( { RESTRICT = {res_proc| NONE } | JOIN = {join_proc| NONE } | COMMUTATOR =com_op| NEGATOR =neg_op| HASHES | MERGES } [, ... ] )
ALTER OPERATORは演算子の定義を変更します。
ALTER OPERATORを使用するには演算子の所有者でなければなりません。
所有者を変更するには、新しい所有者ロールに対してSET ROLEができなければなりません。また、そのロールは演算子のスキーマにおいてCREATE権限を持たなければなりません。
(この制限により、演算子の削除と再作成で行うことができない処理を所有者の変更で行えないようになります。
しかし、スーパーユーザはすべての演算子の所有者を変更することができます。)
name既存の演算子の名前です(スキーマ修飾名も可)。
left_type
演算子の左オペランドのデータ型です。
左オペランドがない演算子の場合はNONEを指定します。
right_type演算子の右オペランドのデータ型です。
new_owner演算子の新しい所有者です。
new_schema演算子の新しいスキーマです。
res_procこの演算子の制約選択評価関数です。 既存の制約選択評価関数を削除するにはNONEを指定します。
join_procこの演算子の結合選択評価関数です。 既存の結合選択評価関数を削除するにはNONEを指定します。
com_opこの演算子の交換子。 演算子に既存の交換子がない場合にのみ変更できます。
neg_opこの演算子の否定子。 演算子に既存の否定子がない場合にのみ変更できます。
HASHESこの演算子がハッシュ結合をサポートできることを示します。 有効にできるだけで、無効にはできません。
MERGESこの演算子がマージ結合をサポートできることを示します。 有効にできるだけで、無効にはできません。
交換子は互いに交換子である対になっているので、ALTER OPERATOR SET COMMUTATORはcom_opの交換子も対象演算子に設定します。
同様に、ALTER OPERATOR SET NEGATORはneg_opの否定子も対象演算子に設定します。
したがって、対象演算子と同様に交換子または否定子演算子を所有する必要があります。
text型用の独自の演算子a @@ bの所有者を変更します。
ALTER OPERATOR @@ (text, text) OWNER TO joe;
int[]型用の独自の演算子a && bの制約および結合選択評価関数を変更します。
ALTER OPERATOR && (int[], int[]) SET (RESTRICT = _int_contsel, JOIN = _int_contjoinsel);
&&演算子をそれ自身の交換子として印を付けます。
ALTER OPERATOR && (int[], int[]) SET (COMMUTATOR = &&);
標準SQLにはALTER OPERATOR文はありません。