From b13602c6d0d44500675ff1da98d0156e1ea40165 Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Sat, 17 Nov 2007 21:13:42 +0000 Subject: [PATCH] Wordsmith improvements to first half of release notes, move TEXT cast item to #1 imcompatibility slot. --- doc/src/sgml/release.sgml | 265 +++++++++++++++++++------------------- 1 file changed, 132 insertions(+), 133 deletions(-) diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index d2ad858a90b..3a97e651271 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,4 +1,4 @@ -<!-- $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</> — 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</> — 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</> — 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> -- GitLab