2
2
Release Notes
3
3
4
4
Release 7.4
5
- _________________________________________________________________
6
-
5
+
7
6
Overview
8
7
9
8
Major changes in this release:
10
9
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
+
11
23
IPv6
12
24
Full support for IPv6 connections and IPv6 address data types
13
25
19
31
and other free space management improvements.
20
32
21
33
Standards Compliance
22
- Implement information schema Support for read-only transactions
34
+ Implement information schema
35
+
36
+ Support for read-only transactions
23
37
24
38
Make cursors comply more closely with the SQL standard
25
39
28
42
error codes, status information, a binary protocol, error
29
43
reporting verbosity, and cleaner startup packets.
30
44
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
-
44
45
Holdable Cursors
45
46
Allow cursors to exist outside transactions
46
47
67
68
in client applications and languages.
68
69
* Error message wording has changed substantially in this release,
69
70
and error codes have been added.
70
- * ANSI joins may behave differently because they are now better
71
- optimized
71
+ * ANSI inner joins may behave differently because they are now
72
+ better optimized
72
73
* A number of server variables have been renamed for clarity
73
74
* MOVE/FETCH 0 now does nothing; return value of MOVE/FETCH 1/0
74
75
varies based on the current offset in the cursor
@@ -144,11 +145,12 @@ Performance
144
145
* Assume WHERE a.x = b.y and b.y = 42 also means a.x = 42 (Tom)
145
146
* Allow hash/merge joins on complex joins (Tom)
146
147
* Allow hash joins for more data types (Tom)
147
- * Allow join optimization of ANSI joins, disable with
148
+ * Allow join optimization of ANSI inner joins, disable with
148
149
join_collapse_limit (Tom)
149
150
* Add from_collapse_limit to control conversion of subqueries to
150
151
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)
152
154
* Use bit-mapped relation sets in the optimizer (Tom)
153
155
* Improve backend startup time (Tom)
154
156
* Improve trigger/constraint performance (Stephan)
@@ -157,6 +159,8 @@ Performance
157
159
* Improve hash index concurrency and speed (Tom)
158
160
* Align shared buffers on 32-byte boundary for copy speed
159
161
improvement (Manfred Spraul)
162
+ * The NUMERIC datatype has been reimplemented for better performance
163
+ (Tom)
160
164
_________________________________________________________________
161
165
162
166
Server Configuration
@@ -182,11 +186,11 @@ Server Configuration
182
186
* New is_superuser read-only variable (Tom)
183
187
* New server-side parameter log_error_verbosity to control error
184
188
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 )
187
191
* Make default shared_buffers 1000 and max_connections 100, if
188
192
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,
190
194
max_val (Joe)
191
195
* New pg_hba.conf 'hostnossl' to prevent SSL connections (Jon
192
196
Jensen)
@@ -237,10 +241,10 @@ Object Manipulation
237
241
238
242
Utility Commands
239
243
240
- * Add ON COMMIT PRESERVE ROWS for temp tables (Gavin)
244
+ * Add ON COMMIT clause to CREATE TABLE for temp tables (Gavin)
241
245
* Allow cursors outside transactions using WITH HOLD (Neil)
242
246
* Make MOVE/FETCH 0 actually move/fetch 0 (Bruce)
243
- * Cause FETCH 1 to return the current cursor row, or zero if at
247
+ * Cause FETCH 1 to return the next cursor row number , or zero if at
244
248
beginning/end of cursor, per SQL spec (Bruce)
245
249
* Have MOVE return 0 or 1 depending on cursor position (Bruce)
246
250
* Properly handle SCROLL with cursors, or report an error (Neil)
@@ -277,7 +281,8 @@ Utility Commands
277
281
* Improve VACUUM performance on indexes by reducing WAL traffic
278
282
(Tom)
279
283
* 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)
281
286
* Syntax errors now reported as 'syntax error' rather than 'parse
282
287
error' (Tom)
283
288
* Have SHOW TRANSACTION_ISOLATION match input to SET
@@ -289,6 +294,7 @@ Utility Commands
289
294
indexes (Tom)
290
295
* pg_dump --use-set-session-authorization and --no-reconnect now do
291
296
nothing, all dumps use SET SESSION AUTHORIZATION
297
+ * Long options for pg_dump are now available on all platforms
292
298
_________________________________________________________________
293
299
294
300
Data Types and Functions
@@ -331,16 +337,14 @@ Data Types and Functions
331
337
* Allow the creation of special LIKE indexes for non-C locales
332
338
(Peter)
333
339
* 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)
336
341
* Make FLOAT(p) measure the precision p in bits, not decimal digits
337
342
(Tom)
338
343
* Add IPv6 support to the inet and cidr data types (Michael Graff)
339
344
* Add family() function to report whether address is IPv4 or IPv6
340
345
(Michael Graff)
341
346
* Have SHOW DATESTYLE generate output similar to that used by SET
342
347
DATESTYLE (Tom)
343
- * Change DATESTYLE to output its value in a more common format (Tom)
344
348
* Make EXTRACT(TIMEZONE) and SET/SHOW TIMEZONE follow the SQL
345
349
convention for the sign of timezone offsets, ie, positive is east
346
350
from UTC (Tom)
387
391
* Add "\pset pager always" to always use pager (Greg)
388
392
* Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)
389
393
* 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)
391
396
* \encoding now changes based on client_encoding server variable
392
397
(Tom)
393
398
* Save edit history into readline history (Ross)
396
401
* New '\set AUTOCOMMIT off' capability (Tom)
397
402
* New '\set VERBOSITY' to control error detail (Tom)
398
403
* New %T prompt string to show transaction status (Tom)
404
+ * Long options for psql are now available on all platforms
399
405
_________________________________________________________________
400
406
401
407
Libpq
@@ -448,7 +454,7 @@ Source Code
448
454
files (Tom)
449
455
* Improved PPC locking primitive (Reinhard Max)
450
456
* Embed LD_LIBRARY_PATH used for build process into binaries (Billy)
451
- * New palloc0 to allocate and clear memory (Bruce)
457
+ * New palloc0 function to allocate and clear memory (Bruce)
452
458
* Fix locking code for s390x CPU (64-bit) (Tom)
453
459
* Allow OpenBSD to use local ident credentials (William Ahern)
454
460
* Make query plan trees read-only to executor (Tom)
@@ -457,15 +463,16 @@ Source Code
457
463
Karl Waclawek)
458
464
* Use our own version of getopt_long() if needed (Peter)
459
465
* 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
461
468
* Merge documentation into one book (Peter)
462
469
* Add Win32 compatibility functions (Bruce)
463
470
* Allow client interfaces to compile under MinGW/Win32 (Bruce)
464
471
* New ereport() function for error reporting (Tom)
465
472
* Support Intel Linux compiler (Peter)
466
473
* Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil)
467
474
* Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce)
468
- * Remove configure --enable-recode
475
+ * Remove --enable-recode option to configure
469
476
* Generate a compile error if spinlock code is not found (Bruce)
470
477
_________________________________________________________________
471
478
@@ -500,60 +507,11 @@ Contrib
500
507
501
508
Other Uncategorized
502
509
503
- * EXTRACT(TIMEZONE) and "SET/SHOW TIMEZONE " now follow SQL sign
504
- convention (positive = east of UTC)
505
510
* "DATESTYLE" can now be set to DMY, YMD, or MDY to specify input
506
511
field order
507
512
* Input date order must now be YYYY-MM-DD (with 4-digit year) or
508
513
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
519
514
* 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.
557
515
_________________________________________________________________
558
516
559
517
Release 7.3.4
0 commit comments