<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/createlang.sgml,v 1.38.2.3 2007/05/15 19:43:59 neilc Exp $
PostgreSQL documentation
-->

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

 <refnamediv>
  <refname>createlang</refname>
  <refpurpose>define a new <productname>PostgreSQL</productname> procedural language</refpurpose>
 </refnamediv>

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

 <refsynopsisdiv>
  <cmdsynopsis>
   <command>createlang</command>
   <arg rep="repeat"><replaceable>connection-option</replaceable></arg>
   <arg choice="plain"><replaceable>langname</replaceable></arg>
   <arg><replaceable>dbname</replaceable></arg>
   <sbr>
   <command>createlang</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>
  <title>Description</title>

  <para>
   <application>createlang</application> is a utility for adding a new 
   programming language to a <productname>PostgreSQL</productname> database.
   <application>createlang</application> is just a wrapper around the
   <xref linkend="sql-createlanguage" endterm="sql-createlanguage-title">
   command.
  </para>
 </refsect1>


 <refsect1>
  <title>Options</title>

   <para>
    <application>createlang</application> accepts the following command-line arguments:
    
    <variablelist>
     <varlistentry>
      <term><replaceable class="parameter">langname</replaceable></term>
      <listitem>
       <para>
        Specifies the name of the procedural programming language to be
        defined.
       </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 to which database the language should be added.
        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>createlang</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 the value 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 TCP 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>createlang</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-droplang"> to remove a language.
  </para>
 </refsect1>
 

 <refsect1>
  <title>Examples</title>

   <para>
    To install the language <literal>pltcl</literal> into the database
    <literal>template1</literal>:
<screen>
<prompt>$ </prompt><userinput>createlang pltcl template1</userinput>
</screen>
    Note that installing the language into <literal>template1</literal>
    will cause it to be automatically installed into subsequently-created
    databases as well.
   </para>
 </refsect1>

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

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

</refentry>
