The code to unlink dropped relations in FinishPreparedTransaction() was
[PostgreSQL.git] / doc / src / sgml / external-projects.sgml
blobf6db28f72b480d747b8128cc74fc5528d2744170
1 <!-- $PostgreSQL$ -->
3 <appendix id="external-projects">
4 <title>External Projects</title>
6 <para>
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.
11 </para>
13 <para>
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.
24 </para>
26 <sect1 id="external-interfaces">
27 <title>Client Interfaces</title>
29 <indexterm>
30 <primary>interfaces</primary>
31 <secondary>externally maintained</secondary>
32 </indexterm>
34 <para>
35 There are only two client interfaces included in the base
36 <productname>PostgreSQL</productname> distribution:
37 <itemizedlist>
38 <listitem>
39 <para>
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.
43 </para>
44 </listitem>
46 <listitem>
47 <para>
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.
51 </para>
52 </listitem>
53 </itemizedlist>
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.
61 </para>
63 <table id="language-interface-table">
64 <title>Externally Maintained Client Interfaces</>
66 <tgroup cols="4">
67 <thead>
68 <row>
69 <entry>Name</entry>
70 <entry>Language</entry>
71 <entry>Comments</entry>
72 <entry>Website</entry>
73 </row>
74 </thead>
76 <tbody>
77 <row>
78 <entry>DBD::Pg</entry>
79 <entry>Perl</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>
82 </row>
84 <row>
85 <entry>JDBC</entry>
86 <entry>JDBC</entry>
87 <entry>Type 4 JDBC driver</entry>
88 <entry><ulink url="http://jdbc.postgresql.org/">http://jdbc.postgresql.org/</ulink></entry>
89 </row>
91 <row>
92 <entry>libpqxx</entry>
93 <entry>C++</entry>
94 <entry>New-style C++ interface</entry>
95 <entry><ulink url="http://pqxx.org/">http://pqxx.org/</ulink></entry>
96 </row>
98 <row>
99 <entry>Npgsql</entry>
100 <entry>.NET</entry>
101 <entry>.NET data provider</entry>
102 <entry><ulink url="http://npgsql.projects.postgresql.org/">http://npgsql.projects.postgresql.org/</ulink></entry>
103 </row>
105 <row>
106 <entry>ODBCng</entry>
107 <entry>ODBC</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>
110 </row>
112 <row>
113 <entry>pgtclng</entry>
114 <entry>Tcl</entry>
115 <entry></entry>
116 <entry><ulink url="http://pgfoundry.org/projects/pgtclng/">http://pgfoundry.org/projects/pgtclng/</ulink></entry>
117 </row>
119 <row>
120 <entry>psqlODBC</entry>
121 <entry>ODBC</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>
124 </row>
126 <row>
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>
131 </row>
132 </tbody>
133 </tgroup>
134 </table>
135 </sect1>
137 <sect1 id="external-pl">
138 <title>Procedural Languages</title>
140 <indexterm>
141 <primary>procedural language</primary>
142 <secondary>externally maintained</secondary>
143 </indexterm>
145 <para>
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>.
151 </para>
153 <para>
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
160 and documentation.
161 </para>
163 <table id="pl-language-table">
164 <title>Externally Maintained Procedural Languages</title>
166 <tgroup cols="3">
167 <thead>
168 <row>
169 <entry>Name</entry>
170 <entry>Language</entry>
171 <entry>Website</entry>
172 </row>
173 </thead>
175 <tbody>
176 <row>
177 <entry>PL/Java</entry>
178 <entry>Java</entry>
179 <entry><ulink url="http://pljava.projects.postgresql.org/">http://pljava.projects.postgresql.org/</ulink></entry>
180 </row>
182 <row>
183 <entry>PL/PHP</entry>
184 <entry>PHP</entry>
185 <entry><ulink url="http://www.commandprompt.com/community/plphp/">http://www.commandprompt.com/community/plphp/</ulink></entry>
186 </row>
188 <row>
189 <entry>PL/Py</entry>
190 <entry>Python</entry>
191 <entry><ulink url="http://python.projects.postgresql.org/">http://python.projects.postgresql.org/</ulink></entry>
192 </row>
194 <row>
195 <entry>PL/R</entry>
196 <entry>R</entry>
197 <entry><ulink url="http://www.joeconway.com/plr/">http://www.joeconway.com/plr/</ulink></entry>
198 </row>
200 <row>
201 <entry>PL/Ruby</entry>
202 <entry>Ruby</entry>
203 <entry><ulink url="http://raa.ruby-lang.org/project/pl-ruby/">http://raa.ruby-lang.org/project/pl-ruby/</ulink></entry>
204 </row>
206 <row>
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>
210 </row>
212 <row>
213 <entry>PL/sh</entry>
214 <entry>Unix shell</entry>
215 <entry><ulink url="http://plsh.projects.postgresql.org/">http://plsh.projects.postgresql.org/</ulink></entry>
216 </row>
217 </tbody>
218 </tgroup>
219 </table>
220 </sect1>
222 <sect1 id="external-extensions">
223 <title>Extensions</title>
225 <indexterm>
226 <primary>extensions</primary>
227 </indexterm>
229 <para>
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.
245 </para>
247 <para>
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.
252 </para>
253 </sect1>
254 </appendix>