Commit 3a3c06f0 authored by Bruce Momjian's avatar Bruce Momjian

Adjust SGML so major feature items are all not in a single subparagraph.

parent 2a492824
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.339 2005/08/23 11:32:33 momjian Exp $ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.340 2005/08/23 11:53:33 momjian Exp $
--> -->
<appendix id="release"> <appendix id="release">
...@@ -18,21 +18,78 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.339 2005/08/23 11:32:33 momjian ...@@ -18,21 +18,78 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.339 2005/08/23 11:32:33 momjian
<para> <para>
Major changes in this release: Major changes in this release:
</para>
<variablelist>
<varlistentry> <variablelist>
<varlistentry>
<term> <term>
Improve concurrent access to the shared buffer cache (Tom)
</term> </term>
<listitem> <listitem>
<para>
This was accomplished by eliminating global locks and using a clock
sweep algorithm to find free buffers.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Allow indexes to be used for MIN/MAX (Tom)
</term>
<listitem>
<para> <para>
In previous releases, the only way to use index for MIN/MAX was to rewrite
the query as SELECT col FROM tab ORDER BY col LIMIT 1. This now happens
automatically.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
</term>
<listitem>
<para>
</para> </para>
</listitem>
</listitem> </varlistentry>
</varlistentry>
<varlistentry>
</variablelist> <term>
</para> </term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2> </sect2>
<sect2> <sect2>
...@@ -140,16 +197,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.339 2005/08/23 11:32:33 momjian ...@@ -140,16 +197,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.339 2005/08/23 11:32:33 momjian
<listitem> <listitem>
<para> <para>
Improve rtree index capabilities and performance (Neil) Improve rtree index capabilities and performance (Neil)
</para> Replaced by contrib?
</listitem>
<listitem>
<para>
Improve concurrent access to the shared buffer cache (Tom)
</para>
<para>
This was accomplished by eliminating global locks and using a clock
sweep algorithm to find free buffers.
</para> </para>
</listitem> </listitem>
...@@ -165,17 +213,6 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.339 2005/08/23 11:32:33 momjian ...@@ -165,17 +213,6 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.339 2005/08/23 11:32:33 momjian
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Allow indexes to be used for MIN/MAX (Tom)
</para>
<para>
In previous releases, the only way to use index for MIN/MAX was to rewrite
the query as SELECT col FROM tab ORDER BY col LIMIT 1. This now happens
automatically.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Add in-memory bitmaps which allows multiple indexes to be merged in a Add in-memory bitmaps which allows multiple indexes to be merged in a
...@@ -1839,156 +1876,156 @@ typedefs (Michael)</para></listitem> ...@@ -1839,156 +1876,156 @@ typedefs (Michael)</para></listitem>
<para> <para>
Major changes in this release: Major changes in this release:
<variablelist>
<varlistentry>
<term>
Microsoft Windows Native Server
</term>
<listitem>
<para>
This is the first <productname>PostgreSQL</productname> release
to run natively on <trademark class=registered>Microsoft Windows</> as
a server. It can run as a <productname>Windows</> service. This
release supports NT-based Windows releases like
<productname>Windows 2000</>, <productname>Windows XP</>, and
<productname>Windows 2003</>. Older releases like
<productname>Windows 95</>, <productname>Windows 98</>, and
<productname>Windows ME</> are not supported because these operating
systems do not have the infrastructure to support
<productname>PostgreSQL</productname>. A separate installer
project has been created to ease installation on
<productname>Windows</> &mdash; see <ulink
url="http://www.postgresql.org/ftp/win32/"></ulink>.
</para>
<para>
Although tested throughout our release cycle, the Windows port
does not have the benefit of years of use in production
environments that <productname>PostgreSQL</productname> has on
Unix platforms. Therefore it should be treated with the same
level of caution as you would a new product.
</para>
<para>
Previous releases required the Unix emulation toolkit
<productname>Cygwin</> in order to run the server on Windows
operating systems. <productname>PostgreSQL</productname> has
supported native clients on Windows for many years.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Savepoints
</term>
<listitem>
<para>
Savepoints allow specific parts of a transaction to be aborted
without affecting the remainder of the transaction. Prior
releases had no such capability; there was no way to recover
from a statement failure within a transaction except by
aborting the whole transaction. This feature is valuable for
application writers who require error recovery within a
complex transaction.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Point-In-Time Recovery
</term>
<listitem>
<para>
In previous releases there was no way to recover from disk
drive failure except to restore from a previous backup or use
a standby replication server. Point-in-time recovery allows
continuous backup of the server. You can recover either to
the point of failure or to some transaction in the past.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Tablespaces
</term>
<listitem>
<para>
Tablespaces allow administrators to select different file systems
for storage of individual tables, indexes, and databases.
This improves performance and control over disk space
usage. Prior releases used <application>initlocation</> and
manual symlink management for such tasks.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Improved Buffer Management, <command>CHECKPOINT</command>,
<command>VACUUM</command>
</term>
<listitem>
<para>
This release has a more intelligent buffer replacement strategy,
which will make better use of available shared buffers and
improve performance. The performance impact of vacuum and
checkpoints is also lessened.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Change Column Types
</term>
<listitem>
<para>
A column's data type can now be changed with <command>ALTER
TABLE</command>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
New Perl Server-Side Language
</term>
<listitem>
<para>
A new version of the <application>plperl</> server-side language now
supports a persistent shared storage area, triggers, returning records
and arrays of records, and SPI calls to access the database.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Comma-separated-value (CSV) support in <command>COPY</command>
</term>
<listitem>
<para>
<command>COPY</command> can now read and write
comma-separated-value files. It has the flexibility to
interpret non-standard quoting and separation characters too.
</para>
</listitem>
</varlistentry>
</variablelist>
</para> </para>
<variablelist>
<varlistentry>
<term>
Microsoft Windows Native Server
</term>
<listitem>
<para>
This is the first <productname>PostgreSQL</productname> release
to run natively on <trademark class=registered>Microsoft Windows</> as
a server. It can run as a <productname>Windows</> service. This
release supports NT-based Windows releases like
<productname>Windows 2000</>, <productname>Windows XP</>, and
<productname>Windows 2003</>. Older releases like
<productname>Windows 95</>, <productname>Windows 98</>, and
<productname>Windows ME</> are not supported because these operating
systems do not have the infrastructure to support
<productname>PostgreSQL</productname>. A separate installer
project has been created to ease installation on
<productname>Windows</> &mdash; see <ulink
url="http://www.postgresql.org/ftp/win32/"></ulink>.
</para>
<para>
Although tested throughout our release cycle, the Windows port
does not have the benefit of years of use in production
environments that <productname>PostgreSQL</productname> has on
Unix platforms. Therefore it should be treated with the same
level of caution as you would a new product.
</para>
<para>
Previous releases required the Unix emulation toolkit
<productname>Cygwin</> in order to run the server on Windows
operating systems. <productname>PostgreSQL</productname> has
supported native clients on Windows for many years.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Savepoints
</term>
<listitem>
<para>
Savepoints allow specific parts of a transaction to be aborted
without affecting the remainder of the transaction. Prior
releases had no such capability; there was no way to recover
from a statement failure within a transaction except by
aborting the whole transaction. This feature is valuable for
application writers who require error recovery within a
complex transaction.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Point-In-Time Recovery
</term>
<listitem>
<para>
In previous releases there was no way to recover from disk
drive failure except to restore from a previous backup or use
a standby replication server. Point-in-time recovery allows
continuous backup of the server. You can recover either to
the point of failure or to some transaction in the past.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Tablespaces
</term>
<listitem>
<para>
Tablespaces allow administrators to select different file systems
for storage of individual tables, indexes, and databases.
This improves performance and control over disk space
usage. Prior releases used <application>initlocation</> and
manual symlink management for such tasks.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Improved Buffer Management, <command>CHECKPOINT</command>,
<command>VACUUM</command>
</term>
<listitem>
<para>
This release has a more intelligent buffer replacement strategy,
which will make better use of available shared buffers and
improve performance. The performance impact of vacuum and
checkpoints is also lessened.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Change Column Types
</term>
<listitem>
<para>
A column's data type can now be changed with <command>ALTER
TABLE</command>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
New Perl Server-Side Language
</term>
<listitem>
<para>
A new version of the <application>plperl</> server-side language now
supports a persistent shared storage area, triggers, returning records
and arrays of records, and SPI calls to access the database.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Comma-separated-value (CSV) support in <command>COPY</command>
</term>
<listitem>
<para>
<command>COPY</command> can now read and write
comma-separated-value files. It has the flexibility to
interpret non-standard quoting and separation characters too.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2> </sect2>
<sect2> <sect2>
...@@ -4889,271 +4926,272 @@ DROP SCHEMA information_schema CASCADE; ...@@ -4889,271 +4926,272 @@ DROP SCHEMA information_schema CASCADE;
<para> <para>
Major changes in this release: Major changes in this release:
</para>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term> <term>
<literal>IN</literal> / <literal>NOT IN</literal> subqueries are <literal>IN</literal> / <literal>NOT IN</literal> subqueries are
now much more efficient now much more efficient
</term> </term>
<listitem> <listitem>
<para> <para>
In previous releases, <literal>IN</literal>/<literal>NOT In previous releases, <literal>IN</literal>/<literal>NOT
IN</literal> subqueries were joined to the upper query by IN</literal> subqueries were joined to the upper query by
sequentially scanning the subquery looking for a match. The sequentially scanning the subquery looking for a match. The
7.4 code uses the same sophisticated techniques used by 7.4 code uses the same sophisticated techniques used by
ordinary joins and so is much faster. An ordinary joins and so is much faster. An
<literal>IN</literal> will now usually be as fast as or faster <literal>IN</literal> will now usually be as fast as or faster
than an equivalent <literal>EXISTS</literal> subquery; this than an equivalent <literal>EXISTS</literal> subquery; this
reverses the conventional wisdom that applied to previous reverses the conventional wisdom that applied to previous
releases. releases.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Improved <literal>GROUP BY</literal> processing by using hash buckets Improved <literal>GROUP BY</literal> processing by using hash buckets
</term> </term>
<listitem> <listitem>
<para> <para>
In previous releases, rows to be grouped had to be sorted In previous releases, rows to be grouped had to be sorted
first. The 7.4 code can do <literal>GROUP BY</literal> first. The 7.4 code can do <literal>GROUP BY</literal>
without sorting, by accumulating results into a hash table without sorting, by accumulating results into a hash table
with one entry per group. It will still use the sort with one entry per group. It will still use the sort
technique, however, if the hash table is estimated to be too technique, however, if the hash table is estimated to be too
large to fit in <varname>sort_mem</>. large to fit in <varname>sort_mem</>.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
New multikey hash join capability New multikey hash join capability
</term> </term>
<listitem> <listitem>
<para> <para>
In previous releases, hash joins could only occur on single In previous releases, hash joins could only occur on single
keys. This release allows multicolumn hash joins. keys. This release allows multicolumn hash joins.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Queries using the explicit <literal>JOIN</literal> syntax are Queries using the explicit <literal>JOIN</literal> syntax are
now better optimized now better optimized
</term> </term>
<listitem> <listitem>
<para> <para>
Prior releases evaluated queries using the explicit Prior releases evaluated queries using the explicit
<literal>JOIN</literal> syntax only in the order implied by <literal>JOIN</literal> syntax only in the order implied by
the syntax. 7.4 allows full optimization of these queries, the syntax. 7.4 allows full optimization of these queries,
meaning the optimizer considers all possible join orderings meaning the optimizer considers all possible join orderings
and chooses the most efficient. Outer joins, however, must and chooses the most efficient. Outer joins, however, must
still follow the declared ordering. still follow the declared ordering.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Faster and more powerful regular expression code Faster and more powerful regular expression code
</term> </term>
<listitem> <listitem>
<para> <para>
The entire regular expression module has been replaced with a The entire regular expression module has been replaced with a
new version by Henry Spencer, originally written for Tcl. The new version by Henry Spencer, originally written for Tcl. The
code greatly improves performance and supports several flavors code greatly improves performance and supports several flavors
of regular expressions. of regular expressions.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Function-inlining for simple SQL functions Function-inlining for simple SQL functions
</term> </term>
<listitem> <listitem>
<para> <para>
Simple SQL functions can now be inlined by including their SQL Simple SQL functions can now be inlined by including their SQL
in the main query. This improves performance by eliminating in the main query. This improves performance by eliminating
per-call overhead. That means simple SQL functions now per-call overhead. That means simple SQL functions now
behave like macros. behave like macros.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Full support for IPv6 connections and IPv6 address data types Full support for IPv6 connections and IPv6 address data types
</term> </term>
<listitem> <listitem>
<para> <para>
Previous releases allowed only IPv4 connections, and the IP Previous releases allowed only IPv4 connections, and the IP
data types only supported IPv4 addresses. This release adds data types only supported IPv4 addresses. This release adds
full IPv6 support in both of these areas. full IPv6 support in both of these areas.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Major improvements in SSL performance and reliability Major improvements in SSL performance and reliability
</term> </term>
<listitem> <listitem>
<para> <para>
Several people very familiar with the SSL API have overhauled Several people very familiar with the SSL API have overhauled
our SSL code to improve SSL key negotiation and error our SSL code to improve SSL key negotiation and error
recovery. recovery.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Make free space map efficiently reuse empty index pages, Make free space map efficiently reuse empty index pages,
and other free space management improvements and other free space management improvements
</term> </term>
<listitem> <listitem>
<para> <para>
In previous releases, B-tree index pages that were left empty In previous releases, B-tree index pages that were left empty
because of deleted rows could only be reused by rows with because of deleted rows could only be reused by rows with
index values similar to the rows originally indexed on that index values similar to the rows originally indexed on that
page. In 7.4, <command>VACUUM</command> records empty index page. In 7.4, <command>VACUUM</command> records empty index
pages and allows them to be reused for any future index rows. pages and allows them to be reused for any future index rows.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
SQL-standard information schema SQL-standard information schema
</term> </term>
<listitem> <listitem>
<para> <para>
The information schema provides a standardized and stable way The information schema provides a standardized and stable way
to access information about the schema objects defined in a to access information about the schema objects defined in a
database. database.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Cursors conform more closely to the SQL standard Cursors conform more closely to the SQL standard
</term> </term>
<listitem> <listitem>
<para> <para>
The commands <command>FETCH</command> and The commands <command>FETCH</command> and
<command>MOVE</command> have been overhauled to conform more <command>MOVE</command> have been overhauled to conform more
closely to the SQL standard. closely to the SQL standard.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Cursors can exist outside transactions Cursors can exist outside transactions
</term> </term>
<listitem> <listitem>
<para> <para>
These cursors are also called holdable cursors. These cursors are also called holdable cursors.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
New client-to-server protocol New client-to-server protocol
</term> </term>
<listitem> <listitem>
<para> <para>
The new protocol adds error codes, more status information, The new protocol adds error codes, more status information,
faster startup, better support for binary data transmission, faster startup, better support for binary data transmission,
parameter values separated from SQL commands, prepared parameter values separated from SQL commands, prepared
statements available at the protocol level, and cleaner statements available at the protocol level, and cleaner
recovery from <command>COPY</command> failures. The older recovery from <command>COPY</command> failures. The older
protocol is still supported by both server and clients. protocol is still supported by both server and clients.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
<application>libpq</application> and <application>libpq</application> and
<application>ECPG</application> applications are now fully <application>ECPG</application> applications are now fully
thread-safe thread-safe
</term> </term>
<listitem> <listitem>
<para> <para>
While previous <application>libpq</application> releases While previous <application>libpq</application> releases
already supported threads, this release improves thread safety already supported threads, this release improves thread safety
by fixing some non-thread-safe code that was used during by fixing some non-thread-safe code that was used during
database connection startup. The <command>configure</command> database connection startup. The <command>configure</command>
option <option>--enable-thread-safety</option> must be used to option <option>--enable-thread-safety</option> must be used to
enable this feature. enable this feature.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
New version of full-text indexing New version of full-text indexing
</term> </term>
<listitem> <listitem>
<para> <para>
A new full-text indexing suite is available in A new full-text indexing suite is available in
<filename>contrib/tsearch2</filename>. <filename>contrib/tsearch2</filename>.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
New autovacuum tool New autovacuum tool
</term> </term>
<listitem> <listitem>
<para> <para>
The new autovacuum tool in The new autovacuum tool in
<filename>contrib/autovacuum</filename> monitors the database <filename>contrib/autovacuum</filename> monitors the database
statistics tables for statistics tables for
<command>INSERT</command>/<command>UPDATE</command>/<command>DELETE</command> <command>INSERT</command>/<command>UPDATE</command>/<command>DELETE</command>
activity and automatically vacuums tables when needed. activity and automatically vacuums tables when needed.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Array handling has been improved and moved into the server core Array handling has been improved and moved into the server core
</term> </term>
<listitem> <listitem>
<para> <para>
Many array limitations have been removed, and arrays behave Many array limitations have been removed, and arrays behave
more like fully-supported data types. more like fully-supported data types.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist>
</para> </variablelist>
</sect2> </sect2>
<sect2> <sect2>
...@@ -7396,123 +7434,123 @@ operations on bytea columns (Joe)</para></listitem> ...@@ -7396,123 +7434,123 @@ operations on bytea columns (Joe)</para></listitem>
<para> <para>
Major changes in this release: Major changes in this release:
</para>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term>Schemas</term> <term>Schemas</term>
<listitem> <listitem>
<para> <para>
Schemas allow users to create objects in separate namespaces, Schemas allow users to create objects in separate namespaces,
so two people or applications can have tables with the same so two people or applications can have tables with the same
name. There is also a public schema for shared tables. name. There is also a public schema for shared tables.
Table/index creation can be restricted by removing privileges Table/index creation can be restricted by removing privileges
on the public schema. on the public schema.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>Drop Column</term> <term>Drop Column</term>
<listitem> <listitem>
<para> <para>
<productname>PostgreSQL</productname> now supports the <productname>PostgreSQL</productname> now supports the
<literal>ALTER TABLE ... DROP COLUMN</literal> functionality. <literal>ALTER TABLE ... DROP COLUMN</literal> functionality.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>Table Functions</term> <term>Table Functions</term>
<listitem> <listitem>
<para> <para>
Functions returning multiple rows and/or multiple columns are Functions returning multiple rows and/or multiple columns are
now much easier to use than before. You can call such a now much easier to use than before. You can call such a
<quote>table function</quote> in the <literal>SELECT</literal> <quote>table function</quote> in the <literal>SELECT</literal>
<literal>FROM</literal> clause, treating its output like a <literal>FROM</literal> clause, treating its output like a
table. Also, <application>PL/pgSQL</application> functions can table. Also, <application>PL/pgSQL</application> functions can
now return sets. now return sets.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>Prepared Queries</term> <term>Prepared Queries</term>
<listitem> <listitem>
<para> <para>
<productname>PostgreSQL</productname> now supports prepared <productname>PostgreSQL</productname> now supports prepared
queries, for improved performance. queries, for improved performance.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>Dependency Tracking</term> <term>Dependency Tracking</term>
<listitem> <listitem>
<para> <para>
<productname>PostgreSQL</productname> now records object <productname>PostgreSQL</productname> now records object
dependencies, which allows improvements in many areas. dependencies, which allows improvements in many areas.
<command>DROP</command> statements now take either <command>DROP</command> statements now take either
<literal>CASCADE</> or <literal>RESTRICT</> to control whether <literal>CASCADE</> or <literal>RESTRICT</> to control whether
dependent objects are also dropped. dependent objects are also dropped.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>Privileges</term> <term>Privileges</term>
<listitem> <listitem>
<para> <para>
Functions and procedural languages now have privileges, and Functions and procedural languages now have privileges, and
functions can be defined to run with the privileges of their functions can be defined to run with the privileges of their
creator. creator.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>Internationalization</term> <term>Internationalization</term>
<listitem> <listitem>
<para> <para>
Both multibyte and locale support are now always enabled. Both multibyte and locale support are now always enabled.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>Logging</term> <term>Logging</term>
<listitem> <listitem>
<para> <para>
A variety of logging options have been enhanced. A variety of logging options have been enhanced.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>Interfaces</term> <term>Interfaces</term>
<listitem> <listitem>
<para> <para>
A large number of interfaces have been moved to <ulink A large number of interfaces have been moved to <ulink
url="http://gborg.postgresql.org">http://gborg.postgresql.org</> url="http://gborg.postgresql.org">http://gborg.postgresql.org</>
where they can be developed and released independently. where they can be developed and released independently.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>Functions/Identifiers</term> <term>Functions/Identifiers</term>
<listitem> <listitem>
<para> <para>
By default, functions can now take up to 32 parameters, and By default, functions can now take up to 32 parameters, and
identifiers can be up to 63 bytes long. Also, <literal>OPAQUE</> identifiers can be up to 63 bytes long. Also, <literal>OPAQUE</>
is now deprecated: there are specific <quote>pseudo-datatypes</> is now deprecated: there are specific <quote>pseudo-datatypes</>
to represent each of the former meanings of <literal>OPAQUE</> to represent each of the former meanings of <literal>OPAQUE</>
in function argument and result types. in function argument and result types.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</para>
</sect2> </sect2>
<sect2> <sect2>
...@@ -8396,82 +8434,83 @@ since <productname>PostgreSQL</productname> 7.1. ...@@ -8396,82 +8434,83 @@ since <productname>PostgreSQL</productname> 7.1.
<para> <para>
Major changes in this release: Major changes in this release:
</para>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term>VACUUM</term> <term>VACUUM</term>
<listitem> <listitem>
<para> <para>
Vacuuming no longer locks tables, thus allowing normal user Vacuuming no longer locks tables, thus allowing normal user
access during the vacuum. A new <command>VACUUM FULL</> access during the vacuum. A new <command>VACUUM FULL</>
command does old-style vacuum by locking the table and command does old-style vacuum by locking the table and
shrinking the on-disk copy of the table. shrinking the on-disk copy of the table.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>Transactions</term>
<listitem>
<para>
There is no longer a problem with installations that exceed
four billion transactions.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>OIDs</term>
<listitem>
<para>
OIDs are now optional. Users can now create tables without
OIDs for cases where OID usage is excessive.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Optimizer</term>
<listitem>
<para>
The system now computes histogram column statistics during
<command>ANALYZE</>, allowing much better optimizer choices.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Security</term>
<listitem>
<para>
A new MD5 encryption option allows more secure storage and
transfer of passwords. A new Unix-domain socket
authentication option is available on Linux and BSD systems.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Statistics</term>
<listitem>
<para>
Administrators can use the new table access statistics module
to get fine-grained information about table and index usage.
</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term>Internationalization</term> <term>Transactions</term>
<listitem> <listitem>
<para> <para>
Program and library messages can now be displayed in several There is no longer a problem with installations that exceed
languages. four billion transactions.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist>
</para> <varlistentry>
<term>OIDs</term>
<listitem>
<para>
OIDs are now optional. Users can now create tables without
OIDs for cases where OID usage is excessive.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Optimizer</term>
<listitem>
<para>
The system now computes histogram column statistics during
<command>ANALYZE</>, allowing much better optimizer choices.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Security</term>
<listitem>
<para>
A new MD5 encryption option allows more secure storage and
transfer of passwords. A new Unix-domain socket
authentication option is available on Linux and BSD systems.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Statistics</term>
<listitem>
<para>
Administrators can use the new table access statistics module
to get fine-grained information about table and index usage.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Internationalization</term>
<listitem>
<para>
Program and library messages can now be displayed in several
languages.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2> </sect2>
<sect2> <sect2>
...@@ -9070,83 +9109,84 @@ Python fixes (Darcy) ...@@ -9070,83 +9109,84 @@ Python fixes (Darcy)
<para> <para>
Major changes in this release: Major changes in this release:
</para>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term> <term>
Write-ahead Log (WAL) Write-ahead Log (WAL)
</term> </term>
<listitem> <listitem>
<para> <para>
To maintain database consistency in case of an operating system crash, To maintain database consistency in case of an operating system crash,
previous releases of <productname>PostgreSQL</productname> have forced previous releases of <productname>PostgreSQL</productname> have forced
all data modifications to disk before each transaction commit. With all data modifications to disk before each transaction commit. With
WAL, only one log file must be flushed to disk, greatly improving WAL, only one log file must be flushed to disk, greatly improving
performance. If you have been using -F in previous releases to performance. If you have been using -F in previous releases to
disable disk flushes, you may want to consider discontinuing its use. disable disk flushes, you may want to consider discontinuing its use.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
TOAST TOAST
</term> </term>
<listitem> <listitem>
<para> <para>
TOAST - Previous releases had a compiled-in row length limit, TOAST - Previous releases had a compiled-in row length limit,
typically 8k - 32k. This limit made storage of long text fields typically 8k - 32k. This limit made storage of long text fields
difficult. With TOAST, long rows of any length can be stored with good difficult. With TOAST, long rows of any length can be stored with good
performance. performance.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Outer Joins Outer Joins
</term> </term>
<listitem> <listitem>
<para> <para>
We now support outer joins. The UNION/NOT IN We now support outer joins. The UNION/NOT IN
workaround for outer joins is no longer required. We use the SQL92 workaround for outer joins is no longer required. We use the SQL92
outer join syntax. outer join syntax.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Function Manager Function Manager
</term> </term>
<listitem> <listitem>
<para> <para>
The previous C function manager did not The previous C function manager did not
handle null values properly, nor did it support 64-bit <acronym>CPU</acronym>'s (Alpha). The new handle null values properly, nor did it support 64-bit <acronym>CPU</acronym>'s (Alpha). The new
function manager does. You can continue using your old custom function manager does. You can continue using your old custom
functions, but you may want to rewrite them in the future to use the new functions, but you may want to rewrite them in the future to use the new
function manager call interface. function manager call interface.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Complex Queries Complex Queries
</term> </term>
<listitem> <listitem>
<para> <para>
A large number of complex queries that were A large number of complex queries that were
unsupported in previous releases now work. Many combinations of views, unsupported in previous releases now work. Many combinations of views,
aggregates, UNION, LIMIT, cursors, subqueries, and inherited tables aggregates, UNION, LIMIT, cursors, subqueries, and inherited tables
now work properly. Inherited tables are now accessed by default. now work properly. Inherited tables are now accessed by default.
Subqueries in FROM are now supported. Subqueries in FROM are now supported.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</para> </para>
<sect2> <sect2>
<title>Migration to version 7.1</title> <title>Migration to version 7.1</title>
...@@ -9533,62 +9573,63 @@ ecpg changes (Michael) ...@@ -9533,62 +9573,63 @@ ecpg changes (Michael)
<para> <para>
Major changes in this release: Major changes in this release:
</para>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term> <term>
Foreign Keys Foreign Keys
</term> </term>
<listitem> <listitem>
<para> <para>
Foreign keys are now implemented, with the exception of PARTIAL MATCH Foreign keys are now implemented, with the exception of PARTIAL MATCH
foreign keys. Many users have been asking for this feature, and we are foreign keys. Many users have been asking for this feature, and we are
pleased to offer it. pleased to offer it.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Optimizer Overhaul Optimizer Overhaul
</term> </term>
<listitem> <listitem>
<para> <para>
Continuing on work started a year ago, the optimizer has been Continuing on work started a year ago, the optimizer has been
improved, allowing better query plan selection and faster performance improved, allowing better query plan selection and faster performance
with less memory usage. with less memory usage.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Updated <application>psql</application> Updated <application>psql</application>
</term> </term>
<listitem> <listitem>
<para> <para>
<application>psql</application>, our interactive terminal monitor, has been <application>psql</application>, our interactive terminal monitor, has been
updated with a variety of new features. See the <application>psql</application> manual page for details. updated with a variety of new features. See the <application>psql</application> manual page for details.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
Join Syntax Join Syntax
</term> </term>
<listitem> <listitem>
<para> <para>
SQL92 join syntax is now supported, though only as SQL92 join syntax is now supported, though only as
<literal>INNER JOIN</> for this release. <literal>JOIN</>, <literal>INNER JOIN</> for this release. <literal>JOIN</>,
<literal>NATURAL JOIN</>, <literal>JOIN</>/<literal>USING</>, <literal>NATURAL JOIN</>, <literal>JOIN</>/<literal>USING</>,
and <literal>JOIN</>/<literal>ON</> are available, as are and <literal>JOIN</>/<literal>ON</> are available, as are
column correlation names. column correlation names.
</para> </para>
</listitem> </listitem>
</varlistentry>
</variablelist> </varlistentry>
</para> </variablelist>
<sect2> <sect2>
<title>Migration to version 7.0</title> <title>Migration to version 7.0</title>
...@@ -9606,54 +9647,53 @@ ecpg changes (Michael) ...@@ -9606,54 +9647,53 @@ ecpg changes (Michael)
<para> <para>
Interface and compatibility issues to consider for the new Interface and compatibility issues to consider for the new
release include: release include:
</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
The date/time types <type>datetime</type> and The date/time types <type>datetime</type> and
<type>timespan</type> have been superseded by the <type>timespan</type> have been superseded by the
SQL92-defined types <type>timestamp</type> and SQL92-defined types <type>timestamp</type> and
<type>interval</type>. Although there has been some effort to <type>interval</type>. Although there has been some effort to
ease the transition by allowing ease the transition by allowing
<productname>PostgreSQL</productname> to recognize <productname>PostgreSQL</productname> to recognize
the deprecated type names and translate them to the new type the deprecated type names and translate them to the new type
names, this mechanism may not be completely transparent to names, this mechanism may not be completely transparent to
your existing application. your existing application.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The optimizer has been substantially improved in the area of
query cost estimation. In some cases, this will result in
decreased query times as the optimizer makes a better choice
for the preferred plan. However, in a small number of cases,
usually involving pathological distributions of data, your
query times may go up. If you are dealing with large amounts
of data, you may want to check your queries to verify
performance.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
The <acronym>JDBC</acronym> and <acronym>ODBC</acronym> The optimizer has been substantially improved in the area of
interfaces have been upgraded and extended. query cost estimation. In some cases, this will result in
</para> decreased query times as the optimizer makes a better choice
</listitem> for the preferred plan. However, in a small number of cases,
usually involving pathological distributions of data, your
query times may go up. If you are dealing with large amounts
of data, you may want to check your queries to verify
performance.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
The string function <function>CHAR_LENGTH</function> is now a The <acronym>JDBC</acronym> and <acronym>ODBC</acronym>
native function. Previous versions translated this into a call interfaces have been upgraded and extended.
to <function>LENGTH</function>, which could result in </para>
ambiguity with other types implementing </listitem>
<function>LENGTH</function> such as the geometric types.
</para>
</listitem>
</itemizedlist>
</para>
<listitem>
<para>
The string function <function>CHAR_LENGTH</function> is now a
native function. Previous versions translated this into a call
to <function>LENGTH</function>, which could result in
ambiguity with other types implementing
<function>LENGTH</function> such as the geometric types.
</para>
</listitem>
</itemizedlist>
</sect2> </sect2>
<sect2> <sect2>
......
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