Further editing of release notes.
This commit is contained in:
parent
99ee43c57b
commit
7dc04cd204
@ -1,4 +1,4 @@
|
|||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/release-9.0.sgml,v 2.51 2010/08/24 14:46:29 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/release-9.0.sgml,v 2.52 2010/08/24 23:45:32 tgl Exp $ -->
|
||||||
|
|
||||||
<sect1 id="release-9-0">
|
<sect1 id="release-9-0">
|
||||||
<title>Release 9.0</title>
|
<title>Release 9.0</title>
|
||||||
@ -43,50 +43,48 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Easier database object permissions management. <link
|
Easier database object permissions management. <link
|
||||||
linkend="SQL-GRANT"><command>GRANT</>/<command>REVOKE
|
linkend="SQL-GRANT"><command>GRANT</>/<command>REVOKE IN
|
||||||
IN SCHEMA</></link> supports mass permissions changes, and
|
SCHEMA</></link> supports mass permissions changes on existing objects,
|
||||||
the <link linkend="SQL-ALTERDEFAULTPRIVILEGES"><command>ALTER
|
while <link linkend="SQL-ALTERDEFAULTPRIVILEGES"><command>ALTER DEFAULT
|
||||||
DEFAULT PRIVILEGES</></link> command controls privileges
|
PRIVILEGES</></link> allows control of privileges for objects created in
|
||||||
of all newly-created objects. Large object permissions now
|
the future. Large objects (BLOBs) now support privilege management as
|
||||||
support <command>GRANT</>/<command>REVOKE</> as well.
|
well.
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Add support for compiling on <link
|
|
||||||
linkend="install-win32-full">64-bit
|
|
||||||
<productname>Windows</></link> and running in 64-bit
|
|
||||||
mode.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Broadly enhanced stored procedure support.
|
Broadly enhanced stored procedure support.
|
||||||
The <link linkend="SQL-DO"><command>DO</></link> statement permits
|
The <link linkend="SQL-DO"><command>DO</></link> statement supports
|
||||||
ad-hoc or anonymous code blocks. Functions can now be called using named
|
ad-hoc or <quote>anonymous</> code blocks.
|
||||||
parameters. <link linkend="plpgsql">PL/pgSQL</link> is now installed by default,
|
Functions can now be called using named parameters.
|
||||||
and <link linkend="plperl">PL/Perl</link> and <link linkend="plpython">PL/Python</link>
|
<link linkend="plpgsql">PL/pgSQL</link> is now installed by default, and
|
||||||
have been enhanced in several ways, including support for Python3.
|
<link linkend="plperl">PL/Perl</link> and <link
|
||||||
|
linkend="plpython">PL/Python</link> have been enhanced in several ways,
|
||||||
|
including support for Python3.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
More advanced reporting queries with additional <link
|
Full support for <link linkend="install-win32">64-bit
|
||||||
linkend="functions-window">window functions</link>
|
<productname>Windows</></link>.
|
||||||
(<literal>PRECEDING</> and <literal>FOLLOWING</>) and the ability
|
|
||||||
to <link linkend="syntax-aggregates"><literal>ORDER BY</></link>
|
|
||||||
inside aggregate functions.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Triggers now support two new features,
|
More advanced reporting queries, including additional windowing options
|
||||||
SQL-compliant <link
|
(<literal>PRECEDING</> and <literal>FOLLOWING</>) and the ability to
|
||||||
linkend="SQL-CREATETRIGGER">per-column triggers</link>, and
|
control the order in which values are fed to aggregate functions.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
New trigger features, including
|
||||||
|
SQL-standard-compliant <link
|
||||||
|
linkend="SQL-CREATETRIGGER">per-column triggers</link> and
|
||||||
conditional trigger execution.
|
conditional trigger execution.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -101,26 +99,46 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
New and enhanced security features, including <link linkend="client-authentication">RADIUS authentication</link>,
|
<link linkend="ddl-constraints-exclusion">Exclusion constraints</link>.
|
||||||
LDAP authentication improvements, and the new <link linkend="passwordcheck">passwordcheck</link> optional module
|
These provide a generalized version of unique constraints, allowing
|
||||||
|
enforcement of complex conditions.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
New and enhanced security features, including RADIUS authentication,
|
||||||
|
LDAP authentication improvements, and a new contrib module
|
||||||
|
<link linkend="passwordcheck"><filename>passwordcheck</></link>
|
||||||
for testing password strength.
|
for testing password strength.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The <link linkend="SQL-LISTEN"><command>LISTEN</></link>/<link
|
New high-performance implementation of the
|
||||||
linkend="SQL-NOTIFY"><command>NOTIFY</></link>
|
<link linkend="SQL-LISTEN"><command>LISTEN</></link>/<link
|
||||||
feature has been overhauled to make it into
|
linkend="SQL-NOTIFY"><command>NOTIFY</></link> feature.
|
||||||
a high-performance event queuing system. It now stores
|
Pending events are now stored in a memory-based queue rather than
|
||||||
events in a memory-based queue, and it now allows delivery
|
a table. Also, a <quote>payload</> string can be sent with each
|
||||||
of a string payload to listeners with each event.
|
event, rather than transmitting just an event name as before.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add <link linkend="pgupgrade"><filename>/contrib/pg_upgrade</></link>
|
New implementation of
|
||||||
|
<link linkend="SQL-VACUUM"><command>VACUUM FULL</></link>.
|
||||||
|
This command now rewrites the entire table and indexes, rather than
|
||||||
|
moving individual rows to compact space. It is substantially faster
|
||||||
|
in most cases, and no longer results in index bloat.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
New contrib module
|
||||||
|
<link linkend="pgupgrade"><filename>pg_upgrade</></link>
|
||||||
to support in-place upgrades from 8.3 or 8.4 to 9.0.
|
to support in-place upgrades from 8.3 or 8.4 to 9.0.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -128,41 +146,24 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Multiple performance enhancements for specific types of queries,
|
Multiple performance enhancements for specific types of queries,
|
||||||
including join elimination, which optimizes automatically generated
|
including elimination of unnecessary joins. This helps optimize some
|
||||||
queries, such as those produced by object-relational mappers (ORMs).
|
automatically-generated queries, such as those produced by
|
||||||
|
object-relational mappers (ORMs).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link linkend="ddl-constraints-exclusion">Exclusion constraints</link>
|
<link linkend="SQL-EXPLAIN "><command>EXPLAIN</></link> enhancements.
|
||||||
let database designers define uniqueness based on complex
|
The output is now available in JSON, XML, or YAML format, and includes
|
||||||
criteria, including for non-scalar data such as time periods,
|
|
||||||
ranges and arrays.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
As part of our decade-long effort to eliminate the pain of VACUUM,
|
|
||||||
<link linkend="vacuum-for-space-recovery"><command>VACUUM FULL</></link>
|
|
||||||
is now substantially faster by rewriting the entire table and
|
|
||||||
indexes, rather than moving around single rows to compact space.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<link linkend="using-explain"><command>EXPLAIN</command></link>
|
|
||||||
plans are now available in JSON, XML and YAML format, and include
|
|
||||||
buffer utilization and other data not previously available.
|
buffer utilization and other data not previously available.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The <link linkend="hstore">HStore optional module</link> has been improved with new functions and greater
|
<link linkend="hstore"><filename>hstore</></link> improvements,
|
||||||
data capacity to make it a high-performance key-value store.
|
including new functions and greater data capacity.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -216,9 +217,9 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link linkend="guc-wal-level"><varname>wal_level</></link> should now be
|
Replace server parameter <varname>archive_mode</> with
|
||||||
set to <literal>archive</>, not <literal>on</>, to do continuous
|
<link linkend="guc-wal-level"><varname>wal_level</></link>
|
||||||
archiving (Heikki Linnakangas)
|
(Heikki Linnakangas)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -252,18 +253,6 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Make <function>date_trunc</> truncate rather than round when reducing
|
|
||||||
fractional-seconds precision (Tom Lane)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The code always acted this way for integer-based dates/times.
|
|
||||||
Now float-based dates/times behave similarly.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
</sect3>
|
</sect3>
|
||||||
@ -316,6 +305,18 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <function>date_trunc</> truncate rather than round when reducing
|
||||||
|
precision of fractional seconds (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The code always acted this way for integer-based dates/times.
|
||||||
|
Now float-based dates/times behave similarly.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
</sect3>
|
</sect3>
|
||||||
@ -550,11 +551,25 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve performance and reliability of EvalPlanQual rechecks in join
|
||||||
|
queries (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>UPDATE</>, <command>DELETE</>, and <command>SELECT FOR
|
||||||
|
UPDATE/SHARE</> queries that involve joins will now behave much better
|
||||||
|
when encountering freshly-updated rows.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Improve performance of <link
|
Improve performance of <link
|
||||||
linkend="SQL-TRUNCATE"><command>TRUNCATE</></link> when
|
linkend="SQL-TRUNCATE"><command>TRUNCATE</></link> when
|
||||||
used in the same transaction as table creation (Tom Lane)
|
the table was created or truncated earlier in the same transaction
|
||||||
|
(Tom Lane)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -580,8 +595,8 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Outer joins where the inner side is unique and not referenced in
|
Outer joins where the inner side is unique and not referenced above
|
||||||
the query are unnecessary and are therefore now removed. This will
|
the join are unnecessary and are therefore now removed. This will
|
||||||
accelerate many automatically generated queries, such as those created
|
accelerate many automatically generated queries, such as those created
|
||||||
by object-relational mappers (ORMs).
|
by object-relational mappers (ORMs).
|
||||||
</para>
|
</para>
|
||||||
@ -599,6 +614,14 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve the optimizer's choices about when to use materialize nodes,
|
||||||
|
and when to use sorting versus hashing for <literal>DISTINCT</>
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Improve the optimizer's equivalence detection for expressions involving
|
Improve the optimizer's equivalence detection for expressions involving
|
||||||
@ -634,7 +657,8 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This avoids the rare error <quote>failed to make a valid plan</>.
|
This avoids the rare error <quote>failed to make a valid plan</>,
|
||||||
|
and should also improve planning speed.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -823,7 +847,7 @@
|
|||||||
Add <link
|
Add <link
|
||||||
linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_single_table_counters()</></link>
|
linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_single_table_counters()</></link>
|
||||||
and <function>pg_stat_reset_single_function_counters()</>
|
and <function>pg_stat_reset_single_function_counters()</>
|
||||||
to allow resetting of the statistics counters for individual
|
to allow resetting the statistics counters for individual
|
||||||
tables and indexes (Magnus Hagander)
|
tables and indexes (Magnus Hagander)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -849,9 +873,11 @@
|
|||||||
not combinations. All role and database settings are now stored
|
not combinations. All role and database settings are now stored
|
||||||
in the new <structname>pg_db_role_setting</> system table. A new
|
in the new <structname>pg_db_role_setting</> system table. A new
|
||||||
<application>psql</> command <literal>\drds</> shows these settings.
|
<application>psql</> command <literal>\drds</> shows these settings.
|
||||||
Backwards-compatible system views do not show combination settings.
|
The legacy system views <structname>pg_roles</>,
|
||||||
|
<structname>pg_shadow</>, and <structname>pg_user</>
|
||||||
|
do not show combination settings, and therefore no longer
|
||||||
|
completely represent the configuration for a user or database.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -884,6 +910,19 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Change server parameter <link
|
||||||
|
linkend="guc-log-temp-files"><varname>log_temp_files</></link> to
|
||||||
|
use default file size units of kilobytes (Robert Haas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously this setting was interpreted in bytes if no units were
|
||||||
|
specified.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Log changes of parameter values when <filename>postgresql.conf</> is
|
Log changes of parameter values when <filename>postgresql.conf</> is
|
||||||
@ -895,36 +934,24 @@
|
|||||||
settings, and is also very convenient for checking the effects of
|
settings, and is also very convenient for checking the effects of
|
||||||
<filename>postgresql.conf</> edits.
|
<filename>postgresql.conf</> edits.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add proper permissions for custom server parameters (Tom Lane)
|
Properly enforce superuser permissions for custom server parameters
|
||||||
|
(Tom Lane)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Custom parameters can now only be created by super-users,
|
Non-superusers can no longer issue <command>ALTER
|
||||||
but then can be modified by ordinary users if the parameter's
|
ROLE</>/<command>DATABASE SET</> for parameters that are not currently
|
||||||
permissions allow it. This makes custom parameters
|
known to the server. This allows the server to correctly check that
|
||||||
appropriate for security-related settings. Previously, any user
|
superuser-only parameters are only set by superusers. Previously,
|
||||||
could create or modify custom parameters.
|
the <literal>SET</> would be allowed and then ignored at session start,
|
||||||
|
making superuser-only custom parameters practically useless.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Change server parameter <link
|
|
||||||
linkend="guc-log-temp-files"><varname>log_temp_files</></link> to
|
|
||||||
use default file size units of kilobytes (Robert Haas)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Previously this setting was interpreted in bytes if no units were
|
|
||||||
specified.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
</sect4>
|
</sect4>
|
||||||
@ -957,7 +984,7 @@
|
|||||||
<para>
|
<para>
|
||||||
Allow mixing of traditional and SQL-standard <link
|
Allow mixing of traditional and SQL-standard <link
|
||||||
linkend="SQL-LIMIT"><literal>LIMIT</>/<literal>OFFSET</></link>
|
linkend="SQL-LIMIT"><literal>LIMIT</>/<literal>OFFSET</></link>
|
||||||
syntax in the same query (Tom Lane)
|
syntax (Tom Lane)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1063,29 +1090,14 @@
|
|||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<sect4>
|
<sect4>
|
||||||
<title><command>ALTER</></title>
|
<title><command>ALTER TABLE</></title>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add <link linkend="SQL-ALTERDEFAULTPRIVILEGES"><command>ALTER
|
Implement <literal>IF EXISTS</> for <literal>ALTER TABLE DROP COLUMN</>
|
||||||
DEFAULT PRIVILEGES</></link> command to control privileges
|
and <literal>ALTER TABLE DROP CONSTRAINT </> (Andres Freund)
|
||||||
of objects created later (Petr Jelinek)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
This greatly simplifies the assignment of object privileges in a
|
|
||||||
complex database application. Default privileges can be set for
|
|
||||||
tables, views, sequences, and functions. Defaults may be assigned on a
|
|
||||||
per-schema basis, or database-wide.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Implement <literal>IF EXISTS</> for <literal>DROP COLUMN</> and
|
|
||||||
<literal>DROP CONSTRAINT </> (Andres Freund)
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1223,7 +1235,21 @@
|
|||||||
and makes it easier to utilize database roles for application
|
and makes it easier to utilize database roles for application
|
||||||
data security.
|
data security.
|
||||||
</para>
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Add <link linkend="SQL-ALTERDEFAULTPRIVILEGES"><command>ALTER
|
||||||
|
DEFAULT PRIVILEGES</></link> command to control privileges
|
||||||
|
of objects created later (Petr Jelinek)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This greatly simplifies the assignment of object privileges in a
|
||||||
|
complex database application. Default privileges can be set for
|
||||||
|
tables, views, sequences, and functions. Defaults may be assigned on a
|
||||||
|
per-schema basis, or database-wide.
|
||||||
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -1235,7 +1261,7 @@
|
|||||||
<para>
|
<para>
|
||||||
Formerly, any database user could read or modify any large object.
|
Formerly, any database user could read or modify any large object.
|
||||||
Read and write permissions can now be granted and revoked per
|
Read and write permissions can now be granted and revoked per
|
||||||
large object.
|
large object, and the ownership of large objects is tracked.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1285,7 +1311,7 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Global catalogs still cannot be clustered.
|
Shared catalogs still cannot be clustered.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1429,6 +1455,14 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
By default, multicolumn indexes are now named after all their columns;
|
||||||
|
and index expression columns are now named based on their expressions
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Reindexing shared system catalogs is now fully transactional
|
Reindexing shared system catalogs is now fully transactional
|
||||||
@ -1521,7 +1555,7 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Tighten input requirements for <type>int2vector</> input (Caleb
|
Tighten input checking for <type>int2vector</> values (Caleb
|
||||||
Welton)
|
Welton)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -1630,9 +1664,9 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Fix <function>to_char()</> to output the proper localized
|
Fix <function>to_char()</> to output localized numeric and monetary
|
||||||
numeric and monetary characters on <productname>Windows</>
|
strings in the correct encoding on <productname>Windows</>
|
||||||
(Hiroshi Inoue, Itagaki Takahir, Bruce Momjian)
|
(Hiroshi Inoue, Itagaki Takahiro, Bruce Momjian)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1654,8 +1688,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Allow aggregate functions to use <link
|
Allow aggregate functions to use <link
|
||||||
linkend="syntax-aggregates"><literal>ORDER BY</></> (Andrew
|
linkend="syntax-aggregates"><literal>ORDER BY</></> (Andrew Gierth)
|
||||||
Gierth)
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -1666,6 +1699,13 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Multi-argument aggregate functions can now use <literal>DISTINCT</>
|
||||||
|
(Andrew Gierth)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add the <link
|
Add the <link
|
||||||
@ -1746,16 +1786,24 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Make the <link linkend="information-schema">information_schema</link>
|
Update the <link linkend="information-schema">information_schema</link>
|
||||||
views properly display maximum octet lengths for <type>char</> and
|
views to conform to SQL:2008
|
||||||
<type>varchar</> columns, as well as the proper precision for datetime
|
(Peter Eisentraut)
|
||||||
columns (Peter Eisentraut)
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Speed up information_schema privilege views (Joachim Wieland)
|
Make the <literal>information_schema</> views correctly display maximum
|
||||||
|
octet lengths for <type>char</> and <type>varchar</> columns (Peter
|
||||||
|
Eisentraut)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Speed up <literal>information_schema</> privilege views
|
||||||
|
(Joachim Wieland)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1889,6 +1937,23 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid throwing an unnecessary error for an invalid record reference
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
An error is now thrown only if the reference is actually fetched,
|
||||||
|
rather than whenever the enclosing expression is reached. For
|
||||||
|
example, many people have tried to do this in triggers:
|
||||||
|
<programlisting>
|
||||||
|
if TG_OP = 'INSERT' AND NEW.col1 = ... then
|
||||||
|
</programlisting>
|
||||||
|
This will now actually work as expected.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Improve PL/pgSQL's ability to handle row types with dropped columns
|
Improve PL/pgSQL's ability to handle row types with dropped columns
|
||||||
@ -2057,22 +2122,23 @@
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
<type>Bytea</> values passed into PL/Python are now represented as
|
<type>Bytea</> values passed into PL/Python are now represented as
|
||||||
binary, rather than the PostgreSQL <type>bytea</> text format. Null
|
binary, rather than the PostgreSQL <type>bytea</> text format.
|
||||||
bytes are now also output properly from PL/Python. <type>boolean</>
|
<type>Bytea</> values containing null bytes are now also output
|
||||||
and <type>numeric</> value passing in PL/Python was also improved.
|
properly from PL/Python. Passing of boolean, integer, and float
|
||||||
|
values was also improved.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add <link linkend="plpython-arrays">array parameter/return
|
Support <link linkend="plpython-arrays">arrays</link> as parameters and
|
||||||
support</link> to PL/Python (Peter Eisentraut)
|
return values in PL/Python (Peter Eisentraut)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Improve mapping of domains to Python base types in PL/Python (Peter Eisentraut)
|
Improve mapping of SQL domains to Python types (Peter Eisentraut)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -2330,10 +2396,10 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Previously the <application>pg_ctl</> process could have been mistakenly
|
Previously, <application>pg_ctl</>'s parent process could have been
|
||||||
identified as a running <application>postmaster</> based on a stale
|
mistakenly identified as a running <application>postmaster</> based on
|
||||||
<application>postmaster</> lock file, resulting in a transient failure
|
a stale <application>postmaster</> lock file, resulting in a transient
|
||||||
to start the database.
|
failure to start the database.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -2417,6 +2483,14 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid extra system calls to block and unblock <literal>SIGPIPE</>
|
||||||
|
in <application>libpq</>, on platforms that offer alternative methods
|
||||||
|
(Jeremy Kerr)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
When a <link linkend="libpq-pgpass"><filename>.pgpass</></link>-supplied
|
When a <link linkend="libpq-pgpass"><filename>.pgpass</></link>-supplied
|
||||||
@ -2517,20 +2591,20 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add <application>ecpg</> out-of-scope cursor support in native mode
|
Add out-of-scope cursor support in <application>ecpg</>'s native mode
|
||||||
(Boszormenyi Zoltan)
|
(Boszormenyi Zoltan)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This allows <command>DECLARE</> to use variables that are not in
|
This allows <command>DECLARE</> to use variables that are not in
|
||||||
scope when <command>OPEN</> is called. This facility already existed
|
scope when <command>OPEN</> is called. This facility already existed
|
||||||
in <application>ecpg</> Informix-compatibility mode.
|
in <application>ecpg</>'s Informix-compatibility mode.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Allow dynamic <application>ecpg</> cursor names (Boszormenyi Zoltan)
|
Allow dynamic cursor names in <application>ecpg</> (Boszormenyi Zoltan)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -2601,15 +2675,15 @@
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
These are similar to the existing <literal>all</>, <literal>install</>,
|
These are similar to the existing <literal>all</>, <literal>install</>,
|
||||||
and <literal>installcheck</> targets, but they build <acronym>HTML</>
|
and <literal>installcheck</> targets, but they also build
|
||||||
documentation, build and test <filename>contrib</>, and test
|
<acronym>HTML</> documentation, build and test <filename>contrib</>,
|
||||||
server-side languages and <application>ecpg</>.
|
and test server-side languages and <application>ecpg</>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add data and documentation location control to <link
|
Add data and documentation installation location control to <link
|
||||||
linkend="xfunc-c-pgxs"><acronym>PGXS</></link> Makefiles
|
linkend="xfunc-c-pgxs"><acronym>PGXS</></link> Makefiles
|
||||||
(Mark Cave-Ayland)
|
(Mark Cave-Ayland)
|
||||||
</para>
|
</para>
|
||||||
@ -2617,8 +2691,9 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add a Makefile rule to build documentation as a single text file
|
Add Makefile rules to build documentation as a single <acronym>HTML</>
|
||||||
(Bruce Momjian)
|
file or as a single plain-text file
|
||||||
|
(Peter Eisentraut, Bruce Momjian)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -2652,13 +2727,6 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Support multiprocessor compilation using <productname>Microsoft Visual
|
|
||||||
C</> (Magnus Hagander)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
</sect4>
|
</sect4>
|
||||||
@ -2757,14 +2825,39 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Improve the ability to translate <application>psql</> strings
|
Automatically generate the initial contents of
|
||||||
|
<structname>pg_attribute</> for <quote>bootstrapped</> catalogs
|
||||||
|
(John Naylor)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This greatly simplifies changes to these catalogs.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Split the processing of
|
||||||
|
<command>INSERT</>/<command>UPDATE</>/<command>DELETE</> operations out
|
||||||
|
of <filename>execMain.c</> (Marko Tiikkaja)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Updates are now executed in a separate ModifyTable node. This change is
|
||||||
|
necessary infrastructure for future improvements.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Simplify translation of <application>psql</>'s SQL help text
|
||||||
(Peter Eisentraut)
|
(Peter Eisentraut)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Reduce the length of some file names so that all file paths in the
|
Reduce the lengths of some file names so that all file paths in the
|
||||||
distribution tarball are less than 100 characters (Tom Lane)
|
distribution tarball are less than 100 characters (Tom Lane)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -2803,15 +2896,20 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Restructure the <acronym>HTML</> documentation build
|
Restructure the <acronym>HTML</> documentation
|
||||||
<filename>Makefile</> rules (Peter Eisentraut)
|
<filename>Makefile</> rules to make their dependency checks work
|
||||||
|
correctly, avoiding unnecessary rebuilds (Peter Eisentraut)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Use <productname>DocBook</> <acronym>XSL</> stylesheets for man page
|
Use <productname>DocBook</> <acronym>XSL</> stylesheets for man page
|
||||||
building (Peter Eisentraut)
|
building, rather than <productname>Docbook2X</> (Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This changes the set of tools needed to build the man pages.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -2823,7 +2921,7 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Improve error context support in PL/Perl (Alexey Klyukin)
|
Improve error context reports in PL/Perl (Alexey Klyukin)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -2906,6 +3004,12 @@
|
|||||||
Restructure use of <literal>LDFLAGS</> to be more consistent
|
Restructure use of <literal>LDFLAGS</> to be more consistent
|
||||||
across platforms (Tom Lane)
|
across platforms (Tom Lane)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<literal>LDFLAGS</> is now used for linking both executables and shared
|
||||||
|
libraries, and we add on <literal>LDFLAGS_EX</> when linking
|
||||||
|
executables, or <literal>LDFLAGS_SL</> when linking shared libraries.
|
||||||
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
@ -2919,8 +3023,8 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Simplify use of <productname>C++</> functions in backend code (Kurt
|
Make backend header files safe to include in <productname>C++</>
|
||||||
Harriman, Peter Eisentraut)
|
(Kurt Harriman, Peter Eisentraut)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -2942,10 +3046,23 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Change calling convention for <function>SearchSysCache()</> and related
|
||||||
|
functions to avoid hard-wiring the maximum number of cache keys
|
||||||
|
(Robert Haas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Existing calls will still work for the moment, but can be expected to
|
||||||
|
break in 9.1 or later if not converted.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Require calls of <function>fastgetattr()</> and
|
Require calls of <function>fastgetattr()</> and
|
||||||
<function>heap_getattr()</> backend macros to use a non-NULL fourth
|
<function>heap_getattr()</> backend macros to provide a non-NULL fourth
|
||||||
argument (Robert Haas)
|
argument (Robert Haas)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -2961,8 +3078,8 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add parser hooks to access column and parameter references in
|
Add parser hooks for processing ColumnRef and ParamRef nodes
|
||||||
queries (Tom Lane)
|
(Tom Lane)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -3085,7 +3202,7 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This filter dictionary removes accents from letters, which
|
This filtering dictionary removes accents from letters, which
|
||||||
makes full-text searches over multiple languages much easier.
|
makes full-text searches over multiple languages much easier.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user