'\" t
.\" Title: ALTER OPERATOR
.\" Author: The PostgreSQL Global Development Group
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 2023
.\" Manual: PostgreSQL 11.22 Documentation
.\" Source: PostgreSQL 11.22
.\" Language: English
.\"
.TH "ALTER OPERATOR" "7" "2023" "PostgreSQL 11.22" "PostgreSQL 11.22 Documentation"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
ALTER_OPERATOR \- change the definition of an operator
.SH "SYNOPSIS"
.sp
.nf
ALTER OPERATOR \fIname\fR ( { \fIleft_type\fR | NONE } , { \fIright_type\fR | NONE } )
OWNER TO { \fInew_owner\fR | CURRENT_USER | SESSION_USER }
ALTER OPERATOR \fIname\fR ( { \fIleft_type\fR | NONE } , { \fIright_type\fR | NONE } )
SET SCHEMA \fInew_schema\fR
ALTER OPERATOR \fIname\fR ( { \fIleft_type\fR | NONE } , { \fIright_type\fR | NONE } )
SET ( { RESTRICT = { \fIres_proc\fR | NONE }
| JOIN = { \fIjoin_proc\fR | NONE }
} [, \&.\&.\&. ] )
.fi
.SH "DESCRIPTION"
.PP
\fBALTER OPERATOR\fR
changes the definition of an operator\&.
.PP
You must own the operator to use
\fBALTER OPERATOR\fR\&. 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\*(Aqs schema\&. (These restrictions enforce that altering the owner doesn\*(Aqt do anything you couldn\*(Aqt do by dropping and recreating the operator\&. However, a superuser can alter ownership of any operator anyway\&.)
.SH "PARAMETERS"
.PP
\fIname\fR
.RS 4
The name (optionally schema\-qualified) of an existing operator\&.
.RE
.PP
\fIleft_type\fR
.RS 4
The data type of the operator\*(Aqs left operand; write
NONE
if the operator has no left operand\&.
.RE
.PP
\fIright_type\fR
.RS 4
The data type of the operator\*(Aqs right operand; write
NONE
if the operator has no right operand\&.
.RE
.PP
\fInew_owner\fR
.RS 4
The new owner of the operator\&.
.RE
.PP
\fInew_schema\fR
.RS 4
The new schema for the operator\&.
.RE
.PP
\fIres_proc\fR
.RS 4
The restriction selectivity estimator function for this operator; write NONE to remove existing selectivity estimator\&.
.RE
.PP
\fIjoin_proc\fR
.RS 4
The join selectivity estimator function for this operator; write NONE to remove existing selectivity estimator\&.
.RE
.SH "EXAMPLES"
.PP
Change the owner of a custom operator
a @@ b
for type
text:
.sp
.if n \{\
.RS 4
.\}
.nf
ALTER OPERATOR @@ (text, text) OWNER TO joe;
.fi
.if n \{\
.RE
.\}
.PP
Change the restriction and join selectivity estimator functions of a custom operator
a && b
for type
int[]:
.sp
.if n \{\
.RS 4
.\}
.nf
ALTER OPERATOR && (_int4, _int4) SET (RESTRICT = _int_contsel, JOIN = _int_contjoinsel);
.fi
.if n \{\
.RE
.\}
.SH "COMPATIBILITY"
.PP
There is no
\fBALTER OPERATOR\fR
statement in the SQL standard\&.
.SH "SEE ALSO"
CREATE OPERATOR (\fBCREATE_OPERATOR\fR(7)), DROP OPERATOR (\fBDROP_OPERATOR\fR(7))