1<!--
2doc/src/sgml/ref/alter_foreign_data_wrapper.sgml
3PostgreSQL documentation
4-->
5
6<refentry id="SQL-ALTERFOREIGNDATAWRAPPER">
7 <indexterm zone="sql-alterforeigndatawrapper">
8  <primary>ALTER FOREIGN DATA WRAPPER</primary>
9 </indexterm>
10
11 <refmeta>
12  <refentrytitle>ALTER FOREIGN DATA WRAPPER</refentrytitle>
13  <manvolnum>7</manvolnum>
14  <refmiscinfo>SQL - Language Statements</refmiscinfo>
15 </refmeta>
16
17 <refnamediv>
18  <refname>ALTER FOREIGN DATA WRAPPER</refname>
19  <refpurpose>change the definition of a foreign-data wrapper</refpurpose>
20 </refnamediv>
21
22 <refsynopsisdiv>
23<synopsis>
24ALTER FOREIGN DATA WRAPPER <replaceable class="parameter">name</replaceable>
25    [ HANDLER <replaceable class="parameter">handler_function</replaceable> | NO HANDLER ]
26    [ VALIDATOR <replaceable class="parameter">validator_function</replaceable> | NO VALIDATOR ]
27    [ OPTIONS ( [ ADD | SET | DROP ] <replaceable class="PARAMETER">option</replaceable> ['<replaceable class="PARAMETER">value</replaceable>'] [, ... ]) ]
28ALTER FOREIGN DATA WRAPPER <replaceable class="parameter">name</replaceable> OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
29ALTER FOREIGN DATA WRAPPER <replaceable class="parameter">name</replaceable> RENAME TO <replaceable>new_name</replaceable>
30</synopsis>
31 </refsynopsisdiv>
32
33 <refsect1>
34  <title>Description</title>
35
36  <para>
37   <command>ALTER FOREIGN DATA WRAPPER</command> changes the
38   definition of a foreign-data wrapper.  The first form of the
39   command changes the support functions or the generic options of the
40   foreign-data wrapper (at least one clause is required).  The second
41   form changes the owner of the foreign-data wrapper.
42  </para>
43
44  <para>
45   Only superusers can alter foreign-data wrappers.  Additionally,
46   only superusers can own foreign-data wrappers.
47  </para>
48 </refsect1>
49
50 <refsect1>
51  <title>Parameters</title>
52
53  <variablelist>
54   <varlistentry>
55    <term><replaceable class="parameter">name</replaceable></term>
56    <listitem>
57     <para>
58      The name of an existing foreign-data wrapper.
59     </para>
60    </listitem>
61   </varlistentry>
62
63   <varlistentry>
64    <term><literal>HANDLER <replaceable class="parameter">handler_function</replaceable></literal></term>
65    <listitem>
66     <para>
67      Specifies a new handler function for the foreign-data wrapper.
68     </para>
69    </listitem>
70   </varlistentry>
71
72   <varlistentry>
73    <term><literal>NO HANDLER</literal></term>
74    <listitem>
75     <para>
76      This is used to specify that the foreign-data wrapper should no
77      longer have a handler function.
78     </para>
79     <para>
80      Note that foreign tables that use a foreign-data wrapper with no
81      handler cannot be accessed.
82     </para>
83    </listitem>
84   </varlistentry>
85
86   <varlistentry>
87    <term><literal>VALIDATOR <replaceable class="parameter">validator_function</replaceable></literal></term>
88    <listitem>
89     <para>
90      Specifies a new validator function for the foreign-data wrapper.
91     </para>
92
93     <para>
94      Note that it is possible that pre-existing options of the foreign-data
95      wrapper, or of dependent servers, user mappings, or foreign tables, are
96      invalid according to the new validator.  <productname>PostgreSQL</> does
97      not check for this.  It is up to the user to make sure that these
98      options are correct before using the modified foreign-data wrapper.
99      However, any options specified in this <command>ALTER FOREIGN DATA
100      WRAPPER</> command will be checked using the new validator.
101     </para>
102    </listitem>
103   </varlistentry>
104
105   <varlistentry>
106    <term><literal>NO VALIDATOR</literal></term>
107    <listitem>
108     <para>
109      This is used to specify that the foreign-data wrapper should no
110      longer have a validator function.
111     </para>
112    </listitem>
113   </varlistentry>
114
115   <varlistentry>
116    <term><literal>OPTIONS ( [ ADD | SET | DROP ] <replaceable class="PARAMETER">option</replaceable> ['<replaceable class="PARAMETER">value</replaceable>'] [, ... ] )</literal></term>
117    <listitem>
118     <para>
119      Change options for the foreign-data
120      wrapper.  <literal>ADD</>, <literal>SET</>, and <literal>DROP</>
121      specify the action to be performed.  <literal>ADD</> is assumed
122      if no operation is explicitly specified.  Option names must be
123      unique; names and values are also validated using the foreign
124      data wrapper's validator function, if any.
125     </para>
126    </listitem>
127   </varlistentry>
128
129   <varlistentry>
130    <term><replaceable class="PARAMETER">new_owner</replaceable></term>
131    <listitem>
132     <para>
133      The user name of the new owner of the foreign-data wrapper.
134     </para>
135    </listitem>
136   </varlistentry>
137
138   <varlistentry>
139    <term><replaceable class="parameter">new_name</replaceable></term>
140    <listitem>
141     <para>
142      The new name for the foreign-data wrapper.
143     </para>
144    </listitem>
145   </varlistentry>
146  </variablelist>
147 </refsect1>
148
149 <refsect1>
150  <title>Examples</title>
151
152  <para>
153   Change a foreign-data wrapper <literal>dbi</>, add
154   option <literal>foo</>, drop <literal>bar</>:
155<programlisting>
156ALTER FOREIGN DATA WRAPPER dbi OPTIONS (ADD foo '1', DROP 'bar');
157</programlisting>
158  </para>
159
160  <para>
161   Change the foreign-data wrapper <literal>dbi</> validator
162   to <literal>bob.myvalidator</>:
163<programlisting>
164ALTER FOREIGN DATA WRAPPER dbi VALIDATOR bob.myvalidator;
165</programlisting></para>
166 </refsect1>
167
168 <refsect1>
169  <title>Compatibility</title>
170
171  <para>
172   <command>ALTER FOREIGN DATA WRAPPER</command> conforms to ISO/IEC
173   9075-9 (SQL/MED), except that the <literal>HANDLER</literal>,
174   <literal>VALIDATOR</>, <literal>OWNER TO</>, and <literal>RENAME</literal>
175   clauses are extensions.
176  </para>
177 </refsect1>
178
179 <refsect1>
180  <title>See Also</title>
181
182  <simplelist type="inline">
183   <member><xref linkend="sql-createforeigndatawrapper"></member>
184   <member><xref linkend="sql-dropforeigndatawrapper"></member>
185  </simplelist>
186 </refsect1>
187
188</refentry>
189