@@ -56,108 +56,68 @@ Bug Fixes
5656---------
5757Prevent function calls with more than maximum number of arguments (Tom)
5858Many fixes for CASE (Tom)
59- Many array fixes (Tom)
6059Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (Tom)
6160Fix SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
6261Allow utility statements in plpgsql (Tom)
6362Fix 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)
6764Fix for views involved in INSERT ... SELECT ... (Tom)
6865Fix for SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2 (Tom)
6966Fix for subselects in INSERT ... SELECT (Tom)
7067Prevent 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)
7468Fixes for relations greater than 2GB, including vacuum
7569Improve communication of system table changes to other running backends (Tom)
7670Improve communication of user table modifications to other running backends (Tom)
7771Fix handling of temp tables in complex situations (Bruce, Tom)
7872Disallow 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)
8173Allow 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)
8474Properly quote sequence names in pg_dump (Ross J. Reedstrom)
8575Prevent DESTROY DATABASE while others accessing
8676Prevent any rows from being returned by GROUP BY if no rows processed (Tom)
87- Reduce memory usage of aggregates (Tom)
8877Fix SELECT COUNT(1) FROM table WHERE ...' if no rows matching WHERE (Tom)
8978Fix pg_upgrade so it works for MVCC(Tom)
90- Add nbtree operator class for NUMERIC(Jan)
9179Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom)
9280Make 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)
9483Allow comment-only lines, and ;;; lines too. (Tom)
9584Improve recovery after failed disk writes, disk full (Hiroshi)
9685Fix cases where table is mentioned in FROM but not joined (Tom)
9786Allow HAVING clause without aggregate functions (Tom)
9887Fix for "--" comment and no trailing newline, as seen in Perl
9988Improve pg_dump failure error reports (Bruce)
100- Perl fix for large objects containing NUL characters (Douglas Thomson)
10189Allow sorts and hashes to exceed 2GB file sizes (Tom)
102- ODBC fix for for large objects (free)
10390Fix for pg_dump dumping of inherited rules (Tom)
10491Fix for NULL handling comparisons (Tom)
10592Fix inconsistent state caused by failed CREATE/DROP commands (Hiroshi)
10693Fix for dbname with dash
107- Fix problems with CURRENT_DATE used in DEFAULT (Tom)
10894Prevent DROP INDEX from interfering with other backends (Tom)
10995Fix file descriptor leak in verify_password()
11096Fix for "Unable to identify an operator =$" problem
11197Fix ODBC so no segfault if CommLog and Debug enabled (Dirk Niggemann)
11298Fix for recursive exit call (Massimo)
113- Fix indexing of cidr
11499Fix for extra-long timezones (Jeroen van Vianen)
115100Make pg_dump preserve primary key information (Peter E)
116101Prevent databases with single quotes (Peter E)
117102Prevent DROP DATABASE inside transaction (Peter E)
118103ecpg memory leak fixes (Stephen Birch)
119- Fix for Ethernet MAC addresses (macaddr type) comparisons
120104Fix 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)
122105Y2K timestamp fix (Massimo)
123- Fix for date/time types when overflows happened in computations (Tom)
124106Fix for VACUUM 'HEAP_MOVED_IN was not expected' errors (Tom)
125107Fix for views with tables/columns containing spaces (Tom)
126- Allow array on int8 (Peter E)
127108Prevent permissions on indexes (Peter E)
128- Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
129109Fix for spinlock stuck problem when error is generated (Hiroshi)
130- Allow NUMERIC arrays
131110Fix ipcclean on Linux
132111Fix 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)
136112Fix 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
140113
141114Enhancements
142115------------
143116New CLI interface include file sqlcli.h, based on SQL3/SQL98
144117Remove 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)
155118Update jdbc protocol to 2.0 (Jens Glaser jens@jens.de)
156119Add TRUNCATE command to quickly truncate relation (Mike Mascari)
157- Implement constant-expression simplification (Bernard Frankpitt, Tom)
158120Fix 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)
161121Allow ecpg bool variables to have NULL values (Christof)
162122Issue ecpg error if NULL value is returned to variable with no NULL
163123indicator (Christof)
@@ -177,28 +137,20 @@ Add FOREIGN KEY ... MATCH <unspecified> referential actions (Don Baccus)
177137Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
178138Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
179139Add DEC and SESSION_USER as reserved words
180- Prevent quadruple use of disk space when doing internal sorting (Tom)
181140Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
182141Add Oracle's COMMENT ON command (Mike Mascari <mascarim@yahoo.
183142libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
184143Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
185144Make 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)
190145Allow subselects in the target list (Tom)
191146Allow subselects on the left side of comparison operators (Tom)
192147New parallel regression test (Jan)
193148Change backend-side COPY to write files with permissions 644 not 666 (Tom)
194149Force permissions on PGDATA directory to be secure, even if it exists (Tom)
195150Added psql LastOid variable to return last inserted oid (Peter E)
196- Improve pg_statistics management for VACUUM speed improvement (Tom)
197151Allow concurrent vacuum and remove pg_vlock vacuum lock file (Tom)
198152Add permissions check so only Postgres superuser or table owner can
199153vacuum (Peter E)
200- New C-routines to implement a BIT and BIT VARYING type in /contrib
201- (Adriaan Joubert)
202154New libpq functions to allow asynchronous connections: PQconnectStart(),
203155 PQconnectPoll(), PQresetStart(), PQresetPoll(), PQsetenvStart(),
204156 PQsetenvPoll(), PQsetenvAbort (Ewan Mellor)
@@ -210,7 +162,7 @@ Major psql overhaul(Peter E)
210162Add const to libpq interface(Peter E)
211163New libpq function PQoidValue (Peter E)
212164Show 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)
214166Add aggregate(DISTINCT ...) (Tom)
215167Allow flag to control COPY input/output of NULLs (Peter E)
216168Make postgres user have a password by default (Peter E)
@@ -227,67 +179,121 @@ Increase maximum number of index keys to 16 (Bruce)
227179Increase maximum number of function arguments to 16 (Bruce)
228180Allow user configuration of maximum number of index keys and arguments
229181(Bruce)
230- Flush backend cache less frequently (Tom, Hiroshi)
231182Allow unprivileged users to change their passwords (Peter E)
232183With password authentication enabled, new users without passwords can't
233184connect (Peter E)
234185Disallow dropping a user who owns a database (Peter E)
235186Add initdb --enable-multibyte option (Peter E)
236187Add option for initdb to prompts for superuser password (Peter E)
237- COPY now reuses previous memory allocation, improving performance (Tom)
238188Allow complex type casts like col::numeric(9,2) and col::int2::float8 (Tom)
239189Updated user interfaces on initdb, initlocation, pg_dump, ipcclean
240190(Peter E)
241- NUMERIC now accepts scientific notation (Tom)
242- NUMERIC to int4 rounds (Tom)
243- Convert float4/8 to NUMERIC properly (Tom)
244191New pg_char_to_encoding() and pg_encoding_to_char() functions (Tatsuo
245192Libpq non-blocking mode (Alfred Perlstein)
246193Improve conversion of types in casts that don't specify a length
247194New plperl internal programming language (Mark Hollomon)
248195Allow COPY IN to read file that do not end with a newline (Tom)
249- Improve optimization cost estimation (Tom)
250196Indicate when long identifiers are truncated (Tom)
251- Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom)
252197Allow aggregates to use type equivalency (Peter E)
253198Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number()
254199conversion functions (Karel Zak <zakkr@zf.jcu.cz>)
255200Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
256201Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom)
257- Use DNF instead of CNF where appropriate (Tom, Taral)
258202Add NUMERIC and int8 types to ODBC
259203Improve 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)
263205Allow SELECT .. FOR UPDATE in PL/pgSQL (Hiroshi)
264206Enable backward sequential scan even after reaching EOF (Hiroshi)
265207Add btree indexing of boolean values, >= and <= (Don Baccus)
266208Print current line number when COPY FROM fails (Massimo)
267209Recognize 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)
270212Implement column aliases (aka correlation names) and more join syntax
271213(Thomas)
272214Allow queries like SELECT a FROM t1 tx (a) (Thomas)
273215Allow 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)
281217Implement REINDEX command (Hiroshi)
282218Accept ALL in aggregate function SUM(ALL col) (Tom)
283219Prevent GROUP BY from using column aliases (Tom)
284220New psql \encoding option (Tatsuo)
285221Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
286222Allow negation of a negative number in all cases
287- Add ecpg descriptors
223+ Add ecpg descriptors (Christof, Michael)
288224Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
289225New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
290226Add 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)
291297
292298Source Tree Changes
293299-------------------
@@ -319,6 +325,7 @@ Add SQL_ASCII test case to the regression test (Tatsuo)
319325configure --with-mb now deprecated (Tatsuo)
320326
321327
328+
322329Release 6.5.3
323330
324331This is basically a cleanup release for 6.5.2. We have added a new pgaccess