1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

Remove createlang and droplang

They have been deprecated since PostgreSQL 9.1.

Reviewed-by: Magnus Hagander <magnus@hagander.net>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
This commit is contained in:
Peter Eisentraut
2017-03-23 14:16:45 -04:00
parent 691b8d5928
commit 50c956add8
21 changed files with 21 additions and 1182 deletions

View File

@ -2256,17 +2256,17 @@ hosts=local4,bind4
memory management. You can have a server with many multiples of
gigabytes of RAM free, but still get out of memory or address
space errors when running applications. One example
is <command>createlang</command> failing with unusual errors.
is loading of extensions failing with unusual errors.
For example, running as the owner of the PostgreSQL installation:
<screen>
-bash-3.00$ createlang plperl template1
createlang: language installation failed: ERROR: could not load library "/opt/dbs/pgsql748/lib/plperl.so": A memory address is not in the address space for the process.
=# CREATE EXTENSION plperl;
ERROR: could not load library "/opt/dbs/pgsql/lib/plperl.so": A memory address is not in the address space for the process.
</screen>
Running as a non-owner in the group possessing the PostgreSQL
installation:
<screen>
-bash-3.00$ createlang plperl template1
createlang: language installation failed: ERROR: could not load library "/opt/dbs/pgsql748/lib/plperl.so": Bad address
=# CREATE EXTENSION plperl;
ERROR: could not load library "/opt/dbs/pgsql/lib/plperl.so": Bad address
</screen>
Another example is out of memory errors in the PostgreSQL server
logs, with every memory allocation near or greater than 256 MB
@ -2284,7 +2284,7 @@ createlang: language installation failed: ERROR: could not load library "/opt/d
</para>
<para>
In the case of the <command>createlang</command> example, above,
In the case of the <literal>plperl</literal> example, above,
check your umask and the permissions of the binaries in your
PostgreSQL installation. The binaries involved in that example
were 32-bit and installed as mode 750 instead of 755. Due to the

View File

@ -27,8 +27,7 @@
<para>
To install PL/Perl in a particular database, use
<literal>CREATE EXTENSION plperl</>, or from the shell command line use
<literal>createlang plperl <replaceable>dbname</></literal>.
<literal>CREATE EXTENSION plperl</>.
</para>
<tip>

View File

@ -14,8 +14,7 @@
<para>
To install PL/Python in a particular database, use
<literal>CREATE EXTENSION plpythonu</>, or from the shell command line use
<literal>createlang plpythonu <replaceable>dbname</></literal> (but
<literal>CREATE EXTENSION plpythonu</> (but
see also <xref linkend="plpython-python23">).
</para>

View File

@ -66,10 +66,9 @@
directory if Tcl support is specified in the configuration step of
the installation procedure. To install <application>PL/Tcl</>
and/or <application>PL/TclU</> in a particular database, use the
<command>CREATE EXTENSION</> command or the
<command>createlang</command> program, for example
<literal>createlang pltcl <replaceable>dbname</></literal> or
<literal>createlang pltclu <replaceable>dbname</></literal>.
<command>CREATE EXTENSION</> command, for example
<literal>CREATE EXTENSION pltcl</literal> or
<literal>CREATE EXTENSION pltclu</literal>.
</para>
</sect1>

View File

@ -182,10 +182,8 @@ Complete list of usable sgml source files in this directory.
<!-- applications and utilities -->
<!ENTITY clusterdb SYSTEM "clusterdb.sgml">
<!ENTITY createdb SYSTEM "createdb.sgml">
<!ENTITY createlang SYSTEM "createlang.sgml">
<!ENTITY createuser SYSTEM "createuser.sgml">
<!ENTITY dropdb SYSTEM "dropdb.sgml">
<!ENTITY droplang SYSTEM "droplang.sgml">
<!ENTITY dropuser SYSTEM "dropuser.sgml">
<!ENTITY ecpgRef SYSTEM "ecpg-ref.sgml">
<!ENTITY initdb SYSTEM "initdb.sgml">

View File

@ -847,7 +847,6 @@ COMMIT;
<member><xref linkend="sql-grant"></member>
<member><xref linkend="sql-load"></member>
<member><xref linkend="sql-revoke"></member>
<member><xref linkend="app-createlang"></member>
</simplelist>
</refsect1>

View File

@ -230,21 +230,14 @@ CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE <replaceable class="pa
<title>Notes</title>
<para>
The <xref linkend="app-createlang"> program is a simple wrapper around
the <command>CREATE LANGUAGE</> command. It eases
installation of procedural languages from the shell command line.
</para>
<para>
Use <xref linkend="sql-droplanguage">, or better yet the <xref
linkend="app-droplang"> program, to drop procedural languages.
Use <xref linkend="sql-droplanguage"> to drop procedural languages.
</para>
<para>
The system catalog <classname>pg_language</classname> (see <xref
linkend="catalog-pg-language">) records information about the
currently installed languages. Also, <command>createlang</command>
has an option to list the installed languages.
currently installed languages. Also, the <application>psql</application>
command <command>\dL</command> lists the installed languages.
</para>
<para>
@ -325,8 +318,6 @@ CREATE LANGUAGE plsample
<member><xref linkend="sql-droplanguage"></member>
<member><xref linkend="sql-grant"></member>
<member><xref linkend="sql-revoke"></member>
<member><xref linkend="app-createlang"></member>
<member><xref linkend="app-droplang"></member>
</simplelist>
</refsect1>
</refentry>

View File

@ -1,291 +0,0 @@
<!--
doc/src/sgml/ref/createlang.sgml
PostgreSQL documentation
-->
<refentry id="APP-CREATELANG">
<indexterm zone="app-createlang">
<primary>createlang</primary>
</indexterm>
<refmeta>
<refentrytitle><application>createlang</application></refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo>Application</refmiscinfo>
</refmeta>
<refnamediv>
<refname>createlang</refname>
<refpurpose>install a <productname>PostgreSQL</productname> procedural language</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>createlang</command>
<arg rep="repeat"><replaceable>connection-option</replaceable></arg>
<arg choice="plain"><replaceable>langname</replaceable></arg>
<arg choice="opt"><replaceable>dbname</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>createlang</command>
<arg rep="repeat"><replaceable>connection-option</replaceable></arg>
<group choice="plain"><arg choice="plain"><option>--list</option></arg><arg choice="plain"><option>-l</option></arg></group>
<arg choice="opt"><replaceable>dbname</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
<application>createlang</application> is a utility for adding a
procedural language to a <productname>PostgreSQL</productname> database.
</para>
<para>
<application>createlang</application> is just a wrapper around the
<xref linkend="sql-createextension"> SQL command.
</para>
<caution>
<para>
<application>createlang</application> is deprecated and may be removed
in a future <productname>PostgreSQL</productname> release. Direct use
of the <command>CREATE EXTENSION</> command is recommended instead.
</para>
</caution>
</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 language to be
installed. (This name is lower-cased.)
</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 the database to which 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>
<varlistentry>
<term><option>-V</></term>
<term><option>--version</></term>
<listitem>
<para>
Print the <application>createlang</application> version and exit.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-?</></term>
<term><option>--help</></term>
<listitem>
<para>
Show help about <application>createlang</application> command line
arguments, and exit.
</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>--no-password</></term>
<listitem>
<para>
Never issue a password prompt. If the server requires
password authentication and a password is not available by
other means such as a <filename>.pgpass</filename> file, the
connection attempt will fail. This option can be useful in
batch jobs and scripts where no user is present to enter a
password.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-W</></term>
<term><option>--password</></term>
<listitem>
<para>
Force <application>createlang</application> to prompt for a
password before connecting to a database.
</para>
<para>
This option is never essential, since
<application>createlang</application> will automatically prompt
for a password if the server demands password authentication.
However, <application>createlang</application> will waste a
connection attempt finding out that the server wants a password.
In some cases it is worth typing <option>-W</> to avoid the extra
connection attempt.
</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 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-createextension"></member>
<member><xref linkend="sql-createlanguage"></member>
</simplelist>
</refsect1>
</refentry>

View File

@ -120,7 +120,6 @@ DROP LANGUAGE plsample;
<simplelist type="inline">
<member><xref linkend="sql-alterlanguage"></member>
<member><xref linkend="sql-createlanguage"></member>
<member><xref linkend="app-droplang"></member>
</simplelist>
</refsect1>

View File

@ -1,288 +0,0 @@
<!--
doc/src/sgml/ref/droplang.sgml
PostgreSQL documentation
-->
<refentry id="APP-DROPLANG">
<indexterm zone="app-droplang">
<primary>droplang</primary>
</indexterm>
<refmeta>
<refentrytitle><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>
<refsynopsisdiv>
<cmdsynopsis>
<command>droplang</command>
<arg rep="repeat"><replaceable>connection-option</replaceable></arg>
<arg choice="plain"><replaceable>langname</replaceable></arg>
<arg choice="opt"><replaceable>dbname</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>droplang</command>
<arg rep="repeat"><replaceable>connection-option</replaceable></arg>
<group choice="plain"><arg choice="plain"><option>--list</option></arg><arg choice="plain"><option>-l</option></arg></group>
<arg choice="opt"><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 procedural language from a
<productname>PostgreSQL</productname> database.
</para>
<para>
<application>droplang</application> is just a wrapper around the
<xref linkend="sql-dropextension"> SQL command.
</para>
<caution>
<para>
<application>droplang</application> is deprecated and may be removed
in a future <productname>PostgreSQL</productname> release. Direct use
of the <command>DROP EXTENSION</> command is recommended instead.
</para>
</caution>
</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 procedural language to be removed.
(This name is lower-cased.)
</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>
<varlistentry>
<term><option>-V</></term>
<term><option>--version</></term>
<listitem>
<para>
Print the <application>droplang</application> version and exit.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-?</></term>
<term><option>--help</></term>
<listitem>
<para>
Show help about <application>droplang</application> command line
arguments, and exit.
</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>--no-password</></term>
<listitem>
<para>
Never issue a password prompt. If the server requires
password authentication and a password is not available by
other means such as a <filename>.pgpass</filename> file, the
connection attempt will fail. This option can be useful in
batch jobs and scripts where no user is present to enter a
password.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-W</></term>
<term><option>--password</></term>
<listitem>
<para>
Force <application>droplang</application> to prompt for a
password before connecting to a database.
</para>
<para>
This option is never essential, since
<application>droplang</application> will automatically prompt
for a password if the server demands password authentication.
However, <application>droplang</application> will waste a
connection attempt finding out that the server wants a password.
In some cases it is worth typing <option>-W</> to avoid the extra
connection attempt.
</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-dropextension"></member>
<member><xref linkend="sql-droplanguage"></member>
</simplelist>
</refsect1>
</refentry>

View File

@ -233,10 +233,8 @@
&clusterdb;
&createdb;
&createlang;
&createuser;
&dropdb;
&droplang;
&dropuser;
&ecpgRef;
&pgBasebackup;

View File

@ -10860,9 +10860,7 @@ SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;
<listitem>
<para>
Mark <link
linkend="APP-CREATELANG"><application>createlang</></link>
and <link linkend="APP-DROPLANG"><application>droplang</></link>
Mark <application>createlang</> and <application>droplang</>
as deprecated now that they just invoke extension commands (Tom
Lane)
</para>

View File

@ -56,14 +56,7 @@
For the languages supplied with the standard distribution, it is
only necessary to execute <command>CREATE EXTENSION</>
<replaceable>language_name</> to install the language into the
current database. Alternatively, the program <xref
linkend="app-createlang"> can be used to do this from the shell
command line. For example, to install the language
<application>PL/Perl</application> into the database
<literal>template1</>, use:
<programlisting>
createlang plperl template1
</programlisting>
current database.
The manual procedure described below is only recommended for
installing languages that have not been packaged as extensions.
</para>