5 Release date: 2002-03-21
7 This has a variety of fixes from 7.2.
9 ----------------------------------------------------------------------
11 Migration to version 7.2.1
13 A dump/restore is *not* required for those running 7.2.
15 ----------------------------------------------------------------------
19 Ensure that sequence counters do not go backwards after a crash (Tom)
20 Fix pgaccess kanji-coversion key binding (Tatsuo)
21 Optimizer improvements (Tom)
22 cash I/O improvements (Tom)
24 Compile fix for missing AuthBlockSig (Heiko)
25 Additional time zones and time zone fixes (Thomas)
26 Allow psql \connect to handle mixed case database and user names (Tom)
27 Return proper OID on command completion even with ON INSERT rules (Tom)
28 Allow COPY FROM to use 8-bit DELIMITERS (Tatsuo)
29 Fix bug in extract/date_part for milliseconds/microseconds (Tatsuo)
30 Improve handling of multiple UNIONs with different lengths (Tom)
31 contrib/btree_gist improvements (Teodor Sigaev)
32 contrib/tsearch dictionary improvements, see README.tsearch for
33 an additional installation step (Thomas T. Thai, Teodor Sigaev)
34 Fix for array subscripts handling (Tom)
35 Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/PgSQL (Tom)
38 ----------------------------------------------------------------------
42 Release date: 2002-02-04
46 This release improves PostgreSQL for use in high-volume applications.
48 Major changes in this release:
52 Vacuuming no longer locks tables, thus allowing normal user access
53 during the vacuum. A new "VACUUM FULL" command does old-style
54 vacuum by locking the table and shrinking the on-disk copy of the
59 There is no longer a problem with installations that exceed four
64 OID's are now optional. Users can now create tables without OID's
65 for cases where OID usage is excessive.
69 The system now computes histogram column statistics during
70 "ANALYZE", allowing much better optimizer choices.
74 A new MD5 encryption option allows more secure storage and
75 transfer of passwords. A new Unix-domain socket authentication
76 option is available on Linux and BSD systems.
80 Administrators can use the new table access statistics module to
81 get fine-grained information about table and index usage.
85 Program and library messages can now be displayed in several
88 ----------------------------------------------------------------------
90 Migration to version 7.2
92 A dump/restore using "pg_dump" is required for those wishing to migrate
93 data from any previous release.
95 Observe the following incompatibilities:
97 * The semantics of the "VACUUM" command have changed in this release.
98 You may wish to update your maintenance procedures accordingly.
100 * In this release, comparisons using = NULL will always return false (or
101 NULL, more precisely). Previous releases automatically transformed
102 this syntax to IS NULL. The old behavior can be re-enabled using a
103 "postgresql.conf" parameter.
105 * The "pg_hba.conf" and "pg_ident.conf" configuration is now only
106 reloaded after receiving a SIGHUP signal, not with each connection.
108 * The function "octet_length()" now returns the uncompressed data
111 * The date/time value 'current' is no longer available. You will need to
112 rewrite your applications.
114 * The timestamp() function is no longer available. Use timestamp
115 'string' instead, or CAST.
117 The SELECT ... LIMIT #,# syntax will be removed in the next release. You
118 should change your queries to use separate LIMIT and OFFSET clauses, e.g.
121 ----------------------------------------------------------------------
127 Create temporary files in a separate directory (Bruce)
128 Delete orphanded temporary files on postmaster startup (Bruce)
129 Added unique indexes to some system tables (Tom)
130 System table operator reorganization (Oleg Bartunov, Teodor Sigaev, Tom)
131 Renamed pg_log to pg_clog (Tom)
132 Enable SIGTERM, SIGQUIT to kill backends (Jan)
133 Removed compile-time limit on number of backends (Tom)
134 Better cleanup for semaphore resource failure (Tatsuo, Tom)
135 Allow safe transaction ID wraparound (Tom)
136 Removed OID's from some system tables (Tom)
137 Removed "triggered data change violation" error check (Tom)
138 SPI portal creation of prepared/saved plans (Jan)
139 Allow SPI column functions to work for system columns (Tom)
140 Long value compression improvement (Tom)
141 Statistics collector for table, index access (Jan)
142 Truncate extra-long sequence names to a reasonable value (Tom)
143 Measure transaction times in milliseconds (Thomas)
144 Fix TID sequential scans (Hiroshi)
145 Superuser ID now fixed at 1 (Peter E)
146 New pg_ctl "reload" option (Tom)
148 ----------------------------------------------------------------------
152 Optimizer improvements (Tom)
153 New histogram column statistics for optimizer (Tom)
154 Reuse write-ahead log files rather than discarding them (Tom)
155 Cache improvements (Tom)
156 IS NULL, IS NOT NULL optimizer improvement (Tom)
157 Improve lock manager to reduce lock contention (Tom)
158 Keep relcache entries for index access support functions (Tom)
159 Allow better selectivity with NaN and infinities in NUMERIC (Tom)
160 R-tree performance improvements (Kenneth Been)
161 B-tree splits more efficient (Tom)
163 ----------------------------------------------------------------------
167 Change UPDATE, DELETE permissions to be distinct (Peter E)
168 New REFERENCES, TRIGGER privileges (Peter E)
169 Allow GRANT/REVOKE to/from more than one user at a time (Peter E)
170 New has_table_privilege() function (Joe Conway)
171 Allow non-superuser to vacuum database (Tom)
172 New SET SESSION AUTHORIZATION command (Peter E)
173 Fix bug in privilege modifications on newly created tables (Tom)
174 Disallow access to pg_statistic for non-superuser, add user-accessible views (Tom)
176 ----------------------------------------------------------------------
178 Client Authentication
180 Fork postmaster before doing authentication to prevent hangs (Peter E)
181 Add ident authentication over Unix domain sockets on Linux, *BSD (Helge Bahmann, Oliver Elphick, Teodor Sigaev, Bruce)
182 Add a password authentication method that uses MD5 encryption (Bruce)
183 Allow encryption of stored passwords using MD5 (Bruce)
184 PAM authentication (Dominic J. Eidson)
185 Load pg_hba.conf and pg_ident.conf only on startup and SIGHUP (Bruce)
187 ----------------------------------------------------------------------
191 Interpretation of some time zone abbreviations as Australian rather than North American now settable at run time (Bruce)
192 New parameter to set default transaction isolation level (Peter E)
193 New parameter to enable conversion of "expr = NULL" into "expr IS NULL", off by default (Peter E)
194 New parameter to control memory usage by VACUUM (Tom)
195 New parameter to set client authentication timeout (Tom)
196 New parameter to set maximum number of open files (Tom)
198 ----------------------------------------------------------------------
202 Statements added by INSERT rules now execute after the INSERT (Jan)
203 Prevent unadorned relation names in target list (Bruce)
204 NULLs now sort after all normal values in ORDER BY (Tom)
205 New IS UNKNOWN, IS NOT UNKNOWN Boolean tests (Tom)
206 New SHARE UPDATE EXCLUSIVE lock mode (Tom)
207 New EXPLAIN ANALYZE command that shows run times and row counts (Martijn van Oosterhout)
208 Fix problem with LIMIT and subqueries (Tom)
209 Fix for LIMIT, DISTINCT ON pushed into subqueryies (Tom)
210 Fix nested EXCEPT/INTERSECT (Tom)
212 ----------------------------------------------------------------------
216 Fix SERIAL in temporary tables (Bruce)
217 Allow temporary sequences (Bruce)
218 Sequences now use int8 internally (Tom)
219 New SERIAL8 creates int8 columns with sequences, default still SERIAL4 (Tom)
220 Make OIDs optional using WITHOUT OIDS (Tom)
221 Add %TYPE syntax to CREATE TYPE (Ian Lance Taylor)
222 Add ALTER TABLE / DROP CONSTRAINT for CHECK constraints (Christopher Kings-Lynne)
223 New CREATE OR REPLACE FUNCTION to alter existing function (preserving the function OID) (Gavin Sherry)
224 Add ALTER TABLE / ADD [ UNIQUE | PRIMARY ] (Christopher Kings-Lynne)
225 Allow column renaming in views
226 Make ALTER TABLE / RENAME COLUMN update column names of indexes (Brent Verner)
227 Fix for ALTER TABLE / ADD CONSTRAINT ... CHECK with inherited tables (Stephan Szabo)
228 ALTER TABLE RENAME update foreign-key trigger arguments correctly (Brent Verner)
229 DROP AGGREGATE and COMMENT ON AGGREGATE now accept an aggtype (Tom)
230 Add automatic return type data casting for SQL functions (Tom)
231 Allow GiST indexes to handle NULLs and multikey indexes (Oleg Bartunov, Teodor Sigaev, Tom)
232 Enable partial indexes (Martijn van Oosterhout)
234 ----------------------------------------------------------------------
238 Add RESET ALL, SHOW ALL (Marko Kreen)
239 CREATE/ALTER USER/GROUP now allow options in any order (Vince)
240 Add LOCK A, B, C functionality (Neil Padgett)
241 New ENCRYPTED/UNENCRYPTED option to CREATE/ALTER USER (Bruce)
242 New light-weight VACUUM does not lock table; old semantics are available as VACUUM FULL (Tom)
243 Disable COPY TO/FROM on views (Bruce)
244 COPY DELIMITERS string must be exactly one character (Tom)
245 VACUUM warning about index tuples fewer than heap now only appears when appropriate (Martijn van Oosterhout)
246 Fix permission checks for CREATE INDEX (Tom)
247 Disallow inappropriate use of CREATE/DROP INDEX/TRIGGER/VIEW (Tom)
249 ----------------------------------------------------------------------
251 Data Types and Functions
253 SUM(), AVG(), COUNT() now uses int8 internally for speed (Tom)
254 Add convert(), convert2() (Tatsuo)
255 New function bit_length() (Peter E)
256 Make the "n" in CHAR(n)/VARCHAR(n) represents letters, not bytes (Tatsuo)
257 CHAR(), VARCHAR() now reject strings that are too long (Peter E)
258 BIT VARYING now rejects bit strings that are too long (Peter E)
259 BIT now rejects bit strings that do not match declared size (Peter E)
260 INET, CIDR text conversion functions (Alex Pilosov)
261 INET, CIDR operators << and <<= indexable (Alex Pilosov)
262 Bytea \### now requires valid three digit octal number
263 Bytea comparison improvements, now supports =, <>, >, >=, <, and <=
264 Bytea now supports B-tree indexes
265 Bytea now supports LIKE, LIKE...ESCAPE, NOT LIKE, NOT LIKE...ESCAPE
266 Bytea now supports concatenation
267 New bytea functions: position, substring, trim, btrim, and length
268 New encode() function mode, "escaped", converts minimally escaped bytea to/from text
269 Add pg_database_encoding_max_length() (Tatsuo)
270 Add pg_client_encoding() function (Tatsuo)
271 now() returns time with millisecond precision (Thomas)
272 New TIMESTAMP WITHOUT TIMEZONE data type (Thomas)
273 Add ISO date/time specification with "T", yyyy-mm-ddThh:mm:ss (Thomas)
274 New xid/int comparison functions (Hiroshi)
275 Add precision to TIME, TIMESTAMP, and INVERVAL data types (Thomas)
276 Modify type coersion logic to attempt binary-compatible functions first (Tom)
277 New encode() function installed by default (Marko Kreen)
278 Improved to_*() conversion functions (Karel Zak)
279 Optimize LIKE/ILIKE when using single-byte encodings (Tatsuo)
280 New functions in contrib/pgcrypto: crypt(), hmac(), encrypt(), gen_salt() (Marko Kreen)
281 Correct description of translate() function (Bruce)
282 Add INTERVAL argument for SET TIME ZONE (Thomas)
283 Add INTERVAL YEAR TO MONTH (etc.) syntax (Thomas)
284 Optimize length functions when using single-byte encodings (Tatsuo)
285 Fix path_inter, path_distance, path_length, dist_ppath to handle closed paths (Curtis Barrett, Tom)
286 octet_length(text) now returns non-compressed length (Tatsuo, Bruce)
287 Handle "July" full name in date/time literals (Greg Sabino Mullane)
288 Some datatype() function calls now evaluated differently
289 Add support for Julian and ISO time specifications (Thomas)
291 ----------------------------------------------------------------------
295 National language support in psql, pg_dump, libpq, and server (Peter E)
296 Message translations in Chinese (simplified, traditional), Czech, French, German, Hungarian, Russian, Swedish (Peter E, Serguei A. Mokhov, Karel Zak, Weiping He, Zhenbang Wei, Kovacs Zoltan)
297 Make trim, ltrim, rtrim, btrim, lpad, rpad, translate multibyte aware (Tatsuo)
298 Add LATIN5,6,7,8,9,10 support (Tatsuo)
299 Add ISO 8859-5,6,7,8 support (Tatsuo)
300 Correct LATIN5 to mean ISO-8859-9, not ISO-8859-5 (Tatsuo)
301 Make mic2ascii() non-ASCII aware (Tatsuo)
302 Reject invalid multibyte character sequences (Tatsuo)
304 ----------------------------------------------------------------------
308 Now uses portals for SELECT loops, allowing huge result sets (Jan)
309 CURSOR and REFCURSOR support (Jan)
310 Can now return open cursors (Jan)
311 Add ELSEIF (Klaus Reger)
312 Improve PL/pgSQL error reporting, including location of error (Tom)
313 Allow IS or FOR key words in cursor declaration, for compatibility (Bruce)
314 Fix for SELECT ... FOR UPDATE (Tom)
315 Fix for PERFORM returning multiple rows (Tom)
316 Make PL/pgSQL use the server's type coercion code (Tom)
317 Memory leak fix (Jan, Tom)
318 Make trailing semicolon optional (Tom)
320 ----------------------------------------------------------------------
324 New untrusted PL/Perl (Alex Pilosov)
325 PL/Perl is now built on some platforms even if libperl is not shared (Peter E)
327 ----------------------------------------------------------------------
331 Now reports errorInfo (Vsevolod Lobko)
332 Add spi_lastoid function (bob@redivi.com)
334 ----------------------------------------------------------------------
338 ...is new (Andrew Bosma)
340 ----------------------------------------------------------------------
344 \d displays indexes in unique, primary groupings (Christopher Kings-Lynne)
345 Allow trailing semicolons in backslash commands (Greg Sabino Mullane)
346 Read password from /dev/tty if possible
347 Force new password prompt when changing user and database (Tatsuo, Tom)
348 Format the correct number of columns for Unicode (Patrice)
350 ----------------------------------------------------------------------
354 New function PQescapeString() to escape quotes in command strings (Florian Weimer)
355 New function PQescapeBytea() escapes binary strings for use as SQL string literals
357 ----------------------------------------------------------------------
361 Return OID of INSERT (Ken K)
362 Handle more data types (Ken K)
363 Handle single quotes and newlines in strings (Ken K)
364 Handle NULL variables (Ken K)
365 Fix for time zone handling (Barry Lind)
366 Improved Druid support
367 Allow eight-bit characters with non-multibyte server (Barry Lind)
368 Support BIT, BINARY types (Ned Wolpert)
369 Reduce memory usage (Michael Stephens, Dave Cramer)
370 Update DatabaseMetaData (Peter E)
371 Add DatabaseMetaData.getCatalogs() (Peter E)
372 Encoding fixes (Anders Bengtsson)
373 Get/setCatalog methods (Jason Davies)
374 DatabaseMetaData.getColumns() now returns column defaults (Jason Davies)
375 DatabaseMetaData.getColumns() performance improvement (Jeroen van Vianen)
376 Some JDBC1 and JDBC2 merging (Anders Bengtsson)
377 Transaction performance improvements (Barry Lind)
378 Array fixes (Greg Zoller)
380 Fix batch processing (Rene Pijlman)
381 ExecSQL method reorganization (Anders Bengtsson)
382 GetColumn() fixes (Jeroen van Vianen)
383 Fix isWriteable() function (Rene Pijlman)
384 Improved passage of JDBC2 conformance tests (Rene Pijlman)
385 Add bytea type capability (Barry Lind)
386 Add isNullable() (Rene Pijlman)
387 JDBC date/time test suite fixes (Liam Stewart)
388 Fix for SELECT 'id' AS xxx FROM table (Dave Cramer)
389 Fix DatabaseMetaData to show precision properly (Mark Lillywhite)
390 New getImported/getExported keys (Jason Davies)
391 MD5 password encryption support (Jeremy Wohl)
392 Fix to actually use type cache (Ned Wolpert)
394 ----------------------------------------------------------------------
398 Remove query size limit (Hiroshi)
399 Remove text field size limit (Hiroshi)
400 Fix for SQLPrimaryKeys in multibyte mode (Hiroshi)
401 Allow ODBC procedure calls (Hiroshi)
402 Improve boolean handing (Aidan Mountford)
403 Most configuration options on setable via DSN (Hiroshi)
404 Multibyte, performance fixes (Hiroshi)
405 Allow driver to be used with iODBC or unixODBC (Peter E)
406 MD5 password encryption support (Bruce)
407 Add more compatibility functions to odbc.sql (Peter E)
409 ----------------------------------------------------------------------
413 EXECUTE ... INTO implemented (Christof Petig)
414 Multiple row descriptor support (e.g. CARDINALITY) (Christof Petig)
415 Fix for GRANT parameters (Lee Kindness)
416 Fix INITIALLY DEFERRED bug
417 Various bug fixes (Michael, Christof Petig)
418 Auto allocation for indicator variable arrays (int *ind_p=NULL)
419 Auto allocation for string arrays (char **foo_pp=NULL)
420 ECPGfree_auto_mem fixed
421 All function names with external linkage are now prefixed by ECPG
422 Fixes for arrays of structures (Michael)
424 ----------------------------------------------------------------------
428 Python fix fetchone() (Gerhard Haring)
429 Use UTF, Unicode in Tcl where appropriate (Vsevolod Lobko, Reinhard Max)
430 Add Tcl COPY TO/FROM (ljb)
431 Prevent output of default index op class in pg_dump (Tom)
432 Fix libpgeasy memory leak (Bruce)
434 ----------------------------------------------------------------------
438 Configure, dynamic loader, and shared library fixes (Peter E)
439 Fixes in QNX 4 port (Bernd Tegge)
440 Fixes in Cygwin and Win32 ports (Jason Tishler, Gerhard Haring, Dmitry Yurtaev, Darko Prenosil, Mikhail Terekhov)
441 Fix for Win32 socket communication failures (Magnus, Mikhail Terekhov)
442 Hurd compile fix (Oliver Elphick)
443 BeOS fixes (Cyril Velter)
444 Remove configure --enable-unicode-conversion, now enabled by multibyte (Tatsuo)
445 AIX fixes (Tatsuo, Andreas)
446 Fix parallel make (Peter E)
447 Install SQL language manual pages into OS-specific directories (Peter E)
448 Rename config.h to pg_config.h (Peter E)
449 Reorganize installation layout of header files (Peter E)
451 ----------------------------------------------------------------------
455 Remove SEP_CHAR (Bruce)
457 Merge GUC and command line handling (Marko Kreen)
458 Remove EXTEND INDEX (Martijn van Oosterhout, Tom)
459 New pgjindent utility to indent java code (Bruce)
460 Remove define of true/false when compiling under C++ (Leandro Fanzone, Tom)
461 pgindent fixes (Bruce, Tom)
462 Replace strcasecmp() with strcmp() where appropriate (Peter E)
463 Dynahash portability improvements (Tom)
464 Add 'volatile' usage in spinlock structures
465 Improve signal handling logic (Tom)
467 ----------------------------------------------------------------------
471 New contrib/rtree_gist (Oleg Bartunov, Teodor Sigaev)
472 New contrib/tsearch full-text indexing (Oleg, Teodor Sigaev)
473 Add contrib/dblink for remote database access (Joe Conway)
474 contrib/ora2pg Oracle conversion utility (Gilles Darold)
475 contrib/xml XML conversion utility (John Gray)
476 contrib/fulltextindex fixes (Christopher Kings-Lynne)
477 New contrib/fuzzystrmatch with levenshtein and metaphone, soundex merged (Joe Conway)
478 Add contrib/intarray boolean queries, binary search, fixes (Oleg Bartunov)
479 New pg_upgrade utility (Bruce)
480 Add new pg_resetxlog options (Bruce, Tom)
481 ----------------------------------------------------------------------
485 Release date: 2001-08-15
487 ----------------------------------------------------------------------
489 Migration to version 7.1.3
491 A dump/restore is *not* required for those running 7.1.X.
493 ----------------------------------------------------------------------
497 Remove unused WAL segements of large transactions (Tom)
498 Multiaction rule fix (Tom)
499 PL/pgSQL memory allocation fix (Jan)
500 VACUUM buffer fix (Tom)
501 Regression test fixes (Tom)
502 pg_dump fixes for GRANT/REVOKE/comments on views, user-defined types (Tom)
503 Fix subselects with DISTINCT ON or LIMIT (Tom)
505 Disable COPY TO/FROM a view (Tom)
506 Cygwin build (Jason Tishler)
509 ----------------------------------------------------------------------
513 Release date: 2001-05-11
515 This has one fix from 7.1.1.
517 ----------------------------------------------------------------------
519 Migration to version 7.1.2
521 A dump/restore is *not* required for those running 7.1.X.
523 ----------------------------------------------------------------------
527 Fix PL/pgSQL SELECTs when returning no rows
528 Fix for psql backslash core dump
529 Referential integrity permission fix
534 ----------------------------------------------------------------------
538 Release date: 2001-05-05
540 This has a variety of fixes from 7.1.
542 ----------------------------------------------------------------------
544 Migration to version 7.1.1
546 A dump/restore is *not* required for those running 7.1.
548 ----------------------------------------------------------------------
552 Fix for numeric MODULO operator (Tom)
553 pg_dump fixes (Philip)
554 pg_dump can dump 7.0 databases (Philip)
555 readline 4.2 fixes (Peter E)
557 AIX, MSWIN, VAX,N32K fixes (Tom)
558 Multibytes fixes (Tom)
559 Unicode fixes (Tatsuo)
560 Optimizer improvements (Tom)
561 Fix for whole tuples in functions (Tom)
562 Fix for pg_ctl and option strings with spaces (Peter E)
564 EXTRACT can now take string argument (Thomas)
568 ----------------------------------------------------------------------
572 Release date: 2001-04-13
574 This release focuses on removing limitations that have existed in the
575 PostgreSQL code for many years.
577 Major changes in this release:
579 Write-ahead Log (WAL)
581 To maintain database consistency in case of an operating system
582 crash, previous releases of PostgreSQL have forced all data
583 modifications to disk before each transaction commit. With WAL,
584 only one log file must be flushed to disk, greatly improving
585 performance. If you have been using -F in previous releases to
586 disable disk flushes, you may want to consider discontinuing its
591 TOAST - Previous releases had a compiled-in row length limit,
592 typically 8k - 32k. This limit made storage of long text fields
593 difficult. With TOAST, long rows of any length can be stored with
598 We now support outer joins. The UNION/NOT IN workaround for outer
599 joins is no longer required. We use the SQL92 outer join syntax.
603 The previous C function manager did not handle NULLs properly, nor
604 did it support 64-bit CPU's (Alpha). The new function manager
605 does. You can continue using your old custom functions, but you
606 may want to rewrite them in the future to use the new function
607 manager call interface.
611 A large number of complex queries that were unsupported in
612 previous releases now work. Many combinations of views,
613 aggregates, UNION, LIMIT, cursors, subqueries, and inherited
614 tables now work properly. Inherited tables are now accessed by
615 default. Subqueries in FROM are now supported.
617 ----------------------------------------------------------------------
619 Migration to version 7.1
621 A dump/restore using pg_dump is required for those wishing to migrate data
622 from any previous release.
624 ----------------------------------------------------------------------
630 Many multi-byte/Unicode/locale fixes (Tatsuo and others)
631 More reliable ALTER TABLE RENAME (Tom)
632 Kerberos V fixes (David Wragg)
633 Fix for INSERT INTO...SELECT where targetlist has subqueries (Tom)
634 Prompt username/password on standard error (Bruce)
635 Large objects inv_read/inv_write fixes (Tom)
636 Fixes for to_char(), to_date(), to_ascii(), and to_timestamp() (Karel,
638 Prevent query expressions from leaking memory (Tom)
639 Allow UPDATE of arrays elements (Tom)
640 Wake up lock waiters during cancel (Hiroshi)
641 Fix rare cursor crash when using hash join (Tom)
642 Fix for DROP TABLE/INDEX in rolled-back transaction (Hiroshi)
643 Fix psql crash from \l+ if MULTIBYTE enabled (Peter E)
644 Fix truncation of rule names during CREATE VIEW (Ross Reedstrom)
645 Fix PL/perl (Alex Kapranoff)
646 Disallow LOCK on views (Mark Hollomon)
647 Disallow INSERT/UPDATE/DELETE on views (Mark Hollomon)
648 Disallow DROP RULE, CREATE INDEX, TRUNCATE on views (Mark Hollomon)
649 Allow PL/pgSQL accept non-ASCII identifiers (Tatsuo)
650 Allow views to proper handle GROUP BY, aggregates, DISTINCT (Tom)
651 Fix rare failure with TRUNCATE command (Tom)
652 Allow UNION/INTERSECT/EXCEPT to be used with ALL, subqueries, views,
653 DISTINCT, ORDER BY, SELECT...INTO (Tom)
654 Fix parser failures during aborted transactions (Tom)
655 Allow temporary relations to properly clean up indexes (Bruce)
656 Fix VACUUM problem with moving rows in same page (Tom)
657 Modify pg_dump to better handle user-defined items in template1 (Philip)
658 Allow LIMIT in VIEW (Tom)
659 Require cursor FETCH to honor LIMIT (Tom)
660 Allow PRIMARY/FOREIGN Key definitions on inherited columns (Stephan)
661 Allow ORDER BY, LIMIT in sub-selects (Tom)
662 Allow UNION in CREATE RULE (Tom)
663 Make ALTER/DROP TABLE rollback-able (Vadim, Tom)
664 Store initdb collation in pg_control so collation cannot be changed (Tom)
665 Fix INSERT...SELECT with rules (Tom)
666 Fix FOR UPDATE inside views and subselects (Tom)
667 Fix OVERLAPS operators conform to SQL92 spec regarding NULLs (Tom)
668 Fix lpad() and rpad() to handle length less than input string (Tom)
669 Fix use of NOTIFY in some rules (Tom)
670 Overhaul btree code (Tom)
671 Fix NOT NULL use in Pl/pgSQL variables (Tom)
672 Overhaul GIST code (Oleg)
673 Fix CLUSTER to preserve constraints and column default (Tom)
674 Improved deadlock detection handling (Tom)
675 Allow multiple SERIAL columns in a table (Tom)
676 Prevent occasional index corruption (Vadim)
680 Add OUTER JOINs (Tom)
681 Function manager overhaul (Tom)
682 Allow ALTER TABLE RENAME on indexes (Tom)
683 Improve CLUSTER (Tom)
684 Improve ps status display for more platforms (Peter E, Marc)
685 Improve CREATE FUNCTION failure message (Ross)
686 JDBC improvements (Peter, Travis Bauer, Christopher Cain, William Webber,
688 Grand Unified Configuration scheme/GUC. Many options can now be set in
689 data/postgresql.conf, postmaster/postgres flags, or SET commands (Peter E)
690 Improved handling of file descriptor cache (Tom)
691 New warning code about auto-created table alias entries (Bruce)
692 Overhaul initdb process (Tom, Peter E)
693 Overhaul of inherited tables; inherited tables now accessed by default;
694 new ONLY keyword prevents it (Chris Bitmead, Tom)
695 ODBC cleanups/improvements (Nick Gorham, Stephan Szabo, Zoltan Kovacs,
697 Allow renaming of temp tables (Tom)
698 Overhaul memory manager contexts (Tom)
699 pg_dumpall uses CREATE USER or CREATE GROUP rather using COPY (Peter E)
700 Overhaul pg_dump (Philip Warner)
701 Allow pg_hba.conf secondary password file to specify only username (Peter E)
702 Allow TEMPORARY or TEMP keyword when creating temporary tables (Bruce)
703 New memory leak checker (Karel)
704 New SET SESSION CHARACTERISTICS (Thomas)
705 Allow nested block comments (Thomas)
706 Add WITHOUT TIME ZONE type qualifier (Thomas)
707 New ALTER TABLE ADD CONSTRAINT (Stephan)
708 Use NUMERIC accumulators for INTEGER aggregates (Tom)
709 Overhaul aggregate code (Tom)
710 New VARIANCE and STDDEV() aggregates
711 Improve dependency ordering of pg_dump (Philip)
712 New pg_restore command (Philip)
713 New pg_dump tar output option (Philip)
714 New pg_dump of large objects (Philip)
715 New ESCAPE option to LIKE (Thomas)
716 New case-insensitive LIKE - ILIKE (Thomas)
717 Allow functional indexes to use binary-compatible type (Tom)
718 Allow SQL functions to be used in more contexts (Tom)
719 New pg_config utility (Peter E)
720 New PL/pgSQL EXECUTE command which allows dynamic SQL and utility statements
722 New PL/pgSQL GET DIAGNOSTICS statement for SPI value access (Jan)
723 New quote_identifiers() and quote_literal() functions (Jan)
724 New ALTER TABLE table OWNER TO user command (Mark Hollomon)
725 Allow subselects in FROM, i.e. FROM (SELECT ...) [AS] alias (Tom)
726 Update PyGreSQL to version 3.1 (D'Arcy)
727 Store tables as files named by OID (Vadim)
728 New SQL function setval(seq,val,bool) for use in pg_dump (Philip)
729 Require DROP VIEW to remove views, no DROP TABLE (Mark)
730 Allow DROP VIEW view1, view2 (Mark)
731 Allow multiple objects in DROP INDEX, DROP RULE, and DROP TYPE (Tom)
732 Allow automatic conversion to/from Unicode (Tatsuo, Eiji)
733 New /contrib/pgcrypto hashing functions (Marko Kreen)
734 New pg_dumpall --globals-only option (Peter E)
735 New CHECKPOINT command for WAL which creates new WAL log file (Vadim)
736 New AT TIME ZONE syntax (Thomas)
737 Allow location of Unix domain socket to be configurable (David J. MacKenzie)
738 Allow postmaster to listen on a specific IP address (David J. MacKenzie)
739 Allow socket path name to be specified in hostname by using leading slash
741 Allow CREATE DATABASE to specify template database (Tom)
742 New utility to convert MySQL schema dumps to SQL92 and PostgreSQL (Thomas)
743 New /contrib/rserv replication toolkit (Vadim)
744 New file format for COPY BINARY (Tom)
745 New /contrib/oid2name to map numeric files to table names (B Palmer)
746 New "idle in transaction" ps status message (Marc)
747 Update to pgaccess 0.98.7 (Constantin Teodorescu)
748 pg_ctl now defaults to -w (wait) on shutdown, new -l (log) option
749 Add rudimentary dependency checking to pg_dump (Philip)
753 Fix INET/CIDR type ordering and add new functions (Tom)
754 Make OID behave as an unsigned type (Tom)
755 Allow BIGINT as synonym for INT8 (Peter E)
756 New int2 and int8 comparison operators (Tom)
757 New BIT and BIT VARYING types (Adriaan Joubert, Tom, Peter E)
758 CHAR() no longer faster than VARCHAR() because of TOAST (Tom)
759 New GIST seg/cube examples (Gene Selkov)
760 Improved round(numeric) handling (Tom)
761 Fix CIDR output formatting (Tom)
762 New CIDR abbrev() function (Tom)
766 Write-Ahead Log (WAL) to provide crash recovery with less performance
768 ANALYZE stage of VACUUM no longer exclusively locks table (Bruce)
769 Reduced file seeks (Denis Perchine)
770 Improve BTREE code for duplicate keys (Tom)
771 Store all large objects in a single table (Denis Perchine, Tom)
772 Improve memory allocation performance (Karel, Tom)
776 New function manager call conventions (Tom)
777 SGI portability fixes (David Kaelbling)
778 New configure --enable-syslog option (Peter E)
779 New BSDI README (Bruce)
780 configure script moved to top level, not /src (Peter E)
781 Makefile/configuration/compilation overhaul (Peter E)
782 New configure --with-python option (Peter E)
783 Solaris cleanups (Peter E)
784 Overhaul /contrib Makefiles (Karel)
785 New OpenSSL configuration option (Magnus, Peter E)
788 New heap_open(), heap_openr() API (Tom)
789 Remove colon and semi-colon operators (Thomas)
790 New pg_class.relkind value for views (Mark Hollomon)
791 Rename ichar() to chr() (Karel)
792 New documentation for btrim(), ascii(), chr(), repeat() (Karel)
793 Fixes for NT/Cygwin (Pete Forman)
794 AIX port fixes (Andreas)
795 New BeOS port (David Reid, Cyril Velter)
796 Add proofreader's changes to docs (Addison-Wesley, Bruce)
797 New Alpha spinlock code (Adriaan Joubert, Compaq)
798 Unixware port overhaul (Peter E)
799 New Darwin/Mac OSX port (Peter Bierman, Bruce Hartzler)
800 New FreeBSD Alpha port (Alfred)
801 Overhaul shared memory segments (Tom)
802 Add IBM S/390 support (Neale Ferguson)
803 Moved macmanuf to /contrib (Larry Rosenman)
804 Syslog improvements (Larry Rosenman)
805 New template0 database that contains no user additions (Tom)
806 New /contrib/cube and /contrib/seg GIST sample code (Gene Selkov)
807 Allow NetBSD's libedit instead of readline (Peter)
808 Improved assembly language source code format (Bruce)
809 New contrib/pg_logger
810 New --template option to createdb
811 New contrib/pg_control utility (Oliver)
812 New FreeBSD tools ipc_check, start-scripts/freebsd
815 ----------------------------------------------------------------------
819 Release date: 2000-11-11
821 This has a variety of fixes from 7.0.2.
823 ----------------------------------------------------------------------
825 Migration to version 7.0.3
827 A dump/restore is *not* required for those running 7.0.*.
829 ----------------------------------------------------------------------
834 Large object fix (Tom)
835 Fix lean in COPY WITH OIDS leak (Tom)
836 Fix backwards-index-scan (Tom)
837 Fix SELECT ... FOR UPDATE so it checks for duplicate keys (Hiroshi)
838 Add --enable-syslog to configure (Marc)
839 Fix abort transaction at backend exit in rare cases (Tom)
840 Fix for psql \l+ when multi-byte enabled (Tatsuo)
841 Allow PL/pgSQL to accept non ascii identifiers (Tatsuo)
842 Make vacuum always flush buffers (Tom)
843 Fix to allow cancel while waiting for a lock (Hiroshi)
844 Fix for memory aloocation problem in user authentication code (Tom)
845 Remove bogus use of int4out() (Tom)
846 Fixes for multiple subqueries in COALESCE or BETWEEN (Tom)
847 Fix for failure of triggers on heap open in certain cases (Jeroen van
849 Fix for erroneous selectivity of not-equals (Tom)
850 Fix for erroneous use of strcmp() (Tom)
851 Fix for bug where storage manager accesses items beyond end of file
853 Fix to include kernel errno message in all smgr elog messages (Tom)
854 Fix for '.' not in PATH at build time (SL Baur)
855 Fix for out-of-file-descriptors error (Tom)
856 Fix to make pg_dump dump 'iscachable' flag for functions (Tom)
857 Fix for subselect in targetlist of Append node (Tom)
858 Fix for mergejoin plans (Tom)
859 Fix TRUNCATE failure on relations with indexes (Tom)
860 Avoid database-wide restart on write error (Hiroshi)
861 Fix nodeMaterial to honor chgParam by recomputing its output (Tom)
862 Fix VACUUM problem with moving chain of update tuples when source and
863 destination of a tuple lie on the same page (Tom)
864 Fix user.c CommandCounterIncrement (Tom)
865 Fix for AM/PM boundary problem in to_char() (Karel Zak)
866 Fix TIME aggregate handling (Tom)
867 Fix to_char() to avoid coredump on NULL input (Tom)
869 Fix for inserting/copying longer multibyte strings into char() data
871 Fix for crash of backend, on abort (Tom)
874 ----------------------------------------------------------------------
878 Release date: 2000-06-05
880 This is a repackaging of 7.0.1 with added documentation.
882 ----------------------------------------------------------------------
884 Migration to version 7.0.2
886 A dump/restore is *not* required for those running 7.*.
888 ----------------------------------------------------------------------
892 Added documentation to tarball.
895 ----------------------------------------------------------------------
899 Release date: 2000-06-01
901 This is a cleanup release for 7.0.
903 ----------------------------------------------------------------------
905 Migration to version 7.0.1
907 A dump/restore is *not* required for those running 7.0.
909 ----------------------------------------------------------------------
913 Fix many CLUSTER failures (Tom)
914 Allow ALTER TABLE RENAME works on indexes (Tom)
915 Fix plpgsql to handle datetime->timestamp and timespan->interval (Bruce)
916 New configure --with-setproctitle switch to use setproctitle() (Marc, Bruce)
917 Fix the off by one errors in ResultSet from 6.5.3, and more.
918 jdbc ResultSet fixes (Joseph Shraibman)
919 optimizer tunings (Tom)
920 Fix create user for pgaccess
921 Fix for UNLISTEN failure
922 IRIX fixes (David Kaelbling)
923 QNX fixes (Andreas Kardos)
924 Reduce COPY IN lock level (Tom)
925 Change libpqeasy to use PQconnectdb() style parameters (Bruce)
926 Fix pg_dump to handle OID indexes (Tom)
927 Fix small memory leak (Tom)
928 Solaris fix for createdb/dropdb (Tatsuo)
929 Fix for non-blocking connections (Alfred Perlstein)
930 Fix improper recovery after RENAME TABLE failures (Tom)
931 Copy pg_ident.conf.sample into /lib directory in install (Bruce)
932 Add SJIS UDC (NEC selection IBM kanji) support (Eiji Tokuya)
933 Fix too long syslog message (Tatsuo)
934 Fix problem with quoted indexes that are too long (Tom)
935 JDBC ResultSet.getTimestamp() fix (Gregory Krasnow & Floyd Marinescu)
936 ecpg changes (Michael)
939 ----------------------------------------------------------------------
943 Release date: 2000-05-08
945 This release contains improvements in many areas, demonstrating the
946 continued growth of PostgreSQL. There are more improvements and fixes in
947 7.0 than in any previous release. The developers have confidence that this
948 is the best release yet; we do our best to put out only solid releases,
949 and this one is no exception.
951 Major changes in this release:
955 Foreign keys are now implemented, with the exception of PARTIAL
956 MATCH foreign keys. Many users have been asking for this feature,
957 and we are pleased to offer it.
961 Continuing on work started a year ago, the optimizer has been
962 improved, allowing better query plan selection and faster
963 performance with less memory usage.
967 psql, our interactive terminal monitor, has been updated with a
968 variety of new features. See the psql manual page for details.
972 SQL92 join syntax is now supported, though only as INNER JOINs for
973 this release. JOIN, NATURAL JOIN, JOIN/USING, JOIN/ON are
974 available, as are column correlation names.
976 ----------------------------------------------------------------------
978 Migration to version 7.0
980 A dump/restore using pg_dump is required for those wishing to migrate data
981 from any previous release of PostgreSQL. For those upgrading from 6.5.*,
982 you may instead use pg_upgrade to upgrade to this release; however, a full
983 dump/reload installation is always the most robust method for upgrades.
985 Interface and compatibility issues to consider for the new release
988 * The date/time types datetime and timespan have been superseded by the
989 SQL92-defined types timestamp and interval. Although there has been
990 some effort to ease the transition by allowing PostgreSQL to recognize
991 the deprecated type names and translate them to the new type names,
992 this mechanism may not be completely transparent to your existing
995 * The optimizer has been substantially improved in the area of query
996 cost estimation. In some cases, this will result in decreased query
997 times as the optimizer makes a better choice for the preferred plan.
998 However, in a small number of cases, usually involving pathological
999 distributions of data, your query times may go up. If you are dealing
1000 with large amounts of data, you may want to check your queries to
1003 * The JDBC and ODBC interfaces have been upgraded and extended.
1005 * The string function CHAR_LENGTH is now a native function. Previous
1006 versions translated this into a call to LENGTH, which could result in
1007 ambiguity with other types implementing LENGTH such as the geometric
1010 ----------------------------------------------------------------------
1016 Prevent function calls exceeding maximum number of arguments (Tom)
1017 Improve CASE construct (Tom)
1018 Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (Tom)
1019 Fix SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
1020 Fix GROUP BY scan bug (Tom)
1021 Improvements in SQL grammar processing (Tom)
1022 Fix for views involved in INSERT ... SELECT ... (Tom)
1023 Fix for SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2 (Tom)
1024 Fix for subselects in INSERT ... SELECT (Tom)
1025 Prevent INSERT ... SELECT ... ORDER BY (Tom)
1026 Fixes for relations greater than 2GB, including vacuum
1027 Improve propagating system table changes to other backends (Tom)
1028 Improve propagating user table changes to other backends (Tom)
1029 Fix handling of temp tables in complex situations (Bruce, Tom)
1030 Allow table locking at table open, improving concurrent reliability (Tom)
1031 Properly quote sequence names in pg_dump (Ross J. Reedstrom)
1032 Prevent DROP DATABASE while others accessing
1033 Prevent any rows from being returned by GROUP BY if no rows processed (Tom)
1034 Fix SELECT COUNT(1) FROM table WHERE ...' if no rows matching WHERE (Tom)
1035 Fix pg_upgrade so it works for MVCC (Tom)
1036 Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom)
1037 Fix for "f1 datetime DEFAULT 'now'" (Tom)
1038 Fix problems with CURRENT_DATE used in DEFAULT (Tom)
1039 Allow comment-only lines, and ;;; lines too. (Tom)
1040 Improve recovery after failed disk writes, disk full (Hiroshi)
1041 Fix cases where table is mentioned in FROM but not joined (Tom)
1042 Allow HAVING clause without aggregate functions (Tom)
1043 Fix for "--" comment and no trailing newline, as seen in perl interface
1044 Improve pg_dump failure error reports (Bruce)
1045 Allow sorts and hashes to exceed 2GB file sizes (Tom)
1046 Fix for pg_dump dumping of inherited rules (Tom)
1047 Fix for NULL handling comparisons (Tom)
1048 Fix inconsistent state caused by failed CREATE/DROP commands (Hiroshi)
1049 Fix for dbname with dash
1050 Prevent DROP INDEX from interfering with other backends (Tom)
1051 Fix file descriptor leak in verify_password()
1052 Fix for "Unable to identify an operator =$" problem
1053 Fix ODBC so no segfault if CommLog and Debug enabled (Dirk Niggemann)
1054 Fix for recursive exit call (Massimo)
1055 Fix for extra-long timezones (Jeroen van Vianen)
1056 Make pg_dump preserve primary key information (Peter E)
1057 Prevent databases with single quotes (Peter E)
1058 Prevent DROP DATABASE inside transaction (Peter E)
1059 ecpg memory leak fixes (Stephen Birch)
1060 Fix for SELECT null::text, SELECT int4fac(null) and SELECT 2 + (null) (Tom)
1061 Y2K timestamp fix (Massimo)
1062 Fix for VACUUM 'HEAP_MOVED_IN was not expected' errors (Tom)
1063 Fix for views with tables/columns containing spaces (Tom)
1064 Prevent permissions on indexes (Peter E)
1065 Fix for spinlock stuck problem when error is generated (Hiroshi)
1066 Fix ipcclean on Linux
1067 Fix handling of NULL constraint conditions (Tom)
1068 Fix memory leak in odbc driver (Nick Gorham)
1069 Fix for permission check on UNION tables (Tom)
1070 Fix to allow SELECT 'a' LIKE 'a' (Tom)
1071 Fix for SELECT 1 + NULL (Tom)
1073 Fix log() on numeric type (Tom)
1074 Deprecate ':' and ';' operators
1075 Allow vacuum of temporary tables
1076 Disallow inherited columns with the same name as new columns
1077 Recover or force failure when disk space is exhausted (Hiroshi)
1078 Fix INSERT INTO ... SELECT with AS columns matching result columns
1079 Fix INSERT ... SELECT ... GROUP BY groups by target columns not source columns (Tom)
1080 Fix CREATE TABLE test (a char(5) DEFAULT text '', b int4) with INSERT (Tom)
1081 Fix UNION with LIMIT
1082 Fix CREATE TABLE x AS SELECT 1 UNION SELECT 2
1083 Fix CREATE TABLE test(col char(2) DEFAULT user)
1084 Fix mismatched types in CREATE TABLE ... DEFAULT
1085 Fix SELECT * FROM pg_class where oid in (0,-1)
1086 Fix SELECT COUNT('asdf') FROM pg_class WHERE oid=12
1087 Prevent user who can create databases can modifying pg_database table (Peter E)
1088 Fix btree to give a useful elog when key > 1/2 (page - overhead) (Tom)
1089 Fix INSERT of 0.0 into DECIMAL(4,4) field (Tom)
1093 New CLI interface include file sqlcli.h, based on SQL3/SQL98
1094 Remove all limits on query length, row length limit still exists (Tom)
1095 Update jdbc protocol to 2.0 (Jens Glaser <jens@jens.de>)
1096 Add TRUNCATE command to quickly truncate relation (Mike Mascari)
1097 Fix to give super user and createdb user proper update catalog rights (Peter E)
1098 Allow ecpg bool variables to have NULL values (Christof)
1099 Issue ecpg error if NULL value for variable with no NULL indicator (Christof)
1100 Allow ^C to cancel COPY command (Massimo)
1101 Add SET FSYNC and SHOW PG_OPTIONS commands(Massimo)
1102 Function name overloading for dynamically-loaded C functions (Frankpitt)
1103 Add CmdTuples() to libpq++(Vince)
1104 New CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands(Jan)
1105 Allow CREATE FUNCTION/WITH clause to be used for all language types
1106 configure --enable-debug adds -g (Peter E)
1107 configure --disable-debug removes -g (Peter E)
1108 Allow more complex default expressions (Tom)
1109 First real FOREIGN KEY constraint trigger functionality (Jan)
1110 Add FOREIGN KEY ... MATCH FULL ... ON DELETE CASCADE (Jan)
1111 Add FOREIGN KEY ... MATCH <unspecified> referential actions (Don Baccus)
1112 Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
1113 Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
1114 Change pgeasy connectdb() parameter ordering (Bruce)
1115 Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
1116 Add Oracle's COMMENT ON command (Mike Mascari <mascarim@yahoo.com>)
1117 libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
1118 Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
1119 Make USING in COPY optional (Bruce)
1120 Allow subselects in the target list (Tom)
1121 Allow subselects on the left side of comparison operators (Tom)
1122 New parallel regression test (Jan)
1123 Change backend-side COPY to write files with permissions 644 not 666 (Tom)
1124 Force permissions on PGDATA directory to be secure, even if it exists (Tom)
1125 Added psql LASTOID variable to return last inserted oid (Peter E)
1126 Allow concurrent vacuum and remove pg_vlock vacuum lock file (Tom)
1127 Add permissions check for vacuum (Peter E)
1128 New libpq functions to allow asynchronous connections: PQconnectStart(),
1129 PQconnectPoll(), PQresetStart(), PQresetPoll(), PQsetenvStart(),
1130 PQsetenvPoll(), PQsetenvAbort (Ewan Mellor)
1131 New libpq PQsetenv() function (Ewan Mellor)
1132 create/alter user extension (Peter E)
1133 New postmaster.pid and postmaster.opts under $PGDATA (Tatsuo)
1134 New scripts for create/drop user/db (Peter E)
1135 Major psql overhaul (Peter E)
1136 Add const to libpq interface (Peter E)
1137 New libpq function PQoidValue (Peter E)
1138 Show specific non-aggregate causing problem with GROUP BY (Tom)
1139 Make changes to pg_shadow recreate pg_pwd file (Peter E)
1140 Add aggregate(DISTINCT ...) (Tom)
1141 Allow flag to control COPY input/output of NULLs (Peter E)
1142 Make postgres user have a password by default (Peter E)
1143 Add CREATE/ALTER/DROP GROUP (Peter E)
1144 All administration scripts now support --long options (Peter E, Karel)
1145 Vacuumdb script now supports --all option (Peter E)
1146 ecpg new portable FETCH syntax
1147 Add ecpg EXEC SQL IFDEF, EXEC SQL IFNDEF, EXEC SQL ELSE, EXEC SQL ELIF
1148 and EXEC SQL ENDIF directives
1149 Add pg_ctl script to control backend start-up (Tatsuo)
1150 Add postmaster.opts.default file to store start-up flags (Tatsuo)
1151 Allow --with-mb=SQL_ASCII
1152 Increase maximum number of index keys to 16 (Bruce)
1153 Increase maximum number of function arguments to 16 (Bruce)
1154 Allow configuration of maximum number of index keys and arguments (Bruce)
1155 Allow unprivileged users to change their passwords (Peter E)
1156 Password authentication enabled; required for new users (Peter E)
1157 Disallow dropping a user who owns a database (Peter E)
1158 Change initdb option --with-mb to --enable-multibyte
1159 Add option for initdb to prompts for superuser password (Peter E)
1160 Allow complex type casts like col::numeric(9,2) and col::int2::float8 (Tom)
1161 Updated user interfaces on initdb, initlocation, pg_dump, ipcclean (Peter E)
1162 New pg_char_to_encoding() and pg_encoding_to_char() functions (Tatsuo)
1163 Libpq non-blocking mode (Alfred Perlstein)
1164 Improve conversion of types in casts that don't specify a length
1165 New plperl internal programming language (Mark Hollomon)
1166 Allow COPY IN to read file that do not end with a newline (Tom)
1167 Indicate when long identifiers are truncated (Tom)
1168 Allow aggregates to use type equivalency (Peter E)
1169 Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number()
1170 conversion functions (Karel Zak <zakkr@zf.jcu.cz>)
1171 Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
1172 Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom)
1173 Add NUMERIC and int8 types to ODBC
1174 Improve EXPLAIN results for Append, Group, Agg, Unique (Tom)
1175 Add ALTER TABLE ... ADD FOREIGN KEY (Stephan Szabo)
1176 Allow SELECT .. FOR UPDATE in PL/pgSQL (Hiroshi)
1177 Enable backward sequential scan even after reaching EOF (Hiroshi)
1178 Add btree indexing of boolean values, >= and <= (Don Baccus)
1179 Print current line number when COPY FROM fails (Massimo)
1180 Recognize POSIX time zone e.g. "PST+8" and "GMT-8" (Thomas)
1181 Add DEC as synonym for DECIMAL (Thomas)
1182 Add SESSION_USER as SQL92 keyword, same as CURRENT_USER (Thomas)
1183 Implement SQL92 column aliases (aka correlation names) (Thomas)
1184 Implement SQL92 join syntax (Thomas)
1185 Make INTERVAL reserved word allowed as a column identifier (Thomas)
1186 Implement REINDEX command (Hiroshi)
1187 Accept ALL in aggregate function SUM(ALL col) (Tom)
1188 Prevent GROUP BY from using column aliases (Tom)
1189 New psql \encoding option (Tatsuo)
1190 Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
1191 Allow negation of a negative number in all cases
1192 Add ecpg descriptors (Christof, Michael)
1193 Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
1194 Allow casts with length, like foo::char(8)
1195 New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
1196 Add support for SJIS user defined characters (Tatsuo)
1197 Larger views/rules supported
1198 Make libpq's PQconndefaults() thread-safe (Tom)
1199 Disable // as comment to be ANSI conforming, should use -- (Tom)
1200 Allow column aliases on views CREATE VIEW name (collist)
1201 Fixes for views with subqueries (Tom)
1202 Allow UPDATE table SET fld = (SELECT ...) (Tom)
1203 SET command options no longer require quotes
1204 Update pgaccess to 0.98.6
1205 New SET SEED command
1206 New pg_options.sample file
1207 New SET FSYNC command (Massimo)
1208 Allow pg_descriptions when creating tables
1209 Allow pg_descriptions when creating types, columns, and functions
1210 Allow psql \copy to allow delimiters (Peter E)
1211 Allow psql to print nulls as distinct from "" [null] (Peter E)
1215 Many array fixes (Tom)
1216 Allow bare column names to be subscripted as arrays (Tom)
1217 Improve type casting of int and float constants (Tom)
1218 Cleanups for int8 inputs, range checking, and type conversion (Tom)
1219 Fix for SELECT timespan('21:11:26'::time) (Tom)
1220 netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0 (Oleg Sharoiko)
1221 Add btree index on NUMERIC (Jan)
1222 Perl fix for large objects containing NUL characters (Douglas Thomson)
1223 ODBC fix for for large objects (free)
1224 Fix indexing of cidr data type
1225 Fix for Ethernet MAC addresses (macaddr type) comparisons
1226 Fix for date/time types when overflows happened in computations (Tom)
1227 Allow array on int8 (Peter E)
1228 Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
1229 Allow NUMERIC arrays
1230 Fix bugs in NUMERIC ceil() and floor() functions (Tom)
1231 Make char_length()/octet_length including trailing blanks (Tom)
1232 Made abstime/reltime use int4 instead of time_t (Peter E)
1233 New lztext data type for compressed text fields
1234 Revise code to handle coercion of int and float constants (Tom)
1235 Start at new code to implement a BIT and BIT VARYING type (Adriaan Joubert)
1236 NUMERIC now accepts scientific notation (Tom)
1237 NUMERIC to int4 rounds (Tom)
1238 Convert float4/8 to NUMERIC properly (Tom)
1239 Allow type conversion with NUMERIC (Thomas)
1240 Make ISO date style (2000-02-16 09:33) the default (Thomas)
1241 Add NATIONAL CHAR [ VARYING ] (Thomas)
1242 Allow NUMERIC round and trunc to accept negative scales (Tom)
1243 New TIME WITH TIME ZONE type (Thomas)
1244 Add MAX()/MIN() on time type (Thomas)
1245 Add abs(), mod(), fac() for int8 (Thomas)
1246 Rename functions to round(), sqrt(), cbrt(), pow() for float8 (Thomas)
1247 Add transcendental math functions (e.g. sin(), acos()) for float8 (Thomas)
1248 Add exp() and ln() for NUMERIC type
1249 Rename NUMERIC power() to pow() (Thomas)
1250 Improved TRANSLATE() function (Edwin Ramirez, Tom)
1251 Allow X=-Y operators (Tom)
1252 Allow SELECT float8(COUNT(*))/(SELECT COUNT(*) FROM t) FROM t GROUP BY f1; (Tom)
1253 Allow LOCALE to use indexes in regular expression searches (Tom)
1254 Allow creation of functional indexes to use default types
1258 Prevent exponential space consumption with many AND's and OR's (Tom)
1259 Collect attribute selectivity values for system columns (Tom)
1260 Reduce memory usage of aggregates (Tom)
1261 Fix for LIKE optimization to use indexes with multibyte encodings (Tom)
1262 Fix r-tree index optimizer selectivity (Thomas)
1263 Improve optimizer selectivity computations and functions (Tom)
1264 Optimize btree searching for cases where many equal keys exist (Tom)
1265 Enable fast LIKE index processing only if index present (Tom)
1266 Re-use free space on index pages with duplicates (Tom)
1267 Improve hash join processing (Tom)
1268 Prevent descending sort if result is already sorted(Hiroshi)
1269 Allow commuting of index scan query qualifications (Tom)
1270 Prefer index scans in cases where ORDER BY/GROUP BY is required (Tom)
1271 Allocate large memory requests in fix-sized chunks for performance (Tom)
1272 Fix vacuum's performance by reducing memory allocation requests (Tom)
1273 Implement constant-expression simplification (Bernard Frankpitt, Tom)
1274 Use secondary columns to be used to determine start of index scan (Hiroshi)
1275 Prevent quadruple use of disk space when doing internal sorting (Tom)
1276 Faster sorting by calling fewer functions (Tom)
1277 Create system indexes to match all system caches (Bruce, Hiroshi)
1278 Make system caches use system indexes (Bruce)
1279 Make all system indexes unique (Bruce)
1280 Improve pg_statistics management for VACUUM speed improvement (Tom)
1281 Flush backend cache less frequently (Tom, Hiroshi)
1282 COPY now reuses previous memory allocation, improving performance (Tom)
1283 Improve optimization cost estimation (Tom)
1284 Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom)
1285 Use DNF instead of CNF where appropriate (Tom, Taral)
1286 Further cleanup for OR-of-AND WHERE-clauses (Tom)
1287 Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
1288 Smarter optimizer computations for random index page access (Tom)
1289 New SET variable to control optimizer costs (Tom)
1290 Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
1291 Reduce optimizer internal housekeeping of join paths for speedup (Tom)
1292 Major subquery speedup (Tom)
1293 Fewer fsync writes when fsync is not disabled (Tom)
1294 Improved LIKE optimizer estimates (Tom)
1295 Prevent fsync in SELECT-only queries (Vadim)
1296 Make index creation use psort code, because it is now faster (Tom)
1297 Allow creation of sort temp tables > 1 Gig
1301 Fix for linux PPC compile
1302 New generic expression-tree-walker subroutine (Tom)
1303 Change form() to varargform() to prevent portability problems
1304 Improved range checking for large integers on Alphas
1305 Clean up #include in /include directory (Bruce)
1306 Add scripts for checking includes (Bruce)
1307 Remove un-needed #include's from *.c files (Bruce)
1308 Change #include's to use <> and "" as appropriate (Bruce)
1309 Enable WIN32 compilation of libpq
1310 Alpha spinlock fix from Uncle George <gatgul@voicenet.com>
1311 Overhaul of optimizer data structures (Tom)
1312 Fix to cygipc library (Yutaka Tanida)
1313 Allow pgsql to work on newer Cygwin snapshots (Dan)
1314 New catalog version number (Tom)
1316 Rename heap_replace to heap_update
1317 Update for QNX (Dr. Andreas Kardos)
1318 New platform-specific regression handling (Tom)
1319 Rename oid8 -> oidvector and int28 -> int2vector (Bruce)
1320 Included all yacc and lex files into the distribution (Peter E.)
1321 Remove lextest, no longer needed (Peter E)
1322 Fix for libpq and psql on Win32 (Magnus)
1323 Internally change datetime and timespan into timestamp and interval (Thomas)
1324 Fix for plpgsql on BSDI
1325 Add SQL_ASCII test case to the regression test (Tatsuo)
1326 configure --with-mb now deprecated (Tatsuo)
1328 NetBSD fixes (Johnny C. Lam <lamj@stat.cmu.edu>)
1329 Fixes for Alpha compiles
1330 New multibyte encodings
1333 ----------------------------------------------------------------------
1337 Release date: 1999-10-13
1339 This is basically a cleanup release for 6.5.2. We have added a new
1340 PgAccess that was missing in 6.5.2, and installed an NT-specific fix.
1342 ----------------------------------------------------------------------
1344 Migration to version 6.5.3
1346 A dump/restore is *not* required for those running 6.5.*.
1348 ----------------------------------------------------------------------
1352 Updated version of pgaccess 0.98
1354 Fix dumping rules on inherited tables
1357 ----------------------------------------------------------------------
1361 Release date: 1999-09-15
1363 This is basically a cleanup release for 6.5.1. We have fixed a variety of
1364 problems reported by 6.5.1 users.
1366 ----------------------------------------------------------------------
1368 Migration to version 6.5.2
1370 A dump/restore is *not* required for those running 6.5.*.
1372 ----------------------------------------------------------------------
1376 subselect+CASE fixes(Tom)
1377 Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren Sefcik)
1378 Fixes for CASE in WHERE join clauses(Tom)
1379 Fix BTScan abort(Tom)
1380 Repair the check for redundant UNIQUE and PRIMARY KEY indexes(Thomas)
1381 Improve it so that it checks for multi-column constraints(Thomas)
1382 Fix for Win32 making problem with MB enabled(Hiroki Kataoka)
1383 Allow BSD yacc and bison to compile pl code(Bruce)
1384 Fix SET NAMES working
1386 Fix vacuum's memory consumption(Hiroshi,Tatsuo)
1387 Reduce the total memory consumption of vacuum(Tom)
1388 Fix for timestamp(datetime)
1389 Rule deparsing bugfixes(Tom)
1390 Fix quoting problems in mkMakefile.tcldefs.sh.in and mkMakefile.tkdefs.sh.in(Tom)
1391 This is to re-use space on index pages freed by vacuum(Vadim)
1392 document -x for pg_dump(Bruce)
1393 Fix for unary operators in rule deparser(Tom)
1394 Comment out FileUnlink of excess segments during mdtruncate()(Tom)
1395 Irix linking fix from Yu Cao >yucao@falcon.kla-tencor.com<
1396 Repair logic error in LIKE: should not return LIKE_ABORT
1397 when reach end of pattern before end of text(Tom)
1398 Repair incorrect cleanup of heap memory allocation during transaction abort(Tom)
1399 Updated version of pgaccess 0.98
1402 ----------------------------------------------------------------------
1406 Release date: 1999-07-15
1408 This is basically a cleanup release for 6.5. We have fixed a variety of
1409 problems reported by 6.5 users.
1411 ----------------------------------------------------------------------
1413 Migration to version 6.5.1
1415 A dump/restore is *not* required for those running 6.5.
1417 ----------------------------------------------------------------------
1422 Portability fixes for linux_ppc, Irix, linux_alpha, OpenBSD, alpha
1423 Remove QUERY_LIMIT, use SELECT...LIMIT
1424 Fix for EXPLAIN on inheritance(Tom)
1425 Patch to allow vacuum on multi-segment tables(Hiroshi)
1426 R-Tree optimizer selectivity fix(Tom)
1427 ACL file descriptor leak fix(Atsushi Ogawa)
1428 New expresssion subtree code(Tom)
1429 Avoid disk writes for read-only transactions(Vadim)
1430 Fix for removal of temp tables if last transaction was aborted(Bruce)
1431 Fix to prevent too large tuple from being created(Bruce)
1433 Allow port numbers 32k - 64k(Bruce)
1434 Add ^ precidence(Bruce)
1435 Rename sort files called pg_temp to pg_sorttemp(Bruce)
1436 Fix for microseconds in time values(Tom)
1437 Tutorial source cleanup
1439 Fix for sorting of NULL's in some cases(Tom)
1440 Shared library dependencies fixed (Tom)
1441 Fixed glitches affecting GROUP BY in subselects(Tom)
1442 Fix some compiler warnings (Tomoaki Nishiyama)
1443 Add Win1250 (Czech) support (Pavel Behal)
1446 ----------------------------------------------------------------------
1450 Release date: 1999-06-09
1452 This release marks a major step in the development team's mastery of the
1453 source code we inherited from Berkeley. You will see we are now easily
1454 adding major features, thanks to the increasing size and experience of our
1455 world-wide development team.
1457 Here is a brief summary of the more notable changes:
1459 Multi-version concurrency control(MVCC)
1461 This removes our old table-level locking, and replaces it with a
1462 locking system that is superior to most commercial database
1463 systems. In a traditional system, each row that is modified is
1464 locked until committed, preventing reads by other users. MVCC uses
1465 the natural multi-version nature of PostgreSQL to allow readers to
1466 continue reading consistent data during writer activity. Writers
1467 continue to use the compact pg_log transaction system. This is all
1468 performed without having to allocate a lock for every row like
1469 traditional database systems. So, basically, we no longer are
1470 restricted by simple table-level locking; we have something better
1471 than row-level locking.
1473 Hot backups from pg_dump
1475 pg_dump takes advantage of the new MVCC features to give a
1476 consistent database dump/backup while the database stays online
1477 and available for queries.
1481 We now have a true numeric data type, with user-specified
1486 Temporary tables are guaranteed to have unique names within a
1487 database session, and are destroyed on session exit.
1491 We now have CASE, INTERSECT, and EXCEPT statement support. We have
1492 new LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL, SELECT ... FOR
1493 UPDATE, and an improved LOCK TABLE command.
1497 We continue to speed up PostgreSQL, thanks to the variety of
1498 talents within our team. We have sped up memory allocation,
1499 optimization, table joins, and row transfer routines.
1503 We continue to expand our port list, this time including Windows
1504 NT/ix86 and NetBSD/arm32.
1508 Most interfaces have new versions, and existing functionality has
1513 New and updated material is present throughout the documentation.
1514 New FAQs have been contributed for SGI and AIX platforms. The
1515 Tutorial has introductory information on SQL from Stefan
1516 Simkovics. For the User's Guide, there are reference pages
1517 covering the postmaster and more utility programs, and a new
1518 appendix contains details on date/time behavior. The
1519 Administrator's Guide has a new chapter on troubleshooting from
1520 Tom Lane. And the Programmer's Guide has a description of query
1521 processing, also from Stefan, and details on obtaining the
1522 PostgreSQL source tree via anonymous CVS and CVSup.
1524 ----------------------------------------------------------------------
1526 Migration to version 6.5
1528 A dump/restore using pg_dump is required for those wishing to migrate data
1529 from any previous release of PostgreSQL. pg_upgrade can *not* be used to
1530 upgrade to this release because the on-disk structure of the tables has
1531 changed compared to previous releases.
1533 The new Multi-Version Concurrency Control (MVCC) features can give
1534 somewhat different behaviors in multi-user environments. *Read and
1535 understand the following section to ensure that your existing applications
1536 will give you the behavior you need.*
1538 ----------------------------------------------------------------------
1540 Multi-Version Concurrency Control
1542 Because readers in 6.5 don't lock data, regardless of transaction
1543 isolation level, data read by one transaction can be overwritten by
1544 another. In other words, if a row is returned by "SELECT" it doesn't mean
1545 that this row really exists at the time it is returned (i.e. sometime
1546 after the statement or transaction began) nor that the row is protected
1547 from being deleted or updated by concurrent transactions before the
1548 current transaction does a commit or rollback.
1550 To ensure the actual existence of a row and protect it against concurrent
1551 updates one must use "SELECT FOR UPDATE" or an appropriate "LOCK TABLE"
1552 statement. This should be taken into account when porting applications
1553 from previous releases of PostgreSQL and other environments.
1555 Keep the above in mind if you are using "contrib/refint.*" triggers for
1556 referential integrity. Additional techniques are required now. One way is
1557 to use "LOCK parent_table IN SHARE ROW EXCLUSIVE MODE" command if a
1558 transaction is going to update/delete a primary key and use "LOCK
1559 parent_table IN SHARE MODE" command if a transaction is going to
1560 update/insert a foreign key.
1562 Note: Note that if you run a transaction in SERIALIZABLE mode then you
1563 must execute the "LOCK" commands above before execution of any DML
1564 statement ("SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO") in the
1567 These inconveniences will disappear in the future when the ability to read
1568 dirty (uncommitted) data (regardless of isolation level) and true
1569 referential integrity will be implemented.
1571 ----------------------------------------------------------------------
1577 Fix text<->float8 and text<->float4 conversion functions(Thomas)
1578 Fix for creating tables with mixed-case constraints(Billy)
1579 Change exp()/pow() behavior to generate error on underflow/overflow(Jan)
1580 Fix bug in pg_dump -z
1581 Memory overrun cleanups(Tatsuo)
1582 Fix for lo_import crash(Tatsuo)
1583 Adjust handling of data type names to suppress double quotes(Thomas)
1584 Use type coercion for matching columns and DEFAULT(Thomas)
1585 Fix deadlock so it only checks once after one second of sleep(Bruce)
1586 Fixes for aggregates and PL/pgsql(Hiroshi)
1587 Fix for subquery crash(Vadim)
1588 Fix for libpq function PQfnumber and case-insensitive names(Bahman Rafatjoo)
1589 Fix for large object write-in-middle, no extra block, memory consumption(Tatsuo)
1590 Fix for pg_dump -d or -D and quote special characters in INSERT
1591 Repair serious problems with dynahash(Tom)
1592 Fix INET/CIDR portability problems
1593 Fix problem with selectivity error in ALTER TABLE ADD COLUMN(Bruce)
1594 Fix executor so mergejoin of different column types works(Tom)
1595 Fix for Alpha OR selectivity bug
1596 Fix OR index selectivity problem(Bruce)
1597 Fix so \d shows proper length for char()/varchar()(Ryan)
1598 Fix tutorial code(Clark)
1599 Improve destroyuser checking(Oliver)
1600 Fix for Kerberos(Rodney McDuff)
1601 Fix for dropping database while dirty buffers(Bruce)
1602 Fix so sequence nextval() can be case-sensitive(Bruce)
1604 Drop buffers before destroying database files(Bruce)
1605 Fix case where executor evaluates functions twice(Tatsuo)
1606 Allow sequence nextval actions to be case-sensitive(Bruce)
1607 Fix optimizer indexing not working for negative numbers(Bruce)
1608 Fix for memory leak in executor with fjIsNull
1609 Fix for aggregate memory leaks(Erik Riedel)
1610 Allow username containing a dash GRANT permissions
1611 Cleanup of NULL in inet types
1612 Clean up system table bugs(Tom)
1613 Fix problems of PAGER and \? command(Masaaki Sakaida)
1614 Reduce default multi-segment file size limit to 1GB(Peter)
1615 Fix for dumping of CREATE OPERATOR(Tom)
1616 Fix for backward scanning of cursors(Hiroshi Inoue)
1617 Fix for COPY FROM STDIN when using \i(Tom)
1618 Fix for subselect is compared inside an expression(Jan)
1619 Fix handling of error reporting while returning rows(Tom)
1620 Fix problems with reference to array types(Tom,Jan)
1621 Prevent UPDATE SET oid(Jan)
1622 Fix pg_dump so -t option can handle case-sensitive tablenames
1623 Fixes for GROUP BY in special cases(Tom, Jan)
1624 Fix for memory leak in failed queries(Tom)
1625 DEFAULT now supports mixed-case identifiers(Tom)
1626 Fix for multi-segment uses of DROP/RENAME table, indexes(Ole Gjerde)
1627 Disable use of pg_dump with both -o and -d options(Bruce)
1628 Allow pg_dump to properly dump GROUP permissions(Bruce)
1629 Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan)
1630 Fix for computations in views(Jan)
1631 Fix for aggregates on array indexes(Tom)
1632 Fix for DEFAULT handles single quotes in value requiring too many quotes
1633 Fix security problem with non-super users importing/exporting large objects(Tom)
1634 Rollback of transaction that creates table cleaned up properly(Tom)
1635 Fix to allow long table and column names to generate proper serial names(Tom)
1639 Add "vacuumdb" utility
1640 Speed up libpq by allocating memory better(Tom)
1641 EXPLAIN all indexes used(Tom)
1642 Implement CASE, COALESCE, NULLIF expression(Thomas)
1643 New pg_dump table output format(Constantin)
1644 Add string min()/max() functions(Thomas)
1645 Extend new type coercion techniques to aggregates(Thomas)
1646 New moddatetime contrib(Terry)
1647 Update to pgaccess 0.96(Constantin)
1648 Add routines for single-byte "char" type(Thomas)
1649 Improved substr() function(Thomas)
1650 Improved multibyte handling(Tatsuo)
1651 Multi-version concurrency control/MVCC(Vadim)
1652 New Serialized mode(Vadim)
1653 Fix for tables over 2gigs(Peter)
1654 New SET TRANSACTION ISOLATION LEVEL(Vadim)
1655 New LOCK TABLE IN ... MODE(Vadim)
1656 Update ODBC driver(Byron)
1657 New NUMERIC data type(Jan)
1658 New SELECT FOR UPDATE(Vadim)
1659 Handle "NaN" and "Infinity" for input values(Jan)
1660 Improved date/year handling(Thomas)
1661 Improved handling of backend connections(Magnus)
1662 New options ELOG_TIMESTAMPS and USE_SYSLOG options for log files(Massimo)
1663 New TCL_ARRAYS option(Massimo)
1664 New INTERSECT and EXCEPT(Stefan)
1665 New pg_index.indisprimary for primary key tracking(D'Arcy)
1666 New pg_dump option to allow dropping of tables before creation(Brook)
1667 Speedup of row output routines(Tom)
1668 New READ COMMITTED isolation level(Vadim)
1669 New TEMP tables/indexes(Bruce)
1670 Prevent sorting if result is already sorted(Jan)
1671 New memory allocation optimization(Jan)
1672 Allow psql to do \p\g(Bruce)
1673 Allow multiple rule actions(Jan)
1674 Added LIMIT/OFFSET functionality(Jan)
1675 Improve optimizer when joining a large number of tables(Bruce)
1676 New intro to SQL from S. Simkovics' Master's Thesis (Stefan, Thomas)
1677 New intro to backend processing from S. Simkovics' Master's Thesis (Stefan)
1678 Improved int8 support(Ryan Bradetich, Thomas, Tom)
1679 New routines to convert between int8 and text/varchar types(Thomas)
1680 New bushy plans, where meta-tables are joined(Bruce)
1681 Enable right-hand queries by default(Bruce)
1682 Allow reliable maximum number of backends to be set at configure time
1683 (--with-maxbackends and postmaster switch (-N backends))(Tom)
1684 GEQO default now 10 tables because of optimizer speedups(Tom)
1685 Allow NULL=Var for MS-SQL portability(Michael, Bruce)
1686 Modify contrib check_primary_key() so either "automatic" or "dependent"(Anand)
1687 Allow psql \d on a view show query(Ryan)
1688 Speedup for LIKE(Bruce)
1689 Ecpg fixes/features, see src/interfaces/ecpg/ChangeLog file(Michael)
1690 JDBC fixes/features, see src/interfaces/jdbc/CHANGELOG(Peter)
1691 Make % operator have precedence like /(Bruce)
1692 Add new postgres -O option to allow system table structure changes(Bruce)
1693 Update contrib/pginterface/findoidjoins script(Tom)
1694 Major speedup in vacuum of deleted rows with indexes(Vadim)
1695 Allow non-SQL functions to run different versions based on arguments(Tom)
1696 Add -E option that shows actual queries sent by \dt and friends(Masaaki Sakaida)
1697 Add version number in start-up banners for psql(Masaaki Sakaida)
1698 New contrib/vacuumlo removes large objects not referenced(Peter)
1699 New initialization for table sizes so non-vacuumed tables perform better(Tom)
1700 Improve error messages when a connection is rejected(Tom)
1701 Support for arrays of char() and varchar() fields(Massimo)
1702 Overhaul of hash code to increase reliability and performance(Tom)
1703 Update to PyGreSQL 2.4(D'Arcy)
1704 Changed debug options so -d4 and -d5 produce different node displays(Jan)
1705 New pg_options: pretty_plan, pretty_parse, pretty_rewritten(Jan)
1706 Better optimization statistics for system table access(Tom)
1707 Better handling of non-default block sizes(Massimo)
1708 Improve GEQO optimizer memory consumption(Tom)
1709 UNION now suppports ORDER BY of columns not in target list(Jan)
1710 Major libpq++ improvements(Vince Vielhaber)
1711 pg_dump now uses -z(ACL's) as default(Bruce)
1712 backend cache, memory speedups(Tom)
1713 have pg_dump do everything in one snapshot transaction(Vadim)
1714 fix for large object memory leakage, fix for pg_dumping(Tom)
1715 INET type now respects netmask for comparisons
1716 Make VACUUM ANALYZE only use a readlock(Vadim)
1717 Allow VIEWs on UNIONS(Jan)
1718 pg_dump now can generate consistent snapshots on active databases(Vadim)
1722 Improve port matching(Tom)
1723 Portability fixes for SunOS
1724 Add NT/Win32 backend port and enable dynamic loading(Magnus and Daniel Horak)
1725 New port to Cobalt Qube(Mips) running Linux(Tatsuo)
1726 Port to NetBSD/m68k(Mr. Mutsuki Nakajima)
1727 Port to NetBSD/sun3(Mr. Mutsuki Nakajima)
1728 Port to NetBSD/macppc(Toshimi Aoki)
1729 Fix for tcl/tk configuration(Vince)
1730 Removed CURRENT keyword for rule queries(Jan)
1731 NT dynamic loading now works(Daniel Horak)
1732 Add ARM32 support(Andrew McMurry)
1733 Better support for HPUX 11 and Unixware
1734 Improve file handling to be more uniform, prevent file descriptor leak(Tom)
1735 New install commands for plpgsql(Jan)
1738 ----------------------------------------------------------------------
1742 Release date: 1998-12-20
1744 The 6.4.1 release was improperly packaged. This also has one additional
1747 ----------------------------------------------------------------------
1749 Migration to version 6.4.2
1751 A dump/restore is *not* required for those running 6.4.*.
1753 ----------------------------------------------------------------------
1757 Fix for datetime constant problem on some platforms(Thomas)
1759 ----------------------------------------------------------------------
1763 Release date: 1998-12-18
1765 This is basically a cleanup release for 6.4. We have fixed a variety of
1766 problems reported by 6.4 users.
1768 ----------------------------------------------------------------------
1770 Migration to version 6.4.1
1772 A dump/restore is *not* required for those running 6.4.
1774 ----------------------------------------------------------------------
1778 Add pg_dump -N flag to force double quotes around identifiers. This is
1780 Fix for NOT in where clause causing crash(Bruce)
1781 EXPLAIN VERBOSE coredump fix(Vadim)
1782 Fix shared-library problems on Linux
1783 Fix test for table existance to allow mixed-case and whitespace in
1784 the table name(Thomas)
1785 Fix a couple of pg_dump bugs
1786 Configure matches template/.similar entries better(Tom)
1787 Change builtin function names from SPI_* to spi_*
1788 OR WHERE clause fix(Vadim)
1789 Fixes for mixed-case table names(Billy)
1790 contrib/linux/postgres.init.csh/sh fix(Thomas)
1791 libpq memory overrun fix
1793 Change exp() behavior to generate error on underflow(Thomas)
1794 pg_dump fixes for memory leak, inheritance constraints, layout change
1795 update pgaccess to 0.93
1796 Fix prototype for 64-bit platforms
1797 Multibyte fixes(Tatsuo)
1799 Fix memory overruns(Tatsuo)
1800 Fix for lo_import() crash(Bruce)
1801 Better search for install program(Tom)
1804 Use implicit type coercion for matching DEFAULT values(Thomas)
1805 Add routines to help with single-byte (internal) character type(Thomas)
1806 Compilation of libpq for Win32 fixes(Magnus)
1807 Upgrade to PyGreSQL 2.2(D'Arcy)
1809 ----------------------------------------------------------------------
1813 Release date: 1998-10-30
1815 There are *many* new features and improvements in this release. Thanks to
1816 our developers and maintainers, nearly every aspect of the system has
1817 received some attention since the previous release. Here is a brief,
1820 * Views and rules are now functional thanks to extensive new code in the
1821 rewrite rules system from Jan Wieck. He also wrote a chapter on it for
1822 the Programmer's Guide.
1824 * Jan also contributed a second procedural language, PL/pgSQL, to go
1825 with the original PL/pgTCL procedural language he contributed last
1828 * We have optional multiple-byte character set support from Tatsuo Iishi
1829 to complement our existing locale support.
1831 * Client/server communications has been cleaned up, with better support
1832 for asynchronous messages and interrupts thanks to Tom Lane.
1834 * The parser will now perform automatic type coercion to match arguments
1835 to available operators and functions, and to match columns and
1836 expressions with target columns. This uses a generic mechanism which
1837 supports the type extensibility features of PostgreSQL. There is a new
1838 chapter in the User's Guide which covers this topic.
1840 * Three new data types have been added. Two types, inet and cidr,
1841 support various forms of IP network, subnet, and machine addressing.
1842 There is now an 8-byte integer type available on some platforms. See
1843 the chapter on data types in the User's Guide for details. A fourth
1844 type, serial, is now supported by the parser as an amalgam of the int4
1845 type, a sequence, and a unique index.
1847 * Several more SQL92-compatible syntax features have been added,
1848 including "INSERT DEFAULT VALUES"
1850 * The automatic configuration and installation system has received some
1851 attention, and should be more robust for more platforms than it has
1854 ----------------------------------------------------------------------
1856 Migration to version 6.4
1858 A dump/restore using pg_dump or pg_dumpall is required for those wishing
1859 to migrate data from any previous release of PostgreSQL.
1861 ----------------------------------------------------------------------
1867 Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
1868 Remove char2-16 data types, use char/varchar(Darren)
1869 Pqfn not handles a NOTICE message(Anders)
1870 Reduced busywaiting overhead for spinlocks with many backends (dg)
1871 Stuck spinlock detection (dg)
1872 Fix up "ISO-style" timespan decoding and encoding(Thomas)
1873 Fix problem with table drop after rollback of transaction(Vadim)
1874 Change error message and remove non-functional update message(Vadim)
1875 Fix for COPY array checking
1876 Fix for SELECT 1 UNION SELECT NULL
1877 Fix for buffer leaks in large object calls(Pascal)
1878 Change owner from oid to int4 type(Bruce)
1879 Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
1880 Fix for shared invalidation cache overflow(Massimo)
1881 Prevent file descriptor leaks in failed COPY's(Bruce)
1882 Fix memory leak in libpgtcl's pg_select(Constantin)
1883 Fix problems with username/passwords over 8 characters(Tom)
1884 Fix problems with handling of asynchronous NOTIFY in backend(Tom)
1885 Fix of many bad system table entries(Tom)
1889 Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael)
1890 Show the index used in an EXPLAIN(Zeugswetter)
1891 EXPLAIN invokes rule system and shows plan(s) for rewritten queries(Jan)
1892 Multibyte awareness of many data types and functions, via configure(Tatsuo)
1893 New configure --with-mb option(Tatsuo)
1894 New initdb --pgencoding option(Tatsuo)
1895 New createdb -E multibyte option(Tatsuo)
1896 Select version(); now returns PostgreSQL version(Jeroen)
1897 Libpq now allows asynchronous clients(Tom)
1898 Allow cancel from client of backend query(Tom)
1899 Psql now cancels query with Control-C(Tom)
1900 Libpq users need not issue dummy queries to get NOTIFY messages(Tom)
1901 NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom)
1902 PGresult struct now includes associated error message, if any(Tom)
1903 Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
1904 Add routines to convert between varchar and bpchar(Thomas)
1905 Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
1906 Add bit flags to support timezonehour and minute in data retrieval(Thomas)
1907 Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
1908 Fixes for unary minus parsing with leading spaces(Thomas)
1909 Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
1910 Check for and properly ignore FOREIGN KEY column constraints(Thomas)
1911 Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
1912 Enable HAVING clause but no fixes elsewhere yet.
1913 Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
1914 Save string type if specified for DEFAULT clause handling(Thomas)
1915 Coerce operations involving different data types(Thomas)
1916 Allow some index use for columns of different types(Thomas)
1917 Add capabilities for automatic type conversion(Thomas)
1918 Cleanups for large objects, so file is truncated on open(Peter)
1919 Readline cleanups(Tom)
1920 Allow psql \f \ to make spaces as delimiter(Bruce)
1921 Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
1922 Msql compatibility library in /contrib(Aldrin)
1923 Remove the requirement that ORDER/GROUP BY clause identifiers be
1924 included in the target list(David)
1925 Convert columns to match columns in UNION clauses(Thomas)
1926 Remove fork()/exec() and only do fork()(Bruce)
1927 Jdbc cleanups(Peter)
1928 Show backend status on ps command line(only works on some platforms)(Bruce)
1929 Pg_hba.conf now has a sameuser option in the database field
1930 Make lo_unlink take oid param, not int4
1931 New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce)
1932 Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom)
1933 libpgtcl cleanups(Tom)
1934 Add -error option to libpgtcl's pg_result command(Tom)
1935 New locale patch, see docs/README/locale(Oleg)
1936 Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
1937 New contrib/lo code for large object orphan removal(Peter)
1938 New psql command "SET CLIENT_ENCODING TO 'encoding'" for multibytes
1939 feature, see /doc/README.mb(Tatsuo)
1940 /contrib/noupdate code to revoke update permission on a column
1941 Libpq can now be compiled on win32(Magnus)
1942 Add PQsetdbLogin() in libpq
1943 New 8-byte integer type, checked by configure for OS support(Thomas)
1944 Better support for quoted table/column names(Thomas)
1945 Surround table and column names with double-quotes in pg_dump(Thomas)
1946 PQreset() now works with passwords(Tom)
1947 Handle case of GROUP BY target list column number out of range(David)
1948 Allow UNION in subselects
1949 Add auto-size to screen to \d? commands(Bruce)
1950 Use UNION to show all \d? results in one query(Bruce)
1951 Add \d? field search feature(Bruce)
1952 Pg_dump issues fewer \connect requests(Tom)
1953 Make pg_dump -z flag work better, document it in manual page(Tom)
1954 Add HAVING clause with full support for subselects and unions(Stephan)
1955 Full text indexing routines in contrib/fulltextindex(Maarten)
1956 Transaction ids now stored in shared memory(Vadim)
1957 New PGCLIENTENCODING when issuing COPY command(Tatsuo)
1958 Support for SQL92 syntax "SET NAMES"(Tatsuo)
1959 Support for LATIN2-5(Tatsuo)
1960 Add UNICODE regression test case(Tatsuo)
1961 Lock manager cleanup, new locking modes for LLL(Vadim)
1962 Allow index use with OR clauses(Bruce)
1963 Allows "SELECT NULL ORDER BY 1;"
1964 Explain VERBOSE prints the plan, and now pretty-prints the plan to
1965 the postmaster log file(Bruce)
1966 Add indexes display to \d command(Bruce)
1967 Allow GROUP BY on functions(David)
1968 New pg_class.relkind for large objects(Bruce)
1969 New way to send libpq NOTICE messages to a different location(Tom)
1970 New \w write command to psql(Bruce)
1971 New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
1972 Allow binary-compatible indexes to be considered when checking for valid
1973 Indexes for restriction clauses containing a constant(Thomas)
1974 New ISBN/ISSN code in /contrib/isbn_issn
1975 Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas)
1976 New rewrite system fixes many problems with rules and views(Jan)
1977 * Rules on relations work
1978 * Event qualifications on insert/update/delete work
1979 * New OLD variable to reference CURRENT, CURRENT will be remove in future
1980 * Update rules can reference NEW and OLD in rule qualifications/actions
1981 * Insert/update/delete rules on views work
1982 * Multiple rule actions are now supported, surrounded by parentheses
1983 * Regular users can create views/rules on tables they have RULE permits
1984 * Rules and views inherit the permissions on the creator
1985 * No rules at the column level
1986 * No UPDATE NEW/OLD rules
1987 * New pg_tables, pg_indexes, pg_rules and pg_views system views
1988 * Only a single action on SELECT rules
1989 * Total rewrite overhaul, perhaps for 6.5
1991 * handle aggregates on views
1992 * handle insert into select from view works
1993 System indexes are now multi-key(Bruce)
1994 Oidint2, oidint4, and oidname types are removed(Bruce)
1995 Use system cache for more system table lookups(Bruce)
1996 New backend programming language PL/pgSQL in backend/pl(Jan)
1997 New SERIAL data type, auto-creates sequence/index(Thomas)
1998 Enable assert checking without a recompile(Massimo)
1999 User lock enhancements(Massimo)
2000 New setval() command to set sequence value(Massimo)
2001 Auto-remove unix socket file on start-up if no postmaster running(Massimo)
2002 Conditional trace package(Massimo)
2003 New UNLISTEN command(Massimo)
2004 Psql and libpq now compile under win32 using win32.mak(Magnus)
2005 Lo_read no longer stores trailing NULL(Bruce)
2006 Identifiers are now truncated to 31 characters internally(Bruce)
2007 Createuser options now availble on the command line
2008 Code for 64-bit integer supported added, configure tested, int8 type(Thomas)
2009 Prevent file descriptor leaf from failed COPY(Bruce)
2010 New pg_upgrade command(Bruce)
2011 Updated /contrib directories(Massimo)
2012 New CREATE TABLE DEFAULT VALUES statement available(Thomas)
2013 New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
2014 New DECLARE and FETCH feature(Thomas)
2015 libpq's internal structures now not exported(Tom)
2016 Allow up to 8 key indexes(Bruce)
2017 Remove ARCHIVE keyword, that is no longer used(Thomas)
2018 pg_dump -n flag to supress quotes around indentifiers
2019 disable system columns for views(Jan)
2020 new INET and CIDR types for network addresses(TomH, Paul)
2021 no more double quotes in psql output
2022 pg_dump now dumps views(Terry)
2023 new SET QUERY_LIMIT(Tatsuo,Jan)
2027 /contrib cleanup(Jun)
2028 Inline some small functions called for every row(Bruce)
2031 Multibyte regression tests(Soonmyung.)
2032 Remove --disabled options from configure
2033 Define PGDOC to use POSTGRESDIR by default
2034 Make regression optional
2035 Remove extra braces code to pgindent(Bruce)
2036 Add bsdi shared library support(Bruce)
2037 New --without-CXX support configure option(Brook)
2039 Update backend flowchart in tools/backend(Bruce)
2040 Change atttypmod from int16 to int32(Bruce, Tom)
2041 Getrusage() fix for platforms that do not have it(Tom)
2042 Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page
2043 NS32K platform fixes(Phil Nelson, John Buller)
2044 Sco 7/UnixWare 2.x fixes(Billy,others)
2045 Sparc/Solaris 2.5 fixes(Ryan)
2046 Pgbuiltin.3 is obsolete, move to doc files(Thomas)
2047 Even more documention(Thomas)
2048 Nextstep support(Jacek)
2050 pginterface manual page(Bruce)
2051 shared libraries all have version numbers
2052 merged all OS-specific shared library defines into one file
2053 smarter TCL/TK configuration checking(Billy)
2054 smarter perl configuration(Brook)
2055 configure uses supplied install-sh if no install script found(Tom)
2056 new Makefile.shlib for shared library configuration(Tom)
2058 ----------------------------------------------------------------------
2062 Release date: 1998-04-07
2064 This is a bug-fix release for 6.3.x. Refer to the release notes for
2065 version 6.3 for a more complete summary of new features.
2069 * Repairs automatic configuration support for some platforms, including
2070 Linux, from breakage inadvertently introduced in version 6.3.1.
2072 * Correctly handles function calls on the left side of BETWEEN and LIKE
2075 A dump/restore is NOT required for those running 6.3 or 6.3.1. A make
2076 distclean, make, and make install is all that is required. This last step
2077 should be performed while the postmaster is not running. You should
2078 re-link any custom applications that use PostgreSQL libraries.
2080 For upgrades from pre-6.3 installations, refer to the installation and
2081 migration instructions for version 6.3.
2083 ----------------------------------------------------------------------
2087 Configure detection improvements for tcl/tk(Brook Milligan, Alvin)
2088 Manual page improvements(Bruce)
2089 BETWEEN and LIKE fix(Thomas)
2090 fix for psql \connect used by pg_dump(Oliver Elphick)
2092 pgaccess, version 0.86
2093 qsort removed, now uses libc version, cleanups(Jeroen)
2094 fix for buffer over-runs detected(Maurice Gittens)
2095 fix for buffer overrun in libpgtcl(Randy Kunkee)
2096 fix for UNION with DISTINCT or ORDER BY(Bruce)
2097 gettimeofday configure check(Doug Winterburn)
2098 Fix "indexes not used" bug(Vadim)
2099 docs additions(Thomas)
2100 Fix for backend memory leak(Bruce)
2101 libreadline cleanup(Erwan MAS)
2102 Remove DISTDIR(Bruce)
2103 Makefile dependency cleanup(Jeroen van Vianen)
2107 ----------------------------------------------------------------------
2111 Release date: 1998-03-23
2115 * Additional support for multibyte character sets.
2117 * Repair byte ordering for mixed-endian clients and servers.
2119 * Minor updates to allowed SQL syntax.
2121 * Improvements to the configuration autodetection for installation.
2123 A dump/restore is NOT required for those running 6.3. A make distclean,
2124 make, and make install is all that is required. This last step should be
2125 performed while the postmaster is not running. You should re-link any
2126 custom applications that use PostgreSQL libraries.
2128 For upgrades from pre-6.3 installations, refer to the installation and
2129 migration instructions for version 6.3.
2131 ----------------------------------------------------------------------
2135 ecpg cleanup/fixes, now version 1.1(Michael Meskes)
2136 pg_user cleanup(Bruce)
2137 large object fix for pg_dump and tclsh (alvin)
2138 LIKE fix for multiple adjacent underscores
2139 fix for redefining builtin functions(Thomas)
2141 upgrade to pg_access 0.83
2142 updated CLUSTER manual page
2143 multibyte character set support, see doc/README.mb(Tatsuo)
2144 configure --with-pgport fix
2146 big-endian fix for backend communications(Kataoka)
2147 SUBSTR() and substring() fix(Jan)
2148 several jdbc fixes(Peter)
2149 libpgtcl improvements, see libptcl/README(Randy Kunkee)
2150 Fix for "Datasize = 0" error(Vadim)
2151 Prevent \do from wrapping(Bruce)
2152 Remove duplicate Russian character set entries
2154 Allow optional TABLE keyword in LOCK and SELECT INTO(Thomas)
2155 CREATE SEQUENCE options to allow a negative integer(Thomas)
2156 Add "PASSWORD" as an allowed column identifier(Thomas)
2157 Add checks for UNION target fields(Bruce)
2158 Fix Alpha port(Dwayne Bailey)
2159 Fix for text arrays containing quotes(Doug Gibson)
2160 Solaris compile fix(Albert Chin-A-Young)
2161 Better identify tcl and tk libs and includes(Bruce)
2164 ----------------------------------------------------------------------
2168 Release date: 1998-03-01
2170 There are *many* new features and improvements in this release. Here is a
2171 brief, incomplete summary:
2173 * Many new SQL features, including full SQL92 subselect capability
2174 (everything is here but target-list subselects).
2176 * Support for client-side environment variables to specify time zone and
2179 * Socket interface for client/server connection. This is the default now
2180 so you may need to start postmaster with the "-i" flag.
2182 * Better password authorization mechanisms. Default table permissions
2185 * Old-style time travel has been removed. Performance has been improved.
2187 Note: Bruce Momjian wrote the following notes to introduce the new
2190 There are some general 6.3 issues that I want to mention. These are only
2191 the big items that can not be described in one sentence. A review of the
2192 detailed changes list is still needed.
2194 First, we now have subselects. Now that we have them, I would like to
2195 mention that without subselects, SQL is a very limited language.
2196 Subselects are a major feature, and you should review your code for places
2197 where subselects provide a better solution for your queries. I think you
2198 will find that there are more uses for subselects than you may think.
2199 Vadim has put us on the big SQL map with subselects, and fully functional
2200 ones too. The only thing you can't do with subselects is to use them in
2203 Second, 6.3 uses Unix domain sockets rather than TCP/IP by default. To
2204 enable connections from other machines, you have to use the new postmaster
2205 -i option, and of course edit "pg_hba.conf". Also, for this reason, the
2206 format of "pg_hba.conf" has changed.
2208 Third, char() fields will now allow faster access than varchar() or text.
2209 Specifically, the text and varchar() have a penalty for access to any
2210 columns after the first column of this type. char() used to also have this
2211 access penalty, but it no longer does. This may suggest that you redesign
2212 some of your tables, especially if you have short character columns that
2213 you have defined as varchar() or text. This and other changes make 6.3
2214 even faster than earlier releases.
2216 We now have passwords definable independent of any Unix file. There are
2217 new SQL USER commands. See the Administrator's Guide for more information.
2218 There is a new table, pg_shadow, which is used to store user information
2219 and user passwords, and it by default only SELECT-able by the postgres
2220 super-user. pg_user is now a view of pg_shadow, and is SELECT-able by
2221 PUBLIC. You should keep using pg_user in your application without changes.
2223 User-created tables now no longer have SELECT permission to PUBLIC by
2224 default. This was done because the ANSI standard requires it. You can of
2225 course GRANT any permissions you want after the table is created. System
2226 tables continue to be SELECT-able by PUBLIC.
2228 We also have real deadlock detection code. No more sixty-second timeouts.
2229 And the new locking code implements a FIFO better, so there should be less
2230 resource starvation during heavy use.
2232 Many complaints have been made about inadequate documentation in previous
2233 releases. Thomas has put much effort into many new manuals for this
2234 release. Check out the doc/ directory.
2236 For performance reasons, time travel is gone, but can be implemented using
2237 triggers (see "pgsql/contrib/spi/README"). Please check out the new \d
2238 command for types, operators, etc. Also, views have their own permissions
2239 now, not based on the underlying tables, so permissions on them have to be
2240 set separately. Check "/pgsql/interfaces" for some new ways to talk to
2243 This is the first release that really required an explanation for existing
2244 users. In many ways, this was necessary because the new release removes
2245 many limitations, and the work-arounds people were using are no longer
2248 ----------------------------------------------------------------------
2250 Migration to version 6.3
2252 A dump/restore using pg_dump or pg_dumpall is required for those wishing
2253 to migrate data from any previous release of PostgreSQL.
2255 ----------------------------------------------------------------------
2261 Fix binary cursors broken by MOVE implementation(Vadim)
2262 Fix for tcl library crash(Jan)
2263 Fix for array handling, from Gerhard Hintermayer
2264 Fix acl error, and remove duplicate pqtrace(Bruce)
2265 Fix psql \e for empty file(Bruce)
2266 Fix for textcat on varchar() fields(Bruce)
2267 Fix for DBT Sendproc (Zeugswetter Andres)
2268 Fix vacuum analyze syntax problem(Bruce)
2269 Fix for international identifiers(Tatsuo)
2270 Fix aggregates on inherited tables(Bruce)
2271 Fix substr() for out-of-bounds data
2272 Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce)
2273 Fix notty output to show status result. -q option still turns it off(Bruce)
2274 Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce)
2276 Fix for PQtrace start/stop several times(Bruce)
2277 Fix a variety of locking problems like newer lock waiters getting
2278 lock before older waiters, and having readlock people not share
2279 locks if a writer is waiting for a lock, and waiting writers not
2280 getting priority over waiting readers(Bruce)
2281 Fix crashes in psql when executing queries from external files(James)
2282 Fix problem with multiple order by columns, with the first one having
2284 Use correct hash table support functions for float8 and int4(Thomas)
2285 Re-enable JOIN= option in CREATE OPERATOR statement (Thomas)
2286 Change precedence for boolean operators to match expected behavior(Thomas)
2287 Generate elog(ERROR) on over-large integer(Bruce)
2288 Allow multiple-argument functions in constraint clauses(Thomas)
2289 Check boolean input literals for 'true','false','yes','no','1','0'
2290 and throw elog(ERROR) if unrecognized(Thomas)
2291 Major large objects fix
2292 Fix for GROUP BY showing duplicates(Vadim)
2293 Fix for index scans in MergeJion(Vadim)
2297 Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas)
2298 New User Manual(Thomas, others)
2299 Speedup by inlining some frequently-called functions
2300 Real deadlock detection, no more timeouts(Bruce)
2301 Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,
2302 CURRENT_USER(Thomas)
2303 Modify constraint syntax to be SQL92-compliant(Thomas)
2304 Implement SQL92 PRIMARY KEY and UNIQUE clauses using indexes(Thomas)
2305 Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
2306 Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
2307 Allow PostgreSQL-style casting ("::") of non-constants(Thomas)
2308 Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
2309 Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
2310 Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas)
2311 Allow SQL92 delimited identifiers(Thomas)
2312 Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas)
2313 Support SQL92 syntax for type coercion of literal strings
2314 (e.g. "DATETIME 'now'")(Thomas)
2315 Add conversions for int2, int4, and OID types to and from text(Thomas)
2316 Use shared lock when building indexes(Vadim)
2317 Free memory allocated for an user query inside transaction block after
2318 this query is done, was turned off in <= 6.2.1(Vadim)
2319 New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
2320 New PostgreSQL Procedural Language (PL) backend interface(Jan)
2321 Rename pg_dump -H option to -h(Bruce)
2322 Add Java support for passwords, European dates(Peter)
2323 Use indexes for LIKE and ~, !~ operations(Bruce)
2324 Add hash functions for datetime and timespan(Thomas)
2325 Time Travel removed(Vadim, Bruce)
2326 Add paging for \d and \z, and fix \i(Bruce)
2327 Add Unix domain socket support to backend and to frontend library(Goran)
2328 Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas)
2329 Allow more SQL92 and/or PostgreSQL reserved words as column identifiers(Thomas)
2330 Augment support for SQL92 SET TIME ZONE...(Thomas)
2331 SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
2332 Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
2333 Enable SET TIME ZONE using TZ environment variable(Thomas)
2334 Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas)
2335 Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
2336 frontend library initialization environment variables(Thomas)
2337 Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas)
2338 Add pg_description table for info on tables, columns, operators, types, and
2340 Increase 16 char limit on system table/index names to 32 characters(Bruce)
2341 Rename system indexes(Bruce)
2342 Add 'GERMAN' option to SET DATESTYLE(Thomas)
2343 Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas)
2344 Allow fractional values for delta times (e.g. '2.5 days')(Thomas)
2345 Validate numeric input more carefully for delta times(Thomas)
2346 Implement day of year as possible input to date_part()(Thomas)
2347 Define timespan_finite() and text_timespan() functions(Thomas)
2348 Remove archive stuff(Bruce)
2349 Allow for a pg_password authentication database that is separate from
2350 the system password file(Todd)
2351 Dump ACLs, GRANT, REVOKE permissions(Matt)
2352 Define text, varchar, and bpchar string length functions(Thomas)
2353 Fix Query handling for inheritance, and cost computations(Bruce)
2354 Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas)
2355 Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas)
2356 Implement UNIONs for SELECT(Bruce)
2357 Add UNION, GROUP, DISTINCT to INSERT(Bruce)
2358 varchar() stores only necessary bytes on disk(Bruce)
2359 Fix for BLOBs(Peter)
2360 Mega-Patch for JDBC...see README_6.3 for list of changes(Peter)
2361 Remove unused "option" from PQconnectdb()
2362 New LOCK command and lock manual page describing deadlocks(Bruce)
2363 Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce)
2364 Enhance psql \z to show sequences(Bruce)
2365 Show NOT NULL and DEFAULT in psql \d table(Bruce)
2366 New psql .psqlrc file start-up(Andrew)
2367 Modify sample start-up script in contrib/linux to show syslog(Thomas)
2368 New types for IP and MAC addresses in contrib/ip_and_mac(TomH)
2369 Unix system time conversions with date/time types in contrib/unixdate(Thomas)
2370 Update of contrib stuff(Massimo)
2371 Add Unix socket support to DBD::Pg(Goran)
2372 New python interface (PyGreSQL 2.0)(D'Arcy)
2373 New frontend/backend protocol has a version number, network byte order(Phil)
2374 Security features in pg_hba.conf enhanced and documented, many cleanups(Phil)
2375 CHAR() now faster access than VARCHAR() or TEXT
2376 ecpg embedded SQL preprocessor
2377 Reduce system column overhead(Vadmin)
2378 Remove pg_time table(Vadim)
2379 Add pg_type attribute to identify types that need length (bpchar, varchar)
2380 Add report of offending line when COPY command fails
2381 Allow VIEW permissions to be set separately from the underlying tables.
2382 For security, use GRANT/REVOKE on views as appropriate(Jan)
2383 Tables now have no default GRANT SELECT TO PUBLIC. You must
2384 explicitly grant such permissions.
2385 Clean up tutorial examples(Darren)
2389 Add new html development tools, and flow chart in /tools/backend
2390 Fix for SCO compiles
2391 Stratus computer port Robert Gillies
2392 Added support for shlib for BSD44_derived & i386_solaris
2393 Make configure more automated(Brook)
2394 Add script to check regression test results
2395 Break parser functions into smaller files, group together(Bruce)
2396 Rename heap_create to heap_create_and_catalog, rename heap_creatr
2397 to heap_create()(Bruce)
2398 Sparc/Linux patch for locking(TomS)
2399 Remove PORTNAME and reorganize port-specific stuff(Marc)
2400 Add optimizer README file(Bruce)
2401 Remove some recursion in optimizer and clean up some code there(Bruce)
2402 Fix for NetBSD locking(Henry)
2403 Fix for libptcl make(Tatsuo)
2405 Change IS TRUE, IS FALSE, ... to expressions using "=" rather than
2406 function calls to istrue() or isfalse() to allow optimization(Thomas)
2407 Various fixes NetBSD/Sparc related(TomH)
2408 Alpha linux locking(Travis,Ryan)
2409 Change elog(WARN) to elog(ERROR)(Bruce)
2410 FAQ for FreeBSD(Marc)
2411 Bring in the PostODBC source tree as part of our standard distribution(Marc)
2412 A minor patch for HP/UX 10 vs 9(Stan)
2413 New pg_attribute.atttypmod for type-specific info like varchar length(Bruce)
2414 Unixware patches(Billy)
2415 New i386 'lock' for spin lock asm(Billy)
2416 Support for multiplexed backends is removed
2417 Start an OpenBSD port
2420 Add string functions to regression suite(Thomas)
2421 Expand a few function names formerly truncated to 16 characters(Thomas)
2422 Remove un-needed malloc() calls and replace with palloc()(Bruce)
2424 ----------------------------------------------------------------------
2428 Release date: 1997-10-17
2430 6.2.1 is a bug-fix and usability release on 6.2.
2434 * Allow strings to span lines, per SQL92.
2436 * Include example trigger function for inserting user names on table
2439 This is a minor bug-fix release on 6.2. For upgrades from pre-6.2 systems,
2440 a full dump/reload is required. Refer to the 6.2 release notes for
2443 ----------------------------------------------------------------------
2445 Migration from version 6.2 to version 6.2.1
2447 This is a minor bug-fix release. A dump/reload is not required from
2448 version 6.2, but is required from any release prior to 6.2.
2450 In upgrading from version 6.2, if you choose to dump/reload you will find
2451 that avg(money) is now calculated correctly. All other bug fixes take
2452 effect upon updating the executables.
2454 Another way to avoid dump/reload is to use the following SQL command from
2455 "psql" to update the existing system table:
2457 update pg_aggregate set aggfinalfn = 'cash_div_flt8'
2458 where aggname = 'avg' and aggbasetype = 790;
2460 This will need to be done to every existing database, including template1.
2462 ----------------------------------------------------------------------
2466 Allow TIME and TYPE column names(Thomas)
2467 Allow larger range of true/false as boolean values(Thomas)
2468 Support output of "now" and "current"(Thomas)
2469 Handle DEFAULT with INSERT of NULL properly(Vadim)
2470 Fix for relation reference counts problem in buffer manager(Vadim)
2471 Allow strings to span lines, like ANSI(Thomas)
2472 Fix for backward cursor with ORDER BY(Vadim)
2473 Fix avg(cash) computation(Thomas)
2474 Fix for specifying a column twice in ORDER/GROUP BY(Vadim)
2475 Documented new libpq function to return affected rows, PQcmdTuples(Bruce)
2476 Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan)
2479 ----------------------------------------------------------------------
2483 Release date: 1997-10-02
2485 A dump/restore is required for those wishing to migrate data from previous
2486 releases of PostgreSQL.
2488 ----------------------------------------------------------------------
2490 Migration from version 6.1 to version 6.2
2492 This migration requires a complete dump of the 6.1 database and a restore
2493 of the database in 6.2.
2495 Note that the "pg_dump" and "pg_dumpall" utility from 6.2 should be used
2496 to dump the 6.1 database.
2498 ----------------------------------------------------------------------
2500 Migration from version 1.x to version 6.2
2502 Those migrating from earlier 1.* releases should first upgrade to 1.09
2503 because the COPY output format was improved from the 1.02 release.
2505 ----------------------------------------------------------------------
2511 Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
2512 Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
2513 from Solaris(Diab Jerius)
2514 Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas)
2515 Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas)
2516 Catch non-functional delete attempts(Vadim)
2517 Change time function names to be more consistent(Michael Reifenberg)
2518 Check for zero divides(Michael Reifenberg)
2519 Fix very old bug which made tuples changed/inserted by a commnd
2520 visible to the command itself (so we had multiple update of
2521 updated tuples, etc)(Vadim)
2522 Fix for SELECT null, 'fail' FROM pg_am (Patrick)
2523 SELECT NULL as EMPTY_FIELD now allowed(Patrick)
2524 Remove un-needed signal stuff from contrib/pginterface
2525 Fix OR (where x != 1 or x isnull didn't return tuples with x NULL) (Vadim)
2526 Fix time_cmp function (Vadim)
2527 Fix handling of functions with non-attribute first argument in
2528 WHERE clauses (Vadim)
2529 Fix GROUP BY when order of entries is different from order
2530 in target list (Vadim)
2531 Fix pg_dump for aggregates without sfunc1 (Vadim)
2535 Default genetic optimizer GEQO parameter is now 8(Bruce)
2536 Allow use parameters in target list having aggregates in functions(Vadim)
2537 Added JDBC driver as an interface(Adrian & Peter)
2539 Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim)
2540 Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
2541 SPI (Server Programming Interface) allows execution of queries inside
2543 NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
2544 Include reserved words for string handling, outer joins, and unions(Thomas)
2545 Implement extended comments ("/* ... */") using exclusive states(Thomas)
2546 Add "//" single-line comments(Bruce)
2547 Remove some restrictions on characters in operator names(Thomas)
2548 DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas)
2549 Add text concatenation operator and function (SQL92)(Thomas)
2550 Support WITH TIME ZONE syntax (SQL92)(Thomas)
2551 Support INTERVAL unit TO unit syntax (SQL92)(Thomas)
2552 Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
2553 and CHARACTER VARYING (SQL92)(Thomas)
2554 Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas)
2555 Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas)
2556 Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
2557 Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
2558 Add more reserved words, mostly for SQL92 compliance(Thomas)
2559 Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
2560 Add center() routines for lseg, path, polygon(Thomas)
2561 Add distance() routines for circle-polygon, polygon-polygon(Thomas)
2562 Check explicitly for points and polygons contained within polygons
2563 using an axis-crossing algorithm(Thomas)
2564 Add routine to convert circle-box(Thomas)
2565 Merge conflicting operators for different geometric data types(Thomas)
2566 Replace distance operator "<===>" with "<->"(Thomas)
2567 Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
2568 Add routines for text trimming on both ends, substring, and string position(Thomas)
2569 Added conversion routines circle(box) and poly(circle)(Thomas)
2570 Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
2571 Allow functions and operators on internally-identical types to succeed(Bruce)
2572 Speed up backend start-up after profiling analysis(Bruce)
2573 Inline frequently called functions for performance(Bruce)
2574 Reduce open() calls(Bruce)
2575 psql: Add PAGER for \h and \?,\C fix
2576 Fix for psql pager when no tty(Bruce)
2577 New entab utility(Bruce)
2578 General trigger functions for referential integrity (Vadim)
2579 General trigger functions for time travel (Vadim)
2580 General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
2581 MOVE implementation (Vadim)
2585 HPUX 10 patches (Vladimir Turin)
2586 Added SCO support, (Daniel Harris)
2587 mkLinux patches (Tatsuo Ishii)
2588 Change geometric box terminology from "length" to "width"(Thomas)
2589 Deprecate temporary unstored slope fields in geometric code(Thomas)
2590 Remove restart instructions from INSTALL(Bruce)
2591 Look in /usr/ucb first for install(Bruce)
2592 Fix c++ copy example code(Thomas)
2593 Add -o to psql manual page(Bruce)
2594 Prevent relname unallocated string length from being copied into database(Bruce)
2595 Cleanup for NAMEDATALEN use(Bruce)
2596 Fix pg_proc names over 15 chars in output(Bruce)
2597 Add strNcpy() function(Bruce)
2598 remove some (void) casts that are unnecessary(Bruce)
2599 new interfaces directory(Marc)
2600 Replace fopen() calls with calls to fd.c functions(Bruce)
2601 Make functions static where possible(Bruce)
2602 enclose unused functions in #ifdef NOT_USED(Bruce)
2603 Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas)
2604 Changes for Digital Unix
2605 Portability fix for pg_dumpall(Bruce)
2606 Rename pg_attribute.attnvals to attdispersion(Bruce)
2607 "intro/unix" manual page now "pgintro"(Bruce)
2608 "built-in" manual page now "pgbuiltin"(Bruce)
2609 "drop" manual page now "drop_table"(Bruce)
2610 Add "create_trigger", "drop_trigger" manual pages(Thomas)
2611 Add constraints regression test(Vadim & Thomas)
2612 Add comments syntax regression test(Thomas)
2613 Add PGINDENT and support program(Bruce)
2614 Massive commit to run PGINDENT on all *.c and *.h files(Bruce)
2615 Files moved to /src/tools directory(Bruce)
2616 SPI and Trigger programming guides (Vadim & D'Arcy)
2618 ----------------------------------------------------------------------
2622 Release date: 1997-07-22
2624 ----------------------------------------------------------------------
2626 Migration from version 6.1 to version 6.1.1
2628 This is a minor bug-fix release. A dump/reload is not required from
2629 version 6.1, but is required from any release prior to 6.1. Refer to the
2630 release notes for 6.1 for more details.
2632 ----------------------------------------------------------------------
2636 fix for SET with options (Thomas)
2637 allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
2638 new psql \connect option allows changing usernames without changing databases
2639 fix for initdb --debug option(Yoshihiko Ichikawa))
2640 lextest cleanup(Bruce)
2642 fix date/time month boundary arithmetic(Thomas)
2643 fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
2644 timestamp overhauled to use standard functions(Thomas)
2645 other code cleanup in date/time routines(Thomas)
2646 psql's \d now case-insensitive(Bruce)
2647 psql's backslash commands can now have trailing semicolon(Bruce)
2648 fix memory leak in psql when using \g(Bruce)
2649 major fix for endian handling of communication to server(Thomas, Tatsuo)
2650 Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
2651 allow underscores in usernames(Bruce)
2652 pg_dumpall now returns proper status, portability fix(Bruce)
2655 ----------------------------------------------------------------------
2659 Release date: 1997-06-08
2661 The regression tests have been adapted and extensively modified for the
2662 6.1 release of PostgreSQL.
2664 Three new data types (datetime, timespan, and circle) have been added to
2665 the native set of PostgreSQL types. Points, boxes, paths, and polygons
2666 have had their output formats made consistent across the data types. The
2667 polygon output in misc.out has only been spot-checked for correctness
2668 relative to the original regression output.
2670 PostgreSQL 6.1 introduces a new, alternate optimizer which uses genetic
2671 algorithms. These algorithms introduce a random behavior in the ordering
2672 of query results when the query contains multiple qualifiers or multiple
2673 tables (giving the optimizer a choice on order of evaluation). Several
2674 regression tests have been modified to explicitly order the results, and
2675 hence are insensitive to optimizer choices. A few regression tests are for
2676 data types which are inherently unordered (e.g. points and time intervals)
2677 and tests involving those types are explicitly bracketed with "set geqo to
2678 'off'" and "reset geqo".
2680 The interpretation of array specifiers (the curly braces around atomic
2681 values) appears to have changed sometime after the original regression
2682 tests were generated. The current "./expected/*.out" files reflect this
2683 new interpretation, which may not be correct!
2685 The float8 regression test fails on at least some platforms. This is due
2686 to differences in implementations of pow() and exp() and the signaling
2687 mechanisms used for overflow and underflow conditions.
2689 The "random" results in the random test should cause the "random" test to
2690 be "failed", since the regression tests are evaluated using a simple diff.
2691 However, "random" does not seem to produce random results on my test
2692 machine (Linux/gcc/i686).
2694 ----------------------------------------------------------------------
2696 Migration to version 6.1
2698 This migration requires a complete dump of the 6.0 database and a restore
2699 of the database in 6.1.
2701 Those migrating from earlier 1.* releases should first upgrade to 1.09
2702 because the COPY output format was improved from the 1.02 release.
2704 ----------------------------------------------------------------------
2710 packet length checking in library routines
2711 lock manager priority patch
2712 check for under/over flow of float8(Bruce)
2713 multi-table join fix(Vadim)
2714 SIGPIPE crash fix(Darren)
2715 large object fixes(Sven)
2716 allow btree indexes to handle NULLs(Vadim)
2717 timezone fixes(D'Arcy)
2718 select SUM(x) can return NULL on no rows(Thomas)
2719 internal optimizer, executor bug fixes(Vadim)
2720 fix problem where inner loop in < or <= has no rows(Vadim)
2721 prevent re-commuting join index clauses(Vadim)
2722 fix join clauses for multiple tables(Vadim)
2723 fix hash, hashjoin for arrays(Vadim)
2724 fix btree for abstime type(Vadim)
2725 large object fixes(Raymond)
2726 fix buffer leak in hash indexes (Vadim)
2727 fix rtree for use in inner scan (Vadim)
2728 fix gist for use in inner scan, cleanups (Vadim, Andrea)
2729 avoid unnecessary local buffers allocation (Vadim, Massimo)
2730 fix local buffers leak in transaction aborts (Vadim)
2731 fix file manager memmory leaks, cleanups (Vadim, Massimo)
2732 fix storage manager memmory leaks (Vadim)
2733 fix btree duplicates handling (Vadim)
2734 fix deleted tuples re-incarnation caused by vacuum (Vadim)
2735 fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
2736 many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
2740 attribute optimization statistics(Bruce)
2741 much faster new btree bulk load code(Paul)
2742 BTREE UNIQUE added to bulk load code(Vadim)
2743 new lock debug code(Massimo)
2744 massive changes to libpg++(Leo)
2745 new GEQO optimizer speeds table multi-table optimization(Martin)
2746 new WARN message for non-unique insert into unique key(Marc)
2747 update x=-3, no spaces, now valid(Bruce)
2748 remove case-sensitive identifier handling(Bruce,Thomas,Dan)
2749 debug backend now pretty-prints tree(Darren)
2750 new Oracle character functions(Edmund)
2751 new plaintext password functions(Dan)
2752 no such class or insufficient privilege changed to distinct messages(Dan)
2753 new ANSI timestamp function(Dan)
2754 new ANSI Time and Date types (Thomas)
2755 move large chunks of data in backend(Martin)
2756 multi-column btree indexes(Vadim)
2757 new SET var TO value command(Martin)
2758 update transaction status on reads(Dan)
2759 new locale settings for character types(Oleg)
2760 new SEQUENCE serial number generator(Vadim)
2761 GROUP BY function now possible(Vadim)
2762 re-organize regression test(Thomas,Marc)
2763 new optimizer operation weights(Vadim)
2764 new psql \z grant/permit option(Marc)
2765 new MONEY data type(D'Arcy,Thomas)
2766 tcp socket communication speed improved(Vadim)
2767 new VACUUM option for attribute statistics, and for certain columns (Vadim)
2768 many geometric type improvements(Thomas,Keith)
2769 additional regression tests(Thomas)
2770 new datestyle variable(Thomas,Vadim,Martin)
2771 more comparison operators for sorting types(Thomas)
2772 new conversion functions(Thomas)
2773 new more compact btree format(Vadim)
2774 allow pg_dumpall to preserve database ownership(Bruce)
2775 new SET GEQO=# and R_PLANS variable(Vadim)
2776 old (!GEQO) optimizer can use right-sided plans (Vadim)
2777 typechecking improvement in SQL parser(Bruce)
2778 new SET, SHOW, RESET commands(Thomas,Vadim)
2779 new \connect database USER option
2780 new destroydb -i option (Igor)
2781 new \dt and \di psql commands (Darren)
2782 SELECT "\n" now escapes newline (A. Duursma)
2783 new geometry conversion functions from old format (Thomas)
2787 new configuration script(Marc)
2788 readline configuration option added(Marc)
2789 OS-specific configuration options removed(Marc)
2790 new OS-specific template files(Marc)
2791 no more need to edit Makefile.global(Marc)
2792 re-arrange include files(Marc)
2793 nextstep patches (Gregor Hoffleit)
2794 removed WIN32-specific code(Bruce)
2795 removed postmaster -e option, now only postgres -e option (Bruce)
2796 merge duplicate library code in front/backends(Martin)
2797 now works with eBones, international Kerberos(Jun)
2798 more shared library support
2799 c++ include file cleanup(Bruce)
2800 warn about buggy flex(Bruce)
2801 DG-UX, Ultrix, Irix, AIX portability fixes
2803 ----------------------------------------------------------------------
2807 Release date: 1997-01-29
2809 A dump/restore is required for those wishing to migrate data from previous
2810 releases of PostgreSQL.
2812 ----------------------------------------------------------------------
2814 Migration from version 1.09 to version 6.0
2816 This migration requires a complete dump of the 1.09 database and a restore
2817 of the database in 6.0.
2819 ----------------------------------------------------------------------
2821 Migration from pre-1.09 to version 6.0
2823 Those migrating from earlier 1.* releases should first upgrade to 1.09
2824 because the COPY output format was improved from the 1.02 release.
2826 ----------------------------------------------------------------------
2832 ALTER TABLE bug - running postgress process needs to re-read table definition
2833 Allow vacuum to be run on one table or entire database(Bruce)
2835 Fix array over-runs of memory writes(Kurt)
2836 Fix elusive btree range/non-range bug(Dan)
2837 Fix for hash indexes on some types like time and date
2838 Fix for pg_log size explosion
2839 Fix permissions on lo_export()(Bruce)
2840 Fix unitialized reads of memory(Kurt)
2841 Fixed ALTER TABLE ... char(3) bug(Bruce)
2842 Fixed a few small memory leaks
2843 Fixed EXPLAIN handling of options and changed full_path option name
2844 Fixed output of group acl permissions
2845 Memory leaks (hunt and destroy with tools like Purify(Kurt)
2846 Minor improvements to rules system
2848 New asserts for run-checking
2849 Overhauled parser/analyze code to properly report errors and increase speed
2850 Pg_dump -d now handles NULL's properly(Bruce)
2851 Prevent SELECT NULL from crashing server (Bruce)
2852 Properly report errors when INSERT ... SELECT columns did not match
2853 Properly report errors when insert column names were not correct
2854 Psql \g filename now works(Bruce)
2855 Psql fixed problem with multiple statements on one line with multiple outputs
2856 Removed duplicate system oid's
2857 SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce)
2858 Several fixes for queries that crashed the backend
2859 Starting quote in insert string errors(Bruce)
2860 Submitting an empty query now returns empty status, not just " " query(Bruce)
2864 Add EXPLAIN manual page(Bruce)
2865 Add UNIQUE index capability(Dan)
2866 Add hostname/user level access control rather than just hostname and user
2867 Add synonym of != for <>(Bruce)
2868 Allow "select oid,* from table"
2869 Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
2870 Allow COPY from the frontend(Bryan)
2871 Allow GROUP BY to use alias column name(Bruce)
2872 Allow actual compression, not just reuse on the same page(Vadim)
2873 Allow installation-configuration option to auto-add all local users(Bryan)
2874 Allow libpq to distinguish between text value '' and null(Bruce)
2875 Allow non-postgres users with createdb privs to destroydb's
2876 Allow restriction on who can create C functions(Bryan)
2877 Allow restriction on who can do backend COPY(Bryan)
2878 Can shrink tables, pg_time and pg_log(Vadim & Erich)
2879 Change debug level 2 to print queries only, changed debug heading layout(Bruce)
2880 Change default decimal constant representation from float4 to float8(Bruce)
2881 European date format now set when postmaster is started
2882 Execute lowercase function names if not found with exact case
2883 Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
2884 Gist now included in the distrubution(Marc)
2885 Idend authentication of local users(Bryan)
2886 Implement BETWEEN qualifier(Bruce)
2887 Implement IN qualifier(Bruce)
2888 Libpq has PQgetisnull()(Bruce)
2889 Libpq++ improvements
2890 New options to initdb(Bryan)
2891 Pg_dump allow dump of oid's(Bruce)
2892 Pg_dump create indexes after tables are loaded for speed(Bruce)
2893 Pg_dumpall dumps all databases, and the user table
2894 Pginterface additions for NULL values(Bruce)
2895 Prevent postmaster from being run as root
2896 Psql \h and \? is now readable(Bruce)
2897 Psql allow backslashed, semicolons anywhere on the line(Bruce)
2898 Psql changed command prompt for lines in query or in quotes(Bruce)
2899 Psql char(3) now displays as (bp)char in \d output(Bruce)
2900 Psql return code now more accurate(Bryan?)
2901 Psql updated help syntax(Bruce)
2902 Re-visit and fix vacuum(Vadim)
2903 Reduce size of regression diffs, remove timezone name difference(Bruce)
2904 Remove compile-time parameters to enable binary distributions(Bryan)
2905 Reverse meaning of HBA masks(Bryan)
2906 Secure Authentication of local users(Bryan)
2907 Speed up vacuum(Vadim)
2908 Vacuum now had VERBOSE option(Bruce)
2912 All functions now have prototypes that are compared against the calls
2913 Allow asserts to be disabled easly from Makefile.global(Bruce)
2914 Change oid constants used in code to #define names
2915 Decoupled sparc and solaris defines(Kurt)
2916 Gcc -Wall compiles cleanly with warnings only from unfixable constructs
2917 Major include file reorganization/reduction(Marc)
2918 Make now stops on compile failure(Bryan)
2919 Makefile restructuring(Bryan, Marc)
2920 Merge bsdi_2_1 to bsdi(Bruce)
2921 Monitor program removed
2922 Name change from Postgres95 to PostgreSQL
2923 New config.h file(Marc, Bryan)
2924 PG_VERSION now set to 6.0 and used by postmaster
2925 Portability additions, including Ultrix, DG/UX, AIX, and Solaris
2926 Reduced the number of #define's, centeralized #define's
2927 Remove duplicate OIDS in system tables(Dan)
2928 Remove duplicate system catalog info or report mismatches(Dan)
2929 Removed many os-specific #define's
2930 Restructured object file generation/location(Bryan, Marc)
2931 Restructured port-specific file locations(Bryan, Marc)
2932 Unused/uninialized variables corrected
2934 ----------------------------------------------------------------------
2938 Release date: 1996-11-04
2940 Sorry, we didn't keep track of changes from 1.02 to 1.09. Some of the
2941 changes listed in 6.0 were actually included in the 1.02.1 to 1.09
2944 ----------------------------------------------------------------------
2948 Release date: 1996-08-01
2950 ----------------------------------------------------------------------
2952 Migration from version 1.02 to version 1.02.1
2954 Here is a new migration file for 1.02.1. It includes the 'copy' change and
2955 a script to convert old ASCII files.
2957 Note: The following notes are for the benefit of users who want to
2958 migrate databases from Postgres95 1.01 and 1.02 to Postgres95 1.02.1.
2960 If you are starting afresh with Postgres95 1.02.1 and do not need to
2961 migrate old databases, you do not need to read any further.
2963 In order to upgrade older Postgres95 version 1.01 or 1.02 databases to
2964 version 1.02.1, the following steps are required:
2969 databases. This is done by running the new 1.02.1 server against your
2970 own 1.01 or 1.02 database and applying the queries attached at the end
2971 of the file. This can be done easily through "psql". If your 1.01 or
2972 1.02 database is named testdb and you have cut the commands from the
2973 end of this file and saved them in "addfunc.sql":
2975 % psql testdb -f addfunc.sql
2977 Those upgrading 1.02 databases will get a warning when executing the
2978 last two statements in the file because they are already present in
2979 1.02. This is not a cause for concern.
2981 ----------------------------------------------------------------------
2983 Dump/Reload Procedure
2985 If you are trying to reload a pg_dump or text-mode, copy tablename to
2986 stdout generated with a previous version, you will need to run the
2987 attached "sed" script on the ASCII file before loading it into the
2988 database. The old format used '.' as end-of-data, while '\.' is now the
2989 end-of-data marker. Also, empty strings are now loaded in as '' rather
2990 than NULL. See the copy manual page for full details.
2992 sed 's/^\.$/\\./g' <in_file >out_file
2994 If you are loading an older binary copy or non-stdout copy, there is no
2995 end-of-data character, and hence no conversion necessary.
2997 -- following lines added by agc to reflect the case-insensitive
2998 -- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1)
2999 create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq);
3000 create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne);
3001 create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq);
3002 create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne);
3004 ----------------------------------------------------------------------
3008 Source code maintenance and development
3009 * worldwide team of volunteers
3010 * the source tree now in CVS at ftp.ki.net
3013 * psql (and underlying libpq library) now has many more options for
3014 formatting output, including HTML
3015 * pg_dump now output the schema and/or the data, with many fixes to
3016 enhance completeness.
3017 * psql used in place of monitor in administration shell scripts.
3018 monitor to be depreciated in next release.
3019 * date/time functions enhanced
3020 * NULL insert/update/comparison fixed/enhanced
3021 * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1
3023 Bug Fixes (almost too numerous to mention)
3025 * storage management
3026 * check for NULL pointer before dereferencing
3030 * added SolarisX86 port
3031 * added BSDI 2.1 port
3034 ----------------------------------------------------------------------
3038 Release date: 1996-02-23
3040 ----------------------------------------------------------------------
3042 Migration from version 1.0 to version 1.01
3044 The following notes are for the benefit of users who want to migrate
3045 databases from Postgres95 1.0 to Postgres95 1.01.
3047 If you are starting afresh with Postgres95 1.01 and do not need to migrate
3048 old databases, you do not need to read any further.
3050 In order to Postgres95 version 1.01 with databases created with Postgres95
3051 version 1.0, the following steps are required:
3059 data directory (typically the value of your $PGDATA).
3060 "src/libpq/pg_hba" shows an example syntax.
3067 in "src/Makefile.global"
3069 Note that host-based authentication is turned on by default, and
3070 if you do not take steps A or B above, the out-of-the-box 1.01
3071 will not allow you to connect to 1.0 databases.
3076 your existing $PGDATA directory.
3079 path up so that 1.01 binaries are being used.
3086 This is done by running the new 1.01 server against your own 1.0
3087 database and applying the queries attached and saving in the file
3088 1.0_to_1.01.sql. This can be done easily through "psql". If your 1.0
3089 database is name testdb:
3091 % psql testdb -f 1.0_to_1.01.sql
3093 and then execute the following commands (cut and paste from here):
3095 -- add builtin functions that are new to 1.01
3097 create function int4eqoid (int4, oid) returns bool as 'foo'
3098 language 'internal';
3099 create function oideqint4 (oid, int4) returns bool as 'foo'
3100 language 'internal';
3101 create function char2icregexeq (char2, text) returns bool as 'foo'
3102 language 'internal';
3103 create function char2icregexne (char2, text) returns bool as 'foo'
3104 language 'internal';
3105 create function char4icregexeq (char4, text) returns bool as 'foo'
3106 language 'internal';
3107 create function char4icregexne (char4, text) returns bool as 'foo'
3108 language 'internal';
3109 create function char8icregexeq (char8, text) returns bool as 'foo'
3110 language 'internal';
3111 create function char8icregexne (char8, text) returns bool as 'foo'
3112 language 'internal';
3113 create function char16icregexeq (char16, text) returns bool as 'foo'
3114 language 'internal';
3115 create function char16icregexne (char16, text) returns bool as 'foo'
3116 language 'internal';
3117 create function texticregexeq (text, text) returns bool as 'foo'
3118 language 'internal';
3119 create function texticregexne (text, text) returns bool as 'foo'
3120 language 'internal';
3122 -- add builtin functions that are new to 1.01
3124 create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid);
3125 create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4);
3126 create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq);
3127 create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne);
3128 create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq);
3129 create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne);
3130 create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq);
3131 create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne);
3132 create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq);
3133 create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne);
3134 create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq);
3135 create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne);
3137 ----------------------------------------------------------------------
3142 * 1.01 is backwards compatible with 1.0 database provided the user
3143 follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
3144 If those steps are not taken, 1.01 is not compatible with 1.0 database.
3147 * added PQdisplayTuples() to libpq and changed monitor and psql to use it
3148 * added NeXT port (requires SysVIPC implementation)
3149 * added CAST .. AS ... syntax
3150 * added ASC and DESC keywords
3151 * added 'internal' as a possible language for CREATE FUNCTION
3152 internal functions are C functions which have been statically linked
3153 into the postgres backend.
3154 * a new type "name" has been added for system identifiers (table names,
3155 attribute names, etc.) This replaces the old char16 type. The
3156 of name is set by the NAMEDATALEN #define in src/Makefile.global
3157 * a readable reference manual that describes the query language.
3158 * added host-based access control. A configuration file ($PGDATA/pg_hba)
3159 is used to hold the configuration data. If host-based access control
3160 is not desired, comment out HBA=1 in src/Makefile.global.
3161 * changed regex handling to be uniform use of Henry Spencer's regex code
3162 regardless of platform. The regex code is included in the distribution
3163 * added functions and operators for case-insensitive regular expressions.
3164 The operators are ~* and !~*.
3165 * pg_dump uses COPY instead of SELECT loop for better performance
3168 * fixed an optimizer bug that was causing core dumps when
3169 functions calls were used in comparisons in the WHERE clause
3170 * changed all uses of getuid to geteuid so that effective uids are used
3171 * psql now returns non-zero status on errors when using -c
3172 * applied public patches 1-14
3174 ----------------------------------------------------------------------
3178 Release date: 1995-09-05
3180 ----------------------------------------------------------------------
3185 * The copyright of Postgres 1.0 has been loosened to be freely modifiable
3186 and modifiable for any purpose. Please read the COPYRIGHT file.
3187 Thanks to Professor Michael Stonebraker for making this possible.
3190 * date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using
3191 EUROPEAN STYLE). This follows SQL-92 specs.
3192 * "delimiters" is now a keyword
3195 * sql LIKE syntax has been added
3196 * copy command now takes an optional USING DELIMITER specification.
3197 delimiters can be any single-character string.
3198 * IRIX 5.3 port has been added.
3199 Thanks to Paul Walmsley and others.
3200 * updated pg_dump to work with new libpq
3201 * \d has been added psql
3202 Thanks to Keith Parks
3203 * regexp performance for architectures that use POSIX regex has been
3204 improved due to caching of precompiled patterns.
3205 Thanks to Alistair Crooks
3206 * a new version of libpq++
3207 Thanks to William Wanders
3210 * arbitrary userids can be specified in the createuser script
3211 * \c to connect to other databases in psql now works.
3212 * bad pg_proc entry for float4inc() is fixed
3213 * users with usecreatedb field set can now create databases without
3214 having to be usesuper
3215 * remove access control entries when the entry no longer has any
3217 * fixed non-portable datetimes implementation
3218 * added kerberos flags to the src/backend/Makefile
3219 * libpq now works with kerberos
3220 * typographic errors in the user manual have been corrected.
3221 * btrees with multiple index never worked, now we tell you they don't
3222 work when you try to use them
3224 ----------------------------------------------------------------------
3226 Postgres95 Release 0.03
3228 Release date: 1995-07-21
3230 ----------------------------------------------------------------------
3234 Incompatible changes:
3235 * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS
3236 (due to system catalog changes and indexing structure changes).
3237 * double-quote (") is deprecated as a quoting character for string literals;
3238 you need to convert them to single quotes (').
3239 * name of aggregates (eg. int4sum) are renamed in accordance with the
3240 SQL standard (eg. sum).
3241 * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
3242 * float literals (eg. 3.14) are now of type float4 (instead of float8 in
3243 previous releases); you might have to do typecasting if you depend on it
3244 being of type float8. If you neglect to do the typecasting and you assign
3245 a float literal to a field of type float8, you may get incorrect values
3247 * LIBPQ has been totally revamped so that frontend applications
3248 can connect to multiple backends
3249 * the usesysid field in pg_user has been changed from int2 to int4 to
3250 allow wider range of Unix user ids.
3251 * the netbsd/freebsd/bsd o/s ports have been consolidated into a
3252 single BSD44_derived port. (thanks to Alistair Crooks)
3254 SQL standard-compliance (the following details changes that makes postgres95
3255 more compliant to the SQL-92 standard):
3256 * the following SQL types are now built-in: smallint, int(eger), float, real,
3257 char(N), varchar(N), date and time.
3259 The following are aliases to existing postgres types:
3261 integer, int -> int4
3262 float, real -> float4
3263 char(N) and varchar(N) are implemented as truncated text types. In
3264 addition, char(N) does blank-padding.
3265 * single-quote (') is used for quoting string literals; '' (in addition to
3266 \') is supported as means of inserting a single quote in a string
3267 * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used
3268 (Also, aggregates can now be overloaded, i.e. you can define your
3269 own MAX aggregate to take in a user-defined type.)
3270 * CHANGE ACL removed. GRANT/REVOKE syntax added.
3271 - Privileges can be given to a group using the "GROUP" keyword.
3273 GRANT SELECT ON foobar TO GROUP my_group;
3274 The keyword 'PUBLIC' is also supported to mean all users.
3276 Privileges can only be granted or revoked to one user or group
3279 "WITH GRANT OPTION" is not supported. Only class owners can change
3281 - The default access control is to to grant users readonly access.
3282 You must explicitly grant insert/update access to users. To change
3283 this, modify the line in
3284 src/backend/utils/acl.h
3285 that defines ACL_WORLD_DEFAULT
3288 * the bug where aggregates of empty tables were not run has been fixed. Now,
3289 aggregates run on empty tables will return the initial conditions of the
3290 aggregates. Thus, COUNT of an empty table will now properly return 0.
3291 MAX/MIN of an empty table will return a tuple of value NULL.
3292 * allow the use of \; inside the monitor
3293 * the LISTEN/NOTIFY asynchronous notification mechanism now work
3294 * NOTIFY in rule action bodies now work
3295 * hash indexes work, and access methods in general should perform better.
3296 creation of large btree indexes should be much faster. (thanks to Paul
3299 Other changes and enhancements:
3300 * addition of an EXPLAIN statement used for explaining the query execution
3301 plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for
3303 * WARN and NOTICE messages no longer have timestamps on them. To turn on
3304 timestamps of error messages, uncomment the line in
3305 src/backend/utils/elog.h:
3306 /* define ELOG_TIMESTAMPS */
3307 * On an access control violation, the message
3308 "Either no such class or insufficient privilege"
3309 will be given. This is the same message that is returned when
3310 a class is not found. This dissuades non-privileged users from
3311 guessing the existence of privileged classes.
3312 * some additional system catalog changes have been made that are not
3313 visible to the user.
3316 * The -oid option has been added to the "pg_result" tcl command.
3317 pg_result -oid returns oid of the last tuple inserted. If the
3318 last command was not an INSERT, then pg_result -oid returns "".
3319 * the large object interface is available as pg_lo* tcl commands:
3320 pg_lo_open, pg_lo_close, pg_lo_creat, etc.
3322 Portability enhancements and New Ports:
3323 * flex/lex problems have been cleared up. Now, you should be able to use
3324 flex instead of lex on any platforms. We no longer make assumptions of
3325 what lexer you use based on the platform you use.
3326 * The Linux-ELF port is now supported. Various configuration have been
3327 tested: The following configuration is known to work:
3328 kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
3329 with everything in ELF format,
3332 * ipcclean added to the distribution
3333 ipcclean usually does not need to be run, but if your backend crashes
3334 and leaves shared memory segments hanging around, ipcclean will
3335 clean them up for you.
3338 * the user manual has been revised and libpq documentation added.
3340 ----------------------------------------------------------------------
3342 Postgres95 Release 0.02
3344 Release date: 1995-05-25
3346 ----------------------------------------------------------------------
3350 Incompatible changes:
3351 * The SQL statement for creating a database is 'CREATE DATABASE' instead
3352 of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead
3353 of 'DESTROYDB'. However, the names of the executables 'createdb' and
3354 'destroydb' remain the same.
3357 * pgperl - a Perl (4.036) interface to Postgres95
3358 * pg_dump - a utility for dumping out a postgres database into a
3359 script file containing query commands. The script files are in a ASCII
3360 format and can be used to reconstruct the database, even on other
3361 machines and other architectures. (Also good for converting
3362 a Postgres 4.2 database to Postgres95 database.)
3364 The following ports have been incorporated into postgres95-beta-0.02:
3365 * the NetBSD port by Alistair Crooks
3366 * the AIX port by Mike Tung
3367 * the Windows NT port by Jon Forrest (more stuff but not done yet)
3368 * the Linux ELF port by Brian Gallew
3370 The following bugs have been fixed in postgres95-beta-0.02:
3371 * new lines not escaped in COPY OUT and problem with COPY OUT when first
3373 * cannot type return to use the default user id in createuser
3374 * SELECT DISTINCT on big tables crashes
3375 * Linux installation problems
3376 * monitor doesn't allow use of 'localhost' as PGHOST
3377 * psql core dumps when doing \c or \l
3378 * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
3379 * libpgtcl has a hard-wired default port number
3380 * SELECT DISTINCT INTO TABLE hangs
3381 * CREATE TYPE doesn't accept 'variable' as the internallength
3382 * wrong result using more than 1 aggregate in a SELECT
3384 ----------------------------------------------------------------------
3386 Postgres95 Release 0.01
3388 Release date: 1995-05-01