161 lines
4.6 KiB
Plaintext
161 lines
4.6 KiB
Plaintext
<!--
|
|
doc/src/sgml/ref/alter_operator.sgml
|
|
PostgreSQL documentation
|
|
-->
|
|
|
|
<refentry id="sql-alteroperator">
|
|
<indexterm zone="sql-alteroperator">
|
|
<primary>ALTER OPERATOR</primary>
|
|
</indexterm>
|
|
|
|
<refmeta>
|
|
<refentrytitle>ALTER OPERATOR</refentrytitle>
|
|
<manvolnum>7</manvolnum>
|
|
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>ALTER OPERATOR</refname>
|
|
<refpurpose>change the definition of an operator</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<synopsis>
|
|
ALTER OPERATOR <replaceable>name</replaceable> ( { <replaceable>left_type</replaceable> | NONE } , <replaceable>right_type</replaceable> )
|
|
OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
|
|
|
|
ALTER OPERATOR <replaceable>name</replaceable> ( { <replaceable>left_type</replaceable> | NONE } , <replaceable>right_type</replaceable> )
|
|
SET SCHEMA <replaceable>new_schema</replaceable>
|
|
|
|
ALTER OPERATOR <replaceable>name</replaceable> ( { <replaceable>left_type</replaceable> | NONE } , <replaceable>right_type</replaceable> )
|
|
SET ( { RESTRICT = { <replaceable class="parameter">res_proc</replaceable> | NONE }
|
|
| JOIN = { <replaceable class="parameter">join_proc</replaceable> | NONE }
|
|
} [, ... ] )
|
|
</synopsis>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para>
|
|
<command>ALTER OPERATOR</command> changes the definition of
|
|
an operator.
|
|
</para>
|
|
|
|
<para>
|
|
You must own the operator to use <command>ALTER OPERATOR</command>.
|
|
To alter the owner, you must also be a direct or indirect member of the new
|
|
owning role, and that role must have <literal>CREATE</literal> 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.)
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Parameters</title>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">name</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The name (optionally schema-qualified) of an existing operator.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">left_type</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The data type of the operator's left operand; write
|
|
<literal>NONE</literal> if the operator has no left operand.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">right_type</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The data type of the operator's right operand.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">new_owner</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The new owner of the operator.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">new_schema</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The new schema for the operator.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">res_proc</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The restriction selectivity estimator function for this operator; write NONE to remove existing selectivity estimator.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">join_proc</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The join selectivity estimator function for this operator; write NONE to remove existing selectivity estimator.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Examples</title>
|
|
|
|
<para>
|
|
Change the owner of a custom operator <literal>a @@ b</literal> for type <type>text</type>:
|
|
<programlisting>
|
|
ALTER OPERATOR @@ (text, text) OWNER TO joe;
|
|
</programlisting></para>
|
|
|
|
<para>
|
|
Change the restriction and join selectivity estimator functions of a custom operator <literal>a && b</literal> for type <type>int[]</type>:
|
|
<programlisting>
|
|
ALTER OPERATOR && (_int4, _int4) SET (RESTRICT = _int_contsel, JOIN = _int_contjoinsel);
|
|
</programlisting></para>
|
|
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Compatibility</title>
|
|
|
|
<para>
|
|
There is no <command>ALTER OPERATOR</command> statement in
|
|
the SQL standard.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
|
|
<simplelist type="inline">
|
|
<member><xref linkend="sql-createoperator"/></member>
|
|
<member><xref linkend="sql-dropoperator"/></member>
|
|
</simplelist>
|
|
</refsect1>
|
|
</refentry>
|