Home Explore Blog Models CI



postgresql

2nd chunk of `doc/src/sgml/ref/create_extension.sgml`
f50416bab6c46ac380be48d0e112b6ef9c8586c020b6b4a00000000100000c46
 </varlistentry>

     <varlistentry>
      <term><replaceable class="parameter">extension_name</replaceable></term>
      <listitem>
       <para>
        The name of the extension to be
        installed. <productname>PostgreSQL</productname> will create the
        extension using details from the file <filename><replaceable
        class="parameter">extension_name</replaceable>.control</filename>,
        found via the server's extension control path (set by <xref
        linkend="guc-extension-control-path"/>.)
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><replaceable class="parameter">schema_name</replaceable></term>
      <listitem>
       <para>
        The name of the schema in which to install the extension's
        objects, given that the extension allows its contents to be
        relocated.  The named schema must already exist.
        If not specified, and the extension's control file does not specify a
        schema either, the current default object creation schema is used.
       </para>

       <para>
        If the extension specifies a <literal>schema</literal> parameter in its
        control file, then that schema cannot be overridden with
        a <literal>SCHEMA</literal> clause.  Normally, an error will be raised if
        a <literal>SCHEMA</literal> clause is given and it conflicts with the
        extension's <literal>schema</literal> parameter.  However, if
        the <literal>CASCADE</literal> clause is also given,
        then <replaceable class="parameter">schema_name</replaceable> is
        ignored when it conflicts.  The
        given <replaceable class="parameter">schema_name</replaceable> will be
        used for installation of any needed extensions that do not
        specify <literal>schema</literal> in their control files.
       </para>

       <para>
        Remember that the extension itself is not considered to be within any
        schema: extensions have unqualified names that must be unique
        database-wide.  But objects belonging to the extension can be within
        schemas.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><replaceable class="parameter">version</replaceable></term>
      <listitem>
       <para>
        The version of the extension to install.  This can be written as
        either an identifier or a string literal.  The default version is
        whatever is specified in the extension's control file.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><literal>CASCADE</literal></term>
      <listitem>
       <para>
        Automatically install any extensions that this extension depends on
        that are not already installed.  Their dependencies are likewise
        automatically installed, recursively.  The <literal>SCHEMA</literal> clause,
        if given, applies to all extensions that get installed this way.
        Other options of the statement are not applied to
        automatically-installed extensions; in particular, their default
        versions are always selected.
       </para>

Title: CREATE EXTENSION Parameters
Summary
This section details the parameters for the CREATE EXTENSION command in PostgreSQL. It explains the use of IF NOT EXISTS, extension_name, schema_name, version, and CASCADE. It covers how these parameters affect the extension installation process, including schema placement, version selection, and dependency handling.