Commit 15aa0252 authored by Tom Lane's avatar Tom Lane

Make a copy-editing pass over the 8.4 release notes.

parent f7a08e71
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.627 2009/04/11 02:06:16 momjian Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.628 2009/04/13 06:05:12 tgl Exp $ -->
<!-- <!--
Typical markup: Typical markup:
...@@ -69,7 +69,7 @@ do it for earlier branch release files. ...@@ -69,7 +69,7 @@ do it for earlier branch release files.
<note> <note>
<title>Release date</title> <title>Release date</title>
<simpara>2009-XX-XX, ITEMS CURRENT AS OF 2009-04-08</simpara> <simpara>2009-??-??, ITEMS CURRENT AS OF 2009-04-08</simpara>
</note> </note>
<sect2> <sect2>
...@@ -78,9 +78,9 @@ do it for earlier branch release files. ...@@ -78,9 +78,9 @@ do it for earlier branch release files.
<para> <para>
After many years of development, <productname>PostgreSQL</> has After many years of development, <productname>PostgreSQL</> has
become feature-complete in many areas. This release shows a become feature-complete in many areas. This release shows a
targeted approach to adding features (e.g. authentication, targeted approach to adding features (e.g., authentication,
monitoring, space reuse), and adds capabilities defined in the monitoring, space reuse), and adds capabilities defined in the
later SQL standards; the major areas of enhancement are: later SQL standards. The major areas of enhancement are:
</para> </para>
<itemizedlist> <itemizedlist>
...@@ -131,7 +131,7 @@ do it for earlier branch release files. ...@@ -131,7 +131,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Improved join performance for EXISTS and NOT EXISTS queries Improved join performance for <literal>EXISTS</> and <literal>NOT EXISTS</> queries
</para> </para>
</listitem> </listitem>
...@@ -214,8 +214,9 @@ do it for earlier branch release files. ...@@ -214,8 +214,9 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
This was available previously via a configure Previously this was selected by <application>configure</>'s
--enable-integer-datetimes option. <option>--enable-integer-datetimes</> option. To retain
the old behavior, build with <option>--disable-integer-datetimes</>.
</para> </para>
</listitem> </listitem>
...@@ -225,7 +226,7 @@ do it for earlier branch release files. ...@@ -225,7 +226,7 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
The utility only worked on a few platforms; users should use The utility only worked on a few platforms. Users should use
their operating system tools instead. their operating system tools instead.
</para> </para>
</listitem> </listitem>
...@@ -240,15 +241,15 @@ do it for earlier branch release files. ...@@ -240,15 +241,15 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Change <filename>postgresql.conf</> default for Change default setting for
<literal>log_min_messages</> to <literal>warning</> (previously <literal>log_min_messages</> to <literal>warning</> (previously
<literal>notice</>) to reduce log file volume (Tom) it was <literal>notice</>) to reduce log file volume (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Have <literal>debug_print_parse</>, <literal>debug_print_rewritten</>, Make <literal>debug_print_parse</>, <literal>debug_print_rewritten</>,
and <literal>debug_print_plan</> and <literal>debug_print_plan</>
output appear at <literal>LOG</> message level, not output appear at <literal>LOG</> message level, not
<literal>DEBUG1</> as formerly (Tom) <literal>DEBUG1</> as formerly (Tom)
...@@ -263,33 +264,33 @@ do it for earlier branch release files. ...@@ -263,33 +264,33 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Make <varname>log_temp_files</> super-user set only, like other Remove <varname>explain_pretty_print</> parameter (no longer needed) (Tom)
logging options (Simon)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Disable appending of the epoch date/time when no <literal>%</> Make <varname>log_temp_files</> settable by superusers only, like other
escapes are present in <literal>log_filename</> (Robert Haas) logging options (Simon Riggs)
</para> </para>
</listitem>
<listitem>
<para> <para>
This change was made because some users wanted a fixed filename, Disable appending of the epoch date/time when no <literal>%</>
for use with an external log rotation tool. escapes are present in <literal>log_filename</> (Robert Haas)
</para> </para>
</listitem>
<listitem>
<para> <para>
Remove <varname>explain_pretty_print</> parameter (no longer needed) (Tom) This change was made because some users wanted a fixed log filename,
for use with an external log rotation tool.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Remove <varname>log_restartpoints</> from <filename>recovery.conf</>; Remove <varname>log_restartpoints</> from <filename>recovery.conf</>;
instead use <varname>log_checkpoints</> (Simon Riggs) instead use <varname>log_checkpoints</> (Simon)
</para> </para>
</listitem> </listitem>
...@@ -300,22 +301,24 @@ do it for earlier branch release files. ...@@ -300,22 +301,24 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
This breaks compatibility with pre-<productname>PostgreSQL</> 7.2 versions. This breaks compatibility with pre-<productname>PostgreSQL</> 7.2
clients, as there is no longer any non-plaintext password method
that they can use.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Remove <varname>krb_realm</> and <varname>krb_server_hostname</>, now Remove <varname>krb_realm</> and <varname>krb_server_hostname</>;
<filename>pg_hba.conf</>-only settings (Magnus) these are now set in <filename>pg_hba.conf</> instead (Magnus)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
The <link There are also significant changes in <link
linkend="release-8-4-pg-hba-conf"><filename>pg_hba.conf</></link> linkend="release-8-4-pg-hba-conf"><filename>pg_hba.conf</></link>,
section below also has extensive changes related to migration. as described below.
</para> </para>
</listitem> </listitem>
...@@ -331,11 +334,11 @@ do it for earlier branch release files. ...@@ -331,11 +334,11 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Force child tables to inherit <literal>CHECK</> constraints from parents Force child tables to inherit <literal>CHECK</> constraints from parents
(Alex Hunsaker, Nikhil Sontakke, Tom Lane) (Alex Hunsaker, Nikhil Sontakke, Tom)
</para> </para>
<para> <para>
Formerly it was possible to delete such a constraint from a child Formerly it was possible to drop such a constraint from a child
table, allowing rows that violate the constraint to be visible table, allowing rows that violate the constraint to be visible
when scanning the parent table. This was deemed inconsistent, when scanning the parent table. This was deemed inconsistent,
as well as contrary to SQL standard. as well as contrary to SQL standard.
...@@ -344,13 +347,14 @@ do it for earlier branch release files. ...@@ -344,13 +347,14 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Change <command>TRUNCATE</> and <command>LOCK</> behavior to Change <command>TRUNCATE</> and <command>LOCK</> to
apply to all child tables (Peter) apply to child tables of the specified table(s) (Peter)
</para> </para>
<para> <para>
There is a new <literal>ONLY</> clause which disables this These commands now accept an <literal>ONLY</> option that prevents
behavior. processing child tables; this option must be used if the old
behavior is needed.
</para> </para>
</listitem> </listitem>
...@@ -368,8 +372,19 @@ do it for earlier branch release files. ...@@ -368,8 +372,19 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
Such an operation is useless because the lock would be immediately Such an operation is useless because the lock would be released
released. immediately.
</para>
</listitem>
<listitem>
<para>
Sequences now contain an additional <structfield>start_value</> column
(Zoltan Boszormenyi)
</para>
<para>
This supports <command>ALTER SEQUENCE ... RESTART</>.
</para> </para>
</listitem> </listitem>
...@@ -385,20 +400,20 @@ do it for earlier branch release files. ...@@ -385,20 +400,20 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Have <literal>NUMERIC 0 ^ 4.3</> return <literal>1</>, rather Make <type>numeric</> zero raised to a fractional power return
than an error, and have <literal>0 ^ 0.0</> return <literal>1</>, <literal>0</>, rather than throwing an error, and make
<type>numeric</> zero raised to the zero power return <literal>1</>,
rather than error (Bruce) rather than error (Bruce)
</para> </para>
<para> <para>
This was already the <type>float8</> behavior. This matches the longstanding <type>float8</> behavior.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Remove code that prevented unary minus of floating-point values Allow unary minus of floating-point values to produce minus zero (Tom)
from producing <literal>-0</> (Tom)
</para> </para>
<para> <para>
...@@ -410,7 +425,12 @@ do it for earlier branch release files. ...@@ -410,7 +425,12 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Throw an error if an escape character is the last character in Throw an error if an escape character is the last character in
a <literal>LIKE</> pattern (there is nothing to escape) (Tom) a <literal>LIKE</> pattern (i.e., it has nothing to escape) (Tom)
</para>
<para>
Previously, such an escape character was silently ignored,
thus possibly masking application logic errors.
</para> </para>
</listitem> </listitem>
...@@ -460,24 +480,37 @@ do it for earlier branch release files. ...@@ -460,24 +480,37 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Have <function>to_char()</>'s localized month/day names depend <varname>DateStyle</> no longer controls <type>interval</> output
on <varname>LC_TIME</>, not <varname>LC_MESSAGES</> (Euler formatting; instead there is a new variable <varname>IntervalStyle</>
Taveira de Oliveira) (Ron Mayer)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Cause <function>to_date()</> and <function>to_timestamp()</> Improve consistency of handling of fractional seconds in
to more consistently report errors on invalid input (Brendan <type>timestamp</> and <type>interval</> output (Ron Mayer)
Jurd) </para>
<para>
This may result in displaying a different number of fractional
digits than before, or rounding instead of truncating.
</para>
</listitem>
<listitem>
<para>
Make <function>to_char()</>'s localized month/day names depend
on <varname>LC_TIME</>, not <varname>LC_MESSAGES</> (Euler
Taveira de Oliveira)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Provide consistent rounding for fractional seconds (Ron Mayer) Cause <function>to_date()</> and <function>to_timestamp()</>
bjm: combine with another item? to more consistently report errors for invalid input (Brendan
Jurd)
</para> </para>
</listitem> </listitem>
...@@ -497,9 +530,10 @@ do it for earlier branch release files. ...@@ -497,9 +530,10 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Require the existence of periods in <function>to_timestamp()</> Require <function>to_timestamp()</> input to match
meridian (<literal>AM</>/<literal>PM</>) and era meridian (<literal>AM</>/<literal>PM</>) and era
(<literal>BC</>/<literal>AD</>) format designations to match (<literal>BC</>/<literal>AD</>) format designations with
respect to presence of periods
(Brendan Jurd) (Brendan Jurd)
</para> </para>
...@@ -509,13 +543,6 @@ do it for earlier branch release files. ...@@ -509,13 +543,6 @@ do it for earlier branch release files.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<varname>DateStyle</> no longer controls <type>INTERVAL</>
output (use new variable <varname>IntervalStyle</>)
</para>
</listitem>
</itemizedlist> </itemizedlist>
</sect4> </sect4>
...@@ -539,11 +566,12 @@ do it for earlier branch release files. ...@@ -539,11 +566,12 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Improve optimizer statistics calculations (Tom, Jan Urbanski) Improve optimizer statistics calculations (Jan Urbanski, Tom)
</para> </para>
<para> <para>
This includes improved statistics for full text columns. In particular, estimates for full-text-search operators are
greatly improved.
</para> </para>
</listitem> </listitem>
...@@ -561,31 +589,23 @@ do it for earlier branch release files. ...@@ -561,31 +589,23 @@ do it for earlier branch release files.
the previous behavior can be restored by the previous behavior can be restored by
disabling <literal>enable_hashagg</>, but that is a very disabling <literal>enable_hashagg</>, but that is a very
performance-expensive fix. <literal>SELECT DISTINCT ON</> never performance-expensive fix. <literal>SELECT DISTINCT ON</> never
uses hashing. uses hashing, however, so its behavior is unchanged.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
New semi- and anti-joins (Tom) Create explicit concepts of semi-joins and anti-joins (Tom)
</para> </para>
<para> <para>
While semi-joins merely replace existing <literal>IN</> joins, This work formalizes our previous ad-hoc treatment of <literal>IN
anti-joins are a new capability for <literal>NOT EXISTS</> (SELECT ...)</> clauses, and extends it to <literal>EXISTS</> and
clauses. This improves optimization possibilities. <literal>NOT EXISTS</> clauses. It should result in significantly
</para> better planning of <literal>EXISTS</> and <literal>NOT EXISTS</>
</listitem> queries. In general, logically equivalent <literal>IN</> and
<literal>EXISTS</> clauses should now have similar performance,
<listitem> whereas previously <literal>IN</> often won.
<para>
Improve <literal>IN</>/<literal>ANY</>/<literal>EXISTS</>
processing (Tom)
</para>
<para>
<literal>IN</> and <literal>EXISTS</> now provide similar
performance for equivalent clauses.
</para> </para>
</listitem> </listitem>
...@@ -603,13 +623,7 @@ do it for earlier branch release files. ...@@ -603,13 +623,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Improve handling of subqueries by the optimizer (Tom) Reduce I/O load of writing the statistics collection file
</para>
</listitem>
<listitem>
<para>
Reduce I/O frequency of writing the backend statistics file
by writing the file only when requested (Martin Pihlak) by writing the file only when requested (Martin Pihlak)
</para> </para>
</listitem> </listitem>
...@@ -635,14 +649,13 @@ do it for earlier branch release files. ...@@ -635,14 +649,13 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Modify <varname>constraint_exclusion</> to check for partitioned Perform <varname>constraint_exclusion</> checking by default
tables by default when inheritance or <literal>UNION ALL</> is in queries involving inheritance or <literal>UNION ALL</> (Tom)
used (Tom)
</para> </para>
<para> <para>
A new <varname>constraint_exclusion</> setting, A new <varname>constraint_exclusion</> setting,
<literal>partition</>, was added to match this behavior. <literal>partition</>, was added to specify this behavior.
</para> </para>
</listitem> </listitem>
...@@ -653,8 +666,8 @@ do it for earlier branch release files. ...@@ -653,8 +666,8 @@ do it for earlier branch release files.
<para> <para>
The amount of read-ahead is controlled by The amount of read-ahead is controlled by
<varname>effective_io_concurrency</>. This requires <varname>effective_io_concurrency</>. This feature is available only
<function>posix_fadvise()</> support in the kernel. if the kernel has <function>posix_fadvise()</> support.
</para> </para>
</listitem> </listitem>
...@@ -703,7 +716,7 @@ do it for earlier branch release files. ...@@ -703,7 +716,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Convert many <filename>postgresql.conf</> settings to enumerated Convert many <filename>postgresql.conf</> settings to enumerated
values so <literal>pg_settings</> can easily display valid values so <literal>pg_settings</> can display valid
values (Magnus) values (Magnus)
</para> </para>
</listitem> </listitem>
...@@ -711,15 +724,15 @@ do it for earlier branch release files. ...@@ -711,15 +724,15 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <varname>cursor_tuple_fraction</> parameter to control the Add <varname>cursor_tuple_fraction</> parameter to control the
fraction of a cursor's rows expected to be requested by the fraction of a cursor's rows that the planner assumes will be
user (Robert Hell) fetched (Robert Hell)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Allow underscores in <filename>postgresql.conf</> custom variable Allow underscores in the names of custom variable
classes (Tom) classes in <filename>postgresql.conf</> (Tom)
</para> </para>
</listitem> </listitem>
...@@ -762,47 +775,49 @@ do it for earlier branch release files. ...@@ -762,47 +775,49 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Parse <filename>pg_hba.conf</> in the postmaster so errors are Parse <filename>pg_hba.conf</> fully when it is loaded,
reported on reload (Magnus) so that errors are reported immediately (Magnus)
</para> </para>
<para> <para>
Previously errors in the file wouldn't be detected until clients Previously, most errors in the file wouldn't be detected until clients
tried to connect, which could leave the system with a broken tried to connect, so an erroneous file could render the system
file loaded. unusable. With the new behavior, if an error is detected during
reload then the bad file is rejected and the postmaster continues
to use its old copy.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Remove the <literal>sameuser</> option, making it the default Show all parsing errors in <filename>pg_hba.conf</> instead of
if no usermap is specified (Magnus) aborting after the first one (Selena Deckelmann)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Change all authentication options to be <literal>name=value</> Remove the <literal>ident sameuser</> option, instead making that
settings (Magnus) behavior the default if no usermap is specified (Magnus)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Allow usermap parameter for all external authentication methods Change all authentication options to use <literal>name=value</>
(Magnus) syntax (Magnus)
</para> </para>
</listitem>
<listitem>
<para> <para>
Previously this was only supported for <literal>ident</> Allow a usermap parameter for all external authentication methods
authentication. (Magnus)
</para> </para>
</listitem>
<listitem>
<para> <para>
Allow <literal>ident</> authentication over Unix-domain sockets Previously a usermap was only supported for <literal>ident</>
on <productname>Solaris</> (Garick Hamlin) authentication.
</para> </para>
</listitem> </listitem>
...@@ -846,8 +861,8 @@ do it for earlier branch release files. ...@@ -846,8 +861,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <literal>krb5</>, <literal>gssapi</>, and <literal>sspi</> Add <varname>include_realm</> parameter for <literal>krb5</>,
<varname>include_realm</> parameter (Magnus) <literal>gssapi</>, and <literal>sspi</> methods (Magnus)
</para> </para>
<para> <para>
...@@ -858,8 +873,8 @@ do it for earlier branch release files. ...@@ -858,8 +873,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Show all parsing errors instead of aborting after the first Support <literal>ident</> authentication over Unix-domain sockets
one (Selena Deckelmann) on <productname>Solaris</> (Garick Hamlin)
</para> </para>
</listitem> </listitem>
...@@ -885,7 +900,7 @@ do it for earlier branch release files. ...@@ -885,7 +900,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Have <function>pg_stop_backup()</> wait for modified <acronym>WAL</> Make <function>pg_stop_backup()</> wait for modified <acronym>WAL</>
files to be archived (Simon) files to be archived (Simon)
</para> </para>
...@@ -897,14 +912,14 @@ do it for earlier branch release files. ...@@ -897,14 +912,14 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Prevent normal shutdown if a continuous archiving base backup Delay <quote>smart</> shutdown while a continuous archiving base backup
is in progress (Laurenz Albe) is in progress (Laurenz Albe)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Cancel a continuous archiving base backup if a fast shutdown Cancel a continuous archiving base backup if <quote>fast</> shutdown
is requested (Laurenz Albe) is requested (Laurenz Albe)
</para> </para>
</listitem> </listitem>
...@@ -913,6 +928,7 @@ do it for earlier branch release files. ...@@ -913,6 +928,7 @@ do it for earlier branch release files.
<para> <para>
Allow <filename>recovery.conf</> boolean variables to take the Allow <filename>recovery.conf</> boolean variables to take the
same range of string values as <filename>postgresql.conf</> same range of string values as <filename>postgresql.conf</>
boolean variables
(Bruce) (Bruce)
</para> </para>
</listitem> </listitem>
...@@ -938,47 +954,53 @@ do it for earlier branch release files. ...@@ -938,47 +954,53 @@ do it for earlier branch release files.
Add <function>pg_terminate_backend()</> to safely terminate a Add <function>pg_terminate_backend()</> to safely terminate a
backend (the <literal>SIGTERM</> signal works also) (Tom, Bruce) backend (the <literal>SIGTERM</> signal works also) (Tom, Bruce)
</para> </para>
<para>
While it's always been possible to <literal>SIGTERM</> a single
backend, this was previously considered unsupported; and testing
of the case found some bugs that are now fixed.
</para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add ability to track user-defined functions call counts and Add ability to track user-defined functions' call counts and
runtimes via parameter <varname>track_functions</> (Martin runtimes (Martin Pihlak)
Pihlak)
</para> </para>
<para> <para>
Function statistics appear in a new system table, Function statistics appear in a new system view,
<literal>pg_stat_user_functions</>. However, inlined <literal>pg_stat_user_functions</>. Tracking is controlled
<acronym>SQL</> functions are not tracked. by the new parameter <varname>track_functions</>.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Allow specification of the maximum <literal>pg_stat_activity</> Allow specification of the maximum query string size in
query string size via <varname>track_activity_query_size</> <literal>pg_stat_activity</> via new
parameter (Thomas Lee) <varname>track_activity_query_size</> parameter (Thomas Lee)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Improve syslog performance by increasing the maximum line length Increase the maximum line length sent to <application>syslog</>, in
(Tom) hopes of improving performance (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add read-only <filename>postgresql.conf</> variables <varname>segment_size</>, Add read-only configuration variables <varname>segment_size</>,
<varname>wal_block_size</>, and <varname>wal_segment_size</> (Bernd Helmle) <varname>wal_block_size</>, and <varname>wal_segment_size</>
(Bernd Helmle)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
When reporting a deadlock, report all session queries involved When reporting a deadlock, report the text of all queries involved
in the deadlock to the server log (Itagaki Takahiro) in the deadlock to the server log (Itagaki Takahiro)
</para> </para>
</listitem> </listitem>
...@@ -1001,8 +1023,7 @@ do it for earlier branch release files. ...@@ -1001,8 +1023,7 @@ do it for earlier branch release files.
This allows the statistics file to be placed in a This allows the statistics file to be placed in a
<acronym>RAM</>-resident directory to reduce I/O requirements. <acronym>RAM</>-resident directory to reduce I/O requirements.
On startup/shutdown, the file is copied to the top-level On startup/shutdown, the file is copied to the top-level
<literal>$PGDATA</> directory so it is preserved between <literal>$PGDATA</> directory so it is preserved across restarts.
restarts.
</para> </para>
</listitem> </listitem>
...@@ -1024,7 +1045,7 @@ do it for earlier branch release files. ...@@ -1024,7 +1045,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <literal>WITH</> clauses support, including <literal>WITH Add support for <literal>WITH</> clauses (CTEs), including <literal>WITH
RECURSIVE</> (Yoshiyuki Asaba, Tatsuo Ishii, Tom) RECURSIVE</> (Yoshiyuki Asaba, Tatsuo Ishii, Tom)
</para> </para>
</listitem> </listitem>
...@@ -1035,8 +1056,8 @@ do it for earlier branch release files. ...@@ -1035,8 +1056,8 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
<command>TABLE tablename</> is a short-hand for <command>SELECT <literal>TABLE tablename</> is a SQL standard short-hand for
* FROM tablename</>. <literal>SELECT * FROM tablename</>.
</para> </para>
</listitem> </listitem>
...@@ -1044,8 +1065,25 @@ do it for earlier branch release files. ...@@ -1044,8 +1065,25 @@ do it for earlier branch release files.
<para> <para>
Allow <literal>AS</> to be optional when specifying a Allow <literal>AS</> to be optional when specifying a
<command>SELECT</> (or <literal>RETURNING</>) column output <command>SELECT</> (or <literal>RETURNING</>) column output
label (assuming the label is not an <acronym>SQL</> keyword) label (Hiroshi Saito)
(Hiroshi Saito) </para>
<para>
This works so long as the column label is not any
<productname>PostgreSQL</> keyword; otherwise <literal>AS</> is still
needed.
</para>
</listitem>
<listitem>
<para>
Support set-returning functions in <command>SELECT</> result lists
even for functions that return their result via a tuplestore (Tom)
</para>
<para>
In particular, this means that functions written in PL/PgSQL
and other PL languages can now be called this way.
</para> </para>
</listitem> </listitem>
...@@ -1073,7 +1111,7 @@ do it for earlier branch release files. ...@@ -1073,7 +1111,7 @@ do it for earlier branch release files.
There are no remote or external <acronym>SQL/MED</> capabilities There are no remote or external <acronym>SQL/MED</> capabilities
yet, but this change provides a standardized and future-proof yet, but this change provides a standardized and future-proof
system for managing connection information for modules like system for managing connection information for modules like
dblink and plproxy. <filename>dblink</> and <filename>plproxy</>.
</para> </para>
</listitem> </listitem>
...@@ -1095,9 +1133,9 @@ do it for earlier branch release files. ...@@ -1095,9 +1133,9 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
Specifically this allows <literal>array[row(1,2), row(3,4)]</> This allows constructs such as
and <literal>row(1,1.1) = any (array[row(7,7.7), row(1,1.0)])</>. <literal>row(1, 1.1) = any (array[row(7, 7.7), row(1, 1.0)])</>.
This is particularly useful for recursive queries. This is particularly useful in recursive queries.
</para> </para>
</listitem> </listitem>
...@@ -1113,6 +1151,11 @@ do it for earlier branch release files. ...@@ -1113,6 +1151,11 @@ do it for earlier branch release files.
<para> <para>
Improve the parser's ability to report error locations (Tom) Improve the parser's ability to report error locations (Tom)
</para> </para>
<para>
An error location is now reported for many semantic errors,
such as mismatched datatypes, that previously could not be localized.
</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
...@@ -1162,8 +1205,8 @@ do it for earlier branch release files. ...@@ -1162,8 +1205,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Have <command>EXPLAIN VERBOSE</> show the output columns of a Make <command>EXPLAIN VERBOSE</> show the output columns of each
query (Tom) plan node (Tom)
</para> </para>
<para> <para>
...@@ -1182,7 +1225,7 @@ do it for earlier branch release files. ...@@ -1182,7 +1225,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Have <command>EXPLAIN</> honor <varname>debug_print_plan</> (Tom) Make <command>EXPLAIN</> honor <varname>debug_print_plan</> (Tom)
</para> </para>
</listitem> </listitem>
...@@ -1202,15 +1245,7 @@ do it for earlier branch release files. ...@@ -1202,15 +1245,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow <literal>LIMIT</> and <literal>OFFSET</> to use subselects Allow sub-selects in <literal>LIMIT</> and <literal>OFFSET</> (Tom)
as arguments (Tom)
</para>
</listitem>
<listitem>
<para>
Document that <literal>LIMIT NULL</> and <literal>OFFSET NULL</>
have no effect (Tom)
</para> </para>
</listitem> </listitem>
...@@ -1261,7 +1296,7 @@ do it for earlier branch release files. ...@@ -1261,7 +1296,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <literal>WITH [NO] DATA</> clause to <command>CREATE TABLE Add <literal>WITH [NO] DATA</> clause to <command>CREATE TABLE
AS</>, per the <acronym>SQL</> standard (Tom, Peter) AS</>, per the <acronym>SQL</> standard (Peter, Tom)
</para> </para>
</listitem> </listitem>
...@@ -1274,7 +1309,7 @@ do it for earlier branch release files. ...@@ -1274,7 +1309,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow <command>CREATE AGGREGATE</> to use an <type>internal</> Allow <command>CREATE AGGREGATE</> to use an <type>internal</>
transition datatype (for super-users only) (Tom) transition datatype (Tom)
</para> </para>
</listitem> </listitem>
...@@ -1292,7 +1327,7 @@ do it for earlier branch release files. ...@@ -1292,7 +1327,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow <command>CREATE OR REPLACE VIEW</> to add columns to the Allow <command>CREATE OR REPLACE VIEW</> to add columns to the
<emphasis>end</> of a view (Robert Haas) end of a view (Robert Haas)
</para> </para>
</listitem> </listitem>
...@@ -1310,9 +1345,8 @@ do it for earlier branch release files. ...@@ -1310,9 +1345,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <command>ALTER SEQUENCE ... RESTART</> (no parameter) to Add <command>ALTER SEQUENCE ... RESTART</> (with no parameter) to
reset a sequence to its initial value (Zoltan Boszormenyi) reset a sequence to its initial value (Zoltan Boszormenyi)
bjm: compatibility problem?
</para> </para>
</listitem> </listitem>
...@@ -1321,15 +1355,10 @@ do it for earlier branch release files. ...@@ -1321,15 +1355,10 @@ do it for earlier branch release files.
Modify the <command>ALTER TABLE</> syntax to allow all reasonable Modify the <command>ALTER TABLE</> syntax to allow all reasonable
combinations for tables, indexes, sequences, and views (Tom) combinations for tables, indexes, sequences, and views (Tom)
</para> </para>
</listitem>
<listitem>
<para> <para>
New syntax supported (these formerly required <command>ALTER This change allows the following new syntaxes:
TABLE</>)
</para>
<para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
...@@ -1352,8 +1381,11 @@ do it for earlier branch release files. ...@@ -1352,8 +1381,11 @@ do it for earlier branch release files.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</para>
There is no actual new functionality here, but formerly
you had to say <command>ALTER TABLE</> to do these things,
which was confusing.
</para>
</listitem> </listitem>
<listitem> <listitem>
...@@ -1370,8 +1402,8 @@ do it for earlier branch release files. ...@@ -1370,8 +1402,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Have <command>ALTER TABLE SET WITHOUT OIDS</> rewrite the table Make <command>ALTER TABLE SET WITHOUT OIDS</> rewrite the table
to remove <type>OID</> values (Tom) to physically remove <type>OID</> values (Tom)
</para> </para>
<para> <para>
...@@ -1399,8 +1431,8 @@ do it for earlier branch release files. ...@@ -1399,8 +1431,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Make <varname>LC_COLLATE</> and <varname>LC_CTYPE</> database-level Make <varname>LC_COLLATE</> and <varname>LC_CTYPE</> into
settings (Radek Strnad, Heikki) per-database settings (Radek Strnad, Heikki)
</para> </para>
<para> <para>
...@@ -1437,7 +1469,7 @@ do it for earlier branch release files. ...@@ -1437,7 +1469,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add verbose option to the <command>CLUSTER</> command and Add a verbose option to the <command>CLUSTER</> command and
<application>clusterdb</> (Jim Cox) <application>clusterdb</> (Jim Cox)
</para> </para>
</listitem> </listitem>
...@@ -1469,13 +1501,13 @@ do it for earlier branch release files. ...@@ -1469,13 +1501,13 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Have hash indexes store only the hashed value, not the full Make hash indexes store only the hashed value, not the full
indexed columns (Xiao Meng) indexed columns (Xiao Meng)
</para> </para>
<para> <para>
This greatly reduces the size of hash indexes for long indexed This greatly reduces the size of hash indexes for long indexed
values, and improves performance. values, improving performance.
</para> </para>
</listitem> </listitem>
...@@ -1493,7 +1525,7 @@ do it for earlier branch release files. ...@@ -1493,7 +1525,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
<literal>xxx_pattern_ops</> indexes can now be used for simple <literal>xxx_pattern_ops</> indexes can now be used for simple
equality comparisons, not only <literal>LIKE</> (Tom) equality comparisons, not only for <literal>LIKE</> (Tom)
</para> </para>
</listitem> </listitem>
...@@ -1540,13 +1572,13 @@ do it for earlier branch release files. ...@@ -1540,13 +1572,13 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Improve support for Nepali language and Devanagari alphabet (Teodor) Support multi-column <acronym>GIN</> indexes (Teodor Sigaev)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Support multi-column <acronym>GIN</> indexes (Teodor Sigaev) Improve support for Nepali language and Devanagari alphabet (Teodor)
</para> </para>
</listitem> </listitem>
...@@ -1560,53 +1592,55 @@ do it for earlier branch release files. ...@@ -1560,53 +1592,55 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow relation forks to track free space (Heikki) Track free space in separate per-relation <quote>fork</> files (Heikki)
</para> </para>
<para> <para>
This allows the recording of all free space discovered by vacuum Free space discovered by <command>VACUUM</> is now recorded in
in <filename>*.fsm</> files, rather than having to limit <filename>*_fsm</> files, rather than in a fixed-sized shared memory
recording to a fixed-sized shared memory area; area. The <varname>max_fsm_pages</> and <varname>max_fsm_relations</>
<varname>max_fsm_pages</> and <varname>max_fsm_relations</> settings have been removed, greatly simplifying administration of
settings have been removed. free space management.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
New visibility map file to track pages that do not require Add a visibility map to track pages that do not require
vacuum (Heikki) vacuuming (Heikki)
</para> </para>
<para> <para>
This allows <command>VACUUM</> to avoid sequentially scanning This allows <command>VACUUM</> to avoid scanning all of
a table when only a portion of the table needs vacuuming. a table when only a portion of the table needs vacuuming.
The visibility map is stored in per-relation <quote>fork</> files.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Track explicit transaction snapshots (Alvaro) Add <varname>vacuum_freeze_table_age</> parameter to control
when <command>VACUUM</> should ignore the visibility map and
do a full table scan to set frozen xids (Heikki)
</para> </para>
</listitem>
<listitem>
<para> <para>
This improves space reuse by vacuum in the presence of long-running Track transaction snapshots more carefully (Alvaro)
transactions.
</para> </para>
</listitem>
<listitem>
<para> <para>
Add <varname>vacuum_freeze_table_age</> parameter to control This can improve space reuse by <command>VACUUM</> in the presence of
when <command>VACUUM</> should ignore the visibility map and long-running transactions.
do a full table scan to set frozen xids (Heikki)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add ability to specify autovacuum and <acronym>TOAST</> parameters Add ability to specify per-relation autovacuum and <acronym>TOAST</>
in <command>CREATE TABLE</> (Alvaro, Euler Taveira de Oliveira) parameters in <command>CREATE TABLE</> (Alvaro, Euler Taveira de
Oliveira)
</para> </para>
<para> <para>
...@@ -1646,26 +1680,26 @@ do it for earlier branch release files. ...@@ -1646,26 +1680,26 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <type>int2</> with <type>int8</> basic arithmetic operators Add basic arithmetic operators for <type>int2</> with <type>int8</>
(Tom) (Tom)
</para> </para>
<para> <para>
This simplifies casting requirements. This eliminates the need for explicit casting in some situations.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Allow <type>UUID</> input to accept optional hyphens after Allow <type>UUID</> input to accept an optional hyphen after
every four digits (Robert Haas) every fourth digit (Robert Haas)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Accept <literal>on</>/<literal>off</> as boolean data type Allow <literal>on</>/<literal>off</> as input for the boolean data type
values (Itagaki Takahiro) (Itagaki Takahiro)
</para> </para>
</listitem> </listitem>
...@@ -1689,9 +1723,9 @@ do it for earlier branch release files. ...@@ -1689,9 +1723,9 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
Previously these were interpreted as <literal>1 BC</>; years Previously these were interpreted as <literal>1 BC</>.
<literal>0</> and <literal>00</> are assumed to be the year (Note: years <literal>0</> and <literal>00</> are still assumed to be
2000. the year 2000.)
</para> </para>
</listitem> </listitem>
...@@ -1704,8 +1738,8 @@ do it for earlier branch release files. ...@@ -1704,8 +1738,8 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Support the <acronym>IS0 8601</> <type>interval</> syntax (Tom, Support the <acronym>IS0 8601</> <type>interval</> syntax (Kevin
Kevin Grittner) Grittner)
</para> </para>
<para> <para>
...@@ -1716,41 +1750,42 @@ do it for earlier branch release files. ...@@ -1716,41 +1750,42 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow <type>INTERVAL</> precision to be specified after the Allow <type>interval</> precision to be specified after the
last field, for <acronym>SQL</>-standards compliance (Tom) last field, for <acronym>SQL</>-standards compliance (Tom)
</para> </para>
<para> <para>
Formerly the precision had to be specified after the keyword Formerly the precision had to be specified after the keyword
<type>INTERVAL</> (this syntax is still supported). Data type <type>interval</> (this syntax is still supported). Data type
definitions will now be output using the new format. definitions will now be output using the new format.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Support <literal>infinite</> dates (Tom) Support <literal>infinity</> and <literal>-infinity</> as
values of type <type>date</> (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add <varname>IntervalStyle</> parameter Add <varname>IntervalStyle</> parameter
which controls how <type>INTERVAL</> values are output (Ron Mayer) which controls how <type>interval</> values are output (Ron Mayer)
</para> </para>
<para> <para>
Valid value are: <literal>postgres</>, <literal>postgres_verbose</>, Valid values are: <literal>postgres</>, <literal>postgres_verbose</>,
<literal>sql_standard</>, <literal>iso_8601</>. This also <literal>sql_standard</>, <literal>iso_8601</>. This setting also
controls the handling of negative <type>INTERVAL</> input when only controls the handling of negative <type>interval</> input when only
some fields have positive/negative designations. some fields have positive/negative designations.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Make <type>INTERVAL</> seconds rounding more consistent across Improve consistency of handling of fractional seconds in
output formats (Ron Mayer) <type>timestamp</> and <type>interval</> output (Ron Mayer)
</para> </para>
</listitem> </listitem>
...@@ -1764,13 +1799,18 @@ do it for earlier branch release files. ...@@ -1764,13 +1799,18 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Have cast on <type>ARRAY</> apply to all elements, not just Improve the handling of casts applied to <literal>ARRAY[]</>
the array result (Brendan Jurd) constructs, such as <literal>ARRAY[...]::integer[]</>
(Brendan Jurd)
</para> </para>
<para> <para>
This allows <literal>NULL</> <type>ARRAY</> entries as long as Formerly <productname>PostgreSQL</> attempted to determine a data type
they are properly cast. for the <literal>ARRAY[]</> construct without reference to the ensuing
cast. This could fail unnecessarily in many cases, in particular when
the <literal>ARRAY[]</> construct was empty or contained only
ambiguous entries such as <literal>NULL</>. Now the cast is consulted
to determine the type that the array elements must be.
</para> </para>
</listitem> </listitem>
...@@ -1791,7 +1831,7 @@ do it for earlier branch release files. ...@@ -1791,7 +1831,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <function>array_length()</> to return the length Add <function>array_length()</> to return the length
of an array for the specified dimensions (Jim Nasby, Robert of an array for a specified dimension (Jim Nasby, Robert
Haas, Peter Eisentraut) Haas, Peter Eisentraut)
</para> </para>
</listitem> </listitem>
...@@ -1847,21 +1887,24 @@ do it for earlier branch release files. ...@@ -1847,21 +1887,24 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Consider <acronym>TOAST</> compression on values as short as Consider <acronym>TOAST</> compression on values as short as
32 bytes (previously 256 bytes) (Tom) 32 bytes (previously 256 bytes) (Greg Stark)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Require 25% of space savings before using <acronym>TOAST</> Require 25% minimum space savings before using <acronym>TOAST</>
compression (previously 20%) (Tom) compression (previously 20% for small values and any-savings-at-all
for large values) (Greg)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Be more aggressive in storing <literal>EXTERNAL</> and Improve toast heuristics for rows including a mix of large and
<literal>EXTENDED</> column values in <acronym>TOAST</>(Tom) small toastable fields, so that we prefer to push large values
out of line and don't compress small values unnecessarily
(Greg, Tom)
</para> </para>
</listitem> </listitem>
...@@ -1885,7 +1928,7 @@ do it for earlier branch release files. ...@@ -1885,7 +1928,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add server side function <function>lo_import(filename, oid)</> Add server-side function <function>lo_import(filename, oid)</>
(Tatsuo) (Tatsuo)
</para> </para>
</listitem> </listitem>
...@@ -1893,14 +1936,14 @@ do it for earlier branch release files. ...@@ -1893,14 +1936,14 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <function>quote_nullable()</>, which behaves like Add <function>quote_nullable()</>, which behaves like
<function>quote_literal()</> but returns <literal>NULL</> for <function>quote_literal()</> but returns the string <literal>NULL</> for
a null argument (Brendan Jurd) a null argument (Brendan Jurd)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Improve full text search <function>headline()</> generation to Improve full text search <function>headline()</> function to
allow several fragments (Sushant Sinha) allow several fragments (Sushant Sinha)
</para> </para>
</listitem> </listitem>
...@@ -1908,14 +1951,14 @@ do it for earlier branch release files. ...@@ -1908,14 +1951,14 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <function>suppress_redundant_updates_trigger()</> trigger Add <function>suppress_redundant_updates_trigger()</> trigger
function to avoid non-data-changing updates (Andrew) function to prevent non-data-changing updates (Andrew)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add <function>div(NUMERIC, NUMERIC)</> for <type>NUMERIC</> Add <function>div(numeric, numeric)</> to perform <type>numeric</>
division, without rounding (Tom) division without rounding (Tom)
</para> </para>
</listitem> </listitem>
...@@ -1941,25 +1984,18 @@ do it for earlier branch release files. ...@@ -1941,25 +1984,18 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <function>pg_get_keywords()</> to return predefined Add <function>pg_get_keywords()</> to return a list of the
parser keywords (Dave Page) parser keywords (Dave Page)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add <function>pg_get_functiondef()</> to see a functions Add <function>pg_get_functiondef()</> to see a function's
definition (Abhijit Menon-Sen) definition (Abhijit Menon-Sen)
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Modify <function>pg_relation_size()</> to handle free space
map (<filename>*.fsm</>) files (Heikki)
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Modify <function>pg_relation_size()</> to use <literal>regclass</> Modify <function>pg_relation_size()</> to use <literal>regclass</>
...@@ -1999,7 +2035,7 @@ do it for earlier branch release files. ...@@ -1999,7 +2035,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Have <function>version()</> return information about whether Make <function>version()</> return information about whether
the server is a 32 or 64-bit binary (Bruce) the server is a 32 or 64-bit binary (Bruce)
</para> </para>
</listitem> </listitem>
...@@ -2028,7 +2064,7 @@ do it for earlier branch release files. ...@@ -2028,7 +2064,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Have <function>pg_*_is_visible()</> and Make <function>pg_*_is_visible()</> and
<function>has_*_privilege()</> functions return <literal>NULL</> <function>has_*_privilege()</> functions return <literal>NULL</>
for invalid oids, rather than generate an error (Tom) for invalid oids, rather than generate an error (Tom)
</para> </para>
...@@ -2064,7 +2100,7 @@ do it for earlier branch release files. ...@@ -2064,7 +2100,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow <literal>DEFAULT</> values for function arguments (Pavel Support <literal>DEFAULT</> values for function arguments (Pavel
Stehule) Stehule)
</para> </para>
</listitem> </listitem>
...@@ -2082,10 +2118,6 @@ do it for earlier branch release files. ...@@ -2082,10 +2118,6 @@ do it for earlier branch release files.
of an <command>INSERT</>/<command>UPDATE</>/<command>DELETE</> of an <command>INSERT</>/<command>UPDATE</>/<command>DELETE</>
<literal>RETURNING</> clause (Tom) <literal>RETURNING</> clause (Tom)
</para> </para>
<para>
Formerly only <command>SELECT</> was supported.
</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
...@@ -2104,7 +2136,7 @@ do it for earlier branch release files. ...@@ -2104,7 +2136,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow looping over an open cursor using a <literal>FOR</> Allow looping over the results of a cursor using a <literal>FOR</>
loop (Pavel Stehule) loop (Pavel Stehule)
</para> </para>
</listitem> </listitem>
...@@ -2118,7 +2150,7 @@ do it for earlier branch release files. ...@@ -2118,7 +2150,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Improve the <literal>RAISE</> command: (Pavel Stehule) Improve the <literal>RAISE</> command (Pavel Stehule)
<itemizedlist> <itemizedlist>
<listitem> <listitem>
...@@ -2139,7 +2171,7 @@ do it for earlier branch release files. ...@@ -2139,7 +2171,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow <literal>RAISE</> without parameters in an exception Allow <literal>RAISE</> without parameters in an exception
block to rethrow the current error block to re-throw the current error
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
...@@ -2148,7 +2180,7 @@ do it for earlier branch release files. ...@@ -2148,7 +2180,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow specification of <varname>SQLSTATE</> numeric codes Allow specification of numeric <varname>SQLSTATE</> codes
in <literal>EXCEPTION</> lists (Pavel Stehule) in <literal>EXCEPTION</> lists (Pavel Stehule)
</para> </para>
...@@ -2219,7 +2251,7 @@ do it for earlier branch release files. ...@@ -2219,7 +2251,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Remove <literal>-q</> (quiet) option for create* and drop* Remove <literal>-q</> (quiet) option of create* and drop*
utility commands (Peter) utility commands (Peter)
</para> </para>
...@@ -2232,19 +2264,19 @@ do it for earlier branch release files. ...@@ -2232,19 +2264,19 @@ do it for earlier branch release files.
</itemizedlist> </itemizedlist>
<sect4> <sect4>
<title><link linkend="APP-PSQL"><application>psql</></link></title> <title><application>psql</></title>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
Remove startup banner; now just suggest <literal>help</> Remove verbose startup banner; now just suggest <literal>help</>
(Joshua Drake) (Joshua Drake)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Have <literal>help</> show common backslash commands (Greg Make <literal>help</> show common backslash commands (Greg
Sabino Mullane) Sabino Mullane)
</para> </para>
</listitem> </listitem>
...@@ -2268,6 +2300,10 @@ do it for earlier branch release files. ...@@ -2268,6 +2300,10 @@ do it for earlier branch release files.
Require a space between a backslash command and the first Require a space between a backslash command and the first
argument (Bernd Helmle) argument (Bernd Helmle)
</para> </para>
<para>
This removes a historical source of ambiguity.
</para>
</listitem> </listitem>
<listitem> <listitem>
...@@ -2279,14 +2315,14 @@ do it for earlier branch release files. ...@@ -2279,14 +2315,14 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Improve tab completion support for schema qualified and Improve tab completion support for schema-qualified and
quoted identifiers (Greg Sabino Mullane) quoted identifiers (Greg Sabino Mullane)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Allow the normal range of boolean values in <command>\pset</>, Allow all supported spellings of boolean values in <command>\pset</>,
rather than just <literal>on</> and <literal>off</> (Bruce) rather than just <literal>on</> and <literal>off</> (Bruce)
</para> </para>
</listitem> </listitem>
...@@ -2300,13 +2336,13 @@ do it for earlier branch release files. ...@@ -2300,13 +2336,13 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Have <command>\l</> show access privileges (Andrew Gilligan) Make <command>\l</> show access privileges (Andrew Gilligan)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Have <command>\l+</> show database sizes, if permissions Make <command>\l+</> show database sizes, if permissions
allow (Andrew Gilligan) allow (Andrew Gilligan)
</para> </para>
</listitem> </listitem>
...@@ -2316,11 +2352,6 @@ do it for earlier branch release files. ...@@ -2316,11 +2352,6 @@ do it for earlier branch release files.
Add the <command>\ef</> command to edit function definitions Add the <command>\ef</> command to edit function definitions
(Abhijit Menon-Sen) (Abhijit Menon-Sen)
</para> </para>
<para>
<command>\ef</> without a function name creates an empty
function template for editing.
</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
...@@ -2328,19 +2359,19 @@ do it for earlier branch release files. ...@@ -2328,19 +2359,19 @@ do it for earlier branch release files.
</sect4> </sect4>
<sect4> <sect4>
<title><link linkend="APP-PSQL"><application>psql</></link> \d*</title> <title><application>psql</> \d* commands</title>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
Have <command>\d</> show cases where this table is referenced Make <command>\d</> show cases where the current table is referenced
as a foreign-key constraint (Kenneth D'Souza) by a foreign-key constraint (Kenneth D'Souza)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Have <command>\d</> show the value of sequence columns Make <command>\d</> on a sequence show its column values
(Euler Taveira de Oliveira) (Euler Taveira de Oliveira)
</para> </para>
</listitem> </listitem>
...@@ -2355,7 +2386,7 @@ do it for earlier branch release files. ...@@ -2355,7 +2386,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Show relation size in <command>\d+</> output (Dickson S. Show relation size in <command>\dt+</> output (Dickson S.
Guedes) Guedes)
</para> </para>
</listitem> </listitem>
...@@ -2369,25 +2400,15 @@ do it for earlier branch release files. ...@@ -2369,25 +2400,15 @@ do it for earlier branch release files.
<para> <para>
The former behavior was inconsistent across different variants The former behavior was inconsistent across different variants
of <command>\d</>, and provided no easy way to see just user objects. of <command>\d</>, and in most cases it provided no easy way to see
</para> just user objects.
</listitem>
<listitem>
<para>
Make <command>\d</> and <command>\dt</> consistent in
their display of system tables (Bruce)
</para>
<para>
Previously, <literal>\d pg_class</> would show <literal>pg_class</>
while <literal>\dt pg_class</> would not.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Show enumerated values in <command>\dT+</> (David Fetter) Show the values of <literal>enum</> types in <command>\dT+</> (David
Fetter)
</para> </para>
</listitem> </listitem>
...@@ -2423,14 +2444,14 @@ do it for earlier branch release files. ...@@ -2423,14 +2444,14 @@ do it for earlier branch release files.
</sect4> </sect4>
<sect4> <sect4>
<title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title> <title><application>pg_dump</></title>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
Add a <literal>--no-tablespaces</> option to Add a <literal>--no-tablespaces</> option to
<application>pg_dump</>/<application>pg_dumpall</>/<application>pg_restore</> <application>pg_dump</>/<application>pg_dumpall</>/<application>pg_restore</>
so dumps can be restored to clusters that have non-matching so that dumps can be restored to clusters that have non-matching
tablespace layouts (Gavin Roy) tablespace layouts (Gavin Roy)
</para> </para>
</listitem> </listitem>
...@@ -2459,7 +2480,7 @@ do it for earlier branch release files. ...@@ -2459,7 +2480,7 @@ do it for earlier branch release files.
<para> <para>
Use of this option does not throw an error, but it has no Use of this option does not throw an error, but it has no
effect. This option was removed because the version checks effect. This option was removed because the version checks
are considered necessary. are necessary for safety.
</para> </para>
</listitem> </listitem>
...@@ -2485,14 +2506,14 @@ do it for earlier branch release files. ...@@ -2485,14 +2506,14 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Reorder <application>pg_dump</> <literal>--data-only</> output Reorder <application>pg_dump</> <literal>--data-only</> output
to dump primary-key tables referenced by foreign keys before to dump tables referenced by foreign keys before
the foreign-key referencing tables (Tom) the referencing tables (Tom)
</para> </para>
<para> <para>
This allows data loads when foreign keys are already present. This allows data loads when foreign keys are already present.
If circular references make this impossible, a <literal>NOTICE</> If circular references make a safe ordering impossible, a
is issued. <literal>NOTICE</> is issued.
</para> </para>
</listitem> </listitem>
...@@ -2506,20 +2527,20 @@ do it for earlier branch release files. ...@@ -2506,20 +2527,20 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Allow <application>pg_restore</> of a custom format archive to Allow <application>pg_restore</> to use multiple concurrent
use multiple concurrent connections to do the restore (Andrew) connections to do the restore (Andrew)
</para> </para>
<para> <para>
The number of concurrent connections is controlled by the option The number of concurrent connections is controlled by the option
<literal>--jobs</>. <literal>--jobs</>. This is supported only for custom-format archives.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add new <application>pg_dump</> <literal>--binary-upgrade</> Add new <application>pg_dump</> option <option>--binary-upgrade</>
option for use by binary upgrade utilities (Bruce) for use by binary upgrade utilities (Bruce)
</para> </para>
</listitem> </listitem>
...@@ -2533,13 +2554,13 @@ do it for earlier branch release files. ...@@ -2533,13 +2554,13 @@ do it for earlier branch release files.
<title>Programming Tools</title> <title>Programming Tools</title>
<sect4> <sect4>
<title><link linkend="libpq"><application>libpq</></link></title> <title><application>libpq</></title>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
Allow the <type>OID</> to be specified when importing large Allow the <type>OID</> to be specified when importing a large
objects using <function>lo_import_with_oid()</> (Tatsuo) object, via new function <function>lo_import_with_oid()</> (Tatsuo)
</para> </para>
</listitem> </listitem>
...@@ -2563,7 +2584,7 @@ do it for earlier branch release files. ...@@ -2563,7 +2584,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Have <function>PQexecParams()</> return Make <function>PQexecParams()</> return
<varname>PGRES_EMPTY_QUERY</> for an empty query (Tom) <varname>PGRES_EMPTY_QUERY</> for an empty query (Tom)
</para> </para>
...@@ -2584,8 +2605,8 @@ do it for earlier branch release files. ...@@ -2584,8 +2605,8 @@ do it for earlier branch release files.
</sect4> </sect4>
<sect4> <sect4>
<title><link linkend="libpq"><application>libpq</></link> <title><application>libpq</> <acronym>SSL</> (Secure Sockets Layer)
<acronym>SSL</> (Secure Sockets Layer)</title> support</title>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
...@@ -2604,13 +2625,6 @@ do it for earlier branch release files. ...@@ -2604,13 +2625,6 @@ do it for earlier branch release files.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Allow the file locations for client certificates to be specified
(Mark Woodward, Alvaro, Magnus)
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Add connection parameter <literal>sslverify</> to control Add connection parameter <literal>sslverify</> to control
...@@ -2623,6 +2637,13 @@ do it for earlier branch release files. ...@@ -2623,6 +2637,13 @@ do it for earlier branch release files.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Allow the file locations for client certificates to be specified
(Mark Woodward, Alvaro, Magnus)
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Add a <function>PQinitOpenSSL</> function to allow greater control Add a <function>PQinitOpenSSL</> function to allow greater control
...@@ -2633,7 +2654,7 @@ do it for earlier branch release files. ...@@ -2633,7 +2654,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Properly unregister <application>OpenSSL</> callbacks when Properly unregister <application>OpenSSL</> callbacks when
libpq is done with all connections (Bruce, Magnus, Russell Smith) libpq is finished with all connections (Bruce, Magnus, Russell Smith)
</para> </para>
<para> <para>
...@@ -2647,7 +2668,7 @@ do it for earlier branch release files. ...@@ -2647,7 +2668,7 @@ do it for earlier branch release files.
</sect4> </sect4>
<sect4> <sect4>
<title><link linkend="ecpg"><application>ecpg</></link></title> <title><application>ecpg</></title>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
...@@ -2664,7 +2685,7 @@ do it for earlier branch release files. ...@@ -2664,7 +2685,7 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
Previously a separate ecpg parser was maintained. Previously the ecpg parser was hand-maintained.
</para> </para>
</listitem> </listitem>
...@@ -2705,24 +2726,6 @@ do it for earlier branch release files. ...@@ -2705,24 +2726,6 @@ do it for earlier branch release files.
<title>Build Options</title> <title>Build Options</title>
<itemizedlist> <itemizedlist>
<listitem>
<para>
Support 64-bit time zone data files (Heikki)
</para>
<para>
This adds support for daylight saving time (<acronym>DST</>)
calculations beyond year 2038.
</para>
</listitem>
<listitem>
<para>
Fix bug in handling of the time zone database when cross-compiling
(Richard Evans)
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Update build system to use <productname>Autoconf</> 2.61 (Peter) Update build system to use <productname>Autoconf</> 2.61 (Peter)
...@@ -2735,8 +2738,8 @@ do it for earlier branch release files. ...@@ -2735,8 +2738,8 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
This has been a requirement for several years but this removes This has effectively been required for several years, but now there
the infrastructure for supporting other parser tools. is no infrastructure claiming to support other parser tools.
</para> </para>
</listitem> </listitem>
...@@ -2779,9 +2782,9 @@ do it for earlier branch release files. ...@@ -2779,9 +2782,9 @@ do it for earlier branch release files.
</para> </para>
<para> <para>
This allows compile-time control over several constants that This simplifies build-time control over several constants that
affect how tables and <acronym>WAL</> files are segmented and previously could only be changed by editing
their internal block sizes. <filename>pg_config_manual.h</>.
</para> </para>
</listitem> </listitem>
...@@ -2812,13 +2815,13 @@ do it for earlier branch release files. ...@@ -2812,13 +2815,13 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Append the major version number to the <application>gettext</> Append the major version number to the backend <application>gettext</>
domain, and the <literal>soname</> major version number to domain, and the <literal>soname</> major version number to
libraries (Peter) libraries' <application>gettext</> domain (Peter)
</para> </para>
<para> <para>
This simplifies parallel installations. This simplifies parallel installations of multiple versions.
</para> </para>
</listitem> </listitem>
...@@ -2836,14 +2839,6 @@ do it for earlier branch release files. ...@@ -2836,14 +2839,6 @@ do it for earlier branch release files.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Fix problem when setting <varname>LC_MESSAGES</> on
<application>MSVC</>-built systems (Hiroshi Inoue, Hiroshi
Saito, Magnus) bjm: details?
</para>
</listitem>
</itemizedlist> </itemizedlist>
</sect3> </sect3>
...@@ -2852,6 +2847,24 @@ do it for earlier branch release files. ...@@ -2852,6 +2847,24 @@ do it for earlier branch release files.
<title>Source Code</title> <title>Source Code</title>
<itemizedlist> <itemizedlist>
<listitem>
<para>
Support 64-bit time zone data files (Heikki)
</para>
<para>
This adds support for daylight saving time (<acronym>DST</>)
calculations beyond the year 2038.
</para>
</listitem>
<listitem>
<para>
Fix bug in handling of the time zone database when cross-compiling
(Richard Evans)
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Link backend object files in one step, rather than in stages Link backend object files in one step, rather than in stages
...@@ -2907,7 +2920,7 @@ do it for earlier branch release files. ...@@ -2907,7 +2920,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add function hook to let plug-ins control the executor (Itagaki Add function hook to let plug-ins monitor the executor (Itagaki
Takahiro) Takahiro)
</para> </para>
</listitem> </listitem>
...@@ -2976,6 +2989,14 @@ do it for earlier branch release files. ...@@ -2976,6 +2989,14 @@ do it for earlier branch release files.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Fix problem when setting <varname>LC_MESSAGES</> on
<application>MSVC</>-built systems (Hiroshi Inoue, Hiroshi
Saito, Magnus)
</para>
</listitem>
</itemizedlist> </itemizedlist>
</sect3> </sect3>
...@@ -2986,21 +3007,14 @@ do it for earlier branch release files. ...@@ -2986,21 +3007,14 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add query mode option to <filename>/contrib/pgbench</> Add duration and query mode options to <filename>contrib/pgbench</>
(Itagaki Takahiro) (Itagaki Takahiro)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add duration option to <filename>/contrib/pgbench</> (Itagaki Fix <filename>contrib/pgstattuple</> to handle tables and
Takahiro)
</para>
</listitem>
<listitem>
<para>
Fix <filename>/contrib/pgstattuple</> to handle tables and
indexes with over 2 billion pages (Tatsuhito Kasahara) indexes with over 2 billion pages (Tatsuhito Kasahara)
</para> </para>
</listitem> </listitem>
...@@ -3008,7 +3022,7 @@ do it for earlier branch release files. ...@@ -3008,7 +3022,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add Levenshtein string-distance function to Add Levenshtein string-distance function to
<filename>/contrib/fuzzystrmatch</> that allows the user to <filename>contrib/fuzzystrmatch</> that allows the user to
specify the cost of insertion, deletion, and substitution specify the cost of insertion, deletion, and substitution
(Volkan Yazici) (Volkan Yazici)
</para> </para>
...@@ -3017,37 +3031,37 @@ do it for earlier branch release files. ...@@ -3017,37 +3031,37 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Remove <function>dblink_current_query()</> from Remove <function>dblink_current_query()</> from
<filename>/contrib/dblink</>; it should now use <filename>contrib/dblink</>; one should now use
<function>current_query()</> (Tomas Doran) <function>current_query()</> (Tomas Doran)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Have <filename>/contrib/ltree</> support multibyte encodings Make <filename>contrib/ltree</> support multibyte encodings
(laser) (laser)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add <filename>/contrib/btree_gin</> to allow GIN indexes to Add <filename>contrib/btree_gin</> to allow GIN indexes to
handle more datatypes (Oleg, Teodor) handle more datatypes (Oleg, Teodor)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add <filename>/contrib/citext</> as a case-insensitive, Add <filename>contrib/citext</> to provide a case-insensitive,
multibyte-aware text data type (David Wheeler) multibyte-aware text data type (David Wheeler)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Make sure <filename>/contrib/dblink</> uses a password supplied Make sure <filename>contrib/dblink</> uses a password supplied
by the user, and not accidentally from the server's .pgpass file by the user, and not accidentally taken from the server's
(Joe Conway) <filename>.pgpass</> file (Joe Conway)
</para> </para>
<para> <para>
...@@ -3058,26 +3072,28 @@ do it for earlier branch release files. ...@@ -3058,26 +3072,28 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <function>fsm_page_contents()</> Add <function>fsm_page_contents()</>
to<filename>/contrib/pageinspect</> (Heikki) to <filename>contrib/pageinspect</> (Heikki)
</para> </para>
</listitem>
<listitem>
<para> <para>
Modify <function>get_raw_page()</> to support free space map Modify <function>get_raw_page()</> to support free space map
(<filename>*.fsm</>) files. Also update (<filename>*_fsm</>) files. Also update
<filename>/contrib/pg_freespacemap</>. <filename>contrib/pg_freespacemap</>.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add support for multibyte encodings to <filename>/contrib/pg_trgm</> Add support for multibyte encodings to <filename>contrib/pg_trgm</>
(Teodor) (Teodor)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Rewrite <filename>/contrib/intagg</> to user new server-side Rewrite <filename>contrib/intagg</> to use new
functions <function>array_agg()</> and <function>unnest()</> functions <function>array_agg()</> and <function>unnest()</>
(Tom) (Tom)
</para> </para>
...@@ -3085,13 +3101,13 @@ do it for earlier branch release files. ...@@ -3085,13 +3101,13 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Remove <filename>/contrib/intarray</>'s definitions of the Remove <filename>contrib/intarray</>'s definitions of the
<literal>&lt;@</> and <literal>@&gt;</> operators (Tom) <literal>&lt;@</> and <literal>@&gt;</> operators (Tom)
</para> </para>
<para> <para>
This avoids confusion with the equivalent built-in operators. This avoids confusion with the equivalent built-in operators.
If necessary, the <filename>/contrib/intarray</> implementations If needed, the <filename>contrib/intarray</> implementations
are still available under their historical names <literal>@</> are still available under their historical names <literal>@</>
and <literal>~</>. and <literal>~</>.
</para> </para>
...@@ -3099,7 +3115,7 @@ do it for earlier branch release files. ...@@ -3099,7 +3115,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <filename>/contrib/auto_explain</> to automatically run Add <filename>contrib/auto_explain</> to automatically run
<command>EXPLAIN</> on queries exceeding a specified duration <command>EXPLAIN</> on queries exceeding a specified duration
(Itagaki Takahiro, Tom) (Itagaki Takahiro, Tom)
</para> </para>
...@@ -3107,7 +3123,7 @@ do it for earlier branch release files. ...@@ -3107,7 +3123,7 @@ do it for earlier branch release files.
<listitem> <listitem>
<para> <para>
Add <filename>/contrib/pg_stat_statements</> for server-wide Add <filename>contrib/pg_stat_statements</> for server-wide
tracking of statement execution statistics (Itagaki Takahiro) tracking of statement execution statistics (Itagaki Takahiro)
</para> </para>
</listitem> </listitem>
......
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