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