summaryrefslogtreecommitdiff
path: root/HISTORY
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2003-10-30 03:46:42 +0000
committerBruce Momjian <bruce@momjian.us>2003-10-30 03:46:42 +0000
commitd807bbe8377172e607ea636ce4ff77be6f4dba26 (patch)
treeb41d97ee33bdcdc901a23d906fb557030b0589d2 /HISTORY
parent60b198a768247cfe2484ec18039a1ffba204c51e (diff)
downloadpostgresql-d807bbe8377172e607ea636ce4ff77be6f4dba26.tar.gz
Fix markup for new release footnotes.
Diffstat (limited to 'HISTORY')
-rw-r--r--HISTORY251
1 files changed, 212 insertions, 39 deletions
diff --git a/HISTORY b/HISTORY
index 04daa724a1..8b37cb596b 100644
--- a/HISTORY
+++ b/HISTORY
@@ -8,27 +8,28 @@
Major changes in this release:
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
Full support for IPv6 connections and IPv6 address data types
+ [7]
SSL
- Major improvements in SSL performance and reliability
+ Major improvements in SSL performance and reliability [8]
Index Growth Prevention
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
Implement information schema
@@ -47,14 +48,15 @@
Threads
libpq and ecpg are now fully thread-safe with
- --enable-thread-safety
+ --enable-thread-safety [10]
Contrib
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
+ [12]
_________________________________________________________________
Migration to version 7.4
@@ -65,30 +67,33 @@
Observe the following incompatibilities:
* 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,
and error codes have been added.
* ANSI inner joins may behave differently because they are now
better optimized
- * A number of server variables have been renamed for clarity
- * MOVE/FETCH 0 now does nothing; return value of MOVE/FETCH 1/0
- varies based on the current offset in the cursor
- * COPY now can process carriage-return/line-feed and carriage-return
- terminated files. Literal carriage-returns and line-feeds are no
- longer accepted as data values; use \r and \n instead.
+ * A number of server variables have been renamed for clarity,
+ primarily those related to logging
+ * MOVE/FETCH 0 now does nothing [14]
+ * MOVE/FETCH now returns the actual number of rows moved/fetched, or
+ zero if at the beginning/end of the cursor [15]
+ * 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
VARCHAR(n) / TEXT
* FLOAT(p) now measures 'p' in bits, not digits
* Ambiguous date values now must match the ordering specified by
- DateStyle
+ DateStyle [16]
* The oidrand(), oidsrand(), and userfntest() functions have been
- removed.
+ removed. [17]
* '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
- should be used instead
+ should be used instead [19]
* 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
@@ -97,19 +102,20 @@ Server Operation
* Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce,
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
- Chittenden)
- * Print lock information when a deadlock is detected (Tom)
+ Chittenden) [22]
+ * Print lock information when a deadlock is detected (Tom) [23]
* Update "/tmp" socket mod. times regularly to avoid their removal
- (Tom)
+ (Tom) [24]
* 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)
* Fix inconsistent index lookups during split of first root page
- (Tom)
+ (Tom) [26]
* Improve free space map allocation logic (Tom)
* Preserve free space information between postmaster restarts (Tom)
+ [27]
* Set proper schema permissions in initdb (Peter)
* Add start time to pg_stat_activity (Neil)
* New code to detect corrupt disk pages; erase with
@@ -132,13 +138,13 @@ Performance
* Allow multi-key hash joins (Tom)
* Improve constant folding (Tom)
* Add ability to inline simple SQL functions (Tom)
- * Reduce memory usage for queries using complex functions (Tom)
- * Improve GEQO optimizer performance (Tom)
+ * Reduce memory usage for queries using complex functions (Tom) [28]
+ * Improve GEQO optimizer performance (Tom) [29]
* Allow IN/NOT IN to be handled via hash tables (Tom)
* Improve NOT IN (subquery) performance (Tom)
* Allow most IN subqueries to be processed as joins (Tom)
* Allow the postmaster to preload libraries using preload_libraries
- (Joe)
+ (Joe) [30]
* Improve optimizer cost computations, particularly for subqueries
(Tom)
* Avoid sort when subquery ORDER BY matches upper query (Tom)
@@ -156,17 +162,17 @@ Performance
* Improve trigger/constraint performance (Stephan)
* Improve speed of col IN (const, const, const, ...) (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
- improvement (Manfred Spraul)
+ improvement (Manfred Spraul) [32]
* The NUMERIC datatype has been reimplemented for better performance
- (Tom)
+ (Tom) [33]
_________________________________________________________________
Server Configuration
* Rename server parameter server_min_messages to log_min_messages
- (Bruce)
+ (Bruce) [34]
* Rename show_*_stats to log_*_stats (Bruce)
* Rename show_source_port to log_source_port (Bruce)
* Rename hostname_lookup to log_hostname (Bruce)
@@ -243,10 +249,9 @@ Utility Commands
* Add ON COMMIT clause to CREATE TABLE for temp tables (Gavin)
* Allow cursors outside transactions using WITH HOLD (Neil)
- * Make MOVE/FETCH 0 actually move/fetch 0 (Bruce)
- * Cause FETCH 1 to return the next cursor row number, or zero if at
- beginning/end of cursor, per SQL spec (Bruce)
- * Have MOVE return 0 or 1 depending on cursor position (Bruce)
+ * MOVE/FETCH 0 now does nothing (Bruce)
+ * Cause MOVE/FETCH to return the number of rows moved/fetched, or
+ zero if at the beginning/end of cursor, per SQL spec (Bruce)
* Properly handle SCROLL with cursors, or report an error (Neil)
* Implement SQL92-compatible FIRST, LAST, ABSOLUTE n, RELATIVE n
options for FETCH and MOVE (Tom)
@@ -4704,3 +4709,171 @@ The following bugs have been fixed in postgres95-beta-0.02:
Release date: 1995-05-01
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_.