postgresql/doc/src/sgml/ref/load.sgml

82 lines
2.3 KiB
Plaintext

<!--
doc/src/sgml/ref/load.sgml
PostgreSQL documentation
-->
<refentry id="sql-load">
<indexterm zone="sql-load">
<primary>LOAD</primary>
</indexterm>
<refmeta>
<refentrytitle>LOAD</refentrytitle>
<manvolnum>7</manvolnum>
<refmiscinfo>SQL - Language Statements</refmiscinfo>
</refmeta>
<refnamediv>
<refname>LOAD</refname>
<refpurpose>load a shared library file</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>
LOAD '<replaceable class="parameter">filename</replaceable>'
</synopsis>
</refsynopsisdiv>
<refsect1 id="sql-load-description">
<title>Description</title>
<para>
This command loads a shared library file into the <productname>PostgreSQL</productname>
server's address space. If the file has been loaded already,
the command does nothing. Shared library files that contain C functions
are automatically loaded whenever one of their functions is called.
Therefore, an explicit <command>LOAD</command> is usually only needed to
load a library that modifies the server's behavior through <quote>hooks</quote>
rather than providing a set of functions.
</para>
<para>
The library file name is typically given as just a bare file name,
which is sought in the server's library search path (set
by <xref linkend="guc-dynamic-library-path"/>). Alternatively it can be
given as a full path name. In either case the platform's standard shared
library file name extension may be omitted.
See <xref linkend="xfunc-c-dynload"/> for more information on this topic.
</para>
<indexterm>
<primary><filename>$libdir/plugins</filename></primary>
</indexterm>
<para>
Non-superusers can only apply <command>LOAD</command> to library files
located in <filename>$libdir/plugins/</filename> &mdash; the specified
<replaceable class="parameter">filename</replaceable> must begin
with exactly that string. (It is the database administrator's
responsibility to ensure that only <quote>safe</quote> libraries
are installed there.)
</para>
</refsect1>
<refsect1 id="sql-load-compat">
<title>Compatibility</title>
<para>
<command>LOAD</command> is a <productname>PostgreSQL</productname>
extension.
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<xref linkend="sql-createfunction"/>
</para>
</refsect1>
</refentry>