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