summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Conway2006-11-20 17:42:16 +0000
committerNeil Conway2006-11-20 17:42:16 +0000
commit11fb2edae5b4d3bd9d02f2cc7e2cd06bd0cc9b6d (patch)
treefa7daee7f50e1b3efc61af9eabcb155d6775b6c0
parentae6a5502f2c4355ed87824980399607c381eadd6 (diff)
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.
-rw-r--r--doc/src/sgml/external-projects.sgml354
-rw-r--r--doc/src/sgml/xplang.sgml10
2 files changed, 233 insertions, 131 deletions
diff --git a/doc/src/sgml/external-projects.sgml b/doc/src/sgml/external-projects.sgml
index 2fdbbc3594..ae06f11cf2 100644
--- a/doc/src/sgml/external-projects.sgml
+++ b/doc/src/sgml/external-projects.sgml
@@ -1,139 +1,243 @@
<!-- $PostgreSQL$ -->
<appendix id="external-projects">
- <title>PgFoundry and External Projects</title>
+ <title>External Projects</title>
<para>
<productname>PostgreSQL</productname> is a complex software project,
and managing the project is difficult. We have found that many
enhancements to <productname>PostgreSQL</productname> can be more
- 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.
+ efficiently developed separately from the core project.
</para>
<para>
- Secondly, many <productname>PostgreSQL</productname>-related projects are
- still hosted at <ulink url="http://gborg.postgresql.org/"><productname>GBorg</></ulink>.
- 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. There are other popular <productname>PostgreSQL</productname>
- related projects that are hosted independently as well at other community
- sites such as <ulink url="http://www.sf.net/">SourceForge</ulink>. You should
- search the web if you don't find the project you are looking for.
+ To help our community with the development of their external projects, we
+ have created <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink>, a
+ website that provides hosting for <productname>PostgreSQL</>-related
+ projects that are maintained outside the core <productname>PostgreSQL</>
+ distribution. PgFoundry is built using the GForge software project and is
+ similar to <ulink url="http://sourceforge.net">SourceForge.net</> in its
+ 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>
+ <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">
- <title>Externally Developed Interfaces</title>
+ <title>Client Interfaces</title>
<indexterm>
<primary>interfaces</primary>
+ <secondary>externally maintained</secondary>
</indexterm>
<para>
- <productname>PostgreSQL</productname> includes very few interfaces
- with the base distribution. <application>libpq</> is packaged because
- it is the primary <application>C</> interface and many other interfaces
- 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.
+ 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>
+ <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>
+ <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>
- Some of the more popular interfaces are:
-
- <variablelist>
- <varlistentry>
- <term>psqlODBC</term>
- <listitem>
- <para>
- This is the most common interface for <application>Windows</>
- applications. <ulink url="http://odbc.postgresql.org/">Website.</ulink>
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ODBCng</term>
- <listitem>
- <para>
- Another ODBC driver for PostgreSQL.
- <ulink url="http://projects.commandprompt.com/public/odbcng/">Website.</ulink>
- </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>
+ <productname>PostgreSQL</productname> includes several procedural
+ 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>
+ 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
+ packages. Note that some of these projects may not be released under the same
+ 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>
+ <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 id="external-extensions">
@@ -144,18 +248,21 @@
</indexterm>
<para>
- <productname>PostgreSQL</> was designed from the start to be
- extensible. For this reason, extensions loaded into the database can
- function just like features that are packaged with the database. The
+ <productname>PostgreSQL</> is designed to be easily extensible. For
+ this reason, extensions loaded into the database can function just
+ like features that are packaged with the database. The
<filename>contrib/</> directory shipped with the source code
contains a large number of extensions. The <filename>README</> file
- in that directory contains a summary. They include conversion tools,
- full-text indexing, <acronym>XML</> tools, and additional data types
- and indexing methods. Other extensions are developed independently,
- like <application>PostGIS</>. Even <application>PostgreSQL</>
- replication solutions are developed externally. For example,
- <application>Slony-I</> is a popular master/slave replication solution
- that is developed independently from the core project.
+ in that directory contains a summary. They include conversion
+ tools, full-text indexing, <acronym>XML</> tools, and additional
+ data types and indexing methods. Other extensions are developed
+ independently, like <application><ulink
+ url="http://www.postgis.org/">PostGIS</ulink></>. Even
+ <productname>PostgreSQL</> replication solutions are developed
+ 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>
@@ -163,7 +270,6 @@
<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>
-
+ </para>
</sect1>
</appendix>
diff --git a/doc/src/sgml/xplang.sgml b/doc/src/sgml/xplang.sgml
index 58798b8b2f..35aba4d6fb 100644
--- a/doc/src/sgml/xplang.sgml
+++ b/doc/src/sgml/xplang.sgml
@@ -31,15 +31,11 @@
<application>PL/Tcl</application> (<xref linkend="pltcl">),
<application>PL/Perl</application> (<xref linkend="plperl">), and
<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
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>
<sect1 id="xplang-install">