1 ------------------------------------------------------------------------
3 ------------------------------------------------------------------------
6 Release 7.1.2 (2001-05-11)
12 A dump/restore is not required for those running 7.1.X.
16 Fix PL/PgSQL SELECTs when returning no rows
17 Fix for psql backslash core dump
18 Referential integrity permission fix
24 ------------------------------------------------------------------------
26 ------------------------------------------------------------------------
29 Release 7.1.1 (2001-05-05)
31 This has a variety of fixes from 7.1.
35 A dump/restore is not required for those running 7.1.
39 Fix for numeric MODULO operator (Tom)
40 pg_dump fixes (Philip)
41 pg_dump can dump 7.0 databases (Philip)
42 readline 4.2 fixes (Peter E)
44 AIX, MSWIN, VAX,N32K fixes (Tom)
45 Multibytes fixes (Tom)
46 Unicode fixes (Tatsuo)
47 Optimizer improvements (Tom)
48 Fix for whole tuples in functions (Tom)
49 Fix for pg_ctl and option strings with spaces (Peter E)
51 EXTRACT can now take string argument (Thomas)
56 ------------------------------------------------------------------------
58 ------------------------------------------------------------------------
61 Release 7.1 (2001-04-13)
64 This release focuses on removing limitations that have existed in the
65 PostgreSQL code for many years.
67 Major changes in this release:
69 Write-ahead Log (WAL) - To maintain database consistency in
70 case of an operating system crash, previous releases of PostgreSQL
71 have forced all data modifications to disk before each transaction
72 commit. With WAL, only one log file must be flushed to disk, greatly
73 improving performance. If you have been using -F in previous releases
74 to disable disk flushes, you may want to consider discontinuing its
77 TOAST - Previous releases had a compiled-in row length limit,
78 typically 8 - 32 kB. This limit made storage of long text fields
79 difficult. With TOAST, long rows of any length can be stored with
82 Outer Joins - We now support outer joins. The UNION/NOT IN
83 workaround for outer joins is no longer required. We use the SQL92
86 Function Manager - The previous C function manager did not
87 handle NULLs properly, nor did it support 64-bit CPU's (Alpha). The
88 new function manager does. You can continue using your old custom
89 functions, but you may want to rewrite them in the future to use the
90 new function manager call interface.
92 Complex Queries - A large number of complex queries that were
93 unsupported in previous releases now work. Many combinations of
94 views, aggregates, UNION, LIMIT, cursors, subqueries, and inherited
95 tables now work properly. Inherited tables are now accessed by
96 default. Subqueries in FROM are now supported.
100 A dump/restore using pg_dump is required for those wishing to migrate
101 data from any previous release.
107 Many multi-byte/Unicode/locale fixes (Tatsuo and others)
108 More reliable ALTER TABLE RENAME (Tom)
109 Kerberos V fixes (David Wragg)
110 Fix for INSERT INTO...SELECT where targetlist has subqueries (Tom)
111 Prompt username/password on standard error (Bruce)
112 Large objects inv_read/inv_write fixes (Tom)
113 Fixes for to_char(), to_date(), to_ascii(), and to_timestamp() (Karel,
115 Prevent query expressions from leaking memory (Tom)
116 Allow UPDATE of arrays elements (Tom)
117 Wake up lock waiters during cancel (Hiroshi)
118 Fix rare cursor crash when using hash join (Tom)
119 Fix for DROP TABLE/INDEX in rolled-back transaction (Hiroshi)
120 Fix psql crash from \l+ if MULTIBYTE enabled (Peter E)
121 Fix truncation of rule names during CREATE VIEW (Ross Reedstrom)
122 Fix PL/perl (Alex Kapranoff)
123 Disallow LOCK on views (Mark Hollomon)
124 Disallow INSERT/UPDATE/DELETE on views (Mark Hollomon)
125 Disallow DROP RULE, CREATE INDEX, TRUNCATE on views (Mark Hollomon)
126 Allow PL/pgSQL accept non-ASCII identifiers (Tatsuo)
127 Allow views to proper handle GROUP BY, aggregates, DISTINCT (Tom)
128 Fix rare failure with TRUNCATE command (Tom)
129 Allow UNION/INTERSECT/EXCEPT to be used with ALL, subqueries, views,
130 DISTINCT, ORDER BY, SELECT...INTO (Tom)
131 Fix parser failures during aborted transactions (Tom)
132 Allow temporary relations to properly clean up indexes (Bruce)
133 Fix VACUUM problem with moving rows in same page (Tom)
134 Modify pg_dump to better handle user-defined items in template1 (Philip)
135 Allow LIMIT in VIEW (Tom)
136 Require cursor FETCH to honor LIMIT (Tom)
137 Allow PRIMARY/FOREIGN Key definitions on inherited columns (Stephan)
138 Allow ORDER BY, LIMIT in sub-selects (Tom)
139 Allow UNION in CREATE RULE (Tom)
140 Make ALTER/DROP TABLE rollback-able (Vadim, Tom)
141 Store initdb collation in pg_control so collation cannot be changed (Tom)
142 Fix INSERT...SELECT with rules (Tom)
143 Fix FOR UPDATE inside views and subselects (Tom)
144 Fix OVERLAPS operators conform to SQL92 spec regarding NULLs (Tom)
145 Fix lpad() and rpad() to handle length less than input string (Tom)
146 Fix use of NOTIFY in some rules (Tom)
147 Overhaul btree code (Tom)
148 Fix NOT NULL use in Pl/PgSQL variables (Tom)
149 Overhaul GIST code (Oleg)
150 Fix CLUSTER to preserve constraints and column default (Tom)
151 Improved deadlock detection handling (Tom)
152 Allow multiple SERIAL columns in a table (Tom)
153 Prevent occasional index corruption (Vadim)
157 Add OUTER JOINs (Tom)
158 Function manager overhaul (Tom)
159 Allow ALTER TABLE RENAME on indexes (Tom)
160 Improve CLUSTER (Tom)
161 Improve ps status display for more platforms (Peter E, Marc)
162 Improve CREATE FUNCTION failure message (Ross)
163 JDBC improvements (Peter, Travis Bauer, Christopher Cain, William Webber,
165 Grand Unified Configuration scheme/GUC. Many options can now be set in
166 data/postgresql.conf, postmaster/postgres flags, or SET commands (Peter E)
167 Improved handling of file descriptor cache (Tom)
168 New warning code about auto-created table alias entries (Bruce)
169 Overhaul initdb process (Tom, Peter E)
170 Overhaul of inherited tables; inherited tables now accessed by default;
171 new ONLY keyword prevents it (Chris Bitmead, Tom)
172 ODBC cleanups/improvements (Nick Gorham, Stephan Szabo, Zoltan Kovacs,
174 Allow renaming of temp tables (Tom)
175 Overhaul memory manager contexts (Tom)
176 pg_dumpall uses CREATE USER or CREATE GROUP rather using COPY (Peter E)
177 Overhaul pg_dump (Philip Warner)
178 Allow pg_hba.conf secondary password file to specify only username (Peter E)
179 Allow TEMPORARY or TEMP keyword when creating temporary tables (Bruce)
180 New memory leak checker (Karel)
181 New SET SESSION CHARACTERISTICS (Thomas)
182 Allow nested block comments (Thomas)
183 Add WITHOUT TIME ZONE type qualifier (Thomas)
184 New ALTER TABLE ADD CONSTRAINT (Stephan)
185 Use NUMERIC accumulators for INTEGER aggregates (Tom)
186 Overhaul aggregate code (Tom)
187 New VARIANCE and STDDEV() aggregates
188 Improve dependency ordering of pg_dump (Philip)
189 New pg_restore command (Philip)
190 New pg_dump tar output option (Philip)
191 New pg_dump of large objects (Philip)
192 New ESCAPE option to LIKE (Thomas)
193 New case-insensitive LIKE - ILIKE (Thomas)
194 Allow functional indexes to use binary-compatible type (Tom)
195 Allow SQL functions to be used in more contexts (Tom)
196 New pg_config utility (Peter E)
197 New PL/pgSQL EXECUTE command which allows dynamic SQL and utility statements
199 New PL/pgSQL GET DIAGNOSTICS statement for SPI value access (Jan)
200 New quote_identifiers() and quote_literal() functions (Jan)
201 New ALTER TABLE table OWNER TO user command (Mark Hollomon)
202 Allow subselects in FROM, i.e. FROM (SELECT ...) [AS] alias (Tom)
203 Update PyGreSQL to version 3.1 (D'Arcy)
204 Store tables as files named by OID (Vadim)
205 New SQL function setval(seq,val,bool) for use in pg_dump (Philip)
206 Require DROP VIEW to remove views, no DROP TABLE (Mark)
207 Allow DROP VIEW view1, view2 (Mark)
208 Allow multiple objects in DROP INDEX, DROP RULE, and DROP TYPE (Tom)
209 Allow automatic conversion to/from Unicode (Tatsuo, Eiji)
210 New /contrib/pgcrypto hashing functions (Marko Kreen)
211 New pg_dumpall --globals-only option (Peter E)
212 New CHECKPOINT command for WAL which creates new WAL log file (Vadim)
213 New AT TIME ZONE syntax (Thomas)
214 Allow location of Unix domain socket to be configurable (David J. MacKenzie)
215 Allow postmaster to listen on a specific IP address (David J. MacKenzie)
216 Allow socket path name to be specified in hostname by using leading slash
218 Allow CREATE DATABASE to specify template database (Tom)
219 New utility to convert MySQL schema dumps to SQL92 and PostgreSQL (Thomas)
220 New /contrib/rserv replication toolkit (Vadim)
221 New file format for COPY BINARY (Tom)
222 New /contrib/oid2name to map numeric files to table names (B Palmer)
223 New "idle in transaction" ps status message (Marc)
224 Update to pgaccess 0.98.7 (Constantin Teodorescu)
225 pg_ctl now defaults to -w (wait) on shutdown, new -l (log) option
226 Add rudimentary dependency checking to pg_dump (Philip)
230 Fix INET/CIDR type ordering and add new functions (Tom)
231 Make OID behave as an unsigned type (Tom)
232 Allow BIGINT as synonym for INT8 (Peter E)
233 New int2 and int8 comparison operators (Tom)
234 New BIT and BIT VARYING types (Adriaan Joubert, Tom, Peter E)
235 CHAR() no longer faster than VARCHAR() because of TOAST (Tom)
236 New GIST seg/cube examples (Gene Selkov)
237 Improved round(numeric) handling (Tom)
238 Fix CIDR output formatting (Tom)
239 New CIDR abbrev() function (Tom)
243 Write-Ahead Log (WAL) to provide crash recovery with less performance
245 ANALYZE stage of VACUUM no longer exclusively locks table (Bruce)
246 Reduced file seeks (Denis Perchine)
247 Improve BTREE code for duplicate keys (Tom)
248 Store all large objects in a single table (Denis Perchine, Tom)
249 Improve memory allocation performance (Karel, Tom)
253 New function manager call conventions (Tom)
254 SGI portability fixes (David Kaelbling)
255 New configure --enable-syslog option (Peter E)
256 New BSDI README (Bruce)
257 configure script moved to top level, not /src (Peter E)
258 Makefile/configuration/compilation overhaul (Peter E)
259 New configure --with-python option (Peter E)
260 Solaris cleanups (Peter E)
261 Overhaul /contrib Makefiles (Karel)
262 New OpenSSL configuration option (Magnus, Peter E)
265 New heap_open(), heap_openr() API (Tom)
266 Remove colon and semi-colon operators (Thomas)
267 New pg_class.relkind value for views (Mark Hollomon)
268 Rename ichar() to chr() (Karel)
269 New documentation for btrim(), ascii(), chr(), repeat() (Karel)
270 Fixes for NT/Cygwin (Pete Forman)
271 AIX port fixes (Andreas)
272 New BeOS port (David Reid, Cyril Velter)
273 Add proofreader's changes to docs (Addison-Wesley, Bruce)
274 New Alpha spinlock code (Adriaan Joubert, Compaq)
275 Unixware port overhaul (Peter E)
276 New Darwin/Mac OSX port (Peter Bierman, Bruce Hartzler)
277 New FreeBSD Alpha port (Alfred)
278 Overhaul shared memory segments (Tom)
279 Add IBM S/390 support (Neale Ferguson)
280 Moved macmanuf to /contrib (Larry Rosenman)
281 Syslog improvements (Larry Rosenman)
282 New template0 database that contains no user additions (Tom)
283 New /contrib/cube and /contrib/seg GIST sample code (Gene Selkov)
284 Allow NetBSD's libedit instead of readline (Peter)
285 Improved assembly language source code format (Bruce)
286 New contrib/pg_logger
287 New --template option to createdb
288 New contrib/pg_control utility (Oliver)
289 New FreeBSD tools ipc_check, start-scripts/freebsd
293 ------------------------------------------------------------------------
295 ------------------------------------------------------------------------
298 Release 7.0.3 (2000-11-11)
300 This has a variety of fixes from 7.0.2.
304 A dump/restore is not required for those running 7.0.*.
309 Large object fix (Tom)
310 Fix lean in COPY WITH OIDS leak (Tom)
311 Fix backwards-index-scan (Tom)
312 Fix SELECT ... FOR UPDATE so it checks for duplicate keys (Hiroshi)
313 Add --enable-syslog to configure (Marc)
314 Fix abort transaction at backend exit in rare cases (Tom)
315 Fix for psql \l+ when multi-byte enabled (Tatsuo)
316 Allow PL/pgSQL to accept non ascii identifiers (Tatsuo)
317 Make vacuum always flush buffers (Tom)
318 Fix to allow cancel while waiting for a lock (Hiroshi)
319 Fix for memory aloocation problem in user authentication code (Tom)
320 Remove bogus use of int4out() (Tom)
321 Fixes for multiple subqueries in COALESCE or BETWEEN (Tom)
322 Fix for failure of triggers on heap open in certain cases (Jeroen van
324 Fix for erroneous selectivity of not-equals (Tom)
325 Fix for erroneous use of strcmp() (Tom)
326 Fix for bug where storage manager accesses items beyond end of file
328 Fix to include kernel errno message in all smgr elog messages (Tom)
329 Fix for '.' not in PATH at build time (SL Baur)
330 Fix for out-of-file-descriptors error (Tom)
331 Fix to make pg_dump dump 'iscachable' flag for functions (Tom)
332 Fix for subselect in targetlist of Append node (Tom)
333 Fix for mergejoin plans (Tom)
334 Fix TRUNCATE failure on relations with indexes (Tom)
335 Avoid database-wide restart on write error (Hiroshi)
336 Fix nodeMaterial to honor chgParam by recomputing its output (Tom)
337 Fix VACUUM problem with moving chain of update tuples when source and
338 destination of a tuple lie on the same page (Tom)
339 Fix user.c CommandCounterIncrement (Tom)
340 Fix for AM/PM boundary problem in to_char() (Karel Zak)
341 Fix TIME aggregate handling (Tom)
342 Fix to_char() to avoid coredump on NULL input (Tom)
344 Fix for inserting/copying longer multibyte strings into char() data
346 Fix for crash of backend, on abort (Tom)
350 ------------------------------------------------------------------------
352 ------------------------------------------------------------------------
355 Release 7.0.2 (2000-06-05)
357 This is a repackaging of 7.0.1 with added documentation.
361 A dump/restore is not required for those running 7.*.
365 Added documentation to tarball.
369 ------------------------------------------------------------------------
371 ------------------------------------------------------------------------
374 Release 7.0.1 (2000-06-01)
376 This is basically a cleanup release for 7.0.1
380 A dump/restore is not required for those running 7.0.
384 Fix many CLUSTER failures (Tom)
385 Allow ALTER TABLE RENAME works on indexes (Tom)
386 Fix plpgsql to handle datetime->timestamp and timespan->interval (Bruce)
387 New configure --with-setproctitle switch to use setproctitle() (Marc, Bruce)
388 Fix the off by one errors in ResultSet from 6.5.3, and more.
389 jdbc ResultSet fixes (Joseph Shraibman)
390 optimizer tunings (Tom)
391 Fix create user for pgaccess
392 Fix for UNLISTEN failure
393 IRIX fixes (David Kaelbling)
394 QNX fixes (Andreas Kardos)
395 Reduce COPY IN lock level (Tom)
396 Change libpqeasy to use PQconnectdb() style parameters (Bruce)
397 Fix pg_dump to handle OID indexes (Tom)
398 Fix small memory leak (Tom)
399 Solaris fix for createdb/dropdb (Tatsuo)
400 Fix for non-blocking connections (Alfred Perlstein)
401 Fix improper recovery after RENAME TABLE failures (Tom)
402 Copy pg_ident.conf.sample into /lib directory in install (Bruce)
403 Add SJIS UDC (NEC selection IBM kanji) support (Eiji Tokuya)
404 Fix too long syslog message (Tatsuo)
405 Fix problem with quoted indexes that are too long (Tom)
406 JDBC ResultSet.getTimestamp() fix (Gregory Krasnow & Floyd Marinescu)
407 ecpg changes (Michael)
411 ------------------------------------------------------------------------
413 ------------------------------------------------------------------------
416 Release 7.0 (2000-05-08)
418 This release shows the continued growth of PostgreSQL. There are more
419 changes in 7.0 than in any previous release. Don't be concerned this
420 is a dot-zero release. We do our best to put out only solid releases,
421 and this one is no exception.
423 Major changes in this release:
426 Foreign keys are now implemented, with the exception of PARTIAL
427 MATCH foreign keys. Many users have been asking for this
428 feature, and we are pleased to offer it.
431 Continuing on work started a year ago, the optimizer has been
432 overhauled, allowing improved query execution and better
433 performance with less memory usage.
436 psql, our interactive terminal monitor, has been updated with a
437 variety of new features. See the psql manual page for details.
440 In 7.1 or 7.2, we plan to have outer joins, storage for very
441 long rows, and a write-ahead logging system.
445 A dump/restore using pg_dump is required for those wishing to migrate
446 data from any previous release. For those upgrading from 6.5.*, you
447 can use pg_upgrade to upgrade to this release.
452 Prevent function calls with more than maximum number of arguments (Tom)
453 Improve CASE construct (Tom)
454 Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (Tom)
455 Fix SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
456 Fix GROUP BY scan bug (Tom)
457 Improvements in SQL grammar processing (Tom)
458 Fix for views involved in INSERT ... SELECT ... (Tom)
459 Fix for SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2 (Tom)
460 Fix for subselects in INSERT ... SELECT (Tom)
461 Prevent INSERT ... SELECT ... ORDER BY (Tom)
462 Fixes for relations greater than 2GB, including vacuum
463 Improve communication of system table changes to other running backends (Tom)
464 Improve communication of user table modifications to other running backends (Tom)
465 Fix handling of temp tables in complex situations (Bruce, Tom)
466 Allow table locking when tables opened, improving concurrent reliability (Tom)
467 Properly quote sequence names in pg_dump (Ross J. Reedstrom)
468 Prevent DROP DATABASE while others accessing
469 Prevent any rows from being returned by GROUP BY if no rows processed (Tom)
470 Fix SELECT COUNT(1) FROM table WHERE ...' if no rows matching WHERE (Tom)
471 Fix pg_upgrade so it works for MVCC(Tom)
472 Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom)
473 Fix for "f1 datetime DEFAULT 'now'" (Tom)
474 Fix problems with CURRENT_DATE used in DEFAULT (Tom)
475 Allow comment-only lines, and ;;; lines too. (Tom)
476 Improve recovery after failed disk writes, disk full (Hiroshi)
477 Fix cases where table is mentioned in FROM but not joined (Tom)
478 Allow HAVING clause without aggregate functions (Tom)
479 Fix for "--" comment and no trailing newline, as seen in Perl
480 Improve pg_dump failure error reports (Bruce)
481 Allow sorts and hashes to exceed 2GB file sizes (Tom)
482 Fix for pg_dump dumping of inherited rules (Tom)
483 Fix for NULL handling comparisons (Tom)
484 Fix inconsistent state caused by failed CREATE/DROP commands (Hiroshi)
485 Fix for dbname with dash
486 Prevent DROP INDEX from interfering with other backends (Tom)
487 Fix file descriptor leak in verify_password()
488 Fix for "Unable to identify an operator =$" problem
489 Fix ODBC so no segfault if CommLog and Debug enabled (Dirk Niggemann)
490 Fix for recursive exit call (Massimo)
491 Fix for extra-long timezones (Jeroen van Vianen)
492 Make pg_dump preserve primary key information (Peter E)
493 Prevent databases with single quotes (Peter E)
494 Prevent DROP DATABASE inside transaction (Peter E)
495 ecpg memory leak fixes (Stephen Birch)
496 Fix for SELECT null::text, SELECT int4fac(null) and SELECT 2 + (null) (Tom)
497 Y2K timestamp fix (Massimo)
498 Fix for VACUUM 'HEAP_MOVED_IN was not expected' errors (Tom)
499 Fix for views with tables/columns containing spaces (Tom)
500 Prevent permissions on indexes (Peter E)
501 Fix for spinlock stuck problem when error is generated (Hiroshi)
502 Fix ipcclean on Linux
503 Fix handling of NULL constraint conditions (Tom)
504 Fix memory leak in odbc driver (Nick Gorham)
505 Fix for permission check on UNION tables (Tom)
506 Fix to allow SELECT 'a' LIKE 'a' (Tom)
507 Fix for SELECT 1 + NULL (Tom)
509 Fix log() on numeric type (Tom)
510 Deprecate ':' and ';' operators
511 Allow vacuum of temporary tables
512 Disallow inherited columns with the same name as new columns
513 Recover or force failure when disk space is exhausted(Hiroshi)
514 Fix INSERT INTO ... SELECT with AS columns matching result columns
515 Fix INSERT ... SELECT ... GROUP BY groups by target columns not source columns(Tom)
516 Fix CREATE TABLE test (a char(5) DEFAULT text '', b int4) with INSERT(Tom)
518 Fix CREATE TABLE x AS SELECT 1 UNION SELECT 2
519 Fix CREATE TABLE test(col char(2) DEFAULT user)
520 Fix mismatched types in CREATE TABLE ... DEFAULT
521 Fix SELECT * FROM pg_class where oid in (0,-1)
522 Fix SELECT COUNT('asdf') FROM pg_class WHERE oid=12
523 Prevent user who can create databases can modifying pg_database table(Peter E)
524 Fix btree to give a useful elog when key > 1/2 (page - overhead)(Tom)
525 Fix INSERT of 0.0 into DECIMAL(4,4) field(Tom)
529 New CLI interface include file sqlcli.h, based on SQL3/SQL98
530 Remove all limits on query length, row length limit still exists (Tom)
531 Update jdbc protocol to 2.0 (<ulink url="mailto:jens@jens.de">Jens Glaser</ulink>)
532 Add TRUNCATE command to quickly truncate relation (Mike Mascari)
533 Fix to give super user and createdb user proper update catalog rights (Peter E)
534 Allow ecpg bool variables to have NULL values (Christof)
535 Issue ecpg error if NULL value is returned to variable with no NULL
537 Allow ^C to cancel COPY command (Massimo)
538 Add SET FSYNC and SHOW PG_OPTIONS commands(Massimo)
539 Function name overloading for dynamically-loaded C functions (Frankpitt)
540 Add CmdTuples() to libpq++(Vince)
541 New CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands(Jan)
542 Allow CREATE FUNCTION/WITH clause to be used for all language types
543 configure --enable-debug adds -g (Peter E)
544 configure --disable-debug removes -g (Peter E)
545 Allow more complex default expressions (Tom)
546 First real FOREIGN KEY constraint trigger functionality (Jan)
547 Add FOREIGN KEY ... MATCH FULL ... ON DELETE CASCADE (Jan)
548 Add FOREIGN KEY ... MATCH <unspecified> referential actions (Don Baccus)
549 Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
550 Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
551 Change pgeasy connectdb() parameter ordering (Bruce)
552 Add DEC and SESSION_USER as reserved words (Thomas)
553 Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
554 Add Oracle's COMMENT ON command (<ulink url="mailto:mascarim@yahoo">Mike Mascari</ulink>)
555 libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
556 Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
557 Make USING in COPY optional (Bruce)
558 Allow subselects in the target list (Tom)
559 Allow subselects on the left side of comparison operators (Tom)
560 New parallel regression test (Jan)
561 Change backend-side COPY to write files with permissions 644 not 666 (Tom)
562 Force permissions on PGDATA directory to be secure, even if it exists (Tom)
563 Added psql LASTOID variable to return last inserted oid (Peter E)
564 Allow concurrent vacuum and remove pg_vlock vacuum lock file (Tom)
565 Add permissions check so only Postgres superuser or table owner can
567 New libpq functions to allow asynchronous connections: PQconnectStart(),
568 PQconnectPoll(), PQresetStart(), PQresetPoll(), PQsetenvStart(),
569 PQsetenvPoll(), PQsetenvAbort (Ewan Mellor)
570 New libpq PQsetenv() function (Ewan Mellor)
571 create/alter user extension (Peter E)
572 New postmaster.pid and postmaster.opts under $PGDATA (Tatsuo)
573 New scripts for create/drop user/db (Peter E)
574 Major psql overhaul(Peter E)
575 Add const to libpq interface(Peter E)
576 New libpq function PQoidValue (Peter E)
577 Show specific non-aggregate causing problem with GROUP BY (Tom)
578 Make changes to pg_shadow recreate pg_pwd file (Peter E)
579 Add aggregate(DISTINCT ...) (Tom)
580 Allow flag to control COPY input/output of NULLs (Peter E)
581 Make postgres user have a password by default (Peter E)
582 Add CREATE/ALTER/DROP GROUP (Peter E)
583 All administration scripts now support --long options (Peter E, Karel)
584 Vacuumdb script now supports --all option (Peter E)
585 ecpg new portable FETCH syntax
586 Add ecpg EXEC SQL IFDEF, EXEC SQL IFNDEF, EXEC SQL ELSE, EXEC SQL ELIF
587 and EXEC SQL ENDIF directives
588 Add pg_ctl script to control backend start-up (Tatsuo)
589 Add postmaster.opts.default file to store start-up flags (Tatsuo)
590 Allow --with-mb=SQL_ASCII
591 Increase maximum number of index keys to 16 (Bruce)
592 Increase maximum number of function arguments to 16 (Bruce)
593 Allow configuration of maximum number of index keys and arguments (Bruce)
594 Allow unprivileged users to change their passwords (Peter E)
595 Password authentication enabled; required for new users (Peter E)
596 Disallow dropping a user who owns a database (Peter E)
597 Change initdb option --with-mb to --enable-multibyte
598 Add option for initdb to prompts for superuser password (Peter E)
599 Allow complex type casts like col::numeric(9,2) and col::int2::float8 (Tom)
600 Updated user interfaces on initdb, initlocation, pg_dump, ipcclean (Peter E)
601 New pg_char_to_encoding() and pg_encoding_to_char() functions (Tatsuo)
602 Libpq non-blocking mode (Alfred Perlstein)
603 Improve conversion of types in casts that don't specify a length
604 New plperl internal programming language (Mark Hollomon)
605 Allow COPY IN to read file that do not end with a newline (Tom)
606 Indicate when long identifiers are truncated (Tom)
607 Allow aggregates to use type equivalency (Peter E)
608 Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number()
609 conversion functions (Karel Zak <zakkr@zf.jcu.cz>)
610 Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
611 Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom)
612 Add NUMERIC and int8 types to ODBC
613 Improve EXPLAIN results for Append, Group, Agg, Unique (Tom)
614 Add ALTER TABLE ... ADD FOREIGN KEY (Stephan Szabo)
615 Allow SELECT .. FOR UPDATE in PL/pgSQL (Hiroshi)
616 Enable backward sequential scan even after reaching EOF (Hiroshi)
617 Add btree indexing of boolean values, >= and <= (Don Baccus)
618 Print current line number when COPY FROM fails (Massimo)
619 Recognize special case of POSIX time zone: "GMT+8" and "GMT-8" (Thomas)
620 Add DEC as synonym for "DECIMAL" (Thomas)
621 Add SESSION_USER as SQL92 keyword, same as CURRENT_USER (Thomas)
622 Implement column aliases (aka correlation names) and join syntax (Thomas)
623 Allow queries like SELECT a FROM t1 tx (a) (Thomas)
624 Allow queries like SELECT * FROM t1 NATURAL JOIN t2 (Thomas)
625 Make INTERVAL reserved word allowed as a column identifier (Thomas)
626 Implement REINDEX command (Hiroshi)
627 Accept ALL in aggregate function SUM(ALL col) (Tom)
628 Prevent GROUP BY from using column aliases (Tom)
629 New psql \encoding option (Tatsuo)
630 Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
631 Allow negation of a negative number in all cases
632 Add ecpg descriptors (Christof, Michael)
633 Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
634 Allow casts with length, like foo::char(8)
635 New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
636 Add support for SJIS user defined characters (Tatsuo)
637 Larger views/rules supported
638 Make libpq's PQconndefaults() thread-safe (Tom)
639 Disable // as comment to be ANSI conforming, should use -- (Tom)
640 Allow column aliases on views CREATE VIEW name (collist)
641 Fixes for views with subqueries (Tom)
642 Allow UPDATE table SET fld = (SELECT ...) (Tom)
643 SET command options no longer require quotes
644 Update pgaccess to 0.98.6
646 New pg_options.sample file
647 New SET FSYNC command (Massimo)
648 Allow pg_descriptions when creating tables
649 Allow pg_descriptions when creating types, columns, and functions
650 Allow psql \copy to allow delimiters(Peter E)
651 Allow psql to print nulls as distinct from "" [null](Peter E)
655 Many array fixes (Tom)
656 Allow bare column names to be subscripted as arrays (Tom)
657 Improve type casting of int and float constants (Tom)
658 Cleanups for int8 inputs, range checking, and type conversion (Tom)
659 Fix for SELECT timespan('21:11:26'::time) (Tom)
660 Fix for netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0
662 Add btree index on NUMERIC(Jan)
663 Perl fix for large objects containing NUL characters (Douglas Thomson)
664 ODBC fix for for large objects (free)
665 Fix indexing of cidr data type
666 Fix for Ethernet MAC addresses (macaddr type) comparisons
667 Fix for date/time types when overflows happened in computations (Tom)
668 Allow array on int8 (Peter E)
669 Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
671 Fix bugs in NUMERIC ceil() and floor() functions (Tom)
672 Make char_length()/octet_length including trailing blanks (Tom)
673 Made abstime/reltime use int4 instead of time_t (Peter E)
674 New lztext data type for compressed text fields
675 Revise code to handle coercion of int and float constants (Tom)
676 New C-routines to implement a BIT and BIT VARYING type in /contrib
678 NUMERIC now accepts scientific notation (Tom)
679 NUMERIC to int4 rounds (Tom)
680 Convert float4/8 to NUMERIC properly (Tom)
681 Allow type conversion with NUMERIC (Thomas)
682 Make ISO date style (2000-02-16 09:33) the default (Thomas)
683 Add NATIONAL CHAR [ VARYING ]
684 Allow NUMERIC round and trunc to accept negative scales (Tom)
685 New TIME WITH TIME ZONE type (Thomas)
686 Add MAX()/MIN() on time type (Thomas)
687 Add abs(), mod(), fac() for int8 (Thomas)
688 Add round(), sqrt(), cbrt(), pow()
689 Rename NUMERIC power() to pow()
690 Improved TRANSLATE() function
691 Allow X=-Y operators (Tom)
692 Add exp() and ln() as NUMERIC types
693 Allow SELECT float8(COUNT(*)) / (SELECT COUNT(*) FROM int4_tbl) FROM int4_tbl
695 Allow LOCALE to use indexes in regular expression searches(Tom)
696 Allow creation of functional indexes to use default types
700 Prevent exponential space consumption with many AND's and OR's (Tom)
701 Collect attribute selectivity values for system columns (Tom)
702 Reduce memory usage of aggregates (Tom)
703 Fix for LIKE optimization to use indexes with multi-byte encodings (Tom)
704 Fix r-tree index optimizer selectivity (Thomas)
705 Improve optimizer selectivity computations and functions (Tom)
706 Optimize btree searching for cases where many equal keys exist (Tom)
707 Enable fast LIKE index processing only if index present (Tom)
708 Re-use free space on index pages with duplicates (Tom)
709 Improve hash join processing (Tom)
710 Prevent descending sort if result is already sorted(Hiroshi)
711 Allow commuting of index scan query qualifications (Tom)
712 Prefer index scans in cases where ORDER BY/GROUP BY is required (Tom)
713 Allocate large memory requests in fix-sized chunks for performance (Tom)
714 Fix vacuum's performance by reducing memory allocation requests (Tom)
715 Implement constant-expression simplification (Bernard Frankpitt, Tom)
716 Allow more than first column to be used to determine start of index scan
718 Prevent quadruple use of disk space when doing internal sorting (Tom)
719 Faster sorting by calling fewer functions (Tom)
720 Create system indexes to match all system caches (Bruce, Hiroshi)
721 Make system caches use system indexes(Bruce)
722 Make all system indexes unique(Bruce)
723 Improve pg_statistics management for VACUUM speed improvement (Tom)
724 Flush backend cache less frequently (Tom, Hiroshi)
725 COPY now reuses previous memory allocation, improving performance (Tom)
726 Improve optimization cost estimation (Tom)
727 Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom)
728 Use DNF instead of CNF where appropriate (Tom, Taral)
729 Further cleanup for OR-of-AND WHERE-clauses (Tom)
730 Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
731 Smarter optimizer computations for random index page access (Tom)
732 New SET variable to control optimizer costs (Tom)
733 Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
734 Reduce optimizer internal housekeeping of join paths for speedup (Tom)
735 Major subquery speedup (Tom)
736 Fewer fsync writes when fsync is not disabled(Tom)
737 Improved LIKE optimizer estimates(Tom)
738 Prevent fsync in SELECT-only queries(Vadim)
739 Make index creation use psort code, because it is now faster(Tom)
740 Allow creation of sort temp tables > 1 Gig
744 Fix for linux PPC compile
745 New generic expression-tree-walker subroutine (Tom)
746 Change form() to varargform() to prevent portability problems.
747 Improved range checking for large integers on Alphas
748 Clean up #include in /include directory (Bruce)
749 Add scripts for checking includes (Bruce)
750 Remove un-needed #include's from *.c files (Bruce)
751 Change #include's to use <> and "" as appropriate (Bruce)
752 Enable WIN32 compilation of libpq
753 Alpha spinlock fix from <ulink url="mailto:gatgul@voicenet.com">Uncle George</ulink>
754 Overhaul of optimizer data structures (Tom)
755 Fix to cygipc library (Yutaka Tanida)
756 Allow pgsql to work on newer Cygwin snapshots(Dan)
757 New catalog version number (Tom)
759 Rename heap_replace to heap_update
760 Update for QNX (Dr. Andreas Kardos)
761 New platform-specific regression handling (Tom)
762 Rename oid8 -> oidvector and int28 -> int2vector (Bruce)
763 Included all yacc and lex files into the distribution (Peter E.)
764 Remove lextest, no longer needed (Peter E)
765 Fix for libpq and psql on Win32 (Magnus)
766 Internally change datetime and timespan into timestamp and interval (Thomas)
767 Fix for plpgsql on BSDI
768 Add SQL_ASCII test case to the regression test (Tatsuo)
769 configure --with-mb now deprecated (Tatsuo)
771 NetBSD fixes <ulink url="mailto:lamj@stat.cmu.edu">Johnny C. Lam</ulink>
772 Fixes for Alpha compiles
773 New multibyte encodings
777 ------------------------------------------------------------------------
779 ------------------------------------------------------------------------
782 Release 6.5.3 (1999-10-13)
784 This is basically a cleanup release for 6.5.2. We have added a new pgaccess
785 that was missing in 6.5.2, and installed an NT-specific fix.
789 A dump/restore is not required for those running 6.5.*.
793 Updated version of pgaccess 0.98
798 ------------------------------------------------------------------------
800 ------------------------------------------------------------------------
803 Release 6.5.2 (1999-09-15)
805 This is basically a cleanup release for 6.5.1. We have fixed a variety of
806 problems reported by 6.5.1 users.
810 A dump/restore is not required for those running 6.5.*.
814 subselect+CASE fixes(Tom)
815 Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren Sefcik)
816 Fixes for CASE in WHERE join clauses(Tom)
817 Fix BTScan abort(Tom)
818 Repair the check for redundant UNIQUE and PRIMARY KEY indices(Thomas)
819 Improve it so that it checks for multi-column constraints(Thomas)
820 Fix for Win32 making problem with MB enabled(Hiroki Kataoka)
821 Allow BSD yacc and bison to compile pl code(Bruce)
822 Fix SET NAMES working
824 Fix vacuum's memory consumption(Hiroshi,Tatsuo)
825 Reduce the total memory consumption of vacuum(Tom)
826 Fix for timestamp(datetime)
827 Rule deparsing bugfixes(Tom)
828 Fix quoting problems in mkMakefile.tcldefs.sh.in and mkMakefile.tkdefs.sh.in(Tom)
829 This is to re-use space on index pages freed by vacuum(Vadim)
830 document -x for pg_dump(Bruce)
831 Fix for unary operators in rule deparser(Tom)
832 Comment out FileUnlink of excess segments during mdtruncate()(Tom)
833 Irix linking fix from Yu Cao yucao@falcon.kla-tencor.com
834 Repair logic error in LIKE: should not return LIKE_ABORT
835 when reach end of pattern before end of text(Tom)
836 Repair incorrect cleanup of heap memory allocation during transaction abort(Tom)
837 Updated version of pgaccess 0.98
841 ------------------------------------------------------------------------
843 ------------------------------------------------------------------------
846 Release 6.5.1 (1999-07-15)
848 This is basically a cleanup release for 6.5. We have fixed a variety of
849 problems reported by 6.5 users.
853 A dump/restore is not required for those running 6.5.
858 Portability fixes for linux_ppc, Irix, linux_alpha, OpenBSD, alpha
859 Remove QUERY_LIMIT, use SELECT...LIMIT
860 Fix for EXPLAIN on inheritance(Tom)
861 Patch to allow vacuum on multi-segment tables(Hiroshi)
862 R-Tree optimizer selectivity fix(Tom)
863 ACL file descriptor leak fix(Atsushi Ogawa)
864 New expresssion subtree code(Tom)
865 Avoid disk writes for read-only transactions(Vadim)
866 Fix for removal of temp tables if last transaction was aborted(Bruce)
867 Fix to prevent too large tuple from being created(Bruce)
869 Allow port numbers 32k - 64k(Bruce)
870 Add ^ precidence(Bruce)
871 Rename sort files called pg_temp to pg_sorttemp(Bruce)
872 Fix for microseconds in time values(Tom)
873 Tutorial source cleanup
875 Fix for sorting of NULL's in some cases(Tom)
876 Shared library dependencies fixed (Tom)
877 Fixed glitches affecting GROUP BY in subselects(Tom)
878 Fix some compiler warnings (Tomoaki Nishiyama)
879 Add Win1250 (Czech) support (Pavel Behal)
883 ------------------------------------------------------------------------
885 ------------------------------------------------------------------------
888 Release 6.5 (1999-06-09)
890 This release marks a major step in the development team's mastery of the
891 source code we inherited from Berkeley. You will see we are now easily
892 adding major features, thanks to the increasing size and experience of our
893 world-wide development team.
895 Here is a brief summary of the more notable changes:
897 Multi-version concurrency control(MVCC)
899 This removes our old table-level locking, and replaces it with a
900 locking system that is superior to most commercial database systems. In
901 a traditional system, each row that is modified is locked until
902 committed, preventing reads by other users. MVCC uses the natural
903 multi-version nature of PostgreSQL to allow readers to continue reading
904 consistent data during writer activity. Writers continue to use the
905 compact pg_log transaction system. This is all performed without having
906 to allocate a lock for every row like traditional database systems. So,
907 basically, we no longer are restricted by simple table-level locking;
908 we have something better than row-level locking.
910 Hot backups from pg_dump
912 pg_dump takes advantage of the new MVCC features to give a consistant
913 database dump/backup while the database stays online and available for
918 We now have a true numeric data type, with user-specified precision.
922 Temporary tables are guaranteed to have unique names within a database
923 session, and are destroyed on session exit.
927 We now have CASE, INTERSECT, and EXCEPT statement support. We have new
928 LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL, SELECT ... FOR UPDATE,
929 and an improved LOCK TABLE command.
933 We continue to speed up PostgreSQL, thanks to the variety of talents
934 within our team. We have sped up memory allocation, optimization, table
935 joins, and row transfer routines.
939 We continue to expand our port list, this time including WinNT/ix86 and
944 Most interfaces have new versions, and existing functionality has been
949 New and updated material is present throughout the documentation. New
950 FAQs have been contributed for SGI and AIX platforms. The Tutorial has
951 introductory information on SQL from Stefan Simkovics. For the User's
952 Guide, there are reference pages covering the postmaster and more
953 utility programs, and a new appendix contains details on date/time
954 behavior. The Administrator's Guide has a new chapter on
955 troubleshooting from Tom Lane. And the Programmer's Guide has a
956 description of query processing, also from Stefan, and details on
957 obtaining the Postgres source tree via anonymous CVS and CVSup.
961 A dump/restore using pg_dump is required for those wishing to migrate data
962 from any previous release of Postgres. pg_upgrade can not be used to upgrade
963 to this release because the on-disk structure of the tables has changed
964 compared to previous releases.
966 The new Multi-Version Concurrency Control (MVCC) features can give somewhat
967 different behaviors in multi-user environments. Read and understand the
968 following section to ensure that your existing applications will give you
969 the behavior you need.
971 Multi-Version Concurrency Control
973 Because readers in 6.5 don't lock data, regardless of transaction isolation
974 level, data read by one transaction can be overwritten by another. In other
975 words, if a row is returned by SELECT it doesn't mean that this row really
976 exists at the time it is returned (i.e. sometime after the statement or
977 transaction began) nor that the row is protected from being deleted or
978 updated by concurrent transactions before the current transaction does a
981 To ensure the actual existence of a row and protect it against concurrent
982 updates one must use SELECT FOR UPDATE or an appropriate LOCK TABLE
983 statement. This should be taken into account when porting applications from
984 previous releases of Postgres and other environments.
986 Keep the above in mind if you are using contrib/refint.* triggers for
987 referential integrity. Additional technics are required now. One way is to
988 use LOCK parent_table IN SHARE ROW EXCLUSIVE MODE command if a transaction
989 is going to update/delete a primary key and use LOCK parent_table IN SHARE
990 MODE command if a transaction is going to update/insert a foreign key.
992 Note: Note that if you run a transaction in SERIALIZABLE mode then
993 you must execute the LOCK commands above before execution of any
994 DML statement (SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO) in the
997 These inconveniences will disappear in the future when the ability to read
998 dirty (uncommitted) data (regardless of isolation level) and true
999 referential integrity will be implemented.
1004 Fix text<->float8 and text<->float4 conversion functions(Thomas)
1005 Fix for creating tables with mixed-case constraints(Billy)
1006 Change exp()/pow() behavior to generate error on underflow/overflow(Jan)
1007 Fix bug in pg_dump -z
1008 Memory overrun cleanups(Tatsuo)
1009 Fix for lo_import crash(Tatsuo)
1010 Adjust handling of data type names to suppress double quotes(Thomas)
1011 Use type coersion for matching columns and DEFAULT(Thomas)
1012 Fix deadlock so it only checks once after one second of sleep(Bruce)
1013 Fixes for aggregates and PL/pgsql(Hiroshi)
1014 Fix for subquery crash(Vadim)
1015 Fix for libpq function PQfnumber and case-insensitive names(Bahman Rafatjoo)
1016 Fix for large object write-in-middle, no extra block, memory consumption(Tatsuo)
1017 Fix for pg_dump -d or -D and quote special characters in INSERT
1018 Repair serious problems with dynahash(Tom)
1019 Fix INET/CIDR portability problems
1020 Fix problem with selectivity error in ALTER TABLE ADD COLUMN(Bruce)
1021 Fix executor so mergejoin of different column types works(Tom)
1022 Fix for Alpha OR selectivity bug
1023 Fix OR index selectivity problem(Bruce)
1024 Fix so \d shows proper length for char()/varchar()(Ryan)
1025 Fix tutorial code(Clark)
1026 Improve destroyuser checking(Oliver)
1027 Fix for Kerberos(Rodney McDuff)
1028 Fix for dropping database while dirty buffers(Bruce)
1029 Fix so sequence nextval() can be case-sensitive(Bruce)
1031 Drop buffers before destroying database files(Bruce)
1032 Fix case where executor evaluates functions twice(Tatsuo)
1033 Allow sequence nextval actions to be case-sensitive(Bruce)
1034 Fix optimizer indexing not working for negative numbers(Bruce)
1035 Fix for memory leak in executor with fjIsNull
1036 Fix for aggregate memory leaks(Erik Riedel)
1037 Allow username containing a dash GRANT permissions
1038 Cleanup of NULL in inet types
1039 Clean up system table bugs(Tom)
1040 Fix problems of PAGER and \? command(Masaaki Sakaida)
1041 Reduce default multi-segment file size limit to 1GB(Peter)
1042 Fix for dumping of CREATE OPERATOR(Tom)
1043 Fix for backward scanning of cursors(Hiroshi Inoue)
1044 Fix for COPY FROM STDIN when using \i(Tom)
1045 Fix for subselect is compared inside an expression(Jan)
1046 Fix handling of error reporting while returning rows(Tom)
1047 Fix problems with reference to array types(Tom,Jan)
1048 Prevent UPDATE SET oid(Jan)
1049 Fix pg_dump so -t option can handle case-sensitive tablenames
1050 Fixes for GROUP BY in special cases(Tom, Jan)
1051 Fix for memory leak in failed queries(Tom)
1052 DEFAULT now supports mixed-case identifiers(Tom)
1053 Fix for multi-segment uses of DROP/RENAME table, indexes(Ole Gjerde)
1054 Disable use of pg_dump with both -o and -d options(Bruce)
1055 Allow pg_dump to properly dump GROUP permissions(Bruce)
1056 Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan)
1057 Fix for computations in views(Jan)
1058 Fix for aggregates on array indexes(Tom)
1059 Fix for DEFAULT handles single quotes in value requiring too many quotes
1060 Fix security problem with non-super users importing/exporting large objects(Tom)
1061 Rollback of transaction that creates table cleaned up properly(Tom)
1062 Fix to allow long table and column names to generate proper serial names(Tom)
1066 Add "vacuumdb" utility
1067 Speed up libpq by allocating memory better(Tom)
1068 EXPLAIN all indices used(Tom)
1069 Implement CASE, COALESCE, NULLIF expression(Thomas)
1070 New pg_dump table output format(Constantin)
1071 Add string min()/max() functions(Thomas)
1072 Extend new type coersion techniques to aggregates(Thomas)
1073 New moddatetime contrib(Terry)
1074 Update to pgaccess 0.96(Constantin)
1075 Add routines for single-byte "char" type(Thomas)
1076 Improved substr() function(Thomas)
1077 Improved multi-byte handling(Tatsuo)
1078 Multi-version concurrency control/MVCC(Vadim)
1079 New Serialized mode(Vadim)
1080 Fix for tables over 2gigs(Peter)
1081 New SET TRANSACTION ISOLATION LEVEL(Vadim)
1082 New LOCK TABLE IN ... MODE(Vadim)
1083 Update ODBC driver(Byron)
1084 New NUMERIC data type(Jan)
1085 New SELECT FOR UPDATE(Vadim)
1086 Handle "NaN" and "Infinity" for input values(Jan)
1087 Improved date/year handling(Thomas)
1088 Improved handling of backend connections(Magnus)
1089 New options ELOG_TIMESTAMPS and USE_SYSLOG options for log files(Massimo)
1090 New TCL_ARRAYS option(Massimo)
1091 New INTERSECT and EXCEPT(Stefan)
1092 New pg_index.indisprimary for primary key tracking(D'Arcy)
1093 New pg_dump option to allow dropping of tables before creation(Brook)
1094 Speedup of row output routines(Tom)
1095 New READ COMMITTED isolation level(Vadim)
1096 New TEMP tables/indexes(Bruce)
1097 Prevent sorting if result is already sorted(Jan)
1098 New memory allocation optimization(Jan)
1099 Allow psql to do \p\g(Bruce)
1100 Allow multiple rule actions(Jan)
1101 Added LIMIT/OFFSET functionality(Jan)
1102 Improve optimizer when joining a large number of tables(Bruce)
1103 New intro to SQL from S. Simkovics' Master's Thesis (Stefan, Thomas)
1104 New intro to backend processing from S. Simkovics' Master's Thesis (Stefan)
1105 Improved int8 support(Ryan Bradetich, Thomas, Tom)
1106 New routines to convert between int8 and text/varchar types(Thomas)
1107 New bushy plans, where meta-tables are joined(Bruce)
1108 Enable right-hand queries by default(Bruce)
1109 Allow reliable maximum number of backends to be set at configure time
1110 (--with-maxbackends and postmaster switch (-N backends))(Tom)
1111 GEQO default now 10 tables because of optimizer speedups(Tom)
1112 Allow NULL=Var for MS-SQL portability(Michael, Bruce)
1113 Modify contrib check_primary_key() so either "automatic" or "dependent"(Anand)
1114 Allow psql \d on a view show query(Ryan)
1115 Speedup for LIKE(Bruce)
1116 Ecpg fixes/features, see src/interfaces/ecpg/ChangeLog file(Michael)
1117 JDBC fixes/features, see src/interfaces/jdbc/CHANGELOG(Peter)
1118 Make % operator have precedence like /(Bruce)
1119 Add new postgres -O option to allow system table structure changes(Bruce)
1120 Update contrib/pginterface/findoidjoins script(Tom)
1121 Major speedup in vacuum of deleted rows with indexes(Vadim)
1122 Allow non-SQL functions to run different versions based on arguments(Tom)
1123 Add -E option that shows actual queries sent by \dt and friends(Masaaki Sakaida)
1124 Add version number in start-up banners for psql(Masaaki Sakaida)
1125 New contrib/vacuumlo removes large objects not referenced(Peter)
1126 New initialization for table sizes so non-vacuumed tables perform better(Tom)
1127 Improve error messages when a connection is rejected(Tom)
1128 Support for arrays of char() and varchar() fields(Massimo)
1129 Overhaul of hash code to increase reliability and performance(Tom)
1130 Update to PyGreSQL 2.4(D'Arcy)
1131 Changed debug options so -d4 and -d5 produce different node displays(Jan)
1132 New pg_options: pretty_plan, pretty_parse, pretty_rewritten(Jan)
1133 Better optimization statistics for system table access(Tom)
1134 Better handling of non-default block sizes(Massimo)
1135 Improve GEQO optimizer memory consumption(Tom)
1136 UNION now suppports ORDER BY of columns not in target list(Jan)
1137 Major libpq++ improvements(Vince Vielhaber)
1138 pg_dump now uses -z(ACL's) as default(Bruce)
1139 backend cache, memory speedups(Tom)
1140 have pg_dump do everything in one snapshot transaction(Vadim)
1141 fix for large object memory leakage, fix for pg_dumping(Tom)
1142 INET type now respects netmask for comparisons
1143 Make VACUUM ANALYZE only use a readlock(Vadim)
1144 Allow VIEWs on UNIONS(Jan)
1145 pg_dump now can generate consistent snapshots on active databases(Vadim)
1149 Improve port matching(Tom)
1150 Portability fixes for SunOS
1151 Add NT/Win32 backend port and enable dynamic loading(Magnus and Daniel Horak)
1152 New port to Cobalt Qube(Mips) running Linux(Tatsuo)
1153 Port to NetBSD/m68k(Mr. Mutsuki Nakajima)
1154 Port to NetBSD/sun3(Mr. Mutsuki Nakajima)
1155 Port to NetBSD/macppc(Toshimi Aoki)
1156 Fix for tcl/tk configuration(Vince)
1157 Removed CURRENT keyword for rule queries(Jan)
1158 NT dynamic loading now works(Daniel Horak)
1159 Add ARM32 support(Andrew McMurry)
1160 Better support for HPUX 11 and Unixware
1161 Improve file handling to be more uniform, prevent file descriptor leak(Tom)
1162 New install commands for plpgsql(Jan)
1166 ------------------------------------------------------------------------
1168 ------------------------------------------------------------------------
1171 Release 6.4.2 (1999-12-20)
1173 The 6.4.1 release was improperly packaged. This also has one additional bug
1178 A dump/restore is not required for those running 6.4.*.
1182 Fix for datetime constant problem on some platforms(Thomas)
1186 ------------------------------------------------------------------------
1188 ------------------------------------------------------------------------
1191 Release 6.4.1 (1999-12-18)
1193 This is basically a cleanup release for 6.4. We have fixed a variety of
1194 problems reported by 6.4 users.
1198 A dump/restore is not required for those running 6.4.
1202 Add pg_dump -N flag to force double quotes around identifiers. This is
1204 Fix for NOT in where clause causing crash(Bruce)
1205 EXPLAIN VERBOSE coredump fix(Vadim)
1206 Fix shared-library problems on Linux
1207 Fix test for table existance to allow mixed-case and whitespace in
1208 the table name(Thomas)
1209 Fix a couple of pg_dump bugs
1210 Configure matches template/.similar entries better(Tom)
1211 Change builtin function names from SPI_* to spi_*
1212 OR WHERE clause fix(Vadim)
1213 Fixes for mixed-case table names(Billy)
1214 contrib/linux/postgres.init.csh/sh fix(Thomas)
1215 libpq memory overrun fix
1217 Change exp() behavior to generate error on underflow(Thomas)
1218 pg_dump fixes for memory leak, inheritance constraints, layout change
1219 update pgaccess to 0.93
1220 Fix prototype for 64-bit platforms
1221 Multi-byte fixes(Tatsuo)
1223 Fix memory overruns(Tatsuo)
1224 Fix for lo_import() crash(Bruce)
1225 Better search for install program(Tom)
1228 Use implicit type coersion for matching DEFAULT values(Thomas)
1229 Add routines to help with single-byte (internal) character type(Thomas)
1230 Compilation of libpq for Win32 fixes(Magnus)
1231 Upgrade to PyGreSQL 2.2(D'Arcy)
1235 ------------------------------------------------------------------------
1237 ------------------------------------------------------------------------
1240 Release 6.4 (1998-10-30)
1242 There are many new features and improvements in this release. Thanks to our
1243 developers and maintainers, nearly every aspect of the system has received
1244 some attention since the previous release. Here is a brief, incomplete
1247 * Views and rules are now functional thanks to extensive new code in the
1248 rewrite rules system from Jan Wieck. He also wrote a chapter on it for
1249 the Programmer's Guide.
1251 * Jan also contributed a second procedural language, PL/pgSQL, to go with
1252 the original PL/pgTCL procedural language he contributed last release.
1254 * We have optional multiple-byte character set support from Tatsuo Iishi
1255 to complement our existing locale support.
1257 * Client/server communications has been cleaned up, with better support
1258 for asynchronous messages and interrupts thanks to Tom Lane.
1260 * The parser will now perform automatic type coersion to match arguments
1261 to available operators and functions, and to match columns and
1262 expressions with target columns. This uses a generic mechanism which
1263 supports the type extensibility features of Postgres. There is a new
1264 chapter in the User's Guide which covers this topic.
1266 * Three new data types have been added. Two types, inet and cidr, support
1267 various forms of IP network, subnet, and machine addressing. There is
1268 now an 8-byte integer type available on some platforms. See the chapter
1269 on data types in the User's Guide for details. A fourth type, serial,
1270 is now supported by the parser as an amalgam of the int4 type, a
1271 sequence, and a unique index.
1273 * Several more SQL92-compatible syntax features have been added,
1274 including INSERT DEFAULT VALUES
1276 * The automatic configuration and installation system has received some
1277 attention, and should be more robust for more platforms than it has
1282 A dump/restore using pg_dump or pg_dumpall is required for those wishing to
1283 migrate data from any previous release of Postgres.
1288 Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
1289 Remove char2-16 data types, use char/varchar(Darren)
1290 Pqfn not handles a NOTICE message(Anders)
1291 Reduced busywaiting overhead for spinlocks with many backends (dg)
1292 Stuck spinlock detection (dg)
1293 Fix up "ISO-style" timespan decoding and encoding(Thomas)
1294 Fix problem with table drop after rollback of transaction(Vadim)
1295 Change error message and remove non-functional update message(Vadim)
1296 Fix for COPY array checking
1297 Fix for SELECT 1 UNION SELECT NULL
1298 Fix for buffer leaks in large object calls(Pascal)
1299 Change owner from oid to int4 type(Bruce)
1300 Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
1301 Fix for shared invalidation cache overflow(Massimo)
1302 Prevent file descriptor leaks in failed COPY's(Bruce)
1303 Fix memory leak in libpgtcl's pg_select(Constantin)
1304 Fix problems with username/passwords over 8 characters(Tom)
1305 Fix problems with handling of asynchronous NOTIFY in backend(Tom)
1306 Fix of many bad system table entries(Tom)
1310 Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael)
1311 Show the index used in an EXPLAIN(Zeugswetter)
1312 EXPLAIN invokes rule system and shows plan(s) for rewritten queries(Jan)
1313 Multi-byte awareness of many data types and functions, via configure(Tatsuo)
1314 New configure --with-mb option(Tatsuo)
1315 New initdb --pgencoding option(Tatsuo)
1316 New createdb -E multibyte option(Tatsuo)
1317 Select version(); now returns PostgreSQL version(Jeroen)
1318 Libpq now allows asynchronous clients(Tom)
1319 Allow cancel from client of backend query(Tom)
1320 Psql now cancels query with Control-C(Tom)
1321 Libpq users need not issue dummy queries to get NOTIFY messages(Tom)
1322 NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom)
1323 PGresult struct now includes associated error message, if any(Tom)
1324 Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
1325 Add routines to convert between varchar and bpchar(Thomas)
1326 Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
1327 Add bit flags to support timezonehour and minute in data retrieval(Thomas)
1328 Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
1329 Fixes for unary minus parsing with leading spaces(Thomas)
1330 Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
1331 Check for and properly ignore FOREIGN KEY column constraints(Thomas)
1332 Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
1333 Enable HAVING clause but no fixes elsewhere yet.
1334 Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
1335 Save string type if specified for DEFAULT clause handling(Thomas)
1336 Coerce operations involving different data types(Thomas)
1337 Allow some index use for columns of different types(Thomas)
1338 Add capabilities for automatic type conversion(Thomas)
1339 Cleanups for large objects, so file is truncated on open(Peter)
1340 Readline cleanups(Tom)
1341 Allow psql \f \ to make spaces as delimiter(Bruce)
1342 Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
1343 Msql compatibility library in /contrib(Aldrin)
1344 Remove the requirement that ORDER/GROUP BY clause identifiers be
1345 included in the target list(David)
1346 Convert columns to match columns in UNION clauses(Thomas)
1347 Remove fork()/exec() and only do fork()(Bruce)
1348 Jdbc cleanups(Peter)
1349 Show backend status on ps command line(only works on some platforms)(Bruce)
1350 Pg_hba.conf now has a sameuser option in the database field
1351 Make lo_unlink take oid param, not int4
1352 New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce)
1353 Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom)
1354 libpgtcl cleanups(Tom)
1355 Add -error option to libpgtcl's pg_result command(Tom)
1356 New locale patch, see docs/README/locale(Oleg)
1357 Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
1358 New contrib/lo code for large object orphan removal(Peter)
1359 New psql command "SET CLIENT_ENCODING TO 'encoding'" for multi-bytes
1360 feature, see /doc/README.mb(Tatsuo)
1361 /contrib/noupdate code to revoke update permission on a column
1362 Libpq can now be compiled on win32(Magnus)
1363 Add PQsetdbLogin() in libpq
1364 New 8-byte integer type, checked by configure for OS support(Thomas)
1365 Better support for quoted table/column names(Thomas)
1366 Surround table and column names with double-quotes in pg_dump(Thomas)
1367 PQreset() now works with passwords(Tom)
1368 Handle case of GROUP BY target list column number out of range(David)
1369 Allow UNION in subselects
1370 Add auto-size to screen to \d? commands(Bruce)
1371 Use UNION to show all \d? results in one query(Bruce)
1372 Add \d? field search feature(Bruce)
1373 Pg_dump issues fewer \connect requests(Tom)
1374 Make pg_dump -z flag work better, document it in manual page(Tom)
1375 Add HAVING clause with full support for subselects and unions(Stephan)
1376 Full text indexing routines in contrib/fulltextindex(Maarten)
1377 Transaction ids now stored in shared memory(Vadim)
1378 New PGCLIENTENCODING when issuing COPY command(Tatsuo)
1379 Support for SQL92 syntax "SET NAMES"(Tatsuo)
1380 Support for LATIN2-5(Tatsuo)
1381 Add UNICODE regression test case(Tatsuo)
1382 Lock manager cleanup, new locking modes for LLL(Vadim)
1383 Allow index use with OR clauses(Bruce)
1384 Allows "SELECT NULL ORDER BY 1;"
1385 Explain VERBOSE prints the plan, and now pretty-prints the plan to
1386 the postmaster log file(Bruce)
1387 Add Indices display to \d command(Bruce)
1388 Allow GROUP BY on functions(David)
1389 New pg_class.relkind for large objects(Bruce)
1390 New way to send libpq NOTICE messages to a different location(Tom)
1391 New \w write command to psql(Bruce)
1392 New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
1393 Allow binary-compatible indices to be considered when checking for valid
1394 indices for restriction clauses containing a constant(Thomas)
1395 New ISBN/ISSN code in /contrib/isbn_issn
1396 Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas)
1397 New rewrite system fixes many problems with rules and views(Jan)
1398 * Rules on relations work
1399 * Event qualifications on insert/update/delete work
1400 * New OLD variable to reference CURRENT, CURRENT will be remove in future
1401 * Update rules can reference NEW and OLD in rule qualifications/actions
1402 * Insert/update/delete rules on views work
1403 * Multiple rule actions are now supported, surrounded by parentheses
1404 * Regular users can create views/rules on tables they have RULE permits
1405 * Rules and views inherit the permissions on the creator
1406 * No rules at the column level
1407 * No UPDATE NEW/OLD rules
1408 * New pg_tables, pg_indexes, pg_rules and pg_views system views
1409 * Only a single action on SELECT rules
1410 * Total rewrite overhaul, perhaps for 6.5
1412 * handle aggregates on views
1413 * handle insert into select from view works
1414 System indexes are now multi-key(Bruce)
1415 Oidint2, oidint4, and oidname types are removed(Bruce)
1416 Use system cache for more system table lookups(Bruce)
1417 New backend programming language PL/pgSQL in backend/pl(Jan)
1418 New SERIAL data type, auto-creates sequence/index(Thomas)
1419 Enable assert checking without a recompile(Massimo)
1420 User lock enhancements(Massimo)
1421 New setval() command to set sequence value(Massimo)
1422 Auto-remove unix socket file on start-up if no postmaster running(Massimo)
1423 Conditional trace package(Massimo)
1424 New UNLISTEN command(Massimo)
1425 Psql and libpq now compile under win32 using win32.mak(Magnus)
1426 Lo_read no longer stores trailing NULL(Bruce)
1427 Identifiers are now truncated to 31 characters internally(Bruce)
1428 Createuser options now availble on the command line
1429 Code for 64-bit integer supported added, configure tested, int8 type(Thomas)
1430 Prevent file descriptor leaf from failed COPY(Bruce)
1431 New pg_upgrade command(Bruce)
1432 Updated /contrib directories(Massimo)
1433 New CREATE TABLE DEFAULT VALUES statement available(Thomas)
1434 New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
1435 New DECLARE and FETCH feature(Thomas)
1436 libpq's internal structures now not exported(Tom)
1437 Allow up to 8 key indexes(Bruce)
1438 Remove ARCHIVE keyword, that is no longer used(Thomas)
1439 pg_dump -n flag to supress quotes around indentifiers
1440 disable system columns for views(Jan)
1441 new INET and CIDR types for network addresses(TomH, Paul)
1442 no more double quotes in psql output
1443 pg_dump now dumps views(Terry)
1444 new SET QUERY_LIMIT(Tatsuo,Jan)
1448 /contrib cleanup(Jun)
1449 Inline some small functions called for every row(Bruce)
1452 Multi-byte regression tests(Soonmyung.)
1453 Remove --disabled options from configure
1454 Define PGDOC to use POSTGRESDIR by default
1455 Make regression optional
1456 Remove extra braces code to pgindent(Bruce)
1457 Add bsdi shared library support(Bruce)
1458 New --without-CXX support configure option(Brook)
1460 Update backend flowchart in tools/backend(Bruce)
1461 Change atttypmod from int16 to int32(Bruce, Tom)
1462 Getrusage() fix for platforms that do not have it(Tom)
1463 Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page
1464 NS32K platform fixes(Phil Nelson, John Buller)
1465 Sco 7/UnixWare 2.x fixes(Billy,others)
1466 Sparc/Solaris 2.5 fixes(Ryan)
1467 Pgbuiltin.3 is obsolete, move to doc files(Thomas)
1468 Even more documention(Thomas)
1469 Nextstep support(Jacek)
1471 pginterface manual page(Bruce)
1472 shared libraries all have version numbers
1473 merged all OS-specific shared library defines into one file
1474 smarter TCL/TK configuration checking(Billy)
1475 smarter perl configuration(Brook)
1476 configure uses supplied install-sh if no install script found(Tom)
1477 new Makefile.shlib for shared library configuration(Tom)
1481 ------------------------------------------------------------------------
1483 ------------------------------------------------------------------------
1486 Release 6.3.2 (1998-04-07)
1488 This is a bugfix release for 6.3.x. Refer to the release notes for v6.3 for
1489 a more complete summary of new features.
1493 * Repairs automatic configuration support for some platforms, including
1494 Linux, from breakage inadvertently introduced in v6.3.1.
1496 * Correctly handles function calls on the left side of BETWEEN and LIKE
1499 A dump/restore is NOT required for those running 6.3 or 6.3.1. A 'make
1500 distclean', 'make', and 'make install' is all that is required. This last
1501 step should be performed while the postmaster is not running. You should
1502 re-link any custom applications that use Postgres libraries.
1504 For upgrades from pre-v6.3 installations, refer to the installation and
1505 migration instructions for v6.3.
1510 Configure detection improvements for tcl/tk(Brook Milligan, Alvin)
1511 Manual page improvements(Bruce)
1512 BETWEEN and LIKE fix(Thomas)
1513 fix for psql \connect used by pg_dump(Oliver Elphick)
1515 pgaccess, version 0.86
1516 qsort removed, now uses libc version, cleanups(Jeroen)
1517 fix for buffer over-runs detected(Maurice Gittens)
1518 fix for buffer overrun in libpgtcl(Randy Kunkee)
1519 fix for UNION with DISTINCT or ORDER BY(Bruce)
1520 gettimeofday configure check(Doug Winterburn)
1521 Fix "indexes not used" bug(Vadim)
1522 docs additions(Thomas)
1523 Fix for backend memory leak(Bruce)
1524 libreadline cleanup(Erwan MAS)
1525 Remove DISTDIR(Bruce)
1526 Makefile dependency cleanup(Jeroen van Vianen)
1531 ------------------------------------------------------------------------
1533 ------------------------------------------------------------------------
1536 Release 6.3.1 (1998-03-23)
1540 * Additional support for multi-byte character sets.
1542 * Repair byte ordering for mixed-endian clients and servers.
1544 * Minor updates to allowed SQL syntax.
1546 * Improvements to the configuration autodetection for installation.
1548 A dump/restore is NOT required for those running 6.3. A 'make distclean',
1549 'make', and 'make install' is all that is required. This last step should be
1550 performed while the postmaster is not running. You should re-link any custom
1551 applications that use Postgres libraries.
1553 For upgrades from pre-v6.3 installations, refer to the installation and
1554 migration instructions for v6.3.
1559 ecpg cleanup/fixes, now version 1.1(Michael Meskes)
1560 pg_user cleanup(Bruce)
1561 large object fix for pg_dump and tclsh (alvin)
1562 LIKE fix for multiple adjacent underscores
1563 fix for redefining builtin functions(Thomas)
1565 upgrade to pg_access 0.83
1566 updated CLUSTER manual page
1567 multi-byte character set support, see doc/README.mb(Tatsuo)
1568 configure --with-pgport fix
1570 big-endian fix for backend communications(Kataoka)
1571 SUBSTR() and substring() fix(Jan)
1572 several jdbc fixes(Peter)
1573 libpgtcl improvements, see libptcl/README(Randy Kunkee)
1574 Fix for "Datasize = 0" error(Vadim)
1575 Prevent \do from wrapping(Bruce)
1576 Remove duplicate Russian character set entries
1578 Allow optional TABLE keyword in LOCK and SELECT INTO(Thomas)
1579 CREATE SEQUENCE options to allow a negative integer(Thomas)
1580 Add "PASSWORD" as an allowed column identifier(Thomas)
1581 Add checks for UNION target fields(Bruce)
1582 Fix Alpha port(Dwayne Bailey)
1583 Fix for text arrays containing quotes(Doug Gibson)
1584 Solaris compile fix(Albert Chin-A-Young)
1585 Better identify tcl and tk libs and includes(Bruce)
1589 ------------------------------------------------------------------------
1591 ------------------------------------------------------------------------
1594 Release 6.3 (1998-03-01)
1596 There are many new features and improvements in this release. Here is a
1597 brief, incomplete summary:
1599 * Many new SQL features, including full SQL92 subselect capability
1600 (everything is here but target-list subselects).
1602 * Support for client-side environment variables to specify time zone and
1605 * Socket interface for client/server connection. This is the default now
1606 so you may need to start postmaster with the "-i" flag.
1608 * Better password authorization mechanisms. Default table permissions
1611 * Old-style "time travel" has been removed. Performance has been
1614 Note: Bruce Momjian wrote the following notes to introduce the new
1617 There are some general 6.3 issues that I want to mention. These are only the
1618 big items that can not be described in one sentence. A review of the
1619 detailed changes list is still needed.
1621 First, we now have subselects. Now that we have them, I would like to
1622 mention that without subselects, SQL is a very limited language. Subselects
1623 are a major feature, and you should review your code for places where
1624 subselects provide a better solution for your queries. I think you will find
1625 that there are more uses for subselects than you may think. Vadim has put us
1626 on the big SQL map with subselects, and fully functional ones too. The only
1627 thing you can't do with subselects is to use them in the target list.
1629 Second, 6.3 uses unix domain sockets rather than TCP/IP by default. To
1630 enable connections from other machines, you have to use the new postmaster
1631 -i option, and of course edit pg_hba.conf. Also, for this reason, the format
1632 of pg_hba.conf has changed.
1634 Third, char() fields will now allow faster access than varchar() or text.
1635 Specifically, the text and varchar() have a penalty for access to any
1636 columns after the first column of this type. char() used to also have this
1637 access penalty, but it no longer does. This may suggest that you redesign
1638 some of your tables, especially if you have short character columns that you
1639 have defined as varchar() or text. This and other changes make 6.3 even
1640 faster than earlier releases.
1642 We now have passwords definable independent of any Unix file. There are new
1643 SQL USER commands. See the pg_hba.conf manual page for more information.
1644 There is a new table, pg_shadow, which is used to store user information and
1645 user passwords, and it by default only SELECT-able by the postgres
1646 super-user. pg_user is now a view of pg_shadow, and is SELECT-able by
1647 PUBLIC. You should keep using pg_user in your application without changes.
1649 User-created tables now no longer have SELECT permission to PUBLIC by
1650 default. This was done because the ANSI standard requires it. You can of
1651 course GRANT any permissions you want after the table is created. System
1652 tables continue to be SELECT-able by PUBLIC.
1654 We also have real deadlock detection code. No more sixty-second timeouts.
1655 And the new locking code implements a FIFO better, so there should be less
1656 resource starvation during heavy use.
1658 Many complaints have been made about inadequate documenation in previous
1659 releases. Thomas has put much effort into many new manuals for this release.
1660 Check out the doc/ directory.
1662 For performance reasons, time travel is gone, but can be implemented using
1663 triggers (see pgsql/contrib/spi/README). Please check out the new \d command
1664 for types, operators, etc. Also, views have their own permissions now, not
1665 based on the underlying tables, so permissions on them have to be set
1666 separately. Check /pgsql/interfaces for some new ways to talk to Postgres.
1668 This is the first release that really required an explanation for existing
1669 users. In many ways, this was necessary because the new release removes many
1670 limitations, and the work-arounds people were using are no longer needed.
1674 A dump/restore using pg_dump or pg_dumpall is required for those wishing to
1675 migrate data from any previous release of Postgres.
1680 Fix binary cursors broken by MOVE implementation(Vadim)
1681 Fix for tcl library crash(Jan)
1682 Fix for array handling, from Gerhard Hintermayer
1683 Fix acl error, and remove duplicate pqtrace(Bruce)
1684 Fix psql \e for empty file(Bruce)
1685 Fix for textcat on varchar() fields(Bruce)
1686 Fix for DBT Sendproc (Zeugswetter Andres)
1687 Fix vacuum analyze syntax problem(Bruce)
1688 Fix for international identifiers(Tatsuo)
1689 Fix aggregates on inherited tables(Bruce)
1690 Fix substr() for out-of-bounds data
1691 Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce)
1692 Fix notty output to show status result. -q option still turns it off(Bruce)
1693 Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce)
1695 Fix for PQtrace start/stop several times(Bruce)
1696 Fix a variety of locking problems like newer lock waiters getting
1697 lock before older waiters, and having readlock people not share
1698 locks if a writer is waiting for a lock, and waiting writers not
1699 getting priority over waiting readers(Bruce)
1700 Fix crashes in psql when executing queries from external files(James)
1701 Fix problem with multiple order by columns, with the first one having
1703 Use correct hash table support functions for float8 and int4(Thomas)
1704 Re-enable JOIN= option in CREATE OPERATOR statement (Thomas)
1705 Change precedence for boolean operators to match expected behavior(Thomas)
1706 Generate elog(ERROR) on over-large integer(Bruce)
1707 Allow multiple-argument functions in constraint clauses(Thomas)
1708 Check boolean input literals for 'true','false','yes','no','1','0'
1709 and throw elog(ERROR) if unrecognized(Thomas)
1710 Major large objects fix
1711 Fix for GROUP BY showing duplicates(Vadim)
1712 Fix for index scans in MergeJion(Vadim)
1716 Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas)
1717 New User Manual(Thomas, others)
1718 Speedup by inlining some frequently-called functions
1719 Real deadlock detection, no more timeouts(Bruce)
1720 Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,
1721 CURRENT_USER(Thomas)
1722 Modify constraint syntax to be SQL92-compliant(Thomas)
1723 Implement SQL92 PRIMARY KEY and UNIQUE clauses using indices(Thomas)
1724 Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
1725 Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
1726 Allow Postgres-style casting ("::") of non-constants(Thomas)
1727 Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
1728 Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
1729 Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas)
1730 Allow SQL92 delimited identifiers(Thomas)
1731 Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas)
1732 Support SQL92 syntax for type coercion of literal strings
1733 (e.g. "DATETIME 'now'")(Thomas)
1734 Add conversions for int2, int4, and OID types to and from text(Thomas)
1735 Use shared lock when building indices(Vadim)
1736 Free memory allocated for an user query inside transaction block after
1737 this query is done, was turned off in <= 6.2.1(Vadim)
1738 New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
1739 New Postgres Procedural Language (PL) backend interface(Jan)
1740 Rename pg_dump -H option to -h(Bruce)
1741 Add Java support for passwords, European dates(Peter)
1742 Use indices for LIKE and ~, !~ operations(Bruce)
1743 Add hash functions for datetime and timespan(Thomas)
1744 Time Travel removed(Vadim, Bruce)
1745 Add paging for \d and \z, and fix \i(Bruce)
1746 Add Unix domain socket support to backend and to frontend library(Goran)
1747 Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas)
1748 Allow more SQL92 and/or Postgres reserved words as column identifiers(Thomas)
1749 Augment support for SQL92 SET TIME ZONE...(Thomas)
1750 SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
1751 Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
1752 Enable SET TIME ZONE using TZ environment variable(Thomas)
1753 Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas)
1754 Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
1755 frontend library initialization environment variables(Thomas)
1756 Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas)
1757 Add pg_description table for info on tables, columns, operators, types, and
1759 Increase 16 char limit on system table/index names to 32 characters(Bruce)
1760 Rename system indices(Bruce)
1761 Add 'GERMAN' option to SET DATESTYLE(Thomas)
1762 Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas)
1763 Allow fractional values for delta times (e.g. '2.5 days')(Thomas)
1764 Validate numeric input more carefully for delta times(Thomas)
1765 Implement day of year as possible input to date_part()(Thomas)
1766 Define timespan_finite() and text_timespan() functions(Thomas)
1767 Remove archive stuff(Bruce)
1768 Allow for a pg_password authentication database that is separate from
1769 the system password file(Todd)
1770 Dump ACLs, GRANT, REVOKE permissions(Matt)
1771 Define text, varchar, and bpchar string length functions(Thomas)
1772 Fix Query handling for inheritance, and cost computations(Bruce)
1773 Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas)
1774 Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas)
1775 Implement UNIONs for SELECT(Bruce)
1776 Add UNION, GROUP, DISTINCT to INSERT(Bruce)
1777 varchar() stores only necessary bytes on disk(Bruce)
1778 Fix for BLOBs(Peter)
1779 Mega-Patch for JDBC...see README_6.3 for list of changes(Peter)
1780 Remove unused "option" from PQconnectdb()
1781 New LOCK command and lock manual page describing deadlocks(Bruce)
1782 Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce)
1783 Enhance psql \z to show sequences(Bruce)
1784 Show NOT NULL and DEFAULT in psql \d table(Bruce)
1785 New psql .psqlrc file start-up(Andrew)
1786 Modify sample start-up script in contrib/linux to show syslog(Thomas)
1787 New types for IP and MAC addresses in contrib/ip_and_mac(TomH)
1788 Unix system time conversions with date/time types in contrib/unixdate(Thomas)
1789 Update of contrib stuff(Massimo)
1790 Add Unix socket support to DBD::Pg(Goran)
1791 New python interface (PyGreSQL 2.0)(D'Arcy)
1792 New frontend/backend protocol has a version number, network byte order(Phil)
1793 Security features in pg_hba.conf enhanced and documented, many cleanups(Phil)
1794 CHAR() now faster access than VARCHAR() or TEXT
1795 ecpg embedded SQL preprocessor
1796 Reduce system column overhead(Vadmin)
1797 Remove pg_time table(Vadim)
1798 Add pg_type attribute to identify types that need length (bpchar, varchar)
1799 Add report of offending line when COPY command fails
1800 Allow VIEW permissions to be set separately from the underlying tables.
1801 For security, use GRANT/REVOKE on views as appropriate(Jan)
1802 Tables now have no default GRANT SELECT TO PUBLIC. You must
1803 explicitly grant such permissions.
1804 Clean up tutorial examples(Darren)
1808 Add new html development tools, and flow chart in /tools/backend
1809 Fix for SCO compiles
1810 Stratus computer port Robert Gillies
1811 Added support for shlib for BSD44_derived & i386_solaris
1812 Make configure more automated(Brook)
1813 Add script to check regression test results
1814 Break parser functions into smaller files, group together(Bruce)
1815 Rename heap_create to heap_create_and_catalog, rename heap_creatr
1816 to heap_create()(Bruce)
1817 Sparc/Linux patch for locking(TomS)
1818 Remove PORTNAME and reorganize port-specific stuff(Marc)
1819 Add optimizer README file(Bruce)
1820 Remove some recursion in optimizer and clean up some code there(Bruce)
1821 Fix for NetBSD locking(Henry)
1822 Fix for libptcl make(Tatsuo)
1824 Change IS TRUE, IS FALSE, ... to expressions using "=" rather than
1825 function calls to istrue() or isfalse() to allow optimization(Thomas)
1826 Various fixes NetBSD/Sparc related(TomH)
1827 Alpha linux locking(Travis,Ryan)
1828 Change elog(WARN) to elog(ERROR)(Bruce)
1829 FAQ for FreeBSD(Marc)
1830 Bring in the PostODBC source tree as part of our standard distribution(Marc)
1831 A minor patch for HP/UX 10 vs 9(Stan)
1832 New pg_attribute.atttypmod for type-specific info like varchar length(Bruce)
1833 Unixware patches(Billy)
1834 New i386 'lock' for spin lock asm(Billy)
1835 Support for multiplexed backends is removed
1836 Start an OpenBSD port
1839 Add string functions to regression suite(Thomas)
1840 Expand a few function names formerly truncated to 16 characters(Thomas)
1841 Remove un-needed malloc() calls and replace with palloc()(Bruce)
1845 ------------------------------------------------------------------------
1847 ------------------------------------------------------------------------
1850 Release 6.2.1 (1997-10-17)
1852 This is a bug-fix and usability release on v6.2.
1856 * Allow strings to span lines, per SQL92.
1858 * Include example trigger function for inserting user names on table
1861 This is a minor bug-fix release on v6.2. For upgrades from pre-v6.2 systems,
1862 a full dump/reload is required. Refer to the v6.2 release notes for
1865 Migration from v6.2 to v6.2.1
1867 This is a minor bug-fix release. A dump/reload is not required from v6.2,
1868 but is required from any release prior to v6.2.
1870 In upgrading from v6.2, if you choose to dump/reload you will find that
1871 avg(money) is now calculated correctly. All other bug fixes take effect upon
1872 updating the executables.
1874 Another way to avoid dump/reload is to use the following SQL command from
1875 psql to update the existing system table:
1877 update pg_aggregate set aggfinalfn = 'cash_div_flt8'
1878 where aggname = 'avg' and aggbasetype = 790;
1880 This will need to be done to every existing database, including template1.
1885 Allow TIME and TYPE column names(Thomas)
1886 Allow larger range of true/false as boolean values(Thomas)
1887 Support output of "now" and "current"(Thomas)
1888 Handle DEFAULT with INSERT of NULL properly(Vadim)
1889 Fix for relation reference counts problem in buffer manager(Vadim)
1890 Allow strings to span lines, like ANSI(Thomas)
1891 Fix for backward cursor with ORDER BY(Vadim)
1892 Fix avg(cash) computation(Thomas)
1893 Fix for specifying a column twice in ORDER/GROUP BY(Vadim)
1894 Documented new libpq function to return affected rows, PQcmdTuples(Bruce)
1895 Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan)
1899 ------------------------------------------------------------------------
1901 ------------------------------------------------------------------------
1904 Release 6.2 (1997-10-02)
1907 A dump/restore is required for those wishing to migrate data from previous
1908 releases of Postgres.
1910 Migration from v6.1 to v6.2
1912 This migration requires a complete dump of the 6.1 database and a restore of
1913 the database in 6.2.
1915 Note that the pg_dump and pg_dumpall utility from 6.2 should be used to dump
1918 Migration from v1.x to v6.2
1920 Those migrating from earlier 1.* releases should first upgrade to 1.09
1921 because the COPY output format was improved from the 1.02 release.
1926 Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
1927 Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
1928 from Solaris(Diab Jerius)
1929 Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas)
1930 Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas)
1931 Catch non-functional delete attempts(Vadim)
1932 Change time function names to be more consistent(Michael Reifenberg)
1933 Check for zero divides(Michael Reifenberg)
1934 Fix very old bug which made tuples changed/inserted by a commnd
1935 visible to the command itself (so we had multiple update of
1936 updated tuples, etc)(Vadim)
1937 Fix for SELECT null, 'fail' FROM pg_am (Patrick)
1938 SELECT NULL as EMPTY_FIELD now allowed(Patrick)
1939 Remove un-needed signal stuff from contrib/pginterface
1940 Fix OR (where x != 1 or x isnull didn't return tuples with x NULL) (Vadim)
1941 Fix time_cmp function (Vadim)
1942 Fix handling of functions with non-attribute first argument in
1943 WHERE clauses (Vadim)
1944 Fix GROUP BY when order of entries is different from order
1945 in target list (Vadim)
1946 Fix pg_dump for aggregates without sfunc1 (Vadim)
1950 Default genetic optimizer GEQO parameter is now 8(Bruce)
1951 Allow use parameters in target list having aggregates in functions(Vadim)
1952 Added JDBC driver as an interface(Adrian & Peter)
1954 Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim)
1955 Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
1956 SPI (Server Programming Interface) allows execution of queries inside
1958 NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
1959 Include reserved words for string handling, outer joins, and unions(Thomas)
1960 Implement extended comments ("/* ... */") using exclusive states(Thomas)
1961 Add "//" single-line comments(Bruce)
1962 Remove some restrictions on characters in operator names(Thomas)
1963 DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas)
1964 Add text concatenation operator and function (SQL92)(Thomas)
1965 Support WITH TIME ZONE syntax (SQL92)(Thomas)
1966 Support INTERVAL unit TO unit syntax (SQL92)(Thomas)
1967 Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
1968 and CHARACTER VARYING (SQL92)(Thomas)
1969 Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas)
1970 Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas)
1971 Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
1972 Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
1973 Add more reserved words, mostly for SQL92 compliance(Thomas)
1974 Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
1975 Add center() routines for lseg, path, polygon(Thomas)
1976 Add distance() routines for circle-polygon, polygon-polygon(Thomas)
1977 Check explicitly for points and polygons contained within polygons
1978 using an axis-crossing algorithm(Thomas)
1979 Add routine to convert circle-box(Thomas)
1980 Merge conflicting operators for different geometric data types(Thomas)
1981 Replace distance operator "<===>" with "<->"(Thomas)
1982 Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
1983 Add routines for text trimming on both ends, substring, and string position(Thomas)
1984 Added conversion routines circle(box) and poly(circle)(Thomas)
1985 Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
1986 Allow functions and operators on internally-identical types to succeed(Bruce)
1987 Speed up backend start-up after profiling analysis(Bruce)
1988 Inline frequently called functions for performance(Bruce)
1989 Reduce open() calls(Bruce)
1990 psql: Add PAGER for \h and \?,\C fix
1991 Fix for psql pager when no tty(Bruce)
1992 New entab utility(Bruce)
1993 General trigger functions for referential integrity (Vadim)
1994 General trigger functions for time travel (Vadim)
1995 General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
1996 MOVE implementation (Vadim)
2000 HPUX 10 patches (Vladimir Turin)
2001 Added SCO support, (Daniel Harris)
2002 mkLinux patches (Tatsuo Ishii)
2003 Change geometric box terminology from "length" to "width"(Thomas)
2004 Deprecate temporary unstored slope fields in geometric code(Thomas)
2005 Remove restart instructions from INSTALL(Bruce)
2006 Look in /usr/ucb first for install(Bruce)
2007 Fix c++ copy example code(Thomas)
2008 Add -o to psql manual page(Bruce)
2009 Prevent relname unallocated string length from being copied into database(Bruce)
2010 Cleanup for NAMEDATALEN use(Bruce)
2011 Fix pg_proc names over 15 chars in output(Bruce)
2012 Add strNcpy() function(Bruce)
2013 remove some (void) casts that are unnecessary(Bruce)
2014 new interfaces directory(Marc)
2015 Replace fopen() calls with calls to fd.c functions(Bruce)
2016 Make functions static where possible(Bruce)
2017 enclose unused functions in #ifdef NOT_USED(Bruce)
2018 Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas)
2019 Changes for Digital Unix
2020 Portability fix for pg_dumpall(Bruce)
2021 Rename pg_attribute.attnvals to attdispersion(Bruce)
2022 "intro/unix" manual page now "pgintro"(Bruce)
2023 "built-in" manual page now "pgbuiltin"(Bruce)
2024 "drop" manual page now "drop_table"(Bruce)
2025 Add "create_trigger", "drop_trigger" manual pages(Thomas)
2026 Add constraints regression test(Vadim & Thomas)
2027 Add comments syntax regression test(Thomas)
2028 Add PGINDENT and support program(Bruce)
2029 Massive commit to run PGINDENT on all *.c and *.h files(Bruce)
2030 Files moved to /src/tools directory(Bruce)
2031 SPI and Trigger programming guides (Vadim & D'Arcy)
2035 ------------------------------------------------------------------------
2037 ------------------------------------------------------------------------
2040 Release 6.1.1 (1997-07-22)
2042 Migration from v6.1 to v6.1.1
2044 This is a minor bug-fix release. A dump/reload is not required from v6.1,
2045 but is required from any release prior to v6.1. Refer to the release notes
2046 for v6.1 for more details.
2051 fix for SET with options (Thomas)
2052 allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
2053 new psql \connect option allows changing usernames without changing databases
2054 fix for initdb --debug option(Yoshihiko Ichikawa))
2055 lextest cleanup(Bruce)
2057 fix date/time month boundary arithmetic(Thomas)
2058 fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
2059 timestamp overhauled to use standard functions(Thomas)
2060 other code cleanup in date/time routines(Thomas)
2061 psql's \d now case-insensitive(Bruce)
2062 psql's backslash commands can now have trailing semicolon(Bruce)
2063 fix memory leak in psql when using \g(Bruce)
2064 major fix for endian handling of communication to server(Thomas, Tatsuo)
2065 Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
2066 allow underscores in usernames(Bruce)
2067 pg_dumpall now returns proper status, portability fix(Bruce)
2071 ------------------------------------------------------------------------
2073 ------------------------------------------------------------------------
2076 Release 6.1 (1997-06-08)
2079 The regression tests have been adapted and extensively modified for the v6.1
2080 release of Postgres.
2082 Three new data types (datetime, timespan, and circle) have been added to the
2083 native set of Postgres types. Points, boxes, paths, and polygons have had
2084 their output formats made consistant across the data types. The polygon
2085 output in misc.out has only been spot-checked for correctness relative to
2086 the original regression output.
2088 Postgres v6.1 introduces a new, alternate optimizer which uses genetic
2089 algorithms. These algorithms introduce a random behavior in the ordering of
2090 query results when the query contains multiple qualifiers or multiple tables
2091 (giving the optimizer a choice on order of evaluation). Several regression
2092 tests have been modified to explicitly order the results, and hence are
2093 insensitive to optimizer choices. A few regression tests are for data types
2094 which are inherently unordered (e.g. points and time intervals) and tests
2095 involving those types are explicitly bracketed with set geqo to 'off' and
2098 The interpretation of array specifiers (the curly braces around atomic
2099 values) appears to have changed sometime after the original regression tests
2100 were generated. The current ./expected/*.out files reflect this new
2101 interpretation, which may not be correct!
2103 The float8 regression test fails on at least some platforms. This is due to
2104 differences in implementations of pow() and exp() and the signaling
2105 mechanisms used for overflow and underflow conditions.
2107 The "random" results in the random test should cause the "random" test to be
2108 "failed", since the regression tests are evaluated using a simple diff.
2109 However, "random" does not seem to produce random results on my test machine
2114 This migration requires a complete dump of the 6.0 database and a restore of
2115 the database in 6.1.
2117 Those migrating from earlier 1.* releases should first upgrade to 1.09
2118 because the COPY output format was improved from the 1.02 release.
2123 packet length checking in library routines
2124 lock manager priority patch
2125 check for under/over flow of float8(Bruce)
2126 multi-table join fix(Vadim)
2127 SIGPIPE crash fix(Darren)
2128 large object fixes(Sven)
2129 allow btree indexes to handle NULLs(Vadim)
2130 timezone fixes(D'Arcy)
2131 select SUM(x) can return NULL on no rows(Thomas)
2132 internal optimizer, executor bug fixes(Vadim)
2133 fix problem where inner loop in < or <= has no rows(Vadim)
2134 prevent re-commuting join index clauses(Vadim)
2135 fix join clauses for multiple tables(Vadim)
2136 fix hash, hashjoin for arrays(Vadim)
2137 fix btree for abstime type(Vadim)
2138 large object fixes(Raymond)
2139 fix buffer leak in hash indices (Vadim)
2140 fix rtree for use in inner scan (Vadim)
2141 fix gist for use in inner scan, cleanups (Vadim, Andrea)
2142 avoid unnecessary local buffers allocation (Vadim, Massimo)
2143 fix local buffers leak in transaction aborts (Vadim)
2144 fix file manager memmory leaks, cleanups (Vadim, Massimo)
2145 fix storage manager memmory leaks (Vadim)
2146 fix btree duplicates handling (Vadim)
2147 fix deleted tuples re-incarnation caused by vacuum (Vadim)
2148 fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
2149 many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
2153 attribute optimization statistics(Bruce)
2154 much faster new btree bulk load code(Paul)
2155 BTREE UNIQUE added to bulk load code(Vadim)
2156 new lock debug code(Massimo)
2157 massive changes to libpg++(Leo)
2158 new GEQO optimizer speeds table multi-table optimization(Martin)
2159 new WARN message for non-unique insert into unique key(Marc)
2160 update x=-3, no spaces, now valid(Bruce)
2161 remove case-sensitive identifier handling(Bruce,Thomas,Dan)
2162 debug backend now pretty-prints tree(Darren)
2163 new Oracle character functions(Edmund)
2164 new plaintext password functions(Dan)
2165 no such class or insufficient privilege changed to distinct messages(Dan)
2166 new ANSI timestamp function(Dan)
2167 new ANSI Time and Date types (Thomas)
2168 move large chunks of data in backend(Martin)
2169 multi-column btree indexes(Vadim)
2170 new SET var TO value command(Martin)
2171 update transaction status on reads(Dan)
2172 new locale settings for character types(Oleg)
2173 new SEQUENCE serial number generator(Vadim)
2174 GROUP BY function now possible(Vadim)
2175 re-organize regression test(Thomas,Marc)
2176 new optimizer operation weights(Vadim)
2177 new psql \z grant/permit option(Marc)
2178 new MONEY data type(D'Arcy,Thomas)
2179 tcp socket communication speed improved(Vadim)
2180 new VACUUM option for attribute statistics, and for certain columns (Vadim)
2181 many geometric type improvements(Thomas,Keith)
2182 additional regression tests(Thomas)
2183 new datestyle variable(Thomas,Vadim,Martin)
2184 more comparison operators for sorting types(Thomas)
2185 new conversion functions(Thomas)
2186 new more compact btree format(Vadim)
2187 allow pg_dumpall to preserve database ownership(Bruce)
2188 new SET GEQO=# and R_PLANS variable(Vadim)
2189 old (!GEQO) optimizer can use right-sided plans (Vadim)
2190 typechecking improvement in SQL parser(Bruce)
2191 new SET, SHOW, RESET commands(Thomas,Vadim)
2192 new \connect database USER option
2193 new destroydb -i option (Igor)
2194 new \dt and \di psql commands (Darren)
2195 SELECT "\n" now escapes newline (A. Duursma)
2196 new geometry conversion functions from old format (Thomas)
2200 new configuration script(Marc)
2201 readline configuration option added(Marc)
2202 OS-specific configuration options removed(Marc)
2203 new OS-specific template files(Marc)
2204 no more need to edit Makefile.global(Marc)
2205 re-arrange include files(Marc)
2206 nextstep patches (Gregor Hoffleit)
2207 removed WIN32-specific code(Bruce)
2208 removed postmaster -e option, now only postgres -e option (Bruce)
2209 merge duplicate library code in front/backends(Martin)
2210 now works with eBones, international Kerberos(Jun)
2211 more shared library support
2212 c++ include file cleanup(Bruce)
2213 warn about buggy flex(Bruce)
2214 DG-UX, Ultrix, Irix, AIX portability fixes
2218 ------------------------------------------------------------------------
2220 ------------------------------------------------------------------------
2223 Release 6.0 (1997-01-29)
2226 A dump/restore is required for those wishing to migrate data from previous
2227 releases of Postgres.
2229 Migration from v1.09 to v6.0
2231 This migration requires a complete dump of the 1.09 database and a restore
2232 of the database in 6.0.
2234 Migration from pre-v1.09 to v6.0
2236 Those migrating from earlier 1.* releases should first upgrade to 1.09
2237 because the COPY output format was improved from the 1.02 release.
2242 ALTER TABLE bug - running postgress process needs to re-read table definition
2243 Allow vacuum to be run on one table or entire database(Bruce)
2245 Fix array over-runs of memory writes(Kurt)
2246 Fix elusive btree range/non-range bug(Dan)
2247 Fix for hash indexes on some types like time and date
2248 Fix for pg_log size explosion
2249 Fix permissions on lo_export()(Bruce)
2250 Fix unitialized reads of memory(Kurt)
2251 Fixed ALTER TABLE ... char(3) bug(Bruce)
2252 Fixed a few small memory leaks
2253 Fixed EXPLAIN handling of options and changed full_path option name
2254 Fixed output of group acl permissions
2255 Memory leaks (hunt and destroy with tools like Purify(Kurt)
2256 Minor improvements to rules system
2258 New asserts for run-checking
2259 Overhauled parser/analyze code to properly report errors and increase speed
2260 Pg_dump -d now handles NULL's properly(Bruce)
2261 Prevent SELECT NULL from crashing server (Bruce)
2262 Properly report errors when INSERT ... SELECT columns did not match
2263 Properly report errors when insert column names were not correct
2264 Psql \g filename now works(Bruce)
2265 Psql fixed problem with multiple statements on one line with multiple outputs
2266 Removed duplicate system oid's
2267 SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce)
2268 Several fixes for queries that crashed the backend
2269 Starting quote in insert string errors(Bruce)
2270 Submitting an empty query now returns empty status, not just " " query(Bruce)
2274 Add EXPLAIN manual page(Bruce)
2275 Add UNIQUE index capability(Dan)
2276 Add hostname/user level access control rather than just hostname and user
2277 Add synonym of != for (Bruce)
2278 Allow "select oid,* from table"
2279 Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
2280 Allow COPY from the frontend(Bryan)
2281 Allow GROUP BY to use alias column name(Bruce)
2282 Allow actual compression, not just reuse on the same page(Vadim)
2283 Allow installation-configuration option to auto-add all local users(Bryan)
2284 Allow libpq to distinguish between text value '' and null(Bruce)
2285 Allow non-postgres users with createdb privs to destroydb's
2286 Allow restriction on who can create C functions(Bryan)
2287 Allow restriction on who can do backend COPY(Bryan)
2288 Can shrink tables, pg_time and pg_log(Vadim & Erich)
2289 Change debug level 2 to print queries only, changed debug heading layout(Bruce)
2290 Change default decimal constant representation from float4 to float8(Bruce)
2291 European date format now set when postmaster is started
2292 Execute lowercase function names if not found with exact case
2293 Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
2294 Gist now included in the distrubution(Marc)
2295 Idend authentication of local users(Bryan)
2296 Implement BETWEEN qualifier(Bruce)
2297 Implement IN qualifier(Bruce)
2298 Libpq has PQgetisnull()(Bruce)
2299 Libpq++ improvements
2300 New options to initdb(Bryan)
2301 Pg_dump allow dump of oid's(Bruce)
2302 Pg_dump create indexes after tables are loaded for speed(Bruce)
2303 Pg_dumpall dumps all databases, and the user table
2304 Pginterface additions for NULL values(Bruce)
2305 Prevent postmaster from being run as root
2306 Psql \h and \? is now readable(Bruce)
2307 Psql allow backslashed, semicolons anywhere on the line(Bruce)
2308 Psql changed command prompt for lines in query or in quotes(Bruce)
2309 Psql char(3) now displays as (bp)char in \d output(Bruce)
2310 Psql return code now more accurate(Bryan?)
2311 Psql updated help syntax(Bruce)
2312 Re-visit and fix vacuum(Vadim)
2313 Reduce size of regression diffs, remove timezone name difference(Bruce)
2314 Remove compile-time parameters to enable binary distributions(Bryan)
2315 Reverse meaning of HBA masks(Bryan)
2316 Secure Authentication of local users(Bryan)
2317 Speed up vacuum(Vadim)
2318 Vacuum now had VERBOSE option(Bruce)
2322 All functions now have prototypes that are compared against the calls
2323 Allow asserts to be disabled easly from Makefile.global(Bruce)
2324 Change oid constants used in code to #define names
2325 Decoupled sparc and solaris defines(Kurt)
2326 Gcc -Wall compiles cleanly with warnings only from unfixable constructs
2327 Major include file reorganization/reduction(Marc)
2328 Make now stops on compile failure(Bryan)
2329 Makefile restructuring(Bryan, Marc)
2330 Merge bsdi_2_1 to bsdi(Bruce)
2331 Monitor program removed
2332 Name change from Postgres95 to PostgreSQL
2333 New config.h file(Marc, Bryan)
2334 PG_VERSION now set to 6.0 and used by postmaster
2335 Portability additions, including Ultrix, DG/UX, AIX, and Solaris
2336 Reduced the number of #define's, centeralized #define's
2337 Remove duplicate OIDS in system tables(Dan)
2338 Remove duplicate system catalog info or report mismatches(Dan)
2339 Removed many os-specific #define's
2340 Restructured object file generation/location(Bryan, Marc)
2341 Restructured port-specific file locations(Bryan, Marc)
2342 Unused/uninialized variables corrected
2346 ------------------------------------------------------------------------
2348 ------------------------------------------------------------------------
2351 Release v1.09 (1996-11-04)
2353 Sorry, we didn't keep track of changes from 1.02 to 1.09. Some of the
2354 changes listed in 6.0 were actually included in the 1.02.1 to 1.09
2359 ------------------------------------------------------------------------
2361 ------------------------------------------------------------------------
2364 Release 1.02 (1996-08-01)
2366 Migration from v1.02 to v1.02.1
2368 Here is a new migration file for 1.02.1. It includes the 'copy' change and a
2369 script to convert old ascii files.
2371 Note: The following notes are for the benefit of users who want to
2372 migrate databases from postgres95 1.01 and 1.02 to postgres95
2375 If you are starting afresh with postgres95 1.02.1 and do not need
2376 to migrate old databases, you do not need to read any further.
2378 In order to upgrade older postgres95 version 1.01 or 1.02 databases to
2379 version 1.02.1, the following steps are required:
2381 1. Start up a new 1.02.1 postmaster
2383 2. Add the new built-in functions and operators of 1.02.1 to 1.01 or 1.02
2384 databases. This is done by running the new 1.02.1 server against your
2385 own 1.01 or 1.02 database and applying the queries attached at the end
2386 of thie file. This can be done easily through psql. If your 1.01 or
2387 1.02 database is named "testdb" and you have cut the commands from the
2388 end of this file and saved them in addfunc.sql:
2390 % psql testdb -f addfunc.sql
2392 Those upgrading 1.02 databases will get a warning when executing the
2393 last two statements in the file because they are already present in
2394 1.02. This is not a cause for concern.
2396 Dump/Reload Procedure
2398 If you are trying to reload a pg_dump or text-mode 'copy tablename to
2399 stdout' generated with a previous version, you will need to run the attached
2400 sed script on the ASCII file before loading it into the database. The old
2401 format used '.' as end-of-data, while '\.' is now the end-of-data marker.
2402 Also, empty strings are now loaded in as '' rather than NULL. See the copy
2403 manual page for full details.
2405 sed 's/^\.$/\\./g' in_file out_file
2407 If you are loading an older binary copy or non-stdout copy, there is no
2408 end-of-data character, and hence no conversion necessary.
2410 -- following lines added by agc to reflect the case-insensitive
2411 -- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1)
2412 create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq);
2413 create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne);
2414 create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq);
2415 create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne);
2417 Detailed Change List
2419 Source code maintenance and development
2420 * worldwide team of volunteers
2421 * the source tree now in CVS at ftp.ki.net
2424 * psql (and underlying libpq library) now has many more options for
2425 formatting output, including HTML
2426 * pg_dump now output the schema and/or the data, with many fixes to
2427 enhance completeness.
2428 * psql used in place of monitor in administration shell scripts.
2429 monitor to be depreciated in next release.
2430 * date/time functions enhanced
2431 * NULL insert/update/comparison fixed/enhanced
2432 * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1
2434 Bug Fixes (almost too numerous to mention)
2436 * storage management
2437 * check for NULL pointer before dereferencing
2441 * added SolarisX86 port
2442 * added BSDI 2.1 port
2447 ------------------------------------------------------------------------
2449 ------------------------------------------------------------------------
2452 Postgres95 Release 1.01 (1996-02-23)
2455 Migration from v1.0 to v1.01
2457 The following notes are for the benefit of users who want to migrate
2458 databases from postgres95 1.0 to postgres95 1.01.
2460 If you are starting afresh with postgres95 1.01 and do not need to migrate
2461 old databases, you do not need to read any further.
2463 In order to postgres95 version 1.01 with databases created with postgres95
2464 version 1.0, the following steps are required:
2466 1. Set the definition of NAMEDATALEN in src/Makefile.global to 16 and
2469 2. Decide whether you want to use Host based authentication.
2471 a. If you do, you must create a file name "pg_hba" in your top-level
2472 data directory (typically the value of your $PGDATA).
2473 src/libpq/pg_hba shows an example syntax.
2475 b. If you do not want host-based authentication, you can comment out
2480 in src/Makefile.global
2482 Note that host-based authentication is turned on by default, and
2483 if you do not take steps A or B above, the out-of-the-box 1.01
2484 will not allow you to connect to 1.0 databases.
2486 3. Compile and install 1.01, but DO NOT do the initdb step.
2488 4. Before doing anything else, terminate your 1.0 postmaster, and backup
2489 your existing $PGDATA directory.
2491 5. Set your PGDATA environment variable to your 1.0 databases, but set up
2492 path up so that 1.01 binaries are being used.
2494 6. Modify the file $PGDATA/PG_VERSION from 5.0 to 5.1
2496 7. Start up a new 1.01 postmaster
2498 8. Add the new built-in functions and operators of 1.01 to 1.0 databases.
2499 This is done by running the new 1.01 server against your own 1.0
2500 database and applying the queries attached and saving in the file
2501 1.0_to_1.01.sql. This can be done easily through psql. If your 1.0
2502 database is name "testdb":
2504 % psql testdb -f 1.0_to_1.01.sql
2506 and then execute the following commands (cut and paste from here):
2508 -- add builtin functions that are new to 1.01
2510 create function int4eqoid (int4, oid) returns bool as 'foo'
2511 language 'internal';
2512 create function oideqint4 (oid, int4) returns bool as 'foo'
2513 language 'internal';
2514 create function char2icregexeq (char2, text) returns bool as 'foo'
2515 language 'internal';
2516 create function char2icregexne (char2, text) returns bool as 'foo'
2517 language 'internal';
2518 create function char4icregexeq (char4, text) returns bool as 'foo'
2519 language 'internal';
2520 create function char4icregexne (char4, text) returns bool as 'foo'
2521 language 'internal';
2522 create function char8icregexeq (char8, text) returns bool as 'foo'
2523 language 'internal';
2524 create function char8icregexne (char8, text) returns bool as 'foo'
2525 language 'internal';
2526 create function char16icregexeq (char16, text) returns bool as 'foo'
2527 language 'internal';
2528 create function char16icregexne (char16, text) returns bool as 'foo'
2529 language 'internal';
2530 create function texticregexeq (text, text) returns bool as 'foo'
2531 language 'internal';
2532 create function texticregexne (text, text) returns bool as 'foo'
2533 language 'internal';
2535 -- add builtin functions that are new to 1.01
2537 create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid);
2538 create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4);
2539 create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq);
2540 create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne);
2541 create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq);
2542 create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne);
2543 create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq);
2544 create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne);
2545 create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq);
2546 create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne);
2547 create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq);
2548 create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne);
2550 Detailed Change List
2553 * 1.01 is backwards compatible with 1.0 database provided the user
2554 follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
2555 If those steps are not taken, 1.01 is not compatible with 1.0 database.
2558 * added PQdisplayTuples() to libpq and changed monitor and psql to use it
2559 * added NeXT port (requires SysVIPC implementation)
2560 * added CAST .. AS ... syntax
2561 * added ASC and DESC keywords
2562 * added 'internal' as a possible language for CREATE FUNCTION
2563 internal functions are C functions which have been statically linked
2564 into the postgres backend.
2565 * a new type "name" has been added for system identifiers (table names,
2566 attribute names, etc.) This replaces the old char16 type. The
2567 of name is set by the NAMEDATALEN #define in src/Makefile.global
2568 * a readable reference manual that describes the query language.
2569 * added host-based access control. A configuration file ($PGDATA/pg_hba)
2570 is used to hold the configuration data. If host-based access control
2571 is not desired, comment out HBA=1 in src/Makefile.global.
2572 * changed regex handling to be uniform use of Henry Spencer's regex code
2573 regardless of platform. The regex code is included in the distribution
2574 * added functions and operators for case-insensitive regular expressions.
2575 The operators are ~* and !~*.
2576 * pg_dump uses COPY instead of SELECT loop for better performance
2579 * fixed an optimizer bug that was causing core dumps when
2580 functions calls were used in comparisons in the WHERE clause
2581 * changed all uses of getuid to geteuid so that effective uids are used
2582 * psql now returns non-zero status on errors when using -c
2583 * applied public patches 1-14
2587 ------------------------------------------------------------------------
2589 ------------------------------------------------------------------------
2592 Postgres95 Release 1.0 (1995-09-05)
2594 Detailed Change List
2597 * The copyright of Postgres 1.0 has been loosened to be freely modifiable
2598 and modifiable for any purpose. Please read the COPYRIGHT file.
2599 Thanks to Professor Michael Stonebraker for making this possible.
2602 * date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using
2603 EUROPEAN STYLE). This follows SQL-92 specs.
2604 * "delimiters" is now a keyword
2607 * sql LIKE syntax has been added
2608 * copy command now takes an optional USING DELIMITER specification.
2609 delimiters can be any single-character string.
2610 * IRIX 5.3 port has been added.
2611 Thanks to Paul Walmsley and others.
2612 * updated pg_dump to work with new libpq
2613 * \d has been added psql
2614 Thanks to Keith Parks
2615 * regexp performance for architectures that use POSIX regex has been
2616 improved due to caching of precompiled patterns.
2617 Thanks to Alistair Crooks
2618 * a new version of libpq++
2619 Thanks to William Wanders
2622 * arbitrary userids can be specified in the createuser script
2623 * \c to connect to other databases in psql now works.
2624 * bad pg_proc entry for float4inc() is fixed
2625 * users with usecreatedb field set can now create databases without
2626 having to be usesuper
2627 * remove access control entries when the entry no longer has any
2629 * fixed non-portable datetimes implementation
2630 * added kerberos flags to the src/backend/Makefile
2631 * libpq now works with kerberos
2632 * typographic errors in the user manual have been corrected.
2633 * btrees with multiple index never worked, now we tell you they don't
2634 work when you try to use them
2638 ------------------------------------------------------------------------
2640 ------------------------------------------------------------------------
2643 Postgres95 Release 0.03 (1995-07-21)
2646 Detailed Change List
2648 Incompatible changes:
2649 * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS
2650 (due to system catalog changes and indexing structure changes).
2651 * double-quote (") is deprecated as a quoting character for string literals;
2652 you need to convert them to single quotes (').
2653 * name of aggregates (eg. int4sum) are renamed in accordance with the
2654 SQL standard (eg. sum).
2655 * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
2656 * float literals (eg. 3.14) are now of type float4 (instead of float8 in
2657 previous releases); you might have to do typecasting if you depend on it
2658 being of type float8. If you neglect to do the typecasting and you assign
2659 a float literal to a field of type float8, you may get incorrect values
2661 * LIBPQ has been totally revamped so that frontend applications
2662 can connect to multiple backends
2663 * the usesysid field in pg_user has been changed from int2 to int4 to
2664 allow wider range of Unix user ids.
2665 * the netbsd/freebsd/bsd o/s ports have been consolidated into a
2666 single BSD44_derived port. (thanks to Alistair Crooks)
2668 SQL standard-compliance (the following details changes that makes postgres95
2669 more compliant to the SQL-92 standard):
2670 * the following SQL types are now built-in: smallint, int(eger), float, real,
2671 char(N), varchar(N), date and time.
2673 The following are aliases to existing postgres types:
2675 integer, int -> int4
2676 float, real -> float4
2677 char(N) and varchar(N) are implemented as truncated text types. In
2678 addition, char(N) does blank-padding.
2679 * single-quote (') is used for quoting string literals; '' (in addition to
2680 \') is supported as means of inserting a single quote in a string
2681 * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used
2682 (Also, aggregates can now be overloaded, i.e. you can define your
2683 own MAX aggregate to take in a user-defined type.)
2684 * CHANGE ACL removed. GRANT/REVOKE syntax added.
2685 - Privileges can be given to a group using the "GROUP" keyword.
2687 GRANT SELECT ON foobar TO GROUP my_group;
2688 The keyword 'PUBLIC' is also supported to mean all users.
2690 Privileges can only be granted or revoked to one user or group
2693 "WITH GRANT OPTION" is not supported. Only class owners can change
2695 - The default access control is to to grant users readonly access.
2696 You must explicitly grant insert/update access to users. To change
2697 this, modify the line in
2698 src/backend/utils/acl.h
2699 that defines ACL_WORLD_DEFAULT
2702 * the bug where aggregates of empty tables were not run has been fixed. Now,
2703 aggregates run on empty tables will return the initial conditions of the
2704 aggregates. Thus, COUNT of an empty table will now properly return 0.
2705 MAX/MIN of an empty table will return a tuple of value NULL.
2706 * allow the use of \; inside the monitor
2707 * the LISTEN/NOTIFY asynchronous notification mechanism now work
2708 * NOTIFY in rule action bodies now work
2709 * hash indices work, and access methods in general should perform better.
2710 creation of large btree indices should be much faster. (thanks to Paul
2713 Other changes and enhancements:
2714 * addition of an EXPLAIN statement used for explaining the query execution
2715 plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for
2717 * WARN and NOTICE messages no longer have timestamps on them. To turn on
2718 timestamps of error messages, uncomment the line in
2719 src/backend/utils/elog.h:
2720 /* define ELOG_TIMESTAMPS */
2721 * On an access control violation, the message
2722 "Either no such class or insufficient privilege"
2723 will be given. This is the same message that is returned when
2724 a class is not found. This dissuades non-privileged users from
2725 guessing the existence of privileged classes.
2726 * some additional system catalog changes have been made that are not
2727 visible to the user.
2730 * The -oid option has been added to the "pg_result" tcl command.
2731 pg_result -oid returns oid of the last tuple inserted. If the
2732 last command was not an INSERT, then pg_result -oid returns "".
2733 * the large object interface is available as pg_lo* tcl commands:
2734 pg_lo_open, pg_lo_close, pg_lo_creat, etc.
2736 Portability enhancements and New Ports:
2737 * flex/lex problems have been cleared up. Now, you should be able to use
2738 flex instead of lex on any platforms. We no longer make assumptions of
2739 what lexer you use based on the platform you use.
2740 * The Linux-ELF port is now supported. Various configuration have been
2741 tested: The following configuration is known to work:
2742 kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
2743 with everything in ELF format,
2746 * ipcclean added to the distribution
2747 ipcclean usually does not need to be run, but if your backend crashes
2748 and leaves shared memory segments hanging around, ipcclean will
2749 clean them up for you.
2752 * the user manual has been revised and libpq documentation added.
2756 ------------------------------------------------------------------------
2758 ------------------------------------------------------------------------
2761 Postgres95 Release 0.02 (1995-05-25)
2764 Detailed Change List
2766 Incompatible changes:
2767 * The SQL statement for creating a database is 'CREATE DATABASE' instead
2768 of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead
2769 of 'DESTROYDB'. However, the names of the executables 'createdb' and
2770 'destroydb' remain the same.
2773 * pgperl - a Perl (4.036) interface to Postgres95
2774 * pg_dump - a utility for dumping out a postgres database into a
2775 script file containing query commands. The script files are in a ASCII
2776 format and can be used to reconstruct the database, even on other
2777 machines and other architectures. (Also good for converting
2778 a Postgres 4.2 database to Postgres95 database.)
2780 The following ports have been incorporated into postgres95-beta-0.02:
2781 * the NetBSD port by Alistair Crooks
2782 * the AIX port by Mike Tung
2783 * the Windows NT port by Jon Forrest (more stuff but not done yet)
2784 * the Linux ELF port by Brian Gallew
2786 The following bugs have been fixed in postgres95-beta-0.02:
2787 * new lines not escaped in COPY OUT and problem with COPY OUT when first
2789 * cannot type return to use the default user id in createuser
2790 * SELECT DISTINCT on big tables crashes
2791 * Linux installation problems
2792 * monitor doesn't allow use of 'localhost' as PGHOST
2793 * psql core dumps when doing \c or \l
2794 * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
2795 * libpgtcl has a hard-wired default port number
2796 * SELECT DISTINCT INTO TABLE hangs
2797 * CREATE TYPE doesn't accept 'variable' as the internallength
2798 * wrong result using more than 1 aggregate in a SELECT
2802 ------------------------------------------------------------------------
2804 ------------------------------------------------------------------------
2807 Postgres95 Release 0.01 (1995-05-01)
2813 ------------------------------------------------------------------------
2815 ------------------------------------------------------------------------
2820 These timing results are from running the regression test with the commands
2822 % cd src/test/regress
2827 Timing under Linux 2.0.27 seems to have a roughly 5% variation from run to
2828 run, presumably due to the scheduling vagaries of multitasking systems.
2832 As has been the case for previous releases, timing between releases is not
2833 directly comparable since new regression tests have been added. In general,
2834 v6.5 is faster than previous releases.
2836 Timing with fsync() disabled:
2839 02:00 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
2840 04:38 Sparc Ultra 1 143MHz, 64MB, Solaris 2.6
2843 Timing with fsync() enabled:
2846 04:21 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
2849 For the linux system above, using UW-SCSI disks rather than (older) IDE
2850 disks leads to a 50% improvement in speed on the regression test.
2854 The times for this release are not directly comparable to those for previous
2855 releases since some additional regression tests have been included. In
2856 general, however, v6.4 should be slightly faster than the previous release
2860 02:26 Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
2864 The times for this release are not directly comparable to those for previous
2865 releases since some additional regression tests have been included and some
2866 obsolete tests involving time travel have been removed. In general, however,
2867 v6.3 is substantially faster than previous releases (thanks, Bruce!).
2870 02:30 Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
2871 04:12 Dual Pentium Pro 180, 96MB, EIDE, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
2876 06:12 Pentium Pro 180, 32MB, EIDE, Linux 2.0.30, gcc 2.7.2 -O2 -m486
2877 12:06 P-100, 48MB, Linux 2.0.29, gcc
2878 39:58 Sparc IPC 32MB, Solaris 2.5, gcc 2.7.2.1 -O -g