Home Explore Blog CI



postgresql

doc/src/sgml/ref/drop_language.sgml
3e5ea9f82558a98cd15851f591e194d47803e198789e5cc10000000300000b8f
<!--
doc/src/sgml/ref/drop_language.sgml
PostgreSQL documentation
-->

<refentry id="sql-droplanguage">
 <indexterm zone="sql-droplanguage">
  <primary>DROP LANGUAGE</primary>
 </indexterm>

 <refmeta>
  <refentrytitle>DROP LANGUAGE</refentrytitle>
  <manvolnum>7</manvolnum>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>DROP LANGUAGE</refname>
  <refpurpose>remove a procedural language</refpurpose>
 </refnamediv>

 <refsynopsisdiv>
<synopsis>
DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] <replaceable class="parameter">name</replaceable> [ CASCADE | RESTRICT ]
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>
   <command>DROP LANGUAGE</command> removes the definition of a
   previously registered procedural language.  You must be a superuser
   or the owner of the language to use <command>DROP LANGUAGE</command>.
  </para>

  <note>
   <para>
    As of <productname>PostgreSQL</productname> 9.1, most procedural
    languages have been made into <quote>extensions</quote>, and should
    therefore be removed with <link linkend="sql-dropextension"><command>DROP EXTENSION</command></link>
    not <command>DROP LANGUAGE</command>.
   </para>
  </note>
 </refsect1>

 <refsect1>
  <title>Parameters</title>

  <variablelist>

   <varlistentry>
    <term><literal>IF EXISTS</literal></term>
    <listitem>
     <para>
      Do not throw an error if the language does not exist. A notice is issued
      in this case.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">name</replaceable></term>
    <listitem>
     <para>
      The name of an existing procedural language.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><literal>CASCADE</literal></term>
    <listitem>
     <para>
      Automatically drop objects that depend on the language (such as
      functions in the language),
      and in turn all objects that depend on those objects
      (see <xref linkend="ddl-depend"/>).
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><literal>RESTRICT</literal></term>
    <listitem>
     <para>
      Refuse to drop the language if any objects depend on it.  This
      is the default.
     </para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>

 <refsect1>
  <title>Examples</title>

  <para>
   This command removes the procedural language
   <literal>plsample</literal>:

<programlisting>
DROP LANGUAGE plsample;
</programlisting></para>
 </refsect1>

 <refsect1>
  <title>Compatibility</title>

  <para>
   There is no <command>DROP LANGUAGE</command> statement in the SQL
   standard.
  </para>
 </refsect1>

 <refsect1>
  <title>See Also</title>

  <simplelist type="inline">
   <member><xref linkend="sql-alterlanguage"/></member>
   <member><xref linkend="sql-createlanguage"/></member>
  </simplelist>
 </refsect1>

</refentry>

Chunks
6efbdf2b (1st chunk of `doc/src/sgml/ref/drop_language.sgml`)
Title: DROP LANGUAGE
Summary
The DROP LANGUAGE command removes a previously registered procedural language. You must be a superuser or the owner of the language to use this command. As of PostgreSQL 9.1, most procedural languages have been made into extensions and should be removed with DROP EXTENSION instead. The syntax is DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] name [ CASCADE | RESTRICT ].