2010-09-20 22:08:53 +02:00
|
|
|
<!-- doc/src/sgml/release-9.1.sgml -->
|
2010-09-02 19:30:06 +02:00
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
<sect1 id="release-9-1">
|
2011-03-25 16:52:11 +01:00
|
|
|
<title>Release 9.1alpha5</title>
|
2011-03-19 21:39:17 +01:00
|
|
|
|
2011-03-25 16:52:11 +01:00
|
|
|
<sect2>
|
|
|
|
<title>Overview</title>
|
|
|
|
<para>
|
|
|
|
PostgreSQL alpha releases are snapshots of development code.
|
|
|
|
They are intended to preview and test upcoming features and to
|
|
|
|
provide the possibility for early feedback. They should not be
|
|
|
|
used in production installations or active development projects.
|
|
|
|
While the PostgreSQL code is continuously subject to a number
|
|
|
|
of automated and manual tests, alpha releases might have serious
|
|
|
|
bugs. Also features may be changed incompatibly or removed at
|
|
|
|
any time during the development cycle.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
The development cycle of a PostgreSQL major release alternates
|
|
|
|
between periods of development and periods of integration work,
|
|
|
|
called commit fests, normally one month each. Alpha releases are
|
|
|
|
planned to be produced at the end of every commit fest, thus every
|
|
|
|
two months. Since the first commit fest starts within a month from
|
|
|
|
the beginning of development altogether, early alpha releases are
|
|
|
|
not indicative of the likely feature set of the final release.
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
|
|
<title>Testing</title>
|
|
|
|
<para>
|
|
|
|
The primary reason we release alphas is to get users to test new
|
|
|
|
features as early as possible. If you are interested in helping
|
|
|
|
with organized testing, please see
|
|
|
|
<ulink url="http://wiki.postgresql.org/wiki/HowToBetaTest">the
|
|
|
|
testing information page</ulink>.
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<!--
|
2011-03-19 21:39:17 +01:00
|
|
|
<note>
|
|
|
|
<title>Release Date</title>
|
|
|
|
<simpara>2011-??-??</simpara>
|
|
|
|
</note>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Overview</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This release of
|
|
|
|
<productname>PostgreSQL</> adds ... Major enhancements include:
|
2011-03-25 16:52:11 +01:00
|
|
|
(This list duplicates items below, but without authors or details)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The above items are explained in more detail in the sections below.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</sect2>
|
2011-03-25 16:52:11 +01:00
|
|
|
-->
|
2011-03-19 21:39:17 +01:00
|
|
|
|
|
|
|
<sect2>
|
|
|
|
|
|
|
|
<title>Migration to Version 9.1</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore using <application>pg_dump</application>,
|
|
|
|
or use of <application>pg_upgrade</application>, is required
|
|
|
|
for those wishing to migrate data from any previous
|
|
|
|
release.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-27 03:11:15 +02:00
|
|
|
Version 9.1 contains a number of changes that may affect compatibility
|
|
|
|
with previous releases. Observe the following incompatibilities:
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Strings</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
Change the default value of <link
|
|
|
|
linkend="guc-standard-conforming-strings"><varname>standard_conforming_strings</></link>
|
|
|
|
to on (Robert Haas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This removes a long-standing incompatibility with the SQL
|
2011-03-20 04:58:53 +01:00
|
|
|
standard; <link
|
|
|
|
linkend="guc-escape-string-warning"><varname>escape_string_warning</></link>
|
|
|
|
has produced warnings about this usage for years. <literal>E''</>
|
|
|
|
strings the proper way to embed escapes in strings and is
|
|
|
|
unaffected by this change.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Casting</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
Disallow function-style and attribute-style data type casts for
|
2011-03-19 21:39:17 +01:00
|
|
|
composite types (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
For example, disallow composite_name.text and text(composite_name).
|
2011-03-20 05:27:23 +01:00
|
|
|
<literal>CAST</> and <literal>::</> are still available for
|
|
|
|
casting.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Tighten casting checks for domains based on arrays (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
**Details?
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Arrays</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
Change <link
|
|
|
|
linkend="array-functions-table"><function>string_to_array()</></link>
|
2011-03-20 13:28:05 +01:00
|
|
|
to return an empty array for a zero-length string (Pavel
|
2011-03-20 04:58:53 +01:00
|
|
|
Stehule)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-19 22:21:49 +01:00
|
|
|
Previously this returned <literal>NULL</>.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
Change <link
|
|
|
|
linkend="array-functions-table"><function>string_to_array()</></link>
|
|
|
|
so a <literal>NULL</> separator splits the string into characters
|
|
|
|
(Pavel Stehule)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-19 22:21:49 +01:00
|
|
|
Previously this returned <literal>NULL</>.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Object Modification</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix improper checks for before/after triggers (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
**Tom, I need more details on the impact of this for existing
|
|
|
|
installs.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 13:28:05 +01:00
|
|
|
Require superuser or <literal>CREATEROLE</> permissions in order to
|
2011-03-20 05:27:23 +01:00
|
|
|
set role comments (Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
2011-03-20 14:33:37 +01:00
|
|
|
<sect3>
|
|
|
|
<title>Server Settings</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Change <link
|
|
|
|
linkend="functions-recovery-info-table"><function>pg_last_xlog_receive_location()</></link>
|
|
|
|
so it never moves backwards (Fujii Masao)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously <function>pg_last_xlog_receive_location()</> could
|
|
|
|
move backward when streaming replication is restarted.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Have logging of replication connections honor <link
|
|
|
|
linkend="guc-log-connections"><varname>log_connections</></link>
|
|
|
|
(Magnus Hagander)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously replication connections were always logged.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
<sect3>
|
2011-03-20 04:58:53 +01:00
|
|
|
<title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
|
2011-03-19 21:39:17 +01:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Change PL/pgSQL's <literal>RAISE</> command without parameters
|
|
|
|
to be catchable by the attached exception block (Piyush Newe)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Previously <literal>RAISE</> in a code block always scoped to
|
|
|
|
an attached exception block, so it was uncatchable at the same
|
|
|
|
scope.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
Adjust PL/pgSQL's error line reporting code to be consistent
|
2011-03-19 21:39:17 +01:00
|
|
|
with SQL error line reporting (Pavel Stehule)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously error numbering was off by one.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Other Incompatibilities</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
Have <link
|
|
|
|
linkend="monitoring-stats-funcs-table"><function>pg_stat_reset()</></link>
|
|
|
|
reset all database-level statistics (Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Some counters were not being reset.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
Fix some <link
|
|
|
|
linkend="infoschema-triggers"><structname>information_schema.triggers</></link>
|
|
|
|
column names to match the new SQL-standard names (Dean Rasheed)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Treat <application>ECPG</> cursor names as case-insensitive (Zoltan Boszormenyi)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes, current as of 2011-03-15</title>
|
|
|
|
<para>
|
|
|
|
Version 9.1 has ...
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Server</title>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Performance</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
Allow unlogged tables using <link
|
2011-03-20 05:27:23 +01:00
|
|
|
linkend="SQL-CREATETABLE-description"><literal>UNLOGGED</></link>
|
|
|
|
during <link linkend="SQL-CREATETABLE"><command>CREATE
|
|
|
|
TABLE</></link> (Robert Haas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
These tables are optimized for performance but are cleared in
|
|
|
|
case of a server crash.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
Allow <literal>FULL OUTER JOIN</literal> to be implemented as a
|
|
|
|
hash join, and allow either side of a <literal>LEFT OUTER JOIN</>
|
|
|
|
or <literal>RIGHT OUTER JOIN</> to be hashed (Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
Previously <literal>FULL OUTER JOIN</literal> could only be
|
|
|
|
implemented as a merge join, and <literal>LEFT OUTER JOIN</literal>
|
|
|
|
and <literal>RIGHT OUTER JOIN</literal> could has only the nullable
|
|
|
|
side of the join. These changes provide additional query optimization
|
|
|
|
possibilities.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Merge duplicate fsync requests on busy systems (Robert Haas,
|
|
|
|
Greg Smith)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
Improve performance of <link
|
|
|
|
linkend="guc-commit-siblings"><varname>commit_siblings</></link>
|
|
|
|
(Greg Smith)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
This allows the use of commit_siblings with less overhead.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Reduce the memory requirement for large ispell dictionaries
|
|
|
|
(Pavel Stehule, Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Optimizer</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow inheritance table queries to return meaningfully-sorted
|
|
|
|
results (Greg Stark, Hans-Jurgen Schonig, Robert Haas, Tom
|
|
|
|
Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
This allows optimization of <literal>ORDER BY</> and
|
|
|
|
<literal>LIMIT</> clauses in inheritance table queries.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Allow optimizations of <literal>MIN</>/<literal>MAX</> for
|
|
|
|
inheritance table queries (Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow hash joins for array values (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This provides additional query optimization possibilities.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve GIN index scan cost estimation (Teodor Sigaev)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Authentication</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Support host names and host suffixes (e.g. .example.com) in
|
2011-03-20 04:58:53 +01:00
|
|
|
<link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
|
|
|
|
(Peter Eisentraut)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Previously only host <acronym>IP</> addresses and <acronym>CIDR</>
|
|
|
|
values were supported.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Support the keyword <literal>all</> in the host column of <link
|
2011-03-20 05:27:23 +01:00
|
|
|
linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
|
|
|
|
(Peter Eisentraut)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Previously people used <literal>0.0.0.0/0</> or <literal>::/0</>
|
|
|
|
for this.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Allow <link linkend="gssapi-auth"><acronym>GSSAPI</></link>
|
|
|
|
to be used to authenticate to servers via <link
|
|
|
|
linkend="sspi-auth"><acronym>SSPI</></link> (Christian Ullrich)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Specifically this allows Unix-based <acronym>GSSAPI</> clients
|
|
|
|
to <acronym>SSPI</> authenticate to Windows servers.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Monitoring</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Add details to the logging of restartpoints and checkpoints,
|
2011-03-20 05:27:23 +01:00
|
|
|
which is controlled by <link
|
|
|
|
linkend="guc-log-checkpoints"><varname>log_checkpoints</></link>
|
|
|
|
(Fujii Masao, Greg Smith)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
New details show <acronym>WAL</> file and sync activity.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link
|
|
|
|
linkend="guc-log-file-mode"><varname>log_file_mode</></link>
|
2011-03-20 04:58:53 +01:00
|
|
|
which controls the permissions on log files created by the
|
|
|
|
logging_collector (Martin Pihlak)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Statistical Views</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add client_hostname field to <link
|
|
|
|
linkend="monitoring-stats-views-table"><structname>pg_stat_activity</></link>
|
|
|
|
(Peter Eisentraut)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously only the client address was reported.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link
|
|
|
|
linkend="monitoring-stats-views-table"><structname>pg_stat_xact_*</></link>
|
|
|
|
statistic functions and views (Joel Jacobson)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 13:28:05 +01:00
|
|
|
These are like the database-wide statistics counter views but
|
2011-03-19 21:39:17 +01:00
|
|
|
reflect counts for only the current transaction.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add the <link
|
|
|
|
linkend="monitoring-stats-views-table"><structname>pg_stat_database_conflicts</></link>
|
|
|
|
system view to show queries that have been canceled and the
|
|
|
|
reason (Magnus Hagander)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Cancelations can occur because of dropped tablespaces, lock
|
|
|
|
timeouts, old snapshots, pinned buffers, and deadlocks.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add a <literal>conflicts</> count to <link
|
|
|
|
linkend="monitoring-stats-views-table"><structname>pg_stat_database</></link>
|
|
|
|
(Magnus Hagander)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is the number of conflicts that occurred in the database.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
Add record of last reset in database and background writer-level
|
|
|
|
statistics views (Tomas Vondra)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add columns showing the number of vacuum and analyze operations
|
2011-03-20 05:27:23 +01:00
|
|
|
in <link
|
|
|
|
linkend="monitoring-stats-views-table"><structname>pg_stat_*_tables</></link>
|
|
|
|
views (Magnus Hagander)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 22:43:04 +01:00
|
|
|
Add buffers_backend_fsync field to <link
|
2011-03-20 05:27:23 +01:00
|
|
|
linkend="monitoring-stats-views-table"><structname>pg_stat_bgwriter</></link>
|
|
|
|
(Greg Smith)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This new field counts the number of times a backend fsyncs a
|
|
|
|
buffer.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Server Settings</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Allow auto-tuning of <link
|
|
|
|
linkend="guc-wal-buffers"><varname>wal_buffers</></link> (Greg
|
|
|
|
Smith)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
wal_buffers is now auto-tuned by default based on the size of
|
|
|
|
shared_buffers.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link
|
|
|
|
linkend="guc-restart-after-crash"><varname>restart_after_crash</></link>
|
|
|
|
which disables server restart after a backend crash (Robert
|
|
|
|
Haas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is designed for cluster managers that want to control
|
|
|
|
restarts.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-27 03:11:15 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-28 15:42:09 +02:00
|
|
|
Increase the maximum values for
|
|
|
|
<link linkend="guc-deadlock-timeout"><varname>deadlock_timeout</varname></link>,
|
|
|
|
<link linkend="guc-max-standby-archive-delay"><varname>max_standby_archive_delay</varname></link>,
|
|
|
|
<link linkend="guc-max-standby-streaming-delay"><varname>max_standby_streaming_delay</varname></link>,
|
|
|
|
<link linkend="guc-log-min-duration-statement"><varname>log_min_duration_statement</varname></link>, and
|
|
|
|
<link linkend="guc-log-autovacuum-min-duration"><varname>log_autovacuum_min_duration</varname></link>.
|
2011-03-27 03:11:15 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The maximum value for each of these parameters was previously
|
|
|
|
only about 35 minutes. Much larger values are now allowed.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
2011-03-20 14:33:37 +01:00
|
|
|
<sect3>
|
2011-03-20 22:43:04 +01:00
|
|
|
<title>Streaming Replication and Continuous Archiving</title>
|
2011-03-20 14:33:37 +01:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-28 20:50:08 +02:00
|
|
|
Allow <link linkend="synchronous-replication">synchronous
|
|
|
|
replication</link> (Simon Riggs, Fujii Masao)
|
2011-03-20 14:33:37 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
One standby at a time can take the role of the synchronous standby,
|
|
|
|
as controlled by the
|
|
|
|
<link linkend="guc-synchronous-standby-names"><varname>synchronous_standby_names</varname></link>
|
|
|
|
setting. Synchronous replication can be enabled or disabled on a
|
|
|
|
per-transaction basis using the
|
|
|
|
<link linkend="guc-synchronous-replication"><varname>synchronous_replication</></link>
|
|
|
|
setting. This allows the primary to wait for a standby to write the
|
|
|
|
transaction information to disk before acknowledging the commit.
|
2011-03-20 14:33:37 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add variable <link
|
|
|
|
linkend="guc-hot-standby-feedback"><varname>hot_standby_feedback</></link>
|
2011-03-24 21:57:12 +01:00
|
|
|
to enable standbys to postpone cleanup of old row versions on the
|
|
|
|
primary (Simon Riggs)
|
2011-03-20 14:33:37 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This helps avoid cancelling long-running queries on the standby.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add support for sending file system backups to standbys using
|
|
|
|
the streaming replication network connection (Magnus Hagander,
|
|
|
|
Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This avoids the requirement of manually transferring a file
|
|
|
|
system backup when creating a standby server.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add command-line tool <link
|
|
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</></link>
|
|
|
|
for creating a new standby server or database backup (Magnus
|
|
|
|
Hagander)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 22:43:04 +01:00
|
|
|
Add replication <link linkend="SQL-CREATEROLE">permission</link>
|
2011-03-20 14:33:37 +01:00
|
|
|
for roles (Magnus Hagander)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is a read-only permission used for streaming replication
|
|
|
|
and allows non-superusers to initiate replication connections.
|
|
|
|
Previously only superusers could initiate replication
|
|
|
|
connections; superusers have this permission by default.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-27 03:11:15 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
<link linkend="auth-ident"><literal>ident</literal></link>
|
|
|
|
authentication over local sockets is now known as
|
|
|
|
<link linkend="auth-peer"><literal>peer</literal></link>
|
|
|
|
(Magnus Hagander)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The old term is still accepted for backward compatibility.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-20 14:33:37 +01:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Monitoring</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add system view <link
|
|
|
|
linkend="monitoring-stats-views-table"><structname>pg_stat_replication</></link>
|
2011-03-21 04:17:21 +01:00
|
|
|
which displays activity of <acronym>WAL</> sender processes (Itagaki
|
2011-03-20 14:33:37 +01:00
|
|
|
Takahiro, Simon Riggs)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This reports the status of all connected standby servers.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add monitoring function <link
|
|
|
|
linkend="functions-recovery-info-table"><function>pg_last_xact_replay_timestamp()</></link>
|
|
|
|
(Fujii Masao)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This returns the time on the primary that generated the most
|
|
|
|
recent commit or abort record applied on the standby.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Recovery Control</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add functions to control streaming replication replay (Simon
|
|
|
|
Riggs)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The new functions are <link
|
|
|
|
linkend="functions-recovery-control-table"><function>pg_xlog_replay_pause()</></link>,
|
|
|
|
<link
|
|
|
|
linkend="functions-recovery-control-table"><function>pg_xlog_replay_resume()</></link>,
|
|
|
|
and the status function <link
|
|
|
|
linkend="functions-recovery-control-table"><function>pg_is_xlog_replay_paused()</></link>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add the ability to create named restore points using <link
|
|
|
|
linkend="functions-admin-backup-table"><function>pg_create_restore_point()</></link>
|
|
|
|
(Jaime Casanova)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
These named restore points can be specified as recovery
|
2011-03-24 21:57:12 +01:00
|
|
|
targets using the new <filename>recovery.conf</> setting
|
|
|
|
<link linkend="recovery-target-name"><varname>recovery_target_name</></link>
|
2011-03-20 14:33:37 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add <filename>recovery.conf</> setting <link
|
|
|
|
linkend="pause-at-recovery-target"><varname>pause_at_recovery_target</></link>
|
|
|
|
to pause recovery at target (Simon Riggs)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows a recovery server to be queried to check if the
|
|
|
|
recovery point is the one desired.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow standby recovery to switch to a new timeline automatically
|
|
|
|
(Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Now standby servers scan the archive directory for new
|
|
|
|
timelines periodically.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <link
|
|
|
|
linkend="recovery-config"><filename>recovery.conf</></link>
|
|
|
|
to use the same quoting behavior as <filename>postgresql.conf</>
|
|
|
|
(Dimitri Fontaine)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously all values had to be quoted.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
<sect3>
|
|
|
|
<title>Queries</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-19 22:21:49 +01:00
|
|
|
Allow data-modification commands
|
2011-03-20 05:27:23 +01:00
|
|
|
(<command>INSERT</>/<command>UPDATE</>/<command>DELETE)</> in
|
|
|
|
<link linkend="queries-with"><literal>WITH</></link> clauses
|
|
|
|
(Marko Tiikkaja, Hitoshi Harada)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-19 22:21:49 +01:00
|
|
|
This allows <command>INSERT</>/<command>UPDATE</>/<command>DELETE</>
|
|
|
|
<literal>RETURNING</> in <literal>WITH</> clauses to pass rows
|
|
|
|
to outer queries.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Allow <link linkend="queries-with"><literal>WITH</></link>
|
|
|
|
clauses to be fed into <command>INSERT</>, <command>UPDATE</>,
|
|
|
|
<command>DELETE </> statements (Marko Tiikkaja, Hitoshi Harada)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Allow non-<link linkend="queries-group"><literal>GROUP
|
|
|
|
BY</></link> columns in the query target list when the primary
|
|
|
|
key is specified in the <literal>GROUP BY</> clause (Peter
|
2011-03-19 21:39:17 +01:00
|
|
|
Eisentraut)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Some other database system already allowed this behavior, and
|
2011-03-24 21:57:12 +01:00
|
|
|
because of the primary key, the result is unambiguous.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Allow the use of the keyword <link
|
|
|
|
linkend="queries-union"><literal>DISTINCT</></link> in
|
2011-03-19 22:21:49 +01:00
|
|
|
<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</>
|
2011-03-19 21:39:17 +01:00
|
|
|
clauses (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
<literal>DISTINCT</> is the default behavior so use of this
|
|
|
|
keyword is redundant.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix ordinary queries with rules to use the same snapshot behavior
|
|
|
|
as <command>EXPLAIN ANALYZE</> (Marko Tiikkaja)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously <command>EXPLAIN ANALYZE</> used a slightly different
|
|
|
|
snapshot for queries involving rules. The <command>EXPLAIN ANALYZE</>
|
|
|
|
behavior was judged to be more logical.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Strings</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add per-column <link
|
2011-03-20 22:43:04 +01:00
|
|
|
linkend="collation">collation</link> support
|
2011-03-20 05:27:23 +01:00
|
|
|
(Peter Eisentraut, Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously collation could only be set at the database level.
|
|
|
|
Collation can now be set per column, domain, index, or
|
|
|
|
expression.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Object Manipulation</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add support for <link linkend="SQL-CREATEFOREIGNTABLE">foreign
|
|
|
|
tables</link> (Shigeru Hanada, Robert Haas, Jan Urbanski,
|
|
|
|
Heikki Linnakangas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows data stored in foreign sources to be used like
|
2011-03-20 04:58:53 +01:00
|
|
|
native <productname>PostgreSQL</>-stored data.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-20 04:58:53 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Allow new values to be added to an existing enum type via
|
2011-03-20 13:28:05 +01:00
|
|
|
<link linkend="SQL-ALTERTYPE"><command>ALTER TYPE</></link> (Andrew
|
2011-03-20 04:58:53 +01:00
|
|
|
Dunstan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link linkend="SQL-ALTERTYPE"><command>ALTER TYPE ...
|
|
|
|
ADD/DROP/ALTER/RENAME ATTRIBUTE</></link> (Peter Eisentraut)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows modification of composite types.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
2011-03-19 22:21:49 +01:00
|
|
|
<title><command>ALTER</> Object</title>
|
2011-03-19 21:39:17 +01:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <literal>RESTRICT</>/<literal>CASCADE</> to <link
|
|
|
|
linkend="SQL-ALTERTYPE"><command>ALTER TYPE</></link> operations
|
|
|
|
on typed tables (Peter Eisentraut)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
This controls
|
|
|
|
<literal>ADD</>/<literal>DROP</>/<literal>ALTER</>/<literal>RENAME
|
|
|
|
ATTRIBUTE</> cascading behavior.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add support for more object types in <command>ALTER ... SET
|
|
|
|
SCHEMA</> commands (Dimitri Fontaine)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
2011-03-24 21:57:12 +01:00
|
|
|
|
|
|
|
<para>
|
|
|
|
This command is now supported for conversions, operators, operator
|
|
|
|
classes, operator families, text search configurations, and text search
|
|
|
|
dictionaries, text search parsers, and text search templates.
|
|
|
|
</para>
|
2011-03-19 21:39:17 +01:00
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
2011-03-20 22:43:04 +01:00
|
|
|
<title><link linkend="SQL-CREATETABLE"><command>CREATE/ALTER TABLE</></link></title>
|
2011-03-19 21:39:17 +01:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-28 15:34:56 +02:00
|
|
|
Add <command>ALTER TABLE ...
|
|
|
|
ADD UNIQUE/PRIMARY KEY USING INDEX</command>
|
2011-03-20 05:27:23 +01:00
|
|
|
(Gurjeet Singh)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
This allows a primary key or unique constraint to be added using an
|
|
|
|
existing unique index, including a concurrently created unique index.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-28 15:34:56 +02:00
|
|
|
Allow <command>ALTER TABLE</>
|
2011-03-20 05:27:23 +01:00
|
|
|
to add foreign keys without validation (Simon Riggs)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
The new option is called <literal>NOT VALID</>, which can
|
|
|
|
later be modified to <literal>VALIDATED</> and validation
|
|
|
|
checks performed.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
Allow <link linkend="SQL-ALTERTABLE"><command>ALTER TABLE
|
|
|
|
... SET DATA TYPE</command></link> to avoid table rewrites in
|
2011-03-19 21:39:17 +01:00
|
|
|
appropriate cases (Noah Misch, Robert Haas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
For example, converting a varchar column to text no longer
|
2011-03-24 21:57:12 +01:00
|
|
|
requires a rewrite of the table. However, increasing the length
|
|
|
|
constraint on a varchar column still requires a table rewrite.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-20 22:43:04 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add <link linkend="SQL-CREATETABLE"><command>CREATE TABLE IF
|
|
|
|
NOT EXISTS</></link> syntax (Robert Haas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows table creation without causing an error if the
|
|
|
|
table already exists.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-27 03:11:15 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix possible "tuple concurrently updated" error when two server
|
|
|
|
backends attempted to add an inheritance parent to the same
|
|
|
|
table at the same time (Robert Haas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-28 15:42:09 +02:00
|
|
|
<link linkend="sql-altertable"><command>ALTER TABLE</command></link>
|
|
|
|
now takes a stronger lock on the parent table, so that both children do
|
|
|
|
not try to update it simultaneously.
|
2011-03-27 03:11:15 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Object Permissions</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add a <link linkend="SQL-SECURITY-LABEL"><command>SECURITY
|
|
|
|
LABEL</></link> command (KaiGai Kohei)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows security labels to be assigned to objects.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Utility Operations</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
Add a true <link linkend="xact-serializable"><literal>serializable</></link> isolation level (Kevin Grittner, Dan Ports)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
Previously asking for serializable isolation guaranteed only that
|
|
|
|
a single MVCC snapshot would be used for the entire transaction, which
|
|
|
|
allowed certain documented anomalies.
|
2011-03-21 00:35:19 +01:00
|
|
|
The old snapshot isolation level is still accessible by
|
2011-03-21 00:36:44 +01:00
|
|
|
requesting the <link linkend="xact-repeatable-read"><literal>REPEATABLE
|
2011-03-20 22:43:04 +01:00
|
|
|
READ</></link> isolation level.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add transaction-level <link linkend="advisory-locks">advisory
|
|
|
|
locks</link> (Marko Tiikkaja)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is similar to the existing session-level advisory locks,
|
|
|
|
but are freed at transaction end.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Make <link linkend="SQL-TRUNCATE"><command>TRUNCATE ... RESTART
|
|
|
|
IDENTITY</></link> restart sequences transactionally (Steve
|
|
|
|
Singer)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously the counter could have been left out of sync if a
|
|
|
|
backend crashed between the on-commit truncation activity and
|
|
|
|
commit completion.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="SQL-COPY"><command>COPY</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <literal>ENCODING</> option to <link
|
|
|
|
linkend="SQL-COPY"><command>COPY TO/FROM</></link> (Hitoshi
|
|
|
|
Harada, Itagaki Takahiro)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
This allows the encoding of the <command>COPY</> file to be
|
|
|
|
specified separately from client encoding.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add bidirectional <link linkend="SQL-COPY"><command>COPY</></link>
|
|
|
|
protocol support (Fujii Masao)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is currently only used by streaming replication.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="SQL-EXPLAIN"><command>EXPLAIN</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 22:43:04 +01:00
|
|
|
Have <command>EXPLAIN VERBOSE</>
|
|
|
|
show the function call expression (Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="SQL-VACUUM"><command>VACUUM</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add additional details to the output of <link
|
|
|
|
linkend="SQL-VACUUM"><command>VACUUM FULL VERBOSE</></link>
|
|
|
|
and <link linkend="SQL-CLUSTER"><command>CLUSTER VERBOSE</></link>
|
|
|
|
(Itagaki Takahiro)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
New information includes the live and dead tuple count and
|
|
|
|
whether <command>CLUSTER</> is using an index to rebuild.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Prevent <link linkend="autovacuum">autovacuum</link> from
|
|
|
|
waiting if it cannot acquire a lock (Robert Haas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
It will try to vacuum later.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<sect4>
|
|
|
|
<title><link linkend="SQL-CLUSTER"><command>CLUSTER</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow CLUSTER to sort the table rather than scanning the index
|
|
|
|
when it seems likely to be cheaper (Leonardo Francalanci)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
<sect4>
|
|
|
|
<title>Indexes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add nearest-neighbor (order-by-operator) searching to <link
|
2011-03-21 04:17:21 +01:00
|
|
|
linkend="GiST"><acronym>GiST</> indexes</link> (Teodor Sigaev, Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
This allows <acronym>GiST</> indexes to quickly return
|
2011-03-20 05:27:23 +01:00
|
|
|
<literal>LIMIT</>-specified closest values.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Allow <link linkend="GIN"><acronym>GIN</> indexes</link> to index null
|
2011-03-20 05:27:23 +01:00
|
|
|
and empty values (Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
This allows full <acronym>GIN</> index scans.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <link linkend="GIN"><acronym>GIN</> indexes</link> to
|
|
|
|
better recognize duplicate search entries (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This reduces the cost of index scans, especially in cases where
|
|
|
|
it avoids unnecessary full index scans.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Fix <link linkend="GiST"><acronym>GiST</> indexes</link> to be fully
|
2011-03-20 05:27:23 +01:00
|
|
|
crash-safe (Heikki Linnakangas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Previously there were rare cases where a <command>REINDEX</>
|
|
|
|
would be required (you would be informed).
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Data Types</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Allow <type>numeric</> to use a more compact, two-byte header
|
|
|
|
in many cases (Robert Haas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Previously all <type>numeric</> values had four-byte headers;
|
|
|
|
this saves on disk storage.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add support for dividing <type>money</> by <type>money</>
|
|
|
|
(Andy Balholm)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow binary I/O on type <type>void</type> (Radoslaw Smogura)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve hypotenuse calculations for geometric operators (Paul Matthews)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This avoids unnecessary overflows, and may also be more accurate.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Casting</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add support for casting between <type>money</> and <type>numeric</>
|
|
|
|
(Andy Balholm)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow casting a table's row type to the table's supertype if
|
|
|
|
it's a typed table (Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
This is analogous to the existing facility that allows casting a row
|
|
|
|
type to a supertable's row type.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
2011-03-21 04:17:21 +01:00
|
|
|
<title><link linkend="functions-xml"><acronym>XML</></link></title>
|
2011-03-19 21:39:17 +01:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Add <acronym>XML</> function <link
|
2011-03-20 05:27:23 +01:00
|
|
|
linkend="xml-exists"><literal>XMLEXISTS</></link> and <link
|
|
|
|
linkend="xml-exists"><function>xpath_exists()</></link>
|
2011-03-20 04:58:53 +01:00
|
|
|
functions (Mike Fowler)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
These are used for xpath matching.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Add <acronym>XML</> functions <link
|
2011-03-20 05:27:23 +01:00
|
|
|
linkend="xml-is-well-formed"><function>xml_is_well_formed()</></link>,
|
|
|
|
<link
|
|
|
|
linkend="xml-is-well-formed"><function>xml_is_well_formed_document()</></link>,
|
|
|
|
<link
|
|
|
|
linkend="xml-is-well-formed"><function>xml_is_well_formed_content()</></link>
|
|
|
|
(Mike Fowler)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
These check whether the input is properly-formed <acronym>XML</>.
|
2011-03-24 21:57:12 +01:00
|
|
|
They supersede functionality that was previously available only using
|
|
|
|
<filename>contrib/xml2</filename>.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Functions</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 22:43:04 +01:00
|
|
|
Add SQL function <link
|
2011-03-20 05:27:23 +01:00
|
|
|
linkend="format"><function>format(text)</></link>, which
|
|
|
|
behaves like C's <function>printf()</> (Pavel Stehule, Robert
|
|
|
|
Haas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
It currently supports formats for strings, SQL literals, and
|
|
|
|
SQL identifiers.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 22:43:04 +01:00
|
|
|
Add string functions <link
|
2011-03-20 05:27:23 +01:00
|
|
|
linkend="functions-string-other"><function>concat()</></link>,
|
|
|
|
<link
|
|
|
|
linkend="functions-string-other"><function>concat_ws()</></link>,
|
|
|
|
<link linkend="functions-string-other"><function>left()</></link>,
|
|
|
|
<link linkend="functions-string-other"><function>right()</></link>,
|
|
|
|
and <link
|
|
|
|
linkend="functions-string-other"><function>reverse()</></link>
|
|
|
|
(Pavel Stehule)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
These improve compatibility with other database products.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add function <link
|
|
|
|
linkend="functions-admin-genfile"><function>pg_read_binary_file()</></link>
|
|
|
|
to read binary files (Dimitri Fontaine, Itagaki Takahiro)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Add a single-parameter version of function <link
|
2011-03-20 05:27:23 +01:00
|
|
|
linkend="functions-admin-genfile"><function>pg_read_file()</></link>
|
|
|
|
to read an entire file (Dimitri Fontaine, Itagaki Takahiro)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add three-parameter forms of <link
|
|
|
|
linkend="array-functions-table"><function>array_to_string()</></link>
|
|
|
|
and <link
|
|
|
|
linkend="array-functions-table"><function>string_to_array()</></link>
|
2011-03-19 22:21:49 +01:00
|
|
|
for <literal>NULL</> processing control (Pavel Stehule)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Object Information Functions</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Add the <link
|
2011-03-20 05:27:23 +01:00
|
|
|
linkend="functions-info-catalog-table"><function>pg_describe_object()</></link>
|
|
|
|
function (Alvaro Herrera)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-27 03:11:15 +02:00
|
|
|
This function is used to obtain a human-readable string describing an
|
|
|
|
object, based on the <link linkend="catalog-pg-class"><structname>pg_class</structname></link> OID, object OID, and sub-object OID. It can be used to
|
|
|
|
help interpret the contents of <link linkend="catalog-pg-depend"><structname>pg_depend</structname></link>.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Update comments for built-in operators and their underlying
|
|
|
|
functions (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add variable <link
|
|
|
|
linkend="guc-quote-all-identifiers"><varname>quote_all_identifiers</></link>
|
|
|
|
to force the quoting of all identifiers in <command>EXPLAIN</>
|
2011-03-21 04:17:21 +01:00
|
|
|
and in system catalog functions like <link
|
2011-03-20 05:27:23 +01:00
|
|
|
linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
|
|
|
|
(Robert Haas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This makes exporting schemas to tools and other databases with
|
|
|
|
different quoting rules easier.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add fields to the <link
|
|
|
|
linkend="infoschema-sequences"><structname>information_schema.sequences</></link>
|
|
|
|
system view (Peter Eisentraut)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously, though the view existed, all of these view fields
|
|
|
|
were unimplemented.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Allow <literal>public</> as a pseudo-role name in <link
|
|
|
|
linkend="functions-info-access-table"><function>has_table_privilege()</></link>
|
2011-03-20 13:28:05 +01:00
|
|
|
and related functions (Alvaro Herrera)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows checking for public permissions.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link
|
|
|
|
linkend="errcodes-table"><literal>ERRCODE_T_R_DATABASE_DROPPED</></link>
|
|
|
|
error code to report recovery conflicts due to dropped databases
|
|
|
|
(Tatsuo Ishii)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is useful for connection pooling software.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Function and Trigger Creation</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Allow <link linkend="SQL-CREATETRIGGER"><literal>INSTEAD
|
|
|
|
OF</></link> triggers on views (Dean Rasheed)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This feature can be used to implement updatable views.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Reduce lock levels for <link
|
|
|
|
linkend="SQL-CREATETRIGGER"><command>CREATE TRIGGER</></link>
|
|
|
|
and some <link linkend="SQL-ALTERTABLE"><command>ALTER
|
2011-03-20 22:43:04 +01:00
|
|
|
TABLE</></link> and <link linkend="SQL-CREATERULE"><command>CREATE
|
|
|
|
RULE</></link> operations (Simon Riggs)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This improves concurrency.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Server-Side Languages</title>
|
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<sect4>
|
|
|
|
<title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
|
2011-03-19 21:39:17 +01:00
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<itemizedlist>
|
2011-03-19 21:39:17 +01:00
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add <link linkend="plpgsql-foreach-array"><command>FOREACH IN
|
|
|
|
ARRAY</></link> to <link linkend="plpgsql">PL/pgSQL</link> to
|
|
|
|
allow array iteration (Pavel Stehule)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is more efficient than previous methods.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add <link linkend="plpgsql-foreach-array"><command>FOREACH IN
|
|
|
|
ARRAY</></link> to <link linkend="plpgsql">PL/pgSQL</link> to
|
|
|
|
allow array iteration (Pavel Stehule)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is more efficient than previous methods.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <command>RAISE</command> without parameters to be caught in
|
|
|
|
the same places that could catch a <command>RAISE ERROR</command>
|
|
|
|
from the same location.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The new behavior is more consistent.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
2011-03-19 21:39:17 +01:00
|
|
|
|
2011-03-20 22:43:04 +01:00
|
|
|
</itemizedlist>
|
2011-03-19 21:39:17 +01:00
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
</sect4>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
<sect4>
|
|
|
|
<title><link linkend="plperl">PL/Perl</link> Server-Side Language</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
Allow generic record arguments to PL/Perl functions (Andrew
|
2011-03-19 21:39:17 +01:00
|
|
|
Dunstan)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
**Andrew, I need details on this.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Convert PL/Perl input arguments to Perl arrays (Alexey Klyukin,
|
|
|
|
Alex Hunsaker)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
String representations are still available.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Convert PL/Perl row and composite type arguments to Perl hashes
|
|
|
|
(Alexey Klyukin, Alex Hunsaker)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
String representations are still available.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add table function support for PL/Python (Jan Urbanski)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
PL/Python now can return multiple <literal>OUT</> parameters
|
|
|
|
and record sets.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add validator to PL/Python (Jan Urbanski)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows PL/Python functions to be validated at function
|
|
|
|
creation time.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow exceptions for SQL queries in PL/Python (Jan Urbanski)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows access to SQL-generated exception error codes from
|
|
|
|
PL/Python exception blocks.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Allow PL/Python to access <literal>SQLSTATE</> exception values
|
|
|
|
(Jan Urbanski)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
**Is this the same as the item above?
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add PL/Python explicit subtransactions (Jan Urbanski)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add PL/Python functions for quoting strings (Jan Urbanski)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
The functions are <link
|
|
|
|
linkend="plpython-util"><literal>plpy.quote_ident</></link>,
|
|
|
|
<link linkend="plpython-util"><literal>plpy.quote_literal</></link>,
|
|
|
|
and <link
|
|
|
|
linkend="plpython-util"><literal>plpy.quote_nullable</></link>.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Report PL/Python errors from iterators with <literal>PLy_elog</> (Jan
|
2011-03-19 21:39:17 +01:00
|
|
|
Urbanski)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
<function>plpy.Fatal</function> now raises <literal>FATAL</>, rather
|
|
|
|
than <literal>ERROR</literal> (Jan Urbanski)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The old behavior was incorrect.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Overhaul of PL/Python (Jan Urbanski)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This includes exception support for Python 3. **More?
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Client Applications</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Mark <link
|
|
|
|
linkend="APP-CREATELANG"><application>createlang</></link>
|
|
|
|
and <link linkend="APP-DROPLANG"><application>droplang</></link>
|
|
|
|
as deprecated now that they use the extension framework (Tom
|
|
|
|
Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="APP-PSQL"><application>psql</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add the <literal>\conninfo</> command to <application>psql</>,
|
|
|
|
to show current connection information (David Christensen)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Add <application>psql</> command <literal>\sf</> to
|
2011-03-20 22:43:04 +01:00
|
|
|
show a function's definition (Pavel Stehule)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Add <application>psql</> command <literal>\dL</> to list
|
|
|
|
languages (Fernando Ike)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add system table <option>S</> option to <application>psql</>
|
|
|
|
<literal>\dn</> (schemas) (Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
<literal>\dn</> without <literal>S</> now suppresses system
|
|
|
|
schemas.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 22:43:04 +01:00
|
|
|
Allow <application>psql</>'s <literal>\e</> and <literal>\ef</>
|
|
|
|
commands to accept a line number to be used to position the
|
|
|
|
cursor in the editor (Pavel Stehule)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is passed to the editor using the
|
2011-03-21 04:17:21 +01:00
|
|
|
<envar>EDITOR_LINENUMBER_SWITCH</> environment variable.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Have <application>psql</> set the client encoding from the
|
|
|
|
operating system locale by default (Heikki Linnakangas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
This only happens if the <envar>PGCLIENTENCODING</> environment
|
2011-03-20 05:27:23 +01:00
|
|
|
variable is not set.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Make <application>psql</application> distinguish between unique
|
|
|
|
indices and unique constraints (Josh Kupershmidt)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-27 03:11:15 +02:00
|
|
|
Additional tab completion support (Itagaki Takahiro, Pavel Stehule,
|
|
|
|
Andrey Popp, Christoph Berg, David Fetter, Josh Kupershmidt)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link linkend="APP-PGDUMP"><application>pg_dump</></link>
|
|
|
|
and <link
|
|
|
|
linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>
|
2011-03-19 22:21:49 +01:00
|
|
|
option <option>--quote-all-identifiers</> to force quoting
|
|
|
|
of all identifiers (Robert Haas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 14:33:37 +01:00
|
|
|
Add <literal>directory</> format to <application>pg_dump</>
|
|
|
|
(Joachim Wieland, Heikki Linnakangas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
This is internally similar to the <literal>tar</>
|
|
|
|
<application>pg_dump</> format.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="APP-PG-CTL"><application>pg_ctl</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 14:33:37 +01:00
|
|
|
Fix <application>pg_ctl</>
|
2011-03-20 05:27:23 +01:00
|
|
|
so it no longer incorrectly reports that the server is not
|
|
|
|
running (Bruce Momjian)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously this could happen if the server was running but
|
2011-03-19 22:21:49 +01:00
|
|
|
<application>pg_ctl</> could not authenticate.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 14:33:37 +01:00
|
|
|
Improve <application>pg_ctl</>
|
2011-03-20 05:27:23 +01:00
|
|
|
start's "wait" (<option>-w</>) mode to handle non-standard
|
|
|
|
port numbers, non-standard unix-domain socket locations,
|
|
|
|
permission problems, and stale postmaster lock files (Bruce
|
|
|
|
Momjian)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 14:33:37 +01:00
|
|
|
Add <literal>promote</> option to <application>pg_ctl</> to
|
2011-03-21 04:17:21 +01:00
|
|
|
switch a standby server to primary (Fujii Masao)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title><application>Development Tools</></title>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="libpq"><application>libpq</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Add a libpq connection option <literal>client_encoding</>
|
|
|
|
which behaves like the <envar>PGCLIENTENCODING</> environment
|
|
|
|
variable (Heikki Linnakangas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
The value <literal>auto</> sets the client encoding based on
|
|
|
|
the operating system locale.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link
|
|
|
|
linkend="libpq-pqlibversion"><function>PQlibVersion()</></link>
|
|
|
|
function which returns the libpq library version (Magnus
|
|
|
|
Hagander)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
libpq already had <function>PQserverVersion()</> which returns
|
|
|
|
the server version.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow libpq database clients to use Unix-domain sockets to
|
2011-03-20 05:27:23 +01:00
|
|
|
check the user name of the server process using <link
|
|
|
|
linkend="libpq-connect-requirepeer"><literal>requirepeer</></link>
|
2011-03-19 21:39:17 +01:00
|
|
|
(Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
<productname>PostgreSQL</> already allowed servers to determine
|
|
|
|
the client user name via Unix-domain sockets.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link linkend="libpq-pqping"><function>PQping()</></link>
|
|
|
|
and <link
|
|
|
|
linkend="libpq-pqpingparams"><function>PQpingParams()</></link>
|
|
|
|
to libpq (Bruce Momjian, Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The allow detection of the server's status without creating
|
|
|
|
a new session.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<sect4>
|
|
|
|
<title><link linkend="ecpg"><application>ECPG</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow ecpg to accept dynamic cursor names even in
|
|
|
|
<literal>WHERE CURRENT OF</literal> clauses
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Build Options</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
Add <link linkend="extension">extensions</link> which simplify
|
|
|
|
packaging of additions to <productname>PostgreSQL</> (Dimitri
|
2011-03-20 05:27:23 +01:00
|
|
|
Fontaine, Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
This is controlled by the new <link
|
|
|
|
linkend="SQL-CREATEEXTENSION"><command>CREATE</></link>/<link
|
|
|
|
linkend="SQL-ALTEREXTENSION"><command>ALTER</></link>/<link
|
|
|
|
linkend="SQL-DROPEXTENSION"><command>DROP EXTENSION </></link>
|
|
|
|
command; this replaces a more manual method of adding features
|
|
|
|
to <productname>PostgreSQL</>.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Makefiles</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Require <acronym>GNU</> <link
|
2011-03-20 05:27:23 +01:00
|
|
|
linkend="install-requirements"><application>make</></link>
|
|
|
|
3.80 or newer (Peter Eisentraut)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improved parallel make support (Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-19 22:21:49 +01:00
|
|
|
This allows for faster compiles. Also, make <option>-k</>
|
|
|
|
and make <option>-q</> now work properly. **When was recursive
|
|
|
|
make supported?
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Windows</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
On Windows, allow <link
|
|
|
|
linkend="app-pg-ctl"><application>pg_ctl</></link> to register
|
|
|
|
the service as auto-start or start-on-demand (Quan Zongliang)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add support for collecting <link linkend="windows-crash-dumps">crash
|
|
|
|
dumps</link> on Windows (Craig Ringer, Magnus Hagander)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
<productname>minidumps</> can now be generated by non-debug
|
|
|
|
Windows binaries and analyzed by standard debugging tools.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Enable building with the Mingw64 compiler (Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows building 64-bit Windows binaries even on non-Windows
|
|
|
|
platforms with cross-compiling.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Source Code</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add latches to the source code to wait for events (Heikki
|
|
|
|
Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Centralize data modification permissions-checking logic
|
|
|
|
(KaiGai Kohei)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-19 22:21:49 +01:00
|
|
|
Add missing get_{object}_oid() functions, for consistency
|
2011-03-19 21:39:17 +01:00
|
|
|
(Robert Haas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Improve ability to use C++ compilers for <link
|
|
|
|
linkend="xfunc-c">backend compiles</link> by removing
|
|
|
|
conflicting keywords (Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Add support for DragonFly <acronym>BSD</> (Rumko)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Expose <function>quote_literal_cstr()</> for backend use
|
|
|
|
(Robert Haas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Run <link linkend="build">regression tests</link> in the
|
|
|
|
default encoding (Peter Eisentraut)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Regression tests were previously always run with
|
|
|
|
<literal>SQL_ASCII</> encoding.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
Add <application>src/tools/git_changelog</> to replace
|
2011-03-20 05:27:23 +01:00
|
|
|
<application>cvs2cl</> and <application>pgcvslog</> (Robert
|
|
|
|
Haas, Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <application>git-external-diff</> script to
|
|
|
|
<filename>src/tools</> (Bruce Momjian)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is used to generate context diffs from git.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Server Hooks</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add source code hooks to check permissions (Robert Haas,
|
|
|
|
Stephen Frost)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add post-object-creation function hooks for use by security
|
|
|
|
frameworks (KaiGai Kohei)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add a client authentication hook (KaiGai Kohei)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Contrib</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Modify <filename>/contrib</> modules and stored procedure
|
|
|
|
languages to install via the new <link
|
|
|
|
linkend="extension">extension</link> mechanism (Tom Lane,
|
|
|
|
Dimitri Fontaine)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This replaces a more manual method of installation.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link linkend="file-fdw"><filename>contrib/file_fdw</></link>
|
2011-03-24 21:57:12 +01:00
|
|
|
foreign-data wrapper (Shigeru Hanada)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-24 21:57:12 +01:00
|
|
|
Foreign tables using this foreign data wrapper will read flat files
|
|
|
|
in a matter very similar to <command>COPY</>.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add nearest-neighbor support to <link
|
|
|
|
linkend="pgtrgm"><filename>contrib/pg_trgm</></link> and <link
|
|
|
|
linkend="btree-gist"><filename>contrib/btree_gist</></link>
|
|
|
|
(Teodor Sigaev)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link
|
|
|
|
linkend="btree-gist"><filename>contrib/btree_gist</></link>
|
|
|
|
support for searching on not equals (Jeff Davis)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Allow <link
|
|
|
|
linkend="fuzzystrmatch"><filename>contrib/fuzzystrmatch</></link>'s
|
|
|
|
<function>levenshtein()</> function handle multi-byte characters
|
|
|
|
(Alexander Korotkov)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <function>ssl_cipher()</> and <function>ssl_version()</>
|
|
|
|
functions to <link
|
|
|
|
linkend="sslinfo"><filename>contrib/sslinfo</></link> (Robert
|
|
|
|
Haas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Fix <link linkend="intarray"><filename>contrib/intarray</></link>
|
|
|
|
and <link linkend="hstore"><filename>contrib/hstore</></link>
|
|
|
|
to give consistent results with indexed empty arrays (Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 13:28:05 +01:00
|
|
|
Previously an empty-array query that used an index might return
|
2011-03-19 21:39:17 +01:00
|
|
|
different results from one that used a sequential scan.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <link linkend="intarray"><filename>contrib/intarray</></link>
|
|
|
|
to work properly on multi-dimensional arrays (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
In
|
|
|
|
<link linkend="intarray"><filename>contrib/intarray</></link>,
|
|
|
|
avoid errors complaining about the presence nulls in cases where no
|
|
|
|
nulls are actually present (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
In
|
|
|
|
<link linkend="intarray"><filename>contrib/intarray</></link>,
|
|
|
|
fix behavior of containment operators with respect to empty arrays
|
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Empty arrays are now correctly considered to be contained in any other
|
|
|
|
array.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
In <link linkend="xml2"><filename>contrib/xml2</></link>, remove
|
|
|
|
arbitrary limit on the number of parameter=value pairs that
|
|
|
|
can be handled by <function>xslt_process()</> (Pavel Stehule)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The previous limit was 20.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-24 21:57:12 +01:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
In <link linkend="pageinspect"><filename>contrib/pageinspect</></link>,
|
|
|
|
fix heap_page_item to return infomasks as 32-bit values (Alvaro Herrera)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This avoids returning negative values, which was confusing. The
|
|
|
|
underlying value is a 16-bit unsigned integer.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2011-03-19 21:39:17 +01:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Security</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link linkend="sepgsql"><filename>contrib/sepgsql</></link>
|
2011-03-21 04:17:21 +01:00
|
|
|
to interface permission checks with <acronym>SE</>-Linux (KaiGai Kohei)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
This uses the new <link
|
|
|
|
linkend="SQL-SECURITY-LABEL"><command>SECURITY LABEL</></link>
|
|
|
|
facility.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add contrib module <link
|
|
|
|
linkend="auth-delay"><filename>auth_delay</></link> (KaiGai
|
|
|
|
Kohei)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This causes the server to pause before returning authentication
|
|
|
|
failure; it is designed to make brute force password attacks
|
|
|
|
more difficult.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link linkend="dummy-seclabel">dummy_seclabel</link>
|
|
|
|
contrib module (KaiGai Kohei)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is used for permission regression testing.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Performance</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add support for <literal>LIKE</> and <literal>ILIKE</> index
|
|
|
|
searches to <link
|
|
|
|
linkend="pgtrgm"><filename>contrib/pg_trgm</></link> (Alexander
|
|
|
|
Korotkov)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <function>levenshtein_less_equal()</> function to <link
|
|
|
|
linkend="fuzzystrmatch"><filename>contrib/fuzzystrmatch</></link>,
|
|
|
|
which is optimized for small distances (Alexander Korotkov)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Improve performance of index lookups on <link
|
|
|
|
linkend="seg"><filename>contrib/seg</></link> columns (Alexander
|
|
|
|
Korotkov)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-19 22:21:49 +01:00
|
|
|
**Confirm this does not affect <application>pg_upgrade</>
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Improve performance of <link
|
|
|
|
linkend="pgupgrade"><application>pg_upgrade</></link> for
|
|
|
|
databases with many relations (Bruce Momjian)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add flag to <link
|
|
|
|
linkend="pgbench"><filename>contrib/pgbench</></link> to
|
|
|
|
report per-statement latencies (Florian Pflug)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Fsync Testing</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Move <filename>src/tools/test_fsync</> to <link
|
|
|
|
linkend="pgtestfsync"><filename>contrib/pg_test_fsync</></link>
|
|
|
|
(Bruce Momjian, Tom Lane)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <literal>O_DIRECT</> support to <link
|
|
|
|
linkend="pgtestfsync"><filename>contrib/pg_test_fsync</></link>
|
|
|
|
(Bruce Momjian)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
This matches the use of <literal>O_DIRECT</> by <link
|
|
|
|
linkend="guc-wal-sync-method"><varname>wal_sync_method</></link>.
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add new tests to <link
|
|
|
|
linkend="pgtestfsync"><filename>contrib/pg_test_fsync</></link>
|
|
|
|
(Bruce Momjian)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Documentation</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-21 04:17:21 +01:00
|
|
|
Extensive <link linkend="ecpg"><application>ECPG</> documentation</link>
|
2011-03-20 05:27:23 +01:00
|
|
|
improvements (Satoshi Nagayasu)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add documentation for <link
|
|
|
|
linkend="guc-exit-on-error"><varname>exit_on_error</></link>
|
|
|
|
(Robert Haas)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This parameter causes sessions to exit on any error.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 04:58:53 +01:00
|
|
|
Add documentation for <link
|
2011-03-20 05:27:23 +01:00
|
|
|
linkend="functions-info-catalog-table"><function>pg_options_to_table()</></link>
|
|
|
|
(Josh Berkus)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This parameter shows table storage options.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Document that it is possible to access all composite fields
|
2011-03-20 05:27:23 +01:00
|
|
|
using <link linkend="field-selection"><literal>(compositeval).*
|
|
|
|
syntax</></link> (Peter Eisentraut)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
**Is this syntax new in 9.1?
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Document that <link
|
|
|
|
linkend="functions-string-other"><function>translate()</></link>
|
|
|
|
removes characters in <literal>from</> that don't have a
|
|
|
|
corresponding <literal>to</> character (Josh Kupershmidt)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Merge docs for <command>CREATE CONSTRAINT TRIGGER</> and <link
|
|
|
|
linkend="SQL-CREATETRIGGER"><command>CREATE TRIGGER</></link>
|
|
|
|
(Alvaro Herrera)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Centralize <link linkend="ddl-priv">permission</link> and <link
|
|
|
|
linkend="upgrading">upgrade</link> documentation (Bruce Momjian)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2011-03-20 05:27:23 +01:00
|
|
|
Add <link linkend="sysvipc-parameters">kernel tuning
|
|
|
|
documentation</link> for Solaris 10 (Josh Berkus)
|
2011-03-19 21:39:17 +01:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously only Solaris 9 kernel tuning was documented.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|