Commit e328f8b0 authored by Bruce Momjian's avatar Bruce Momjian

Wrap long lines in 8.2 release notes.

parent 1fc333f0
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.436 2006/09/18 22:43:16 momjian Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.437 2006/09/18 23:01:43 momjian Exp $ -->
<!--
Typical markup:
......@@ -59,8 +59,9 @@ For new features, add links to the documentation sections.
<title>Migration to version 8.2</title>
<para>
A dump/restore using <application>pg_dump</application> is required
for those wishing to migrate data from any previous release.
A dump/restore using <application>pg_dump</application> is
required for those wishing to migrate data from any previous
release.
</para>
<para>
......@@ -96,130 +97,144 @@ For new features, add links to the documentation sections.
<listitem>
<para>
Improve efficiency of <literal>IN</> (list-of-expressions) clauses (Tom)
Improve efficiency of <literal>IN</> (list-of-expressions)
clauses (Tom)
</para>
</listitem>
<listitem>
<para>
Reduce locking requirements of sequential scans (Qingqing Zhou)
Reduce locking requirements of sequential scans (Qingqing
Zhou)
</para>
</listitem>
<listitem>
<para>
Improve subtransaction performance (Alvaro, Itagaki Takahiro, Tom)
Improve subtransaction performance (Alvaro, Itagaki Takahiro,
Tom)
</para>
</listitem>
<listitem>
<para>
Improve locking performance by breaking locks into sections (Tom)
Improve locking performance by breaking locks into sections
(Tom)
</para>
<para>
This allows locking to be more fine-grained, reducing contention.
This allows locking to be more fine-grained, reducing
contention.
</para>
</listitem>
<listitem>
<para>
Allow the planner to re-order <literal>OUTER JOIN</>s when possible (Tom)
Allow the planner to re-order <literal>OUTER JOIN</>s when
possible (Tom)
</para>
<para>
This makes a considerable difference for queries involving multiple outer
joins.
This makes a considerable difference for queries involving
multiple outer joins.
</para>
</listitem>
<listitem>
<para>
Improve planning of joins to inherited tables and <literal>UNION ALL</> views (Tom)
Improve planning of joins to inherited tables and <literal>UNION
ALL</> views (Tom)
</para>
</listitem>
<listitem>
<para>
Improve cost estimation for nestloop index scans (Tom)
Improve cost estimation for nestloop index scans (Tom)
</para>
<para>
This may eliminate the need to set unrealistically small values of
<envar>random_page_cost</>. If you have been using a very small
<envar>random_page_cost</>, please recheck your test cases.
This may eliminate the need to set unrealistically small
values of <envar>random_page_cost</>. If you have been
using a very small <envar>random_page_cost</>, please
recheck your test cases.
</para>
</listitem>
<listitem>
<para>
Increase default values for <envar>shared_buffers</> and <envar>max_fsm_pages</>(Andrew)
Increase default values for <envar>shared_buffers</> and
<envar>max_fsm_pages</>(Andrew)
</para>
</listitem>
<listitem>
<para>
Improve the optimizer statistics used by <literal>LIKE</>, <literal>ILIKE</>, and regular expression
operations (Tom)
Improve the optimizer statistics used by <literal>LIKE</>,
<literal>ILIKE</>, and regular expression operations (Tom)
</para>
</listitem>
<listitem>
<para>
Allow constraint exclusion to be applied to inherited <command>UPDATE</>/<command>DELETE</>
queries (Tom)
Allow constraint exclusion to be applied to inherited
<command>UPDATE</>/<command>DELETE</> queries (Tom)
</para>
<para>
<command>SELECT</> already honored constraint exclusion.
<command>SELECT</> already honored constraint exclusion.
</para>
</listitem>
<listitem>
<para>
Improve sorting speed and reduce memory usage (Simon, Tom)
Improve sorting speed and reduce memory usage (Simon, Tom)
</para>
</listitem>
<listitem>
<para>
<function>MIN()</>/<function>MAX()</> can now use indexes in more cases (Tom)
<function>MIN()</>/<function>MAX()</> can now use indexes
in more cases (Tom)
</para>
</listitem>
<listitem>
<para>
Improve concurrency for database creation and destruction (Tom)
Improve concurrency for database creation and destruction
(Tom)
</para>
</listitem>
<listitem>
<para>
Speed up vacuuming of btree indexes (Heikki Linnakangas, Tom)
Speed up vacuuming of btree indexes (Heikki Linnakangas,
Tom)
</para>
</listitem>
<listitem>
<para>
Improve <command>COPY</> performance (Alon Goldshuv, Tom)
Improve <command>COPY</> performance (Alon Goldshuv, Tom)
</para>
</listitem>
<listitem>
<para>
Add <literal>FILLFACTOR</> to <command>CREATE INDEX</> (ITAGAKI Takahiro)
Add <literal>FILLFACTOR</> to <command>CREATE INDEX</>
(ITAGAKI Takahiro)
</para>
<para>
This provides infrastructure to allow index access methods to
accept special parameters of all kinds, but <literal>FILLFACTOR</> is
implemented first.
This provides infrastructure to allow index access methods
to accept special parameters of all kinds, but
<literal>FILLFACTOR</> is implemented first.
</para>
</listitem>
<listitem>
<para>
Remove dead index entries before btree page split (Junji Teramoto)
Remove dead index entries before btree page split (Junji
Teramoto)
</para>
</listitem>
</sect3>
......@@ -244,195 +259,212 @@ For new features, add links to the documentation sections.
<listitem>
<para>
Add support for include directives in <filename>postgresql.conf</> (Joachim Wieland)
Add support for include directives in <filename>postgresql.conf</>
(Joachim Wieland)
</para>
</listitem>
<listitem>
<para>
Add native <acronym>LDAP</> authentication (Magnus Hagander)
Add native <acronym>LDAP</> authentication (Magnus Hagander)
</para>
<para>
This is particularly useful for platforms that do not support <acronym>PAM</>,
such as Win32.
This is particularly useful for platforms that do not
support <acronym>PAM</>, such as Win32.
</para>
</listitem>
<listitem>
<para>
Re-enable <envar>full_page_writes</> (Tom)
Re-enable <envar>full_page_writes</> (Tom)
</para>
<para>
This flag can now be used even with <acronym>PITR</>. It is turned on
automatically between <function>pg_start_backup()</> and <function>pg_stop_backup()</> calls.
This flag can now be used even with <acronym>PITR</>. It
is turned on automatically between <function>pg_start_backup()</>
and <function>pg_stop_backup()</> calls.
</para>
</listitem>
<listitem>
<para>
Add support for <acronym>SSL</> Certificate Revocation List (<acronym>CRL</>) files, <filename>root.crl</>
(Libor Hoho&#353;)
Add support for <acronym>SSL</> Certificate Revocation List
(<acronym>CRL</>) files, <filename>root.crl</> (Libor
Hoho&#353;)
</para>
<para>
This was added to <application>libpq</> as well.
This was added to <application>libpq</> as well.
</para>
</listitem>
<listitem>
<para>
Remove routine autovacuum server log entries (Bruce)
Remove routine autovacuum server log entries (Bruce)
</para>
<para>
<literal>pg_stat_activity</> now shows autovacuum activity.
<literal>pg_stat_activity</> now shows autovacuum activity.
</para>
</listitem>
<listitem>
<para>
Add <literal>GRANT CONNECT ON DATABASE</>, to be used in addition to <filename>pg_hba.conf</>
(Gevik Babakhani)
Add <literal>GRANT CONNECT ON DATABASE</>, to be used in
addition to <filename>pg_hba.conf</> (Gevik Babakhani)
</para>
<para>
This gives SQL-control over database access, and works in combination
with the existing <filename>pg_hba.conf</> controls.
This gives SQL-control over database access, and works in
combination with the existing <filename>pg_hba.conf</>
controls.
</para>
</listitem>
<listitem>
<para>
Add last vacuum and analyze timestamp columns to the stats collector (Larry
Rosenman)
Add last vacuum and analyze timestamp columns to the stats
collector (Larry Rosenman)
</para>
<para>
These values now appear in the <literal>pg_stat_*_tables</> system views, and are used
by autovacuum. ?
These values now appear in the <literal>pg_stat_*_tables</>
system views, and are used by autovacuum. ?
</para>
</listitem>
<listitem>
<para>
Deprecate use of <application>postmaster</> symlink (Peter)
Deprecate use of <application>postmaster</> symlink (Peter)
</para>
<para>
<application>postmaster</> and <application>postgres</> commands now act identically, with the behavior
determined by switches. The <application>postmaster</> symlink is kept for
compatibility, but is not really needed.
<application>postmaster</> and <application>postgres</>
commands now act identically, with the behavior determined
by switches. The <application>postmaster</> symlink is
kept for compatibility, but is not really needed.
</para>
</listitem>
<listitem>
<para>
Add <acronym>GUC</> <envar>update_process_title</> to control whether the <application>ps</> display is
updated for every command, default to <literal>on</> (Bruce)
Add <acronym>GUC</> <envar>update_process_title</> to
control whether the <application>ps</> display is updated
for every command, default to <literal>on</> (Bruce)
</para>
</listitem>
<listitem>
<para>
Track tables needing vacuum with more accuracy (Alvaro)
Track tables needing vacuum with more accuracy (Alvaro)
</para>
<para>
This reduces the overhead involved in preventing transaction ID
wraparound.
This reduces the overhead involved in preventing transaction
ID wraparound.
</para>
</listitem>
<listitem>
<para>
Allow units to be specified in configuration settings (Peter)
Allow units to be specified in configuration settings
(Peter)
</para>
<para>
You can now set <envar>shared_buffer</> to <literal>32000kB</>, for example.
You can now set <envar>shared_buffer</> to <literal>32000kB</>,
for example.
</para>
</listitem>
<listitem>
<para>
Improve logging of protocol-level prepare/bind/execute messages (Bruce, Tom)
Improve logging of protocol-level prepare/bind/execute
messages (Bruce, Tom)
</para>
<para>
Such logging now shows statement names, bind parameter values, and the
text of the query being executed.
Such logging now shows statement names, bind parameter
values, and the text of the query being executed.
</para>
</listitem>
<listitem>
<para>
Change <envar>log_duration</> to output even if the query is not output (Tom)
Change <envar>log_duration</> to output even if the query
is not output (Tom)
</para>
<para>
In prior releases, <envar>log_duration</> only printed if the query appeared
earlier in the logs.
In prior releases, <envar>log_duration</> only printed if
the query appeared earlier in the logs.
</para>
</listitem>
<listitem>
<para>
Allow a forced switch to a new xlog file (Simon Riggs, Tom)
Allow a forced switch to a new xlog file (Simon Riggs, Tom)
</para>
<para>
This is valuable for keeping <acronym>PITR</> standby servers in sync with the master.
xlog file switching also happens automatically during <function>pg_stop_backup()</>.
This ensures that <acronym>PITR</> servers have all xlog files needed
for recovery.
This is valuable for keeping <acronym>PITR</> standby
servers in sync with the master. xlog file switching also
happens automatically during <function>pg_stop_backup()</>.
This ensures that <acronym>PITR</> servers have all xlog
files needed for recovery.
</para>
</listitem>
<listitem>
<para>
Add <acronym>WAL</> informational functions (Simon Riggs)
Add <acronym>WAL</> informational functions (Simon Riggs)
</para>
<para>
Add functions for interrogating the current xlog insertion point and
determining <acronym>WAL</> filenames from the hex <acronym>WAL</> locations displayed by
<function>pg_stop_backup()</> and friends.
Add functions for interrogating the current xlog insertion
point and determining <acronym>WAL</> filenames from the
hex <acronym>WAL</> locations displayed by
<function>pg_stop_backup()</> and friends.
</para>
</listitem>
<listitem>
<para>
Allow <acronym>WAL</> replay to be restored quicker in case of a crash (Simon Riggs)
Allow <acronym>WAL</> replay to be restored quicker in case
of a crash (Simon Riggs)
</para>
<para>
The server now does periodic checkpoints during <acronym>WAL</> recovery, so
if there is a crash, future <acronym>WAL</> recovery is shortened. This also eliminates
the need for <acronym>PITR</> standby servers to replay the entire log since the base
backup if they crash.
The server now does periodic checkpoints during <acronym>WAL</>
recovery, so if there is a crash, future <acronym>WAL</>
recovery is shortened. This also eliminates the need for
<acronym>PITR</> standby servers to replay the entire log
since the base backup if they crash.
</para>
</listitem>
<listitem>
<para>
Add <envar>archive_timeout</> to force xlog file switches at a given interval (Simon Riggs)
Add <envar>archive_timeout</> to force xlog file switches
at a given interval (Simon Riggs)
</para>
<para>
This enforces a maximum delay for <acronym>PITR</> standby servers.
This enforces a maximum delay for <acronym>PITR</> standby
servers.
</para>
</listitem>
<listitem>
<para>
Add a <literal>waiting</> column to <literal>pg_stat_activity</> (Tom)
Add a <literal>waiting</> column to <literal>pg_stat_activity</>
(Tom)
</para>
<para>
This allows <literal>pg_stat_activity</> to show the same information as the <literal>ps</>
display.
This allows <literal>pg_stat_activity</> to show the same
information as the <literal>ps</> display.
</para>
</sect3>
......@@ -442,247 +474,274 @@ For new features, add links to the documentation sections.
<listitem>
<para>
Support portal parameters in <command>EXPLAIN</> and <command>EXECUTE</> (Tom)
Support portal parameters in <command>EXPLAIN</> and
<command>EXECUTE</> (Tom)
</para>
<para>
This allows, for example, <literal>?</> parameters to work in these commands in
<acronym>JDBC</>.
This allows, for example, <literal>?</> parameters to work
in these commands in <acronym>JDBC</>.
</para>
</listitem>
<listitem>
<para>
Add <literal>IS NOT DISTINCT FROM</> (Pavel Stehule)
Add <literal>IS NOT DISTINCT FROM</> (Pavel Stehule)
</para>
<para>
It is similar to equals (<literal>=</>), but is true when both left and right arguments
are <literal>NULL</>, and false when just one is, rather than yielding <literal>NULL</> in these cases.
It is similar to equals (<literal>=</>), but is true when
both left and right arguments are <literal>NULL</>, and
false when just one is, rather than yielding <literal>NULL</>
in these cases.
</para>
</listitem>
<listitem>
<para>
Make row comparisons follow <acronym>SQL</> standard semantics and allow them to be
used in index scans (Tom)
Make row comparisons follow <acronym>SQL</> standard
semantics and allow them to be used in index scans (Tom)
</para>
<para>
Previously, row = and &lt;&gt; comparisons followed the standard but &lt;
&lt;= &gt; &gt;= did not. A row comparison can now be used as an index
constraint for a multicolumn index matching the row value.
Previously, row = and &lt;&gt; comparisons followed the
standard but &lt; &lt;= &gt; &gt;= did not. A row comparison
can now be used as an index constraint for a multicolumn
index matching the row value.
</para>
</listitem>
<listitem>
<para>
Allow additional row values comparison (Tom)
Allow additional row values comparison (Tom)
</para>
<para>
Add &lt;, &lt;=, &gt;, &gt;=.
Add &lt;, &lt;=, &gt;, &gt;=.
</para>
</listitem>
<listitem>
<para>
Add system view <literal>pg_prepared_statements</> to show prepared statements (Joachim
Wieland)
Add system view <literal>pg_prepared_statements</> to show
prepared statements (Joachim Wieland)
</para>
</listitem>
<listitem>
<para>
Add system view <literal>pg_cursors</> to show open cursors (Joachim Wieland)
Add system view <literal>pg_cursors</> to show open cursors
(Joachim Wieland)
</para>
<para>
Both this and <literal>pg_prepared_statements</> are very useful for pooled
connection setups.
Both this and <literal>pg_prepared_statements</> are very
useful for pooled connection setups.
</para>
</listitem>
<listitem>
<para>
If <acronym>SQL</>-level <command>PREPARE</> parameters are unknown, infer their types from the
context of the query (Neil)
If <acronym>SQL</>-level <command>PREPARE</> parameters
are unknown, infer their types from the context of the
query (Neil)
</para>
<para>
Protocol-level <command>PREPARE</> already did this.
Protocol-level <command>PREPARE</> already did this.
</para>
</listitem>
<listitem>
<para>
Allow <command>UPDATE</> and <command>DELETE</> to use an alias for the target table (Atsushi Ogawa)
Allow <command>UPDATE</> and <command>DELETE</> to use an
alias for the target table (Atsushi Ogawa)
</para>
<para>
This allows these statements to support self-joins more conveniently.
<command>UPDATE</> already supported as <literal>FROM</> clause, but <command>DELETE</> did not.
This allows these statements to support self-joins more
conveniently. <command>UPDATE</> already supported as
<literal>FROM</> clause, but <command>DELETE</> did not.
</para>
</listitem>
<listitem>
<para>
Add <literal>CASCADE</> option to <command>TRUNCATE</> (Joachim Wieland)
Add <literal>CASCADE</> option to <command>TRUNCATE</>
(Joachim Wieland)
</para>
<para>
This allows <command>TRUNCATE</> also to automatically truncate all foreign-key
referencing tables.
This allows <command>TRUNCATE</> also to automatically
truncate all foreign-key referencing tables.
</para>
</listitem>
<listitem>
<para>
Enable <envar>standard_conforming_strings</> to be turned on (Kevin Grittner)
Enable <envar>standard_conforming_strings</> to be turned
<literal>on</> (Kevin Grittner)
</para>
<para>
This allow special backslash escaping in strings to be turned off
so <productname>PostgreSQL</> is more standards-compliant. The default is <literal>off</>,
but future releases will default this to <literal>on</>.
This allow special backslash escaping in strings to be
turned off so <productname>PostgreSQL</> is more
standards-compliant. The default is <literal>off</>, but
future releases will default this to <literal>on</>.
</para>
</listitem>
<listitem>
<para>
Set <envar>escape_string_warning</> to <literal>on</> by default (Bruce)
Set <envar>escape_string_warning</> to <literal>on</> by
default (Bruce)
</para>
<para>
This issues a warning if backslash escapes are used in non-escape
(non-<literal>E''</>) strings.
This issues a warning if backslash escapes are used in
non-escape (non-<literal>E''</>) strings.
</para>
</listitem>
<listitem>
<para>
Support <literal>FOR UPDATE</> and <literal>FOR SHARE</> in the same command (Tom)
Support <literal>FOR UPDATE</> and <literal>FOR SHARE</>
in the same command (Tom)
</para>
</listitem>
<listitem>
<para>
Disallow aggregate functions in <command>UPDATE</> commands (unless within a
subquery) (Tom)
Disallow aggregate functions in <command>UPDATE</> commands
(unless within a subquery) (Tom)
</para>
<para>
The standard disallows this, and it leads to unpredictable results.
The standard disallows this, and it leads to unpredictable
results.
</para>
</listitem>
<listitem>
<para>
Change the row constructor syntax (<literal>ROW(...)</>) so that list elements <literal>foo.*</>
will be expanded to a list of their member fields, rather than creating
a nested rowtype field as formerly (Tom)
Change the row constructor syntax (<literal>ROW(...)</>)
so that list elements <literal>foo.*</> will be expanded
to a list of their member fields, rather than creating a
nested rowtype field as formerly (Tom)
</para>
<para>
The new behavior is substantially more useful since it allows, for example,
triggers to check for data changes with <literal>IF row(new.*) IS DISTINCT FROM row(old.*)</>.
The old behavior is still available by omitting <literal>.*</>.
The new behavior is substantially more useful since it
allows, for example, triggers to check for data changes
with <literal>IF row(new.*) IS DISTINCT FROM row(old.*)</>.
The old behavior is still available by omitting <literal>.*</>.
</para>
</listitem>
<listitem>
<para>
Change <literal>LIMIT</>/<literal>OFFSET</> to use <type>int8</> (Dhanaraj M)
Change <literal>LIMIT</>/<literal>OFFSET</> to use
<type>int8</> (Dhanaraj M)
</para>
<para>
This allows <literal>LIMIT</>/<literal>OFFSET</> over two-billion.
This allows <literal>LIMIT</>/<literal>OFFSET</> over
two-billion.
</para>
</listitem>
<listitem>
<para>
Add support for multi-row <literal>VALUES</> clauses as part of <command>INSERT</> and <command>SELECT</> statements
(Joe, Tom)
Add support for multi-row <literal>VALUES</> clauses as
part of <command>INSERT</> and <command>SELECT</> statements
(Joe, Tom)
</para>
<para>
This allows <command>INSERT</> to insert multiple rows of constants, or queries
to generate result sets using constants. For example, <literal>INSERT ...
VALUES (...), (...), ....</>, and <literal>SELECT * FROM (VALUES (...),
(...), ....) AS alias(f1, ...)</>.
This allows <command>INSERT</> to insert multiple rows of
constants, or queries to generate result sets using constants.
For example, <literal>INSERT ... VALUES (...), (...),
....</>, and <literal>SELECT * FROM (VALUES (...), (...),
....) AS alias(f1, ...)</>.
</para>
</listitem>
<listitem>
<para>
Improve the length output used by <literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> (Tom)
Improve the length output used by
<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</>
(Tom)
</para>
<para>
When all columns are of the same defined length, that length is used
for output, rather than a generic length.
When all columns are of the same defined length, that length
is used for output, rather than a generic length.
</para>
</listitem>
<listitem>
<para>
Add <command>INSERT</>/<command>UPDATE</>/<command>DELETE</> <literal>RETURNING</> (Jonah Harris, Tom)
Add <command>INSERT</>/<command>UPDATE</>/<command>DELETE</>
<literal>RETURNING</> (Jonah Harris, Tom)
</para>
<para>
This allows these commands to return values, such as the computed serial
key for a new row. In the <command>UPDATE</> case, values from the new state of the
row are returned.
This allows these commands to return values, such as the
computed serial key for a new row. In the <command>UPDATE</>
case, values from the new state of the row are returned.
</para>
</listitem>
<listitem>
<para>
Allow <command>UPDATE</> to set multiple columns with a list of values (Susanne
Ebrecht)
Allow <command>UPDATE</> to set multiple columns with a
list of values (Susanne Ebrecht)
</para>
<para>
This is basically as short-hand for assigning the columns and values
in pairs. The syntax is <literal>UPDATE tab SET (col, ...) = (val, ...)</>.
This is basically as short-hand for assigning the columns
and values in pairs. The syntax is <literal>UPDATE tab
SET (col, ...) = (val, ...)</>.
</para>
</listitem>
<listitem>
<para>
Allow <literal>ILIKE</> to work for multi-byte encodings (Tom)
Allow <literal>ILIKE</> to work for multi-byte encodings
(Tom)
</para>
<para>
Internally, <literal>ILIKE</> now calls <function>lower()</> and then uses <literal>LIKE</>. Locale-specific
regular expression operations still do not work in these encodings.
Internally, <literal>ILIKE</> now calls <function>lower()</>
and then uses <literal>LIKE</>. Locale-specific regular
expression operations still do not work in these encodings.
</para>
</listitem>
<listitem>
<para>
Protocol-level unnamed prepared statements are re-planned for each
set of <literal>BIND</> values (Tom)
Protocol-level unnamed prepared statements are re-planned
for each set of <literal>BIND</> values (Tom)
</para>
<para>
This improves performance because the exact parameter values can be used
in the plan.
This improves performance because the exact parameter values
can be used in the plan.
</para>
</listitem>
<listitem>
<para>
Do not flatten subqueries that contain <literal>VOLATILE</> functions in their
target lists (Jaime Casanova)
Do not flatten subqueries that contain <literal>VOLATILE</>
functions in their target lists (Jaime Casanova)
</para>
<para>
This prevents surprising behavior due to multiple evaluation of a <literal>volatile</>
function (such as <function>random()</> or <function>nextval()</>). It may cause performance
degradation in the presence of functions that are unnecessarily marked as
<literal>volatile</>.
This prevents surprising behavior due to multiple evaluation
of a <literal>volatile</> function (such as <function>random()</>
or <function>nextval()</>). It may cause performance
degradation in the presence of functions that are unnecessarily
marked as <literal>volatile</>.
</para>
</sect3>
......@@ -692,183 +751,204 @@ For new features, add links to the documentation sections.
<listitem>
<para>
Add <command>DROP</> object <literal>IF EXISTS</> for many object types (Andrew)
Add <command>DROP</> object <literal>IF EXISTS</> for many
object types (Andrew)
</para>
<para>
This allows <command>DROP</> operations on non-existent objects without generating
an error.
This allows <command>DROP</> operations on non-existent
objects without generating an error.
</para>
</listitem>
<listitem>
<para>
Add <literal>DROP OWNED</> to drop all objects owned by a role (Alvaro)
Add <literal>DROP OWNED</> to drop all objects owned by a
role (Alvaro)
</para>
</listitem>
<listitem>
<para>
Add <literal>REASSIGN OWNED</> to reassign ownership of all objects owned by a role
(Alvaro)
Add <literal>REASSIGN OWNED</> to reassign ownership of
all objects owned by a role (Alvaro)
</para>
<para>
This, and <literal>DROP OWNED</> above, facilitate dropping roles.
This, and <literal>DROP OWNED</> above, facilitate dropping
roles.
</para>
</listitem>
<listitem>
<para>
Add <command>CREATE</>/<command>ALTER ROLE PASSWORD NULL</>, which removes the role's password
(Peter)
Add <command>CREATE</>/<command>ALTER ROLE PASSWORD NULL</>,
which removes the role's password (Peter)
</para>
</listitem>
<listitem>
<para>
Properly enforce <literal>DOMAIN</> check constraints everywhere (Neil, Tom)
Properly enforce <literal>DOMAIN</> check constraints
everywhere (Neil, Tom)
</para>
<para>
For example, the result of a user-defined function that is declared
to return a domain type is now checked against the constraints.
For example, the result of a user-defined function that is
declared to return a domain type is now checked against
the constraints.
</para>
</listitem>
<listitem>
<para>
Add <command>GRANT ON SEQUENCE</> syntax (Bruce)
Add <command>GRANT ON SEQUENCE</> syntax (Bruce)
</para>
<para>
This was added for setting sequence-specific permissions. <literal>GRANT ON [TABLE]</>
for sequences is still supported for backward compatibility.
This was added for setting sequence-specific permissions.
<literal>GRANT ON [TABLE]</> for sequences is still supported
for backward compatibility.
</para>
</listitem>
<listitem>
<para>
Add <literal>USAGE</> permission for sequences that allows only <function>currval()</> and
<function>nextval()</>, not <function>setval()</> (Bruce)
Add <literal>USAGE</> permission for sequences that allows
only <function>currval()</> and <function>nextval()</>,
not <function>setval()</> (Bruce)
</para>
<para>
<literal>USAGE</> permission allows more find-grained control over sequence access.
It allows users to increment a sequence, but prevents them from
setting the sequence to an arbitrary value using <function>setval()</>.
<literal>USAGE</> permission allows more find-grained
control over sequence access. It allows users to increment
a sequence, but prevents them from setting the sequence to
an arbitrary value using <function>setval()</>.
</para>
</listitem>
<listitem>
<para>
Allow comments on global objects to be stored globally (Kris Jurka)
Allow comments on global objects to be stored globally
(Kris Jurka)
</para>
<para>
Previously, global object comments were stored in individual
databases, making them ineffective. This adds a new <literal>pg_shdescription</>
table.
Previously, global object comments were stored in individual
databases, making them ineffective. This adds a new
<literal>pg_shdescription</> table.
</para>
</listitem>
<listitem>
<para>
Add <literal>ON COMMIT</> clauses to <command>CREATE TABLE AS</> (Neil)
Add <literal>ON COMMIT</> clauses to <command>CREATE TABLE
AS</> (Neil)
</para>
<para>
This allows temporary tables to be truncated or dropped on transaction
commit. The default behavior is for the table to remain until the
session ends.
This allows temporary tables to be truncated or dropped on
transaction commit. The default behavior is for the table
to remain until the session ends.
</para>
</listitem>
<listitem>
<para>
Add <literal>TABLESPACE</> and <literal>ON COMMIT</> clauses to <command>CREATE TABLE AS</> (Neil)
Add <literal>TABLESPACE</> and <literal>ON COMMIT</> clauses
to <command>CREATE TABLE AS</> (Neil)
</para>
<para>
This allows the tablespace to be specified for the new table.
This allows the tablespace to be specified for the new
table.
</para>
</listitem>
<listitem>
<para>
Allow placeholder (shell) types to be created (Martijn van Oosterhout)
Allow placeholder (shell) types to be created (Martijn van
Oosterhout)
</para>
<para>
Shell types create a type reference, without specifying any of the
aspects of the type. It is useful for creating types with input/output
functions that reference the data type. The syntax is <command>CREATE TYPE typname</>.
Shell types create a type reference, without specifying
any of the aspects of the type. It is useful for creating
types with input/output functions that reference the data
type. The syntax is <command>CREATE TYPE typname</>.
</para>
</listitem>
<listitem>
<para>
Add new aggregate creation syntax (Tom)
Add new aggregate creation syntax (Tom)
</para>
<para>
The new syntax is <command>CREATE AGGREGATE</> aggname (input_type) (parameter_list).
This more naturally supports the new multi-parameter aggregate
functionality. The previous syntax is still supported.
The new syntax is <command>CREATE AGGREGATE</> aggname
(input_type) (parameter_list). This more naturally supports
the new multi-parameter aggregate functionality. The
previous syntax is still supported.
</para>
</listitem>
<listitem>
<para>
Aggregate functions now support multiple input parameters (Sergey
Koposov, Tom)
Aggregate functions now support multiple input parameters
(Sergey Koposov, Tom)
</para>
</listitem>
<listitem>
<para>
Have <command>SET CONSTRAINT</> affect only one constraint (Kris Jurka)
Have <command>SET CONSTRAINT</> affect only one constraint
(Kris Jurka)
</para>
<para>
In previous releases, <command>SET CONSTRAINT</> modified all constraints with
a matching name. In this release, the schema search path is used to
modify only the first matching constraint. A schema specification is
also supported.
In previous releases, <command>SET CONSTRAINT</> modified
all constraints with a matching name. In this release,
the schema search path is used to modify only the first
matching constraint. A schema specification is also
supported.
</para>
</listitem>
<listitem>
<para>
Add <literal>INCLUDING CONSTRAINTS</> to <command>CREATE TABLE LIKE</> (Greg Stark)
Add <literal>INCLUDING CONSTRAINTS</> to <command>CREATE
TABLE LIKE</> (Greg Stark)
</para>
<para>
This allows the new table to receive matching constraints.
This allows the new table to receive matching constraints.
</para>
</listitem>
<listitem>
<para>
Add <literal>ALTER TABLE ... [NO] INHERIT</> (Greg Stark)
Add <literal>ALTER TABLE ... [NO] INHERIT</> (Greg Stark)
</para>
<para>
This allow inheritance to be added and removed dynamically, rather
than just at table creation and destruction. This is very valuable
for table partitioning using constraint exclusion.
This allow inheritance to be added and removed dynamically,
rather than just at table creation and destruction. This
is very valuable for table partitioning using constraint
exclusion.
</para>
</listitem>
<listitem>
<para>
Remove rule permission for tables, for security reasons (Tom)
Remove rule permission for tables, for security reasons
(Tom)
</para>
<para>
In this release, only a table's owner can create or modify rules
for the table. For backwards compatibility, <command>GRANT</>/<command>REVOKE RULE</> is still
accepted, but it does nothing.
In this release, only a table's owner can create or modify
rules for the table. For backwards compatibility,
<command>GRANT</>/<command>REVOKE RULE</> is still accepted,
but it does nothing.
</para>
</sect3>
......@@ -878,62 +958,67 @@ For new features, add links to the documentation sections.
<listitem>
<para>
Reduce progress messages displayed by initdb (Tom)
Reduce progress messages displayed by initdb (Tom)
</para>
</listitem>
<listitem>
<para>
Have initdb detect the operating system locale and set the default
<envar>DateStyle</> accordingly (Peter)
Have initdb detect the operating system locale and set the
default <envar>DateStyle</> accordingly (Peter)
</para>
<para>
This make it more likely that the installed <filename>postgresql.conf</> <envar>DateStyle</>
value will be correct.
This make it more likely that the installed
<filename>postgresql.conf</> <envar>DateStyle</> value will
be correct.
</para>
</listitem>
<listitem>
<para>
Have the <command>COPY</> command return a command tag that includes the number of
rows copied (Volkan Yaz&#305;c&#305;)
Have the <command>COPY</> command return a command tag that
includes the number of rows copied (Volkan Yaz&#305;c&#305;)
</para>
</listitem>
<listitem>
<para>
Allow <command>VACUUM</> to expire rows without being affected by other concurrent
<command>VACUUM</>s (Hannu Krossing, Alvaro, Tom)
Allow <command>VACUUM</> to expire rows without being
affected by other concurrent <command>VACUUM</>s (Hannu
Krossing, Alvaro, Tom)
</para>
</listitem>
<listitem>
<para>
Avoid extra scan of tables during <command>VACUUM</> of index-less table (Greg Stark)
Avoid extra scan of tables during <command>VACUUM</> of
index-less table (Greg Stark)
</para>
</listitem>
<listitem>
<para>
Add option to allow indexes to be created without blocking
concurrent writes to the table (Greg Stark)
Add option to allow indexes to be created without blocking
concurrent writes to the table (Greg Stark)
</para>
<para>
The new syntax is <command>CREATE INDEX CONCURRENTLY</>. The default behavior is
still to block table modification while a index is being created.
The new syntax is <command>CREATE INDEX CONCURRENTLY</>.
The default behavior is still to block table modification
while a index is being created.
</para>
</listitem>
<listitem>
<para>
Allow <command>COPY</> to dump a <command>SELECT</> query (Zoltan Boszormenyi, Karel Zak)
Allow <command>COPY</> to dump a <command>SELECT</> query
(Zoltan Boszormenyi, Karel Zak)
</para>
<para>
This allows <command>COPY</> to dump arbitrary <acronym>SQL</> queries. The syntax is
<literal>COPY (SELECT ...) TO</>.
This allows <command>COPY</> to dump arbitrary <acronym>SQL</>
queries. The syntax is <literal>COPY (SELECT ...) TO</>.
</para>
</sect3>
......@@ -943,205 +1028,234 @@ For new features, add links to the documentation sections.
<listitem>
<para>
Allow arrays to contain <literal>NULL</> elements (Tom)
Allow arrays to contain <literal>NULL</> elements (Tom)
</para>
</listitem>
<listitem>
<para>
Change array concatenation to match documented behavior (Tom)
Change array concatenation to match documented behavior
(Tom)
</para>
<para>
This changes the previous behavior where concatenation would
adjust the lower array dimensions.
This changes the previous behavior where concatenation
would adjust the lower array dimensions.
</para>
</listitem>
<listitem>
<para>
Array comparison improvements (Tom)
Array comparison improvements (Tom)
</para>
<para>
Now array dimensions are also compared.
Now array dimensions are also compared.
</para>
</listitem>
<listitem>
<para>
Allow <function>to_char(time)</> and <function>to_char(interval)</> to output <acronym>AM</>/<acronym>PM</> specifications
(Bruce)
Allow <function>to_char(time)</> and <function>to_char(interval)</>
to output <acronym>AM</>/<acronym>PM</> specifications
(Bruce)
</para>
<para>
Intervals and times are treated as 24-hour periods, e.g. <literal>25 hours</> is
<acronym>AM</>.
Intervals and times are treated as 24-hour periods, e.g.
<literal>25 hours</> is <acronym>AM</>.
</para>
</listitem>
<listitem>
<para>
Have <function>to_char(time)</> and <function>to_char(interval)</> treat <literal>'HH'</> and <literal>'HH12'</> as 12-hour
intervals.
Have <function>to_char(time)</> and <function>to_char(interval)</>
treat <literal>'HH'</> and <literal>'HH12'</> as 12-hour
intervals.
<para>
Most applications should use <literal>'HH24'</> unless they want a 12-hour display.
Most applications should use <literal>'HH24'</> unless they
want a 12-hour display.
</para>
</listitem>
<listitem>
<para>
Add a server-side sleep function <function>pg_sleep()</> (Joachim Wieland)
Add a server-side sleep function <function>pg_sleep()</>
(Joachim Wieland)
</para>
</listitem>
<listitem>
<para>
Zero unmasked bits in conversion from <type>INET</> to <type>CIDR</> (Tom)
Zero unmasked bits in conversion from <type>INET</> to
<type>CIDR</> (Tom)
</para>
</listitem>
<listitem>
<para>
Add convenient arithmetic operations on <type>INET</>/<type>CIDR</> values (Stephen R. van
den Berg)
Add convenient arithmetic operations on <type>INET</>/<type>CIDR</>
values (Stephen R. van den Berg)
</para>
<para>
The new operators are <literal>&</> (and), <literal>|</> (or), <literal>~</> (not), <literal>+</> <type>int8</>,
<literal>-</> <type>int8</>, and <type>inet</> <literal>-</> <type>inet</>.
The new operators are <literal>&</> (and), <literal>|</>
(or), <literal>~</> (not), <literal>+</> <type>int8</>,
<literal>-</> <type>int8</>, and <type>inet</> <literal>-</>
<type>inet</>.
</para>
</listitem>
<listitem>
<para>
Allow <function>to_char()</> to print localized month and day names (Euler Taveira de
Oliveira)
Allow <function>to_char()</> to print localized month and
day names (Euler Taveira de Oliveira)
</para>
</listitem>
<listitem>
<para>
Add all comparison operators for the <type>tid</> data type (Mark Kirkwood, Greg Stark,
Tom)
Add all comparison operators for the <type>tid</> data type
(Mark Kirkwood, Greg Stark, Tom)
</para>
</listitem>
<listitem>
<para>
Add new function <function>justify_interval()</> to adjust interval units (Mark Dilger)
Add new function <function>justify_interval()</> to adjust
interval units (Mark Dilger)
</para>
</listitem>
<listitem>
<para>
Add new aggregate functions from SQL2003 (Neil)
Add new aggregate functions from SQL2003 (Neil)
</para>
<para>
The new functions are <function>var_pop()</>, <function>var_samp()</>, <function>stddev_pop()</>, and <function>stddev_samp()</>.
<function>var_samp()</> and <function>stddev_samp()</> are merely renamings of the existing
aggregates <function>variance()</> and <function>stddev()</>. The latter names have been
kept for backward compatibility.
The new functions are <function>var_pop()</>,
<function>var_samp()</>, <function>stddev_pop()</>, and
<function>stddev_samp()</>. <function>var_samp()</> and
<function>stddev_samp()</> are merely renamings of the
existing aggregates <function>variance()</> and
<function>stddev()</>. The latter names have been kept
for backward compatibility.
</para>
</listitem>
<listitem>
<para>
New operators for array-subset comparisons (<literal>@&gt;</>, <literal>&lt;@</>, <literal>&amp;&amp;</>) (Teodor,
Tom)
New operators for array-subset comparisons (<literal>@&gt;</>,
<literal>&lt;@</>, <literal>&amp;&amp;</>) (Teodor, Tom)
</para>
<para>
The old operators were kept for backward compatibility.
The old operators were kept for backward compatibility.
</para>
</listitem>
<listitem>
<para>
Allow domains to be created using other domains (Tom)
Allow domains to be created using other domains (Tom)
</para>
</listitem>
<listitem>
<para>
Add <function>clock_timestamp()</>, <function>statement_timestamp()</>, and <function>transaction_timestamp()</>
(Bruce)
Add <function>clock_timestamp()</>,
<function>statement_timestamp()</>, and
<function>transaction_timestamp()</> (Bruce)
</para>
<para>
<function>clock_timestamp()</> is the true current time, and <function>statement_timestamp()</> is the
time the current command arrived at the server. <function>transaction_timestamp()</> is
the same as <function>now()</>.
<function>clock_timestamp()</> is the true current time,
and <function>statement_timestamp()</> is the time the
current command arrived at the server.
<function>transaction_timestamp()</> is the same as
<function>now()</>.
</para>
</listitem>
<listitem>
<para>
Allow full timezone names in <type>timestamp</> values (Joachim Wieland)
Allow full timezone names in <type>timestamp</> values
(Joachim Wieland)
</para>
<para>
For example, <literal>'2006-05-24 21:11 America/New_York'::timestamptz</>.
For example, <literal>'2006-05-24 21:11
America/New_York'::timestamptz</>.
</para>
</listitem>
<listitem>
<para>
Create a configuration file of timezone abbreviations (Joachim Wieland)
Create a configuration file of timezone abbreviations
(Joachim Wieland)
</para>
<para>
The file name is controlled by GUC variable <envar>timezone_abbreviations</>.
The file name is controlled by GUC variable
<envar>timezone_abbreviations</>.
</para>
</listitem>
<listitem>
<para>
Remove <envar>australian_timezones</> configuration variable (Joachim Wieland)
Remove <envar>australian_timezones</> configuration variable
(Joachim Wieland)
</para>
<para>
No longer needed now that timezone abbreviations are configurable.
No longer needed now that timezone abbreviations are
configurable.
</para>
</listitem>
<listitem>
<para>
Add <envar>pg_timezone_abbrevs</> and <envar>pg_timezone_names</> views to show
supported timezones (Magnus Hagander)
Add <envar>pg_timezone_abbrevs</> and <envar>pg_timezone_names</>
views to show supported timezones (Magnus Hagander)
</para>
</listitem>
<listitem>
<para>
Add SQL2003-standard statistical aggregates (Sergey Koposov)
Add SQL2003-standard statistical aggregates (Sergey Koposov)
</para>
<para>
New functions: <function>regr_intercept()</>, <function>regr_slope()</>, <function>regr_r2()</>, <function>corr()</>,
<function>covar_samp()</>, <function>covar_pop()</>, <function>regr_avgx()</>, <function>regr_avgy()</>, <function>regr_sxy()</>,
<function>regr_sxx()</>, <function>regr_syy()</>, <function>regr_count()</>
New functions: <function>regr_intercept()</>,
<function>regr_slope()</>, <function>regr_r2()</>,
<function>corr()</>, <function>covar_samp()</>,
<function>covar_pop()</>, <function>regr_avgx()</>,
<function>regr_avgy()</>, <function>regr_sxy()</>,
<function>regr_sxx()</>, <function>regr_syy()</>,
<function>regr_count()</>
</para>
</listitem>
<listitem>
<para>
Fix problems with dumping renamed <type>SERIAL</> columns (Tom)
Fix problems with dumping renamed <type>SERIAL</> columns
(Tom)
</para>
<para>
The fix is to dump a <type>SERIAL</> column by explicitly specifying its <literal>DEFAULT</> and
sequence elements, and reconstructing the <type>SERIAL</> column on reload using a new
<command>ALTER SEQUENCE OWNED BY</> command. This also allows dropping a <type>SERIAL</> column
specification.
The fix is to dump a <type>SERIAL</> column by explicitly
specifying its <literal>DEFAULT</> and sequence elements,
and reconstructing the <type>SERIAL</> column on reload
using a new <command>ALTER SEQUENCE OWNED BY</> command.
This also allows dropping a <type>SERIAL</> column
specification.
</para>
</listitem>
<listitem>
<para>
Interval computation improvements (Michael Glaesemann, Bruce)
Interval computation improvements (Michael Glaesemann,
Bruce)
</para>
</sect3>
......@@ -1151,33 +1265,35 @@ Tom)
<listitem>
<para>
Allow <literal>FOR</> statements to return values to scalars as well as
records and row types (Pavel Stehule)
Allow <literal>FOR</> statements to return values to scalars
as well as records and row types (Pavel Stehule)
</para>
</listitem>
<listitem>
<para>
Add a <literal>BY</> clause to the <literal>FOR</> loop, to control the iteration increment
(Jaime Casanova)
Add a <literal>BY</> clause to the <literal>FOR</> loop,
to control the iteration increment (Jaime Casanova)
</para>
</listitem>
<listitem>
<para>
Add <literal>table_name</> and <literal>table_schema</> as trigger data (Andrew)
Add <literal>table_name</> and <literal>table_schema</> as
trigger data (Andrew)
</para>
</listitem>
<listitem>
<para>
Add <literal>STRICT</> to <command>SELECT INTO</> (Matt Miller)
Add <literal>STRICT</> to <command>SELECT INTO</> (Matt
Miller)
</para>
<para>
<literal>STRICT</> mode throws an exception if more or less than
one row is returned by the <command>SELECT</>, for <productname>Oracle PL/SQL</>
compatibility.
<literal>STRICT</> mode throws an exception if more or less
than one row is returned by the <command>SELECT</>, for
<productname>Oracle PL/SQL</> compatibility.
</para>
</sect3>
......@@ -1187,34 +1303,35 @@ Tom)
<listitem>
<para>
Honor <envar>check_function_bodies</> (Tom)
Honor <envar>check_function_bodies</> (Tom)
</para>
</listitem>
<listitem>
<para>
Add prepared queries (Dmitry Karasik)
Add prepared queries (Dmitry Karasik)
</para>
</listitem>
<listitem>
<para>
Add <literal>table_name</> and <literal>table_schema</> as trigger data (Adam Sj&oslash;gren)
Add <literal>table_name</> and <literal>table_schema</> as
trigger data (Adam Sj&oslash;gren)
</para>
<para>
<literal>relname</> is kept but now deprecated
<literal>relname</> is kept but now deprecated
</para>
</listitem>
<listitem>
<para>
Make <literal>$_TD</> trigger data a global variable (Andrew)
Make <literal>$_TD</> trigger data a global variable (Andrew)
</para>
<para>
Previously, it was lexical, which caused unexpected sharing
violations.
Previously, it was lexical, which caused unexpected sharing
violations.
</para>
</sect3>
......@@ -1224,37 +1341,41 @@ Tom)
<listitem>
<para>
Allow functions to return <literal>void</> (Neil)
Allow functions to return <literal>void</> (Neil)
</para>
</listitem>
<listitem>
<para>
Add named parameters to the <literal>args[]</> array (Sven Suursoho)
Add named parameters to the <literal>args[]</> array (Sven
Suursoho)
</para>
</listitem>
<listitem>
<para>
Return composite-types as dictionary (Sven Suursoho)
Return composite-types as dictionary (Sven Suursoho)
</para>
</listitem>
<listitem>
<para>
Return result-set as <literal>list</>, <literal>iterator</>, or <literal>generator </>(Sven Suursoho)
Return result-set as <literal>list</>, <literal>iterator</>,
or <literal>generator </>(Sven Suursoho)
</para>
</listitem>
<listitem>
<para>
Allow returning of <literal>composite types</> and <literal>result sets</> (Sven Suursoho)
Allow returning of <literal>composite types</> and
<literal>result sets</> (Sven Suursoho)
</para>
</listitem>
<listitem>
<para>
Add <literal>table_name</> and <literal>table_schema</> as trigger data (Andrew)
Add <literal>table_name</> and <literal>table_schema</> as
trigger data (Andrew)
</para>
</sect3>
......@@ -1264,92 +1385,97 @@ Tom)
<listitem>
<para>
Add new command <literal>\password</> for changing role password with client-side
password encryption (Peter)
Add new command <literal>\password</> for changing role
password with client-side password encryption (Peter)
</para>
</listitem>
<listitem>
<para>
Allow multi-line values to align in the proper column (Martijn van
Oosterhout)
Allow multi-line values to align in the proper column
(Martijn van Oosterhout)
</para>
</listitem>
<listitem>
<para>
Save multi-line statements as a single entry, rather than one
line at a time (Sergey E. Koposov)
Save multi-line statements as a single entry, rather than
one line at a time (Sergey E. Koposov)
</para>
<para>
This makes up-arrow recall of queries easier.
This makes up-arrow recall of queries easier.
</para>
</listitem>
<listitem>
<para>
Allow <literal>\c</> to connect to a new host and port number (David, Volkan Yaz&#305;c&#305;)
Allow <literal>\c</> to connect to a new host and port
number (David, Volkan Yaz&#305;c&#305;)
</para>
</listitem>
<listitem>
<para>
Add option to run the entire session in a single transaction (Simon)
Add option to run the entire session in a single transaction
(Simon)
</para>
<para>
Use options <literal>-1</> or <literal>--single-transaction</>.
Use options <literal>-1</> or <literal>--single-transaction</>.
</para>
</listitem>
<listitem>
<para>
Improve highlighting of error location in query in more cases (Tom)
Improve highlighting of error location in query in more
cases (Tom)
</para>
</listitem>
<listitem>
<para>
Add tablespace display to <literal>\l+</> (Philip Yarra)
Add tablespace display to <literal>\l+</> (Philip Yarra)
</para>
</listitem>
<listitem>
<para>
Support binary <command>COPY</> (Andreas Pflug)
Support binary <command>COPY</> (Andreas Pflug)
</para>
</listitem>
<listitem>
<para>
Improve <literal>\df</> slash command to include the argument names and modes
(<literal>OUT</> or <literal>INOUT</>) of the function (David Fetter)
Improve <literal>\df</> slash command to include the argument
names and modes (<literal>OUT</> or <literal>INOUT</>) of
the function (David Fetter)
</para>
</listitem>
<listitem>
<para>
Make the line counter 64-bit so it can handle files over two billion lines
(David Fetter)
Make the line counter 64-bit so it can handle files over
two billion lines (David Fetter)
</para>
</listitem>
<listitem>
<para>
Report both the returned data and the command status tag
for <command>INSERT</>/<command>UPDATE</>/<command>DELETE RETURNING</> (Tom)
Report both the returned data and the command status tag
for <command>INSERT</>/<command>UPDATE</>/<command>DELETE
RETURNING</> (Tom)
</para>
</listitem>
<listitem>
<para>
Support retrieving <command>SELECT</> results in batches using a cursor (Chris
Mair)
Support retrieving <command>SELECT</> results in batches
using a cursor (Chris Mair)
</para>
<para>
This is accomplished using <command>\set FETCH_COUNT</>.
This is accomplished using <command>\set FETCH_COUNT</>.
</para>
</sect3>
......@@ -1359,31 +1485,36 @@ Tom)
<listitem>
<para>
Allow complex selection of objects to be included or excluded by <application>pg_dump</>
(Greg Sabino Mullane)
Allow complex selection of objects to be included or excluded
by <application>pg_dump</> (Greg Sabino Mullane)
</para>
<para>
<application>pg_dump</> now supports multiple <literal>-n</> (schema) and <literal>-t</> (table) options, and
adds <literal>-T</> and <literal>-N</> options to exclude objects. Also adds support for regular
expressions for object names in these switches.
<application>pg_dump</> now supports multiple <literal>-n</>
(schema) and <literal>-t</> (table) options, and adds
<literal>-T</> and <literal>-N</> options to exclude objects.
Also adds support for regular expressions for object names
in these switches.
</para>
</listitem>
<listitem>
<para>
Add <application>pg_dump</> <literal>-X no-data-for-failed-tables</> option to suppress loading data
if table creation failed (the table already exists) (Martin Pitt)
Add <application>pg_dump</> <literal>-X
no-data-for-failed-tables</> option to suppress loading
data if table creation failed (the table already exists)
(Martin Pitt)
</para>
</listitem>
<listitem>
<para>
Add <application>pg_restore</> option to run the entire session in a single transaction (Simon)
Add <application>pg_restore</> option to run the entire
session in a single transaction (Simon)
</para>
<para>
Use options <literal>-1</> or <literal>--single-transaction</>.
Use options <literal>-1</> or <literal>--single-transaction</>.
</para>
</sect3>
......@@ -1393,61 +1524,67 @@ Tom)
<listitem>
<para>
Add <function>PQencryptPassword()</> to encrypt passwords (Tom)
Add <function>PQencryptPassword()</> to encrypt passwords
(Tom)
</para>
<para>
This allows passwords to be sent encrypted for commands like <command>ALTER
USER ... PASSWORD</>.
This allows passwords to be sent encrypted for commands
like <command>ALTER USER ... PASSWORD</>.
</para>
</listitem>
<listitem>
<para>
Change <function>PQdsplen()</> to return a useful value (Martijn van
Oosterhout)
Change <function>PQdsplen()</> to return a useful value
(Martijn van Oosterhout)
</para>
</listitem>
<listitem>
<para>
Change <function>PQgetssl()</> to return a <literal>void*</>, rather than <literal>SSL*</> (Martijn van Oosterhout)
Change <function>PQgetssl()</> to return a <literal>void*</>,
rather than <literal>SSL*</> (Martijn van Oosterhout)
</para>
<para>
This allows applications to use the function without <acronym>SSL</> headers.
This allows applications to use the function without
<acronym>SSL</> headers.
</para>
</listitem>
<listitem>
<para>
Allow the <filename>.pgpass</> hostname to match the default socket directory, as
well as a blank <literal>pghost</> (Bruce)
Allow the <filename>.pgpass</> hostname to match the default
socket directory, as well as a blank <literal>pghost</>
(Bruce)
</para>
</listitem>
<listitem>
<para>
Add function <function>PQisthreadsafe()</> (Bruce)
Add function <function>PQisthreadsafe()</> (Bruce)
</para>
<para>
This allows applications to query the thread-safety status
of the library.
This allows applications to query the thread-safety status
of the library.
</para>
</listitem>
<listitem>
<para>
Allow <acronym>LDAP</> lookups from <filename>pg_service.conf</> (Albe Laurenz)
Allow <acronym>LDAP</> lookups from <filename>pg_service.conf</>
(Albe Laurenz)
</para>
</listitem>
<listitem>
<para>
Add <function>PQdescribePrepared()</>, <function>PQdescribePortal()</>, and related functions
return information about previously prepared statements and
open cursors (Volkan Yaz&#305;c&#305;)
Add <function>PQdescribePrepared()</>,
<function>PQdescribePortal()</>, and related functions
return information about previously prepared statements
and open cursors (Volkan Yaz&#305;c&#305;)
</para>
</sect3>
......@@ -1457,25 +1594,26 @@ Tom)
<listitem>
<para>
Allow <command>SHOW</> to put its result into a variable (Joachim Wieland)
Allow <command>SHOW</> to put its result into a variable
(Joachim Wieland)
</para>
</listitem>
<listitem>
<para>
Add <command>COPY TO STDOUT</> (Joachim Wieland)
Add <command>COPY TO STDOUT</> (Joachim Wieland)
</para>
</listitem>
<listitem>
<para>
Add regression tests (Joachim Wieland, Michael)
Add regression tests (Joachim Wieland, Michael)
</para>
</listitem>
<listitem>
<para>
Major source code cleanups (Joachim Wieland, Michael)
Major source code cleanups (Joachim Wieland, Michael)
</para>
</sect3>
......@@ -1485,48 +1623,51 @@ Tom)
<listitem>
<para>
Improve handling of intermittent file system and resource failures (Qingqing Zhou)
Improve handling of intermittent file system and resource
failures (Qingqing Zhou)
</para>
</listitem>
<listitem>
<para>
Stability fixes (Magnus)
Stability fixes (Magnus)
</para>
<para>
Particularly, prevent the postmaster from stopping if too many
connection requests arrive too rapidly.
Particularly, prevent the postmaster from stopping if too
many connection requests arrive too rapidly.
</para>
</listitem>
<listitem>
<para>
Add support for Windows code pages <literal>1253</>, <literal>1254</>, <literal>1255</>,
and <literal>1257</> (Kris Jurka)
Add support for Windows code pages <literal>1253</>,
<literal>1254</>, <literal>1255</>, and <literal>1257</>
(Kris Jurka)
</para>
</listitem>
<listitem>
<para>
Allow <acronym>MSVC</> to compile the <productname>PostgreSQL</> server (Magnus, Hiroshi
Saito)
Allow <acronym>MSVC</> to compile the <productname>PostgreSQL</>
server (Magnus, Hiroshi Saito)
</para>
</listitem>
<listitem>
<para>
Add <acronym>MSVC</> support for utility commands and <application>pg_dump </>(Hiroshi Saito)
Add <acronym>MSVC</> support for utility commands and
<application>pg_dump </>(Hiroshi Saito)
</para>
</listitem>
<listitem>
<para>
Add native semaphore implementation (Qingqing Zhou)
Add native semaphore implementation (Qingqing Zhou)
</para>
<para>
Previous implementations mimicked SysV semaphores.
Previous implementations mimicked SysV semaphores.
</para>
</sect3>
......@@ -1536,194 +1677,214 @@ Tom)
<listitem>
<para>
Remove R-tree indexing (Tom)
Remove R-tree indexing (Tom)
</para>
<para>
Rtree has been re-implemented using <acronym>GIST</>.
Rtree has been re-implemented using <acronym>GIST</>.
</para>
</listitem>
<listitem>
<para>
Reduce libraries linked into the backend needlessly (Martijn van
Oosterhout, Tom)
Reduce libraries linked into the backend needlessly (Martijn
van Oosterhout, Tom)
</para>
</listitem>
<listitem>
<para>
New macro <literal>PG_VERSION_NUM</> for use by third-party applications wanting to
test the backend version in C using &gt; and &lt; comparisons (Bruce)
New macro <literal>PG_VERSION_NUM</> for use by third-party
applications wanting to test the backend version in C using
&gt; and &lt; comparisons (Bruce)
</para>
</listitem>
<listitem>
<para>
Improve multicolumn <acronym>GIST</> indexing (Oleg, Teodor)
Improve multicolumn <acronym>GIST</> indexing (Oleg, Teodor)
</para>
</listitem>
<listitem>
<para>
<acronym>GIST</> indexes now are clusterable (Teodor)
<acronym>GIST</> indexes now are clusterable (Teodor)
</para>
</listitem>
<listitem>
<para>
Add a configure flag to allow libedit to be preferred over <acronym>GNU</> readline
(Bruce)
Add a configure flag to allow libedit to be preferred over
<acronym>GNU</> readline (Bruce)
</para>
<para>
Use configure <literal>--with-libedit-preferred</>.
Use configure <literal>--with-libedit-preferred</>.
</para>
</listitem>
<listitem>
<para>
Allow installation into directories containing spaces (Peter)
Allow installation into directories containing spaces
(Peter)
</para>
</listitem>
<listitem>
<para>
Improve ability to relocate installs in more complex configurations (Tom)
Improve ability to relocate installs in more complex
configurations (Tom)
</para>
</listitem>
<listitem>
<para>
Add support for <productname>Solaris x86_64</> using the <productname>Solaris</> compiler (Pierre Girard,
Theo Schlossnagle, Bruce)
Add support for <productname>Solaris x86_64</> using the
<productname>Solaris</> compiler (Pierre Girard, Theo
Schlossnagle, Bruce)
</para>
</listitem>
<listitem>
<para>
Remove <acronym>QNX</> and <acronym>BEOS</> ports (Bruce)
Remove <acronym>QNX</> and <acronym>BEOS</> ports (Bruce)
</para>
<para>
These ports no longer had active maintainers.
These ports no longer had active maintainers.
</para>
</listitem>
<listitem>
<para>
Make command-line options of postmaster and postgres identical (Peter)
Make command-line options of postmaster and postgres
identical (Peter)
</para>
<para>
This allows the postmaster to pass arguments to each backend without
using <literal>-o</>.
This allows the postmaster to pass arguments to each backend
without using <literal>-o</>.
</para>
</listitem>
<listitem>
<para>
Add <literal>XLOG_BLCKSZ</> as independent from <literal>BLCKSZ</> (Mark Wong)
Add <literal>XLOG_BLCKSZ</> as independent from <literal>BLCKSZ</>
(Mark Wong)
</para>
</listitem>
<listitem>
<para>
Add <literal>LWLOCK_STATS</> define to report locking activity (Tom)
Add <literal>LWLOCK_STATS</> define to report locking
activity (Tom)
</para>
</listitem>
<listitem>
<para>
Add <acronym>GIN</> (Generalized Inverted iNdex) index access method (Teodor)
Add <acronym>GIN</> (Generalized Inverted iNdex) index
access method (Teodor)
</para>
</listitem>
<listitem>
<para>
Emit warnings for unknown <application>configure</> options (Martijn van Oosterhout)
Emit warnings for unknown <application>configure</> options
(Martijn van Oosterhout)
</para>
</listitem>
<listitem>
<para>
Add <literal>PG_MODULE_MAGIC</> header block to all shared object files (Martijn van Oosterhout)
Add <literal>PG_MODULE_MAGIC</> header block to all shared
object files (Martijn van Oosterhout)
</para>
<para>
The magic blocks prevent version mismatches between object files and
servers.
The magic blocks prevent version mismatches between object
files and servers.
</para>
</listitem>
<listitem>
<para>
Add a <acronym>GUC</> parameter <envar>seq_page_cost</> (Tom)
Add a <acronym>GUC</> parameter <envar>seq_page_cost</>
(Tom)
</para>
</listitem>
<listitem>
<para>
Re-implement the regression test script as a C program (Magnus, Tom)
Re-implement the regression test script as a C program
(Magnus, Tom)
</para>
</listitem>
<listitem>
<para>
Add <application>DTrace</> support (Robert Lor)
Add <application>DTrace</> support (Robert Lor)
</para>
</listitem>
<listitem>
<para>
Allow loadable modules to allocate shared memory and lightweight locks (Marc Munro)
Allow loadable modules to allocate shared memory and
lightweight locks (Marc Munro)
</para>
</listitem>
<listitem>
<para>
Add automatic initialization and finalization of dynamically
loaded libraries (Ralf Engelschall, Tom)
Add automatic initialization and finalization of dynamically
loaded libraries (Ralf Engelschall, Tom)
</para>
<para>
New functions <function>_PG_init()</> and <function>_PG_fini()</> are called if the library
defines such symbols. Hence we no longer need to specify an initialization
function in <envar>shared_preload_libraries</>; we can assume that the library used the
<function>_PG_init()</> convention instead.
New functions <function>_PG_init()</> and <function>_PG_fini()</>
are called if the library defines such symbols. Hence we
no longer need to specify an initialization function in
<envar>shared_preload_libraries</>; we can assume that the
library used the <function>_PG_init()</> convention instead.
</para>
</listitem>
<listitem>
<para>
Add support for libraries that enhance server-side languages (Korry Douglas)
Add support for libraries that enhance server-side languages
(Korry Douglas)
</para>
<para>
Such libraries can be used for debugging or performance measurement.
Such libraries can be used for debugging or performance
measurement.
</para>
</listitem>
<listitem>
<para>
Rename existing <acronym>GUC</> variable <envar>preload_libraries</> to <envar>shared_preload_libraries</> (Tom)
Rename existing <acronym>GUC</> variable
<envar>preload_libraries</> to <envar>shared_preload_libraries</>
(Tom)
</para>
</listitem>
<listitem>
<para>
Add new variable <envar>server_version_num</> (Greg Sabino Mullane)
Add new variable <envar>server_version_num</> (Greg Sabino
Mullane)
</para>
<para>
This is like server_version, but is an integer, e.g. <literal>80200</>. It allows
easy applications version checks.
This is like server_version, but is an integer, e.g.
<literal>80200</>. It allows easy applications version
checks.
</para>
</listitem>
<listitem>
<para>
New <acronym>XML</> documentation section (Bruce)
New <acronym>XML</> documentation section (Bruce)
</para>
</sect3>
......@@ -1733,39 +1894,40 @@ Tom)
<listitem>
<para>
Major tsearch2 improvements (Oleg, Teodor)
Major tsearch2 improvements (Oleg, Teodor)
</para>
<itemizedlist>
<listitem>
<para>
multibyte encoding support, including <acronym>UTF8</>
multibyte encoding support, including <acronym>UTF8</>
</para>
</listitem>
<listitem>
<para>
query rewriting support
query rewriting support
</para>
</listitem>
<listitem>
<para>
improved ranking functions
improved ranking functions
</para>
</listitem>
<listitem>
<para>
thesaurus dictionary support
thesaurus dictionary support
</para>
</listitem>
<listitem>
<para>
Ispell dictionaries now recognize <application>MySpell</> format, used by <application>OpenOffice</>.
Ispell dictionaries now recognize <application>MySpell</>
format, used by <application>OpenOffice</>.
</para>
</listitem>
<listitem>
<para>
<acronym>GIN</> support
<acronym>GIN</> support
</para>
</listitem>
......@@ -1775,127 +1937,138 @@ Tom)
<listitem>
<para>
Add pg_freespacemap to display free space map information (Mark
Kirkwood)
Add pg_freespacemap to display free space map information
(Mark Kirkwood)
</para>
</listitem>
<listitem>
<para>
New uninstall scripts (David)
New uninstall scripts (David)
</para>
</listitem>
<listitem>
<para>
Add pgrowlocks (Tatsuo)
Add pgrowlocks (Tatsuo)
</para>
<para>
This shows row locking information for a specified table.
This shows row locking information for a specified table.
</para>
</listitem>
<listitem>
<para>
Add <application>Pgadmin</> administration functions to adminpack (Dave)
Add <application>Pgadmin</> administration functions to
adminpack (Dave)
</para>
<para>
These functions provide additional file system access routines not present
in the default <productname>PostgreSQL</> server.
These functions provide additional file system access
routines not present in the default <productname>PostgreSQL</>
server.
</para>
</listitem>
<listitem>
<para>
Add index information to pgstattuple (ITAGAKI Takahiro, Satoshi Nagayasu)
Add index information to pgstattuple (ITAGAKI Takahiro,
Satoshi Nagayasu)
</para>
</listitem>
<listitem>
<para>
pgcrypto now has all planned functionality (Marko Kreen)
pgcrypto now has all planned functionality (Marko Kreen)
</para>
</listitem>
<listitem>
<para>
Update cube (Joshua Reich)
Update cube (Joshua Reich)
</para>
<para>
New functions are <function>cube(float[])</>, <function>cube(float[], float[])</>, and
<function>cube_subset(cube, int4[])</>.
New functions are <function>cube(float[])</>,
<function>cube(float[], float[])</>, and
<function>cube_subset(cube, int4[])</>.
</para>
</listitem>
<listitem>
<para>
Added async query capability to dblink (Kai Londenberg, Joe Conway)
Added async query capability to dblink (Kai Londenberg,
Joe Conway)
</para>
</listitem>
<listitem>
<para>
Add sslinfo (Victor Wagner)
Add sslinfo (Victor Wagner)
</para>
<para>
Reports information about the current <acronym>SSL</> certificate.
Reports information about the current <acronym>SSL</>
certificate.
</para>
</listitem>
<listitem>
<para>
Remove ora2pg, now at <ulink url="http://www.samse.fr/GPL/ora2pg"></ulink>
Remove ora2pg, now at <ulink
url="http://www.samse.fr/GPL/ora2pg"></ulink>
</para>
</listitem>
<listitem>
<para>
Remove contrib modules that have been migrated to pgfoundry: adddepend,
dbase, dbmirror, fulltextindex, mac, userlock
Remove contrib modules that have been migrated to pgfoundry:
adddepend, dbase, dbmirror, fulltextindex, mac, userlock
</para>
</listitem>
<listitem>
<para>
Remove abandoned modules: mSQL-interface, ips
Remove abandoned modules: mSQL-interface, ips
</para>
</listitem>
<listitem>
<para>
Add hstore module (Oleg, Teodor)
Add hstore module (Oleg, Teodor)
</para>
</listitem>
<listitem>
<para>
Add isn module, replacing isbn_issn (Jeremy Kronuz)
Add isn module, replacing isbn_issn (Jeremy Kronuz)
</para>
<para>
This now supports <acronym>EAN13</>, <acronym>UPC</>, <acronym>ISBN</> (books), <acronym>ISMN</> (music), and
<acronym>ISSN</> (serials).
This now supports <acronym>EAN13</>, <acronym>UPC</>,
<acronym>ISBN</> (books), <acronym>ISMN</> (music), and
<acronym>ISSN</> (serials).
</para>
</listitem>
<listitem>
<para>
New operators for array-subset comparisons (<literal>@&gt;</>, <literal>&lt;@</>, <literal>&amp;&amp;</>) (Tom)
New operators for array-subset comparisons (<literal>@&gt;</>,
<literal>&lt;@</>, <literal>&amp;&amp;</>) (Tom)
</para>
</listitem>
<listitem>
<para>
In xml, rename <function>xml_valid()</> to <function>xml_is_well_formed()</> (Tom)
In xml, rename <function>xml_valid()</> to
<function>xml_is_well_formed()</> (Tom)
</para>
<para>
<function>xml_valid()</> will remain for backward compability, but its behavior
will change to do schema checks in future releases.
<function>xml_valid()</> will remain for backward compability,
but its behavior will change to do schema checks in future
releases.
</para>
</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