2010-09-20 22:08:53 +02:00
|
|
|
<!-- doc/src/sgml/external-projects.sgml -->
|
2004-12-03 06:50:18 +01:00
|
|
|
|
2004-12-30 00:36:47 +01:00
|
|
|
<appendix id="external-projects">
|
2006-11-20 18:42:16 +01:00
|
|
|
<title>External Projects</title>
|
2004-12-03 06:50:18 +01:00
|
|
|
|
|
|
|
<para>
|
2004-12-03 07:30:40 +01:00
|
|
|
<productname>PostgreSQL</productname> is a complex software project,
|
2006-08-01 02:09:06 +02:00
|
|
|
and managing the project is difficult. We have found that many
|
2004-12-03 07:30:40 +01:00
|
|
|
enhancements to <productname>PostgreSQL</productname> can be more
|
2006-11-20 18:42:16 +01:00
|
|
|
efficiently developed separately from the core project.
|
2004-12-03 06:50:18 +01:00
|
|
|
</para>
|
|
|
|
|
2004-12-30 00:36:47 +01:00
|
|
|
<sect1 id="external-interfaces">
|
2006-11-20 18:42:16 +01:00
|
|
|
<title>Client Interfaces</title>
|
2004-12-03 06:50:18 +01:00
|
|
|
|
|
|
|
<indexterm>
|
|
|
|
<primary>interfaces</primary>
|
2006-11-20 18:42:16 +01:00
|
|
|
<secondary>externally maintained</secondary>
|
2004-12-03 06:50:18 +01:00
|
|
|
</indexterm>
|
|
|
|
|
|
|
|
<para>
|
2006-11-20 18:42:16 +01:00
|
|
|
There are only two client interfaces included in the base
|
|
|
|
<productname>PostgreSQL</productname> distribution:
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
<link linkend="libpq">libpq</link> is included because it is the
|
|
|
|
primary C language interface, and because many other client interfaces
|
|
|
|
are built on top of it.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2010-08-17 06:37:21 +02:00
|
|
|
<link linkend="ecpg">ECPG</link> is included because it depends on the
|
2006-11-20 18:42:16 +01:00
|
|
|
server-side SQL grammar, and is therefore sensitive to changes in
|
|
|
|
<productname>PostgreSQL</productname> itself.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
All other language interfaces are external projects and are distributed
|
|
|
|
separately. <xref linkend="language-interface-table"> includes a list of
|
Update documentation on may/can/might:
Standard English uses "may", "can", and "might" in different ways:
may - permission, "You may borrow my rake."
can - ability, "I can lift that log."
might - possibility, "It might rain today."
Unfortunately, in conversational English, their use is often mixed, as
in, "You may use this variable to do X", when in fact, "can" is a better
choice. Similarly, "It may crash" is better stated, "It might crash".
Also update two error messages mentioned in the documenation to match.
2007-01-31 21:56:20 +01:00
|
|
|
some of these projects. Note that some of these packages might not be
|
2006-11-20 18:42:16 +01:00
|
|
|
released under the same license as <productname>PostgreSQL</>. For more
|
|
|
|
information on each language interface, including licensing terms, refer to
|
|
|
|
its website and documentation.
|
2004-12-03 06:50:18 +01:00
|
|
|
</para>
|
|
|
|
|
2006-11-20 18:42:16 +01:00
|
|
|
<table id="language-interface-table">
|
2011-01-29 19:00:18 +01:00
|
|
|
<title>Externally Maintained Client Interfaces</title>
|
2006-11-20 18:42:16 +01:00
|
|
|
|
|
|
|
<tgroup cols="4">
|
|
|
|
<thead>
|
|
|
|
<row>
|
|
|
|
<entry>Name</entry>
|
|
|
|
<entry>Language</entry>
|
|
|
|
<entry>Comments</entry>
|
|
|
|
<entry>Website</entry>
|
|
|
|
</row>
|
|
|
|
</thead>
|
|
|
|
|
|
|
|
<tbody>
|
|
|
|
<row>
|
|
|
|
<entry>DBD::Pg</entry>
|
|
|
|
<entry>Perl</entry>
|
|
|
|
<entry>Perl DBI driver</entry>
|
2016-01-01 04:26:57 +01:00
|
|
|
<entry><ulink url="http://search.cpan.org/dist/DBD-Pg/"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>JDBC</entry>
|
|
|
|
<entry>JDBC</entry>
|
|
|
|
<entry>Type 4 JDBC driver</entry>
|
2017-05-21 03:50:47 +02:00
|
|
|
<entry><ulink url="https://jdbc.postgresql.org/"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>libpqxx</entry>
|
|
|
|
<entry>C++</entry>
|
|
|
|
<entry>New-style C++ interface</entry>
|
2016-01-01 04:26:57 +01:00
|
|
|
<entry><ulink url="http://pqxx.org/"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>Npgsql</entry>
|
|
|
|
<entry>.NET</entry>
|
|
|
|
<entry>.NET data provider</entry>
|
2016-01-01 04:26:57 +01:00
|
|
|
<entry><ulink url="http://www.npgsql.org/"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>pgtclng</entry>
|
|
|
|
<entry>Tcl</entry>
|
|
|
|
<entry></entry>
|
2016-01-01 04:26:57 +01:00
|
|
|
<entry><ulink url="http://sourceforge.net/projects/pgtclng/"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>psqlODBC</entry>
|
|
|
|
<entry>ODBC</entry>
|
2012-04-09 08:45:06 +02:00
|
|
|
<entry>ODBC driver</entry>
|
2016-01-01 04:26:57 +01:00
|
|
|
<entry><ulink url="https://odbc.postgresql.org/"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>psycopg</entry>
|
|
|
|
<entry>Python</entry>
|
|
|
|
<entry>DB API 2.0-compliant</entry>
|
2013-10-03 03:33:26 +02:00
|
|
|
<entry><ulink url="http://initd.org/psycopg/"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
</tbody>
|
|
|
|
</tgroup>
|
|
|
|
</table>
|
|
|
|
</sect1>
|
|
|
|
|
2011-02-14 18:32:42 +01:00
|
|
|
<sect1 id="external-admin-tools">
|
|
|
|
<title>Administration Tools</title>
|
|
|
|
|
|
|
|
<indexterm>
|
|
|
|
<primary>administration tools</primary>
|
|
|
|
<secondary>externally maintained</secondary>
|
|
|
|
</indexterm>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
There are several administration tools available for
|
|
|
|
<productname>PostgreSQL</>. The most popular is
|
|
|
|
<application><ulink url="http://www.pgadmin.org/">pgAdmin III</ulink></>,
|
|
|
|
and there are several commercially available ones as well.
|
|
|
|
</para>
|
|
|
|
</sect1>
|
|
|
|
|
2006-11-20 18:42:16 +01:00
|
|
|
<sect1 id="external-pl">
|
|
|
|
<title>Procedural Languages</title>
|
|
|
|
|
|
|
|
<indexterm>
|
|
|
|
<primary>procedural language</primary>
|
|
|
|
<secondary>externally maintained</secondary>
|
|
|
|
</indexterm>
|
|
|
|
|
2004-12-03 06:50:18 +01:00
|
|
|
<para>
|
2006-11-20 18:42:16 +01:00
|
|
|
<productname>PostgreSQL</productname> includes several procedural
|
|
|
|
languages with the base distribution: <link
|
2010-09-23 03:57:37 +02:00
|
|
|
linkend="plpgsql">PL/pgSQL</link>, <link linkend="pltcl">PL/Tcl</link>,
|
2006-11-20 18:42:16 +01:00
|
|
|
<link linkend="plperl">PL/Perl</link>, and <link
|
|
|
|
linkend="plpython">PL/Python</link>.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
In addition, there are a number of procedural languages that are developed
|
|
|
|
and maintained outside the core <productname>PostgreSQL</productname>
|
|
|
|
distribution. <xref linkend="pl-language-table"> lists some of these
|
Update documentation on may/can/might:
Standard English uses "may", "can", and "might" in different ways:
may - permission, "You may borrow my rake."
can - ability, "I can lift that log."
might - possibility, "It might rain today."
Unfortunately, in conversational English, their use is often mixed, as
in, "You may use this variable to do X", when in fact, "can" is a better
choice. Similarly, "It may crash" is better stated, "It might crash".
Also update two error messages mentioned in the documenation to match.
2007-01-31 21:56:20 +01:00
|
|
|
packages. Note that some of these projects might not be released under the same
|
2006-11-20 18:42:16 +01:00
|
|
|
license as <productname>PostgreSQL</>. For more information on each
|
|
|
|
procedural language, including licensing information, refer to its website
|
|
|
|
and documentation.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<table id="pl-language-table">
|
|
|
|
<title>Externally Maintained Procedural Languages</title>
|
2004-12-03 06:50:18 +01:00
|
|
|
|
2006-11-20 18:42:16 +01:00
|
|
|
<tgroup cols="3">
|
|
|
|
<thead>
|
|
|
|
<row>
|
|
|
|
<entry>Name</entry>
|
|
|
|
<entry>Language</entry>
|
|
|
|
<entry>Website</entry>
|
|
|
|
</row>
|
|
|
|
</thead>
|
|
|
|
|
|
|
|
<tbody>
|
|
|
|
<row>
|
|
|
|
<entry>PL/Java</entry>
|
|
|
|
<entry>Java</entry>
|
2016-01-01 04:26:57 +01:00
|
|
|
<entry><ulink url="https://github.com/tada/pljava"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>PL/PHP</entry>
|
|
|
|
<entry>PHP</entry>
|
2016-07-11 18:10:10 +02:00
|
|
|
<entry><ulink url="https://public.commandprompt.com/projects/plphp"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>PL/Py</entry>
|
|
|
|
<entry>Python</entry>
|
2016-01-01 04:26:57 +01:00
|
|
|
<entry><ulink url="http://python.projects.postgresql.org/backend/"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>PL/R</entry>
|
|
|
|
<entry>R</entry>
|
2017-02-21 18:34:25 +01:00
|
|
|
<entry><ulink url="http://www.joeconway.com/plr.html"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>PL/Ruby</entry>
|
|
|
|
<entry>Ruby</entry>
|
2016-01-01 04:26:57 +01:00
|
|
|
<entry><ulink url="http://raa.ruby-lang.org/project/pl-ruby/"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>PL/Scheme</entry>
|
|
|
|
<entry>Scheme</entry>
|
2016-01-01 04:26:57 +01:00
|
|
|
<entry><ulink url="http://plscheme.projects.postgresql.org/"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>PL/sh</entry>
|
|
|
|
<entry>Unix shell</entry>
|
2016-01-01 04:26:57 +01:00
|
|
|
<entry><ulink url="https://github.com/petere/plsh"></ulink></entry>
|
2006-11-20 18:42:16 +01:00
|
|
|
</row>
|
|
|
|
</tbody>
|
|
|
|
</tgroup>
|
|
|
|
</table>
|
2004-12-03 06:50:18 +01:00
|
|
|
</sect1>
|
2010-11-23 21:27:50 +01:00
|
|
|
|
2004-12-30 00:36:47 +01:00
|
|
|
<sect1 id="external-extensions">
|
2004-12-03 06:50:18 +01:00
|
|
|
<title>Extensions</title>
|
|
|
|
|
|
|
|
<indexterm>
|
2011-02-14 18:32:42 +01:00
|
|
|
<primary>extension</primary>
|
|
|
|
<secondary>externally maintained</secondary>
|
2004-12-03 06:50:18 +01:00
|
|
|
</indexterm>
|
|
|
|
|
|
|
|
<para>
|
2006-11-20 18:42:16 +01:00
|
|
|
<productname>PostgreSQL</> is designed to be easily extensible. For
|
2011-02-14 18:32:42 +01:00
|
|
|
this reason, extensions loaded into the database can function
|
|
|
|
just like features that are built in. The
|
2004-12-13 19:05:10 +01:00
|
|
|
<filename>contrib/</> directory shipped with the source code
|
2011-02-14 18:32:42 +01:00
|
|
|
contains several extensions, which are described in
|
|
|
|
<xref linkend="contrib">. Other extensions are developed
|
2006-11-20 18:42:16 +01:00
|
|
|
independently, like <application><ulink
|
2015-12-13 02:02:09 +01:00
|
|
|
url="http://postgis.net/">PostGIS</ulink></>. Even
|
2011-02-14 18:32:42 +01:00
|
|
|
<productname>PostgreSQL</> replication solutions can be developed
|
2006-11-20 18:42:16 +01:00
|
|
|
externally. For example, <application> <ulink
|
|
|
|
url="http://www.slony.info">Slony-I</ulink></> is a popular
|
2010-06-07 04:01:09 +02:00
|
|
|
master/standby replication solution that is developed independently
|
2006-11-20 18:42:16 +01:00
|
|
|
from the core project.
|
2004-12-03 06:50:18 +01:00
|
|
|
</para>
|
|
|
|
</sect1>
|
2004-12-30 00:36:47 +01:00
|
|
|
</appendix>
|