Commit b13602c6 authored by Bruce Momjian's avatar Bruce Momjian

Wordsmith improvements to first half of release notes, move TEXT cast

item to #1 imcompatibility slot.
parent fbab5052
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.543 2007/11/17 15:17:16 momjian Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.544 2007/11/17 21:13:42 momjian Exp $ -->
<!--
Typical markup:
......@@ -160,13 +160,13 @@ do it for earlier branch release files.
<listitem>
<para>
Asynchronous commit delays writes to WAL for committed transactions
Asynchronous commit delays writes to WAL during transaction commit
</para>
</listitem>
<listitem>
<para>
Distributed checkpoints prevent I/O spikes during checkpoints
Distributed checkpoints prevent checkpoint I/O spikes
</para>
</listitem>
......@@ -192,8 +192,8 @@ do it for earlier branch release files.
<listitem>
<para>
Prevent large sequential scans from forcing out more frequently
used cached pages
Prevent large sequential scans from forcing out more frequently used
cached pages
</para>
</listitem>
......@@ -212,7 +212,7 @@ do it for earlier branch release files.
<listitem>
<para>
Reduce need for vacuum by using pseudo-transaction ids in
Reduce need for vacuum by using non-persistent transaction ids for
read-only transactions
</para>
</listitem>
......@@ -236,18 +236,6 @@ do it for earlier branch release files.
<itemizedlist>
<listitem>
<para>
<filename>contrib/tsearch2</> features have been moved into
the core server, with some minor syntax changes
</para>
<para>
<filename>contrib/tsearch2</> now contains a compatibility
interface.
</para>
</listitem>
<listitem>
<para>
Non-character values are no longer automatically cast to
......@@ -256,18 +244,10 @@ do it for earlier branch release files.
<para>
Previously, a function or operator that took a <type>TEXT</>
parameter used to automatically cast a non-<type>TEXT</> value to
<type>TEXT</> and call the function or operator, if needed. This
no longer happens and an explicit cast to <type>TEXT</> is now
required. For example, these expressions now throw an error:
<programlisting>
substr(current_date, 1, 1);
23 LIKE '%2%'
5.4 ~ '6';
</programlisting>
but these work because of the explicit casts:
parameter automatically cast a non-<type>TEXT</> value to
<type>TEXT</>, if needed. This no longer happens and an explicit
cast to <type>TEXT</> is now required. For example, these
expressions now require a cast to TEXT:
<programlisting>
substr(current_date::text, 1, 1);
......@@ -287,6 +267,18 @@ substr(current_date::text, 1, 1);
</para>
</listitem>
<listitem>
<para>
Full text search features from <filename>contrib/tsearch2</> have
been moved into the core server, with some minor syntax changes
</para>
<para>
<filename>contrib/tsearch2</> now contains a compatibility
interface.
</para>
</listitem>
<listitem>
<para>
Numerous changes in administrative server parameters
......@@ -333,7 +325,7 @@ substr(current_date::text, 1, 1);
<para>
<literal>ORDER BY ... USING</> <replaceable>operator</> now must
use a less-than or greater-than <replaceable>operator</> that is
defined in a btree operator class (???)
defined in a btree operator class
</para>
<para>
......@@ -351,19 +343,19 @@ substr(current_date::text, 1, 1);
The old naming convention is still honored when possible, but
client code should no longer depending on it. Application code
should use the new <literal>pg_type.typarray</literal> column to
determine the array data type.
determine the array's data type.
</para>
</listitem>
<listitem>
<para>
<command>SET LOCAL</command> changes now persist until
the end of the top-most transaction, unless rolled back (Tom)
the end of the outer-most transaction, unless rolled back (Tom)
</para>
<para>
Previously <command>SET LOCAL</command>'s effects reverted
during subtransaction commit and <command>RELEASE</>.
Previously <command>SET LOCAL</command>'s effects were lost
after subtransaction commit or <command>RELEASE</>.
</para>
</listitem>
......@@ -374,7 +366,7 @@ substr(current_date::text, 1, 1);
</para>
<para>
For example, <literal>BEGIN; DROP DATABASE; COMMIT</> will now be
For example, <literal>"BEGIN; DROP DATABASE; COMMIT"</> will now be
rejected even if submitted as a single query message.
</para>
</listitem>
......@@ -399,11 +391,11 @@ substr(current_date::text, 1, 1);
</para>
<para>
In UTF8-encoded databases the argument is now processed as a Unicode
code point. In other multi-byte encodings the argument must designate
a 7-bit ASCII character, or an error is raised. Zero also causes an
error. <function>ascii()</function> has been adjusted as well to
match this behavior.
In UTF8-encoded databases the <function>chr()</function> argument is
now processed as a Unicode code point. In other multi-byte encodings
<function>chr()</function>'s argument must designate a 7-bit ASCII
character. Zero is no longer a valid parameter.
<function>ascii()</function> has been adjusted similarly.
</para>
</listitem>
......@@ -425,7 +417,7 @@ substr(current_date::text, 1, 1);
<para>
<function>convert_from(bytea, name)</function> returns
<type>TEXT</> &mdash; converts the first argument from the named
encoding to the database encoding.
encoding to the database encoding
</para>
</listitem>
......@@ -433,7 +425,7 @@ substr(current_date::text, 1, 1);
<para>
<function>convert_to(text, name)</function> returns
<type>BYTEA</> &mdash; converts the first argument from the
database encoding to the named encoding.
database encoding to the named encoding
</para>
</listitem>
......@@ -441,7 +433,7 @@ substr(current_date::text, 1, 1);
<para>
<function>length(bytea, name)</function> returns
<type>INTEGER</> &mdash; gives the length of the first
argument in characters in the named encoding.
argument in characters in the named encoding
</para>
</listitem>
</itemizedlist>
......@@ -496,8 +488,7 @@ substr(current_date::text, 1, 1);
<listitem>
<para>
<command>ROLLBACK</> outside a multi-statement transaction now
issues a <literal>NOTICE</> instead of <literal>WARNING</> (Bruce)
(Tom)
issues <literal>NOTICE</> instead of <literal>WARNING</> (Bruce)
</para>
</listitem>
......@@ -508,10 +499,10 @@ substr(current_date::text, 1, 1);
</para>
<para>
The new <function>SET_VARSIZE()</> macro <emphasis>must</> be
used to set the length of generated values. Also, it might be
necessary to expand (<quote>de-TOAST</quote>) input values in
additional places.
The new <function>SET_VARSIZE()</> macro <emphasis>must</> be used
to set the length of generated <type>varlena</> values. Also, it
might be necessary to expand (<quote>de-TOAST</quote>) input values
in more cases.
</para>
</listitem>
......@@ -533,36 +524,36 @@ substr(current_date::text, 1, 1);
<listitem>
<para>
Asynchronous commit delays writes to WAL for committed transactions
Asynchronous commit delays writes to WAL during transaction commit
(Simon)
</para>
<para>
This feature dramatically increases performance for data-modifying
queries. The disadvantage is that because on-disk changes are
queries. The disadvantage is that because disk writes are
delayed, if the operating system crashes before data is written to
the disk, committed data will be lost. This is useful only for
the disk, committed data will be lost. This feature is useful for
applications that can accept some data loss. Unlike
<varname>fsync</varname>, asynchronous commit does not risk database
corruption; the worst case is that after an operating system crash
the last few reportedly-committed transactions will be missing.
This feature is enabled turning <varname>synchronous_commit</>
consistency; the worst case is that after an operating system crash
the last few reportedly-committed transactions might be missing.
This feature is enabled by turning <varname>synchronous_commit</>
<literal>off</> and setting <varname>wal_writer_delay</>.
</para>
</listitem>
<listitem>
<para>
Distributed checkpoints prevent I/O spikes during
checkpoints (Itagaki Takahiro and Heikki Linnakangas)
Distributed checkpoints prevent checkpoint I/O spikes (Itagaki
Takahiro and Heikki Linnakangas)
</para>
<para>
Previously all modified buffers were forced to disk at
checkpoint time, causing an I/O spike and decreasing server
performance. This new capability spreads checkpoint activity out
between checkpoints, reducing peak I/O usage. (User-requested
and shutdown checkpoints are still immediately written to disk.)
Previously all modified buffers were forced to disk during
checkpoints, causing an I/O spike and decreasing server performance.
This new capability spreads disk writes out between checkpoints,
reducing peak I/O usage. (User-requested and shutdown checkpoints
are still written immediately to disk.)
</para>
</listitem>
......@@ -573,14 +564,14 @@ substr(current_date::text, 1, 1);
</para>
<para>
To allow high concurrency <command>UPDATE</> creates a new tuple,
rather than replacing the old tuple. Previously only
To allow high concurrency <command>UPDATE</>, creates a new tuple
rather than overwriting the old tuple. Previously only
<command>VACUUM</> could reuse space taken by old tuples. With
<acronym>HOT</> dead tuple space can be reused at the time of
<command>UPDATE</> or <command>INSERT</>. This allows for more
consistent performance. <acronym>HOT</> even allows deleted row
space reuse. <acronym>HOT</> space reuse is not possible if
<command>UPDATE</> changes indexed columns.
space reuse. <acronym>HOT</> space reuse is not possible for
<command>UPDATE</>s that change indexed columns.
</para>
</listitem>
......@@ -602,24 +593,24 @@ substr(current_date::text, 1, 1);
<para>
Variable-length data types with data values less then 128 bytes
will see a decrease of 3-6 bytes. For example, two
<type>CHAR(1)</type> fields now take 4 bytes instead of 16. Rows
will see a storage decrease of 3-6 bytes. For example, two
<type>CHAR(1)</type> fields now use 4 bytes instead of 16. Rows
are also 4 bytes shorter.
</para>
</listitem>
<listitem>
<para>
Reduce need for vacuum by using pseudo-transaction ids in
Reduce need for vacuum by using non-persistent transaction ids for
read-only transactions (Florian Pflug)
</para>
<para>
Pseudo-transaction ids do not increment the global transaction
counter. Therefore, they do not add to the need for vacuum to
read all database rows to prevent problems with transaction id
wrap-around. Other transaction performance improvements were also
made that should improve concurrency.
Non-persistent transaction ids do not increment the global
transaction counter. Therefore, they do not add to the need for
vacuum to read all database rows to prevent problems with
transaction id wrap-around. Other transaction performance
improvements were also made that should improve concurrency.
</para>
</listitem>
......@@ -637,10 +628,12 @@ substr(current_date::text, 1, 1);
</para>
<para>
Unless WAL archiving is enabled, it is possible to just
<function>fsync()</> the table at the end of the command,
increasing performance. Additional WAL efficiencies were also
made.
Unless WAL archiving is enabled, the system now avoids WAL writes
for <command>CLUSTER</command> and just <function>fsync()</>s the
table at the end of the command. It also does the same for
<command>COPY</command> if the table was created in the same
transaction. Additional WAL efficiencies for these commands were
also made.
</para>
</listitem>
......@@ -659,9 +652,9 @@ substr(current_date::text, 1, 1);
<para>
This is accomplished by starting the new sequential scan in the
middle of the table (where the other sequential scan is already
middle of the table (where another sequential scan is already
in-progress) and wrapping around to the beginning to finish. This
may affect the order of returned rows in a non-<literal>ORDER BY</>
can affect the order of returned rows in a non-<literal>ORDER BY</>
query.
</para>
</listitem>
......@@ -675,7 +668,7 @@ substr(current_date::text, 1, 1);
<para>
This is done by sequentially scanning the table and using a filter
to save the few requested rows, rather than sorting the entire
table. This is used if there is no matching index.
table. This is useful if there is no matching index.
</para>
</listitem>
......@@ -699,6 +692,12 @@ substr(current_date::text, 1, 1);
<title>Server Changes</title>
<itemizedlist>
<listitem>
<para>
Autovacuum is now enabled by default (Alvaro)
</para>
</listitem>
<listitem>
<para>
Support multiple concurrent autovacuum processes (Alvaro, Itagaki
......@@ -706,21 +705,15 @@ substr(current_date::text, 1, 1);
</para>
<para>
This allows multiple vacuums to run concurrently, meaning
vacuuming of a large table will not prevent smaller tables from
being vacuumed at the same time. Autovacuum is now considered
mature and thus enabled by default. Several autovacuum
default parameter values were also updated.
This allows multiple vacuums to run concurrently. This prevents
vacuuming of a large table from delaying the vacumming of smaller
tables. Several autovacuum parameter defaults were also modified.
</para>
</listitem>
<listitem>
<para>
Autovacuum is now enabled by default (Alvaro)
</para>
<para>
Also, autovacuum now reports its activity start time in
Autovacuum now reports its activity start time in
<literal>pg_stat_activity</literal> (Tom)
</para>
</listitem>
......@@ -752,8 +745,8 @@ substr(current_date::text, 1, 1);
</para>
<para>
This should be used in place of the native Kerberos authentication
because it is an industry standard.
This should be preferred to native Kerberos authentication because
GSSAPI is an industry standard.
</para>
</listitem>
......@@ -783,14 +776,14 @@ substr(current_date::text, 1, 1);
</para>
<para>
JOHAB cannot safely be used as a server-side encoding.
JOHAB is not safe as a server-side encoding.
</para>
</listitem>
<listitem>
<para>
Allow logfile creation in CSV format (Arul Shaji, Greg Smith,
Andrew Dunstan)
Allow server log output in comma-separated value (CSV) format (Arul
Shaji, Greg Smith, Andrew Dunstan)
</para>
<para>
......@@ -801,21 +794,21 @@ substr(current_date::text, 1, 1);
<listitem>
<para>
Add <varname>log_autovacuum_min_duration</varname> parameter to
support configurable logging of autovacuum actions (Simon, Alvaro)
support configurable logging of autovacuum activity (Simon, Alvaro)
</para>
</listitem>
<listitem>
<para>
Add <varname>log_lock_waits</varname> parameter to log long wait
times (Simon)
Add <varname>log_lock_waits</varname> parameter to log lock waiting
(Simon)
</para>
</listitem>
<listitem>
<para>
Add <varname>log_temp_files</varname> parameter to log usage of
temporary files (Bill Moran)
Add <varname>log_temp_files</varname> parameter to log temporary
file usage (Bill Moran)
</para>
</listitem>
......@@ -828,16 +821,21 @@ substr(current_date::text, 1, 1);
<listitem>
<para>
<varname>log_line_prefix</varname> escapes <literal>%s</literal>
and <literal>%c</literal> can now be used in all processes
(Andrew)
<varname>log_line_prefix</varname> now supports
<literal>%s</literal> and <literal>%c</literal> escapes in all
processes (Andrew)
</para>
<para>
Previously these escapes worked only for user sessions, not for
database helper processes.
</para>
</listitem>
<listitem>
<para>
Use our own timezone support for formatting timestamps displayed in
the server log (Tom)
Use PostgreSQL-supplied timezone support for formatting timestamps
displayed in the server log (Tom)
</para>
<para>
......@@ -868,10 +866,10 @@ substr(current_date::text, 1, 1);
</para>
<para>
Previously setting <varname>archive_command</> to an empty
string turned off archiving. Now <varname>archive_mode</> turns
archiving on and off. This is useful for stopping archiving
temporarily.
Previously setting <varname>archive_command</> to an empty string
turned off archiving. Now <varname>archive_mode</> turns archiving
on and off, independent of <varname>archive_command</>. This is
useful for stopping archiving temporarily.
</para>
</listitem>
......@@ -892,8 +890,8 @@ substr(current_date::text, 1, 1);
<listitem>
<para>
Add <varname>log_restartpoints</varname> archive recovery option
to emit a log message at each recovery restart point (Simon)
Add <varname>log_restartpoints</varname> to control logging of
every point-in-time recovery restart point (Simon)
</para>
</listitem>
......@@ -912,19 +910,19 @@ substr(current_date::text, 1, 1);
</para>
<para>
This parameters allows a list of tablespaces to be specified
which enables spreading the I/O load across multiple
tablespaces. A random tablespace is chosen each time a temporary
object is created. Temporary files are not stored in
per-database <filename>pgsql_tmp/</filename> directories anymore
but in per-tablespace directories.
This parameters supports a list of tablespaces to be used. This
enables spreading the I/O load across multiple tablespaces. A random
tablespace is chosen each time a temporary object is created.
Temporary files are no longer stored in per-database
<filename>pgsql_tmp/</filename> directories but in per-tablespace
directories.
</para>
</listitem>
<listitem>
<para>
New system view <literal>pg_stat_bgwriter</literal> displays
statistics about the background writer activity (Magnus)
statistics about background writer activity (Magnus)
</para>
</listitem>
......@@ -937,7 +935,7 @@ substr(current_date::text, 1, 1);
<listitem>
<para>
Add an <literal>xact_start</literal> column to
Add an <literal>xact_start</literal> (transaction start time) column to
<literal>pg_stat_activity</literal> (Neil)
</para>
......@@ -960,8 +958,8 @@ substr(current_date::text, 1, 1);
</para>
<para>
We now always start the collector process, unless prevented by a
problem with setting up the stats UDP socket.
We now always start the collector process, unless <acronym>UDP</>
socket creation fails.
</para>
</listitem>
......@@ -979,8 +977,9 @@ substr(current_date::text, 1, 1);
<listitem>
<para>
Merge <varname>stats_block_level</> and <varname>stats_row_level</>
parameters into a single parameter <varname>track_counts</>,
which controls all messages sent to the collector process (Tom)
parameters into a single parameter <varname>track_counts</>, which
controls all messages sent to the statistics collector process
(Tom)
</para>
</listitem>
......@@ -999,7 +998,7 @@ substr(current_date::text, 1, 1);
<para>
Previously, dropping (or attempting to drop) a user who owned many
objects could result in extremely large <literal>NOTICE</literal> or
objects could result in large <literal>NOTICE</literal> or
<literal>ERROR</literal> messages listing all these objects; this
caused problems for some client applications. The length of the
list is now limited, although a full list is still sent to the
......@@ -1014,11 +1013,11 @@ substr(current_date::text, 1, 1);
</para>
<para>
This allows low-level code to recognize that these tables are
temporary, which enables various optimizations such as not
WAL-logging changes and using local rather than shared buffers
for access. This also fixes a bug where backends unexpectedly
held open file references to temporary tables.
This allows low-level code to recognize these tables as temporary,
which enables various optimizations such as not WAL-logging changes
and using local rather than shared buffers for access. This also
fixes a bug where backends unexpectedly held open file references
to temporary tables.
</para>
</listitem>
......@@ -1026,7 +1025,7 @@ substr(current_date::text, 1, 1);
<para>
Fix problem that a constant flow of new connection requests could
indefinitely delay the postmaster from completing a shutdown or
crash restart (Tom)
a crash restart (Tom)
</para>
</listitem>
......@@ -1039,7 +1038,7 @@ substr(current_date::text, 1, 1);
<listitem>
<para>
Add Kerberos realm specification, <varname>krb_realm</> (Magnus)
Add a Kerberos realm parameter, <varname>krb_realm</> (Magnus)
</para>
</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