aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/src/sgml/release-9.1.sgml2215
1 files changed, 2205 insertions, 10 deletions
diff --git a/doc/src/sgml/release-9.1.sgml b/doc/src/sgml/release-9.1.sgml
index 9f14a46f7cf..a17157bce9a 100644
--- a/doc/src/sgml/release-9.1.sgml
+++ b/doc/src/sgml/release-9.1.sgml
@@ -1,20 +1,2214 @@
<!-- doc/src/sgml/release-9.1.sgml -->
+ <sect1 id="release-9-1">
+ <title>Release 9.1</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2011-??-??</simpara>
+ </note>
+
+ <sect2>
+ <title>Overview</title>
+
+ <para>
+ This release of
+ <productname>PostgreSQL</> adds ... Major enhancements include:
+ </para>
+
+ <!-- This list duplicates items below, but without authors or details-->
+
+ <para>
+ The above items are explained in more detail in the sections below.
+ </para>
+
+ </sect2>
+
+ <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>
+ Version 9.1 contains a number of changes that ...
+ Observe the following incompatibilities:
+ </para>
+
+ <sect3>
+ <title>Server Settings</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Change pg_last_xlog_receive_location() so it never moves
+ backwards (Fujii Masao)
+ </para>
+
+ <para>
+ Previously pg_last_xlog_receive_location() could move backward
+ when streaming replication is restarted.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Have logging of replication connections honor log_connections
+ (Magnus Hagander)
+ </para>
+
+ <para>
+ Previously replication connections were always logged.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>Strings</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Change the default value of standard_conforming_strings to on
+ (Robert Haas)
+ </para>
+
+ <para>
+ This removes a long-standing incompatibility with the SQL
+ standard; escape_string_warning has produced warnings about
+ this usage for years. E'' strings the proper way to embed
+ escapes in strings and is unaffected by this change.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>Casting</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Disallow functional or attribute string data type casts for
+ composite types (Tom Lane)
+ </para>
+
+ <para>
+ For example, disallow composite_name.text and text(composite_name).
+ CAST and '::' are still available for casting.
+ </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>
+ Change string_to_array to return an empty array for for a
+ zero-length string (Pavel Stehule)
+ </para>
+
+ <para>
+ Previously this returned NULL.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Change string_to_array so a NULL separator splits the string
+ into characters (Pavel Stehule)
+ </para>
+
+ <para>
+ Previously this returned NULL.
+ </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>
+ Require superuser or CREATEROLE permissions to set role
+ comments (Tom Lane)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>PL/pgSQL</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Change PL/pgSQL's RAISE command without parameters to be
+ catchable by the attached exception block (Piyush Newe)
+ </para>
+
+ <para>
+ Previously RAISE in a code block always scoped to an attached
+ exception block, so it was uncatchable at the same scope.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Adjust PL/pgsql's error line reporting code to be consistent
+ 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>
+ Have pg_stat_reset() reset all database-level statistics (Tom
+ Lane)
+ </para>
+
+ <para>
+ Some counters were not being reset.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix some information_schema.triggers column names to match
+ the new SQL-standard names (Dean Rasheed)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Treat ecpg cursor names as case-insensitive (Zoltan Boszormenyi)
+ </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>Continuous Archiving and Streaming Replication</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add a synchronous replication option (Simon Riggs, Fujii Masao)
+ </para>
+
+ <para>
+ This allows the primary to wait for the standby to receive
+ transaction information before acknowledging the commit.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add variable hot_standby_feedback to enable standbys to
+ communicate their needed snapshots to the primary (Simon Riggs)
+ </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 pg_basebackup for creating a new standby
+ server or database backup (Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add new "replication" permission for roles (Magnus Hagander)
+ </para>
+
+ <para>
+ This is a read-only permission used for streaming replication
+ and allows non-super users to initiate replication connections.
+ Previously only super-users could initiate replication
+ connections; super-users have this permission by default.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <sect5>
+ <title>Monitoring</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add system view pg_stat_replication which displays activity
+ of WAL sender processes (Itagaki Takahiro, Simon Riggs)
+ </para>
+
+ <para>
+ This reports that status of all connected standby servers.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add monitoring function pg_last_xact_replay_timestamp (Fujii
+ Masao)
+ </para>
+
+ <para>
+ This returns the time on the primary that generated the most
+ recently commit or abort record applied on the standby.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect5>
+
+ <sect5>
+ <title>Recovery Control</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add functions to control streaming replication replay (Simon
+ Riggs)
+ </para>
+
+ <para>
+ The new functions are pg_xlog_replay_pause(),
+ pg_xlog_replay_resume(), and the status function
+ pg_is_xlog_replay_paused().
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add named restore points for recovery which can be specified
+ in recovery.conf (Jaime Casanova)
+ </para>
+
+ <para>
+ The function pg_create_restore_point() allows recovery targets
+ to be named for later designation during recovery.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add recovery.conf setting pause_at_recovery_target 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 recovery.conf to use the same quoting behavior as
+ postgresql.conf (Dimitri Fontaine)
+ </para>
+
+ <para>
+ Previously all values had to be quoted.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect5>
+
+ </sect4>
+
+ <sect4>
+ <title>Performance</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Allow unlogged tables (Robert Haas)
+ </para>
+
+ <para>
+ These tables are optimized for performance but are cleared in
+ case of a server crash.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support RIGHT and FULL OUTER JOIN in hash joins (Tom Lane)
+ </para>
+
+ <para>
+ Previously hash joins could not be considered for outer joins;
+ this provides additional query optimization possibilities.
+ **What about LEFT joins?
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Merge duplicate fsync requests on busy systems (Robert Haas,
+ Greg Smith)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve performance of commit_siblings (Greg Smith)
+ </para>
+
+ <para>
+ This allows the use of commit_siblings with fewer delays.
+ </para>
+ </listitem>
+
+ </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>
+ This allows optimization of ORDER BY and LIMIT clauses in
+ inheritance table queries.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow optimizations of MIN/MAX for inheritance table queries
+ (Tom Lane)
+ </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
+ pg_hba.conf (Peter Eisentraut)
+ </para>
+
+ <para>
+ Previously only host IP addresses and CIDR values were supported.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support they keyword 'all' in the host column of pg_hba.conf
+ (Peter Eisentraut)
+ </para>
+
+ <para>
+ Previously people used '0.0.0.0/0' or '::/0' for this.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow GSSAPI to be used to authenticate to servers via SSPI
+ (Christian Ullrich)
+ </para>
+
+ <para>
+ Specifically this allows Unix-based GSSAPI clients to authenticate
+ to Windows SSPI servers.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Monitoring</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add details to the logging of restart points and checkpoints,
+ which is controlled by log_checkpoints (Fujii Masao, Greg
+ Smith)
+ </para>
+
+ <para>
+ New details show WAL file and sync activity.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add log_file_mode which controls the permissions on log files
+ created by the logging_collector (Martin Pihlak)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Statistical Views</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add client_hostname field to pg_stat_activity (Peter Eisentraut)
+ </para>
+
+ <para>
+ Previously only the client address was reported.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add pg_stat_xact_* statistic functions and views (Joel Jacobson)
+ </para>
+
+ <para>
+ This are like the database-wide statistics counter views but
+ reflect counts for only the current transaction.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add the pg_stat_database_conflicts system view to show queries
+ that have been canceled and the reason (Magnus Hagander)
+ </para>
+
+ <para>
+ Cancelations can occur because of dropped tablespaces, lock
+ timeouts, old snapshots, pinned buffers, and deadlocks.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add a "conflicts" count to pg_stat_database (Magnus Hagander)
+ </para>
+
+ <para>
+ This is the number of conflicts that occurred in the database.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add record of last reset for database and background writer-level
+ statistics (Tomas Vondra)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add columns showing the number of vacuum and analyze operations
+ in pg_stat_*_tables views (Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add new buffers_backend_fsync field to pg_stat_bgwriter (Greg
+ Smith)
+ </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>
+ Allow auto-tuning of wal_buffers (Greg Smith)
+ </para>
+
+ <para>
+ wal_buffers is now auto-tuned by default based on the size of
+ shared_buffers.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add restart_after_crash which disables server restart after
+ a backend crash (Robert Haas)
+ </para>
+
+ <para>
+ This is designed for cluster managers that want to control
+ restarts.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ </sect3>
+
+ <sect3>
+ <title>Queries</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Allow data-modification commands (INSERT/UPDATE/DELETE) in
+ WITH clauses (Marko Tiikkaja, Hitoshi Harada)
+ </para>
+
+ <para>
+ This allows INSERT/UPDATE/DELETE RETURNING in WITH clauses to
+ pass rows to outer queries.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow WITH clauses to be fed into INSERT, UPDATE, DELETE
+ statements (Marko Tiikkaja, Hitoshi Harada)
+ </para>
+
+ <para>
+ Specifically, let SELECT query results be feed into INSERT,
+ UPDATE, DELETE statements.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow non-GROUP BY columns in the query target list when the
+ primary key is specified in the GROUP BY clause (Peter
+ Eisentraut)
+ </para>
+
+ <para>
+ Some other database system already allowed this behavior, and
+ because of the primary key, the result is unambiguous..
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow the use of the keyword DISTINCT in UNION/INTERSECT/EXCEPT
+ clauses (Tom Lane)
+ </para>
+
+ <para>
+ DISTINCT is the default behavior so use of this keyword is
+ redundant.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <sect4>
+ <title>Strings</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add per-column collation support (Peter Eisentraut, Tom Lane)
+ </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>
+ Add support for foreign tables (Shigeru Hanada, Robert Haas,
+ Jan Urbanski, Heikki Linnakangas)
+ </para>
+
+ <para>
+ This allows data stored in foreign sources to be used like
+ native Postgres-stored data.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTE (Peter
+ Eisentraut)
+ </para>
+
+ <para>
+ This allows modification of composite types.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <sect4>
+ <title><command>ALTER Object</></title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add RESTRICT/CASCADE to ALTER TYPE operations on typed tables
+ (Peter Eisentraut)
+ </para>
+
+ <para>
+ This controls ADD/DROP/ALTER/RENAME ATTRIBUTE cascading
+ behavior.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add support for more object types in ALTER object ... SET SCHEMA commands (Dimitri Fontaine)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title><link linkend="SQL-CREATETABLE"><command>CREATE TABLE</></link></title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add CREATE TABLE IF NOT EXISTS syntax (Robert Haas)
+ </para>
+
+ <para>
+ This allows table creation without causing an error if the
+ table already exists.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add ALTER TABLE ADD UNIQUE/PRIMARY KEY USING INDEX (Gurjeet
+ Singh)
+ </para>
+
+ <para>
+ This allows existing unique indexes to be used as primary
+ keys, including indexes that were created concurrently.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow ALTER TABLE to add foreign keys without validation (Simon
+ Riggs)
+ </para>
+
+ <para>
+ The new option is called NOT VALID, which can later be modified
+ to VALIDATED and validation checks performed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow ALTER TABLE .. SET DATA TYPE to avoid table rewrites in
+ appropriate cases (Noah Misch, Robert Haas)
+ </para>
+
+ <para>
+ For example, converting a varchar column to text no longer
+ requires a rewrite of the table. **Length changes require
+ rewrite?
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Object Permissions</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add a SECURITY LABEL command (KaiGai Kohei)
+ </para>
+
+ <para>
+ This allows security labels to be assigned to objects.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ </sect3>
+
+ <sect3>
+ <title>Utility Operations</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add true a serializable isolation level (Kevin Grittner, Dan
+ Ports)
+ </para>
+
+ <para>
+ Previously asking for serializable isolation level produced
+ snapshot isolation, which had certain documented anomalies.
+ The old snapshot isolation is still accessible by the requesting
+ repeatable read isolation level.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add transaction-level advisory locks (Marko Tiikkaja)
+ </para>
+
+ <para>
+ This is similar to the existing session-level advisory locks,
+ but are freed at transaction end.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make TRUNCATE ... RESTART IDENTITY restart sequences transactionally
+ (Steve Singer)
+ </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>
+ Add ENCODING option to COPY TO/FROM (Hitoshi Harada, Itagaki
+ Takahiro)
+ </para>
+
+ <para>
+ This allows the COPY file encoding to be specified separately
+ from client encoding.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add bidirectional COPY protocol support (Fujii Masao)
+ </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>
+ Have EXPLAIN show the function call expression in VERBOSE
+ mode (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix EXPLAIN ANALYZE with rules to use the same snapshot behavior
+ as ordinary queries (Marko Tiikkaja)
+ </para>
+
+ <para>
+ Previously EXPLAIN ANALYZE used a slightly different snapshot
+ for queries involving rules.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title><link linkend="SQL-VACUUM"><command>VACUUM</></link></title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add additional details to the output of VACUUM FULL VERBOSE
+ and CLUSTER VERBOSE (Itagaki Takahiro)
+ </para>
+
+ <para>
+ New information includes the live/dead tuple count and whether
+ CLUSTER is using an index to rebuild.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Prevent autovacuum from waiting if it cannot acquire a lock
+ (Robert Haas)
+ </para>
+
+ <para>
+ It will try to vacuum later.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Indexes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add nearest-neighbor (order-by-operator) searching to GIST
+ indexes (Teodor Sigaev, Tom Lane)
+ </para>
+
+ <para>
+ This allows GIST indexes to quickly return LIMIT-specified
+ closest values.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow GIN indexes to index null and empty values (Tom Lane)
+ </para>
+
+ <para>
+ This allows full GIN index scans.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix GiST indexes to be fully crash-safe (Heikki Linnakangas)
+ </para>
+
+ <para>
+ Previously there were rare cases where a REINDEX would be
+ required (you would be informed).
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ </sect3>
+
+ <sect3>
+ <title>Data Types</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Allow numeric to use a more compact, 2-byte header in many
+ cases (Robert Haas)
+ </para>
+
+ <para>
+ Previously all numeric values had 4-byte headers; this saves
+ on disk storage.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow new values to be added to an existing enum type (Andrew
+ Dunstan)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add support for dividing money by money (Andy Balholm)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <sect4>
+ <title>Casting</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add support for casting between money and numeric (Andy Balholm)
+ </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>
+ **Needs description.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title><link linkend="functions-xml">XML</link></title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add XML function XMLEXISTS and xpath_exists() functions (Mike
+ Fowler)
+ </para>
+
+ <para>
+ This is used for xpath matching.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add XML functions xml_is_well_formed, xml_is_well_formed_document,
+ xml_is_well_formed_content (Mike Fowler)
+ </para>
+
+ <para>
+ These check whether the input is properly-formed XML.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ </sect3>
+
+ <sect3>
+ <title>Functions</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add new SQL function, format(text), which behaves like C's
+ printf() (Pavel Stehule, Robert Haas)
+ </para>
+
+ <para>
+ It currently supports formats for strings, SQL literals, and
+ SQL identifiers.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add string functions: concat(), concat_ws(), left(), right(),
+ and reverse() (Pavel Stehule)
+ </para>
+
+ <para>
+ **Why were these added?
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add function pg_read_binary_file() to read binary files
+ (Dimitri Fontaine, Itagaki Takahiro)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add single-parameter version of function pg_read_file() to
+ read an entire file (Dimitri Fontaine, Itagaki Takahiro)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add three-parameter forms of array_to_string and string_to_array
+ for NULL processing control (Pavel Stehule)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <sect4>
+ <title>Object Information Functions</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add pg_describe_object function (Alvaro Herrera)
+ </para>
+
+ <para>
+ This function is used to obtain comments on objects. **Alvaro,
+ why is this useful for pg_depend?
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update comments for built-in operators and their underlying
+ functions (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add variable quote_all_identifiers to force the quoting of
+ all identifiers in EXPLAIN and system catalog functions like
+ pg_get_viewdef() (Robert Haas)
+ </para>
+
+ <para>
+ This makes exporting schemas to tools and other databases with
+ different quoting rules easier.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add fields to the information_schema.sequences system view
+ (Peter Eisentraut)
+ </para>
+
+ <para>
+ Previously, though the view existed, all of these view fields
+ were unimplemented.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow 'public' as a pseudo-role name in has_table_privilege()
+ and and related functions (Alvaro Herrera)
+ </para>
+
+ <para>
+ This allows checking for public permissions.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add ERRCODE_T_R_DATABASE_DROPPED error code to report recovery
+ conflicts due to dropped databases (Tatsuo Ishii)
+ </para>
+
+ <para>
+ This is useful for connection pooling software.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Function and Trigger Creation</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Allow INSTEAD OF triggers on views (Dean Rasheed)
+ </para>
+
+ <para>
+ This feature can be used to implement updatable views.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Reduce lock levels for CREATE TRIGGER and some ALTER TABLE,
+ CREATE RULE actions (Simon Riggs)
+ </para>
+
+ <para>
+ This improves concurrency.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ </sect3>
+
+ <sect3>
+ <title>Server-Side Languages</title>
+
+ <sect4>
+ <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add FOREACH IN ARRAY to plpgsql to allow array interation
+ (Pavel Stehule)
+ </para>
+
+ <para>
+ This is more efficient than previous methods.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title><link linkend="plperl">PL/Perl</link> Server-Side Language</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Allow generic record arguments to plperl functions (Andrew
+ 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>
+ PL/Python now can return multiple OUT parameters and record
+ sets.
+ </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>
+ Allow PL/Python to access SQLSTATE exception values (Jan
+ Urbanski)
+ </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>
+ The functions are plpy.quote_ident, plpy.quote_literal, and
+ plpy.quote_nullable.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Report PL/Python errors from iterators with PLy_elog (Jan
+ Urbanski)
+ </para>
+ </listitem>
+
+ <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>
+ Mark createlang/droplang as deprecated now that they use the
+ extension framework (Tom Lane)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <sect4>
+ <title><link linkend="APP-PSQL"><application>psql</></link></title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add the \conninfo command to psql, to show current connection
+ information (David Christensen)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow psql's \e and \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 EDITOR_LINENUMBER_SWITCH
+ environment variable.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add psql command \sf command to show a function's definition
+ (Pavel Stehule)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add system table ("S") option to psql \dn (schemas) (Tom Lane)
+ </para>
+
+ <para>
+ \dn without "S" now suppresses system schemas.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add new psql \dL command \dL to list languages (Fernando Ike)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Have psql set the client encoding from the operating system
+ locale by default (Heikki Linnakangas)
+ </para>
+
+ <para>
+ This only happens if the PGCLIENTENCODING environment variable
+ is not set.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow tab completion of psql variables (Pavel Stehule)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ More psql tab completion support (Itagaki Takahiro)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add pg_dump and pg_dumpall option --quote-all-identifiers to
+ force quoting of all identifiers (Robert Haas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add 'directory' format to pg_dump (Joachim Wieland, Heikki
+ Linnakangas)
+ </para>
+
+ <para>
+ This is internally similar to the 'tar' pg_dump format.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title><link linkend="APP-PG-CTL"><application>pg_ctl</></link></title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix pg_ctl so it no longer incorrectly reports that the server
+ is not running (Bruce Momjian)
+ </para>
+
+ <para>
+ Previously this could happen if the server was running but
+ pg_ctl could not authenticate.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve pg_ctl start's "wait" mode to handle non-standard port
+ numbers, non-standard unix-domain socket locations, permission
+ problems, and stale postmaster lock files (Bruce Momjian)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add 'promote' option to pg_ctl to change a standby server to
+ primary (Fujii Masao)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ </sect3>
+
+ <sect3>
+ <title><application>Development Tools</></title>
+
+ <sect4>
+ <title><link linkend="libpq"><application>libpq</></link></title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add a libpq connection option client_encoding which behaves
+ like the PGCLIENTENCODING environment variable (Heikki
+ Linnakangas)
+ </para>
+
+ <para>
+ The value 'auto' sets the client encoding based on the operating
+ system locale.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add PQlibVersion() function which returns the libpq library
+ version (Magnus Hagander)
+ </para>
+
+ <para>
+ libpq already had PQserverVersion() which returns the server
+ version.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow libpq database clients to use Unix-domain sockets to
+ check the user name of the server process using requirepeer
+ (Peter Eisentraut)
+ </para>
+
+ <para>
+ PostgreSQL already allowed servers to determine the client
+ user name via Unix-domain sockets.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add PQping and PQpingParams to libpq (Bruce Momjian, Tom Lane)
+ </para>
+
+ <para>
+ The allow detection of the server's status without creating
+ a new session.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ </sect3>
+
+ <sect3>
+ <title>Build Options</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add extensions which allow packaged additions to Postgres
+ (Dimitri Fontaine, Tom Lane)
+ </para>
+
+ <para>
+ This is controlled by the new CREATE/ALTER/DROP EXTENSION
+ command; this replaces a more manual method of adding features
+ to PostgreSQL.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <sect4>
+ <title>Makefiles</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Require GNU make 3.80 or newer (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improved parallel make support (Peter Eisentraut)
+ </para>
+
+ <para>
+ This allows for faster compiles. Also, make -k and make -q
+ now work properly. **When was recursive make supported?
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Windows</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ On Windows, allow pg_ctl to register the service as auto-start
+ or start-on-demand (Quan Zongliang)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add support for collecting crash dumps on Windows (Craig
+ Ringer, Magnus Hagander)
+ </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>
+ Centralize DML permissions-checking logic (KaiGai Kohei)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add missing get_{object}_oid functions, for consistency
+ (Robert Haas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve ability to use C++ compilers for backend compiles by
+ removing conflicting keywords (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add support for DragonFly BSD (Rumko)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Expose quote_literal_cstr() for backend use (Robert Haas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Run regression tests in the default encoding (Peter Eisentraut)
+ </para>
+
+ <para>
+ Regression tests were previously always run with SQL_ASCII
+ encoding.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add src/tools/git_changelog to replace cvs2cl and pgcvslog
+ (Robert Haas, Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add git-external-diff script to src/tools (Bruce Momjian)
+ </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>
+ Modify /contrib modules and stored procedure languages to
+ install via the new extension mechanism (Tom Lane, Dimitri
+ Fontaine)
+ </para>
+
+ <para>
+ This replaces a more manual method of installation.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add contrib/file_fdw foreign-data wrapper for reading files
+ via COPY (Shigeru Hanada)
+ </para>
+
+ <para>
+ This adds foreign table support for flat-file.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add nearest-neighbor support to contrib/pg_trgm and
+ contrib/btree_gist (Teodor Sigaev)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add contrib/btree_gist support for searching on "not equals"
+ (Jeff Davis)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow contrib/fuzzystrmatch's levenshtein() function handle
+ multi-byte characters (Alexander Korotkov)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add ssl_cipher() and ssl_version() functions to contrib/sslinfo
+ (Robert Haas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix contrib/intarray and contrib/hstore to give consistent
+ results with indexed empty arrays (Tom Lane)
+ </para>
+
+ <para>
+ Previously a empty-array query that used an index might return
+ different results from one that used a sequential scan.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In contrib/xml2, remove arbitrary limit on the number of
+ parameter=value pairs that can be handled by xslt_process()
+ (Pavel Stehule)
+ </para>
+
+ <para>
+ The previous limit was 20.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <sect4>
+ <title>Security</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add contrib/sepgsql to interface permission checks with SE-Linux
+ (KaiGai Kohei)
+ </para>
+
+ <para>
+ This uses the new SECURITY LABEL facility.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ New contrib module, auth_delay (KaiGai Kohei)
+ </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>
+ Add dummy_seclabel contrib module (KaiGai Kohei)
+ </para>
+
+ <para>
+ This is used for permission regression testing.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Performance</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add support for LIKE and ILIKE index searches to contrib/pg_trgm
+ (Alexander Korotkov)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add levenshtein_less_equal function, which is optimized for
+ small distances (Alexander Korotkov)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve performance of index lookups on contrib/seg columns
+ (Alexander Korotkov)
+ </para>
+
+ <para>
+ **Confirm this does not affect pg_upgrade
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve performance of pg_upgrade for databases with many
+ relations (Bruce Momjian)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add flag to pgbench to report per-statement latencies (Florian
+ Pflug)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Fsync Testing</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Move src/tools/test_fsync to contrib/pg_test_fsync (Bruce
+ Momjian, Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add O_DIRECT support to contrib/pg_test_fsync (Bruce Momjian)
+ </para>
+
+ <para>
+ This matches the use of O_DIRECT by wal_sync_method.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add new tests to contrib/pg_test_fsync (Bruce Momjian)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ </sect3>
+
+ <sect3>
+ <title>Documentation</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Extensive ECPG documentation improvements (Satoshi Nagayasu)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add documentation for exit_on_error (Robert Haas)
+ </para>
+
+ <para>
+ This parameter causes sessions to exit on any error.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add documentation for pg_options_to_table() (Josh Berkus)
+ </para>
+
+ <para>
+ This parameter shows table storage options.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Document that it is possible to access all composite fields
+ using (compositeval).* syntax (Peter Eisentraut)
+ </para>
+
+ <para>
+ **Is this syntax new in 9.1?
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Document that translate() removes characters in "from" that
+ don't have a corresponding "to" character (Josh Kupershmidt)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Merge docs for CREATE CONSTRAINT TRIGGER and CREATE TRIGGER
+ (Alvaro Herrera)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Centralize permission and upgrade documentation (Bruce Momjian)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add kernel tuning docs for Solaris 10 (Josh Berkus)
+ </para>
+
+ <para>
+ Previously only Solaris 9 kernel tuning was documented.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ </sect2>
+ </sect1>
+
+
+
<!-- This is (hopefully) up-to-date with commits through 2011-03-08 -->
-<sect1 id="release-9-1-alpha">
+
+ <sect1 id="release-9-1-alpha">
<title>Release 9.1alpha4</title>
<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.
+ 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
@@ -1362,4 +3556,5 @@
</itemizedlist>
</sect3>
</sect2>
-</sect1>
+ </sect1>
+