ALTER OPERATOR

ALTER OPERATOR

7

SQL - Language Statements

ALTER OPERATOR

change the definition of an operator

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` changes the definition of an operator.

You must own the operator to use `ALTER OPERATOR`. To alter the owner,
you must also be a direct or indirect member of the new owning role, and
that role must have `CREATE` privilege on the operator\'s schema. (These
restrictions enforce that altering the owner doesn\'t do anything you
couldn\'t do by dropping and recreating the operator. However, a
superuser can alter ownership of any operator anyway.)

Parameters
==========

name

:   The name (optionally schema-qualified) of an existing operator.

left\_type

:   The data type of the operator\'s left operand; write `NONE` if the
    operator has no left operand.

right\_type

:   The data type of the operator\'s right operand.

new\_owner

:   The new owner of the operator.

new\_schema

:   The new schema for the operator.

res\_proc

:   The restriction selectivity estimator function for this operator;
    write NONE to remove existing selectivity estimator.

join\_proc

:   The join selectivity estimator function for this operator; write
    NONE to remove existing selectivity estimator.

Examples
========

Change the owner of a custom operator `a @@ b` for type `text`:

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

Change the restriction and join selectivity estimator functions of a
custom operator `a && b` for type `int[]`:

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

Compatibility
=============

There is no `ALTER OPERATOR` statement in the SQL standard.

See Also
========
