3 <appendix id=
"external-projects">
4 <title>External Projects
</title>
7 <productname>PostgreSQL
</productname> is a complex software project,
8 and managing the project is difficult. We have found that many
9 enhancements to
<productname>PostgreSQL
</productname> can be more
10 efficiently developed separately from the core project.
14 To help our community with the development of their external projects, we
15 have created
<ulink url=
"http://www.pgfoundry.org/">PgFoundry
</ulink>, a
16 website that provides hosting for
<productname>PostgreSQL<
/>-related
17 projects that are maintained outside the core
<productname>PostgreSQL<
/>
18 distribution. PgFoundry is built using the GForge software project and is
19 similar to
<ulink url=
"http://sourceforge.net">SourceForge.net<
/> in its
20 feature set, providing mailing lists, forums, bug tracking, CVS, and web
21 hosting. If you have a
<productname>PostgreSQL<
/>-related open source
22 project that you would like to have hosted at PgFoundy, please feel free
23 to create a new project.
26 <sect1 id=
"external-interfaces">
27 <title>Client Interfaces
</title>
30 <primary>interfaces
</primary>
31 <secondary>externally maintained
</secondary>
35 There are only two client interfaces included in the base
36 <productname>PostgreSQL
</productname> distribution:
40 <link linkend=
"libpq">libpq
</link> is included because it is the
41 primary C language interface, and because many other client interfaces
42 are built on top of it.
48 <link linkend=
"ecpg">ecpg
</link> is included because it depends on the
49 server-side SQL grammar, and is therefore sensitive to changes in
50 <productname>PostgreSQL
</productname> itself.
55 All other language interfaces are external projects and are distributed
56 separately.
<xref linkend=
"language-interface-table"> includes a list of
57 some of these projects. Note that some of these packages might not be
58 released under the same license as
<productname>PostgreSQL<
/>. For more
59 information on each language interface, including licensing terms, refer to
60 its website and documentation.
63 <table id=
"language-interface-table">
64 <title>Externally Maintained Client Interfaces<
/>
70 <entry>Language
</entry>
71 <entry>Comments
</entry>
72 <entry>Website
</entry>
78 <entry>DBD::Pg
</entry>
80 <entry>Perl DBI driver
</entry>
81 <entry><ulink url=
"http://search.cpan.org/dist/DBD-Pg/">http://search.cpan.org/dist/DBD-Pg/
</ulink></entry>
87 <entry>Type
4 JDBC driver
</entry>
88 <entry><ulink url=
"http://jdbc.postgresql.org/">http://jdbc.postgresql.org/
</ulink></entry>
92 <entry>libpqxx
</entry>
94 <entry>New-style C++ interface
</entry>
95 <entry><ulink url=
"http://pqxx.org/">http://pqxx.org/
</ulink></entry>
101 <entry>.NET data provider
</entry>
102 <entry><ulink url=
"http://npgsql.projects.postgresql.org/">http://npgsql.projects.postgresql.org/
</ulink></entry>
106 <entry>ODBCng
</entry>
108 <entry>An alternative ODBC driver
</entry>
109 <entry><ulink url=
"http://projects.commandprompt.com/public/odbcng/">http://projects.commandprompt.com/public/odbcng/
</ulink></entry>
113 <entry>pgtclng
</entry>
116 <entry><ulink url=
"http://pgfoundry.org/projects/pgtclng/">http://pgfoundry.org/projects/pgtclng/
</ulink></entry>
120 <entry>psqlODBC
</entry>
122 <entry>The most commonly-used ODBC driver
</entry>
123 <entry><ulink url=
"http://psqlodbc.projects.postgresql.org/">http://psqlodbc.projects.postgresql.org/
</ulink></entry>
127 <entry>psycopg
</entry>
128 <entry>Python
</entry>
129 <entry>DB API
2.0-compliant
</entry>
130 <entry><ulink url=
"http://www.initd.org/">http://www.initd.org/
</ulink></entry>
137 <sect1 id=
"external-pl">
138 <title>Procedural Languages
</title>
141 <primary>procedural language
</primary>
142 <secondary>externally maintained
</secondary>
146 <productname>PostgreSQL
</productname> includes several procedural
147 languages with the base distribution:
<link
148 linkend=
"plpgsql">PL/PgSQL
</link>,
<link linkend=
"pltcl">PL/Tcl
</link>,
149 <link linkend=
"plperl">PL/Perl
</link>, and
<link
150 linkend=
"plpython">PL/Python
</link>.
154 In addition, there are a number of procedural languages that are developed
155 and maintained outside the core
<productname>PostgreSQL
</productname>
156 distribution.
<xref linkend=
"pl-language-table"> lists some of these
157 packages. Note that some of these projects might not be released under the same
158 license as
<productname>PostgreSQL<
/>. For more information on each
159 procedural language, including licensing information, refer to its website
163 <table id=
"pl-language-table">
164 <title>Externally Maintained Procedural Languages
</title>
170 <entry>Language
</entry>
171 <entry>Website
</entry>
177 <entry>PL/Java
</entry>
179 <entry><ulink url=
"http://pljava.projects.postgresql.org/">http://pljava.projects.postgresql.org/
</ulink></entry>
183 <entry>PL/PHP
</entry>
185 <entry><ulink url=
"http://www.commandprompt.com/community/plphp/">http://www.commandprompt.com/community/plphp/
</ulink></entry>
190 <entry>Python
</entry>
191 <entry><ulink url=
"http://python.projects.postgresql.org/">http://python.projects.postgresql.org/
</ulink></entry>
197 <entry><ulink url=
"http://www.joeconway.com/plr/">http://www.joeconway.com/plr/
</ulink></entry>
201 <entry>PL/Ruby
</entry>
203 <entry><ulink url=
"http://raa.ruby-lang.org/project/pl-ruby/">http://raa.ruby-lang.org/project/pl-ruby/
</ulink></entry>
207 <entry>PL/Scheme
</entry>
208 <entry>Scheme
</entry>
209 <entry><ulink url=
"http://plscheme.projects.postgresql.org/">http://plscheme.projects.postgresql.org/
</ulink></entry>
214 <entry>Unix shell
</entry>
215 <entry><ulink url=
"http://plsh.projects.postgresql.org/">http://plsh.projects.postgresql.org/
</ulink></entry>
222 <sect1 id=
"external-extensions">
223 <title>Extensions
</title>
226 <primary>extensions
</primary>
230 <productname>PostgreSQL<
/> is designed to be easily extensible. For
231 this reason, extensions loaded into the database can function just
232 like features that are packaged with the database. The
233 <filename>contrib/<
/> directory shipped with the source code
234 contains a large number of extensions. The
<filename>README<
/> file
235 in that directory contains a summary. They include conversion
236 tools, full-text indexing,
<acronym>XML<
/> tools, and additional
237 data types and indexing methods. Other extensions are developed
238 independently, like
<application><ulink
239 url=
"http://www.postgis.org/">PostGIS
</ulink><
/>. Even
240 <productname>PostgreSQL<
/> replication solutions are developed
241 externally. For example,
<application> <ulink
242 url=
"http://www.slony.info">Slony-I
</ulink><
/> is a popular
243 master/slave replication solution that is developed independently
244 from the core project.
248 There are several administration tools available for
249 <productname>PostgreSQL<
/>. The most popular is
250 <application><ulink url=
"http://www.pgadmin.org/">pgAdmin III
</ulink><
/>,
251 and there are several commercially available ones as well.