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