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