@@ -56,108 +56,68 @@ Bug Fixes
56
56
---------
57
57
Prevent function calls with more than maximum number of arguments (Tom)
58
58
Many fixes for CASE (Tom)
59
- Many array fixes (Tom)
60
59
Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (Tom)
61
60
Fix SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
62
61
Allow utility statements in plpgsql (Tom)
63
62
Fix GROUP BY scan bug (Tom)
64
- Optimize btree searching for cases where many equal keys exist (Tom)
65
- Allow bare column names to be subscripted as arrays (Tom)
66
- Improvements in SQL grammar processing(Tom)
63
+ Improvements in SQL grammar processing (Tom)
67
64
Fix for views involved in INSERT ... SELECT ... (Tom)
68
65
Fix for SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2 (Tom)
69
66
Fix for subselects in INSERT ... SELECT (Tom)
70
67
Prevent INSERT ... SELECT ... ORDER BY (Tom)
71
- Improve type casting of int and float constants (Tom)
72
- Cleanups for int8 inputs, range checking, and type conversion (Tom)
73
- Fix for SELECT timespan('21:11:26'::time) (Tom)
74
68
Fixes for relations greater than 2GB, including vacuum
75
69
Improve communication of system table changes to other running backends (Tom)
76
70
Improve communication of user table modifications to other running backends (Tom)
77
71
Fix handling of temp tables in complex situations (Bruce, Tom)
78
72
Disallow DROP TABLE/DROP INDEX inside a transaction block
79
- Prevent exponential space consumption with many AND's and OR's (Tom)
80
- Collect attribute selectivity values for system columns (Tom)
81
73
Allow table locking when tables opened, improving concurrent reliability (Tom)
82
- Fix for netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0
83
- (Oleg Sharoiko)
84
74
Properly quote sequence names in pg_dump (Ross J. Reedstrom)
85
75
Prevent DESTROY DATABASE while others accessing
86
76
Prevent any rows from being returned by GROUP BY if no rows processed (Tom)
87
- Reduce memory usage of aggregates (Tom)
88
77
Fix SELECT COUNT(1) FROM table WHERE ...' if no rows matching WHERE (Tom)
89
78
Fix pg_upgrade so it works for MVCC(Tom)
90
- Add nbtree operator class for NUMERIC(Jan)
91
79
Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom)
92
80
Make TABLE optional keyword in LOCK TABLE (Bruce)
93
- Fix for "f1 datetime default 'now'" (Tom)
81
+ Fix for "f1 datetime DEFAULT 'now'" (Tom)
82
+ Fix problems with CURRENT_DATE used in DEFAULT (Tom)
94
83
Allow comment-only lines, and ;;; lines too. (Tom)
95
84
Improve recovery after failed disk writes, disk full (Hiroshi)
96
85
Fix cases where table is mentioned in FROM but not joined (Tom)
97
86
Allow HAVING clause without aggregate functions (Tom)
98
87
Fix for "--" comment and no trailing newline, as seen in Perl
99
88
Improve pg_dump failure error reports (Bruce)
100
- Perl fix for large objects containing NUL characters (Douglas Thomson)
101
89
Allow sorts and hashes to exceed 2GB file sizes (Tom)
102
- ODBC fix for for large objects (free)
103
90
Fix for pg_dump dumping of inherited rules (Tom)
104
91
Fix for NULL handling comparisons (Tom)
105
92
Fix inconsistent state caused by failed CREATE/DROP commands (Hiroshi)
106
93
Fix for dbname with dash
107
- Fix problems with CURRENT_DATE used in DEFAULT (Tom)
108
94
Prevent DROP INDEX from interfering with other backends (Tom)
109
95
Fix file descriptor leak in verify_password()
110
96
Fix for "Unable to identify an operator =$" problem
111
97
Fix ODBC so no segfault if CommLog and Debug enabled (Dirk Niggemann)
112
98
Fix for recursive exit call (Massimo)
113
- Fix indexing of cidr
114
99
Fix for extra-long timezones (Jeroen van Vianen)
115
100
Make pg_dump preserve primary key information (Peter E)
116
101
Prevent databases with single quotes (Peter E)
117
102
Prevent DROP DATABASE inside transaction (Peter E)
118
103
ecpg memory leak fixes (Stephen Birch)
119
- Fix for Ethernet MAC addresses (macaddr type) comparisons
120
104
Fix for SELECT null::text, SELECT int4fac(null) and SELECT 2 + (null) (Tom)
121
- Fix for LIKE optimization to use indexes with multi-byte encodings (Tom)
122
105
Y2K timestamp fix (Massimo)
123
- Fix for date/time types when overflows happened in computations (Tom)
124
106
Fix for VACUUM 'HEAP_MOVED_IN was not expected' errors (Tom)
125
107
Fix for views with tables/columns containing spaces (Tom)
126
- Allow array on int8 (Peter E)
127
108
Prevent permissions on indexes (Peter E)
128
- Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
129
109
Fix for spinlock stuck problem when error is generated (Hiroshi)
130
- Allow NUMERIC arrays
131
110
Fix ipcclean on Linux
132
111
Fix handling of NULL constraint conditions (Tom)
133
- Fix bugs in NUMERIC ceil() and floor() functions (Tom)
134
- Make char_length()/octet_length including trailing blanks (Tom)
135
- Made abstime/reltime use int4 instead of time_t (Peter E)
136
112
Fix memory leak in odbc driver (Nick Gorham)
137
- Fix r-tree index optimizer selectivity (Thomas)
138
- New lztext data type for compressed text fields
139
- Larger views/rules supported
140
113
141
114
Enhancements
142
115
------------
143
116
New CLI interface include file sqlcli.h, based on SQL3/SQL98
144
117
Remove all limits on query length, row length limit still exists (Tom)
145
- Improve optimizer selectivity computations and functions (Tom)
146
- Enable fast LIKE index processing only if index present (Tom)
147
- Revise parse_coerce() to handle coercion of int and float constants (Tom)
148
- Re-use free space on index pages with duplicates (Tom)
149
- Improve hash join processing (Tom)
150
- Prevent descending sort if result is already sorted(Hiroshi)
151
- Allow commuting of index scan query qualifications (Tom)
152
- Prefer index scans in cases where ORDER BY/GROUP BY is required (Tom)
153
- Allocate large memory requests in fix-sized chunks for performance (Tom)
154
- Fix vacuum's performance by reducing memory allocation requests (Tom)
155
118
Update jdbc protocol to 2.0 (Jens Glaser jens@jens.de)
156
119
Add TRUNCATE command to quickly truncate relation (Mike Mascari)
157
- Implement constant-expression simplification (Bernard Frankpitt, Tom)
158
120
Fix to give super user and createdb user proper update catalog rights (Peter E)
159
- Allow more than first column to be used to determine start of index scan
160
- (Hiroshi)
161
121
Allow ecpg bool variables to have NULL values (Christof)
162
122
Issue ecpg error if NULL value is returned to variable with no NULL
163
123
indicator (Christof)
@@ -177,28 +137,20 @@ Add FOREIGN KEY ... MATCH <unspecified> referential actions (Don Baccus)
177
137
Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
178
138
Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
179
139
Add DEC and SESSION_USER as reserved words
180
- Prevent quadruple use of disk space when doing internal sorting (Tom)
181
140
Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
182
141
Add Oracle's COMMENT ON command (Mike Mascari <mascarim@yahoo.
183
142
libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
184
143
Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
185
144
Make USING in COPY optional (Bruce)
186
- Faster sorting by calling fewer functions (Tom)
187
- Create system indexes to match all system caches(Bruce, Hiroshi)
188
- Make system caches use system indexes(Bruce)
189
- Make all system indexes unique(Bruce)
190
145
Allow subselects in the target list (Tom)
191
146
Allow subselects on the left side of comparison operators (Tom)
192
147
New parallel regression test (Jan)
193
148
Change backend-side COPY to write files with permissions 644 not 666 (Tom)
194
149
Force permissions on PGDATA directory to be secure, even if it exists (Tom)
195
150
Added psql LastOid variable to return last inserted oid (Peter E)
196
- Improve pg_statistics management for VACUUM speed improvement (Tom)
197
151
Allow concurrent vacuum and remove pg_vlock vacuum lock file (Tom)
198
152
Add permissions check so only Postgres superuser or table owner can
199
153
vacuum (Peter E)
200
- New C-routines to implement a BIT and BIT VARYING type in /contrib
201
- (Adriaan Joubert)
202
154
New libpq functions to allow asynchronous connections: PQconnectStart(),
203
155
PQconnectPoll(), PQresetStart(), PQresetPoll(), PQsetenvStart(),
204
156
PQsetenvPoll(), PQsetenvAbort (Ewan Mellor)
@@ -210,7 +162,7 @@ Major psql overhaul(Peter E)
210
162
Add const to libpq interface(Peter E)
211
163
New libpq function PQoidValue (Peter E)
212
164
Show specific non-aggregate causing problem with GROUP BY (Tom)
213
- Force changes to pg_shadow recreate pg_pwd file (Peter E)
165
+ Make changes to pg_shadow recreate pg_pwd file (Peter E)
214
166
Add aggregate(DISTINCT ...) (Tom)
215
167
Allow flag to control COPY input/output of NULLs (Peter E)
216
168
Make postgres user have a password by default (Peter E)
@@ -227,67 +179,121 @@ Increase maximum number of index keys to 16 (Bruce)
227
179
Increase maximum number of function arguments to 16 (Bruce)
228
180
Allow user configuration of maximum number of index keys and arguments
229
181
(Bruce)
230
- Flush backend cache less frequently (Tom, Hiroshi)
231
182
Allow unprivileged users to change their passwords (Peter E)
232
183
With password authentication enabled, new users without passwords can't
233
184
connect (Peter E)
234
185
Disallow dropping a user who owns a database (Peter E)
235
186
Add initdb --enable-multibyte option (Peter E)
236
187
Add option for initdb to prompts for superuser password (Peter E)
237
- COPY now reuses previous memory allocation, improving performance (Tom)
238
188
Allow complex type casts like col::numeric(9,2) and col::int2::float8 (Tom)
239
189
Updated user interfaces on initdb, initlocation, pg_dump, ipcclean
240
190
(Peter E)
241
- NUMERIC now accepts scientific notation (Tom)
242
- NUMERIC to int4 rounds (Tom)
243
- Convert float4/8 to NUMERIC properly (Tom)
244
191
New pg_char_to_encoding() and pg_encoding_to_char() functions (Tatsuo
245
192
Libpq non-blocking mode (Alfred Perlstein)
246
193
Improve conversion of types in casts that don't specify a length
247
194
New plperl internal programming language (Mark Hollomon)
248
195
Allow COPY IN to read file that do not end with a newline (Tom)
249
- Improve optimization cost estimation (Tom)
250
196
Indicate when long identifiers are truncated (Tom)
251
- Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom)
252
197
Allow aggregates to use type equivalency (Peter E)
253
198
Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number()
254
199
conversion functions (Karel Zak <zakkr@zf.jcu.cz>)
255
200
Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
256
201
Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom)
257
- Use DNF instead of CNF where appropriate (Tom, Taral)
258
202
Add NUMERIC and int8 types to ODBC
259
203
Improve EXPLAIN results for Append, Group, Agg, Unique (Tom)
260
- Added ALTER TABLE ... ADD FOREIGN KEY (Stephan Szabo)
261
- Further cleanup for OR-of-AND WHERE-clauses (Tom)
262
- Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
204
+ Add ALTER TABLE ... ADD FOREIGN KEY (Stephan Szabo)
263
205
Allow SELECT .. FOR UPDATE in PL/pgSQL (Hiroshi)
264
206
Enable backward sequential scan even after reaching EOF (Hiroshi)
265
207
Add btree indexing of boolean values, >= and <= (Don Baccus)
266
208
Print current line number when COPY FROM fails (Massimo)
267
209
Recognize special case of POSIX time zone: "GMT+8" and "GMT-8" (Thomas)
268
- Add" DEC" as synonym for "DECIMAL (Thomas)
269
- Add" SESSION_USER" as SQL92 keyword, same as CURRENT_USER (Thomas)
210
+ Add DEC as synonym for "DECIMAL (Thomas)
211
+ Add SESSION_USER as SQL92 keyword, same as CURRENT_USER (Thomas)
270
212
Implement column aliases (aka correlation names) and more join syntax
271
213
(Thomas)
272
214
Allow queries like SELECT a FROM t1 tx (a) (Thomas)
273
215
Allow queries like SELECT * FROM t1 NATURAL JOIN t2 (Thomas)
274
- Smarter optimizer computations for random index page access (Tom)
275
- New SET variable to control optimizer costs (Tom)
276
- Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
277
- Reduce optimizer internal housekeeping of join paths for speedup (Tom)
278
- Make "INTERVAL" reserved word allowed as a column identifier (Thomas)
279
- Allow type conversion with NUMERIC (Thomas)
280
- Make ISO date style (2000-02-16 09:33) the default (Thomas)
216
+ Make INTERVAL reserved word allowed as a column identifier (Thomas)
281
217
Implement REINDEX command (Hiroshi)
282
218
Accept ALL in aggregate function SUM(ALL col) (Tom)
283
219
Prevent GROUP BY from using column aliases (Tom)
284
220
New psql \encoding option (Tatsuo)
285
221
Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
286
222
Allow negation of a negative number in all cases
287
- Add ecpg descriptors
223
+ Add ecpg descriptors (Christof, Michael)
288
224
Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
289
225
New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
290
226
Add support for SJIS user defined characters (Tatsuo)
227
+ Larger views/rules supported
228
+
229
+ Types
230
+ -----
231
+ Many array fixes (Tom)
232
+ Allow bare column names to be subscripted as arrays (Tom)
233
+ Improve type casting of int and float constants (Tom)
234
+ Cleanups for int8 inputs, range checking, and type conversion (Tom)
235
+ Fix for SELECT timespan('21:11:26'::time) (Tom)
236
+ Fix for netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0
237
+ (Oleg Sharoiko)
238
+ Add btree index on NUMERIC(Jan)
239
+ Perl fix for large objects containing NUL characters (Douglas Thomson)
240
+ ODBC fix for for large objects (free)
241
+ Fix indexing of cidr data type
242
+ Fix for Ethernet MAC addresses (macaddr type) comparisons
243
+ Fix for date/time types when overflows happened in computations (Tom)
244
+ Allow array on int8 (Peter E)
245
+ Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
246
+ Allow NUMERIC arrays
247
+ Fix bugs in NUMERIC ceil() and floor() functions (Tom)
248
+ Make char_length()/octet_length including trailing blanks (Tom)
249
+ Made abstime/reltime use int4 instead of time_t (Peter E)
250
+ New lztext data type for compressed text fields
251
+ Revise code to handle coercion of int and float constants (Tom)
252
+ New C-routines to implement a BIT and BIT VARYING type in /contrib
253
+ (Adriaan Joubert)
254
+ NUMERIC now accepts scientific notation (Tom)
255
+ NUMERIC to int4 rounds (Tom)
256
+ Convert float4/8 to NUMERIC properly (Tom)
257
+ Allow type conversion with NUMERIC (Thomas)
258
+ Make ISO date style (2000-02-16 09:33) the default (Thomas)
259
+
260
+ Performance
261
+ -----------
262
+ Prevent exponential space consumption with many AND's and OR's (Tom)
263
+ Collect attribute selectivity values for system columns (Tom)
264
+ Reduce memory usage of aggregates (Tom)
265
+ Fix for LIKE optimization to use indexes with multi-byte encodings (Tom)
266
+ Fix r-tree index optimizer selectivity (Thomas)
267
+ Improve optimizer selectivity computations and functions (Tom)
268
+ Optimize btree searching for cases where many equal keys exist (Tom)
269
+ Enable fast LIKE index processing only if index present (Tom)
270
+ Re-use free space on index pages with duplicates (Tom)
271
+ Improve hash join processing (Tom)
272
+ Prevent descending sort if result is already sorted(Hiroshi)
273
+ Allow commuting of index scan query qualifications (Tom)
274
+ Prefer index scans in cases where ORDER BY/GROUP BY is required (Tom)
275
+ Allocate large memory requests in fix-sized chunks for performance (Tom)
276
+ Fix vacuum's performance by reducing memory allocation requests (Tom)
277
+ Implement constant-expression simplification (Bernard Frankpitt, Tom)
278
+ Allow more than first column to be used to determine start of index scan
279
+ (Hiroshi)
280
+ Prevent quadruple use of disk space when doing internal sorting (Tom)
281
+ Faster sorting by calling fewer functions (Tom)
282
+ Create system indexes to match all system caches (Bruce, Hiroshi)
283
+ Make system caches use system indexes(Bruce)
284
+ Make all system indexes unique(Bruce)
285
+ Improve pg_statistics management for VACUUM speed improvement (Tom)
286
+ Flush backend cache less frequently (Tom, Hiroshi)
287
+ COPY now reuses previous memory allocation, improving performance (Tom)
288
+ Improve optimization cost estimation (Tom)
289
+ Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom)
290
+ Use DNF instead of CNF where appropriate (Tom, Taral)
291
+ Further cleanup for OR-of-AND WHERE-clauses (Tom)
292
+ Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
293
+ Smarter optimizer computations for random index page access (Tom)
294
+ New SET variable to control optimizer costs (Tom)
295
+ Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
296
+ Reduce optimizer internal housekeeping of join paths for speedup (Tom)
291
297
292
298
Source Tree Changes
293
299
-------------------
@@ -319,6 +325,7 @@ Add SQL_ASCII test case to the regression test (Tatsuo)
319
325
configure --with-mb now deprecated (Tatsuo)
320
326
321
327
328
+
322
329
Release 6.5.3
323
330
324
331
This is basically a cleanup release for 6.5.2. We have added a new pgaccess