]> granicus.if.org Git - postgresql/commitdiff
Overhaul the "External Projects" chapter in the manual. Replace
authorNeil Conway <neilc@samurai.com>
Mon, 20 Nov 2006 17:42:16 +0000 (17:42 +0000)
committerNeil Conway <neilc@samurai.com>
Mon, 20 Nov 2006 17:42:16 +0000 (17:42 +0000)
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.

doc/src/sgml/external-projects.sgml
doc/src/sgml/xplang.sgml

index 1a7a07416910f7911531c5e7e454389b2d5ceb3f..5ff952dfa557b84b105f22959b3e2508feb0ab38 100644 (file)
-<!-- $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">
-  <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">
   </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>
    <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>
index e56e72d6a0820f17d1ced96346ddbb41993f1edb..d4b1163145aa0c5f5beca9af3172ba2b83df4611 100644 (file)
@@ -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">
   <title id="xplang-title">Procedural Languages</title>
    <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">