<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/droplang.sgml,v 1.27.2.2 2007/03/26 17:23:44 tgl Exp $
PostgreSQL documentation
-->

<refentry id="APP-DROPLANG">
 <refmeta>
  <refentrytitle id="APP-DROPLANG-TITLE"><application>droplang</application></refentrytitle>
  <manvolnum>1</manvolnum>
  <refmiscinfo>Application</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>droplang</refname>
  <refpurpose>remove a <productname>PostgreSQL</productname> procedural language</refpurpose>
 </refnamediv>

 <indexterm zone="app-droplang">
  <primary>droplang</primary>
 </indexterm>

 <refsynopsisdiv>
  <cmdsynopsis>
   <command>droplang</command>
   <arg rep="repeat"><replaceable>connection-option</replaceable></arg>
   <arg choice="plain"><replaceable>langname</replaceable></arg>
   <arg><replaceable>dbname</replaceable></arg>
   <sbr>
   <command>droplang</command>
   <arg rep="repeat"><replaceable>connection-option</replaceable></arg>
   <group choice="plain"><arg>--list</arg><arg>-l</arg></group>
   <arg choice="plain"><replaceable>dbname</replaceable></arg>
  </cmdsynopsis>
 </refsynopsisdiv>
 
 <refsect1 id="R1-APP-DROPLANG-1">
  <title>
   Description
  </title>

  <para>
   <application>droplang</application> is a utility for removing an 
   existing programming language from a
   <productname>PostgreSQL</productname> database.
   <application>droplang</application> can drop any procedural language,
   even those not supplied by the <productname>PostgreSQL</> distribution.
  </para>
  <para>
   Although backend programming languages can be removed directly using
   several <acronym>SQL</acronym> commands, it is recommended to use
   <application>droplang</application> because it performs a number
   of checks and is much easier to use. See
   <xref linkend="sql-droplanguage" endterm="sql-droplanguage-title">
   for more.
  </para>
 </refsect1>


 <refsect1>
  <title>Options</title>

   <para>
    <application>droplang</application> accepts the following command line arguments:
    
    <variablelist>
     <varlistentry>
      <term><replaceable class="parameter">langname</replaceable></term>
      <listitem>
       <para>
	Specifies the name of the backend programming language to be removed.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option><optional>-d</> <replaceable class="parameter">dbname</replaceable></></term>
      <term><option><optional>--dbname</> <replaceable class="parameter">dbname</replaceable></></term>
      <listitem>
       <para>
	Specifies from which database the language should be removed.
        The default is to use the database with the same name as the
        current system user.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-e</></term>
      <term><option>--echo</></term>
      <listitem>
       <para>
        Display SQL commands as they are executed.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-l</></term>
      <term><option>--list</></term>
      <listitem>
       <para>
        Show a list of already installed languages in the target database.
       </para>
      </listitem>
     </varlistentry>

    </variablelist>
   </para>

   <para>
    <application>droplang</application> also accepts 
    the following command line arguments for connection parameters:
    
    <variablelist>
     <varlistentry>
      <term><option>-h <replaceable class="parameter">host</replaceable></></term>
      <term><option>--host <replaceable class="parameter">host</replaceable></></term>
      <listitem>
       <para>
	Specifies the host name of the machine on which the 
	server
	is running.  If host begins with a slash, it is used 
	as the directory for the Unix domain socket.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-p <replaceable class="parameter">port</replaceable></></term>
      <term><option>--port <replaceable class="parameter">port</replaceable></></term>
      <listitem>
       <para>
	Specifies the Internet TCP/IP port or local Unix domain socket file 
	extension on which the server
	is listening for connections.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-U <replaceable class="parameter">username</replaceable></></term>
      <term><option>--username <replaceable class="parameter">username</replaceable></></term>
      <listitem>
       <para>
        User name to connect as
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-W</></term>
      <term><option>--password</></term>
      <listitem>
       <para>
        Force password prompt.
       </para>
      </listitem>
     </varlistentry>

    </variablelist>
   </para>
 </refsect1>


 <refsect1>
  <title>Environment</title>

  <variablelist>
   <varlistentry>
    <term><envar>PGDATABASE</envar></term>
    <term><envar>PGHOST</envar></term>
    <term><envar>PGPORT</envar></term>
    <term><envar>PGUSER</envar></term>

    <listitem>
     <para>
      Default connection parameters
     </para>
    </listitem>
   </varlistentry>
  </variablelist>

  <para>
   This utility, like most other <productname>PostgreSQL</> utilities,
   also uses the environment variables supported by <application>libpq</>
   (see <xref linkend="libpq-envars">).
  </para>

 </refsect1>


 <refsect1>
   <title>Diagnostics</title>

   <para>
    Most error messages are self-explanatory. If not, run
    <application>droplang</application> with the <option>--echo</option>
    option and see under the respective <acronym>SQL</acronym> command
    for details.  Also, any default connection settings and environment
    variables used by the <application>libpq</application> front-end
    library will apply.
   </para>
 </refsect1>


 <refsect1>
  <title>Notes</title>

  <para>
   Use <xref linkend="app-createlang"> to add a language.
  </para>
 </refsect1>
 

 <refsect1>
  <title>Examples</title>

   <para>
    To remove the language <literal>pltcl</literal>:
<screen>
<prompt>$ </prompt><userinput>droplang pltcl dbname</userinput>
</screen>
   </para>
 </refsect1>

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

  <simplelist type="inline">
   <member><xref linkend="app-createlang"></member>
   <member><xref linkend="sql-droplanguage" endterm="sql-droplanguage-title"></member>
  </simplelist>
 </refsect1>

</refentry>
