mirror of
https://github.com/postgres/postgres.git
synced 2025-04-24 10:47:04 +03:00
Move a few items into migration from the main changes section. Indent
8.3 consistently.
This commit is contained in:
parent
35342395c0
commit
f031610297
@ -1,4 +1,4 @@
|
|||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.523 2007/10/18 06:07:23 neilc Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.524 2007/10/18 16:45:05 momjian Exp $ -->
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
Typical markup:
|
Typical markup:
|
||||||
@ -53,6 +53,7 @@ do it for earlier branch release files.
|
|||||||
and performance enhancements. This was made possible by a growing
|
and performance enhancements. This was made possible by a growing
|
||||||
community that has dramatically accelerated the pace of
|
community that has dramatically accelerated the pace of
|
||||||
development. This release adds the follow major capabilities:
|
development. This release adds the follow major capabilities:
|
||||||
|
</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
@ -153,9 +154,11 @@ do it for earlier branch release files.
|
|||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para>
|
||||||
Major performance improvements are listed below. Fortunately, most of
|
Major performance improvements are listed below. Fortunately, most of
|
||||||
these enhancements are automatic and do not require user changes or
|
these enhancements are automatic and do not require user changes or
|
||||||
tuning:
|
tuning:
|
||||||
|
</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
@ -254,7 +257,16 @@ do it for earlier branch release files.
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Queries that previously automatically cast values to
|
Queries that previously automatically cast values to
|
||||||
<type>TEXT</type> might now need explicit casts
|
<type>TEXT</type> might now need explicit casts (Peter, Tom)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Data types other than <type>CHAR</> and <type>VARCHAR</> no
|
||||||
|
longer automatically cast to <type>TEXT</>, except in the
|
||||||
|
limited case of concatenation (<literal>||</>) where the other
|
||||||
|
input is textual. While this change will require additional
|
||||||
|
casts for some queries it also eliminates some unusual
|
||||||
|
behavior.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -283,7 +295,12 @@ do it for earlier branch release files.
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Commenting out a parameter in <filename>postgresql.conf</> now
|
Commenting out a parameter in <filename>postgresql.conf</> now
|
||||||
causes it to revert to its default value
|
causes it to revert to its default value (Joachim Wieland)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously commenting out a value kept the value unchanged until
|
||||||
|
the next server restart.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -291,6 +308,7 @@ do it for earlier branch release files.
|
|||||||
<para>
|
<para>
|
||||||
<literal>ARRAY(SELECT ...)</literal>, where <command>SELECT</>
|
<literal>ARRAY(SELECT ...)</literal>, where <command>SELECT</>
|
||||||
returns no rows, now returns an empty array, rather than NULL
|
returns no rows, now returns an empty array, rather than NULL
|
||||||
|
(Tom)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -298,7 +316,7 @@ do it for earlier branch release files.
|
|||||||
<para>
|
<para>
|
||||||
<literal>ORDER BY ... USING</> <replaceable>operator</> now must
|
<literal>ORDER BY ... USING</> <replaceable>operator</> now must
|
||||||
use a less-than or greater-than <replaceable>operator</> that is
|
use a less-than or greater-than <replaceable>operator</> that is
|
||||||
defined in a btree operator class
|
defined in a btree operator class (???)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -311,37 +329,117 @@ do it for earlier branch release files.
|
|||||||
The array name for a base data type is no longer required to
|
The array name for a base data type is no longer required to
|
||||||
be the data type name with an underscore prefix
|
be the data type name with an underscore prefix
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
<para>
|
||||||
Non-superuser database owners now have privileges to add trusted
|
The old naming convention is still honored when possible, but
|
||||||
procedural languages in their databases by default
|
client code should no longer depending on it. Application code
|
||||||
|
should use the new <literal>pg_type.typarray</literal> column to
|
||||||
|
determine the array data type.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<command>SET LOCAL</command> changes now persist until
|
<command>SET LOCAL</command> changes now persist until
|
||||||
the end of the top-most transaction, unless rolled back
|
the end of the top-most transaction, unless rolled back (Tom)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously <command>SET LOCAL</command>'s effects reverted
|
||||||
|
during subtransaction commit and <command>RELEASE</>.
|
||||||
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Commands that are disallowed in transaction blocks are now also
|
Commands that are disallowed in transaction blocks are now also
|
||||||
disallowed in multiple-statement query strings
|
disallowed in multiple-statement query strings (Tom)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
For example, <literal>BEGIN; DROP DATABASE; COMMIT</> will now be
|
||||||
|
rejected even if submitted as a single query message.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add additional checks for invalidly-encoded multibyte strings
|
More checks for invalidly-encoded data (Andrew)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
For example, <function>chr()</function> has additional checks.
|
This change plugs some holes that existed in literal backslash
|
||||||
|
escape string processing and <command>COPY</command> escape
|
||||||
|
processing. Now the de-escaped string is rechecked to see if the
|
||||||
|
result created an invalid multi-byte character.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that <function>chr()</function> cannot create invalidly
|
||||||
|
encoded values (Andrew)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In UTF8-encoded databases the argument is processed as a Unicode
|
||||||
|
code point. In other multi-byte encodings the argument must
|
||||||
|
designate a 7-bit ASCII character, or an error is raised. Zero
|
||||||
|
also causes an error. <function>ascii()</function> has been
|
||||||
|
adjusted as well to match this behavior.
|
||||||
|
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Adjust <function>convert()</function> behavior to ensure encoding
|
||||||
|
validity (Andrew)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The two argument form of <function>convert()</function> has been
|
||||||
|
removed. The three argument form now takes a <type>BYTEA</type>
|
||||||
|
first argument and returns a <type>BYTEA</type>. To cover this
|
||||||
|
loss three new functions are introduced:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<function>convert_from(bytea, name)</function> returns
|
||||||
|
<type>TEXT</> — converts the first argument from the named
|
||||||
|
encoding to the database encoding.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<function>convert_to(text, name)</function> returns
|
||||||
|
<type>BYTEA</> — converts the first argument from the
|
||||||
|
database encoding to the named encoding.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<function>length(bytea, name)</function> returns
|
||||||
|
<type>INTEGER</> — gives the length of the first
|
||||||
|
argument in characters in the named encoding.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Remove <literal>convert(argument USING conversion_name)</literal>
|
||||||
|
(Andrew)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Its behavior did not match the SQL standard and could not be
|
||||||
|
implemented in this release.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -351,22 +449,34 @@ do it for earlier branch release files.
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<type>bytea</> is now used for strings that do not match the
|
|
||||||
server encoding, and <function>convert_from</> and
|
|
||||||
<function>convert_to</> have been added for consistency.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Restrict object size functions to users who have reasonable
|
Restrict object size functions to users who have reasonable
|
||||||
permissions to view such information
|
permissions to view such information (Tom)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
For example, <function>pg_database_size()</function> now
|
||||||
|
requires <literal>CONNECT</> permission, which is granted to
|
||||||
|
everyone by default. <function>pg_tablespace_size()</function>
|
||||||
|
requires <literal>CREATE</> permission in the tablespace, or the
|
||||||
|
tablespace is the default tablespace for the database.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
New C macros for handling variable-length data values
|
New C macros for handling variable-length data values (Greg
|
||||||
|
Stark, Tom)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The new <function>SET_VARSIZE()</> macro <emphasis>must</> be
|
||||||
|
used to set the length of generated values. Also, it might be
|
||||||
|
necessary to expand (<quote>de-TOAST</quote>) input values in
|
||||||
|
additional places.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -577,19 +687,6 @@ do it for earlier branch release files.
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Commenting out a parameter in <filename>postgresql.conf</> now
|
|
||||||
causes it to revert to its default value (Joachim Wieland)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Previously commenting out a value kept the value unchanged until
|
|
||||||
the next server restart.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Automatically invalidate cached function code when table
|
Automatically invalidate cached function code when table
|
||||||
@ -953,23 +1050,6 @@ do it for earlier branch release files.
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Queries that previously automatically cast values to
|
|
||||||
<type>TEXT</type> might now need explicit casts (Peter, Tom)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Data types other than <type>CHAR</> and <type>VARCHAR</> no
|
|
||||||
longer automatically cast to <type>TEXT</>, except in the
|
|
||||||
limited case of concatenation (<literal>||</>) where the other
|
|
||||||
input is textual. While this change will require additional
|
|
||||||
casts for some queries it also eliminates some unusual
|
|
||||||
behavior.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Create a general mechanism that supports casts to and from the
|
Create a general mechanism that supports casts to and from the
|
||||||
@ -986,14 +1066,6 @@ do it for earlier branch release files.
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<literal>ARRAY(SELECT ...)</literal>, where <command>SELECT</>
|
|
||||||
returns no rows, now returns an empty array, rather than NULL
|
|
||||||
(Tom)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Allow <literal>col IS NULL</> to use an index (Teodor)
|
Allow <literal>col IS NULL</> to use an index (Teodor)
|
||||||
@ -1067,20 +1139,6 @@ do it for earlier branch release files.
|
|||||||
|
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
The array name for a base data type is no longer required to
|
|
||||||
be the data type name with an underscore prefix
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The old naming convention is still honored when possible, but
|
|
||||||
client code should no longer depending on it. Application code
|
|
||||||
should use the new <literal>pg_type.typarray</literal> column to
|
|
||||||
determine the array data type.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Server configuration parameters can now be set on a per-function
|
Server configuration parameters can now be set on a per-function
|
||||||
@ -1162,7 +1220,6 @@ do it for earlier branch release files.
|
|||||||
procedural languages in their databases by default (Jeremy Drake)
|
procedural languages in their databases by default (Jeremy Drake)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
While this is reasonably safe, some administrators may wish to
|
While this is reasonably safe, some administrators may wish to
|
||||||
revoke the privilege. It is controlled by
|
revoke the privilege. It is controlled by
|
||||||
@ -1170,18 +1227,6 @@ do it for earlier branch release files.
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<command>SET LOCAL</command> changes now persist until
|
|
||||||
the end of the top-most transaction, unless rolled back (Tom)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Previously <command>SET LOCAL</command>'s effects reverted
|
|
||||||
during subtransaction commit and <command>RELEASE</>.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Allow a session's current parameter setting to be used as the
|
Allow a session's current parameter setting to be used as the
|
||||||
@ -1259,19 +1304,6 @@ do it for earlier branch release files.
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Commands that are disallowed in transaction blocks are now also
|
|
||||||
disallowed in multiple-statement query strings (Tom)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
|
|
||||||
<para>
|
|
||||||
For example, <literal>BEGIN; DROP DATABASE; COMMIT</> will now be
|
|
||||||
rejected even if submitted as a single query message.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Make CREATE/DROP/RENAME DATABASE wait briefly for other backends
|
Make CREATE/DROP/RENAME DATABASE wait briefly for other backends
|
||||||
@ -1471,102 +1503,6 @@ do it for earlier branch release files.
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
More checks for invalidly-encoded data (Andrew)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
This change plugs some holes that existed in literal backslash
|
|
||||||
escape string processing and <command>COPY</command> escape
|
|
||||||
processing. Now the de-escaped string is rechecked to see if the
|
|
||||||
result created an invalid multi-byte character.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Ensure that <function>chr()</function> cannot create invalidly
|
|
||||||
encoded values (Andrew)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
In UTF8-encoded databases the argument is processed as a Unicode
|
|
||||||
code point. In other multi-byte encodings the argument must
|
|
||||||
designate a 7-bit ASCII character, or an error is raised. Zero
|
|
||||||
also causes an error. <function>ascii()</function> has been
|
|
||||||
adjusted as well to match this behavior.
|
|
||||||
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Adjust <function>convert()</function> behavior to ensure encoding
|
|
||||||
validity (Andrew)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The two argument form of <function>convert()</function> has been
|
|
||||||
removed. The three argument form now takes a <type>BYTEA</type>
|
|
||||||
first argument and returns a <type>BYTEA</type>. To cover this
|
|
||||||
loss three new functions are introduced:
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<function>convert_from(bytea, name)</function> returns
|
|
||||||
<type>TEXT</> — converts the first argument from the named
|
|
||||||
encoding to the database encoding.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<function>convert_to(text, name)</function> returns
|
|
||||||
<type>BYTEA</> — converts the first argument from the
|
|
||||||
database encoding to the named encoding.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<function>length(bytea, name)</function> returns
|
|
||||||
<type>INTEGER</> — gives the length of the first
|
|
||||||
argument in characters in the named encoding.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Remove <literal>convert(argument USING conversion_name)</literal>
|
|
||||||
(Andrew)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Its behavior did not match the SQL standard and could not be
|
|
||||||
implemented in this release.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Restrict object size functions to users who have reasonable
|
|
||||||
permissions to view such information (Tom)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
For example, <function>pg_database_size()</function> now
|
|
||||||
requires <literal>CONNECT</> permission, which is granted to
|
|
||||||
everyone by default. <function>pg_tablespace_size()</function>
|
|
||||||
requires <literal>CREATE</> permission in the tablespace, or the
|
|
||||||
tablespace is the default tablespace for the database.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Make <function>currtid()</function> functions require
|
Make <function>currtid()</function> functions require
|
||||||
@ -2026,20 +1962,6 @@ do it for earlier branch release files.
|
|||||||
<title>Source Code Changes</title>
|
<title>Source Code Changes</title>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
New C macros for handling variable-length data values (Greg
|
|
||||||
Stark, Tom)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The new <function>SET_VARSIZE()</> macro <emphasis>must</> be
|
|
||||||
used to set the length of generated values. Also, it might be
|
|
||||||
necessary to expand (<quote>de-TOAST</quote>) input values in
|
|
||||||
additional places.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Rename macro <literal>DLLIMPORT</> to <literal>PGDLLIMPORT</> to
|
Rename macro <literal>DLLIMPORT</> to <literal>PGDLLIMPORT</> to
|
||||||
|
Loading…
x
Reference in New Issue
Block a user