| <!-- |
| doc/src/sgml/ref/create_server.sgml |
| PostgreSQL documentation |
| --> |
| |
| <refentry id="sql-createserver"> |
| <indexterm zone="sql-createserver"> |
| <primary>CREATE SERVER</primary> |
| </indexterm> |
| |
| <refmeta> |
| <refentrytitle>CREATE SERVER</refentrytitle> |
| <manvolnum>7</manvolnum> |
| <refmiscinfo>SQL - Language Statements</refmiscinfo> |
| </refmeta> |
| |
| <refnamediv> |
| <refname>CREATE SERVER</refname> |
| <refpurpose>define a new foreign server</refpurpose> |
| </refnamediv> |
| |
| <refsynopsisdiv> |
| <synopsis> |
| CREATE SERVER [ IF NOT EXISTS ] <replaceable class="parameter">server_name</replaceable> [ TYPE '<replaceable class="parameter">server_type</replaceable>' ] [ VERSION '<replaceable class="parameter">server_version</replaceable>' ] |
| FOREIGN DATA WRAPPER <replaceable class="parameter">fdw_name</replaceable> |
| [ OPTIONS ( [ mpp_execute 'any | master | all segments' ], <replaceable class="parameter">option</replaceable> '<replaceable class="parameter">value</replaceable>' [, ... ] ) ] |
| </synopsis> |
| </refsynopsisdiv> |
| |
| <refsect1> |
| <title>Description</title> |
| |
| <para> |
| <command>CREATE SERVER</command> defines a new foreign server. The |
| user who defines the server becomes its owner. |
| </para> |
| |
| <para> |
| A foreign server typically encapsulates connection information that |
| a foreign-data wrapper uses to access an external data resource. |
| Additional user-specific connection information may be specified by |
| means of user mappings. |
| </para> |
| |
| <para> |
| The server name must be unique within the database. |
| </para> |
| |
| <para> |
| Creating a server requires <literal>USAGE</literal> privilege on the |
| foreign-data wrapper being used. |
| </para> |
| </refsect1> |
| |
| <refsect1> |
| <title>Parameters</title> |
| |
| <variablelist> |
| <varlistentry> |
| <term><literal>IF NOT EXISTS</literal></term> |
| <listitem> |
| <para> |
| Do not throw an error if a server with the same name already exists. |
| A notice is issued in this case. Note that there is no guarantee that |
| the existing server is anything like the one that would have been |
| created. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><replaceable class="parameter">server_name</replaceable></term> |
| <listitem> |
| <para> |
| The name of the foreign server to be created. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><replaceable class="parameter">server_type</replaceable></term> |
| <listitem> |
| <para> |
| Optional server type, potentially useful to foreign-data wrappers. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><replaceable class="parameter">server_version</replaceable></term> |
| <listitem> |
| <para> |
| Optional server version, potentially useful to foreign-data wrappers. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><replaceable class="parameter">fdw_name</replaceable></term> |
| <listitem> |
| <para> |
| The name of the foreign-data wrapper that manages the server. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><literal>OPTIONS ( [ mpp_execute 'any | master | all segments' ], <replaceable class="parameter">option</replaceable> '<replaceable class="parameter">value</replaceable>' [, ... ] )</literal></term> |
| <listitem> |
| <para> |
| This clause specifies the options for the server. The options |
| typically define the connection details of the server, but the |
| actual names and values are dependent on the server's |
| foreign-data wrapper. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><replaceable class="PARAMETER">mpp_execute</replaceable></term> |
| <listitem> |
| <para> |
| MASTER, FDW requests for data from master. |
| |
| ANY, FDW requests for data from master or one any segment, depends on |
| which path costs less. |
| |
| ALL SEGMENTS, FDW requests for data from all segments, wrappers need to |
| have a policy matching the segments to data. |
| |
| A mpp_execute option setting in a foreign table of this foreign server |
| takes precedence. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| </variablelist> |
| </refsect1> |
| |
| <refsect1> |
| <title>Notes</title> |
| |
| <para> |
| When using the <xref linkend="dblink"/> module, |
| a foreign server's name can be used |
| as an argument of the <xref linkend="contrib-dblink-connect"/> |
| function to indicate the connection parameters. It is necessary to have |
| the <literal>USAGE</literal> privilege on the foreign server to be |
| able to use it in this way. |
| </para> |
| </refsect1> |
| |
| <refsect1> |
| <title>Examples</title> |
| |
| <para> |
| Create a server <literal>myserver</literal> that uses the |
| foreign-data wrapper <literal>postgres_fdw</literal>: |
| <programlisting> |
| CREATE SERVER myserver FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'foo', dbname 'foodb', port '5432'); |
| </programlisting> |
| See <xref linkend="postgres-fdw"/> for more details. |
| </para> |
| </refsect1> |
| |
| <refsect1> |
| <title>Compatibility</title> |
| |
| <para> |
| <command>CREATE SERVER</command> conforms to ISO/IEC 9075-9 (SQL/MED). |
| </para> |
| </refsect1> |
| |
| <refsect1> |
| <title>See Also</title> |
| |
| <simplelist type="inline"> |
| <member><xref linkend="sql-alterserver"/></member> |
| <member><xref linkend="sql-dropserver"/></member> |
| <member><xref linkend="sql-createforeigndatawrapper"/></member> |
| <member><xref linkend="sql-createforeigntable"/></member> |
| <member><xref linkend="sql-createusermapping"/></member> |
| </simplelist> |
| </refsect1> |
| |
| </refentry> |