# 变换运算符

更改运算符-更改运算符的定义

# 提要

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    SET SCHEMA new_schema

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    SET ( {  RESTRICT = { res_proc | NONE }
           | JOIN = { join_proc | NONE }
         } [, ... ] )

# 描述

变换运算符更改运算符的定义。

您必须拥有操作员才能使用变换运算符。要更改所有者,您还必须是新所有者角色的直接或间接成员,并且该角色必须具有创造操作员架构上的权限。(这些限制强制规定,更改所有者不会做任何你无法通过删除和重新创建操作员来做的事情。但是,超级用户可以改变任何操作员的所有权。)

# 参数

名称

现有运算符的名称(可选架构限定)。

左_型

运算符左操作数的数据类型;写没有一个如果运算符没有左操作数。

右型

运算符右操作数的数据类型。

新老板

接线员的新主人。

新的_模式

运算符的新架构。

res_proc

该算子的约束选择性估计函数;写入NONE以删除现有的选择性估计器。

加入程序

该算子的连接选择性估计函数;写入NONE以删除现有的选择性估计器。

# 例子

更改自定义运算符的所有者a@@b对于类型文本:

ALTER OPERATOR @@ (text, text) OWNER TO joe;

更改自定义运算符的限制和联接选择性估计函数a&b对于类型int[]:

ALTER OPERATOR && (_int4, _int4) SET (RESTRICT = _int_contsel, JOIN = _int_contjoinsel);

# 兼容性

没有变换运算符SQL标准中的语句。

# 另见

创建运算符, 接线员