22 Release Notes
33
44 Release 7.4
5- _________________________________________________________________
6-
5+
76 Overview
87
98 Major changes in this release:
109
10+ Performance
11+ IN/NOT IN subqueries are now much more efficient
12+
13+ Improved GROUP BY processing by using hash buckets
14+
15+ New multi-key hash join capability
16+
17+ ANSI joins are now better optimized
18+
19+ Faster and more powerful regular expression code
20+
21+ Function-inlining for simple SQL functions
22+
1123 IPv6
1224 Full support for IPv6 connections and IPv6 address data types
1325
1931 and other free space management improvements.
2032
2133 Standards Compliance
22- Implement information schema Support for read-only transactions
34+ Implement information schema
35+
36+ Support for read-only transactions
2337
2438 Make cursors comply more closely with the SQL standard
2539
2842 error codes, status information, a binary protocol, error
2943 reporting verbosity, and cleaner startup packets.
3044
31- Performance
32- IN/NOT IN subqueries now perform as efficiently as joins
33-
34- Improved GROUP BY processing by using hash buckets
35-
36- New multi-key hash join capability
37-
38- ANSI joins are now better optimized
39-
40- Faster and more powerful regular expression code
41-
42- Function-inlining for simple SQL functions
43-
4445 Holdable Cursors
4546 Allow cursors to exist outside transactions
4647
6768 in client applications and languages.
6869 * Error message wording has changed substantially in this release,
6970 and error codes have been added.
70- * ANSI joins may behave differently because they are now better
71- optimized
71+ * ANSIinner joins may behave differently because they are now
72+ better optimized
7273 * A number of server variables have been renamed for clarity
7374 * MOVE/FETCH 0 now does nothing; return value of MOVE/FETCH 1/0
7475 varies based on the current offset in the cursor
@@ -144,11 +145,12 @@ Performance
144145 * Assume WHERE a.x = b.y and b.y = 42 also means a.x = 42 (Tom)
145146 * Allow hash/merge joins on complex joins (Tom)
146147 * Allow hash joins for more data types (Tom)
147- * Allow join optimization of ANSI joins, disable with
148+ * Allow join optimization of ANSIinner joins, disable with
148149 join_collapse_limit (Tom)
149150 * Add from_collapse_limit to control conversion of subqueries to
150151 joins (Tom)
151- * Use faster regular expression code from TCL (Henry Spencer, Tom)
152+ * Use faster and more powerful regular expression code from TCL
153+ (Henry Spencer, Tom)
152154 * Use bit-mapped relation sets in the optimizer (Tom)
153155 * Improve backend startup time (Tom)
154156 * Improve trigger/constraint performance (Stephan)
@@ -157,6 +159,8 @@ Performance
157159 * Improve hash index concurrency and speed (Tom)
158160 * Align shared buffers on 32-byte boundary for copy speed
159161 improvement (Manfred Spraul)
162+ * The NUMERIC datatype has been reimplemented for better performance
163+ (Tom)
160164 _________________________________________________________________
161165
162166Server Configuration
@@ -182,11 +186,11 @@ Server Configuration
182186 * New is_superuser read-only variable (Tom)
183187 * New server-side parameter log_error_verbosity to control error
184188 detail (Tom)
185- * postgres --help -config now dumps server config variables (Aizaz
186- Ahmed)
189+ * postgres --describe -config now dumps server config variables
190+ (Aizaz Ahmed, Peter )
187191 * Make default shared_buffers 1000 and max_connections 100, if
188192 possible (Tom)
189- * Add new columns in pg_settings: context, type, source , min_val,
193+ * Add new columns in pg_settings: context, type, source, min_val,
190194 max_val (Joe)
191195 * New pg_hba.conf 'hostnossl' to prevent SSL connections (Jon
192196 Jensen)
@@ -237,10 +241,10 @@ Object Manipulation
237241
238242Utility Commands
239243
240- * Add ON COMMITPRESERVE ROWS for temp tables (Gavin)
244+ * Add ON COMMITclause to CREATE TABLE for temp tables (Gavin)
241245 * Allow cursors outside transactions using WITH HOLD (Neil)
242246 * Make MOVE/FETCH 0 actually move/fetch 0 (Bruce)
243- * Cause FETCH 1 to return thecurrent cursor row, or zero if at
247+ * Cause FETCH 1 to return thenext cursor row number , or zero if at
244248 beginning/end of cursor, per SQL spec (Bruce)
245249 * Have MOVE return 0 or 1 depending on cursor position (Bruce)
246250 * Properly handle SCROLL with cursors, or report an error (Neil)
@@ -277,7 +281,8 @@ Utility Commands
277281 * Improve VACUUM performance on indexes by reducing WAL traffic
278282 (Tom)
279283 * Allow pg_ctl to better handle non-standard ports (Greg)
280- * Functional indexes now support indexes on column expressions (Tom)
284+ * Functional indexes have been generalized into expressional indexes
285+ (Tom)
281286 * Syntax errors now reported as 'syntax error' rather than 'parse
282287 error' (Tom)
283288 * Have SHOW TRANSACTION_ISOLATION match input to SET
@@ -289,6 +294,7 @@ Utility Commands
289294 indexes (Tom)
290295 * pg_dump --use-set-session-authorization and --no-reconnect now do
291296 nothing, all dumps use SET SESSION AUTHORIZATION
297+ * Long options for pg_dump are now available on all platforms
292298 _________________________________________________________________
293299
294300Data Types and Functions
@@ -331,16 +337,14 @@ Data Types and Functions
331337 * Allow the creation of special LIKE indexes for non-C locales
332338 (Peter)
333339 * Disallow invalid timezone names (Tom)
334- * Trim trailing spaces when CHAR() data is cast to VARCHAR or TEXT
335- (Tom)
340+ * Trim trailing spaces when CHAR() is cast to VARCHAR or TEXT (Tom)
336341 * Make FLOAT(p) measure the precision p in bits, not decimal digits
337342 (Tom)
338343 * Add IPv6 support to the inet and cidr data types (Michael Graff)
339344 * Add family() function to report whether address is IPv4 or IPv6
340345 (Michael Graff)
341346 * Have SHOW DATESTYLE generate output similar to that used by SET
342347 DATESTYLE (Tom)
343- * Change DATESTYLE to output its value in a more common format (Tom)
344348 * Make EXTRACT(TIMEZONE) and SET/SHOW TIMEZONE follow the SQL
345349 convention for the sign of timezone offsets, ie, positive is east
346350 from UTC (Tom)
387391 * Add "\pset pager always" to always use pager (Greg)
388392 * Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)
389393 * Reorder \? help into groupings (Harald Armin Massa, Bruce)
390- * Add schema, cast, and conversion backslash commands (Christopher)
394+ * Add backslash commands for listing schemas, casts, and conversions
395+ (Christopher)
391396 * \encoding now changes based on client_encoding server variable
392397 (Tom)
393398 * Save edit history into readline history (Ross)
396401 * New '\set AUTOCOMMIT off' capability (Tom)
397402 * New '\set VERBOSITY' to control error detail (Tom)
398403 * New %T prompt string to show transaction status (Tom)
404+ * Long options for psql are now available on all platforms
399405 _________________________________________________________________
400406
401407Libpq
@@ -448,7 +454,7 @@ Source Code
448454 files (Tom)
449455 * Improved PPC locking primitive (Reinhard Max)
450456 * Embed LD_LIBRARY_PATH used for build process into binaries (Billy)
451- * New palloc0 to allocate and clear memory (Bruce)
457+ * New palloc0function to allocate and clear memory (Bruce)
452458 * Fix locking code for s390x CPU (64-bit) (Tom)
453459 * Allow OpenBSD to use local ident credentials (William Ahern)
454460 * Make query plan trees read-only to executor (Tom)
@@ -457,15 +463,16 @@ Source Code
457463 Karl Waclawek)
458464 * Use our own version of getopt_long() if needed (Peter)
459465 * Convert administration scripts to C (Peter)
460- * Bison >=1.85 is now required for grammar changes
466+ * Bison >= 1.85 is now required to build the PostgreSQL grammar, if
467+ building from CVS
461468 * Merge documentation into one book (Peter)
462469 * Add Win32 compatibility functions (Bruce)
463470 * Allow client interfaces to compile under MinGW/Win32 (Bruce)
464471 * New ereport() function for error reporting (Tom)
465472 * Support Intel Linux compiler (Peter)
466473 * Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil)
467474 * Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce)
468- * Removeconfigure --enable-recode
475+ * Remove --enable-recode option to configure
469476 * Generate a compile error if spinlock code is not found (Bruce)
470477 _________________________________________________________________
471478
@@ -500,60 +507,11 @@ Contrib
500507
501508Other Uncategorized
502509
503- * EXTRACT(TIMEZONE) and "SET/SHOW TIMEZONE " now follow SQL sign
504- convention (positive = east of UTC)
505510 * "DATESTYLE" can now be set to DMY, YMD, or MDY to specify input
506511 field order
507512 * Input date order must now be YYYY-MM-DD (with 4-digit year) or
508513 match DATESTYLE
509- * Output of "SHOW DATESTYLE" is now in the same format accepted by
510- "SET DATESTYLE"
511- * PL/Python is now an untrusted language, and is renamed to
512- plpythonu
513- * Dollar sign ($) is no longer allowed in operator names
514- * Dollar sign ($) can be a non-first character in identifiers
515- * Precision in FLOAT(p) is now interpreted as bits, not decimal
516- digits
517- * Functional indexes have been generalized into expressional indexes
518- * CHAR(n) to TEXT conversion automatically strips trailing blanks
519514 * Pattern matching operations can use indexes regardless of locale
520- * New frontend/backend protocol supports many long-requested
521- features
522- * "SET AUTOCOMMIT TO OFF" is no longer supported; psql has an
523- AUTOCOMMIT variable
524- * Reimplementation of NUMERIC datatype for more speed
525- * New regular expression package, many more regexp features (most of
526- Perl5)
527- * Can now do " EXPLAIN" ... "EXECUTE" to see plan used for a
528- prepared query
529- * Explicit "JOIN"s no longer constrain query plan, unless
530- "JOIN_COLLAPSE_LIMIT = 1"
531- * Performance of "foo IN (SELECT ...)" queries has been considerably
532- improved
533- * "FETCH 0" now re-fetches cursor's current row, per SQL spec
534- * Revised executor state representation; plan trees are read-only to
535- executor now
536- * Information schema
537- * Domains now support "CHECK" constraints
538- * psql backslash commands for listing conversions, casts, and
539- schemas
540- * "TRUNCATE TABLE" is transaction-safe
541- * "CLUSTER" can re-cluster a previously clustered table, or all such
542- tables
543- * Statement-level triggers
544- * System can use either hash- or sort-based strategy for grouped
545- aggregation
546- * "ON COMMIT" options for temp tables
547- * extra_float_digits option allows pg_dump to dump float data
548- accurately
549- * Long options for psql and pg_dump are now available on all
550- platforms
551- * Read-only transactions
552- * Object owners can allow grantees to grant the privilege to others
553- (grant option)
554- * Added "contrib" module for pg_autovacuum which monitors inserts
555- and deletes, and does "ANALYZE" or " VACUUM ANALYZE " when
556- quantities exceed specified thresholds.
557515 _________________________________________________________________
558516
559517 Release 7.3.4