summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/contrib.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/contrib.sgml')
-rw-r--r--doc/src/sgml/contrib.sgml238
1 files changed, 238 insertions, 0 deletions
diff --git a/doc/src/sgml/contrib.sgml b/doc/src/sgml/contrib.sgml
new file mode 100644
index 0000000..922421a
--- /dev/null
+++ b/doc/src/sgml/contrib.sgml
@@ -0,0 +1,238 @@
+<!-- doc/src/sgml/contrib.sgml -->
+
+<appendix id="contrib">
+ <title>Additional Supplied Modules and Extensions</title>
+
+ <para>
+ This appendix and the next one contain information on the
+ optional components
+ found in the <literal>contrib</literal> directory of the
+ <productname>PostgreSQL</productname> distribution.
+ These include porting tools, analysis utilities,
+ and plug-in features that are not part of the core PostgreSQL system.
+ They are separate mainly
+ because they address a limited audience or are too experimental
+ to be part of the main source tree. This does not preclude their
+ usefulness.
+ </para>
+
+ <para>
+ This appendix covers extensions and other server plug-in module
+ libraries found in
+ <literal>contrib</literal>. <xref linkend="contrib-prog"/> covers utility
+ programs.
+ </para>
+
+ <para>
+ When building from the source distribution, these optional
+ components are not built
+ automatically, unless you build the "world" target
+ (see <xref linkend="build"/>).
+ You can build and install all of them by running:
+<screen>
+<userinput>make</userinput>
+<userinput>make install</userinput>
+</screen>
+ in the <literal>contrib</literal> directory of a configured source tree;
+ or to build and install
+ just one selected module, do the same in that module's subdirectory.
+ Many of the modules have regression tests, which can be executed by
+ running:
+<screen>
+<userinput>make check</userinput>
+</screen>
+ before installation or
+<screen>
+<userinput>make installcheck</userinput>
+</screen>
+ once you have a <productname>PostgreSQL</productname> server running.
+ </para>
+
+ <para>
+ If you are using a pre-packaged version of <productname>PostgreSQL</productname>,
+ these components are typically made available as a separate subpackage,
+ such as <literal>postgresql-contrib</literal>.
+ </para>
+
+ <para>
+ Many components supply new user-defined functions, operators, or types,
+ packaged as <firstterm>extensions</firstterm>.
+ To make use of one of these extensions, after you have installed the code
+ you need to register the new SQL objects in the database system.
+ This is done by executing
+ a <xref linkend="sql-createextension"/> command. In a fresh database,
+ you can simply do
+
+<programlisting>
+CREATE EXTENSION <replaceable>extension_name</replaceable>;
+</programlisting>
+
+ This command registers the new SQL objects in the current database only,
+ so you need to run it in every database in which you want
+ the extension's facilities to be available. Alternatively, run it in
+ database <literal>template1</literal> so that the extension will be copied into
+ subsequently-created databases by default.
+ </para>
+
+ <para>
+ For all extensions, the <command>CREATE EXTENSION</command> command must be
+ run by a database superuser, unless the extension is
+ considered <quote>trusted</quote>. Trusted extensions can be run by any
+ user who has <literal>CREATE</literal> privilege on the current
+ database. Extensions that are trusted are identified as such in the
+ sections that follow. Generally, trusted extensions are ones that cannot
+ provide access to outside-the-database functionality.
+ </para>
+
+ <para id="contrib-trusted-extensions">
+ The following extensions are trusted in a default installation:
+
+ <simplelist type="vert" columns="4">
+ <member><xref linkend="btree-gin"/></member>
+ <member><xref linkend="btree-gist"/></member>
+ <member><xref linkend="citext"/></member>
+ <member><xref linkend="cube"/></member>
+ <member><xref linkend="dict-int"/></member>
+ <member><xref linkend="fuzzystrmatch"/></member>
+ <member><xref linkend="hstore"/></member>
+ <member><xref linkend="intarray"/></member>
+ <member><xref linkend="isn"/></member>
+ <member><xref linkend="lo"/></member>
+ <member><xref linkend="ltree"/></member>
+ <member><xref linkend="pgcrypto"/></member>
+ <member><xref linkend="pgtrgm"/></member>
+ <member><xref linkend="seg"/></member>
+ <member><xref linkend="tablefunc"/></member>
+ <member><xref linkend="tcn"/></member>
+ <member><xref linkend="tsm-system-rows"/></member>
+ <member><xref linkend="tsm-system-time"/></member>
+ <member><xref linkend="unaccent"/></member>
+ <member><xref linkend="uuid-ossp"/></member>
+ </simplelist>
+ </para>
+
+ <para>
+ Many extensions allow you to install their objects in a schema of your
+ choice. To do that, add <literal>SCHEMA
+ <replaceable>schema_name</replaceable></literal> to the <command>CREATE EXTENSION</command>
+ command. By default, the objects will be placed in your current creation
+ target schema, which in turn defaults to <literal>public</literal>.
+ </para>
+
+ <para>
+ Note, however, that some of these components are not <quote>extensions</quote>
+ in this sense, but are loaded into the server in some other way, for instance
+ by way of
+ <xref linkend="guc-shared-preload-libraries"/>. See the documentation of each
+ component for details.
+ </para>
+
+ &adminpack;
+ &amcheck;
+ &auth-delay;
+ &auto-explain;
+ &basebackup-to-shell;
+ &basic-archive;
+ &bloom;
+ &btree-gin;
+ &btree-gist;
+ &citext;
+ &cube;
+ &dblink;
+ &dict-int;
+ &dict-xsyn;
+ &earthdistance;
+ &file-fdw;
+ &fuzzystrmatch;
+ &hstore;
+ &intagg;
+ &intarray;
+ &isn;
+ &lo;
+ &ltree;
+ &oldsnapshot;
+ &pageinspect;
+ &passwordcheck;
+ &pgbuffercache;
+ &pgcrypto;
+ &pgfreespacemap;
+ &pgprewarm;
+ &pgrowlocks;
+ &pgstatstatements;
+ &pgstattuple;
+ &pgsurgery;
+ &pgtrgm;
+ &pgvisibility;
+ &pgwalinspect;
+ &postgres-fdw;
+ &seg;
+ &sepgsql;
+ &contrib-spi;
+ &sslinfo;
+ &tablefunc;
+ &tcn;
+ &test-decoding;
+ &tsm-system-rows;
+ &tsm-system-time;
+ &unaccent;
+ &uuid-ossp;
+ &xml2;
+
+</appendix>
+
+<!--
+These are two separate appendixes because it is difficult to mix regular
+sections (for extensions) and refentries (for programs) in one chapter or
+appendix. And we do want the programs as refentries so that we can produce man
+pages.
+-->
+
+<appendix id="contrib-prog">
+ <title>Additional Supplied Programs</title>
+
+ <para>
+ This appendix and the previous one contain information regarding the modules that
+ can be found in the <literal>contrib</literal> directory of the
+ <productname>PostgreSQL</productname> distribution. See <xref linkend="contrib"/> for
+ more information about the <literal>contrib</literal> section in general and
+ server extensions and plug-ins found in <literal>contrib</literal>
+ specifically.
+ </para>
+
+ <para>
+ This appendix covers utility programs found in <literal>contrib</literal>.
+ Once installed, either from source or a packaging system, they are found in
+ the <filename>bin</filename> directory of the
+ <productname>PostgreSQL</productname> installation and can be used like any
+ other program.
+ </para>
+
+ <sect1 id="contrib-prog-client">
+ <title>Client Applications</title>
+
+ <para>
+ This section covers <productname>PostgreSQL</productname> client
+ applications in <literal>contrib</literal>. They can be run from anywhere,
+ independent of where the database server resides. See
+ also <xref linkend="reference-client"/> for information about client
+ applications that are part of the core <productname>PostgreSQL</productname>
+ distribution.
+ </para>
+
+ &oid2name;
+ &vacuumlo;
+ </sect1>
+
+ <sect1 id="contrib-prog-server">
+ <title>Server Applications</title>
+
+ <para>
+ Some applications run on the <productname>PostgreSQL</productname> server
+ itself. Currently, no such applications are included in the
+ <literal>contrib</literal> directory. See also <xref
+ linkend="reference-server"/> for information about server applications that
+ are part of the core <productname>PostgreSQL</productname> distribution.
+ </para>
+
+ </sect1>
+</appendix>