Commit 77b0f459 authored by Neil Conway's avatar Neil Conway

First pass at SGML-ifying the 8.3 release notes. Plenty of improvements

left to made, but this is a start.
parent 0a04109d
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.511 2007/10/03 23:02:16 tgl Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.512 2007/10/04 03:53:58 neilc Exp $ -->
<!-- <!--
Typical markup: Typical markup:
...@@ -48,8 +48,8 @@ do it for earlier branch release files. ...@@ -48,8 +48,8 @@ do it for earlier branch release files.
<title>Overview</title> <title>Overview</title>
<para> <para>
This release adds many improvements that This release adds many improvements that were requested by users,
were requested by users, including: including:
<itemizedlist> <itemizedlist>
...@@ -61,7 +61,8 @@ do it for earlier branch release files. ...@@ -61,7 +61,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
XML data type Support for the SQL/XML standard, including a new <type>xml</type> builtin
data type
</para> </para>
</listitem> </listitem>
...@@ -73,7 +74,7 @@ do it for earlier branch release files. ...@@ -73,7 +74,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
UUID data type UUID data type, similar to that defined by RFC 4122
</para> </para>
</listitem> </listitem>
...@@ -91,7 +92,7 @@ do it for earlier branch release files. ...@@ -91,7 +92,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
UPDATE/DELETE WHERE CURRENT OF cursor_name Updatable cursors
</para> </para>
</listitem> </listitem>
...@@ -107,8 +108,8 @@ do it for earlier branch release files. ...@@ -107,8 +108,8 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
Declarations such as varchar(42) are no longer restricted to use Declarations such as <type>varchar(42)</type> are no longer
by built-in data types. restricted to use by built-in data types.
</para> </para>
</listitem> </listitem>
...@@ -150,7 +151,8 @@ do it for earlier branch release files. ...@@ -150,7 +151,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
The entire PostgreSQL system can now be built with Microsoft Visual C++ The entire <productname>PostgreSQL</productname> system can
now be compiled with Microsoft Visual C++
</para> </para>
<para> <para>
...@@ -176,11 +178,12 @@ do it for earlier branch release files. ...@@ -176,11 +178,12 @@ do it for earlier branch release files.
<para> <para>
This would not, of course, be acceptable if the client takes some This would not, of course, be acceptable if the client takes some
critical external action on the assumption that the transaction critical external action on the assumption that the transaction
will be remembered; but for many applications, it is an acceptable will be remembered; but for certain applications, it is an acceptable
risk for some or all transactions to use this mode. Unlike existing risk for some or all transactions to use this mode. Unlike existing
options such as fsync, asynchronous commit does not risk database options such as <varname>fsync</varname>, asynchronous commit does
corruption; the worst case is that after a crash, the last few not risk database corruption; the worst case is that after a crash,
reportedly-committed transactions will not have taken effect. the last few reportedly-committed transactions will not have
taken effect.
</para> </para>
</listitem> </listitem>
...@@ -213,8 +216,8 @@ do it for earlier branch release files. ...@@ -213,8 +216,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Efficiency improvements for large sequential scans, including Efficiency improvements for large sequential scans, including
prevention of cache flushing and "piggybacking" to let concurrent prevention of cache flushing and <quote>piggybacking</quote> to let
scans read the table only once concurrent scans read the table only once
</para> </para>
</listitem> </listitem>
...@@ -273,8 +276,8 @@ do it for earlier branch release files. ...@@ -273,8 +276,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Casts to text that formerly occurred implicitly may now need to be Casts to <type>text</type> that formerly occurred implicitly may now
written explicitly need to be written explicitly
</para> </para>
<para> <para>
...@@ -319,8 +322,8 @@ do it for earlier branch release files. ...@@ -319,8 +322,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
ARRAY(SELECT ...) now returns an empty array, rather than a NULL, <literal>ARRAY(SELECT ...)</literal> now returns an empty array,
when the sub-select returns zero rows rather than a NULL, when the sub-select returns zero rows
</para> </para>
</listitem> </listitem>
...@@ -332,16 +335,16 @@ do it for earlier branch release files. ...@@ -332,16 +335,16 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
This prevents less-than-sane behavior that formerly ensued This prevents less-than-sane behavior that formerly ensued if an
if an operator that doesn't operator that doesn't actually define a proper sort ordering was
actually define a proper sort ordering was specified. specified.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
The array type associated with a type named "foo" is not necessarily The array type associated with a type named <quote>foo</quote>
named "_foo" anymore is not necessarily named <quote>_foo</quote> anymore
</para> </para>
<para> <para>
...@@ -364,8 +367,8 @@ do it for earlier branch release files. ...@@ -364,8 +367,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
SET LOCAL's effects now persist until the end of the The effects of <command>SET LOCAL</command> now persist until
current top transaction, unless rolled back the end of the current top transaction, unless rolled back
</para> </para>
<para> <para>
...@@ -385,7 +388,8 @@ do it for earlier branch release files. ...@@ -385,7 +388,8 @@ do it for earlier branch release files.
<para> <para>
For example, "BEGIN; DROP DATABASE; COMMIT" will now be rejected For example, "BEGIN; DROP DATABASE; COMMIT" will now be rejected
even if submitted as a single Query message. This was always quite even if submitted as a single Query message. This was always quite
unsafe, but the PreventTransactionChain test failed to detect it. unsafe, but the <function>PreventTransactionChain</function>
test failed to detect it.
</para> </para>
</listitem> </listitem>
...@@ -395,15 +399,15 @@ do it for earlier branch release files. ...@@ -395,15 +399,15 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
Some cases that might formerly have allowed invalid data to enter Some cases that might formerly have allowed invalid data to
the database will now be rejected. In particular, the chr() enter the database will now be rejected. In particular, the
function changed behavior. <function>chr()</function> function changed behavior.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
convert() family of functions changed behavior <function>convert()</function> family of functions changed behavior
</para> </para>
<para> <para>
...@@ -425,10 +429,10 @@ do it for earlier branch release files. ...@@ -425,10 +429,10 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
The new SET_VARSIZE() macro *must* be used to set the length word The new <function>SET_VARSIZE()</> macro <emphasis>must</> be used
of a generated datum. Also, it to set the length word of a generated datum. Also, it may be
may be necessary to "detoast" input varlena datums in cases where necessary to <quote>detoast</quote> input varlena datums in cases
no toasting could have happened before. where no toasting could have happened before.
</para> </para>
</listitem> </listitem>
...@@ -454,11 +458,12 @@ do it for earlier branch release files. ...@@ -454,11 +458,12 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
When synchronous_commit is off, we don't flush WAL before reporting When <varname>synchronous_commit</varname> is off, we don't flush
a transaction committed. Data consistency is still guaranteed WAL before reporting a transaction committed. Data consistency is
(unlike turning fsync off), but a crash may lose the effects of the still guaranteed (unlike turning <varname>fsync</varname> off), but
last few transactions. In many applications this is an acceptable a crash may lose the effects of the last few transactions. In many
tradeoff for improved performance. applications this is an acceptable tradeoff for improved
performance.
</para> </para>
</listitem> </listitem>
...@@ -489,8 +494,9 @@ do it for earlier branch release files. ...@@ -489,8 +494,9 @@ do it for earlier branch release files.
index searches follow the HOT-chain links to ensure they find the index searches follow the HOT-chain links to ensure they find the
correct tuple version. In addition, this patch introduces the correct tuple version. In addition, this patch introduces the
ability to "prune" dead tuples on a per-page basis, without having ability to "prune" dead tuples on a per-page basis, without having
to do a complete VACUUM pass to recover space. VACUUM is still to do a complete <command>VACUUM</command> pass to recover space.
needed to clean up dead index entries, however. <command>VACUUM</command> is still needed to clean up dead index
entries, however.
</para> </para>
</listitem> </listitem>
...@@ -592,8 +598,8 @@ do it for earlier branch release files. ...@@ -592,8 +598,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Skip writing WAL in CLUSTER and COPY in cases where it's not needed Skip writing WAL in <command>CLUSTER</command> and
(Simon) <command>COPY</command> in cases where it's not needed (Simon)
</para> </para>
<para> <para>
...@@ -605,7 +611,8 @@ do it for earlier branch release files. ...@@ -605,7 +611,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Avoid rewriting pg_control at every WAL segment switch (Simon) Avoid rewriting <filename>pg_control</filename> at every WAL segment
switch (Simon)
</para> </para>
</listitem> </listitem>
...@@ -629,15 +636,15 @@ do it for earlier branch release files. ...@@ -629,15 +636,15 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Make large sequential scans and VACUUMs work in a limited-size Make large sequential scans and <command>VACUUM</command>s work in a
"ring" of buffers (Simon, Heikki, Tom) limited-size <quote>ring</quote> of buffers (Simon, Heikki, Tom)
</para> </para>
<para> <para>
Aside from avoiding cache spoliation, this fixes the problem that Aside from avoiding cache spoliation, this fixes the problem that
VACUUM formerly tended to cause a WAL flush for every page it <command>VACUUM</command> formerly tended to cause a WAL flush for
modified, because we had it hacked to use only a single buffer. every page it modified, because we had it hacked to use only a
Those flushes will now occur only once per ring-ful. single buffer. Those flushes will now occur only once per ring-ful.
</para> </para>
</listitem> </listitem>
...@@ -677,7 +684,8 @@ do it for earlier branch release files. ...@@ -677,7 +684,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Implement "top N" sorting in ORDER BY ... LIMIT queries (Greg Stark) Implement <quote>top N</quote> sorting in <literal>ORDER BY
... LIMIT</literal> queries (Greg Stark)
</para> </para>
<para> <para>
...@@ -691,7 +699,7 @@ do it for earlier branch release files. ...@@ -691,7 +699,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Improve hash join for cases with many input NULLs (Tom) Improve hash join performance for cases with many input NULLs (Tom)
</para> </para>
</listitem> </listitem>
...@@ -713,8 +721,8 @@ do it for earlier branch release files. ...@@ -713,8 +721,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Avoid computing X^2 at each row in avg(bigint) and avg(numeric) Avoid computing X^2 at each row in <function>avg(bigint)</function>
(Mark Kirkwood) and <function>avg(numeric)</function> (Mark Kirkwood)
</para> </para>
</listitem> </listitem>
...@@ -746,16 +754,16 @@ do it for earlier branch release files. ...@@ -746,16 +754,16 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Set the default autovacuum vacuum_cost_delay value to 20ms, and Set the default autovacuum <varname>vacuum_cost_delay</varname>
reduce the default autovacuum vacuum and analyze threshold values to value to 20ms, and reduce the default autovacuum vacuum and analyze
50 tuples (Alvaro) threshold values to 50 tuples (Alvaro)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Make autovacuum report the start time of its current activity in Make autovacuum report the start time of its current activity in
pg_stat_activity (Tom) <literal>pg_stat_activity</literal> (Tom)
</para> </para>
</listitem> </listitem>
...@@ -779,11 +787,11 @@ do it for earlier branch release files. ...@@ -779,11 +787,11 @@ do it for earlier branch release files.
<para> <para>
Aside from improving performance (for example, by being able to make Aside from improving performance (for example, by being able to make
use of newly-added indexes), this finally fixes the problem use of newly-added indexes), this finally fixes the problem that you
that you couldn't drop and recreate a temp table that's used by a couldn't drop and recreate a temp table that's used by a PL/PgSQL
PL/PgSQL function, unless you used EXECUTE for all references to it. function, unless you used <literal>EXECUTE</literal> for all
A statement that depends on a temp table will now be replanned references to it. A statement that depends on a temp table will now
automatically if the temp table has been recreated. be replanned automatically if the temp table has been recreated.
</para> </para>
</listitem> </listitem>
...@@ -838,35 +846,37 @@ do it for earlier branch release files. ...@@ -838,35 +846,37 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add log_autovacuum_min_duration parameter to support configurable Add <varname>log_autovacuum_min_duration</varname> parameter to
logging of autovacuum actions (Simon, Alvaro) support configurable logging of autovacuum actions (Simon, Alvaro)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add log_lock_waits parameter to log long wait times (Simon) Add <varname>log_lock_waits</varname> parameter to log long wait
times (Simon)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add log_temp_files parameter to log usage of temporary files (Bill Add <varname>log_temp_files</varname> parameter to log usage of
Moran) temporary files (Bill Moran)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add log_checkpoints parameter to improve logging of checkpoints Add <varname>log_checkpoints</varname> parameter to improve logging
(Greg Smith, Heikki) of checkpoints (Greg Smith, Heikki)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
%s and %c escapes in log_line_prefix can now be used in all <literal>%s</literal> and <literal>%c</literal> escapes in
processes (Andrew) <varname>log_line_prefix</varname> can now be used in all processes
(Andrew)
</para> </para>
</listitem> </listitem>
...@@ -878,9 +888,10 @@ do it for earlier branch release files. ...@@ -878,9 +888,10 @@ do it for earlier branch release files.
<para> <para>
This avoids Windows-specific problems with localized time zone names This avoids Windows-specific problems with localized time zone names
that are in the wrong encoding. There is a new log_timezone that are in the wrong encoding. There is a new
parameter that controls the timezone used in log messages, <varname>log_timezone</> parameter that controls the timezone used
separately from the client-visible timezone parameter. in log messages, separately from the client-visible timezone
parameter.
</para> </para>
</listitem> </listitem>
...@@ -900,8 +911,9 @@ do it for earlier branch release files. ...@@ -900,8 +911,9 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Split the archive_command parameter into separate archive_mode and Split the <varname>archive_command</> parameter into separate
archive_command parameters (Simon) <varname>archive_mode</> and <varname>archive_command</> parameters
(Simon)
</para> </para>
<para> <para>
...@@ -912,15 +924,16 @@ do it for earlier branch release files. ...@@ -912,15 +924,16 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add a %r option in recovery.conf to provide last restartpoint to Add a <literal>%r</> option in <filename>recovery.conf</filename> to
recovery_command (Simon) provide last restartpoint to <varname>restore_command</varname>
(Simon)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add log_restartpoints recovery option to emit LOG message at each Add <varname>log_restartpoints</varname> recovery option to emit a
restartpoint (Simon) log message at each restartpoint (Simon)
</para> </para>
</listitem> </listitem>
...@@ -933,36 +946,39 @@ do it for earlier branch release files. ...@@ -933,36 +946,39 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Create a temp_tablespaces parameter to allow selection of the Create a <varname>temp_tablespaces</varname> parameter to allow
tablespace(s) in which to store temp tables and temporary files selection of one or more tablespaces in which to store temp tables
(Jaime Casanova, Albert Cervera, Bernd Helmle) and temporary files (Jaime Casanova, Albert Cervera, Bernd Helmle)
</para> </para>
<para> <para>
This is a list to allow spreading the load across multiple This is a list to allow spreading the load across multiple
tablespaces; a random list element is chosen each time a temp object tablespaces; a random list element is chosen each time a temp object
is to be created. Temp files are not stored in per-database is to be created. Temp files are not stored in per-database
pgsql_tmp/ directories anymore, but in per-tablespace directories. <filename>pgsql_tmp/</filename> directories anymore, but in
per-tablespace directories.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
New system view pg_stat_bgwriter displays statistics about the New system view <literal>pg_stat_bgwriter</literal> displays
background writer process's performance (Magnus) statistics about the background writer process's performance
(Magnus)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add new columns for database-wide tuple statistics to Add new columns for database-wide tuple statistics to
pg_stat_database (Magnus) <literal>pg_stat_database</literal> (Magnus)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add an xact_start column to pg_stat_activity (Neil) Add an <literal>xact_start</literal> column to
<literal>pg_stat_activity</literal> (Neil)
</para> </para>
<para> <para>
...@@ -972,14 +988,15 @@ do it for earlier branch release files. ...@@ -972,14 +988,15 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add n_live_tuples and n_dead_tuples columns to pg_stat_all_tables Add <literal>n_live_tuples</> and <literal>n_dead_tuples</> columns
and related views (Glen Parker) to <literal>pg_stat_all_tables</literal> and related views (Glen
Parker)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Remove stats_start_collector parameter (Tom) Remove <varname>stats_start_collector</varname> parameter (Tom)
</para> </para>
<para> <para>
...@@ -990,25 +1007,27 @@ do it for earlier branch release files. ...@@ -990,25 +1007,27 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Remove stats_reset_on_server_start parameter (Tom) Remove <varname>stats_reset_on_server_start</varname> parameter (Tom)
</para> </para>
<para> <para>
This seemed useless in view of the availability of pg_stat_reset(). This seemed useless in view of the availability of
<function>pg_stat_reset()</function>.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Merge stats_block_level and stats_row_level parameters into a single Merge <varname>stats_block_level</> and <varname>stats_row_level</>
parameter track_counts, which controls all reports sent to the parameters into a single parameter track_counts, which controls all
collector process (Tom) reports sent to the collector process (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Rename stats_command_string parameter to track_activities (Tom) Rename <varname>stats_command_string</varname> parameter to
<varname>track_activities</varname> (Tom)
</para> </para>
</listitem> </listitem>
...@@ -1020,10 +1039,11 @@ do it for earlier branch release files. ...@@ -1020,10 +1039,11 @@ do it for earlier branch release files.
<para> <para>
Previously, dropping (or attempting to drop) a user who owned many Previously, dropping (or attempting to drop) a user who owned many
objects could result in extremely large NOTICE or ERROR messages objects could result in extremely large <literal>NOTICE</literal> or
listing all these objects; this caused problems for some client <literal>ERROR</literal> messages listing all these objects; this
applications. The length of the list is now limited, although a caused problems for some client applications. The length of the
full list is still sent to the server log. list is now limited, although a full list is still sent to the
server log.
</para> </para>
</listitem> </listitem>
...@@ -1053,8 +1073,8 @@ do it for earlier branch release files. ...@@ -1053,8 +1073,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow CREATE INDEX CONCURRENTLY to disregard transactions in other Allow <command>CREATE INDEX CONCURRENTLY</command> to disregard
databases (Simon) transactions in other databases (Simon)
</para> </para>
</listitem> </listitem>
...@@ -1072,14 +1092,14 @@ do it for earlier branch release files. ...@@ -1072,14 +1092,14 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
The features previously provided by contrib/tsearch2 have been The features previously provided by <filename>contrib/tsearch2</>
improved and moved into the standard server. have been improved and moved into the standard server.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Support ORDER BY ... NULLS FIRST/LAST (Teodor, Tom) Support <literal>ORDER BY ... NULLS FIRST/LAST</literal> (Teodor, Tom)
</para> </para>
<para> <para>
...@@ -1108,7 +1128,7 @@ do it for earlier branch release files. ...@@ -1108,7 +1128,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow FOR UPDATE in cursors (Arul Shaji, Tom) Allow <literal>FOR UPDATE</literal> in cursors (Arul Shaji, Tom)
</para> </para>
</listitem> </listitem>
...@@ -1132,7 +1152,8 @@ do it for earlier branch release files. ...@@ -1132,7 +1152,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Create a general mechanism that supports casts to and from the Create a general mechanism that supports casts to and from the
standard string types (text,varchar,bpchar) for *every* datatype, by standard string types (<type>text</type>, <type>varchar</type>,
<type>bpchar</type>) for <emphasis>every</emphasis> datatype, by
invoking the datatype's I/O functions (Tom) invoking the datatype's I/O functions (Tom)
</para> </para>
...@@ -1146,8 +1167,8 @@ do it for earlier branch release files. ...@@ -1146,8 +1167,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Make ARRAY(SELECT ...) return an empty array, rather than a NULL, Make <literal>ARRAY(SELECT ...)</literal> return an empty array,
when the sub-select returns zero rows (Tom) rather than a NULL, when the sub-select returns zero rows (Tom)
</para> </para>
</listitem> </listitem>
...@@ -1166,15 +1187,17 @@ do it for earlier branch release files. ...@@ -1166,15 +1187,17 @@ do it for earlier branch release files.
This allows hash joins, hash indexes, hashed subplans, and hash This allows hash joins, hash indexes, hashed subplans, and hash
aggregation to be used in situations involving cross-data-type aggregation to be used in situations involving cross-data-type
comparisons, if the data types have compatible hash functions. That comparisons, if the data types have compatible hash functions. That
is currently the case for smallint/integer/bigint, and also for is currently the case for
float4/float8. <type>smallint</type>/<type>integer</type>/<type>bigint</type>, and
also for <type>float4</type>/<type>float8</type>.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Improve handling of "equivalence classes" of variables that are Improve handling of <quote>equivalence classes</quote> of variables
constrained to be equal within a query's WHERE clause (Tom) that are constrained to be equal within a query's <literal>WHERE</>
clause (Tom)
</para> </para>
<para> <para>
...@@ -1199,8 +1222,8 @@ do it for earlier branch release files. ...@@ -1199,8 +1222,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Fix cost estimates for EXISTS subqueries that are evaluated as Fix cost estimates for <literal>EXISTS</literal> subqueries that are
initPlans (Tom) evaluated as initPlans (Tom)
</para> </para>
</listitem> </listitem>
...@@ -1217,7 +1240,8 @@ do it for earlier branch release files. ...@@ -1217,7 +1240,8 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
This operator was obsoleted long ago by IN (SELECT ...) queries. This operator was obsoleted long ago by <literal>IN (SELECT
...)</literal> queries.
</para> </para>
</listitem> </listitem>
...@@ -1238,11 +1262,12 @@ do it for earlier branch release files. ...@@ -1238,11 +1262,12 @@ do it for earlier branch release files.
<para> <para>
This change also removes the hardwired convention that a type's This change also removes the hardwired convention that a type's
array type is named exactly "_type", instead using a new column array type is named exactly <quote>_type</quote>, instead using a
pg_type.typarray to provide the linkage. (It still will be named new column <literal>pg_type.typarray</literal> to provide the
"_type", though, except in odd corner cases such as maximum-length linkage. (It still will be named <quote>_type</quote>, though,
type names or collisions with a pre-existing type named with a except in odd corner cases such as maximum-length type names or
leading underscore.) collisions with a pre-existing type named with a leading
underscore.)
</para> </para>
</listitem> </listitem>
...@@ -1254,13 +1279,15 @@ do it for earlier branch release files. ...@@ -1254,13 +1279,15 @@ do it for earlier branch release files.
<para> <para>
This provides a simple solution for functions that need local This provides a simple solution for functions that need local
settings for parameters; in particular, security definer functions settings for parameters; in particular, security definer functions
that must set search_path to avoid security loopholes. that must set <varname>search_path</varname> to avoid security
loopholes.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add COST and ROWS options to CREATE/ALTER FUNCTION (Tom) Add <literal>COST</literal> and <literal>ROWS</literal> options to
<command>CREATE/ALTER FUNCTION</command> (Tom)
</para> </para>
<para> <para>
...@@ -1283,10 +1310,13 @@ do it for earlier branch release files. ...@@ -1283,10 +1310,13 @@ do it for earlier branch release files.
This will allow replication systems to control the firing mechanism This will allow replication systems to control the firing mechanism
of triggers and rewrite rules without modifying the system catalogs of triggers and rewrite rules without modifying the system catalogs
directly. The behavior is controlled by a new superuser-only directly. The behavior is controlled by a new superuser-only
parameter session_replication_role. parameter <varname>session_replication_role</varname>.
</para>
psql's \d command as well as pg_dump are extended in a backward <para>
compatible fashion. <application>psql</application>'s <literal>\d</literal> command as
well as <application>pg_dump</application> are extended in a
backward compatible fashion.
</para> </para>
</listitem> </listitem>
...@@ -1300,15 +1330,15 @@ do it for earlier branch release files. ...@@ -1300,15 +1330,15 @@ do it for earlier branch release files.
length and precision parameters used by some built-in types. Any length and precision parameters used by some built-in types. Any
simple constant (numeric or string) or identifier can be used as a simple constant (numeric or string) or identifier can be used as a
parameter value. A type-specific function must be provided to parameter value. A type-specific function must be provided to
validate this information and pack it into a 32-bit "typmod" value validate this information and pack it into a 32-bit <quote>typmod</>
for storage. value for storage.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Invent "operator families" to allow improved handling of Invent <quote>operator families</quote> to allow improved handling
cross-data-type operators (Tom) of cross-data-type operators (Tom)
</para> </para>
<para> <para>
...@@ -1381,8 +1411,9 @@ do it for earlier branch release files. ...@@ -1381,8 +1411,9 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Support SET FROM CURRENT in CREATE/ALTER FUNCTION, ALTER DATABASE, Support <literal>SET FROM CURRENT</literal> in <command>CREATE/ALTER
ALTER ROLE (Tom) FUNCTION</command>, <command>ALTER DATABASE</command>,
<command>ALTER ROLE</command> (Tom)
</para> </para>
<para> <para>
...@@ -1394,8 +1425,10 @@ do it for earlier branch release files. ...@@ -1394,8 +1425,10 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Implement new commands DISCARD ALL, DISCARD PLANS, DISCARD TEMP, Implement new commands <command>DISCARD ALL</command>,
CLOSE ALL, and DEALLOCATE ALL (Marko Kreen, Neil) <command>DISCARD PLANS</command>, <command>DISCARD TEMP</command>,
<command>CLOSE ALL</command>, and <command>DEALLOCATE ALL</command>
(Marko Kreen, Neil)
</para> </para>
<para> <para>
...@@ -1406,82 +1439,85 @@ do it for earlier branch release files. ...@@ -1406,82 +1439,85 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add ALTER VIEW ... RENAME TO and ALTER SEQUENCE ... RENAME TO (David Add <command>ALTER VIEW ... RENAME TO</command> and <command>ALTER
Fetter, Neil) SEQUENCE ... RENAME TO</command> (David Fetter, Neil)
</para> </para>
<para> <para>
While it has long been possible to perform these operations using ALTER While it has long been possible to perform these operations using
TABLE, users were often surprised that they couldn't say ALTER VIEW <command>ALTER TABLE</command>, users were often surprised that they
or ALTER SEQUENCE as appropriate. couldn't say <command>ALTER VIEW</command> or <command>ALTER
SEQUENCE</command> as appropriate.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Implement CREATE TABLE LIKE ... INCLUDING INDEXES (Trevor Implement <command>CREATE TABLE LIKE ... INCLUDING
Hardcastle, Nikhil S, Neil) INDEXES</command> (Trevor Hardcastle, Nikhil S, Neil)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Make CLUSTER MVCC-safe (Heikki Linnakangas) Make <command>CLUSTER</command> MVCC-safe (Heikki Linnakangas)
</para> </para>
<para> <para>
Formerly, a CLUSTER command would discard all tuples that were Formerly, a <command>CLUSTER</command> command would discard all
committed dead, even if there were still transactions that should be tuples that were committed dead, even if there were still
able to see them under the MVCC snapshot rules. transactions that should be able to see them under the MVCC snapshot
rules.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Support syntax "CLUSTER table USING index", which is more logical Support new syntax for <command>CLUSTER</command>: <literal>CLUSTER
than the old CLUSTER syntax (Holger Schurig) <replaceable>table</> USING <replaceable>index</></literal> (Holger Schurig)
</para> </para>
</listitem>
<listitem>
<para> <para>
Make CLUSTER freeze tuples where possible (Heikki, Alvaro) The old <command>CLUSTER</command> syntax is still supported, but
</para> the new form is considered more logical.
<para>
This is nearly free and may avoid the need for a subsequent VACUUM
of the table.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Make CLUSTER and TRUNCATE advance the table's relfrozenxid to Make <command>CLUSTER</command> freeze tuples where possible
RecentXmin (Alvaro) (Heikki, Alvaro)
</para> </para>
<para> <para>
This may avoid the need for a subsequent VACUUM of the table. The This is nearly free and may avoid the need for a subsequent
table-rewriting variants of ALTER TABLE do it too. <command>VACUUM</command> of the table.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Fix EXPLAIN so it can always print the correct referent of an upper Make <command>CLUSTER</command> and <command>TRUNCATE</command>
plan level expression (Tom) advance the table's <literal>relfrozenxid</literal> to
<literal>RecentXmin</literal> (Alvaro)
</para> </para>
<para> <para>
This fix banishes the old hack of showing "?columnN?" when things This may avoid the need for a subsequent <command>VACUUM</command>
got too complicated. of the table. The table-rewriting variants of <command>ALTER
TABLE</command> do it too.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Make EXPLAIN ANALYZE show which sort method was used by a Sort node Fix <command>EXPLAIN</command> so it can always print the correct
(Tom) referent of an upper plan level expression (Tom)
</para>
<para>
This fix banishes the old hack of showing <quote>?columnN?</quote>
when things got too complicated.
</para> </para>
</listitem> </listitem>
...@@ -1513,9 +1549,9 @@ do it for earlier branch release files. ...@@ -1513,9 +1549,9 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Make NOTIFY/LISTEN/UNLISTEN only accept identifiers without a schema Make
qualifier <command>NOTIFY</command>/<command>LISTEN</command>/<command>UNLISTEN</command>
(Bruce) only accept identifiers without a schema qualifier (Bruce)
</para> </para>
<para> <para>
...@@ -1552,21 +1588,22 @@ do it for earlier branch release files. ...@@ -1552,21 +1588,22 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add a "uuid" data type similar to that defined in RFC 4122 (Gevik Add a <type>uuid</type> data type similar to that defined in RFC
Babakhani, Neil) 4122 (see <xref linkend="datatype-uuid">) (Gevik Babakhani, Neil)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Widen the money data type to 64 bits (D'Arcy Cain) Widen the <type>money</type> data type to 64 bits (D'Arcy Cain)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add new regexp functions regexp_matches(), regexp_split_to_array(), Add new regexp functions <function>regexp_matches()</function>,
and regexp_split_to_table() (Jeremy Drake, Neil) <function>regexp_split_to_array()</function>, and
<function>regexp_split_to_table()</function> (Jeremy Drake, Neil)
</para> </para>
<para> <para>
...@@ -1578,25 +1615,28 @@ do it for earlier branch release files. ...@@ -1578,25 +1615,28 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add lo_truncate() function for large object truncation (Kris Jurka) Add <function>lo_truncate()</function> function for large object
truncation (Kris Jurka)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Implement width_bucket() for the float8 data type (Neil) Implement <function>width_bucket()</function> for the float8 data
type (Neil)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add a function pg_stat_clear_snapshot() that discards any statistics Add a function <function>pg_stat_clear_snapshot()</function> that
snapshot already collected in the current transaction (Tom) discards any statistics snapshot already collected in the current
transaction (Tom)
</para> </para>
<para> <para>
This allows plpgsql functions to watch for stats updates even though This allows PL/PgSQL functions to watch for stats updates even
they are confined to a single transaction. though they are confined to a single transaction.
</para> </para>
</listitem> </listitem>
...@@ -1626,8 +1666,8 @@ do it for earlier branch release files. ...@@ -1626,8 +1666,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Make to_timestamp() and to_date() assume "TM" for potentially Make <function>to_timestamp()</> and <function>to_date()</> assume
variable-width fields (Bruce) "TM" for potentially variable-width fields (Bruce)
</para> </para>
<para> <para>
...@@ -1644,7 +1684,8 @@ do it for earlier branch release files. ...@@ -1644,7 +1684,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Fix float4/float8 to handle Infinity and Nan consistently (Bruce) Fix <type>float4</type>/<type>float8</type> to handle Infinity and
Nan consistently (Bruce)
</para> </para>
<para> <para>
...@@ -1655,33 +1696,35 @@ do it for earlier branch release files. ...@@ -1655,33 +1696,35 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Make setseed() return void, rather than a useless integer value Make <function>setseed()</function> return void, rather than a
(Neil) useless integer value (Neil)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add a hash function for "numeric" (Neil) Add a hash function for <type>numeric</type> (Neil)
</para> </para>
<para> <para>
This allows hash indexes and hash-based plans to be used with This allows hash indexes and hash-based plans to be used with
the numeric datatype. the <type>numeric</type> datatype.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Improve efficiency of LIKE/ILIKE code, especially for multi-byte Improve efficiency of
charsets, and most especially for UTF8 (Andrew, Itagaki Takahiro) <literal>LIKE</literal>/<literal>ILIKE</literal> code, especially
for multi-byte charsets, and most especially for UTF8 (Andrew,
Itagaki Takahiro)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Allow leading and trailing whitespace in the input to the boolean Allow leading and trailing whitespace in the input to the
type (Neil) <type>boolean</type> type (Neil)
</para> </para>
</listitem> </listitem>
...@@ -1692,15 +1735,16 @@ do it for earlier branch release files. ...@@ -1692,15 +1735,16 @@ do it for earlier branch release files.
<para> <para>
This change plugs some holes that formerly existed in SQL literal This change plugs some holes that formerly existed in SQL literal
backslash escape processing and COPY escape processing: the backslash escape processing and <command>COPY</command> escape
de-escaped string is rechecked if it might have resulted in creating processing: the de-escaped string is rechecked if it might have
invalid multi-byte characters. resulted in creating invalid multi-byte characters.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Ensure that chr() cannot create invalidly encoded text (Andrew) Ensure that <function>chr()</function> cannot create invalidly
encoded text (Andrew)
</para> </para>
<para> <para>
...@@ -1708,31 +1752,37 @@ do it for earlier branch release files. ...@@ -1708,31 +1752,37 @@ do it for earlier branch release files.
point. In other multi-byte encodings the argument must designate a point. In other multi-byte encodings the argument must designate a
7-bit ASCII character, or an error is raised, as is also the case if 7-bit ASCII character, or an error is raised, as is also the case if
the argument is 0. the argument is 0.
</para>
ascii() is adjusted so that it remains the inverse of chr(). <para>
<function>ascii()</function> has been adjusted so that it remains
the inverse of <function>chr()</function>.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Adjust convert() behavior to ensure encoding validity (Andrew) Adjust <function>convert()</function> behavior to ensure encoding
validity (Andrew)
</para> </para>
<para> <para>
The two argument form of convert() is gone, and the three argument The two argument form of <function>convert()</function> is gone, and
form now takes a bytea first argument and returns a bytea. To cover the three argument form now takes a <type>bytea</type> first
this loss three new functions are introduced: . convert_from(bytea, argument and returns a <type>bytea</type>. To cover this loss three
name) returns text - converts the first argument from the named new functions are introduced: . convert_from(bytea, name) returns
encoding to the database encoding . convert_to(text, name) returns text - converts the first argument from the named encoding to the
bytea - converts the first argument from the database encoding to database encoding . convert_to(text, name) returns bytea - converts
the named encoding . length(bytea, name) returns int - gives the the first argument from the database encoding to the named encoding
length of the first argument in characters in the named encoding. . length(bytea, name) returns int - gives the length of the first
argument in characters in the named encoding.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Remove CONVERT(argument USING conversion_name) (Andrew) Remove <literal>CONVERT(argument USING conversion_name)</literal>
(Andrew)
</para> </para>
<para> <para>
...@@ -1749,20 +1799,21 @@ do it for earlier branch release files. ...@@ -1749,20 +1799,21 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
Restrict pg_database_size() to users who can connect to the target Restrict <function>pg_database_size()</function> to users who can
database (note that CONNECT privilege is granted by default, so this connect to the target database (note that <literal>CONNECT</literal>
does not change the default behavior). Restrict privilege is granted by default, so this does not change the default
pg_tablespace_size() to users who have CREATE privilege on the behavior). Restrict <function>pg_tablespace_size()</function> to
tablespace (which is *not* granted by default), except when the users who have <literal>CREATE</literal> privilege on the tablespace
tablespace is the default tablespace for the current database (since (which is <emphasis>not</emphasis> granted by default), except when
we treat that as implicitly allowing use of the tablespace). the tablespace is the default tablespace for the current database
(since we treat that as implicitly allowing use of the tablespace).
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Make currtid() functions require SELECT privileges on the target Make <function>currtid()</function> functions require
table (Tom) <literal>SELECT</literal> privileges on the target table (Tom)
</para> </para>
</listitem> </listitem>
...@@ -1776,50 +1827,52 @@ do it for earlier branch release files. ...@@ -1776,50 +1827,52 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Support scrollable cursors (ie, add a "direction" clause in FETCH) Support scrollable cursors (ie, add a "direction" clause in
in plpgsql (Pavel Stehule) <command>FETCH</command>) in PL/PgSQL (Pavel Stehule)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add support for IN as alternative to FROM in PL/PgSQL's FETCH Add support for <literal>IN</literal> as alternative to
statement, for consistency with the backend's FETCH command (Pavel <literal>FROM</literal> in PL/PgSQL's <command>FETCH</command>
Stehule) statement, for consistency with the backend's
<command>FETCH</command> command (Pavel Stehule)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Support MOVE in PL/PgSQL (Magnus, Pavel Stehule, Neil) Support <command>MOVE</command> in PL/PgSQL (Magnus, Pavel Stehule,
Neil)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Implement RETURN QUERY for PL/PgSQL (Pavel Stehule, Neil) Implement <command>RETURN QUERY</command> for PL/PgSQL (Pavel Stehule, Neil)
</para> </para>
<para> <para>
This provides some convenient syntax sugar for PL/PgSQL This provides some convenient syntax sugar for PL/PgSQL
set-returning functions that want to return the result of evaluating set-returning functions that want to return the result of evaluating
a query; it should also be more efficient than repeated RETURN NEXT a query; it should also be more efficient than repeated
statements. <command>RETURN NEXT</command> statements.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Allow plpgsql function parameter names to be qualified with the Allow PL/PgSQL function parameter names to be qualified with the
function's name (Tom) function's name (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Reject zero or negative BY step in plpgsql integer FOR-loops, and Reject zero or negative <literal>BY</literal> step in plpgsql
behave sanely if the loop value overflows int32 on the way to the integer <literal>FOR</literal>-loops, and behave sanely if the loop
end value (Tom) value overflows <type>int32</type> on the way to the end value (Tom)
</para> </para>
</listitem> </listitem>
...@@ -1839,8 +1892,9 @@ do it for earlier branch release files. ...@@ -1839,8 +1892,9 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow type-name arguments to spi_prepare() to be standard type Allow type-name arguments to <function>spi_prepare()</function> to
aliases as well as the names given in pg_type (Andrew) be standard type aliases as well as the names given in
<literal>pg_type</literal> (Andrew)
</para> </para>
</listitem> </listitem>
...@@ -1860,8 +1914,9 @@ do it for earlier branch release files. ...@@ -1860,8 +1914,9 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow type-name arguments to plpy.prepare() to be standard type Allow type-name arguments to <function>plpy.prepare()</function> to
aliases as well as the names given in pg_type (Andrew) be standard type aliases as well as the names given in
<literal>pg_type</literal> (Andrew)
</para> </para>
</listitem> </listitem>
...@@ -1882,8 +1937,9 @@ do it for earlier branch release files. ...@@ -1882,8 +1937,9 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow type-name arguments to spi_prepare to be standard type aliases Allow type-name arguments to <function>spi_prepare</> to be standard
as well as the names given in pg_type (Andrew) type aliases as well as the names given in <literal>pg_type</>
(Andrew)
</para> </para>
</listitem> </listitem>
...@@ -1927,57 +1983,61 @@ do it for earlier branch release files. ...@@ -1927,57 +1983,61 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add the function's volatility to the output of \df+ (Neil) Add the function's volatility to the output of
<literal>\df+</literal> (Neil)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
In \d patterns, always match $ literally, whether quoted or not In <literal>\d</literal> patterns, always match <literal>$</literal>
(Tom) literally, whether quoted or not (Tom)
</para> </para>
<para> <para>
Since we allow $ as a character within identifiers, this behavior is Since we allow <literal>$</literal> as a character within
useful, whereas the previous behavior of treating it as the regexp identifiers, this behavior is useful, whereas the previous behavior
ending anchor was nearly useless given that the pattern is of treating it as the regexp ending anchor was nearly useless given
automatically anchored anyway. that the pattern is automatically anchored anyway.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add \prompt command (Chad Wagner) Add <literal>\prompt</literal> command (Chad Wagner)
</para> </para>
<para> <para>
This lets a psql script prompt the user for input. This lets a <application>psql</application> script prompt the user for input.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Allow \pset and \x, \t to use boolean constants on/off, rather than Allow <literal>\pset</literal>, <literal>\t</literal> and
<literal>\x</literal> to use boolean constants on/off, rather than
always toggling (Chad Wagner) always toggling (Chad Wagner)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add \sleep command to allow delays in psql scripts (Jan) Add <literal>\sleep</> command to allow delays in
<application>psql</application> scripts (Jan)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Enable \timing output for \copy commands (Andrew) Enable <literal>\timing</> output for <literal>\copy</> commands
(Andrew)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Allow \timing to have better resolution than ~15ms on Windows Allow <literal>\timing</literal> to have better resolution than
(Itagaki Takahiro) ~15ms on Windows (Itagaki Takahiro)
</para> </para>
</listitem> </listitem>
...@@ -1997,19 +2057,20 @@ do it for earlier branch release files. ...@@ -1997,19 +2057,20 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add --tablespaces-only and --roles-only options to pg_dumpall (Dave Add --tablespaces-only and --roles-only options to
Page) <application>pg_dumpall</application> (Dave Page)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add output-file option for pg_dumpall (Dave Page) Add output-file option for <application>pg_dumpall</application>
(Dave Page)
</para> </para>
<para> <para>
This is primarily useful on Windows, where output redirection of This is primarily useful on Windows, where output redirection of
child pg_dump processes doesn't work. child <application>pg_dump</application> processes doesn't work.
</para> </para>
</listitem> </listitem>
...@@ -2022,15 +2083,15 @@ do it for earlier branch release files. ...@@ -2022,15 +2083,15 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
In -n and -t switches, always match $ literally, whether quoted or In -n and -t switches, always match <literal>$</literal> literally,
not (Tom) whether quoted or not (Tom)
</para> </para>
<para> <para>
Since we allow $ as a character within identifiers, this behavior is Since we allow <literal>$</literal> as a character within
useful, whereas the previous behavior of treating it as the regexp identifiers, this behavior is useful, whereas the previous behavior
ending anchor was nearly useless given that the pattern is of treating it as the regexp ending anchor was nearly useless given
automatically anchored anyway. that the pattern is automatically anchored anyway.
</para> </para>
</listitem> </listitem>
...@@ -2056,8 +2117,8 @@ do it for earlier branch release files. ...@@ -2056,8 +2117,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow a nondefault pg_xlog directory location to be specified to Allow a nondefault <filename>pg_xlog</filename> directory location
initdb (Euler Taveira de Oliveira) to be specified to initdb (Euler Taveira de Oliveira)
</para> </para>
</listitem> </listitem>
...@@ -2126,14 +2187,16 @@ do it for earlier branch release files. ...@@ -2126,14 +2187,16 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add lo_truncate() function for large object truncation (Kris Jurka) Add <function>lo_truncate()</function> function for large object
truncation (Kris Jurka)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Provide PQconnectionUsedPassword() function that returns true if the Provide <function>PQconnectionUsedPassword()</function> function
server demanded a password during authentication (Joe Conway) that returns true if the server demanded a password during
authentication (Joe Conway)
</para> </para>
<para> <para>
...@@ -2239,10 +2302,10 @@ do it for earlier branch release files. ...@@ -2239,10 +2302,10 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
Third-party C code that manipulates varlena datums *must* convert to Third-party C code that manipulates varlena datums <emphasis>must</emphasis> convert to
this convention, since the varvarlena patch changes the this convention, since the varvarlena patch changes the
representation of length words on some architectures. Also, it representation of length words on some architectures. Also, it
may be necessary to "detoast" input varlena datums in cases where may be necessary to <quote>detoast</quote> input varlena datums in cases where
no toasting could have happened before. no toasting could have happened before.
</para> </para>
</listitem> </listitem>
...@@ -2257,7 +2320,7 @@ do it for earlier branch release files. ...@@ -2257,7 +2320,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Remove the prohibition on executing cursor commands through Remove the prohibition on executing cursor commands through
SPI_execute (Tom) <function>SPI_execute</function> (Tom)
</para> </para>
<para> <para>
...@@ -2342,8 +2405,8 @@ do it for earlier branch release files. ...@@ -2342,8 +2405,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Get rid of client-code dependencies on the exact text of the Get rid of client-code dependencies on the exact text of the
no-password error message, by using PQconnectionUsedPassword() no-password error message, by using
instead (Tom) <function>PQconnectionUsedPassword()</function> instead (Tom)
</para> </para>
</listitem> </listitem>
...@@ -2356,15 +2419,18 @@ do it for earlier branch release files. ...@@ -2356,15 +2419,18 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Remove the xlog-centric "database system is ready" message and Remove the xlog-centric <quote>database system is ready</quote>
replace it with "database system is ready to accept connections" message and replace it with <quote>database system is ready to
accept connections</quote>
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Provide strlcpy() and strlcat() on all platforms, and replace Provide <function>strlcpy()</function> and
error-prone uses of strncpy(), strncat(), etc (Peter) <function>strlcat()</function> on all platforms, and replace
error-prone uses of <function>strncpy()</function>,
<function>strncat()</function>, etc (Peter)
</para> </para>
</listitem> </listitem>
...@@ -2376,9 +2442,10 @@ do it for earlier branch release files. ...@@ -2376,9 +2442,10 @@ do it for earlier branch release files.
<para> <para>
This improves error detection and reporting, both for external This improves error detection and reporting, both for external
problems and for coding errors inside the backend. Notably, problems and for coding errors inside the backend. Notably,
disallow mdread() beyond EOF, and enforce that mdwrite() is to be disallow <function>mdread()</function> beyond EOF, and enforce that
used for rewriting existing blocks while mdextend() is to be used <function>mdwrite()</function> is to be used for rewriting existing
for extending the relation EOF. blocks while <function>mdextend()</function> is to be used for
extending the relation EOF.
</para> </para>
</listitem> </listitem>
...@@ -2437,11 +2504,15 @@ do it for earlier branch release files. ...@@ -2437,11 +2504,15 @@ do it for earlier branch release files.
determines the content of toast tables. Add TOAST_MAX_CHUNK_SIZE to determines the content of toast tables. Add TOAST_MAX_CHUNK_SIZE to
the values checked in pg_control, since it can't be changed without the values checked in pg_control, since it can't be changed without
invalidating toast table content. invalidating toast table content.
</para>
Note: while TOAST_TUPLE_THRESHOLD can now be changed without <note>
initdb, some thought still needs to be given to needs_toast_table() <para>
in toasting.c before unleashing random changes. While TOAST_TUPLE_THRESHOLD can now be changed without initdb, some
thought still needs to be given to needs_toast_table() in
toasting.c before unleashing random changes.
</para> </para>
</note>
</listitem> </listitem>
<listitem> <listitem>
...@@ -2492,7 +2563,8 @@ do it for earlier branch release files. ...@@ -2492,7 +2563,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Downgrade some boring startup messages to DEBUG1 (Peter) Downgrade some boring startup messages to <literal>DEBUG1</literal>
(Peter)
</para> </para>
</listitem> </listitem>
...@@ -2512,8 +2584,9 @@ do it for earlier branch release files. ...@@ -2512,8 +2584,9 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Arrange for quote_identifier() and pg_dump to not quote keywords Arrange for <function>quote_identifier()</function> and
that are unreserved according to the grammar (Tom) <application>pg_dump</application> to not quote keywords that are
unreserved according to the grammar (Tom)
</para> </para>
<para> <para>
...@@ -2531,16 +2604,17 @@ do it for earlier branch release files. ...@@ -2531,16 +2604,17 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Adjust the output of MemoryContextStats() so that the line for a Adjust the output of <function>MemoryContextStats()</function> so
child memory context is indented two spaces to the right of its that the line for a child memory context is indented two spaces to
parent context (Neil) the right of its parent context (Neil)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Change on-disk representation of NUMERIC datatype so that the Change the on-disk representation of the <type>numeric</type>
sign_dscale word comes before the weight instead of after (Tom) datatype so that the sign_dscale word comes before the weight
instead of after (Tom)
</para> </para>
</listitem> </listitem>
...@@ -2561,26 +2635,28 @@ do it for earlier branch release files. ...@@ -2561,26 +2635,28 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add /contrib/pageinspect module for low-level page inspection Add <filename>/contrib/pageinspect</filename> module for low-level
(Simon, Heikki) page inspection (Simon, Heikki)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add /contrib/pg_standby module for warm standby operation (Simon) Add <filename>/contrib/pg_standby</filename> module for warm standby
operation (Simon)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add /contrib/uuid-ossp module for generating UUID values using the OSSP Add <filename>/contrib/uuid-ossp</filename> module for generating
UUID library (Peter) UUID values using the OSSP UUID library (Peter)
</para> </para>
<para> <para>
Use configure option --with-ossp-uuid to activate. This takes Use configure option <literal>--with-ossp-uuid</literal> to
advantage of the new UUID builtin type. activate. This takes advantage of the new <type>uuid</type> builtin
type.
</para> </para>
</listitem> </listitem>
...@@ -2617,27 +2693,31 @@ do it for earlier branch release files. ...@@ -2617,27 +2693,31 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Update /contrib/start-scripts OS/X startup files, and move to a Update <filename>/contrib/start-scripts</filename> OS/X startup
separate OS/X directory (Mark Cotner, David Fetter) files, and move to a separate OS/X directory (Mark Cotner, David
Fetter)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Restrict pgrowlocks() and dblink_get_pkey() to users who have SELECT Restrict <function>pgrowlocks()</function> and
privilege on the target table (Tom) <function>dblink_get_pkey()</function> to users who have
<literal>SELECT</literal> privilege on the target table (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Restrict contrib/pgstattuple functions to superusers (Tom) Restrict <filename>contrib/pgstattuple</filename> functions to
superusers (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
contrib/xml2 is deprecated and planned for removal in 8.4 (Peter) <filename>contrib/xml2</filename> is deprecated and planned for
removal in 8.4 (Peter)
</para> </para>
<para> <para>
...@@ -2648,7 +2728,6 @@ do it for earlier branch release files. ...@@ -2648,7 +2728,6 @@ do it for earlier branch release files.
</itemizedlist> </itemizedlist>
</sect3> </sect3>
</sect2> </sect2>
</sect1> </sect1>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment