On Fri, 2006-11-17 at 18:25 -0500, Robert Treat wrote:
> I noticed that the section on pl langs points to appendix H to find out about 
> additional pl's, but there is no info there to speak of. The attached patch 
> ads a list of external pl's and cleans up some other links and wording in 
> those areas

I think this patch was headed in the right direction, but I think that
section needs to be overhauled. Attached is a patch that does that.
External projects are now presented as concise tables, and some
unnecessary verbiage has been removed. I also removed some orphaned
projects and added PL/Py, among other changes.

Barring any objections, I'll apply the attached patch tomorrow.

-Neil

Index: doc/src/sgml/external-projects.sgml
===================================================================
RCS file: /home/neilc/postgres/cvs_root/pgsql/doc/src/sgml/external-projects.sgml,v
retrieving revision 1.13
diff -c -p -r1.13 external-projects.sgml
*** doc/src/sgml/external-projects.sgml	16 Sep 2006 00:30:13 -0000	1.13
--- doc/src/sgml/external-projects.sgml	19 Nov 2006 22:22:16 -0000
***************
*** 1,139 ****
  <!-- $PostgreSQL: pgsql/doc/src/sgml/external-projects.sgml,v 1.12 2006/08/01 19:17:18 alvherre Exp $ -->
  
   <appendix id="external-projects">
!   <title>PgFoundry and 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.   
    </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.
    </para>
  
   <sect1 id="external-interfaces">
!   <title>Externally Developed Interfaces</title>
  
    <indexterm>
     <primary>interfaces</primary>
    </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.
!   </para>
! 
!   <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>
  
   </sect1>
   
   <sect1 id="external-extensions">
--- 1,243 ----
  <!-- $PostgreSQL: pgsql/doc/src/sgml/external-projects.sgml,v 1.12 2006/08/01 19:17:18 alvherre Exp $ -->
  
   <appendix id="external-projects">
!   <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 <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>Client Interfaces</title>
  
    <indexterm>
     <primary>interfaces</primary>
+    <secondary>externally maintained</secondary>
    </indexterm>
  
    <para>
!    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>
!    <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,161 ****
    </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
     <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.
    </para>
  
    <para>
--- 248,268 ----
    </indexterm>
  
    <para>
!    <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><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,169 ****
     <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>
  </appendix>
--- 270,275 ----
     <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>
  </appendix>
Index: doc/src/sgml/xplang.sgml
===================================================================
RCS file: /home/neilc/postgres/cvs_root/pgsql/doc/src/sgml/xplang.sgml,v
retrieving revision 1.31
diff -c -p -r1.31 xplang.sgml
*** doc/src/sgml/xplang.sgml	16 Sep 2006 00:30:16 -0000	1.31
--- doc/src/sgml/xplang.sgml	19 Nov 2006 20:05:06 -0000
***************
*** 31,45 ****
     <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.
    </para>
  
    <sect1 id="xplang-install">
--- 31,41 ----
     <application>PL/Tcl</application> (<xref linkend="pltcl">),
     <application>PL/Perl</application> (<xref linkend="plperl">), and
     <application>PL/Python</application> (<xref linkend="plpython">).
     There are additional procedural languages available that are not
     included in the core distribution. <xref linkend="external-projects">
!    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">
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to