|
|
|
|
@ -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"> |
|
|
|
|
<title>Release 9.0</title> |
|
|
|
|
@ -43,50 +43,48 @@ |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Easier database object permissions management. <link |
|
|
|
|
linkend="SQL-GRANT"><command>GRANT</>/<command>REVOKE |
|
|
|
|
IN SCHEMA</></link> supports mass permissions changes, and |
|
|
|
|
the <link linkend="SQL-ALTERDEFAULTPRIVILEGES"><command>ALTER |
|
|
|
|
DEFAULT PRIVILEGES</></link> command controls privileges |
|
|
|
|
of all newly-created objects. Large object permissions now |
|
|
|
|
support <command>GRANT</>/<command>REVOKE</> as well. |
|
|
|
|
linkend="SQL-GRANT"><command>GRANT</>/<command>REVOKE IN |
|
|
|
|
SCHEMA</></link> supports mass permissions changes on existing objects, |
|
|
|
|
while <link linkend="SQL-ALTERDEFAULTPRIVILEGES"><command>ALTER DEFAULT |
|
|
|
|
PRIVILEGES</></link> allows control of privileges for objects created in |
|
|
|
|
the future. Large objects (BLOBs) now support privilege management as |
|
|
|
|
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. |
|
|
|
|
Broadly enhanced stored procedure support. |
|
|
|
|
The <link linkend="SQL-DO"><command>DO</></link> statement supports |
|
|
|
|
ad-hoc or <quote>anonymous</> code blocks. |
|
|
|
|
Functions can now be called using named parameters. |
|
|
|
|
<link linkend="plpgsql">PL/pgSQL</link> is now installed by default, and |
|
|
|
|
<link linkend="plperl">PL/Perl</link> and <link |
|
|
|
|
linkend="plpython">PL/Python</link> have been enhanced in several ways, |
|
|
|
|
including support for Python3. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Broadly enhanced stored procedure support. |
|
|
|
|
The <link linkend="SQL-DO"><command>DO</></link> statement permits |
|
|
|
|
ad-hoc or anonymous code blocks. Functions can now be called using named |
|
|
|
|
parameters. <link linkend="plpgsql">PL/pgSQL</link> is now installed by default, |
|
|
|
|
and <link linkend="plperl">PL/Perl</link> and <link linkend="plpython">PL/Python</link> |
|
|
|
|
have been enhanced in several ways, including support for Python3. |
|
|
|
|
Full support for <link linkend="install-win32">64-bit |
|
|
|
|
<productname>Windows</></link>. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
More advanced reporting queries with additional <link |
|
|
|
|
linkend="functions-window">window functions</link> |
|
|
|
|
(<literal>PRECEDING</> and <literal>FOLLOWING</>) and the ability |
|
|
|
|
to <link linkend="syntax-aggregates"><literal>ORDER BY</></link> |
|
|
|
|
inside aggregate functions. |
|
|
|
|
More advanced reporting queries, including additional windowing options |
|
|
|
|
(<literal>PRECEDING</> and <literal>FOLLOWING</>) and the ability to |
|
|
|
|
control the order in which values are fed to aggregate functions. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Triggers now support two new features, |
|
|
|
|
SQL-compliant <link |
|
|
|
|
linkend="SQL-CREATETRIGGER">per-column triggers</link>, and |
|
|
|
|
New trigger features, including |
|
|
|
|
SQL-standard-compliant <link |
|
|
|
|
linkend="SQL-CREATETRIGGER">per-column triggers</link> and |
|
|
|
|
conditional trigger execution. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
@ -101,68 +99,71 @@ |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
New and enhanced security features, including <link linkend="client-authentication">RADIUS authentication</link>, |
|
|
|
|
LDAP authentication improvements, and the new <link linkend="passwordcheck">passwordcheck</link> optional module |
|
|
|
|
for testing password strength. |
|
|
|
|
<link linkend="ddl-constraints-exclusion">Exclusion constraints</link>. |
|
|
|
|
These provide a generalized version of unique constraints, allowing |
|
|
|
|
enforcement of complex conditions. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
The <link linkend="SQL-LISTEN"><command>LISTEN</></link>/<link |
|
|
|
|
linkend="SQL-NOTIFY"><command>NOTIFY</></link> |
|
|
|
|
feature has been overhauled to make it into |
|
|
|
|
a high-performance event queuing system. It now stores |
|
|
|
|
events in a memory-based queue, and it now allows delivery |
|
|
|
|
of a string payload to listeners with each event. |
|
|
|
|
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. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Add <link linkend="pgupgrade"><filename>/contrib/pg_upgrade</></link> |
|
|
|
|
to support in-place upgrades from 8.3 or 8.4 to 9.0. |
|
|
|
|
New high-performance implementation of the |
|
|
|
|
<link linkend="SQL-LISTEN"><command>LISTEN</></link>/<link |
|
|
|
|
linkend="SQL-NOTIFY"><command>NOTIFY</></link> feature. |
|
|
|
|
Pending events are now stored in a memory-based queue rather than |
|
|
|
|
a table. Also, a <quote>payload</> string can be sent with each |
|
|
|
|
event, rather than transmitting just an event name as before. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Multiple performance enhancements for specific types of queries, |
|
|
|
|
including join elimination, which optimizes automatically generated |
|
|
|
|
queries, such as those produced by object-relational mappers (ORMs). |
|
|
|
|
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> |
|
|
|
|
<link linkend="ddl-constraints-exclusion">Exclusion constraints</link> |
|
|
|
|
let database designers define uniqueness based on complex |
|
|
|
|
criteria, including for non-scalar data such as time periods, |
|
|
|
|
ranges and arrays. |
|
|
|
|
New contrib module |
|
|
|
|
<link linkend="pgupgrade"><filename>pg_upgrade</></link> |
|
|
|
|
to support in-place upgrades from 8.3 or 8.4 to 9.0. |
|
|
|
|
</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. |
|
|
|
|
Multiple performance enhancements for specific types of queries, |
|
|
|
|
including elimination of unnecessary joins. This helps optimize some |
|
|
|
|
automatically-generated queries, such as those produced by |
|
|
|
|
object-relational mappers (ORMs). |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
<link linkend="using-explain"><command>EXPLAIN</command></link> |
|
|
|
|
plans are now available in JSON, XML and YAML format, and include |
|
|
|
|
<link linkend="SQL-EXPLAIN "><command>EXPLAIN</></link> enhancements. |
|
|
|
|
The output is now available in JSON, XML, or YAML format, and includes |
|
|
|
|
buffer utilization and other data not previously available. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
The <link linkend="hstore">HStore optional module</link> has been improved with new functions and greater |
|
|
|
|
data capacity to make it a high-performance key-value store. |
|
|
|
|
<link linkend="hstore"><filename>hstore</></link> improvements, |
|
|
|
|
including new functions and greater data capacity. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -216,9 +217,9 @@ |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
<link linkend="guc-wal-level"><varname>wal_level</></link> should now be |
|
|
|
|
set to <literal>archive</>, not <literal>on</>, to do continuous |
|
|
|
|
archiving (Heikki Linnakangas) |
|
|
|
|
Replace server parameter <varname>archive_mode</> with |
|
|
|
|
<link linkend="guc-wal-level"><varname>wal_level</></link> |
|
|
|
|
(Heikki Linnakangas) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -252,18 +253,6 @@ |
|
|
|
|
</para> |
|
|
|
|
</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> |
|
|
|
|
|
|
|
|
|
</sect3> |
|
|
|
|
@ -316,6 +305,18 @@ |
|
|
|
|
</para> |
|
|
|
|
</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> |
|
|
|
|
|
|
|
|
|
</sect3> |
|
|
|
|
@ -550,11 +551,25 @@ |
|
|
|
|
</para> |
|
|
|
|
</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> |
|
|
|
|
<para> |
|
|
|
|
Improve performance of <link |
|
|
|
|
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> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -580,8 +595,8 @@ |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
Outer joins where the inner side is unique and not referenced in |
|
|
|
|
the query are unnecessary and are therefore now removed. This will |
|
|
|
|
Outer joins where the inner side is unique and not referenced above |
|
|
|
|
the join are unnecessary and are therefore now removed. This will |
|
|
|
|
accelerate many automatically generated queries, such as those created |
|
|
|
|
by object-relational mappers (ORMs). |
|
|
|
|
</para> |
|
|
|
|
@ -599,6 +614,14 @@ |
|
|
|
|
</para> |
|
|
|
|
</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> |
|
|
|
|
<para> |
|
|
|
|
Improve the optimizer's equivalence detection for expressions involving |
|
|
|
|
@ -634,7 +657,8 @@ |
|
|
|
|
</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> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -823,7 +847,7 @@ |
|
|
|
|
Add <link |
|
|
|
|
linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_single_table_counters()</></link> |
|
|
|
|
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) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
@ -849,9 +873,11 @@ |
|
|
|
|
not combinations. All role and database settings are now stored |
|
|
|
|
in the new <structname>pg_db_role_setting</> system table. A new |
|
|
|
|
<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> |
|
|
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
@ -884,6 +910,19 @@ |
|
|
|
|
</para> |
|
|
|
|
</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> |
|
|
|
|
<para> |
|
|
|
|
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 |
|
|
|
|
<filename>postgresql.conf</> edits. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Add proper permissions for custom server parameters (Tom Lane) |
|
|
|
|
Properly enforce superuser permissions for custom server parameters |
|
|
|
|
(Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
Custom parameters can now only be created by super-users, |
|
|
|
|
but then can be modified by ordinary users if the parameter's |
|
|
|
|
permissions allow it. This makes custom parameters |
|
|
|
|
appropriate for security-related settings. Previously, any user |
|
|
|
|
could create or modify custom parameters. |
|
|
|
|
Non-superusers can no longer issue <command>ALTER |
|
|
|
|
ROLE</>/<command>DATABASE SET</> for parameters that are not currently |
|
|
|
|
known to the server. This allows the server to correctly check that |
|
|
|
|
superuser-only parameters are only set by superusers. Previously, |
|
|
|
|
the <literal>SET</> would be allowed and then ignored at session start, |
|
|
|
|
making superuser-only custom parameters practically useless. |
|
|
|
|
</para> |
|
|
|
|
</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> |
|
|
|
|
|
|
|
|
|
</sect4> |
|
|
|
|
@ -957,7 +984,7 @@ |
|
|
|
|
<para> |
|
|
|
|
Allow mixing of traditional and SQL-standard <link |
|
|
|
|
linkend="SQL-LIMIT"><literal>LIMIT</>/<literal>OFFSET</></link> |
|
|
|
|
syntax in the same query (Tom Lane) |
|
|
|
|
syntax (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -1063,29 +1090,14 @@ |
|
|
|
|
</itemizedlist> |
|
|
|
|
|
|
|
|
|
<sect4> |
|
|
|
|
<title><command>ALTER</></title> |
|
|
|
|
<title><command>ALTER TABLE</></title> |
|
|
|
|
|
|
|
|
|
<itemizedlist> |
|
|
|
|
|
|
|
|
|
<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> |
|
|
|
|
<para> |
|
|
|
|
Implement <literal>IF EXISTS</> for <literal>DROP COLUMN</> and |
|
|
|
|
<literal>DROP CONSTRAINT </> (Andres Freund) |
|
|
|
|
Implement <literal>IF EXISTS</> for <literal>ALTER TABLE DROP COLUMN</> |
|
|
|
|
and <literal>ALTER TABLE DROP CONSTRAINT </> (Andres Freund) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -1223,7 +1235,21 @@ |
|
|
|
|
and makes it easier to utilize database roles for application |
|
|
|
|
data security. |
|
|
|
|
</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> |
|
|
|
|
@ -1235,7 +1261,7 @@ |
|
|
|
|
<para> |
|
|
|
|
Formerly, any database user could read or modify any large object. |
|
|
|
|
Read and write permissions can now be granted and revoked per |
|
|
|
|
large object. |
|
|
|
|
large object, and the ownership of large objects is tracked. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -1285,7 +1311,7 @@ |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
Global catalogs still cannot be clustered. |
|
|
|
|
Shared catalogs still cannot be clustered. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -1429,6 +1455,14 @@ |
|
|
|
|
</para> |
|
|
|
|
</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> |
|
|
|
|
<para> |
|
|
|
|
Reindexing shared system catalogs is now fully transactional |
|
|
|
|
@ -1521,7 +1555,7 @@ |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Tighten input requirements for <type>int2vector</> input (Caleb |
|
|
|
|
Tighten input checking for <type>int2vector</> values (Caleb |
|
|
|
|
Welton) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
@ -1630,9 +1664,9 @@ |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <function>to_char()</> to output the proper localized |
|
|
|
|
numeric and monetary characters on <productname>Windows</> |
|
|
|
|
(Hiroshi Inoue, Itagaki Takahir, Bruce Momjian) |
|
|
|
|
Fix <function>to_char()</> to output localized numeric and monetary |
|
|
|
|
strings in the correct encoding on <productname>Windows</> |
|
|
|
|
(Hiroshi Inoue, Itagaki Takahiro, Bruce Momjian) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -1654,8 +1688,7 @@ |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Allow aggregate functions to use <link |
|
|
|
|
linkend="syntax-aggregates"><literal>ORDER BY</></> (Andrew |
|
|
|
|
Gierth) |
|
|
|
|
linkend="syntax-aggregates"><literal>ORDER BY</></> (Andrew Gierth) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
@ -1666,6 +1699,13 @@ |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Multi-argument aggregate functions can now use <literal>DISTINCT</> |
|
|
|
|
(Andrew Gierth) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Add the <link |
|
|
|
|
@ -1746,16 +1786,24 @@ |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Make the <link linkend="information-schema">information_schema</link> |
|
|
|
|
views properly display maximum octet lengths for <type>char</> and |
|
|
|
|
<type>varchar</> columns, as well as the proper precision for datetime |
|
|
|
|
columns (Peter Eisentraut) |
|
|
|
|
Update the <link linkend="information-schema">information_schema</link> |
|
|
|
|
views to conform to SQL:2008 |
|
|
|
|
(Peter Eisentraut) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
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 information_schema privilege views (Joachim Wieland) |
|
|
|
|
Speed up <literal>information_schema</> privilege views |
|
|
|
|
(Joachim Wieland) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -1889,6 +1937,23 @@ |
|
|
|
|
</para> |
|
|
|
|
</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> |
|
|
|
|
<para> |
|
|
|
|
Improve PL/pgSQL's ability to handle row types with dropped columns |
|
|
|
|
@ -2057,22 +2122,23 @@ |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
<type>Bytea</> values passed into PL/Python are now represented as |
|
|
|
|
binary, rather than the PostgreSQL <type>bytea</> text format. Null |
|
|
|
|
bytes are now also output properly from PL/Python. <type>boolean</> |
|
|
|
|
and <type>numeric</> value passing in PL/Python was also improved. |
|
|
|
|
binary, rather than the PostgreSQL <type>bytea</> text format. |
|
|
|
|
<type>Bytea</> values containing null bytes are now also output |
|
|
|
|
properly from PL/Python. Passing of boolean, integer, and float |
|
|
|
|
values was also improved. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Add <link linkend="plpython-arrays">array parameter/return |
|
|
|
|
support</link> to PL/Python (Peter Eisentraut) |
|
|
|
|
Support <link linkend="plpython-arrays">arrays</link> as parameters and |
|
|
|
|
return values in PL/Python (Peter Eisentraut) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<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> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -2330,10 +2396,10 @@ |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
Previously the <application>pg_ctl</> process could have been mistakenly |
|
|
|
|
identified as a running <application>postmaster</> based on a stale |
|
|
|
|
<application>postmaster</> lock file, resulting in a transient failure |
|
|
|
|
to start the database. |
|
|
|
|
Previously, <application>pg_ctl</>'s parent process could have been |
|
|
|
|
mistakenly identified as a running <application>postmaster</> based on |
|
|
|
|
a stale <application>postmaster</> lock file, resulting in a transient |
|
|
|
|
failure to start the database. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -2417,6 +2483,14 @@ |
|
|
|
|
</para> |
|
|
|
|
</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> |
|
|
|
|
<para> |
|
|
|
|
When a <link linkend="libpq-pgpass"><filename>.pgpass</></link>-supplied |
|
|
|
|
@ -2517,20 +2591,20 @@ |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<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) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
This allows <command>DECLARE</> to use variables that are not in |
|
|
|
|
scope when <command>OPEN</> is called. This facility already existed |
|
|
|
|
in <application>ecpg</> Informix-compatibility mode. |
|
|
|
|
in <application>ecpg</>'s Informix-compatibility mode. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Allow dynamic <application>ecpg</> cursor names (Boszormenyi Zoltan) |
|
|
|
|
Allow dynamic cursor names in <application>ecpg</> (Boszormenyi Zoltan) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -2601,15 +2675,15 @@ |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
These are similar to the existing <literal>all</>, <literal>install</>, |
|
|
|
|
and <literal>installcheck</> targets, but they build <acronym>HTML</> |
|
|
|
|
documentation, build and test <filename>contrib</>, and test |
|
|
|
|
server-side languages and <application>ecpg</>. |
|
|
|
|
and <literal>installcheck</> targets, but they also build |
|
|
|
|
<acronym>HTML</> documentation, build and test <filename>contrib</>, |
|
|
|
|
and test server-side languages and <application>ecpg</>. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<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 |
|
|
|
|
(Mark Cave-Ayland) |
|
|
|
|
</para> |
|
|
|
|
@ -2617,8 +2691,9 @@ |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Add a Makefile rule to build documentation as a single text file |
|
|
|
|
(Bruce Momjian) |
|
|
|
|
Add Makefile rules to build documentation as a single <acronym>HTML</> |
|
|
|
|
file or as a single plain-text file |
|
|
|
|
(Peter Eisentraut, Bruce Momjian) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -2652,13 +2727,6 @@ |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Support multiprocessor compilation using <productname>Microsoft Visual |
|
|
|
|
C</> (Magnus Hagander) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
</itemizedlist> |
|
|
|
|
|
|
|
|
|
</sect4> |
|
|
|
|
@ -2757,14 +2825,39 @@ |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<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) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<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) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
@ -2803,15 +2896,20 @@ |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Restructure the <acronym>HTML</> documentation build |
|
|
|
|
<filename>Makefile</> rules (Peter Eisentraut) |
|
|
|
|
Restructure the <acronym>HTML</> documentation |
|
|
|
|
<filename>Makefile</> rules to make their dependency checks work |
|
|
|
|
correctly, avoiding unnecessary rebuilds (Peter Eisentraut) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
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> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -2823,7 +2921,7 @@ |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Improve error context support in PL/Perl (Alexey Klyukin) |
|
|
|
|
Improve error context reports in PL/Perl (Alexey Klyukin) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -2906,6 +3004,12 @@ |
|
|
|
|
Restructure use of <literal>LDFLAGS</> to be more consistent |
|
|
|
|
across platforms (Tom Lane) |
|
|
|
|
</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> |
|
|
|
|
|
|
|
|
|
</itemizedlist> |
|
|
|
|
@ -2919,8 +3023,8 @@ |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Simplify use of <productname>C++</> functions in backend code (Kurt |
|
|
|
|
Harriman, Peter Eisentraut) |
|
|
|
|
Make backend header files safe to include in <productname>C++</> |
|
|
|
|
(Kurt Harriman, Peter Eisentraut) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
@ -2942,10 +3046,23 @@ |
|
|
|
|
</para> |
|
|
|
|
</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> |
|
|
|
|
<para> |
|
|
|
|
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) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
@ -2961,8 +3078,8 @@ |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Add parser hooks to access column and parameter references in |
|
|
|
|
queries (Tom Lane) |
|
|
|
|
Add parser hooks for processing ColumnRef and ParamRef nodes |
|
|
|
|
(Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
@ -3085,7 +3202,7 @@ |
|
|
|
|
</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. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|