Overhaul the "External Projects" chapter in the manual. Replace
the variabelist with a more concise table, add a URL for each project, remove some orphaned projects, add PL/Py, and various other changes. Initial patch from Robert Treat, subsequent work by Neil Conway.
This commit is contained in:
parent
900c9962f7
commit
e2b1dbd394
@ -1,7 +1,7 @@
|
|||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/external-projects.sgml,v 1.13 2006/09/16 00:30:13 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/external-projects.sgml,v 1.14 2006/11/20 17:42:16 neilc Exp $ -->
|
||||||
|
|
||||||
<appendix id="external-projects">
|
<appendix id="external-projects">
|
||||||
<title>PgFoundry and External Projects</title>
|
<title>External Projects</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<productname>PostgreSQL</productname> is a complex software project,
|
<productname>PostgreSQL</productname> is a complex software project,
|
||||||
@ -11,129 +11,233 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
To help our community with the development of their external projects,
|
To help our community with the development of their external projects, we
|
||||||
we have created the <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink>.
|
have created <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink>, a
|
||||||
<ulink url="http://www.pgfoundry.org/">PgFoundry</ulink> is built using the
|
website that provides hosting for <productname>PostgreSQL</>-related
|
||||||
GForge software project and is similar to SourceForge in its feature set. If
|
projects that are maintained outside the core <productname>PostgreSQL</>
|
||||||
you have a PostgreSQL related Open Source project that you would like to
|
distribution. PgFoundry is built using the GForge software project and is
|
||||||
develop and need project management resources such as mailing lists, forums,
|
similar to <ulink url="http://sourceforge.net">SourceForge.net</> in its
|
||||||
bug tracking, and CVS, please feel free to create a new project.
|
feature set, providing mailing lists, forums, bug tracking, CVS, and web
|
||||||
|
hosting. If you have a <productname>PostgreSQL</>-related open source
|
||||||
|
project that you would like to have hosted at PgFoundy, please feel free
|
||||||
|
to create a new project.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
<para>
|
<para>
|
||||||
Secondly, many <productname>PostgreSQL</productname>-related projects are
|
Many <productname>PostgreSQL</productname>-related projects are still
|
||||||
still hosted at <ulink url="http://gborg.postgresql.org/"><productname>GBorg</></ulink>.
|
hosted at <ulink url="http://gborg.postgresql.org/">GBorg</>. GBorg is
|
||||||
GBorg is the original external community developer site, and while it is
|
the original external community developer site, and while it is
|
||||||
currently closed to new projects in favor of PgFoundry, it still contains
|
currently closed to new projects in favor of PgFoundry, it still
|
||||||
many active and relevant projects. There are other popular <productname>PostgreSQL</productname>
|
contains many active and relevant projects. Other popular
|
||||||
related projects that are hosted independently as well at other community
|
<productname>PostgreSQL</productname>-related projects are hosted
|
||||||
sites such as <ulink url="http://www.sf.net/">SourceForge</ulink>. You should
|
independently, or on other project-hosting sites such such as <ulink
|
||||||
search the web if you don't find the project you are looking for.
|
url="http://sourceforge.net/">SourceForge.net</ulink>. You should search
|
||||||
|
the web if you don't find the project you are looking for.
|
||||||
</para>
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
<sect1 id="external-interfaces">
|
<sect1 id="external-interfaces">
|
||||||
<title>Externally Developed Interfaces</title>
|
<title>Client Interfaces</title>
|
||||||
|
|
||||||
<indexterm>
|
<indexterm>
|
||||||
<primary>interfaces</primary>
|
<primary>interfaces</primary>
|
||||||
|
<secondary>externally maintained</secondary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<productname>PostgreSQL</productname> includes very few interfaces
|
There are only two client interfaces included in the base
|
||||||
with the base distribution. <application>libpq</> is packaged because
|
<productname>PostgreSQL</productname> distribution:
|
||||||
it is the primary <application>C</> interface and many other interfaces
|
<itemizedlist>
|
||||||
are build on top of it. <application>ecpg</> is also packaged because it is
|
|
||||||
tied to the server-side grammar so is very dependent on the database
|
|
||||||
version. All the other interfaces, such as ODBC, Java, Perl, Python, and
|
|
||||||
others, are external projects and must be installed separately.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Some of the more popular interfaces are:
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term>psqlODBC</term>
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
This is the most common interface for <application>Windows</>
|
<link linkend="libpq">libpq</link> is included because it is the
|
||||||
applications. <ulink url="http://odbc.postgresql.org/">Website.</ulink>
|
primary C language interface, and because many other client interfaces
|
||||||
|
are built on top of it.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>ODBCng</term>
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Another ODBC driver for PostgreSQL.
|
<link linkend="ecpg">ecpg</link> is included because it depends on the
|
||||||
<ulink url="http://projects.commandprompt.com/public/odbcng/">Website.</ulink>
|
server-side SQL grammar, and is therefore sensitive to changes in
|
||||||
|
<productname>PostgreSQL</productname> itself.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</itemizedlist>
|
||||||
|
|
||||||
|
All other language interfaces are external projects and are distributed
|
||||||
|
separately. <xref linkend="language-interface-table"> includes a list of
|
||||||
|
some of these projects. Note that some of these packages may not be
|
||||||
|
released under the same license as <productname>PostgreSQL</>. For more
|
||||||
|
information on each language interface, including licensing terms, refer to
|
||||||
|
its website and documentation.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<table id="language-interface-table">
|
||||||
|
<title>Externally Maintained Client Interfaces</>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
<entry><ulink url="http://search.cpan.org/dist/DBD-Pg/">http://search.cpan.org/dist/DBD-Pg/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>JDBC</entry>
|
||||||
|
<entry>JDBC</entry>
|
||||||
|
<entry>Type 4 JDBC driver</entry>
|
||||||
|
<entry><ulink url="http://jdbc.postgresql.org/">http://jdbc.postgresql.org/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>libpqxx</entry>
|
||||||
|
<entry>C++</entry>
|
||||||
|
<entry>New-style C++ interface</entry>
|
||||||
|
<entry><ulink url="http://thaiopensource.org/development/libpqxx/">http://thaiopensource.org/development/libpqxx/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>libpq++</entry>
|
||||||
|
<entry>C++</entry>
|
||||||
|
<entry>Old-style C++ interface</entry>
|
||||||
|
<entry><ulink url="http://gborg.postgresql.org/project/libpqpp/">http://gborg.postgresql.org/project/libpqpp/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>Npgsql</entry>
|
||||||
|
<entry>.NET</entry>
|
||||||
|
<entry>.NET data provider</entry>
|
||||||
|
<entry><ulink url="http://pgfoundry.org/projects/npgsql/">http://pgfoundry.org/projects/npgsql/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>ODBCng</entry>
|
||||||
|
<entry>ODBC</entry>
|
||||||
|
<entry>An alternative ODBC driver</entry>
|
||||||
|
<entry><ulink url="http://projects.commandprompt.com/public/odbcng/">http://projects.commandprompt.com/public/odbcng/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>pgtclng</entry>
|
||||||
|
<entry>Tcl</entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry><ulink url="http://pgfoundry.org/projects/pgtclng/">http://pgfoundry.org/projects/pgtclng/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>psqlODBC</entry>
|
||||||
|
<entry>ODBC</entry>
|
||||||
|
<entry>The most commonly-used ODBC driver</entry>
|
||||||
|
<entry><ulink url="http://odbc.postgresql.org/">http://odbc.postgresql.org/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>psycopg</entry>
|
||||||
|
<entry>Python</entry>
|
||||||
|
<entry>DB API 2.0-compliant</entry>
|
||||||
|
<entry><ulink url="http://www.initd.org/">http://www.initd.org/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</table>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="external-pl">
|
||||||
|
<title>Procedural Languages</title>
|
||||||
|
|
||||||
|
<indexterm>
|
||||||
|
<primary>procedural language</primary>
|
||||||
|
<secondary>externally maintained</secondary>
|
||||||
|
</indexterm>
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>PostgreSQL JDBC Driver</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
<para>
|
||||||
A <application>JDBC</> interface.
|
<productname>PostgreSQL</productname> includes several procedural
|
||||||
<ulink url="http://jdbc.postgresql.org/">Website.</ulink>
|
languages with the base distribution: <link
|
||||||
|
linkend="plpgsql">PL/PgSQL</link>, <link linkend="pltcl">PL/Tcl</link>,
|
||||||
|
<link linkend="plperl">PL/Perl</link>, and <link
|
||||||
|
linkend="plpython">PL/Python</link>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>Npgsql</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
<para>
|
||||||
<application>.Net</> data provider for <application>C#</> applications.
|
In addition, there are a number of procedural languages that are developed
|
||||||
<ulink url="http://pgfoundry.org/projects/npgsql/">Website.</ulink>
|
and maintained outside the core <productname>PostgreSQL</productname>
|
||||||
</para>
|
distribution. <xref linkend="pl-language-table"> lists some of these
|
||||||
</listitem>
|
packages. Note that some of these projects may not be released under the same
|
||||||
</varlistentry>
|
license as <productname>PostgreSQL</>. For more information on each
|
||||||
|
procedural language, including licensing information, refer to its website
|
||||||
<varlistentry>
|
and documentation.
|
||||||
<term>libpqxx</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
A <application>C++</> interface.
|
|
||||||
<ulink url="http://thaiopensource.org/development/libpqxx/">Website.</ulink>
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>DBD::Pg</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
A <application>Perl</> DBI driver for PostgreSQL.
|
|
||||||
<ulink url="http://search.cpan.org/dist/DBD-Pg/">Website.</ulink>
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>pgtclng</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
A <application>Tcl</> interface.
|
|
||||||
<ulink url="http://gborg.postgresql.org/project/pgtclng/projdisplay.php">Website.</ulink>
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>pyscopg</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
A <application>Python</> interface library that is DB API 2.0 compliant.
|
|
||||||
<ulink url="http://www.initd.org/">Website.</ulink>
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<table id="pl-language-table">
|
||||||
|
<title>Externally Maintained Procedural Languages</title>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
<entry><ulink url="http://pljava.projects.postgresql.org/">http://pljava.projects.postgresql.org/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>PL/PHP</entry>
|
||||||
|
<entry>PHP</entry>
|
||||||
|
<entry><ulink url="http://www.commandprompt.com/community/plphp/">http://www.commandprompt.com/community/plphp/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>PL/Py</entry>
|
||||||
|
<entry>Python</entry>
|
||||||
|
<entry><ulink url="http://python.projects.postgresql.org/">http://python.projects.postgresql.org/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>PL/R</entry>
|
||||||
|
<entry>R</entry>
|
||||||
|
<entry><ulink url="http://www.joeconway.com/plr/">http://www.joeconway.com/plr/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>PL/Ruby</entry>
|
||||||
|
<entry>Ruby</entry>
|
||||||
|
<entry><ulink url="http://raa.ruby-lang.org/project/pl-ruby/">http://raa.ruby-lang.org/project/pl-ruby/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>PL/Scheme</entry>
|
||||||
|
<entry>Scheme</entry>
|
||||||
|
<entry><ulink url="http://plscheme.projects.postgresql.org/">http://plscheme.projects.postgresql.org/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>PL/sh</entry>
|
||||||
|
<entry>Unix shell</entry>
|
||||||
|
<entry><ulink url="http://plsh.projects.postgresql.org/">http://plsh.projects.postgresql.org/</ulink></entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</table>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="external-extensions">
|
<sect1 id="external-extensions">
|
||||||
@ -144,18 +248,21 @@
|
|||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<productname>PostgreSQL</> was designed from the start to be
|
<productname>PostgreSQL</> is designed to be easily extensible. For
|
||||||
extensible. For this reason, extensions loaded into the database can
|
this reason, extensions loaded into the database can function just
|
||||||
function just like features that are packaged with the database. The
|
like features that are packaged with the database. The
|
||||||
<filename>contrib/</> directory shipped with the source code
|
<filename>contrib/</> directory shipped with the source code
|
||||||
contains a large number of extensions. The <filename>README</> file
|
contains a large number of extensions. The <filename>README</> file
|
||||||
in that directory contains a summary. They include conversion tools,
|
in that directory contains a summary. They include conversion
|
||||||
full-text indexing, <acronym>XML</> tools, and additional data types
|
tools, full-text indexing, <acronym>XML</> tools, and additional
|
||||||
and indexing methods. Other extensions are developed independently,
|
data types and indexing methods. Other extensions are developed
|
||||||
like <application>PostGIS</>. Even <application>PostgreSQL</>
|
independently, like <application><ulink
|
||||||
replication solutions are developed externally. For example,
|
url="http://www.postgis.org/">PostGIS</ulink></>. Even
|
||||||
<application>Slony-I</> is a popular master/slave replication solution
|
<productname>PostgreSQL</> replication solutions are developed
|
||||||
that is developed independently from the core project.
|
externally. For example, <application> <ulink
|
||||||
|
url="http://www.slony.info">Slony-I</ulink></> is a popular
|
||||||
|
master/slave replication solution that is developed independently
|
||||||
|
from the core project.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -164,6 +271,5 @@
|
|||||||
<application><ulink url="http://www.pgadmin.org/">pgAdmin III</ulink></>,
|
<application><ulink url="http://www.pgadmin.org/">pgAdmin III</ulink></>,
|
||||||
and there are several commercially available ones as well.
|
and there are several commercially available ones as well.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
</appendix>
|
</appendix>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/xplang.sgml,v 1.31 2006/09/16 00:30:16 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/xplang.sgml,v 1.32 2006/11/20 17:42:16 neilc Exp $ -->
|
||||||
|
|
||||||
<chapter id="xplang">
|
<chapter id="xplang">
|
||||||
<title id="xplang-title">Procedural Languages</title>
|
<title id="xplang-title">Procedural Languages</title>
|
||||||
@ -31,15 +31,11 @@
|
|||||||
<application>PL/Tcl</application> (<xref linkend="pltcl">),
|
<application>PL/Tcl</application> (<xref linkend="pltcl">),
|
||||||
<application>PL/Perl</application> (<xref linkend="plperl">), and
|
<application>PL/Perl</application> (<xref linkend="plperl">), and
|
||||||
<application>PL/Python</application> (<xref linkend="plpython">).
|
<application>PL/Python</application> (<xref linkend="plpython">).
|
||||||
Other languages can be defined by users.
|
|
||||||
The basics of developing a new procedural language are covered in <xref
|
|
||||||
linkend="plhandler">.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
There are additional procedural languages available that are not
|
There are additional procedural languages available that are not
|
||||||
included in the core distribution. <xref linkend="external-projects">
|
included in the core distribution. <xref linkend="external-projects">
|
||||||
has information about finding them.
|
has information about finding them. In addition other languages can
|
||||||
|
be defined by users; the basics of developing a new procedural
|
||||||
|
language are covered in <xref linkend="plhandler">.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<sect1 id="xplang-install">
|
<sect1 id="xplang-install">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user