<simpara>2011-??-??</simpara>
</note>
- <para>CURRENT AS OF 2011-07-07</para>
+ <para>CURRENT AS OF 2011-08-17</para>
<sect2>
<title>Overview</title>
<para>
This release shows <productname>PostgreSQL</> moving beyond the
- traditional relational feature set with new, ground-breaking
+ traditional relational-database feature set with new, ground-breaking
functionality that is unique to <productname>PostgreSQL</>.
- Additionally, this release improves streaming replication by adding
- a synchronous option and monitoring improvements. Major enhancements
- include:
+ The streaming replication feature introduced in release 9.0 is
+ significantly enhanced by adding a synchronous-replication option,
+ streaming backups, and monitoring improvements.
+ Major enhancements include:
</para>
<itemizedlist>
<!-- This list duplicates items below, but without authors or details-->
- <listitem>
- <para>
- Support unlogged tables using the <link
- linkend="SQL-CREATETABLE-description"><literal>UNLOGGED</></link>
- option in <link linkend="SQL-CREATETABLE"><command>CREATE
- TABLE</></link>
- </para>
- </listitem>
-
<listitem>
<para>
Allow <link linkend="synchronous-replication">synchronous
<listitem>
<para>
- Add a <link linkend="SQL-SECURITY-LABEL"><command>SECURITY
- LABEL</></link> command
+ Add <link linkend="extend-extensions">extensions</link> which
+ simplify packaging of additions to <productname>PostgreSQL</>
</para>
</listitem>
<listitem>
<para>
Add a true <link
- linkend="xact-serializable">serializable</link> isolation
- level
+ linkend="xact-serializable">serializable isolation level</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support unlogged tables using the <literal>UNLOGGED</>
+ option in <link linkend="SQL-CREATETABLE"><command>CREATE
+ TABLE</></link>
</para>
</listitem>
<listitem>
<para>
- Add <link linkend="extend-extensions">extensions</link> which
- simplify packaging of additions to <productname>PostgreSQL</>
+ Add a <link linkend="SQL-SECURITY-LABEL"><command>SECURITY
+ LABEL</></link> command and support for
+ <link linkend="sepgsql"><acronym>SELinux</> permissions control</link>
</para>
</listitem>
strings are the proper way to embed backslash escapes in strings and are
unaffected by this change.
</para>
+
+ <warning>
+ <para>
+ This change can break applications that are not expecting it and
+ do their own string escaping according to the old rules. The
+ consequences could be as severe as introducing SQL-injection security
+ holes. Be sure to test applications that are exposed to untrusted
+ input, to ensure that they correctly handle single quotes and
+ backslashes in text strings.
+ </para>
+ </warning>
</listitem>
</itemizedlist>
<listitem>
<para>
- Treat <application>ECPG</> cursor names as case-insensitive (Zoltan Boszormenyi)
+ Treat <application>ECPG</> cursor names as case-insensitive
+ (Zoltan Boszormenyi)
</para>
</listitem>
<sect2>
<title>Changes</title>
- <para>
- Version 9.1 has ...
- </para>
+
+ <para>
+ Below you will find a detailed account of the changes between
+ <productname>PostgreSQL</productname> 9.1 and the previous major
+ release.
+ </para>
<sect3>
<title>Server</title>
<listitem>
<para>
- Support unlogged tables using the <link
- linkend="SQL-CREATETABLE-description"><literal>UNLOGGED</></link>
+ Support unlogged tables using the <literal>UNLOGGED</>
option in <link linkend="SQL-CREATETABLE"><command>CREATE
TABLE</></link> (Robert Haas)
</para>
<listitem>
<para>
- Merge duplicate fsync requests on busy systems (Robert Haas,
- Greg Smith)
+ Merge duplicate fsync requests (Robert Haas, Greg Smith)
+ </para>
+
+ <para>
+ This greatly improves performance under heavy write loads.
</para>
</listitem>
</para>
<para>
- The old term is still accepted for backward compatibility.
+ The old term is still accepted for backward compatibility, but since
+ the two methods are fundamentally different, it seemed better to adopt
+ different names for them.
</para>
</listitem>
</para>
</listitem>
+ <listitem>
+ <para>
+ Reduce the default maximum line length for <application>syslog</>
+ logging to 900 bytes plus prefixes (Noah Misch)
+ </para>
+
+ <para>
+ This avoids truncation of long log lines on syslog implementations
+ that have a 1KB length limit, rather than the more common 2KB.
+ </para>
+ </listitem>
+
</itemizedlist>
</sect4>
</para>
<para>
- This allows external cluster management software to take control
- of whether servers restart or not.
+ This allows external cluster management software to control
+ whether the database server restarts or not.
</para>
</listitem>
<listitem>
<para>
Add a true <link
- linkend="xact-serializable">serializable</link> isolation
- level (Kevin Grittner, Dan Ports)
+ linkend="xact-serializable">serializable isolation level</link>
+ (Kevin Grittner, Dan Ports)
</para>
<para>
<listitem>
<para>
Prevent <link linkend="autovacuum">autovacuum</link> from
- waiting if it cannot acquire a lock (Robert Haas)
+ waiting if it cannot acquire a table lock (Robert Haas)
</para>
<para>
- It will try to vacuum later.
+ It will try to vacuum that table later.
</para>
</listitem>
<para>
This allows <acronym>GiST</> indexes to quickly return the
<replaceable>N</> closest values in a query with <literal>LIMIT</>.
+ For example
+<programlisting><![CDATA[
+SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;
+]]>
+</programlisting>
+ finds the ten places closest to a given target point.
</para>
</listitem>
<listitem>
<para>
Add <link linkend="plpgsql-foreach-array"><command>FOREACH IN
- ARRAY</></link> to <link linkend="plpgsql">PL/pgSQL</link>
+ ARRAY</></link> to PL/pgSQL
(Pavel Stehule)
</para>
<listitem>
<para>
- Add PL/Python explicit subtransactions (Jan Urbanski)
+ Add explicit subtransactions to PL/Python (Jan Urbanski)
</para>
</listitem>
<listitem>
<para>
- Add <option>S</> (<quote>system</>) option to <application>psql</>'s
+ Add the <option>S</> (<quote>system</>) option to <application>psql</>'s
<literal>\dn</> (list schemas) command (Tom Lane)
</para>
<listitem>
<para>
- Add a libpq connection option <literal>client_encoding</>
+ Add a libpq connection option <link
+ linkend="libpq-connect-client-encoding"><literal>client_encoding</></link>
which behaves like the <envar>PGCLIENTENCODING</> environment
variable (Heikki Linnakangas)
</para>
<listitem>
<para>
- Allow libpq database clients to
- check the user name of the server process using <link
+ Allow libpq-using clients to
+ check the user name of the server process
+ when connecting via Unix-domain sockets, with the new <link
linkend="libpq-connect-requirepeer"><literal>requirepeer</></link>
- when connecting via Unix-domain sockets
+ connection option
(Peter Eisentraut)
</para>
<listitem>
<para>
- Allow ECPG to accept dynamic cursor names even in
- <literal>WHERE CURRENT OF</literal> clauses
+ Allow ECPG to accept dynamic cursor names even in
+ <literal>WHERE CURRENT OF</literal> clauses
+ (Zoltan Boszormenyi)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <application>ecpglib</> write <type>double</> values with a
+ precision of 15 digits, not 14 as formerly (Akira Kurosawa)
</para>
</listitem>
<listitem>
<para>
- Add latches to the source code to wait for events (Heikki
- Linnakangas)
+ Add latches to the source code to support waiting for events (Heikki
+ Linnakangas)
</para>
</listitem>
<listitem>
<para>
- Add nearest-neighbor support to <link
+ Add nearest-neighbor search support to <link
linkend="pgtrgm"><filename>contrib/pg_trgm</></link> and <link
linkend="btree-gist"><filename>contrib/btree_gist</></link>
(Teodor Sigaev)
<listitem>
<para>
Add <link linkend="sepgsql"><filename>contrib/sepgsql</></link>
- to interface permission checks with <acronym>SE</>-Linux (KaiGai Kohei)
+ to interface permission checks with <acronym>SELinux</> (KaiGai Kohei)
</para>
<para>
<listitem>
<para>
- Add <link linkend="dummy-seclabel">dummy_seclabel</link>
+ Add <link linkend="dummy-seclabel"><filename>dummy_seclabel</></link>
contrib module (KaiGai Kohei)
</para>
<listitem>
<para>
- Extensive <link linkend="ecpg"><application>ECPG</> documentation</link>
- improvements (Satoshi Nagayasu)
+ Extensive <link linkend="ecpg"><application>ECPG</></link>
+ documentation improvements (Satoshi Nagayasu)
</para>
</listitem>
<listitem>
<para>
- Merge docs for <command>CREATE CONSTRAINT TRIGGER</> and <link
+ Merge documentation for <command>CREATE CONSTRAINT TRIGGER</> and <link
linkend="SQL-CREATETRIGGER"><command>CREATE TRIGGER</></link>
(Alvaro Herrera)
</para>