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