mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Split release notes up into smaller sections; easier to read.
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.553 2007/11/20 05:23:20 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.554 2007/11/20 17:10:25 momjian Exp $ -->
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
Typical markup:
|
Typical markup:
|
||||||
@ -232,376 +232,390 @@ do it for earlier branch release files.
|
|||||||
Observe the following incompatibilities:
|
Observe the following incompatibilities:
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<sect3>
|
||||||
|
<title>General</title>
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Non-character data types are no longer automatically cast to
|
Non-character data types are no longer automatically cast to
|
||||||
<type>TEXT</> (Peter, Tom)
|
<type>TEXT</> (Peter, Tom)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Previously, if a non-character value was supplied to an operator or
|
Previously, if a non-character value was supplied to an operator or
|
||||||
function that requires <type>text</> input, it was automatically
|
function that requires <type>text</> input, it was automatically
|
||||||
cast to <type>text</>, for most (though not all) built-in data types.
|
cast to <type>text</>, for most (though not all) built-in data types.
|
||||||
This no longer happens: an explicit cast to <type>text</> is now
|
This no longer happens: an explicit cast to <type>text</> is now
|
||||||
required for all non-character-string types. For example, these
|
required for all non-character-string types. For example, these
|
||||||
expressions formerly worked:
|
expressions formerly worked:
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
substr(current_date, 1, 4)
|
substr(current_date, 1, 4)
|
||||||
23 LIKE '2%'
|
23 LIKE '2%'
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
but will now draw <quote>function does not exist</> and <quote>operator
|
but will now draw <quote>function does not exist</> and <quote>operator
|
||||||
does not exist</> errors respectively. Use an explicit cast instead:
|
does not exist</> errors respectively. Use an explicit cast instead:
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
substr(current_date::text, 1, 4)
|
substr(current_date::text, 1, 4)
|
||||||
23::text LIKE '2%'
|
23::text LIKE '2%'
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
(Of course, you can use the more verbose <literal>CAST()</> syntax too.)
|
(Of course, you can use the more verbose <literal>CAST()</> syntax too.)
|
||||||
The reason for the change is that these automatic casts too often caused
|
The reason for the change is that these automatic casts too often caused
|
||||||
surprising behavior. An example is that in previous releases, this
|
surprising behavior. An example is that in previous releases, this
|
||||||
expression was accepted but did not do what was expected:
|
expression was accepted but did not do what was expected:
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
current_date < 2017-11-17
|
current_date < 2017-11-17
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
This is actually comparing a date to an integer, which should be
|
This is actually comparing a date to an integer, which should be
|
||||||
(and now is) rejected — but in the presence of automatic
|
(and now is) rejected — but in the presence of automatic
|
||||||
casts both sides were cast to <type>text</> and a textual comparison
|
casts both sides were cast to <type>text</> and a textual comparison
|
||||||
was done, because the <literal>text < text</> operator was able
|
was done, because the <literal>text < text</> operator was able
|
||||||
to match the expression when no other <literal><</> operator could.
|
to match the expression when no other <literal><</> operator could.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Types <type>char(<replaceable>n</>)</type> and
|
Types <type>char(<replaceable>n</>)</type> and
|
||||||
<type>varchar(<replaceable>n</>)</type> still cast to <type>text</>
|
<type>varchar(<replaceable>n</>)</type> still cast to <type>text</>
|
||||||
automatically. Also, automatic casting to <type>text</> still works for
|
automatically. Also, automatic casting to <type>text</> still works for
|
||||||
inputs to the concatenation (<literal>||</>) operator, so long as least
|
inputs to the concatenation (<literal>||</>) operator, so long as least
|
||||||
one input is a character-string type.
|
one input is a character-string type.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Full text search features from <filename>contrib/tsearch2</> have
|
Full text search features from <filename>contrib/tsearch2</> have
|
||||||
been moved into the core server, with some minor syntax changes
|
been moved into the core server, with some minor syntax changes
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<filename>contrib/tsearch2</> now contains a compatibility
|
<filename>contrib/tsearch2</> now contains a compatibility
|
||||||
interface.
|
interface.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Numerous changes in administrative server parameters
|
<literal>ARRAY(SELECT ...)</literal>, where the <command>SELECT</>
|
||||||
</para>
|
returns no rows, now returns an empty array, rather than NULL
|
||||||
|
(Tom)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<para>
|
<listitem>
|
||||||
<varname>bgwriter_lru_percent</>,
|
<para>
|
||||||
<varname>bgwriter_all_percent</>,
|
The array type name for a base data type is no longer always the base
|
||||||
<varname>bgwriter_all_maxpages</>,
|
type's name with an underscore prefix
|
||||||
<varname>stats_start_collector</>, and
|
</para>
|
||||||
<varname>stats_reset_on_server_start</> are removed.
|
|
||||||
<varname>redirect_stderr</> is renamed to
|
|
||||||
<varname>logging_collector</>.
|
|
||||||
<varname>stats_command_string</> is renamed to
|
|
||||||
<varname>track_activities</>.
|
|
||||||
<varname>stats_block_level</> and <varname>stats_row_level</>
|
|
||||||
are merged into <varname>track_counts</>.
|
|
||||||
A new boolean configuration parameter, <varname>archive_mode</>,
|
|
||||||
controls archiving. Autovacuum's default settings have changed.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<para>
|
||||||
<para>
|
The old naming convention is still honored when possible, but
|
||||||
Commenting out a parameter in <filename>postgresql.conf</> now
|
application code should no longer depend on it. Instead
|
||||||
causes it to revert to its default value (Joachim Wieland)
|
use the new <literal>pg_type.typarray</literal> column to
|
||||||
</para>
|
identify the array data type associated with a given type.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<para>
|
<listitem>
|
||||||
Previously, commenting out an entry left the parameter's value unchanged
|
<para>
|
||||||
until the next server restart.
|
<literal>ORDER BY ... USING</> <replaceable>operator</> must now
|
||||||
</para>
|
use a less-than or greater-than <replaceable>operator</> that is
|
||||||
</listitem>
|
defined in a btree operator class
|
||||||
|
</para>
|
||||||
|
|
||||||
<listitem>
|
<para>
|
||||||
<para>
|
This restriction was added to prevent inconsistent results.
|
||||||
<literal>ARRAY(SELECT ...)</literal>, where the <command>SELECT</>
|
</para>
|
||||||
returns no rows, now returns an empty array, rather than NULL
|
</listitem>
|
||||||
(Tom)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<literal>ORDER BY ... USING</> <replaceable>operator</> must now
|
<command>SET LOCAL</command> changes now persist until
|
||||||
use a less-than or greater-than <replaceable>operator</> that is
|
the end of the outermost transaction, unless rolled back (Tom)
|
||||||
defined in a btree operator class
|
</para>
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This restriction was added to prevent inconsistent results.
|
Previously <command>SET LOCAL</command>'s effects were lost
|
||||||
</para>
|
after subtransaction commit (<command>RELEASE SAVEPOINT</>
|
||||||
</listitem>
|
or exit from a PL/pgSQL exception block).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The array type name for a base data type is no longer always the base
|
Commands rejected in transaction blocks are now also rejected in
|
||||||
type's name with an underscore prefix
|
multiple-statement query strings (Tom)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The old naming convention is still honored when possible, but
|
For example, <literal>"BEGIN; DROP DATABASE; COMMIT"</> will now be
|
||||||
application code should no longer depend on it. Instead
|
rejected even if submitted as a single query message.
|
||||||
use the new <literal>pg_type.typarray</literal> column to
|
</para>
|
||||||
identify the array data type associated with a given type.
|
</listitem>
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<command>SET LOCAL</command> changes now persist until
|
<command>ROLLBACK</> outside a transaction block now
|
||||||
the end of the outermost transaction, unless rolled back (Tom)
|
issues <literal>NOTICE</> instead of <literal>WARNING</> (Bruce)
|
||||||
</para>
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<para>
|
<listitem>
|
||||||
Previously <command>SET LOCAL</command>'s effects were lost
|
<para>
|
||||||
after subtransaction commit (<command>RELEASE SAVEPOINT</>
|
Prevent <command>NOTIFY</command>/<command>LISTEN</command>/<command>UNLISTEN</command>
|
||||||
or exit from a PL/pgSQL exception block).
|
from accepting schema-qualified names (Bruce)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<para>
|
||||||
<para>
|
Formerly, these commands accepted <literal>schema.relation</> but
|
||||||
Commands rejected in transaction blocks are now also rejected in
|
ignored the schema part, which was confusing.
|
||||||
multiple-statement query strings (Tom)
|
</para>
|
||||||
</para>
|
</listitem>
|
||||||
|
|
||||||
<para>
|
<listitem>
|
||||||
For example, <literal>"BEGIN; DROP DATABASE; COMMIT"</> will now be
|
<para>
|
||||||
rejected even if submitted as a single query message.
|
<command>ALTER SEQUENCE</> no longer affects <function>currval()</>
|
||||||
</para>
|
(Tom)
|
||||||
</listitem>
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<command>ROLLBACK</> outside a transaction block now
|
Foreign keys now must match indexable conditions for
|
||||||
issues <literal>NOTICE</> instead of <literal>WARNING</> (Bruce)
|
cross-data-type references (Tom)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<para>
|
||||||
<para>
|
This improves semantic consistency and helps avoid
|
||||||
Prevent <command>NOTIFY</command>/<command>LISTEN</command>/<command>UNLISTEN</command>
|
performance problems.
|
||||||
from accepting schema-qualified names (Bruce)
|
</para>
|
||||||
</para>
|
</listitem>
|
||||||
|
|
||||||
<para>
|
<listitem>
|
||||||
Formerly, these commands accepted <literal>schema.relation</> but
|
<para>
|
||||||
ignored the schema part, which was confusing.
|
Restrict object size functions to users who have reasonable
|
||||||
</para>
|
permissions to view such information (Tom)
|
||||||
</listitem>
|
</para>
|
||||||
|
|
||||||
<listitem>
|
<para>
|
||||||
<para>
|
For example, <function>pg_database_size()</function> now requires
|
||||||
Restrict object size functions to users who have reasonable
|
<literal>CONNECT</> permission, which is granted to everyone by
|
||||||
permissions to view such information (Tom)
|
default. <function>pg_tablespace_size()</function> requires
|
||||||
</para>
|
<literal>CREATE</> permission in the tablespace, or is allowed if
|
||||||
|
the tablespace is the default tablespace for the database.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<para>
|
<listitem>
|
||||||
For example, <function>pg_database_size()</function> now requires
|
<para>
|
||||||
<literal>CONNECT</> permission, which is granted to everyone by
|
Remove the undocumented <literal>!!=</> (not in) operator (Tom)
|
||||||
default. <function>pg_tablespace_size()</function> requires
|
</para>
|
||||||
<literal>CREATE</> permission in the tablespace, or is allowed if
|
|
||||||
the tablespace is the default tablespace for the database.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<para>
|
||||||
<para>
|
<literal>NOT IN (SELECT ...)</literal> is the proper way to
|
||||||
Internal hashing functions are now more uniformly-distributed (Tom)
|
perform this operation.
|
||||||
</para>
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<para>
|
<listitem>
|
||||||
If application code was computing and storing hash values using
|
<para>
|
||||||
internal <productname>PostgreSQL</> hashing functions, the hash
|
Internal hashing functions are now more uniformly-distributed (Tom)
|
||||||
values must be regenerated.
|
</para>
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<para>
|
||||||
<para>
|
If application code was computing and storing hash values using
|
||||||
<command>ALTER SEQUENCE</> no longer affects <function>currval()</>
|
internal <productname>PostgreSQL</> hashing functions, the hash
|
||||||
(Tom)
|
values must be regenerated.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Foreign keys now must match indexable conditions for
|
C-code conventions for handling variable-length data values
|
||||||
cross-data-type references (Tom)
|
have changed (Greg Stark, Tom)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This improves semantic consistency and helps avoid
|
The new <function>SET_VARSIZE()</> macro <emphasis>must</> be used
|
||||||
performance problems.
|
to set the length of generated <type>varlena</> values. Also, it
|
||||||
</para>
|
might be necessary to expand (<quote>de-TOAST</quote>) input values
|
||||||
</listitem>
|
in more cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
</itemizedlist>
|
||||||
<para>
|
|
||||||
Remove the undocumented <literal>!!=</> (not in) operator (Tom)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
</sect3>
|
||||||
<literal>NOT IN (SELECT ...)</literal> is the proper way to
|
|
||||||
perform this operation.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<sect3>
|
||||||
<para>
|
<title>Configuration Parameters</title>
|
||||||
Remove <varname>stats_start_collector</varname> parameter (Tom)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
<itemizedlist>
|
||||||
We now always start the collector process, unless <acronym>UDP</>
|
|
||||||
socket creation fails.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Remove <varname>stats_reset_on_server_start</varname> parameter (Tom)
|
Numerous changes in administrative server parameters
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This was removed because <function>pg_stat_reset()</function>
|
<varname>bgwriter_lru_percent</>,
|
||||||
can be used for this purpose.
|
<varname>bgwriter_all_percent</>,
|
||||||
</para>
|
<varname>bgwriter_all_maxpages</>,
|
||||||
</listitem>
|
<varname>stats_start_collector</>, and
|
||||||
|
<varname>stats_reset_on_server_start</> are removed.
|
||||||
|
<varname>redirect_stderr</> is renamed to
|
||||||
|
<varname>logging_collector</>.
|
||||||
|
<varname>stats_command_string</> is renamed to
|
||||||
|
<varname>track_activities</>.
|
||||||
|
<varname>stats_block_level</> and <varname>stats_row_level</>
|
||||||
|
are merged into <varname>track_counts</>.
|
||||||
|
A new boolean configuration parameter, <varname>archive_mode</>,
|
||||||
|
controls archiving. Autovacuum's default settings have changed.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
C-code conventions for handling variable-length data values
|
Remove <varname>stats_start_collector</varname> parameter (Tom)
|
||||||
have changed (Greg Stark, Tom)
|
</para>
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The new <function>SET_VARSIZE()</> macro <emphasis>must</> be used
|
We now always start the collector process, unless <acronym>UDP</>
|
||||||
to set the length of generated <type>varlena</> values. Also, it
|
socket creation fails.
|
||||||
might be necessary to expand (<quote>de-TOAST</quote>) input values
|
</para>
|
||||||
in more cases.
|
</listitem>
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
</itemizedlist>
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Remove <varname>stats_reset_on_server_start</varname> parameter (Tom)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This was removed because <function>pg_stat_reset()</function>
|
||||||
|
can be used for this purpose.
|
||||||
|
</para>
|
||||||
|
</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 an entry left the parameter's value unchanged
|
||||||
|
until the next server restart.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
|
||||||
<para>
|
<sect3>
|
||||||
The following incompatibilities relate to character encodings:
|
<title>Character Encodings</title>
|
||||||
</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add more checks for invalidly-encoded data (Andrew)
|
Add more checks for invalidly-encoded data (Andrew)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This change plugs some holes that existed in literal backslash
|
This change plugs some holes that existed in literal backslash
|
||||||
escape string processing and <command>COPY</command> escape
|
escape string processing and <command>COPY</command> escape
|
||||||
processing. Now the de-escaped string is rechecked to see if the
|
processing. Now the de-escaped string is rechecked to see if the
|
||||||
result created an invalid multi-byte character.
|
result created an invalid multi-byte character.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Ensure that <function>chr()</function> cannot create
|
Ensure that <function>chr()</function> cannot create
|
||||||
invalidly-encoded values (Andrew)
|
invalidly-encoded values (Andrew)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
In UTF8-encoded databases the argument of <function>chr()</function> is
|
In UTF8-encoded databases the argument of <function>chr()</function> is
|
||||||
now treated as a Unicode code point. In other multi-byte encodings
|
now treated as a Unicode code point. In other multi-byte encodings
|
||||||
<function>chr()</function>'s argument must designate a 7-bit ASCII
|
<function>chr()</function>'s argument must designate a 7-bit ASCII
|
||||||
character. Zero is no longer accepted.
|
character. Zero is no longer accepted.
|
||||||
<function>ascii()</function> has been adjusted to match.
|
<function>ascii()</function> has been adjusted to match.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Adjust <function>convert()</function> behavior to ensure encoding
|
Adjust <function>convert()</function> behavior to ensure encoding
|
||||||
validity (Andrew)
|
validity (Andrew)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The two argument form of <function>convert()</function> has been
|
The two argument form of <function>convert()</function> has been
|
||||||
removed. The three argument form now takes a <type>bytea</type>
|
removed. The three argument form now takes a <type>bytea</type>
|
||||||
first argument and returns a <type>bytea</type>. To cover the
|
first argument and returns a <type>bytea</type>. To cover the
|
||||||
loss of functionality, three new functions have been added:
|
loss of functionality, three new functions have been added:
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<function>convert_from(bytea, name)</function> returns
|
<function>convert_from(bytea, name)</function> returns
|
||||||
<type>text</> — converts the first argument from the named
|
<type>text</> — converts the first argument from the named
|
||||||
encoding to the database encoding
|
encoding to the database encoding
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<function>convert_to(text, name)</function> returns
|
<function>convert_to(text, name)</function> returns
|
||||||
<type>bytea</> — converts the first argument from the
|
<type>bytea</> — converts the first argument from the
|
||||||
database encoding to the named encoding
|
database encoding to the named encoding
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<function>length(bytea, name)</function> returns
|
<function>length(bytea, name)</function> returns
|
||||||
<type>integer</> — gives the length of the first
|
<type>integer</> — gives the length of the first
|
||||||
argument in characters in the named encoding
|
argument in characters in the named encoding
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Remove <literal>convert(argument USING conversion_name)</literal>
|
Remove <literal>convert(argument USING conversion_name)</literal>
|
||||||
(Andrew)
|
(Andrew)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Its behavior did not match the SQL standard.
|
Its behavior did not match the SQL standard.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Make JOHAB encoding client-only (Tatsuo)
|
Make JOHAB encoding client-only (Tatsuo)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
JOHAB is not safe as a server-side encoding.
|
JOHAB is not safe as a server-side encoding.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect3>
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
@ -888,6 +902,14 @@ current_date < 2017-11-17
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Change server startup log message from <quote>database system is
|
||||||
|
ready</quote> to <quote>database system is ready to accept
|
||||||
|
connections</quote>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
</sect3>
|
</sect3>
|
||||||
@ -1034,6 +1056,13 @@ current_date < 2017-11-17
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix pgstats counting of live and dead tuples to recognize that
|
||||||
|
committed and aborted transactions have different effects (Tom)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
</sect3>
|
</sect3>
|
||||||
@ -2128,17 +2157,9 @@ current_date < 2017-11-17
|
|||||||
</sect3>
|
</sect3>
|
||||||
|
|
||||||
<sect3>
|
<sect3>
|
||||||
<title>Source Code</title>
|
<title>Server Programming Interface (<acronym>SPI</>)</title>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Rename macro <literal>DLLIMPORT</> to <literal>PGDLLIMPORT</> to
|
|
||||||
avoid conflicting with third party includes (like Tcl) that
|
|
||||||
define <literal>DLLIMPORT</> (Magnus)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Allow execution of cursor commands through
|
Allow execution of cursor commands through
|
||||||
@ -2174,6 +2195,14 @@ current_date < 2017-11-17
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Build Options</title>
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add <application>configure</> <literal>--enable-profiling</>
|
Add <application>configure</> <literal>--enable-profiling</>
|
||||||
@ -2191,8 +2220,9 @@ current_date < 2017-11-17
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Create <quote>operator families</quote> to improve planning of
|
Fix <acronym>PGXS</> so extensions can be built against PostgreSQL
|
||||||
queries involving cross-data-type comparisons (Tom)
|
installations whose <application>pg_config</> program does not
|
||||||
|
appear first in the <varname>PATH</> (Tom)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -2203,6 +2233,29 @@ current_date < 2017-11-17
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Source Code</title>
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Rename macro <literal>DLLIMPORT</> to <literal>PGDLLIMPORT</> to
|
||||||
|
avoid conflicting with third party includes (like Tcl) that
|
||||||
|
define <literal>DLLIMPORT</> (Magnus)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Create <quote>operator families</quote> to improve planning of
|
||||||
|
queries involving cross-data-type comparisons (Tom)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Update GIN <function>extractQuery()</> API to allow signalling
|
Update GIN <function>extractQuery()</> API to allow signalling
|
||||||
@ -2218,14 +2271,6 @@ current_date < 2017-11-17
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Change server startup log message from <quote>database system is
|
|
||||||
ready</quote> to <quote>database system is ready to accept
|
|
||||||
connections</quote>
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Provide <function>strlcpy()</function> and
|
Provide <function>strlcpy()</function> and
|
||||||
@ -2235,13 +2280,6 @@ current_date < 2017-11-17
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Fix pgstats counting of live and dead tuples to recognize that
|
|
||||||
committed and aborted transactions have different effects (Tom)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Create hooks to let an external plugin monitor (or even replace) the
|
Create hooks to let an external plugin monitor (or even replace) the
|
||||||
@ -2266,20 +2304,12 @@ current_date < 2017-11-17
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Have <function>quote_identifier()</function> and
|
<function>quote_identifier()</function> and
|
||||||
<application>pg_dump</application> not quote keywords that are
|
<application>pg_dump</application> no longer quote keywords that are
|
||||||
unreserved according to the grammar (Tom)
|
unreserved according to the grammar (Tom)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Fix <acronym>PGXS</> so extensions can be built against PostgreSQL
|
|
||||||
installations whose <application>pg_config</> program does not
|
|
||||||
appear first in the <varname>PATH</> (Tom)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Change the on-disk representation of the <type>NUMERIC</type>
|
Change the on-disk representation of the <type>NUMERIC</type>
|
||||||
|
Reference in New Issue
Block a user