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