Commit bd19ee34 authored by Tom Lane's avatar Tom Lane

Preliminary pass at release note editing.

parent cc88ed63
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.361 2005/08/24 19:41:33 momjian Exp $ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.362 2005/08/24 22:03:14 tgl Exp $
Typical markup: Typical markup:
...@@ -23,7 +23,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -23,7 +23,7 @@ pg_[A-Za-z0-9_] <application>
<title>Release date</title> <title>Release date</title>
<simpara>2005-1?-??, Current as of 2005-08-24</simpara> <simpara>2005-1?-??, Current as of 2005-08-24</simpara>
</note> </note>
<sect2> <sect2>
<title>Overview</title> <title>Overview</title>
...@@ -49,24 +49,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -49,24 +49,7 @@ pg_[A-Za-z0-9_] <application>
<varlistentry> <varlistentry>
<term> <term>
Automatically use indexes for <function>MIN()</> and Allow index scans to use an intermediate in-memory bitmap (Tom)
<function>MAX()</> (Tom)
</term>
<listitem>
<para>
In previous releases, the only way to use an index for
<function>MIN()</> or <function>MAX()</> was to rewrite the
query as <command>SELECT col FROM tab ORDER BY col LIMIT 1</>.
Index usage now happens automatically.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Add in-memory bitmaps which allows multiple indexes to be merged
in a single query (Tom)
</term> </term>
<listitem> <listitem>
...@@ -75,12 +58,16 @@ pg_[A-Za-z0-9_] <application> ...@@ -75,12 +58,16 @@ pg_[A-Za-z0-9_] <application>
lookups on a table. With this feature, if a query has lookups on a table. With this feature, if a query has
<command>WHERE tab.col1 = 4 and tab.col2 = 9</>, and there is no <command>WHERE tab.col1 = 4 and tab.col2 = 9</>, and there is no
multicolumn index on col1 and col2, but there is an index on multicolumn index on col1 and col2, but there is an index on
col1 and another on col2, it is possible to do lookups on the col1 and another on col2, it is possible to search both indexes
col1 index and the col2 index and combine them in memory to do and combine the results in memory, then do heap fetches for only
heap lookups on rows matching both the col1 and col2 the rows matching both the col1 and col2
restrictions. This is very useful in environments that have a restrictions. This is very useful in environments that have a
lot of unstructured queries where it is impossible to create lot of unstructured queries where it is impossible to create
indexes that match all possible access conditions. indexes that match all possible access conditions. Bitmap scans
are useful even with a single index, as they reduce the amount
of random access needed; a bitmap index scan is efficient for
retrieving fairly large fractions of the complete table, whereas
plain index scans are not.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
...@@ -96,8 +83,8 @@ pg_[A-Za-z0-9_] <application> ...@@ -96,8 +83,8 @@ pg_[A-Za-z0-9_] <application>
computers, and once all computers have successfully prepared computers, and once all computers have successfully prepared
their transactions (none failed), all transactions can be their transactions (none failed), all transactions can be
committed. Even if a machine crashes after a prepare, the committed. Even if a machine crashes after a prepare, the
prepared transaction can be committed after it is restarted. New prepared transaction can be committed after the machine is
syntax includes <command>PREPARE TRANSACTION</> and restarted. New syntax includes <command>PREPARE TRANSACTION</> and
<command>COMMIT/ROLLBACK PREPARED</>. A new system view <command>COMMIT/ROLLBACK PREPARED</>. A new system view
<literal>pg_prepared_xacts</> has also been added. <literal>pg_prepared_xacts</> has also been added.
</para> </para>
...@@ -122,7 +109,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -122,7 +109,7 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Have optionally have login capability Have login capability (optionally)
</para> </para>
</listitem> </listitem>
...@@ -134,40 +121,58 @@ pg_[A-Za-z0-9_] <application> ...@@ -134,40 +121,58 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Inherit permission from other member roles Hold access permissions for database objects
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Switch to another member role using <command>SET ROLE</> Inherit permissions from other roles it is a member of
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
<para> <para>
So, once a user logs into a role, she inherits capabilities of Once a user logs into a role, she obtains capabilities of
the login role plus any inherited roles, and can use the login role plus any inherited roles, and can use
<command>SET ROLE</> to switch to other member roles. This <command>SET ROLE</> to switch to other roles she is a member of.
change also replaces <literal>pg_shadow</> and This feature is a generalization of the SQL standard's concept of
<literal>pg_group</> by with new role-capable catalogs roles.
<literal>pg_authid</> and <literal>pg_auth_members</>. The old This change also replaces <structname>pg_shadow</> and
tables are redefined as views on the new role tables. <structname>pg_group</> by new role-capable catalogs
<structname>pg_authid</> and <structname>pg_auth_members</>. The old
tables are redefined as read-only views on the new role tables.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Move <filename>/contrib/pgautovacuum</> into the main server Automatically use indexes for <function>MIN()</> and
<function>MAX()</> (Tom)
</term>
<listitem>
<para>
In previous releases, the only way to use an index for
<function>MIN()</> or <function>MAX()</> was to rewrite the
query as <command>SELECT col FROM tab ORDER BY col LIMIT 1</>.
Index usage now happens automatically.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Move <filename>/contrib/pg_autovacuum</> into the main server
(Alvaro Herrera) (Alvaro Herrera)
</term> </term>
<listitem> <listitem>
<para> <para>
Moving pgautovacuum from <filename>/contrib</> allows it to be Integrating autovacuum into the server allows it to be
automatically started and stopped in sync with the database automatically started and stopped in sync with the database
server, and allows for pgautovacuum to be configured from server, and allows autovacuum to be configured from
<filename>postgresql.conf</>. <filename>postgresql.conf</>.
</para> </para>
</listitem> </listitem>
...@@ -185,8 +190,25 @@ pg_[A-Za-z0-9_] <application> ...@@ -185,8 +190,25 @@ pg_[A-Za-z0-9_] <application>
allows <command>SELECT</> to never be blocked by writers and allows <command>SELECT</> to never be blocked by writers and
therefore does not need shared row locks for typical operations, therefore does not need shared row locks for typical operations,
shared locks are useful for applications that require shared row shared locks are useful for applications that require shared row
locking, and to reduce the locking requirements to maintain locking. In particular this reduces the locking requirements
referential integrity. imposed by referential integrity checks.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Add dependencies on shared objects, specifically roles
(Alvaro)
</term>
<listitem>
<para>
This extension of the dependency mechanism prevents roles from
being dropped while there are still database objects they own.
Formerly it was possible to accidentally <quote>orphan</> objects by
deleting their owner. While this could be recovered from, it
was messy and unpleasant.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
...@@ -205,8 +227,8 @@ pg_[A-Za-z0-9_] <application> ...@@ -205,8 +227,8 @@ pg_[A-Za-z0-9_] <application>
<para> <para>
The 8.0 release announced that the <function>to_char()</> function The 8.0 release announced that the <function>to_char()</> function
for intervals would be removed in 8.1. However, since no better API for intervals would be removed in 8.1. However, since no better API
has been suggested, to_char(interval) has been enhanced in 8.1 and has been suggested, <function>to_char(interval)</> has been enhanced in
will remain in the server. 8.1 and will remain in the server.
</para> </para>
<para> <para>
...@@ -217,19 +239,19 @@ pg_[A-Za-z0-9_] <application> ...@@ -217,19 +239,19 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Change add_missing_from to 'false' <varname>add_missing_from</> is now false by default (Neil)
</para> </para>
<para> <para>
Generate an error if a table used in a query without a By default, we now generate an error if a table is used in a query
<command>FROM</> reference (Neil) This command, <command>SELECT without a <command>FROM</> reference. The old behavior is still
pg_class.*</>, now generates an error. available, but the parameter must be set to 'true' to obtain it.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Cause input of a zero-length strings ('') for float4/float8/oid Cause input of a zero-length string ('') for float4/float8/oid
to throw an error, rather than treat it as a zero (Neil) to throw an error, rather than treating it as a zero (Neil)
</para> </para>
<para> <para>
This change is consistent with the current handling of This change is consistent with the current handling of
...@@ -240,18 +262,18 @@ pg_[A-Za-z0-9_] <application> ...@@ -240,18 +262,18 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Change <varname>default_with_oids</> to default to false (Neil) <varname>default_with_oids</> is now false by default (Neil)
</para> </para>
<para> <para>
With this option set to false, user-created tables no longer have With this option set to false, user-created tables no longer have
an the usually-invisible OID column unless <command>WITH OIDS</> the usually-invisible OID column unless <command>WITH OIDS</>
is specified in <command>CREATE TABLE</>. Though OIDs have is specified in <command>CREATE TABLE</>. Though OIDs have
existed in all previous releases of existed in all releases of
<productname>PostgreSQL</productname>, their use is limited <productname>PostgreSQL</productname>, their use is limited
because they are only four bytes long and the counter is unique because they are only four bytes long and the counter is shared
across all installed databases. The preferred way of uniquely across all installed databases. The preferred way of uniquely
identifying rows is via sequences and <command>SERIAL</>, which identifying rows is via sequences and <command>SERIAL</>, which
has been supported since <productname>PostgreSQL</productname> have been supported since <productname>PostgreSQL</productname>
6.4. 6.4.
</para> </para>
</listitem> </listitem>
...@@ -263,36 +285,22 @@ pg_[A-Za-z0-9_] <application> ...@@ -263,36 +285,22 @@ pg_[A-Za-z0-9_] <application>
</para> </para>
<para> <para>
Currently <productname>PostgreSQL</productname> processes a Currently <productname>PostgreSQL</productname> processes a
backslash in a string as preceeding a character that requires backslash in a string literal as introducing a special escape sequence,
special processing, e.g. <literal>\n</> or <literal>\010</>. e.g. <literal>\n</> or <literal>\010</>.
While this allows easy entry of special values, it is While this allows easy entry of special values, it is
non-standard and makes porting of application from other non-standard and makes porting of applications from other
databases more difficult. For this reason, the databases more difficult. For this reason, the
<productname>PostgreSQL</productname> project is planning to <productname>PostgreSQL</productname> project is planning to
remove the special meaning of backslashes in strings. For remove the special meaning of backslashes in strings. For
backward compatibility and for users who want special backslash backward compatibility and for users who want special backslash
processing, a new string type will be created. This new string processing, a new string syntax has been created. This new string
type is formed by having an E precede the single quote that syntax is formed by writing an <literal>E</> immediately preceding the
starts the string, e.g. <literal>E'hi\n'</>. While this release single quote that starts the string, e.g. <literal>E'hi\n'</>. While
does not change the handling of backslashes in strings, it does this release does not change the handling of backslashes in strings, it
add several new GUC variables to help users migrate applications does add new GUC variables to help users migrate applications
for future releases: for future releases:
</para> </para>
<itemizedlist> <itemizedlist>
<listitem>
<para>
<varname>escape_string_warning</> - warn about backslashes in
ordinary (non-E) strings
</para>
</listitem>
<listitem>
<para>
<varname>escape_string_syntax</> - does this release support
the E'' syntax?
</para>
</listitem>
<listitem> <listitem>
<para> <para>
...@@ -300,23 +308,32 @@ pg_[A-Za-z0-9_] <application> ...@@ -300,23 +308,32 @@ pg_[A-Za-z0-9_] <application>
treat backslashes literally in ordinary strings? treat backslashes literally in ordinary strings?
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<varname>escape_string_warning</> - warn about backslashes in
ordinary (non-E) strings
</para>
</listitem>
</itemizedlist> </itemizedlist>
<para> <para>
The last two values are read-only and should assist in the The <varname>standard_conforming_strings</> value is read-only.
porting of applications. Applications can retrieve these values Applications can retrieve the value to know how backslashes are
to know how backslashes are processed. In a later release, processed. (Presence of the parameter can also be taken as an
standard_conforming_strings will be true, meaning backslashes indication that <literal>E''</> string syntax is supported.) In a
will be treated literally in non-E strings. To prepare for this future release, <varname>standard_conforming_strings</> will be true,
change, use E'' strings in places that need special backslash meaning backslashes will be treated literally in non-E strings. To
processing, and turn on escape_string_warning to find additional prepare for this change, use <literal>E''</> strings in places that
strings that need to be converted to use <literal>E''</>. Also, need special backslash processing, and turn on
use two single-quotes ('') to embed a literal single-quote <varname>escape_string_warning</> to find additional strings that need
in a string, rather than the PostgreSQL-supported syntax of to be converted to use <literal>E''</>. Also, use two single-quotes
backslash single-quote (\'). The former is standards-conforming (<literal>''</>) to embed a literal single-quote in a string, rather
and does not require the use of the E'' string syntax. You can than the PostgreSQL-supported syntax of backslash single-quote
also use the $$ string syntax, which does not treat backslashes (<literal>\'</>). The former is standards-conforming and does not
require the use of the <literal>E''</> string syntax. You can also use
the <literal>$$</> string syntax, which does not treat backslashes
specially. specially.
</para> </para>
</listitem> </listitem>
...@@ -401,7 +418,11 @@ pg_[A-Za-z0-9_] <application> ...@@ -401,7 +418,11 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Change WAL CRC records from 64bit to 32bit (Tom) Change WAL record CRCs from 64-bit to 32-bit (Tom)
</para>
<para>
We determined that the extra cost of computing 64-bit CRCs was
significant, and the gain in reliability too marginal to justify it.
</para> </para>
</listitem> </listitem>
...@@ -431,7 +452,8 @@ pg_[A-Za-z0-9_] <application> ...@@ -431,7 +452,8 @@ pg_[A-Za-z0-9_] <application>
<para> <para>
Since a crash during <command>CREATE TABLE</> would cause the Since a crash during <command>CREATE TABLE</> would cause the
table to be dropped during recovery, there is no reason to WAL table to be dropped during recovery, there is no reason to WAL
log as the table is loaded. log as the table is loaded. (Logging still happens if WAL
archiving is enabled, however.)
</para> </para>
</listitem> </listitem>
...@@ -451,9 +473,9 @@ pg_[A-Za-z0-9_] <application> ...@@ -451,9 +473,9 @@ pg_[A-Za-z0-9_] <application>
To prevent partial disk writes from corrupting the database, To prevent partial disk writes from corrupting the database,
<productname>PostgreSQL</productname> writes a complete copy of <productname>PostgreSQL</productname> writes a complete copy of
each database disk page to WAL the first time it is modified each database disk page to WAL the first time it is modified
after a checkpoint. This turns off that functionality for users after a checkpoint. This option turns off that functionality for more
with battery-backed disk caches where partial page writes cannot speed. This is safe to use with battery-backed disk caches where
happen. partial page writes cannot happen.
</para> </para>
</listitem> </listitem>
...@@ -463,10 +485,10 @@ pg_[A-Za-z0-9_] <application> ...@@ -463,10 +485,10 @@ pg_[A-Za-z0-9_] <application>
on table constraints (Simon) on table constraints (Simon)
</para> </para>
<para> <para>
This allows for a type of table partitioning. If child table This allows for a type of table partitioning. If child tables
placed in a different tablespaces using appropriate store separate key ranges and this is enforced using appropriate
<command>CHECK</> constraints, the optimizer will skip child <command>CHECK</> constraints, the optimizer will skip child
table accesses if the constraint guarantees no matching rows table accesses when the constraint guarantees no matching rows
exist in the child table. exist in the child table.
</para> </para>
</listitem> </listitem>
...@@ -505,17 +527,17 @@ pg_[A-Za-z0-9_] <application> ...@@ -505,17 +527,17 @@ pg_[A-Za-z0-9_] <application>
Prevent problems due to transaction ID (XID) wraparound (Tom) Prevent problems due to transaction ID (XID) wraparound (Tom)
</para> </para>
<para> <para>
This was accomplished by warning the transaction counter is near The server will now warn when the transaction counter approaches
the the earliest transaction id determined by the database whose the wraparound point. If the counter becomes too close to wraparound,
last vacuum is the oldest. If the limit is reached, the server the server will stop accepting queries. This ensures that data is
will no longer accept queries. not lost before needed vacuuming is performed.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Fix problem of object ID (OID) wraparound conflicting with Fix problems with object IDs (OIDs) conflicting with existing system
existing system objects (Tom) objects after the OID counter has wrapped around (Tom)
</para> </para>
</listitem> </listitem>
...@@ -607,6 +629,11 @@ pg_[A-Za-z0-9_] <application> ...@@ -607,6 +629,11 @@ pg_[A-Za-z0-9_] <application>
Add GUC variables to control TCP/IP keep-alive times for idle, Add GUC variables to control TCP/IP keep-alive times for idle,
interval, and count (Oliver Jowett) interval, and count (Oliver Jowett)
</para> </para>
<para>
These values can be changed to allow more rapid detection of
lost client connections.
</para>
</listitem> </listitem>
<listitem> <listitem>
...@@ -615,8 +642,8 @@ pg_[A-Za-z0-9_] <application> ...@@ -615,8 +642,8 @@ pg_[A-Za-z0-9_] <application>
</para> </para>
<para> <para>
Using <command>ALTER USER</> and <command>ALTER DATABASE</>, Using <command>ALTER USER</> and <command>ALTER DATABASE</>,
limits can now be enforced on the maximum number of users who limits can now be enforced on the maximum number of sessions that
can connect as as a specific user or to a specific database. can concurrently connect as a specific user or to a specific database.
Setting the limit to zero disables user or database connections. Setting the limit to zero disables user or database connections.
</para> </para>
</listitem> </listitem>
...@@ -696,10 +723,10 @@ pg_[A-Za-z0-9_] <application> ...@@ -696,10 +723,10 @@ pg_[A-Za-z0-9_] <application>
UPDATE/SHARE</> (Hans-Juergen Schoenig) UPDATE/SHARE</> (Hans-Juergen Schoenig)
</para> </para>
<para> <para>
While <command>SET</> statement_timeout allows a query taking While <command>SET</> <varname>statement_timeout</> allows a query
over a certain amount of time to be cancelled, the <command>NO taking over a certain amount of time to be cancelled, the
WAIT</> option allows a query to be canceled as soon as a <command>NOWAIT</> option allows a query to be canceled as soon as a
<command>SELECT ... FOR UPDATE/SHARE</> cannot immediately <command>SELECT ... FOR UPDATE/SHARE</> command cannot immediately
acquire a row lock. acquire a row lock.
</para> </para>
</listitem> </listitem>
...@@ -733,10 +760,12 @@ pg_[A-Za-z0-9_] <application> ...@@ -733,10 +760,12 @@ pg_[A-Za-z0-9_] <application>
by the object owner (Stephen Frost) by the object owner (Stephen Frost)
</para> </para>
<para> <para>
Prior releases allowed only the super-user to change object owners, Prior releases allowed only superusers to change object owners.
even if the current owner was executing the command and the new Now, ownership can be transferred if the user executing the command
owner was in the same group. With roles such transfers are now owns the object and would be able to create it as the new owner
possible. (that is, the user is a member of the new owning role and that role
has the CREATE permission that would be needed to create the object
afresh).
</para> </para>
</listitem> </listitem>
...@@ -771,12 +800,12 @@ pg_[A-Za-z0-9_] <application> ...@@ -771,12 +800,12 @@ pg_[A-Za-z0-9_] <application>
single command (Alvaro) single command (Alvaro)
</para> </para>
<para> <para>
Because of referential integrity checks, it is impossible to Because of referential integrity checks, it is not allowed to
truncate a table that is part of a referential integrity truncate a table that is part of a referential integrity
constraint. Using this new functionality, <command>TRUNCATE</> constraint. Using this new functionality, <command>TRUNCATE</>
can be used to truncate all tables involved in referential can be used to truncate such tables, if both tables involved in
integrity if they are truncated in a single <command>TRUNCATE</> a referential integrity constraint are truncated in a single
command. <command>TRUNCATE</> command.
</para> </para>
</listitem> </listitem>
...@@ -807,7 +836,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -807,7 +836,7 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
On Win32, display better sub-second precision in On Windows, display better sub-second precision in
<command>EXPLAIN ANALYZE</> (Magnus) <command>EXPLAIN ANALYZE</> (Magnus)
</para> </para>
</listitem> </listitem>
...@@ -818,8 +847,9 @@ pg_[A-Za-z0-9_] <application> ...@@ -818,8 +847,9 @@ pg_[A-Za-z0-9_] <application>
(Tom) (Tom)
</para> </para>
<para> <para>
Prior releases accumulated trigger execution time as part of the Prior releases included trigger execution time as part of the
total execution time. total execution time, but did not show it separately. It is now
possible to see how much time is spent in each trigger.
</para> </para>
</listitem> </listitem>
...@@ -835,7 +865,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -835,7 +865,7 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Have <command>SHOW ALL</> include variable descriptions Make <command>SHOW ALL</> include variable descriptions
(Matthias Schmidt) (Matthias Schmidt)
</para> </para>
<para> <para>
...@@ -846,16 +876,16 @@ pg_[A-Za-z0-9_] <application> ...@@ -846,16 +876,16 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Have initdb create new standard database called Make initdb create a new standard database called
<literal>postgres</> and convert utilities to use <literal>postgres</>, and convert utilities to use
<literal>postgres</> rather than <literal>template1</> for <literal>postgres</> rather than <literal>template1</> for
standard lookups (Dave) standard lookups (Dave)
</para> </para>
<para> <para>
In prior releases, template1 was used both as a default In prior releases, <literal>template1</> was used both as a default
connection for utilities like createuser, and as a template for connection for utilities like createuser, and as a template for
new databases. This caused <command>CREATE DATABASE</> to new databases. This caused <command>CREATE DATABASE</> to
sometimes fail because a new database cannot be created if sometimes fail, because a new database cannot be created if
anyone else is in the template database. With this change, the anyone else is in the template database. With this change, the
default connection database is now <literal>postgres</>, meaning default connection database is now <literal>postgres</>, meaning
it is much less likely someone will be using it is much less likely someone will be using
...@@ -884,9 +914,6 @@ pg_[A-Za-z0-9_] <application> ...@@ -884,9 +914,6 @@ pg_[A-Za-z0-9_] <application>
Add <function>MAX()</> and <function>MIN()</> aggregates for Add <function>MAX()</> and <function>MIN()</> aggregates for
array types (Koju Iijima) array types (Koju Iijima)
</para> </para>
<para>
How does this work?
</para>
</listitem> </listitem>
<listitem> <listitem>
...@@ -899,7 +926,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -899,7 +926,7 @@ pg_[A-Za-z0-9_] <application>
If the format specification contains <literal>CC</> and a year If the format specification contains <literal>CC</> and a year
specification is <literal>YYY</> or longer, ignore the specification is <literal>YYY</> or longer, ignore the
<literal>CC</>. If the year specification is <literal>YY</> or <literal>CC</>. If the year specification is <literal>YY</> or
shorter, interpret <literal>CC</> as the previous century. ? shorter, interpret <literal>CC</> as the previous century.
</para> </para>
</listitem> </listitem>
...@@ -927,7 +954,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -927,7 +954,7 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Add support for <command>NUMERIC ^ NUMERIC</> based on Add support for <command>numeric ^ numeric</> based on
<function>power(numeric, numeric)</> <function>power(numeric, numeric)</>
</para> </para>
<para> <para>
...@@ -943,7 +970,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -943,7 +970,7 @@ pg_[A-Za-z0-9_] <application>
</para> </para>
<para> <para>
In previous releases, modulus for large values sometimes In previous releases, modulus for large values sometimes
returned negative results due to the rounding of the quotient. returned negative results due to rounding of the quotient.
</para> </para>
</listitem> </listitem>
...@@ -1001,7 +1028,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1001,7 +1028,7 @@ pg_[A-Za-z0-9_] <application>
</para> </para>
<para> <para>
These functions take a variable number of arguments and return These functions take a variable number of arguments and return
the greatest or least value. the greatest or least value among the arguments.
</para> </para>
</listitem> </listitem>
...@@ -1020,8 +1047,8 @@ pg_[A-Za-z0-9_] <application> ...@@ -1020,8 +1047,8 @@ pg_[A-Za-z0-9_] <application>
Add <function>regexp_replace()</> (Atsushi Ogawa) Add <function>regexp_replace()</> (Atsushi Ogawa)
</para> </para>
<para> <para>
This allows regular expression replacement, like sed. A This allows regular expression replacement, like sed. An optional
four-argument version also allows for global (replace all) and flag argument allows selection of global (replace all) and
case-insensitive modes. case-insensitive modes.
</para> </para>
</listitem> </listitem>
...@@ -1049,7 +1076,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1049,7 +1076,7 @@ pg_[A-Za-z0-9_] <application>
(not fixed 24-hour periods) to be added to dates who's result (not fixed 24-hour periods) to be added to dates who's result
includes a daylight savings time adjustment period. Therefore, includes a daylight savings time adjustment period. Therefore,
while in previous releases <literal>1 day</> and <literal>24 while in previous releases <literal>1 day</> and <literal>24
hours</> where interchangeable interval periods, in this release hours</> were interchangeable interval values, in this release
they are treated differently, e.g. they are treated differently, e.g.
<programlisting> <programlisting>
'2005-05-03 00:00:00 EST' + '1 day' = '2005-05-04 00:00:00-04' '2005-05-03 00:00:00 EST' + '1 day' = '2005-05-04 00:00:00-04'
...@@ -1157,13 +1184,13 @@ pg_[A-Za-z0-9_] <application> ...@@ -1157,13 +1184,13 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Add <function>pg_rotate_logfile()</> to force rotation of the Add <function>pg_rotate_logfile()</> to force rotation of the
server log file (Dave Page, server log file (Dave Page, Andreas Pflug)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Change <literal>pg_stat_*</> views to show TOAST tables (Tom) Change <literal>pg_stat_*</> views to include TOAST tables (Tom)
</para> </para>
</listitem> </listitem>
...@@ -1178,7 +1205,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1178,7 +1205,7 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Rename some encodings to be more consistent and to follow Rename some encodings to be more consistent and to follow
international standards(Bruce) international standards (Bruce)
</para> </para>
<para> <para>
<itemizedlist> <itemizedlist>
...@@ -1228,7 +1255,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1228,7 +1255,7 @@ pg_[A-Za-z0-9_] <application>
<para> <para>
Previously only one and two-byte <literal>UTF8</> characters Previously only one and two-byte <literal>UTF8</> characters
were supported. This is particularly important for support for were supported. This is particularly important for support for
some Chinese character. some Chinese characters.
</para> </para>
</listitem> </listitem>
...@@ -1242,11 +1269,12 @@ pg_[A-Za-z0-9_] <application> ...@@ -1242,11 +1269,12 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Allow the UTF8 encoding to work on Win32 (Magnus) Allow the UTF8 encoding to work on Windows (Magnus)
</para> </para>
<para> <para>
This is done by mapping UTF8 to the Win32-native UTF16 This is done by mapping UTF8 to the Windows-native UTF16
implementation. implementation.
</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
...@@ -1295,7 +1323,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1295,7 +1323,7 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Move language handlers into the <literal>pg_catalog</> schema Move language handler functions into the <literal>pg_catalog</> schema
</para> </para>
<para> <para>
This makes it easier to drop the public schema if desired. This makes it easier to drop the public schema if desired.
...@@ -1321,7 +1349,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1321,7 +1349,7 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Check function syntax as <command>CREATE FUNCTION</> time, Check function syntax at <command>CREATE FUNCTION</> time,
rather than at runtime (Neil) rather than at runtime (Neil)
</para> </para>
<para> <para>
...@@ -1344,7 +1372,8 @@ pg_[A-Za-z0-9_] <application> ...@@ -1344,7 +1372,8 @@ pg_[A-Za-z0-9_] <application>
</para> </para>
<para> <para>
This is a byproduct of the newly added <command>OUT</> and This is a byproduct of the newly added <command>OUT</> and
<command>INOUT</> functionality. <command>INOUT</> functionality. <command>RETURN</> can
be omitted when it is not needed to provide the function result.
</para> </para>
</listitem> </listitem>
...@@ -1511,8 +1540,8 @@ pg_[A-Za-z0-9_] <application> ...@@ -1511,8 +1540,8 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Prevent psql <command>\x</> (expanded mode) from affecting other Prevent psql <command>\x</> (expanded mode) from affecting
backslash output (Neil) backslash-command displays (Neil)
</para> </para>
</listitem> </listitem>
...@@ -1528,7 +1557,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1528,7 +1557,7 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Have psql <command>\d</> show tablespace of indexes (Qingqing Make psql <command>\d</> show tablespaces of indexes (Qingqing
Zhou) Zhou)
</para> </para>
</listitem> </listitem>
...@@ -1541,8 +1570,8 @@ pg_[A-Za-z0-9_] <application> ...@@ -1541,8 +1570,8 @@ pg_[A-Za-z0-9_] <application>
<para> <para>
This allows the user to just add <command>\h</> to the front of This allows the user to just add <command>\h</> to the front of
the syntax error query and get help on the supported syntax. the syntax error query and get help on the supported syntax.
Previously any additional query text beyond the help topics Previously any additional query text beyond the command name
supported had to be removed to use <command>\h</>. had to be removed to use <command>\h</>.
</para> </para>
</listitem> </listitem>
...@@ -1553,7 +1582,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1553,7 +1582,7 @@ pg_[A-Za-z0-9_] <application>
</para> </para>
<para> <para>
For example, using <literal>C</> locale <literal>100000</> would For example, using <literal>C</> locale <literal>100000</> would
be output as <literal>100,000.0</> and European locale might be output as <literal>100,000.0</> while a European locale might
output this value as <literal>100.000,0</>. output this value as <literal>100.000,0</>.
</para> </para>
</listitem> </listitem>
...@@ -1650,7 +1679,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1650,7 +1679,7 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Add Kerberos 5 support for Win32 (Magnus) Add Kerberos 5 support for Windows (Magnus)
</para> </para>
</listitem> </listitem>
...@@ -1725,7 +1754,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1725,7 +1754,7 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Allow libpq to be build thread-safe on Win32 (Dave Page) Allow libpq to be built thread-safe on Windows (Dave Page)
</para> </para>
</listitem> </listitem>
...@@ -1756,7 +1785,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1756,7 +1785,7 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Cleanup the <filename>/contrib/lo</> module (Tom) Clean up the <filename>/contrib/lo</> module (Tom)
</para> </para>
</listitem> </listitem>
...@@ -1786,7 +1815,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1786,7 +1815,7 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
<filename>/contrib/pgcrypto</> (Marko Kreen) Improve <filename>/contrib/pgcrypto</> (Marko Kreen)
</para> </para>
<itemizedlist> <itemizedlist>
...@@ -1796,7 +1825,7 @@ pg_[A-Za-z0-9_] <application> ...@@ -1796,7 +1825,7 @@ pg_[A-Za-z0-9_] <application>
implementation of OpenPGP symmetric-key and public-key encryption implementation of OpenPGP symmetric-key and public-key encryption
</para> </para>
<para> <para>
Supported are both RSA and Elgamal public-key algorithms. Both RSA and Elgamal public-key algorithms are supported.
</para> </para>
</listitem> </listitem>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment