blob: 2c214dd726dd683c498aacc2f86597a133f49401 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
<!--
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> — 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>
|