diff --git a/HISTORY b/HISTORY index c676783d83..04daa724a1 100644 --- a/HISTORY +++ b/HISTORY @@ -2,12 +2,24 @@ Release Notes Release 7.4 - _________________________________________________________________ - + Overview Major changes in this release: + Performance + IN/NOT IN subqueries are now much more efficient + + Improved GROUP BY processing by using hash buckets + + New multi-key hash join capability + + ANSI joins are now better optimized + + Faster and more powerful regular expression code + + Function-inlining for simple SQL functions + IPv6 Full support for IPv6 connections and IPv6 address data types @@ -19,7 +31,9 @@ and other free space management improvements. Standards Compliance - Implement information schema Support for read-only transactions + Implement information schema + + Support for read-only transactions Make cursors comply more closely with the SQL standard @@ -28,19 +42,6 @@ error codes, status information, a binary protocol, error reporting verbosity, and cleaner startup packets. - Performance - IN/NOT IN subqueries now perform as efficiently as joins - - Improved GROUP BY processing by using hash buckets - - New multi-key hash join capability - - ANSI joins are now better optimized - - Faster and more powerful regular expression code - - Function-inlining for simple SQL functions - Holdable Cursors Allow cursors to exist outside transactions @@ -67,8 +68,8 @@ in client applications and languages. * Error message wording has changed substantially in this release, and error codes have been added. - * ANSI joins may behave differently because they are now better - optimized + * 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 @@ -144,11 +145,12 @@ Performance * Assume WHERE a.x = b.y and b.y = 42 also means a.x = 42 (Tom) * Allow hash/merge joins on complex joins (Tom) * Allow hash joins for more data types (Tom) - * Allow join optimization of ANSI joins, disable with + * Allow join optimization of ANSI inner joins, disable with join_collapse_limit (Tom) * Add from_collapse_limit to control conversion of subqueries to joins (Tom) - * Use faster regular expression code from TCL (Henry Spencer, Tom) + * Use faster and more powerful regular expression code from TCL + (Henry Spencer, Tom) * Use bit-mapped relation sets in the optimizer (Tom) * Improve backend startup time (Tom) * Improve trigger/constraint performance (Stephan) @@ -157,6 +159,8 @@ Performance * Improve hash index concurrency and speed (Tom) * Align shared buffers on 32-byte boundary for copy speed improvement (Manfred Spraul) + * The NUMERIC datatype has been reimplemented for better performance + (Tom) _________________________________________________________________ Server Configuration @@ -182,11 +186,11 @@ Server Configuration * New is_superuser read-only variable (Tom) * New server-side parameter log_error_verbosity to control error detail (Tom) - * postgres --help-config now dumps server config variables (Aizaz - Ahmed) + * postgres --describe-config now dumps server config variables + (Aizaz Ahmed, Peter) * Make default shared_buffers 1000 and max_connections 100, if possible (Tom) - * Add new columns in pg_settings: context, type, source , min_val, + * Add new columns in pg_settings: context, type, source, min_val, max_val (Joe) * New pg_hba.conf 'hostnossl' to prevent SSL connections (Jon Jensen) @@ -237,10 +241,10 @@ Object Manipulation Utility Commands - * Add ON COMMIT PRESERVE ROWS for temp tables (Gavin) + * 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 current cursor row, or zero if at + * 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) * Properly handle SCROLL with cursors, or report an error (Neil) @@ -277,7 +281,8 @@ Utility Commands * Improve VACUUM performance on indexes by reducing WAL traffic (Tom) * Allow pg_ctl to better handle non-standard ports (Greg) - * Functional indexes now support indexes on column expressions (Tom) + * Functional indexes have been generalized into expressional indexes + (Tom) * Syntax errors now reported as 'syntax error' rather than 'parse error' (Tom) * Have SHOW TRANSACTION_ISOLATION match input to SET @@ -289,6 +294,7 @@ Utility Commands indexes (Tom) * pg_dump --use-set-session-authorization and --no-reconnect now do nothing, all dumps use SET SESSION AUTHORIZATION + * Long options for pg_dump are now available on all platforms _________________________________________________________________ Data Types and Functions @@ -331,8 +337,7 @@ Data Types and Functions * Allow the creation of special LIKE indexes for non-C locales (Peter) * Disallow invalid timezone names (Tom) - * Trim trailing spaces when CHAR() data is cast to VARCHAR or TEXT - (Tom) + * Trim trailing spaces when CHAR() is cast to VARCHAR or TEXT (Tom) * Make FLOAT(p) measure the precision p in bits, not decimal digits (Tom) * Add IPv6 support to the inet and cidr data types (Michael Graff) @@ -340,7 +345,6 @@ Data Types and Functions (Michael Graff) * Have SHOW DATESTYLE generate output similar to that used by SET DATESTYLE (Tom) - * Change DATESTYLE to output its value in a more common format (Tom) * Make EXTRACT(TIMEZONE) and SET/SHOW TIMEZONE follow the SQL convention for the sign of timezone offsets, ie, positive is east from UTC (Tom) @@ -387,7 +391,8 @@ Psql * Add "\pset pager always" to always use pager (Greg) * Improve tab completion (Rod, Ross Reedstrom, Ian Barwick) * Reorder \? help into groupings (Harald Armin Massa, Bruce) - * Add schema, cast, and conversion backslash commands (Christopher) + * Add backslash commands for listing schemas, casts, and conversions + (Christopher) * \encoding now changes based on client_encoding server variable (Tom) * Save edit history into readline history (Ross) @@ -396,6 +401,7 @@ Psql * New '\set AUTOCOMMIT off' capability (Tom) * New '\set VERBOSITY' to control error detail (Tom) * New %T prompt string to show transaction status (Tom) + * Long options for psql are now available on all platforms _________________________________________________________________ Libpq @@ -448,7 +454,7 @@ Source Code files (Tom) * Improved PPC locking primitive (Reinhard Max) * Embed LD_LIBRARY_PATH used for build process into binaries (Billy) - * New palloc0 to allocate and clear memory (Bruce) + * New palloc0 function to allocate and clear memory (Bruce) * Fix locking code for s390x CPU (64-bit) (Tom) * Allow OpenBSD to use local ident credentials (William Ahern) * Make query plan trees read-only to executor (Tom) @@ -457,7 +463,8 @@ Source Code Karl Waclawek) * Use our own version of getopt_long() if needed (Peter) * Convert administration scripts to C (Peter) - * Bison >=1.85 is now required for grammar changes + * Bison >= 1.85 is now required to build the PostgreSQL grammar, if + building from CVS * Merge documentation into one book (Peter) * Add Win32 compatibility functions (Bruce) * Allow client interfaces to compile under MinGW/Win32 (Bruce) @@ -465,7 +472,7 @@ Source Code * Support Intel Linux compiler (Peter) * Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil) * Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce) - * Remove configure --enable-recode + * Remove --enable-recode option to configure * Generate a compile error if spinlock code is not found (Bruce) _________________________________________________________________ @@ -500,60 +507,11 @@ Contrib Other Uncategorized - * EXTRACT(TIMEZONE) and "SET/SHOW TIMEZONE " now follow SQL sign - convention (positive = east of UTC) * "DATESTYLE" can now be set to DMY, YMD, or MDY to specify input field order * Input date order must now be YYYY-MM-DD (with 4-digit year) or match DATESTYLE - * Output of "SHOW DATESTYLE" is now in the same format accepted by - "SET DATESTYLE" - * PL/Python is now an untrusted language, and is renamed to - plpythonu - * Dollar sign ($) is no longer allowed in operator names - * Dollar sign ($) can be a non-first character in identifiers - * Precision in FLOAT(p) is now interpreted as bits, not decimal - digits - * Functional indexes have been generalized into expressional indexes - * CHAR(n) to TEXT conversion automatically strips trailing blanks * Pattern matching operations can use indexes regardless of locale - * New frontend/backend protocol supports many long-requested - features - * "SET AUTOCOMMIT TO OFF" is no longer supported; psql has an - AUTOCOMMIT variable - * Reimplementation of NUMERIC datatype for more speed - * New regular expression package, many more regexp features (most of - Perl5) - * Can now do " EXPLAIN" ... "EXECUTE" to see plan used for a - prepared query - * Explicit "JOIN"s no longer constrain query plan, unless - "JOIN_COLLAPSE_LIMIT = 1" - * Performance of "foo IN (SELECT ...)" queries has been considerably - improved - * "FETCH 0" now re-fetches cursor's current row, per SQL spec - * Revised executor state representation; plan trees are read-only to - executor now - * Information schema - * Domains now support "CHECK" constraints - * psql backslash commands for listing conversions, casts, and - schemas - * "TRUNCATE TABLE" is transaction-safe - * "CLUSTER" can re-cluster a previously clustered table, or all such - tables - * Statement-level triggers - * System can use either hash- or sort-based strategy for grouped - aggregation - * "ON COMMIT" options for temp tables - * extra_float_digits option allows pg_dump to dump float data - accurately - * Long options for psql and pg_dump are now available on all - platforms - * Read-only transactions - * Object owners can allow grantees to grant the privilege to others - (grant option) - * Added "contrib" module for pg_autovacuum which monitors inserts - and deletes, and does "ANALYZE" or " VACUUM ANALYZE " when - quantities exceed specified thresholds. _________________________________________________________________ Release 7.3.4 diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index a787134e65..05ad380bdd 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,5 +1,5 @@ @@ -8,28 +8,26 @@ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.215 2003/10/22 05:09:12 mo Release 7.4 - - - Overview Major changes in this release: + Performance + + IN/NOT IN subqueries are now much more efficient + + + Improved GROUP BY processing by using hash buckets + + New multi-key hash join capability + + ANSI joins are now better optimized + + Faster and more powerful regular expression code + + Function-inlining for simple SQL functions + + IPv6 Full support for IPv6 connections and IPv6 address @@ -50,8 +48,9 @@ pages, and other free space management improvements. Standards Compliance - Implement information schema Support for read-only -transactions +Implement information schema + +Support for read-only transactions Make cursors comply more closely with the SQL standard @@ -65,22 +64,6 @@ Protocol and adds error codes, status information, a binary protocol, error reporting verbosity, and cleaner startup packets. - - Performance - - IN/NOT IN subqueries now perform as efficiently as -joins - - Improved GROUP BY processing by using hash buckets - - New multi-key hash join capability - - ANSI joins are now better optimized - - Faster and more powerful regular expression code - - Function-inlining for simple SQL functions - Holdable Cursors @@ -116,7 +99,7 @@ required for those wishing to migrate data from any previous release. in client applications and languages. Error message wording has changed substantially in this release, and error codes have been added. - ANSI joins may behave differently because they are now better optimized + 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 @@ -156,7 +139,7 @@ required for those wishing to migrate data from any previous release. Preserve free space information between postmaster restarts (Tom) Set proper schema permissions in initdb (Peter) Add start time to pg_stat_activity (Neil) -New code to detect corrupt disk pages; erase with zero_damaged_pages (Tom) +New code to detect corrupt disk pages; erase with zero_damaged_pages (Tom) New client/server protocol: faster, no username length limit, allow clean exit from COPY (Tom) Add transaction status, tableid, columnid to backend protocol (Tom) @@ -185,9 +168,9 @@ required for those wishing to migrate data from any previous release. Assume WHERE a.x = b.y and b.y = 42 also means a.x = 42 (Tom) Allow hash/merge joins on complex joins (Tom) Allow hash joins for more data types (Tom) -Allow join optimization of ANSI joins, disable with join_collapse_limit (Tom) +Allow join optimization of ANSI inner joins, disable with join_collapse_limit (Tom) Add from_collapse_limit to control conversion of subqueries to joins (Tom) -Use faster regular expression code from TCL (Henry Spencer, Tom) +Use faster and more powerful regular expression code from TCL (Henry Spencer, Tom) Use bit-mapped relation sets in the optimizer (Tom) Improve backend startup time (Tom) Improve trigger/constraint performance (Stephan) @@ -195,6 +178,7 @@ required for those wishing to migrate data from any previous release. Fix hash indexes which were broken in rare cases (Tom) Improve hash index concurrency and speed (Tom) Align shared buffers on 32-byte boundary for copy speed improvement (Manfred Spraul) +The NUMERIC datatype has been reimplemented for better performance (Tom) Server Configuration @@ -215,9 +199,9 @@ required for those wishing to migrate data from any previous release. Allow pg_hba.conf to accept netmasks in CIDR format (Andrew Dunstan) New is_superuser read-only variable (Tom) New server-side parameter log_error_verbosity to control error detail (Tom) -postgres --help-config now dumps server config variables (Aizaz Ahmed) +postgres --describe-config now dumps server config variables (Aizaz Ahmed, Peter) Make default shared_buffers 1000 and max_connections 100, if possible (Tom) -Add new columns in pg_settings: context, type, source , min_val, max_val (Joe) +Add new columns in pg_settings: context, type, source, min_val, max_val (Joe) New pg_hba.conf 'hostnossl' to prevent SSL connections (Jon Jensen) Remove geqo_random_seed server parameter (Tom) @@ -262,11 +246,11 @@ required for those wishing to migrate data from any previous release. Utility Commands -Add ON COMMIT PRESERVE ROWS for temp tables (Gavin) +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 current cursor row, or zero if at - beginning/end of cursor, per SQL spec (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) Properly handle SCROLL with cursors, or report an error (Neil) Implement SQL92-compatible FIRST, LAST, ABSOLUTE n, RELATIVE n options @@ -295,7 +279,7 @@ required for those wishing to migrate data from any previous release. CHECK constraints (Christopher) Improve VACUUM performance on indexes by reducing WAL traffic (Tom) Allow pg_ctl to better handle non-standard ports (Greg) -Functional indexes now support indexes on column expressions (Tom) +Functional indexes have been generalized into expressional indexes (Tom) Syntax errors now reported as 'syntax error' rather than 'parse error' (Tom) Have SHOW TRANSACTION_ISOLATION match input to SET TRANSACTION_ISOLATION (Tom) Have COMMENT ON DATABASE on non-local database generate a warning (Rod) @@ -303,6 +287,7 @@ required for those wishing to migrate data from any previous release. Allow REINDEX to reliably reindex non-shared system catalog indexes (Tom) pg_dump --use-set-session-authorization and --no-reconnect now do nothing, all dumps use SET SESSION AUTHORIZATION +Long options for pg_dump are now available on all platforms @@ -338,12 +323,11 @@ required for those wishing to migrate data from any previous release. Allow CIDR data type to be cast to text (Tom) Allow the creation of special LIKE indexes for non-C locales (Peter) Disallow invalid timezone names (Tom) -Trim trailing spaces when CHAR() data is cast to VARCHAR or TEXT (Tom) +Trim trailing spaces when CHAR() is cast to VARCHAR or TEXT (Tom) Make FLOAT(p) measure the precision p in bits, not decimal digits (Tom) Add IPv6 support to the inet and cidr data types (Michael Graff) Add family() function to report whether address is IPv4 or IPv6 (Michael Graff) Have SHOW DATESTYLE generate output similar to that used by SET DATESTYLE (Tom) -Change DATESTYLE to output its value in a more common format (Tom) Make EXTRACT(TIMEZONE) and SET/SHOW TIMEZONE follow the SQL convention for the sign of timezone offsets, ie, positive is east from UTC (Tom) Fix date_trunc('quarter',...) (B?jthe Zolt?n) @@ -383,7 +367,7 @@ required for those wishing to migrate data from any previous release. Add "\pset pager always" to always use pager (Greg) Improve tab completion (Rod, Ross Reedstrom, Ian Barwick) Reorder \? help into groupings (Harald Armin Massa, Bruce) -Add schema, cast, and conversion backslash commands (Christopher) +Add backslash commands for listing schemas, casts, and conversions (Christopher) \encoding now changes based on client_encoding server variable (Tom) Save edit history into readline history (Ross) Improve \d display (Christopher) @@ -391,6 +375,7 @@ required for those wishing to migrate data from any previous release. New '\set AUTOCOMMIT off' capability (Tom) New '\set VERBOSITY' to control error detail (Tom) New %T prompt string to show transaction status (Tom) +Long options for psql are now available on all platforms Libpq @@ -441,7 +426,7 @@ required for those wishing to migrate data from any previous release. Prevent need for separate platform geometry regression result files (Tom) Improved PPC locking primitive (Reinhard Max) Embed LD_LIBRARY_PATH used for build process into binaries (Billy) -New palloc0 to allocate and clear memory (Bruce) +New palloc0 function to allocate and clear memory (Bruce) Fix locking code for s390x CPU (64-bit) (Tom) Allow OpenBSD to use local ident credentials (William Ahern) Make query plan trees read-only to executor (Tom) @@ -449,7 +434,7 @@ required for those wishing to migrate data from any previous release. Allow libpq to compile with Borland C++ compiler (Lester Godwin, Karl Waclawek) Use our own version of getopt_long() if needed (Peter) Convert administration scripts to C (Peter) -Bison >=1.85 is now required for grammar changes +Bison >= 1.85 is now required to build the PostgreSQL grammar, if building from CVS Merge documentation into one book (Peter) Add Win32 compatibility functions (Bruce) Allow client interfaces to compile under MinGW/Win32 (Bruce) @@ -457,7 +442,7 @@ required for those wishing to migrate data from any previous release. Support Intel Linux compiler (Peter) Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil) Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce) -Remove configure --enable-recode +Remove --enable-recode option to configure Generate a compile error if spinlock code is not found (Bruce) @@ -490,61 +475,14 @@ required for those wishing to migrate data from any previous release. Other Uncategorized -EXTRACT(TIMEZONE) and SET/SHOW - TIMEZONE now follow SQL sign convention - (positive = east of UTC) DATESTYLE can now be set to DMY, YMD, or MDY to specify input field order Input date order must now be YYYY-MM-DD (with 4-digit year) or match DATESTYLE -Output of SHOW DATESTYLE is now in the same - format accepted by SET DATESTYLE -PL/Python is now an untrusted language, and is renamed - to plpythonu -Dollar sign ($) is no longer allowed in operator names -Dollar sign ($) can be a non-first character in identifiers -Precision in FLOAT(p) is now interpreted as bits, not decimal digits -Functional indexes have been generalized into expressional indexes -CHAR(n) to TEXT conversion automatically strips trailing blanks Pattern matching operations can use indexes regardless of locale -New frontend/backend protocol supports many long-requested features -SET AUTOCOMMIT TO OFF is no longer - supported; psql has an AUTOCOMMIT variable -Reimplementation of NUMERIC datatype for more speed -New regular expression package, many more regexp features (most of Perl5) -Can now do EXPLAIN ... EXECUTE to see plan used for a prepared query -Explicit JOINs no longer constrain query - plan, unless JOIN_COLLAPSE_LIMIT = 1 -Performance of foo IN (SELECT ...) queries has been considerably improved -FETCH 0 now re-fetches cursor's current row, per SQL spec -Revised executor state representation; plan trees are read-only to executor now -Information schema -Domains now support CHECK constraints -psql backslash commands for listing conversions, casts, and schemas -TRUNCATE TABLE is transaction-safe -CLUSTER can re-cluster a previously clustered table, or all such tables -Statement-level triggers -System can use either hash- or sort-based strategy for grouped aggregation -ON COMMIT options for temp tables -extra_float_digits option allows pg_dump to dump float data accurately -Long options for psql and - pg_dump are now available on all platforms -Read-only transactions -Object owners can allow grantees to grant the - privilege to others (grant option) - - Added contrib module for - pg_autovacuum which monitors inserts and -deletes, and does ANALYZE or VACUUM -ANALYZE when quantities exceed specified -thresholds. - - - - Release 7.3.4