Commit d807bbe8 authored by Bruce Momjian's avatar Bruce Momjian

Fix markup for new release footnotes.

parent 60b198a7
...@@ -8,27 +8,28 @@ ...@@ -8,27 +8,28 @@
Major changes in this release: Major changes in this release:
Performance Performance
IN/NOT IN subqueries are now much more efficient IN/NOT IN subqueries are now much more efficient [1]
Improved GROUP BY processing by using hash buckets Improved GROUP BY processing by using hash buckets [2]
New multi-key hash join capability New multi-key hash join capability [3]
ANSI joins are now better optimized ANSI joins are now better optimized [4]
Faster and more powerful regular expression code Faster and more powerful regular expression code [5]
Function-inlining for simple SQL functions Function-inlining for simple SQL functions [6]
IPv6 IPv6
Full support for IPv6 connections and IPv6 address data types Full support for IPv6 connections and IPv6 address data types
[7]
SSL SSL
Major improvements in SSL performance and reliability Major improvements in SSL performance and reliability [8]
Index Growth Prevention Index Growth Prevention
Allow free space map to efficiently reuse empty index pages, Allow free space map to efficiently reuse empty index pages,
and other free space management improvements. and other free space management improvements. [9]
Standards Compliance Standards Compliance
Implement information schema Implement information schema
...@@ -47,14 +48,15 @@ ...@@ -47,14 +48,15 @@
Threads Threads
libpq and ecpg are now fully thread-safe with libpq and ecpg are now fully thread-safe with
--enable-thread-safety --enable-thread-safety [10]
Contrib Contrib
New version of full text indexing (tsearch2) New version of full text indexing (tsearch2)
New autovacuum tool New autovacuum tool [11]
Array handling has been improved and moved into the main server Array handling has been improved and moved into the main server
[12]
_________________________________________________________________ _________________________________________________________________
Migration to version 7.4 Migration to version 7.4
...@@ -65,30 +67,33 @@ ...@@ -65,30 +67,33 @@
Observe the following incompatibilities: Observe the following incompatibilities:
* The server-side autocommit setting was removed and reimplemented * The server-side autocommit setting was removed and reimplemented
in client applications and languages. in client applications and languages. [13]
* Error message wording has changed substantially in this release, * Error message wording has changed substantially in this release,
and error codes have been added. and error codes have been added.
* ANSI inner joins may behave differently because they are now * ANSI inner joins may behave differently because they are now
better optimized better optimized
* A number of server variables have been renamed for clarity * A number of server variables have been renamed for clarity,
* MOVE/FETCH 0 now does nothing; return value of MOVE/FETCH 1/0 primarily those related to logging
varies based on the current offset in the cursor * MOVE/FETCH 0 now does nothing [14]
* COPY now can process carriage-return/line-feed and carriage-return * MOVE/FETCH now returns the actual number of rows moved/fetched, or
terminated files. Literal carriage-returns and line-feeds are no zero if at the beginning/end of the cursor [15]
longer accepted as data values; use \r and \n instead. * COPY now can process carriage-return and carriage-return/line-feed
end-of-line terminated files.
* Literal carriage-returns and line-feeds are no longer accepted as
data values; use \r and \n instead.
* Trailing spaces are now trimmed when converting from CHAR(n) to * Trailing spaces are now trimmed when converting from CHAR(n) to
VARCHAR(n) / TEXT VARCHAR(n) / TEXT
* FLOAT(p) now measures 'p' in bits, not digits * FLOAT(p) now measures 'p' in bits, not digits
* Ambiguous date values now must match the ordering specified by * Ambiguous date values now must match the ordering specified by
DateStyle DateStyle [16]
* The oidrand(), oidsrand(), and userfntest() functions have been * The oidrand(), oidsrand(), and userfntest() functions have been
removed. removed. [17]
* 'now' will no longer work as a column default; now() or * 'now' will no longer work as a column default; now() or
CURRENT_TIMESTAMP should be used instead CURRENT_TIMESTAMP should be used instead [18]
* 'today' will no longer work as a column default; CURRENT_DATE * 'today' will no longer work as a column default; CURRENT_DATE
should be used instead should be used instead [19]
* Dollar sign ($) is no longer allowed in operator names * Dollar sign ($) is no longer allowed in operator names
* Dollar sign ($) can be a non-first character in identifiers * Dollar sign ($) can be a non-first character in identifiers [20]
_________________________________________________________________ _________________________________________________________________
Changes Changes
...@@ -97,19 +102,20 @@ Server Operation ...@@ -97,19 +102,20 @@ Server Operation
* Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce, * Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce,
Tom, Kurt Roeckx, Andrew Dunstan) Tom, Kurt Roeckx, Andrew Dunstan)
* Fix SSL to handle errors cleanly (Nathan Mueller) * Fix SSL to handle errors cleanly (Nathan Mueller) [21]
* SSL protocol security and performance improvements (Sean * SSL protocol security and performance improvements (Sean
Chittenden) Chittenden) [22]
* Print lock information when a deadlock is detected (Tom) * Print lock information when a deadlock is detected (Tom) [23]
* Update "/tmp" socket mod. times regularly to avoid their removal * Update "/tmp" socket mod. times regularly to avoid their removal
(Tom) (Tom) [24]
* Enable PAM for MAC OS X (Aaron Hillegass) * Enable PAM for MAC OS X (Aaron Hillegass)
* Make btree indexes fully WAL-safe (Tom) * Make btree indexes fully WAL-safe (Tom) [25]
* Allow btree index compaction and empty page reuse (Tom) * Allow btree index compaction and empty page reuse (Tom)
* Fix inconsistent index lookups during split of first root page * Fix inconsistent index lookups during split of first root page
(Tom) (Tom) [26]
* Improve free space map allocation logic (Tom) * Improve free space map allocation logic (Tom)
* Preserve free space information between postmaster restarts (Tom) * Preserve free space information between postmaster restarts (Tom)
[27]
* Set proper schema permissions in initdb (Peter) * Set proper schema permissions in initdb (Peter)
* Add start time to pg_stat_activity (Neil) * Add start time to pg_stat_activity (Neil)
* New code to detect corrupt disk pages; erase with * New code to detect corrupt disk pages; erase with
...@@ -132,13 +138,13 @@ Performance ...@@ -132,13 +138,13 @@ Performance
* Allow multi-key hash joins (Tom) * Allow multi-key hash joins (Tom)
* Improve constant folding (Tom) * Improve constant folding (Tom)
* Add ability to inline simple SQL functions (Tom) * Add ability to inline simple SQL functions (Tom)
* Reduce memory usage for queries using complex functions (Tom) * Reduce memory usage for queries using complex functions (Tom) [28]
* Improve GEQO optimizer performance (Tom) * Improve GEQO optimizer performance (Tom) [29]
* Allow IN/NOT IN to be handled via hash tables (Tom) * Allow IN/NOT IN to be handled via hash tables (Tom)
* Improve NOT IN (subquery) performance (Tom) * Improve NOT IN (subquery) performance (Tom)
* Allow most IN subqueries to be processed as joins (Tom) * Allow most IN subqueries to be processed as joins (Tom)
* Allow the postmaster to preload libraries using preload_libraries * Allow the postmaster to preload libraries using preload_libraries
(Joe) (Joe) [30]
* Improve optimizer cost computations, particularly for subqueries * Improve optimizer cost computations, particularly for subqueries
(Tom) (Tom)
* Avoid sort when subquery ORDER BY matches upper query (Tom) * Avoid sort when subquery ORDER BY matches upper query (Tom)
...@@ -156,17 +162,17 @@ Performance ...@@ -156,17 +162,17 @@ Performance
* Improve trigger/constraint performance (Stephan) * Improve trigger/constraint performance (Stephan)
* Improve speed of col IN (const, const, const, ...) (Tom) * Improve speed of col IN (const, const, const, ...) (Tom)
* Fix hash indexes which were broken in rare cases (Tom) * Fix hash indexes which were broken in rare cases (Tom)
* Improve hash index concurrency and speed (Tom) * Improve hash index concurrency and speed (Tom) [31]
* Align shared buffers on 32-byte boundary for copy speed * Align shared buffers on 32-byte boundary for copy speed
improvement (Manfred Spraul) improvement (Manfred Spraul) [32]
* The NUMERIC datatype has been reimplemented for better performance * The NUMERIC datatype has been reimplemented for better performance
(Tom) (Tom) [33]
_________________________________________________________________ _________________________________________________________________
Server Configuration Server Configuration
* Rename server parameter server_min_messages to log_min_messages * Rename server parameter server_min_messages to log_min_messages
(Bruce) (Bruce) [34]
* Rename show_*_stats to log_*_stats (Bruce) * Rename show_*_stats to log_*_stats (Bruce)
* Rename show_source_port to log_source_port (Bruce) * Rename show_source_port to log_source_port (Bruce)
* Rename hostname_lookup to log_hostname (Bruce) * Rename hostname_lookup to log_hostname (Bruce)
...@@ -243,10 +249,9 @@ Utility Commands ...@@ -243,10 +249,9 @@ Utility Commands
* Add ON COMMIT clause to CREATE TABLE for temp tables (Gavin) * Add ON COMMIT clause to CREATE TABLE for temp tables (Gavin)
* Allow cursors outside transactions using WITH HOLD (Neil) * Allow cursors outside transactions using WITH HOLD (Neil)
* Make MOVE/FETCH 0 actually move/fetch 0 (Bruce) * MOVE/FETCH 0 now does nothing (Bruce)
* Cause FETCH 1 to return the next cursor row number, or zero if at * Cause MOVE/FETCH to return the number of rows moved/fetched, or
beginning/end of cursor, per SQL spec (Bruce) zero if at the beginning/end of cursor, per SQL spec (Bruce)
* Have MOVE return 0 or 1 depending on cursor position (Bruce)
* Properly handle SCROLL with cursors, or report an error (Neil) * Properly handle SCROLL with cursors, or report an error (Neil)
* Implement SQL92-compatible FIRST, LAST, ABSOLUTE n, RELATIVE n * Implement SQL92-compatible FIRST, LAST, ABSOLUTE n, RELATIVE n
options for FETCH and MOVE (Tom) options for FETCH and MOVE (Tom)
...@@ -4704,3 +4709,171 @@ The following bugs have been fixed in postgres95-beta-0.02: ...@@ -4704,3 +4709,171 @@ The following bugs have been fixed in postgres95-beta-0.02:
Release date: 1995-05-01 Release date: 1995-05-01
Initial release. Initial release.
Notes
[1]
In previous releases, IN/NOT IN subqueries were joined to the upper
query by sequentially scanning the subquery looking for a join. The
7.4 code uses the same sophisticated techniques used by ordinary joins
and so is much faster, and is now faster than EXISTS subqueries.
[2]
In previous releases, GROUP BY totals were accumulated by sequentially
scanning the list of groups looking for a match; the 7.4 code places
GROUP BY values in hash buckets so the proper match can be found much
quicker. This is particularly significant in speeding up queries that
have a large number of distinct GROUP BY values.
[3]
In previous releases, hash joins could only occur on single-column
joins. This release allows multi-column hash joins.
[4]
Prior releases evaluated ANSI join syntax only in the order specified
by the query; 7.4 allows full optimization of queries using ANSI join
syntax, meaning the optimizer considers all possible join orderings
and chooses the most efficient.
[5]
The entire regular expression module has been replaced with a new
version by Henry Spencer, originally written for TCL. The code greatly
improves performance and supports several flavors of regular
expressions.
[6]
Simple SQL functions can now be inlined by including their SQL in the
main query. This improves performance by preventing repeated calls to
the SQL function --- this allows simple SQL functions to behave like
macros.
[7]
Prior releases allowed only IPv6 connections and IP data types only
supported IPv4 addresses. This release adds full IPv6 support in both
of these areas.
[8]
Several people very familiar with the SSL API have overhauled our SSL
code to improve SSL key negotiation and error recovery.
[9]
In prior releases, index pages that were left empty because of deleted
rows could only be reused by rows with index values similar to the
original rows indexed on that page. In 7.4, VACUUM records empty index
pages and allows them to be used for any future index rows.
[10]
While prior libpq releases already supported threads, this release
improves thread safety by fixing some non-thread-safe code that was
used in the database connection routines.
[11]
This new tool monitors the database statistics tables for
INSERT/UPDATE/DELETE activity and automatically vacuums tables when
needed.
[12]
Many array limitations have been removed and they behave more like
fully-supported data types.
[13]
Server-side autocommit was causing too many problems with languages
and applications that wanted to control their own autocommit behavior
so autocommit was removed from the server and added to individual
client API's as appropriate.
[14]
In prior releases, FETCH 0 would fetch all remaining rows, and MOVE 0
would move to the end of the cursor.
[15]
Prior releases would return the tuple count passed to the command, not
the actual number of rows FETCHed or MOVEd.
[16]
In prior releases, a date of 10/20/03 was interpreted as a date in
October even if the DateStyle specified the day should be first. In
7.4, DateStyle is honored when converting such values and will throw
an error if the date is invalid for the current DateStyle.
[17]
These functions were determined to be no longer useful.
[18]
In prior releases, there was special code so the string 'now' was
interpreted at "INSERT" time and not at table creation time, but this
work around didn't cover all cases. Release 7.4 now requires that
defaults be defined properly using the now() or the special value
CURRENT_TIMESTAMP. These will work in all situations.
[19]
Same description as above.
[20]
This was done to improve compatibility with other database systems.
[21]
In prior releases, certain rare SSL API error reports were not handled
correctly. This release fixes those problems. gracefully.
[22]
SSL key renegotiation was happening too frequently, causing poor SSL
performance. Also, initial key handling was improved.
[23]
This allows easier debugging of deadlock situations.
[24]
This should help prevent "/tmp" directory cleaner administration
scripts from removing server socket files.
[25]
In prior releases, under certain rare cases, a server crash could
cause btree indexes to become corrupt. This release removes those last
few rare cases.
[26]
In prior releases, when a single-page index split into two page, there
was a brief period when another database session would miss seeing an
index entry. This failure was possible primarly on multi-cpu machines.
This release fixes that rare failure case.
[27]
In prior releases, the free space map was not saved when the
postmaster was stopped, so newly started servers has no free space
information. This release saves the free space map, which is loaded
when the server is restarted.
[28]
In prior releases, functions returning allocated memory would not free
it until the query completed. This release allows the freeing of
function-allocated memory when the function call completes, reducing
the total memory used by functions.
[29]
There were several inefficiencies in the way the GEQO optimizer
managed potential query paths. This release fixes this.
[30]
For shared libraries that require a long time to load, this option is
available so the library can be pre-loaded in the postmaster and
inherited by all database sessions.
[31]
Prior releases suffered from poor hash index performance, particularly
for high concurrency situations. This release fixes that, and the
development group is interested in reports comparing btree and hash
index performance.
[32]
Certain CPU's perform faster data copies when addresses are 32-bit
aligned.
[33]
NUMERIC used to be stored in base-100. The new code uses base-10000,
for significantly better performance.
[34]
This was done so most parameters that control the server logs being
with log_.
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.221 2003/10/29 23:28:59 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.222 2003/10/30 03:46:42 momjian Exp $
--> -->
<appendix id="release"> <appendix id="release">
...@@ -456,13 +456,14 @@ required for those wishing to migrate data from any previous release.</para> ...@@ -456,13 +456,14 @@ required for those wishing to migrate data from any previous release.</para>
<sect3><title>Server Configuration</title> <sect3><title>Server Configuration</title>
<itemizedlist> <itemizedlist>
<listitem><para>Rename server parameter server_min_messages to log_min_messages (Bruce)</para></listitem> <listitem><para>Rename server parameter server_min_messages to log_min_messages (Bruce)
<footnote> <footnote>
<para> <para>
This was done so most parameters that control the server logs being This was done so most parameters that control the server logs being
with <literal>log_>/>. with <literal>log_</>.
</para> </para>
</footnote> </footnote>
</para></listitem>
<listitem><para>Rename show_*_stats to log_*_stats (Bruce)</para></listitem> <listitem><para>Rename show_*_stats to log_*_stats (Bruce)</para></listitem>
<listitem><para>Rename show_source_port to log_source_port (Bruce)</para></listitem> <listitem><para>Rename show_source_port to log_source_port (Bruce)</para></listitem>
<listitem><para>Rename hostname_lookup to log_hostname (Bruce)</para></listitem> <listitem><para>Rename hostname_lookup to log_hostname (Bruce)</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