提交 e2b1dbd3 编写于 作者: N Neil Conway

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.
上级 900c9962
<!-- $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,
and managing the project is difficult. We have found that many and managing the project is difficult. We have found that many
enhancements to <productname>PostgreSQL</productname> can be more enhancements to <productname>PostgreSQL</productname> can be more
efficiently developed separately from the core project. efficiently developed separately from the core project.
</para>
<para>
To help our community with the development of their external projects,
we have created the <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink>.
<ulink url="http://www.pgfoundry.org/">PgFoundry</ulink> is built using the
GForge software project and is similar to SourceForge in its feature set. If
you have a PostgreSQL related Open Source project that you would like to
develop and need project management resources such as mailing lists, forums,
bug tracking, and CVS, please feel free to create a new project.
</para> </para>
<para> <para>
Secondly, many <productname>PostgreSQL</productname>-related projects are To help our community with the development of their external projects, we
still hosted at <ulink url="http://gborg.postgresql.org/"><productname>GBorg</></ulink>. have created <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink>, a
GBorg is the original external community developer site, and while it is website that provides hosting for <productname>PostgreSQL</>-related
currently closed to new projects in favor of PgFoundry, it still contains projects that are maintained outside the core <productname>PostgreSQL</>
many active and relevant projects. There are other popular <productname>PostgreSQL</productname> distribution. PgFoundry is built using the GForge software project and is
related projects that are hosted independently as well at other community similar to <ulink url="http://sourceforge.net">SourceForge.net</> in its
sites such as <ulink url="http://www.sf.net/">SourceForge</ulink>. You should feature set, providing mailing lists, forums, bug tracking, CVS, and web
search the web if you don't find the project you are looking for. 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>
Many <productname>PostgreSQL</productname>-related projects are still
hosted at <ulink url="http://gborg.postgresql.org/">GBorg</>. GBorg is
the original external community developer site, and while it is
currently closed to new projects in favor of PgFoundry, it still
contains many active and relevant projects. Other popular
<productname>PostgreSQL</productname>-related projects are hosted
independently, or on other project-hosting sites such such as <ulink
url="http://sourceforge.net/">SourceForge.net</ulink>. You should search
the web if you don't find the project you are looking for.
</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 <listitem>
tied to the server-side grammar so is very dependent on the database <para>
version. All the other interfaces, such as ODBC, Java, Perl, Python, and <link linkend="libpq">libpq</link> is included because it is the
others, are external projects and must be installed separately. primary C language interface, and because many other client interfaces
are built on top of it.
</para>
</listitem>
<listitem>
<para>
<link linkend="ecpg">ecpg</link> is included because it depends on the
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
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> </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>
<para> <para>
Some of the more popular interfaces are: <productname>PostgreSQL</productname> includes several procedural
languages with the base distribution: <link
<variablelist> linkend="plpgsql">PL/PgSQL</link>, <link linkend="pltcl">PL/Tcl</link>,
<varlistentry> <link linkend="plperl">PL/Perl</link>, and <link
<term>psqlODBC</term> linkend="plpython">PL/Python</link>.
<listitem> </para>
<para>
This is the most common interface for <application>Windows</> <para>
applications. <ulink url="http://odbc.postgresql.org/">Website.</ulink> In addition, there are a number of procedural languages that are developed
</para> and maintained outside the core <productname>PostgreSQL</productname>
</listitem> distribution. <xref linkend="pl-language-table"> lists some of these
</varlistentry> packages. Note that some of these projects may not be released under the same
license as <productname>PostgreSQL</>. For more information on each
<varlistentry> procedural language, including licensing information, refer to its website
<term>ODBCng</term> and documentation.
<listitem> </para>
<para>
Another ODBC driver for PostgreSQL. <table id="pl-language-table">
<ulink url="http://projects.commandprompt.com/public/odbcng/">Website.</ulink> <title>Externally Maintained Procedural Languages</title>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PostgreSQL JDBC Driver</term>
<listitem>
<para>
A <application>JDBC</> interface.
<ulink url="http://jdbc.postgresql.org/">Website.</ulink>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Npgsql</term>
<listitem>
<para>
<application>.Net</> data provider for <application>C#</> applications.
<ulink url="http://pgfoundry.org/projects/npgsql/">Website.</ulink>
</para>
</listitem>
</varlistentry>
<varlistentry>
<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>
<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 @@ ...@@ -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>
...@@ -163,7 +270,6 @@ ...@@ -163,7 +270,6 @@
<productname>PostgreSQL</>. The most popular is <productname>PostgreSQL</>. The most popular is
<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>
<!-- $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 @@ ...@@ -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">
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册