Postgresql 中文操作指南

ALTER OPERATOR

ALTER OPERATOR — 更改运算符的定义

Synopsis

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 }
         } [, ... ] )

Description

ALTER OPERATOR 更改运算符的定义。

您必须拥有该运算符才能使用 ALTER OPERATOR 。要更改所有者,您必须能够将其 SET ROLE 给新拥有者角色,并且该角色必须在运算符的架构上拥有 CREATE 权限。(这些限制强制更改所有者不会执行您无法通过删除并重新创建运算符来完成的操作。但是,超级用户无论如何都可以更改任何运算符的所有权。)

Parameters

  • name

    • 一个现有运算符的名称(可选,模式限定)。

  • left_type

    • 运算符左操作数的数据类型;如果运算符没有左操作数,则写入 NONE

  • right_type

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

  • new_owner

    • 新运算符的所有者。

  • new_schema

    • 新运算符的模式。

  • res_proc

    • 该运算符的限制选择性估计器功能;写入 NONE 以移除现有选择性估计器。

  • join_proc

    • 该运算符的联接选择性估计器功能;写入 NONE 以移除现有选择性估计器。

Examples

更改类型 text 的自定义运算符 a @@ b 的所有者:

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

更改类型 int[] 的自定义运算符 a && b 的限制和连接选择性估计器功能:

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

Compatibility

SQL 标准中没有 ALTER OPERATOR 语句。