diff options
author | Neil Conway | 2006-11-20 17:42:16 +0000 |
---|---|---|
committer | Neil Conway | 2006-11-20 17:42:16 +0000 |
commit | 11fb2edae5b4d3bd9d02f2cc7e2cd06bd0cc9b6d (patch) | |
tree | fa7daee7f50e1b3efc61af9eabcb155d6775b6c0 | |
parent | ae6a5502f2c4355ed87824980399607c381eadd6 (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.sgml | 354 | ||||
-rw-r--r-- | doc/src/sgml/xplang.sgml | 10 |
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"> |