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