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