mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 00:08:23 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			2051 lines
		
	
	
		
			94 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			2051 lines
		
	
	
		
			94 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
PostgreSQL Release History
 | 
						|
by The PostgreSQL Development Team
 | 
						|
 | 
						|
PostgreSQL is Copyright © 1996-9 by the Postgres Global Development Group.
 | 
						|
 | 
						|
Table of Contents
 | 
						|
          Release 6.5.1                                         
 | 
						|
             Migration to v6.5.1                                
 | 
						|
             Detailed Change List                               
 | 
						|
          Release 6.5                                           
 | 
						|
             Migration to v6.5                                  
 | 
						|
                 Multi-Version Concurrency Control              
 | 
						|
             Detailed Change List                               
 | 
						|
          Release 6.4.2                                         
 | 
						|
             Migration to v6.4.2                                
 | 
						|
             Detailed Change List                               
 | 
						|
          Release 6.4.1                                         
 | 
						|
             Migration to v6.4.1                                
 | 
						|
             Detailed Change List                               
 | 
						|
          Release 6.4                                           
 | 
						|
             Migration to v6.4                                  
 | 
						|
             Detailed Change List                               
 | 
						|
          Release 6.3.2                                         
 | 
						|
             Detailed Change List                               
 | 
						|
          Release 6.3.1                                         
 | 
						|
             Detailed Change List                               
 | 
						|
          Release 6.3                                           
 | 
						|
             Migration to v6.3                                  
 | 
						|
             Detailed Change List                               
 | 
						|
          Release 6.2.1                                         
 | 
						|
             Migration from v6.2 to v6.2.1                      
 | 
						|
             Detailed Change List                               
 | 
						|
          Release 6.2                                           
 | 
						|
             Migration from v6.1 to v6.2                        
 | 
						|
             Migration from v1.x to v6.2                        
 | 
						|
             Detailed Change List                               
 | 
						|
          Release 6.1.1                                         
 | 
						|
             Migration from v6.1 to v6.1.1                      
 | 
						|
             Detailed Change List                               
 | 
						|
          Release 6.1                                           
 | 
						|
             Migration to v6.1                                  
 | 
						|
             Detailed Change List                               
 | 
						|
          Release v6.0                                          
 | 
						|
             Migration from v1.09 to v6.0                       
 | 
						|
             Migration from pre-v1.09 to v6.0                   
 | 
						|
             Detailed Change List                               
 | 
						|
          Release v1.09                                         
 | 
						|
          Release v1.02                                         
 | 
						|
             Migration from v1.02 to v1.02.1                    
 | 
						|
             Dump/Reload Procedure                              
 | 
						|
             Detailed Change List                               
 | 
						|
          Release v1.01                                         
 | 
						|
             Migration from v1.0 to v1.01                       
 | 
						|
             Detailed Change List                               
 | 
						|
          Release v1.0                                          
 | 
						|
             Detailed Change List                               
 | 
						|
          Postgres95 Beta 0.03                                  
 | 
						|
             Detailed Change List                               
 | 
						|
          Postgres95 Beta 0.02                                  
 | 
						|
             Detailed Change List                               
 | 
						|
          Postgres95 Beta 0.01                                  
 | 
						|
 | 
						|
Release 6.5.1
 | 
						|
 | 
						|
        This is basically a cleanup release for 6.5.  We have fixed a
 | 
						|
       variety of problems reported by 6.5 users.
 | 
						|
 | 
						|
Migration to v6.5.1
 | 
						|
 | 
						|
       A dump/restore is not required for those running 6.5.
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Fix for datetime constant problem on some platforms(Thomas)
 | 
						|
       Add NT README file
 | 
						|
       Portability fixes for linux_ppc, Irix, linux_alpha, OpenBSD, alpha
 | 
						|
       Remove QUERY_LIMIT, use SELECT...LIMIT
 | 
						|
       Fix for EXPLAIN on inheritance(Tom)
 | 
						|
       Patch to allow vacuum on multi-segment tables(Hiroshi)
 | 
						|
       R-Tree optimizer selectivity fix(Tom)
 | 
						|
       ACL file descriptor leak fix(Atsushi Ogawa)
 | 
						|
       New expresssion subtree code(Tom)
 | 
						|
       Avoid disk writes for read-only transactions(Vadim)
 | 
						|
       Fix for removal of temp tables if last transaction was aborted(Bruce)
 | 
						|
       Fix to prevent too large tuple from being created(Bruce)
 | 
						|
       plpgsql fixes
 | 
						|
       Allow port numbers 32k - 64k(Bruce)
 | 
						|
       Add ^ precedence(Bruce)
 | 
						|
       Rename sort files called pg_temp to pg_sorttemp(Bruce)
 | 
						|
       Fix for microseconds in time values(Tom)
 | 
						|
       Tutorial source cleanup
 | 
						|
       New linux_m68k port
 | 
						|
       Fix for sorting of NULL's in some cases(Tom)
 | 
						|
       Shared library dependencies fixed (Tom)
 | 
						|
       Fixed glitches affecting GROUP BY in subselects(Tom)
 | 
						|
       Fix some compiler warnings (Tomoaki Nishiyama)
 | 
						|
       Add Win1250 (Czech) support (Pavel Behal)
 | 
						|
 | 
						|
 | 
						|
Release 6.5
 | 
						|
 | 
						|
        This release marks a major step in the development team's mastery 
 | 
						|
       of the source code we inherited from Berkeley. You will see we are 
 | 
						|
       now easily adding major features, thanks to the increasing size and 
 | 
						|
       experience of our world-wide development team. 
 | 
						|
        Here is a brief summary of the more notable changes: 
 | 
						|
 | 
						|
        Multi-version concurrency control(MVCC) 
 | 
						|
          This removes our old table-level locking, and replaces it with a 
 | 
						|
         locking system that is superior to most commercial database 
 | 
						|
         systems. In a traditional system, each row that is modified is 
 | 
						|
         locked until committed, preventing reads by other users. MVCC 
 | 
						|
         uses the natural multi-version nature of PostgreSQL to allow 
 | 
						|
         readers to continue reading consistent data during writer 
 | 
						|
         activity. Writers continue to use the compact pg_log transaction 
 | 
						|
         system. This is all performed without having to allocate a lock 
 | 
						|
         for every row like traditional database systems. So, basically, 
 | 
						|
         we no longer are restricted by simple table-level locking; we 
 | 
						|
         have something better than row-level locking. 
 | 
						|
 | 
						|
        Hot backups from pg_dump 
 | 
						|
          pg_dump takes advantage of the new MVCC features to give a 
 | 
						|
         consistant database dump/backup while the database stays online 
 | 
						|
         and available for queries. 
 | 
						|
 | 
						|
        Numeric data type 
 | 
						|
          We now have a true numeric data type, with user-specified 
 | 
						|
         precision. 
 | 
						|
 | 
						|
        Temporary tables 
 | 
						|
          Temporary tables are guaranteed to have unique names within a 
 | 
						|
         database session, and are destroyed on session exit. 
 | 
						|
 | 
						|
        New SQL features 
 | 
						|
          We now have CASE, INTERSECT, and EXCEPT statement support. We 
 | 
						|
         have new LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL, SELECT 
 | 
						|
         ... FOR UPDATE, and an improved LOCK TABLE command. 
 | 
						|
 | 
						|
        Speedups 
 | 
						|
          We continue to speed up PostgreSQL, thanks to the variety of 
 | 
						|
         talents within our team. We have sped up memory allocation, 
 | 
						|
         optimization, table joins, and row transfer routines. 
 | 
						|
 | 
						|
        Ports 
 | 
						|
          We continue to expand our port list, this time including 
 | 
						|
         WinNT/ix86 and NetBSD/arm32. 
 | 
						|
 | 
						|
        Interfaces 
 | 
						|
          Most interfaces have new versions, and existing functionality 
 | 
						|
         has been improved. 
 | 
						|
 | 
						|
        Documentation 
 | 
						|
          New and updated material is present throughout the 
 | 
						|
         documentation. New FAQs have been contributed for SGI and AIX 
 | 
						|
         platforms. The Tutorial has introductory information on SQL from 
 | 
						|
         Stefan Simkovics. For the User's Guide, there are reference pages 
 | 
						|
         covering the postmaster and more utility programs, and a new 
 | 
						|
         appendix contains details on date/time behavior. The 
 | 
						|
         Administrator's Guide has a new chapter on troubleshooting from 
 | 
						|
         Tom Lane. And the Programmer's Guide has a description of query 
 | 
						|
         processing, also from Stefan, and details on obtaining the 
 | 
						|
         Postgres source tree via anonymous CVS and CVSup. 
 | 
						|
        
 | 
						|
 | 
						|
Migration to v6.5
 | 
						|
 | 
						|
        A dump/restore using pg_dump is required for those wishing to 
 | 
						|
       migrate data from any previous release of Postgres. pg_upgrade can 
 | 
						|
       not be used to upgrade to this release because the on-disk structure 
 | 
						|
       of the tables has changed compared to previous releases. 
 | 
						|
        The new Multi-Version Concurrency Control (MVCC) features can give 
 | 
						|
       somewhat different behaviors in multi-user environments. Read and 
 | 
						|
       understand the following section to ensure that your existing 
 | 
						|
       applications will give you the behavior you need. 
 | 
						|
 | 
						|
       Multi-Version Concurrency Control
 | 
						|
        Because readers in 6.5 don't lock data, regardless of transaction 
 | 
						|
       isolation level, data read by one transaction can be overwritten by 
 | 
						|
       another. In other words, if a row is returned by SELECT it doesn't 
 | 
						|
       mean that this row really exists at the time it is returned (i.e. 
 | 
						|
       sometime after the statement or transaction began) nor that the row 
 | 
						|
       is protected from being deleted or updated by concurrent 
 | 
						|
       transactions before the current transaction does a commit or 
 | 
						|
       rollback. 
 | 
						|
        To ensure the actual existence of a row and protect it against 
 | 
						|
       concurrent updates one must use SELECT FOR UPDATE or an appropriate 
 | 
						|
       LOCK TABLE statement. This should be taken into account when porting 
 | 
						|
       applications from previous releases of Postgres and other 
 | 
						|
       environments. 
 | 
						|
        Keep the above in mind if you are using contrib/refint.* triggers 
 | 
						|
       for referential integrity. Additional technics are required now. One 
 | 
						|
       way is to use LOCK parent_table IN SHARE ROW EXCLUSIVE MODE command 
 | 
						|
       if a transaction is going to update/delete a primary key and use 
 | 
						|
       LOCK parent_table IN SHARE MODE command if a transaction is going to 
 | 
						|
       update/insert a foreign key. 
 | 
						|
 | 
						|
         Note: Note that if you run a transaction in SERIALIZABLE mode 
 | 
						|
         then you must execute the LOCK commands above before execution of 
 | 
						|
         any DML statement (SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO) in 
 | 
						|
         the transaction.
 | 
						|
 | 
						|
        
 | 
						|
        These inconveniences will disappear in the future when the ability 
 | 
						|
       to read dirty (uncommitted) data (regardless of isolation level) and 
 | 
						|
       true referential integrity will be implemented. 
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Bug Fixes
 | 
						|
       ---------
 | 
						|
       Fix text<->float8 and text<->float4 conversion functions(Thomas)
 | 
						|
       Fix for creating tables with mixed-case constraints(Billy)
 | 
						|
       Change exp()/pow() behavior to generate error on 
 | 
						|
       underflow/overflow(Jan)
 | 
						|
       Fix bug in pg_dump -z
 | 
						|
       Memory overrun cleanups(Tatsuo)
 | 
						|
       Fix for lo_import crash(Tatsuo)
 | 
						|
       Adjust handling of data type names to suppress double quotes(Thomas)
 | 
						|
       Use type coersion for matching columns and DEFAULT(Thomas)
 | 
						|
       Fix deadlock so it only checks once after one second of sleep(Bruce)
 | 
						|
       Fixes for aggregates and PL/pgsql(Hiroshi)
 | 
						|
       Fix for subquery crash(Vadim)
 | 
						|
       Fix for libpq function PQfnumber and case-insensitive names(Bahman 
 | 
						|
       Rafatjoo)
 | 
						|
       Fix for large object write-in-middle, no extra block, memory 
 | 
						|
       consumption(Tatsuo)
 | 
						|
       Fix for pg_dump -d or -D and  quote special characters in INSERT
 | 
						|
       Repair serious problems with dynahash(Tom)
 | 
						|
       Fix INET/CIDR portability problems
 | 
						|
       Fix problem with selectivity error in ALTER TABLE ADD COLUMN(Bruce)
 | 
						|
       Fix executor so mergejoin of different column types works(Tom)
 | 
						|
       Fix for Alpha OR selectivity bug
 | 
						|
       Fix OR index selectivity problem(Bruce)
 | 
						|
       Fix so \d shows proper length for char()/varchar()(Ryan)
 | 
						|
       Fix tutorial code(Clark)
 | 
						|
       Improve destroyuser checking(Oliver)
 | 
						|
       Fix for Kerberos(Rodney McDuff)
 | 
						|
       Fix for dropping database while dirty buffers(Bruce)
 | 
						|
       Fix so sequence nextval() can be case-sensitive(Bruce)
 | 
						|
       Fix !!= operator
 | 
						|
       Drop buffers before destroying database files(Bruce)
 | 
						|
       Fix case where executor evaluates functions twice(Tatsuo)
 | 
						|
       Allow sequence nextval actions to be case-sensitive(Bruce)
 | 
						|
       Fix optimizer indexing not working for negative numbers(Bruce)
 | 
						|
       Fix for memory leak in executor with fjIsNull
 | 
						|
       Fix for aggregate memory leaks(Erik Riedel)
 | 
						|
       Allow username containing a dash GRANT permissions
 | 
						|
       Cleanup of NULL in inet types
 | 
						|
       Clean up system table bugs(Tom)
 | 
						|
       Fix problems of PAGER and \? command(Masaaki Sakaida)
 | 
						|
       Reduce default multi-segment file size limit to 1GB(Peter)
 | 
						|
       Fix for dumping of CREATE OPERATOR(Tom)
 | 
						|
       Fix for backward scanning of cursors(Hiroshi Inoue)
 | 
						|
       Fix for COPY FROM STDIN when using \i(Tom)
 | 
						|
       Fix for subselect is compared inside an expression(Jan)
 | 
						|
       Fix handling of error reporting while returning rows(Tom)
 | 
						|
       Fix problems with reference to array types(Tom,Jan)
 | 
						|
       Prevent UPDATE SET oid(Jan)
 | 
						|
       Fix pg_dump so -t option can handle case-sensitive tablenames
 | 
						|
       Fixes for GROUP BY in special cases(Tom, Jan)
 | 
						|
       Fix for memory leak in failed queries(Tom)
 | 
						|
       DEFAULT now supports mixed-case identifiers(Tom)
 | 
						|
       Fix for multi-segment uses of DROP/RENAME table, indexes(Ole Gjerde)
 | 
						|
       Disable use of pg_dump with both -o and -d options(Bruce)
 | 
						|
       Allow pg_dump to properly dump GROUP permissions(Bruce)
 | 
						|
       Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan)
 | 
						|
       Fix for computations in views(Jan)
 | 
						|
       Fix for aggregates on array indexes(Tom)
 | 
						|
       Fix for DEFAULT handles single quotes in value requiring too many 
 | 
						|
       quotes
 | 
						|
       Fix security problem with non-super users importing/exporting large 
 | 
						|
       objects(Tom)
 | 
						|
       Rollback of transaction that creates table cleaned up properly(Tom)
 | 
						|
       Fix to allow long table and column names to generate proper serial 
 | 
						|
       names(Tom)
 | 
						|
 | 
						|
       Enhancements
 | 
						|
       ------------
 | 
						|
       Add "vacuumdb" utility
 | 
						|
       Speed up libpq by allocating memory better(Tom)
 | 
						|
       EXPLAIN all indices used(Tom)
 | 
						|
       Implement CASE, COALESCE, NULLIF  expression(Thomas)
 | 
						|
       New pg_dump table output format(Constantin)
 | 
						|
       Add string min()/max() functions(Thomas)
 | 
						|
       Extend new type coersion techniques to aggregates(Thomas)
 | 
						|
       New moddatetime contrib(Terry)
 | 
						|
       Update to pgaccess 0.96(Constantin)
 | 
						|
       Add routines for single-byte "char" type(Thomas)
 | 
						|
       Improved substr() function(Thomas)
 | 
						|
       Improved multi-byte handling(Tatsuo)
 | 
						|
       Multi-version concurrency control/MVCC(Vadim)
 | 
						|
       New Serialized mode(Vadim)
 | 
						|
       Fix for tables over 2gigs(Peter)
 | 
						|
       New SET TRANSACTION ISOLATION LEVEL(Vadim)
 | 
						|
       New LOCK TABLE IN ... MODE(Vadim)
 | 
						|
       Update ODBC driver(Byron)
 | 
						|
       New NUMERIC data type(Jan)
 | 
						|
       New SELECT FOR UPDATE(Vadim)
 | 
						|
       Handle "NaN" and "Infinity" for input values(Jan)
 | 
						|
       Improved date/year handling(Thomas)
 | 
						|
       Improved handling of backend connections(Magnus)
 | 
						|
       New options ELOG_TIMESTAMPS and USE_SYSLOG options for log 
 | 
						|
       files(Massimo)
 | 
						|
       New TCL_ARRAYS option(Massimo)
 | 
						|
       New INTERSECT and EXCEPT(Stefan)
 | 
						|
       New pg_index.indisprimary for primary key tracking(D'Arcy)
 | 
						|
       New pg_dump option to allow dropping of tables before 
 | 
						|
       creation(Brook)
 | 
						|
       Speedup of row output routines(Tom)
 | 
						|
       New READ COMMITTED isolation level(Vadim)
 | 
						|
       New TEMP tables/indexes(Bruce)
 | 
						|
       Prevent sorting if result is already sorted(Jan)
 | 
						|
       New memory allocation optimization(Jan)
 | 
						|
       Allow psql to do \p\g(Bruce)
 | 
						|
       Allow multiple rule actions(Jan)
 | 
						|
       Added LIMIT/OFFSET functionality(Jan)
 | 
						|
       Improve optimizer when joining a large number of tables(Bruce)
 | 
						|
       New intro to SQL from S. Simkovics' Master's Thesis (Stefan, Thomas)
 | 
						|
       New intro to backend processing from S. Simkovics' Master's Thesis 
 | 
						|
       (Stefan)
 | 
						|
       Improved int8 support(Ryan Bradetich, Thomas, Tom)
 | 
						|
       New routines to convert between int8 and text/varchar types(Thomas)
 | 
						|
       New bushy plans, where meta-tables are joined(Bruce)
 | 
						|
       Enable right-hand queries by default(Bruce)
 | 
						|
       Allow reliable maximum number of backends to be set at configure 
 | 
						|
       time
 | 
						|
             (--with-maxbackends and postmaster switch (-N backends))(Tom)
 | 
						|
       GEQO default now 10 tables because of optimizer speedups(Tom)
 | 
						|
       Allow NULL=Var for MS-SQL portability(Michael, Bruce)
 | 
						|
       Modify contrib check_primary_key() so either "automatic" or 
 | 
						|
       "dependent"(Anand)
 | 
						|
       Allow psql \d on a view show query(Ryan)
 | 
						|
       Speedup for LIKE(Bruce)
 | 
						|
       Ecpg fixes/features, see src/interfaces/ecpg/ChangeLog file(Michael)
 | 
						|
       JDBC fixes/features, see src/interfaces/jdbc/CHANGELOG(Peter)
 | 
						|
       Make % operator have precedence like /(Bruce)
 | 
						|
       Add new postgres -O option to allow system table structure 
 | 
						|
       changes(Bruce)
 | 
						|
       Update contrib/pginterface/findoidjoins script(Tom)
 | 
						|
       Major speedup in vacuum of deleted rows with indexes(Vadim) 
 | 
						|
       Allow non-SQL functions to run different versions based on 
 | 
						|
       arguments(Tom)
 | 
						|
       Add -E option that shows actual queries sent by \dt and 
 | 
						|
       friends(Masaaki Sakaida)
 | 
						|
       Add version number in startup banners for psql(Masaaki Sakaida)
 | 
						|
       New contrib/vacuumlo removes large objects not referenced(Peter)
 | 
						|
       New initialization for table sizes so non-vacuumed tables perform 
 | 
						|
       better(Tom)
 | 
						|
       Improve error messages when a connection is rejected(Tom)
 | 
						|
       Support for arrays of char() and varchar() fields(Massimo)
 | 
						|
       Overhaul of hash code to increase reliability and performance(Tom)
 | 
						|
       Update to PyGreSQL 2.4(D'Arcy)
 | 
						|
       Changed debug options so -d4 and -d5 produce different node 
 | 
						|
       displays(Jan)
 | 
						|
       New pg_options: pretty_plan, pretty_parse, pretty_rewritten(Jan)
 | 
						|
       Better optimization statistics for system table access(Tom)
 | 
						|
       Better handling of non-default block sizes(Massimo)
 | 
						|
       Improve GEQO optimizer memory consumption(Tom)
 | 
						|
       UNION now suppports ORDER BY of columns not in target list(Jan)
 | 
						|
       Major libpq++ improvements(Vince Vielhaber)
 | 
						|
       pg_dump now uses -z(ACL's) as default(Bruce)
 | 
						|
       backend cache, memory speedups(Tom)
 | 
						|
       have pg_dump do everything in one snapshot transaction(Vadim)
 | 
						|
       fix for large object memory leakage, fix for pg_dumping(Tom)
 | 
						|
       INET type now respects netmask for comparisons
 | 
						|
       Make VACUUM ANALYZE only use a readlock(Vadim)
 | 
						|
       Allow VIEWs on UNIONS(Jan)
 | 
						|
       pg_dump now can generate consistent snapshots on active 
 | 
						|
       databases(Vadim)
 | 
						|
 | 
						|
       Source Tree Changes
 | 
						|
       -------------------
 | 
						|
       Improve port matching(Tom)
 | 
						|
       Portability fixes for SunOS
 | 
						|
       Add NT/Win32 backend port and enable dynamic loading(Magnus and 
 | 
						|
       Daniel Horak)
 | 
						|
       New port to Cobalt Qube(Mips) running Linux(Tatsuo)
 | 
						|
       Port to NetBSD/m68k(Mr. Mutsuki Nakajima)
 | 
						|
       Port to NetBSD/sun3(Mr. Mutsuki Nakajima)
 | 
						|
       Port to NetBSD/macppc(Toshimi Aoki)
 | 
						|
       Fix for tcl/tk configuration(Vince)
 | 
						|
       Removed CURRENT keyword for rule queries(Jan)
 | 
						|
       NT dynamic loading now works(Daniel Horak)
 | 
						|
       Add ARM32 support(Andrew McMurry)
 | 
						|
       Better support for HPUX 11 and Unixware
 | 
						|
       Improve file handling to be more uniform, prevent file descriptor 
 | 
						|
       leak(Tom)
 | 
						|
       New install commands for plpgsql(Jan)
 | 
						|
            
 | 
						|
Release 6.4.2
 | 
						|
 | 
						|
       The 6.4.1 release was improperly packaged. This also has one 
 | 
						|
       additional bug fix.
 | 
						|
 | 
						|
Migration to v6.4.2
 | 
						|
 | 
						|
       A dump/restore is not required for those running 6.4.*.
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Fix for datetime constant problem on some platforms(Thomas)
 | 
						|
 | 
						|
Release 6.4.1
 | 
						|
 | 
						|
       This is basically a cleanup release for 6.4. We have fixed a variety 
 | 
						|
       of problems reported by 6.4 users.
 | 
						|
 | 
						|
Migration to v6.4.1
 | 
						|
 | 
						|
       A dump/restore is not required for those running 6.4.
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Add pg_dump -N flag to force double quotes around identifiers.  This 
 | 
						|
       is
 | 
						|
               the default(Thomas)
 | 
						|
       Fix for NOT in where clause causing crash(Bruce)
 | 
						|
       EXPLAIN VERBOSE coredump fix(Vadim)
 | 
						|
       Fix shared-library problems on Linux
 | 
						|
       Fix test for table existance to allow mixed-case and whitespace in
 | 
						|
               the table name(Thomas)
 | 
						|
       Fix a couple of pg_dump bugs
 | 
						|
       Configure matches template/.similar entries better(Tom)
 | 
						|
       Change builtin function names from SPI_* to spi_*
 | 
						|
       OR WHERE clause fix(Vadim)
 | 
						|
       Fixes for mixed-case table names(Billy)
 | 
						|
       contrib/linux/postgres.init.csh/sh fix(Thomas)
 | 
						|
       libpq memory overrun fix
 | 
						|
       SunOS fixes(Tom)
 | 
						|
       Change exp() behavior to generate error on underflow(Thomas)
 | 
						|
       pg_dump fixes for memory leak, inheritance constraints, layout 
 | 
						|
       change
 | 
						|
       update pgaccess to 0.93
 | 
						|
       Fix prototype for 64-bit platforms
 | 
						|
       Multi-byte fixes(Tatsuo)
 | 
						|
       New ecpg man page
 | 
						|
       Fix memory overruns(Tatsuo)
 | 
						|
       Fix for lo_import() crash(Bruce)
 | 
						|
       Better search for install program(Tom)
 | 
						|
       Timezone fixes(Tom)
 | 
						|
       HPUX fixes(Tom)
 | 
						|
       Use implicit type coersion for matching DEFAULT values(Thomas)
 | 
						|
       Add routines to help with single-byte (internal) character 
 | 
						|
       type(Thomas)
 | 
						|
       Compilation of libpq for Win32 fixes(Magnus)
 | 
						|
       Upgrade to PyGreSQL 2.2(D'Arcy)
 | 
						|
 | 
						|
Release 6.4
 | 
						|
 | 
						|
       There are many new features and improvements in this release. Thanks 
 | 
						|
       to our developers and maintainers, nearly every aspect of the system 
 | 
						|
       has received some attention since the previous release. Here is a 
 | 
						|
       brief, incomplete summary: 
 | 
						|
       o Views and rules are now functional thanks to extensive new code in 
 | 
						|
        the rewrite rules system from Jan Wieck. He also wrote a chapter 
 | 
						|
        on it for the Programmer's Guide.
 | 
						|
       o Jan also contributed a second procedural language, PL/pgSQL, to go 
 | 
						|
        with the original PL/pgTCL procedural language he contributed last 
 | 
						|
        release.
 | 
						|
       o We have optional multiple-byte character set support from Tatsuo 
 | 
						|
        Iishi to complement our existing locale support.
 | 
						|
       o Client/server communications has been cleaned up, with better 
 | 
						|
        support for asynchronous messages and interrupts thanks to Tom 
 | 
						|
        Lane.
 | 
						|
       o The parser will now perform automatic type coersion to match 
 | 
						|
        arguments to available operators and functions, and to match 
 | 
						|
        columns and expressions with target columns. This uses a generic 
 | 
						|
        mechanism which supports the type extensibility features of 
 | 
						|
        Postgres. There is a new chapter in the User's Guide which covers 
 | 
						|
        this topic.
 | 
						|
       o Three new data types have been added. Two types, inet and cidr, 
 | 
						|
        support various forms of IP network, subnet, and machine 
 | 
						|
        addressing. There is now an 8-byte integer type available on some 
 | 
						|
        platforms. See the chapter on data types in the User's Guide for 
 | 
						|
        details. A fourth type, serial, is now supported by the parser as 
 | 
						|
        an amalgam of the int4 type, a sequence, and a unique index.
 | 
						|
       o Several more SQL92-compatible syntax features have been added, 
 | 
						|
        including INSERT DEFAULT VALUES
 | 
						|
       o The automatic configuration and installation system has received 
 | 
						|
        some attention, and should be more robust for more platforms than 
 | 
						|
        it has ever been.
 | 
						|
 | 
						|
Migration to v6.4
 | 
						|
 | 
						|
       A dump/restore using pg_dump or pg_dumpall is required for those 
 | 
						|
       wishing to migrate data from any previous release of Postgres.
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Bug Fixes
 | 
						|
       ---------
 | 
						|
       Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
 | 
						|
       Remove char2-16 data types, use char/varchar(Darren)
 | 
						|
       Pqfn not handles a NOTICE message(Anders)
 | 
						|
       Reduced busywaiting overhead for spinlocks with many backends (dg)
 | 
						|
       Stuck spinlock detection (dg)
 | 
						|
       Fix up "ISO-style" timespan decoding and encoding(Thomas)
 | 
						|
       Fix problem with table drop after rollback of transaction(Vadim)
 | 
						|
       Change error message and remove non-functional update message(Vadim)
 | 
						|
       Fix for COPY array checking
 | 
						|
       Fix for SELECT 1 UNION SELECT NULL
 | 
						|
       Fix for buffer leaks in large object calls(Pascal)
 | 
						|
       Change owner from oid to int4 type(Bruce)
 | 
						|
       Fix a bug in the oracle compatibility functions btrim() ltrim() and 
 | 
						|
       rtrim()
 | 
						|
       Fix for shared invalidation cache overflow(Massimo)
 | 
						|
       Prevent file descriptor leaks in failed COPY's(Bruce)
 | 
						|
       Fix memory leak in libpgtcl's pg_select(Constantin)
 | 
						|
       Fix problems with username/passwords over 8 characters(Tom)
 | 
						|
       Fix problems with handling of asynchronous NOTIFY in backend(Tom)
 | 
						|
       Fix of many bad system table entries(Tom)
 | 
						|
 | 
						|
       Enhancements
 | 
						|
       ------------
 | 
						|
       Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael)
 | 
						|
       Show the index used in an EXPLAIN(Zeugswetter)
 | 
						|
       EXPLAIN  invokes  rule system and shows plan(s) for rewritten 
 | 
						|
       queries(Jan)
 | 
						|
       Multi-byte awareness of many data types and functions, via 
 | 
						|
       configure(Tatsuo)
 | 
						|
       New configure --with-mb option(Tatsuo)
 | 
						|
       New initdb --pgencoding option(Tatsuo)
 | 
						|
       New createdb -E multibyte option(Tatsuo)
 | 
						|
       Select version(); now returns PostgreSQL version(Jeroen)
 | 
						|
       Libpq now allows asynchronous clients(Tom)
 | 
						|
       Allow cancel from client of backend query(Tom)
 | 
						|
       Psql now cancels query with Control-C(Tom)
 | 
						|
       Libpq users need not issue dummy queries to get NOTIFY messages(Tom)
 | 
						|
       NOTIFY now sends sender's PID, so you can tell whether it was your 
 | 
						|
       own(Tom)
 | 
						|
       PGresult struct now includes associated error message, if any(Tom)
 | 
						|
       Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
 | 
						|
       Add routines to convert between varchar and bpchar(Thomas)
 | 
						|
       Add routines to allow sizing of varchar and bpchar into target 
 | 
						|
       columns(Thomas)
 | 
						|
       Add bit flags to support timezonehour and minute in data 
 | 
						|
       retrieval(Thomas)
 | 
						|
       Allow more variations on valid floating point numbers (e.g. ".1", 
 | 
						|
       "1e6")(Thomas)
 | 
						|
       Fixes for unary minus parsing with leading spaces(Thomas)
 | 
						|
       Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
 | 
						|
       Check for and properly ignore FOREIGN KEY column constraints(Thomas)
 | 
						|
       Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
 | 
						|
       Enable HAVING clause but no fixes elsewhere yet.
 | 
						|
       Make "char" type a synonym for "char(1)" (actually implemented as 
 | 
						|
       bpchar)(Thomas)
 | 
						|
       Save string type if specified for DEFAULT clause handling(Thomas)
 | 
						|
       Coerce operations involving different data types(Thomas)
 | 
						|
       Allow some index use for columns of different types(Thomas)
 | 
						|
       Add capabilities for automatic type conversion(Thomas)
 | 
						|
       Cleanups for large objects, so file is truncated on open(Peter)
 | 
						|
       Readline cleanups(Tom)
 | 
						|
       Allow psql  \f \ to make spaces as delimiter(Bruce)
 | 
						|
       Pass pg_attribute.atttypmod to the frontend for column field 
 | 
						|
       lengths(Tom,Bruce)
 | 
						|
       Msql compatibility library in /contrib(Aldrin)
 | 
						|
       Remove the requirement that ORDER/GROUP BY clause identifiers be 
 | 
						|
       included in the target list(David)
 | 
						|
       Convert columns to match columns in UNION clauses(Thomas)
 | 
						|
       Remove fork()/exec() and only do fork()(Bruce)
 | 
						|
       Jdbc cleanups(Peter)
 | 
						|
       Show backend status on ps command line(only works on some 
 | 
						|
       platforms)(Bruce)
 | 
						|
       Pg_hba.conf now has a sameuser option in the database field
 | 
						|
       Make lo_unlink take oid param, not int4
 | 
						|
       New DISABLE_COMPLEX_MACRO for compilers that can't handle our 
 | 
						|
       macros(Bruce)
 | 
						|
       Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy 
 | 
						|
       queries(Tom)
 | 
						|
       libpgtcl cleanups(Tom)
 | 
						|
       Add -error option to libpgtcl's pg_result command(Tom)
 | 
						|
       New locale patch, see docs/README/locale(Oleg)
 | 
						|
       Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
 | 
						|
       New contrib/lo code for large object orphan removal(Peter)
 | 
						|
       New psql command "SET CLIENT_ENCODING TO 'encoding'" for multi-bytes
 | 
						|
       feature, see /doc/README.mb(Tatsuo)
 | 
						|
       /contrib/noupdate code to revoke update permission on a column
 | 
						|
       Libpq can now be compiled on win32(Magnus)
 | 
						|
       Add PQsetdbLogin() in libpq
 | 
						|
       New 8-byte integer type, checked by configure for OS support(Thomas)
 | 
						|
       Better support for quoted table/column names(Thomas)
 | 
						|
       Surround table and column names with double-quotes in 
 | 
						|
       pg_dump(Thomas)
 | 
						|
       PQreset() now works with passwords(Tom)
 | 
						|
       Handle case of GROUP BY target list column number out of 
 | 
						|
       range(David)
 | 
						|
       Allow UNION in subselects
 | 
						|
       Add auto-size to screen to \d? commands(Bruce)
 | 
						|
       Use UNION to show all \d? results in one query(Bruce)
 | 
						|
       Add \d? field search feature(Bruce)
 | 
						|
       Pg_dump issues fewer \connect requests(Tom)
 | 
						|
       Make pg_dump -z flag work better, document it in manual page(Tom)
 | 
						|
       Add HAVING clause with full support for subselects and 
 | 
						|
       unions(Stephan)
 | 
						|
       Full text indexing routines in contrib/fulltextindex(Maarten)
 | 
						|
       Transaction ids now stored in shared memory(Vadim)
 | 
						|
       New PGCLIENTENCODING when issuing COPY command(Tatsuo)
 | 
						|
       Support for SQL92 syntax "SET NAMES"(Tatsuo)
 | 
						|
       Support for LATIN2-5(Tatsuo)
 | 
						|
       Add UNICODE regression test case(Tatsuo)
 | 
						|
       Lock manager cleanup, new locking modes for LLL(Vadim)
 | 
						|
       Allow index use with OR clauses(Bruce)
 | 
						|
       Allows "SELECT NULL ORDER BY 1;"
 | 
						|
       Explain VERBOSE prints the plan, and now pretty-prints the plan to
 | 
						|
       the postmaster log file(Bruce)
 | 
						|
       Add Indices display to \d command(Bruce)
 | 
						|
       Allow GROUP BY on functions(David)
 | 
						|
       New pg_class.relkind for large objects(Bruce)
 | 
						|
       New way to send libpq NOTICE messages to a different location(Tom)
 | 
						|
       New \w write command to psql(Bruce)
 | 
						|
       New /contrib/findoidjoins scans oid columns to find join 
 | 
						|
       relationships(Bruce)
 | 
						|
       Allow binary-compatible indices to be considered when checking for 
 | 
						|
       valid
 | 
						|
       indices for restriction clauses containing a constant(Thomas)
 | 
						|
       New ISBN/ISSN code in /contrib/isbn_issn
 | 
						|
       Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN 
 | 
						|
       constraint(Thomas)
 | 
						|
       New rewrite system fixes many problems with rules and views(Jan)
 | 
						|
               * Rules on relations work
 | 
						|
               * Event qualifications on insert/update/delete work
 | 
						|
               * New OLD variable to reference CURRENT, CURRENT will be 
 | 
						|
       remove in future
 | 
						|
               * Update rules can reference NEW and OLD in rule 
 | 
						|
       qualifications/actions
 | 
						|
               * Insert/update/delete rules on views work
 | 
						|
               * Multiple rule actions are now supported, surrounded by 
 | 
						|
       parentheses
 | 
						|
               * Regular users can create views/rules on tables they have 
 | 
						|
       RULE permits
 | 
						|
               * Rules and views inherit the permissions on the creator
 | 
						|
               * No rules at the column level
 | 
						|
               * No UPDATE NEW/OLD rules
 | 
						|
               * New pg_tables, pg_indexes, pg_rules and pg_views system 
 | 
						|
       views
 | 
						|
               * Only a single action on SELECT rules
 | 
						|
               * Total rewrite overhaul, perhaps for 6.5
 | 
						|
               * handle subselects
 | 
						|
               * handle aggregates on views
 | 
						|
               * handle insert into select from view works
 | 
						|
       System indexes are now multi-key(Bruce)
 | 
						|
       Oidint2, oidint4, and oidname types are removed(Bruce)
 | 
						|
       Use system cache for more system table lookups(Bruce)
 | 
						|
       New backend programming language PL/pgSQL in backend/pl(Jan)
 | 
						|
       New SERIAL data type, auto-creates sequence/index(Thomas)
 | 
						|
       Enable assert checking without a recompile(Massimo)
 | 
						|
       User lock enhancements(Massimo)
 | 
						|
       New setval() command to set sequence value(Massimo)
 | 
						|
       Auto-remove unix socket file on startup if no postmaster 
 | 
						|
       running(Massimo)
 | 
						|
       Conditional trace package(Massimo)
 | 
						|
       New UNLISTEN command(Massimo)
 | 
						|
       Psql and libpq now compile under win32 using win32.mak(Magnus)
 | 
						|
       Lo_read no longer stores trailing NULL(Bruce)
 | 
						|
       Identifiers are now truncated to 31 characters internally(Bruce)
 | 
						|
       Createuser options now availble on the command line
 | 
						|
       Code for 64-bit integer supported added, configure tested, int8 
 | 
						|
       type(Thomas)
 | 
						|
       Prevent file descriptor leaf from failed COPY(Bruce)
 | 
						|
       New pg_upgrade command(Bruce)
 | 
						|
       Updated /contrib directories(Massimo)
 | 
						|
       New CREATE TABLE DEFAULT VALUES statement available(Thomas)
 | 
						|
       New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
 | 
						|
       New DECLARE and FETCH feature(Thomas)
 | 
						|
       libpq's internal structures now not exported(Tom)
 | 
						|
       Allow up to 8 key indexes(Bruce)
 | 
						|
       Remove ARCHIVE keyword, that is no longer used(Thomas)
 | 
						|
       pg_dump -n flag to supress quotes around indentifiers
 | 
						|
       disable system columns for views(Jan)
 | 
						|
       new INET and CIDR types for network addresses(TomH, Paul)
 | 
						|
       no more double quotes in psql output
 | 
						|
       pg_dump now dumps views(Terry)
 | 
						|
       new SET QUERY_LIMIT(Tatsuo,Jan)
 | 
						|
 | 
						|
       Source Tree Changes
 | 
						|
       -------------------
 | 
						|
       /contrib cleanup(Jun)
 | 
						|
       Inline some small functions called for every row(Bruce)
 | 
						|
       Alpha/linux fixes
 | 
						|
       Hp/UX cleanups(Tom)
 | 
						|
       Multi-byte regression tests(Soonmyung.)
 | 
						|
       Remove --disabled options from configure
 | 
						|
       Define PGDOC to use POSTGRESDIR by default
 | 
						|
       Make regression optional
 | 
						|
       Remove extra braces code to pgindent(Bruce)
 | 
						|
       Add bsdi shared library support(Bruce)
 | 
						|
       New --without-CXX support configure option(Brook)
 | 
						|
       New FAQ_CVS
 | 
						|
       Update backend flowchart in tools/backend(Bruce)
 | 
						|
       Change atttypmod from int16 to int32(Bruce, Tom)
 | 
						|
       Getrusage() fix for platforms that do not have it(Tom)
 | 
						|
       Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page
 | 
						|
       NS32K platform fixes(Phil Nelson, John Buller)
 | 
						|
       Sco 7/UnixWare 2.x fixes(Billy,others)
 | 
						|
       Sparc/Solaris 2.5 fixes(Ryan)
 | 
						|
       Pgbuiltin.3 is obsolete, move to doc files(Thomas)
 | 
						|
       Even more documention(Thomas)
 | 
						|
       Nextstep support(Jacek)
 | 
						|
       Aix support(David)
 | 
						|
       pginterface manual page(Bruce)
 | 
						|
       shared libraries all have version numbers
 | 
						|
       merged all OS-specific shared library defines into one file
 | 
						|
       smarter TCL/TK configuration checking(Billy)
 | 
						|
       smarter perl configuration(Brook)
 | 
						|
       configure uses supplied install-sh if no install script found(Tom)
 | 
						|
       new Makefile.shlib for shared library configuration(Tom)
 | 
						|
 | 
						|
Release 6.3.2
 | 
						|
 | 
						|
       This is a bugfix release for 6.3.x. Refer to the release notes for 
 | 
						|
       v6.3 for a more complete summary of new features.
 | 
						|
       Summary: 
 | 
						|
       o Repairs automatic configuration support for some platforms, 
 | 
						|
        including Linux, from breakage inadvertently introduced in v6.3.1.
 | 
						|
       o Correctly handles function calls on the left side of BETWEEN and 
 | 
						|
        LIKE clauses.
 | 
						|
       A dump/restore is NOT required for those running 6.3 or 6.3.1. A 
 | 
						|
       'make distclean', 'make', and 'make install' is all that is 
 | 
						|
       required. This last step should be performed while the postmaster is 
 | 
						|
       not running. You should re-link any custom applications that use 
 | 
						|
       Postgres libraries.
 | 
						|
       For upgrades from pre-v6.3 installations, refer to the installation 
 | 
						|
       and migration instructions for v6.3.
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Changes
 | 
						|
       -------
 | 
						|
       Configure detection improvements for tcl/tk(Brook Milligan, Alvin)
 | 
						|
       Manual page improvements(Bruce)
 | 
						|
       BETWEEN and LIKE fix(Thomas)
 | 
						|
       fix for psql \connect used by pg_dump(Oliver Elphick)
 | 
						|
       New odbc driver
 | 
						|
       pgaccess, version 0.86
 | 
						|
       qsort removed, now uses libc version, cleanups(Jeroen)
 | 
						|
       fix for buffer over-runs detected(Maurice Gittens)
 | 
						|
       fix for buffer overrun in libpgtcl(Randy Kunkee)
 | 
						|
       fix for UNION with DISTINCT or ORDER BY(Bruce)
 | 
						|
       gettimeofday configure check(Doug Winterburn)
 | 
						|
       Fix "indexes not used" bug(Vadim)
 | 
						|
       docs additions(Thomas)
 | 
						|
       Fix for backend memory leak(Bruce)
 | 
						|
       libreadline cleanup(Erwan MAS)
 | 
						|
       Remove DISTDIR(Bruce)
 | 
						|
       Makefile dependency cleanup(Jeroen van Vianen)
 | 
						|
       ASSERT fixes(Bruce)
 | 
						|
 | 
						|
Release 6.3.1
 | 
						|
 | 
						|
       Summary: 
 | 
						|
       o Additional support for multi-byte character sets.
 | 
						|
       o Repair byte ordering for mixed-endian clients and servers.
 | 
						|
       o Minor updates to allowed SQL syntax.
 | 
						|
       o Improvements to the configuration autodetection for installation.
 | 
						|
       A dump/restore is NOT required for those running 6.3. A 'make 
 | 
						|
       distclean', 'make', and 'make install' is all that is required. This 
 | 
						|
       last step should be performed while the postmaster is not running. 
 | 
						|
       You should re-link any custom applications that use Postgres 
 | 
						|
       libraries.
 | 
						|
       For upgrades from pre-v6.3 installations, refer to the installation 
 | 
						|
       and migration instructions for v6.3.
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Changes
 | 
						|
       -------
 | 
						|
       ecpg cleanup/fixes, now version 1.1(Michael Meskes)
 | 
						|
       pg_user cleanup(Bruce)
 | 
						|
       large object fix for pg_dump and tclsh (alvin)
 | 
						|
       LIKE fix for multiple adjacent underscores
 | 
						|
       fix for redefining builtin functions(Thomas)
 | 
						|
       ultrix4 cleanup
 | 
						|
       upgrade to pg_access 0.83
 | 
						|
       updated CLUSTER manual page
 | 
						|
       multi-byte character set support, see doc/README.mb(Tatsuo)
 | 
						|
       configure --with-pgport fix
 | 
						|
       pg_ident fix
 | 
						|
       big-endian fix for backend communications(Kataoka)
 | 
						|
       SUBSTR() and substring() fix(Jan)
 | 
						|
       several jdbc fixes(Peter)
 | 
						|
       libpgtcl improvements, see libptcl/README(Randy Kunkee)
 | 
						|
       Fix for "Datasize = 0" error(Vadim)
 | 
						|
       Prevent \do from wrapping(Bruce)
 | 
						|
       Remove duplicate Russian character set entries
 | 
						|
       Sunos4 cleanup
 | 
						|
       Allow optional TABLE keyword in LOCK and SELECT INTO(Thomas)
 | 
						|
       CREATE SEQUENCE options to allow a negative integer(Thomas)
 | 
						|
       Add "PASSWORD" as an allowed column identifier(Thomas)
 | 
						|
       Add checks for UNION target fields(Bruce)
 | 
						|
       Fix Alpha port(Dwayne Bailey)
 | 
						|
       Fix for text arrays containing quotes(Doug Gibson)
 | 
						|
       Solaris compile fix(Albert Chin-A-Young)
 | 
						|
       Better identify tcl and tk libs and includes(Bruce)
 | 
						|
 | 
						|
Release 6.3
 | 
						|
 | 
						|
       There are many new features and improvements in this release. Here 
 | 
						|
       is a brief, incomplete summary: 
 | 
						|
       o Many new SQL features, including full SQL92 subselect capability 
 | 
						|
        (everything is here but target-list subselects).
 | 
						|
       o Support for client-side environment variables to specify time zone 
 | 
						|
        and date style.
 | 
						|
       o Socket interface for client/server connection. This is the default 
 | 
						|
        now so you may need to start postmaster with the ?-i? flag.
 | 
						|
       o Better password authorization mechanisms. Default table 
 | 
						|
        permissions have changed.
 | 
						|
       o Old-style ?time travel? has been removed. Performance has been 
 | 
						|
        improved.
 | 
						|
 | 
						|
         Note: Bruce Momjian wrote the following notes to introduce the 
 | 
						|
         new release.
 | 
						|
 | 
						|
       There are some general 6.3 issues that I want to mention. These are 
 | 
						|
       only the big items that can not be described in one sentence. A 
 | 
						|
       review of the detailed changes list is still needed.
 | 
						|
       First, we now have subselects. Now that we have them, I would like 
 | 
						|
       to mention that without subselects, SQL is a very limited language. 
 | 
						|
       Subselects are a major feature, and you should review your code for 
 | 
						|
       places where subselects provide a better solution for your queries. 
 | 
						|
       I think you will find that there are more uses for subselects than 
 | 
						|
       you may think. Vadim has put us on the big SQL map with subselects, 
 | 
						|
       and fully functional ones too. The only thing you can't do with 
 | 
						|
       subselects is to use them in the target list.
 | 
						|
       Second, 6.3 uses unix domain sockets rather than TCP/IP by default. 
 | 
						|
       To enable connections from other machines, you have to use the new 
 | 
						|
       postmaster -i option, and of course edit pg_hba.conf. Also, for this 
 | 
						|
       reason, the format of pg_hba.conf has changed.
 | 
						|
       Third, char() fields will now allow faster access than varchar() or 
 | 
						|
       text. Specifically, the text and varchar() have a penalty for access 
 | 
						|
       to any columns after the first column of this type. char() used to 
 | 
						|
       also have this access penalty, but it no longer does. This may 
 | 
						|
       suggest that you redesign some of your tables, especially if you 
 | 
						|
       have short character columns that you have defined as varchar() or 
 | 
						|
       text. This and other changes make 6.3 even faster than earlier 
 | 
						|
       releases.
 | 
						|
       We now have passwords definable independent of any Unix file. There 
 | 
						|
       are new SQL USER commands. See the pg_hba.conf manual page for more 
 | 
						|
       information. There is a new table, pg_shadow, which is used to store 
 | 
						|
       user information and user passwords, and it by default only 
 | 
						|
       SELECT-able by the postgres super-user. pg_user is now a view of 
 | 
						|
       pg_shadow, and is SELECT-able by PUBLIC. You should keep using 
 | 
						|
       pg_user in your application without changes.
 | 
						|
       User-created tables now no longer have SELECT permission to PUBLIC 
 | 
						|
       by default. This was done because the ANSI standard requires it. You 
 | 
						|
       can of course GRANT any permissions you want after the table is 
 | 
						|
       created. System tables continue to be SELECT-able by PUBLIC.
 | 
						|
       We also have real deadlock detection code. No more sixty-second 
 | 
						|
       timeouts. And the new locking code implements a FIFO better, so 
 | 
						|
       there should be less resource starvation during heavy use.
 | 
						|
       Many complaints have been made about inadequate documenation in 
 | 
						|
       previous releases. Thomas has put much effort into many new manuals 
 | 
						|
       for this release. Check out the doc/ directory.
 | 
						|
       For performance reasons, time travel is gone, but can be implemented 
 | 
						|
       using triggers (see pgsql/contrib/spi/README). Please check out the 
 | 
						|
       new \d command for types, operators, etc. Also, views have their own 
 | 
						|
       permissions now, not based on the underlying tables, so permissions 
 | 
						|
       on them have to be set separately. Check /pgsql/interfaces for some 
 | 
						|
       new ways to talk to Postgres.
 | 
						|
       This is the first release that really required an explanation for 
 | 
						|
       existing users. In many ways, this was necessary because the new 
 | 
						|
       release removes many limitations, and the work-arounds people were 
 | 
						|
       using are no longer needed.
 | 
						|
 | 
						|
Migration to v6.3
 | 
						|
 | 
						|
       A dump/restore using pg_dump or pg_dumpall is required for those 
 | 
						|
       wishing to migrate data from any previous release of Postgres.
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Bug Fixes
 | 
						|
       ---------
 | 
						|
       Fix binary cursors broken by MOVE implementation(Vadim)
 | 
						|
       Fix for tcl library crash(Jan)
 | 
						|
       Fix for array handling, from Gerhard Hintermayer
 | 
						|
       Fix acl error, and remove duplicate pqtrace(Bruce)
 | 
						|
       Fix psql \e for empty file(Bruce)
 | 
						|
       Fix for textcat on varchar() fields(Bruce)
 | 
						|
       Fix for DBT Sendproc (Zeugswetter Andres)
 | 
						|
       Fix vacuum analyze syntax problem(Bruce)
 | 
						|
       Fix for international identifiers(Tatsuo)
 | 
						|
       Fix aggregates on inherited tables(Bruce)
 | 
						|
       Fix substr() for out-of-bounds data
 | 
						|
       Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select 
 | 
						|
       sum(2+2)(Bruce)
 | 
						|
       Fix notty output to show status result.  -q option still turns it 
 | 
						|
       off(Bruce)
 | 
						|
       Fix for count(*), aggs with views and multiple tables and 
 | 
						|
       sum(3)(Bruce)
 | 
						|
       Fix cluster(Bruce)
 | 
						|
       Fix for PQtrace start/stop several times(Bruce)
 | 
						|
       Fix a variety of locking problems like newer lock waiters getting
 | 
						|
               lock before older waiters, and having readlock people not 
 | 
						|
       share
 | 
						|
               locks if a writer is waiting for a lock, and waiting writers 
 | 
						|
       not
 | 
						|
               getting priority over waiting readers(Bruce)
 | 
						|
       Fix crashes in psql when executing queries from external 
 | 
						|
       files(James)
 | 
						|
       Fix problem with multiple order by columns, with the first one 
 | 
						|
       having
 | 
						|
               NULL values(Jeroen)
 | 
						|
       Use correct hash table support functions for float8 and int4(Thomas)
 | 
						|
       Re-enable JOIN= option in CREATE OPERATOR statement (Thomas)
 | 
						|
       Change precedence for boolean operators to match expected 
 | 
						|
       behavior(Thomas)
 | 
						|
       Generate elog(ERROR) on over-large integer(Bruce)
 | 
						|
       Allow multiple-argument functions in constraint clauses(Thomas)
 | 
						|
       Check boolean input literals for 'true','false','yes','no','1','0'
 | 
						|
               and throw elog(ERROR) if unrecognized(Thomas)
 | 
						|
       Major large objects fix
 | 
						|
       Fix for GROUP BY showing duplicates(Vadim)
 | 
						|
       Fix for index scans in MergeJion(Vadim)
 | 
						|
 | 
						|
       Enhancements
 | 
						|
       ------------
 | 
						|
       Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas)
 | 
						|
       New User Manual(Thomas, others)
 | 
						|
       Speedup by inlining some frequently-called functions
 | 
						|
       Real deadlock detection, no more timeouts(Bruce)
 | 
						|
       Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, 
 | 
						|
               CURRENT_USER(Thomas)
 | 
						|
       Modify constraint syntax to be SQL92-compliant(Thomas)
 | 
						|
       Implement SQL92 PRIMARY KEY and UNIQUE clauses using indices(Thomas)
 | 
						|
       Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
 | 
						|
       Allow NOT NULL UNIQUE constraint clause (each allowed separately 
 | 
						|
       before)(Thomas)
 | 
						|
       Allow Postgres-style casting ("::") of non-constants(Thomas)
 | 
						|
       Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
 | 
						|
       Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT 
 | 
						|
       FALSE(Thomas)
 | 
						|
       Allow shorter strings for boolean literals (e.g. "t", "tr", 
 | 
						|
       "tru")(Thomas)
 | 
						|
       Allow SQL92 delimited identifiers(Thomas)
 | 
						|
       Implement SQL92 binary and hexadecimal string decoding (b'10' and 
 | 
						|
       x'1F')(Thomas)
 | 
						|
       Support SQL92 syntax for type coercion of literal strings
 | 
						|
               (e.g. "DATETIME 'now'")(Thomas)
 | 
						|
       Add conversions for int2, int4, and OID types to and from 
 | 
						|
       text(Thomas)
 | 
						|
       Use shared lock when building indices(Vadim)
 | 
						|
       Free memory allocated for an user query inside transaction block 
 | 
						|
       after
 | 
						|
               this query is done, was turned off in <= 6.2.1(Vadim)
 | 
						|
       New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
 | 
						|
       New Postgres Procedural Language (PL) backend interface(Jan)
 | 
						|
       Rename pg_dump -H option to -h(Bruce)
 | 
						|
       Add Java support for passwords, European dates(Peter)
 | 
						|
       Use indices for LIKE and ~, !~ operations(Bruce)
 | 
						|
       Add hash functions for datetime and timespan(Thomas)
 | 
						|
       Time Travel removed(Vadim, Bruce)
 | 
						|
       Add paging for \d and \z, and fix \i(Bruce)
 | 
						|
       Add Unix domain socket support to backend and to frontend 
 | 
						|
       library(Goran)
 | 
						|
       Implement CREATE DATABASE/WITH LOCATION and initlocation 
 | 
						|
       utility(Thomas)
 | 
						|
       Allow more SQL92 and/or Postgres reserved words as column 
 | 
						|
       identifiers(Thomas)
 | 
						|
       Augment support for SQL92 SET TIME ZONE...(Thomas)
 | 
						|
       SET/SHOW/RESET TIME ZONE uses TZ backend environment 
 | 
						|
       variable(Thomas)
 | 
						|
       Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
 | 
						|
       Enable SET TIME ZONE using TZ environment variable(Thomas)
 | 
						|
       Add PGDATESTYLE environment variable to frontend and backend 
 | 
						|
       initialization(Thomas)
 | 
						|
       Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
 | 
						|
               frontend library initialization environment 
 | 
						|
       variables(Thomas)
 | 
						|
       Regression tests time zone automatically set with "setenv PGTZ 
 | 
						|
       PST8PDT"(Thomas)
 | 
						|
       Add pg_description table for info on tables, columns, operators, 
 | 
						|
       types, and
 | 
						|
               aggregates(Bruce)
 | 
						|
       Increase 16 char limit on system table/index names to 32 
 | 
						|
       characters(Bruce)
 | 
						|
       Rename system indices(Bruce)
 | 
						|
       Add 'GERMAN' option to SET DATESTYLE(Thomas)
 | 
						|
       Define an "ISO-style" timespan output format with "hh:mm:ss" 
 | 
						|
       fields(Thomas)
 | 
						|
       Allow fractional values for delta times (e.g. '2.5 days')(Thomas)
 | 
						|
       Validate numeric input more carefully for delta times(Thomas)
 | 
						|
       Implement day of year as possible input to date_part()(Thomas)
 | 
						|
       Define timespan_finite() and text_timespan() functions(Thomas)
 | 
						|
       Remove archive stuff(Bruce)
 | 
						|
       Allow for a pg_password authentication database that is separate 
 | 
						|
       from
 | 
						|
               the system password file(Todd)
 | 
						|
       Dump ACLs, GRANT, REVOKE permissions(Matt)
 | 
						|
       Define text, varchar, and bpchar string length functions(Thomas)
 | 
						|
       Fix Query handling for inheritance, and cost computations(Bruce)
 | 
						|
       Implement CREATE TABLE/AS SELECT (alternative to 
 | 
						|
       SELECT/INTO)(Thomas)
 | 
						|
       Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas)
 | 
						|
       Implement UNIONs for SELECT(Bruce)
 | 
						|
       Add UNION, GROUP, DISTINCT to INSERT(Bruce)
 | 
						|
       varchar() stores only necessary bytes on disk(Bruce)
 | 
						|
       Fix for BLOBs(Peter)
 | 
						|
       Mega-Patch for JDBC...see README_6.3 for list of changes(Peter)
 | 
						|
       Remove unused "option" from PQconnectdb()
 | 
						|
       New LOCK command and lock manual page describing deadlocks(Bruce)
 | 
						|
       Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce)
 | 
						|
       Enhance psql \z to show sequences(Bruce)
 | 
						|
       Show NOT NULL and DEFAULT in psql \d table(Bruce)
 | 
						|
       New psql .psqlrc file startup(Andrew)
 | 
						|
       Modify sample startup script in contrib/linux to show syslog(Thomas)
 | 
						|
       New types for IP and MAC addresses in contrib/ip_and_mac(TomH)
 | 
						|
       Unix system time conversions with date/time types in 
 | 
						|
       contrib/unixdate(Thomas)
 | 
						|
       Update of contrib stuff(Massimo)
 | 
						|
       Add Unix socket support to DBD::Pg(Goran)
 | 
						|
       New python interface (PyGreSQL 2.0)(D'Arcy)
 | 
						|
       New frontend/backend protocol has a version number, network byte 
 | 
						|
       order(Phil)
 | 
						|
       Security features in pg_hba.conf enhanced and documented, many 
 | 
						|
       cleanups(Phil)
 | 
						|
       CHAR() now faster access than VARCHAR() or TEXT
 | 
						|
       ecpg embedded SQL preprocessor
 | 
						|
       Reduce system column overhead(Vadmin)
 | 
						|
       Remove pg_time table(Vadim)
 | 
						|
       Add pg_type attribute to identify types that need length (bpchar, 
 | 
						|
       varchar)
 | 
						|
       Add report of offending line when COPY command fails
 | 
						|
       Allow VIEW permissions to be set separately from the underlying 
 | 
						|
       tables. 
 | 
						|
               For security, use GRANT/REVOKE on views as appropriate(Jan)
 | 
						|
       Tables now have no default GRANT SELECT TO PUBLIC.  You must
 | 
						|
               explicitly grant such permissions.
 | 
						|
       Clean up tutorial examples(Darren)
 | 
						|
 | 
						|
       Source Tree Changes
 | 
						|
       -------------------
 | 
						|
       Add new html development tools, and flow chart in /tools/backend
 | 
						|
       Fix for SCO compiles
 | 
						|
       Stratus computer port Robert Gillies
 | 
						|
       Added support for shlib for BSD44_derived & i386_solaris
 | 
						|
       Make configure more automated(Brook)
 | 
						|
       Add script to check regression test results
 | 
						|
       Break parser functions into smaller files, group together(Bruce)
 | 
						|
       Rename heap_create to heap_create_and_catalog, rename heap_creatr
 | 
						|
               to heap_create()(Bruce)
 | 
						|
       Sparc/Linux patch for locking(TomS)
 | 
						|
       Remove PORTNAME and reorganize port-specific stuff(Marc)
 | 
						|
       Add optimizer README file(Bruce)
 | 
						|
       Remove some recursion in optimizer and clean up some code 
 | 
						|
       there(Bruce)
 | 
						|
       Fix for NetBSD locking(Henry)
 | 
						|
       Fix for libptcl make(Tatsuo)
 | 
						|
       AIX patch(Darren)
 | 
						|
       Change IS TRUE, IS FALSE, ... to expressions using "=" rather than
 | 
						|
               function calls to istrue() or isfalse() to allow 
 | 
						|
       optimization(Thomas)
 | 
						|
       Various fixes NetBSD/Sparc related(TomH)
 | 
						|
       Alpha linux locking(Travis,Ryan)
 | 
						|
       Change elog(WARN) to elog(ERROR)(Bruce)
 | 
						|
       FAQ for FreeBSD(Marc)
 | 
						|
       Bring in the PostODBC source tree as part of our standard 
 | 
						|
       distribution(Marc)
 | 
						|
       A minor patch for HP/UX 10 vs 9(Stan)
 | 
						|
       New pg_attribute.atttypmod for type-specific info like varchar 
 | 
						|
       length(Bruce)
 | 
						|
       Unixware patches(Billy)
 | 
						|
       New i386 'lock' for spin lock asm(Billy)
 | 
						|
       Support for multiplexed backends is removed
 | 
						|
       Start an OpenBSD port
 | 
						|
       Start an AUX port
 | 
						|
       Start a Cygnus port
 | 
						|
       Add string functions to regression suite(Thomas)
 | 
						|
       Expand a few function names formerly truncated to 16 
 | 
						|
       characters(Thomas)
 | 
						|
       Remove un-needed malloc() calls and replace with palloc()(Bruce)
 | 
						|
 | 
						|
Release 6.2.1
 | 
						|
 | 
						|
       v6.2.1 is a bug-fix and usability release on v6.2.
 | 
						|
       Summary: 
 | 
						|
       o Allow strings to span lines, per SQL92.
 | 
						|
       o Include example trigger function for inserting user names on table 
 | 
						|
        updates.
 | 
						|
       This is a minor bug-fix release on v6.2. For upgrades from pre-v6.2 
 | 
						|
       systems, a full dump/reload is required. Refer to the v6.2 release 
 | 
						|
       notes for instructions.
 | 
						|
 | 
						|
Migration from v6.2 to v6.2.1
 | 
						|
 | 
						|
       This is a minor bug-fix release. A dump/reload is not required from 
 | 
						|
       v6.2, but is required from any release prior to v6.2.
 | 
						|
       In upgrading from v6.2, if you choose to dump/reload you will find 
 | 
						|
       that avg(money) is now calculated correctly. All other bug fixes 
 | 
						|
       take effect upon updating the executables.
 | 
						|
       Another way to avoid dump/reload is to use the following SQL command 
 | 
						|
       from psql to update the existing system table: 
 | 
						|
 | 
						|
         update pg_aggregate set aggfinalfn = 'cash_div_flt8'
 | 
						|
          where aggname = 'avg' and aggbasetype = 790;
 | 
						|
 | 
						|
       This will need to be done to every existing database, including 
 | 
						|
       template1.
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Changes in this release
 | 
						|
       -----------------------
 | 
						|
       Allow TIME and TYPE column names(Thomas)
 | 
						|
       Allow larger range of true/false as boolean values(Thomas)
 | 
						|
       Support output of "now" and "current"(Thomas)
 | 
						|
       Handle DEFAULT with INSERT of NULL properly(Vadim)
 | 
						|
       Fix for relation reference counts problem in buffer manager(Vadim)
 | 
						|
       Allow strings to span lines, like ANSI(Thomas)
 | 
						|
       Fix for backward cursor with ORDER BY(Vadim)
 | 
						|
       Fix avg(cash) computation(Thomas)
 | 
						|
       Fix for specifying a column twice in ORDER/GROUP BY(Vadim)
 | 
						|
       Documented new libpq function to return affected rows, 
 | 
						|
       PQcmdTuples(Bruce)
 | 
						|
       Trigger function for inserting user names for INSERT/UPDATE(Brook 
 | 
						|
       Milligan)
 | 
						|
 | 
						|
Release 6.2
 | 
						|
 | 
						|
       A dump/restore is required for those wishing to migrate data from 
 | 
						|
       previous releases of Postgres.
 | 
						|
 | 
						|
Migration from v6.1 to v6.2
 | 
						|
 | 
						|
       This migration requires a complete dump of the 6.1 database and a 
 | 
						|
       restore of the database in 6.2.
 | 
						|
       Note that the pg_dump and pg_dumpall utility from 6.2 should be used 
 | 
						|
       to dump the 6.1 database.
 | 
						|
 | 
						|
Migration from v1.x to v6.2
 | 
						|
 | 
						|
       Those migrating from earlier 1.* releases should first upgrade to 
 | 
						|
       1.09 because the COPY output format was improved from the 1.02 
 | 
						|
       release.
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Bug Fixes
 | 
						|
       ---------
 | 
						|
       Fix problems with pg_dump for inheritance, sequences, archive 
 | 
						|
       tables(Bruce)
 | 
						|
       Fix compile errors on overflow due to shifts, unsigned, and bad 
 | 
						|
       prototypes
 | 
						|
                from Solaris(Diab Jerius)
 | 
						|
       Fix bugs in geometric line arithmetic (bad intersection 
 | 
						|
       calculations)(Thomas)
 | 
						|
       Check for geometric intersections at endpoints to avoid rounding 
 | 
						|
       ugliness(Thomas)
 | 
						|
       Catch non-functional delete attempts(Vadim)
 | 
						|
       Change time function names to be more consistent(Michael Reifenberg)
 | 
						|
       Check for zero divides(Michael Reifenberg)
 | 
						|
       Fix very old bug which made tuples changed/inserted by a commnd
 | 
						|
               visible to the command itself (so we had multiple update of 
 | 
						|
               updated tuples, etc)(Vadim)
 | 
						|
       Fix for SELECT null, 'fail' FROM pg_am (Patrick)
 | 
						|
       SELECT NULL as EMPTY_FIELD now allowed(Patrick)
 | 
						|
       Remove un-needed signal stuff from contrib/pginterface
 | 
						|
       Fix OR (where x <> 1 or x isnull didn't return tuples with x NULL) 
 | 
						|
       (Vadim)
 | 
						|
       Fix time_cmp function (Vadim)
 | 
						|
       Fix handling of functions with non-attribute first argument in 
 | 
						|
               WHERE clauses (Vadim)
 | 
						|
       Fix GROUP BY when order of entries is different from order
 | 
						|
               in target list (Vadim)
 | 
						|
       Fix pg_dump for aggregates without sfunc1 (Vadim)
 | 
						|
 | 
						|
       Enhancements
 | 
						|
       ------------
 | 
						|
       Default genetic optimizer GEQO parameter is now 8(Bruce)
 | 
						|
       Allow use parameters in target list having aggregates in 
 | 
						|
       functions(Vadim)
 | 
						|
       Added JDBC driver as an interface(Adrian & Peter)
 | 
						|
       pg_password utility
 | 
						|
       Return number of tuples inserted/affected by INSERT/UPDATE/DELETE 
 | 
						|
       etc.(Vadim)
 | 
						|
       Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
 | 
						|
       SPI (Server Programming Interface) allows execution of queries 
 | 
						|
       inside 
 | 
						|
               C-functions (Vadim)
 | 
						|
       NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
 | 
						|
       Include reserved words for string handling, outer joins, and 
 | 
						|
       unions(Thomas)
 | 
						|
       Implement extended comments ("/* ... */") using exclusive 
 | 
						|
       states(Thomas)
 | 
						|
       Add "//" single-line comments(Bruce)
 | 
						|
       Remove some restrictions on characters in operator names(Thomas)
 | 
						|
       DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & 
 | 
						|
       Thomas)
 | 
						|
       Add text concatenation operator and function (SQL92)(Thomas)
 | 
						|
       Support WITH TIME ZONE syntax (SQL92)(Thomas)
 | 
						|
       Support INTERVAL unit TO unit syntax (SQL92)(Thomas)
 | 
						|
       Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
 | 
						|
               and CHARACTER VARYING (SQL92)(Thomas)
 | 
						|
       Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) 
 | 
						|
       (SQL92)(Thomas)
 | 
						|
       Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() 
 | 
						|
       (SQL92)(Thomas)
 | 
						|
       Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
 | 
						|
       Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN 
 | 
						|
       (SQL92)(Thomas)
 | 
						|
       Add more reserved words, mostly for SQL92 compliance(Thomas)
 | 
						|
       Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
 | 
						|
       Add center() routines for lseg, path, polygon(Thomas)
 | 
						|
       Add distance() routines for circle-polygon, polygon-polygon(Thomas)
 | 
						|
       Check explicitly for points and polygons contained within polygons
 | 
						|
               using an axis-crossing algorithm(Thomas)
 | 
						|
       Add routine to convert circle-box(Thomas)
 | 
						|
       Merge conflicting operators for different geometric data 
 | 
						|
       types(Thomas)
 | 
						|
       Replace distance operator "<===>" with "<->"(Thomas)
 | 
						|
       Replace "above" operator "!^" with ">^" and "below" operator "!|" 
 | 
						|
       with "<^"(Thomas)
 | 
						|
       Add routines for text trimming on both ends, substring, and string 
 | 
						|
       position(Thomas)
 | 
						|
       Added conversion routines circle(box) and poly(circle)(Thomas)
 | 
						|
       Allow internal sorts to be stored in memory rather than in 
 | 
						|
       files(Bruce & Vadim)
 | 
						|
       Allow functions and operators on internally-identical types to 
 | 
						|
       succeed(Bruce)
 | 
						|
       Speed up backend startup after profiling analysis(Bruce)
 | 
						|
       Inline frequently called functions for performance(Bruce)
 | 
						|
       Reduce open() calls(Bruce)
 | 
						|
       psql:  Add PAGER for \h and \?,\C fix
 | 
						|
       Fix for psql pager when no tty(Bruce)
 | 
						|
       New entab utility(Bruce)
 | 
						|
       General trigger functions for referential integrity (Vadim)
 | 
						|
       General trigger functions for time travel (Vadim)
 | 
						|
       General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
 | 
						|
       MOVE implementation (Vadim)
 | 
						|
 | 
						|
       Source Tree Changes
 | 
						|
       -------------------
 | 
						|
       HPUX 10 patches (Vladimir Turin)
 | 
						|
       Added SCO support, (Daniel Harris)
 | 
						|
       mkLinux patches (Tatsuo Ishii)
 | 
						|
       Change geometric box terminology from "length" to "width"(Thomas)
 | 
						|
       Deprecate temporary unstored slope fields in geometric code(Thomas)
 | 
						|
       Remove restart instructions from INSTALL(Bruce)
 | 
						|
       Look in /usr/ucb first for install(Bruce)
 | 
						|
       Fix c++ copy example code(Thomas)
 | 
						|
       Add -o to psql manual page(Bruce)
 | 
						|
       Prevent relname unallocated string length from being copied into 
 | 
						|
       database(Bruce)
 | 
						|
       Cleanup for NAMEDATALEN use(Bruce)
 | 
						|
       Fix pg_proc names over 15 chars in output(Bruce)
 | 
						|
       Add strNcpy() function(Bruce)
 | 
						|
       remove some (void) casts that are unnecessary(Bruce)
 | 
						|
       new interfaces directory(Marc)
 | 
						|
       Replace fopen() calls with calls to fd.c functions(Bruce)
 | 
						|
       Make functions static where possible(Bruce)
 | 
						|
       enclose unused functions in #ifdef NOT_USED(Bruce)
 | 
						|
       Remove call to difftime() in timestamp support to fix SunOS(Bruce & 
 | 
						|
       Thomas)
 | 
						|
       Changes for Digital Unix
 | 
						|
       Portability fix for pg_dumpall(Bruce)
 | 
						|
       Rename pg_attribute.attnvals to attdisbursion(Bruce)
 | 
						|
       "intro/unix" manual page now "pgintro"(Bruce)
 | 
						|
       "built-in" manual page now "pgbuiltin"(Bruce)
 | 
						|
       "drop" manual page now "drop_table"(Bruce)
 | 
						|
       Add "create_trigger", "drop_trigger" manual pages(Thomas)
 | 
						|
       Add constraints regression test(Vadim & Thomas)
 | 
						|
       Add comments syntax regression test(Thomas)
 | 
						|
       Add PGINDENT and support program(Bruce)
 | 
						|
       Massive commit to run PGINDENT on all *.c and *.h files(Bruce)
 | 
						|
       Files moved to /src/tools directory(Bruce)
 | 
						|
       SPI and Trigger programming guides (Vadim & D'Arcy)
 | 
						|
 | 
						|
Release 6.1.1
 | 
						|
 | 
						|
Migration from v6.1 to v6.1.1
 | 
						|
 | 
						|
       This is a minor bug-fix release. A dump/reload is not required from 
 | 
						|
       v6.1, but is required from any release prior to v6.1. Refer to the 
 | 
						|
       release notes for v6.1 for more details.
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Changes in this release
 | 
						|
       -----------------------
 | 
						|
       fix for SET with options (Thomas)
 | 
						|
       allow pg_dump/pg_dumpall to preserve ownership of all 
 | 
						|
       tables/objects(Bruce)
 | 
						|
       new psql \connect option allows changing usernames without changing 
 | 
						|
       databases
 | 
						|
       fix for initdb --debug option(Yoshihiko Ichikawa))
 | 
						|
       lextest cleanup(Bruce)
 | 
						|
       hash fixes(Vadim)
 | 
						|
       fix date/time month boundary arithmetic(Thomas)
 | 
						|
       fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
 | 
						|
       timestamp overhauled to use standard functions(Thomas)
 | 
						|
       other code cleanup in date/time routines(Thomas)
 | 
						|
       psql's \d now case-insensitive(Bruce)
 | 
						|
       psql's backslash commands can now have trailing semicolon(Bruce)
 | 
						|
       fix memory leak in psql when using \g(Bruce)
 | 
						|
       major fix for endian handling of communication to server(Thomas, 
 | 
						|
       Tatsuo)
 | 
						|
       Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
 | 
						|
       allow underscores in usernames(Bruce)
 | 
						|
       pg_dumpall now returns proper status, portability fix(Bruce)
 | 
						|
 | 
						|
Release 6.1
 | 
						|
 | 
						|
        The regression tests have been adapted and extensively modified for 
 | 
						|
       the v6.1 release of Postgres.
 | 
						|
        Three new data types (datetime, timespan, and circle) have been 
 | 
						|
       added to the native set of Postgres types. Points, boxes, paths, and 
 | 
						|
       polygons have had their output formats made consistant across the 
 | 
						|
       data types. The polygon output in misc.out has only been 
 | 
						|
       spot-checked for correctness relative to the original regression 
 | 
						|
       output.
 | 
						|
        Postgres v6.1 introduces a new, alternate optimizer which uses 
 | 
						|
       genetic algorithms. These algorithms introduce a random behavior in 
 | 
						|
       the ordering of query results when the query contains multiple 
 | 
						|
       qualifiers or multiple tables (giving the optimizer a choice on 
 | 
						|
       order of evaluation). Several regression tests have been modified to 
 | 
						|
       explicitly order the results, and hence are insensitive to optimizer 
 | 
						|
       choices. A few regression tests are for data types which are 
 | 
						|
       inherently unordered (e.g. points and time intervals) and tests 
 | 
						|
       involving those types are explicitly bracketed with set geqo to 
 | 
						|
       'off' and reset geqo.
 | 
						|
        The interpretation of array specifiers (the curly braces around 
 | 
						|
       atomic values) appears to have changed sometime after the original 
 | 
						|
       regression tests were generated. The current ./expected/*.out files 
 | 
						|
       reflect this new interpretation, which may not be correct!
 | 
						|
        The float8 regression test fails on at least some platforms. This 
 | 
						|
       is due to differences in implementations of pow() and exp() and the 
 | 
						|
       signaling mechanisms used for overflow and underflow conditions.
 | 
						|
        The "random" results in the random test should cause the "random" 
 | 
						|
       test to be "failed", since the regression tests are evaluated using 
 | 
						|
       a simple diff. However, "random" does not seem to produce random 
 | 
						|
       results on my test machine (Linux/gcc/i686).
 | 
						|
 | 
						|
Migration to v6.1
 | 
						|
 | 
						|
       This migration requires a complete dump of the 6.0 database and a 
 | 
						|
       restore of the database in 6.1.
 | 
						|
       Those migrating from earlier 1.* releases should first upgrade to 
 | 
						|
       1.09 because the COPY output format was improved from the 1.02 
 | 
						|
       release.
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Bug Fixes
 | 
						|
       ---------
 | 
						|
       packet length checking in library routines
 | 
						|
       lock manager priority patch
 | 
						|
       check for under/over flow of float8(Bruce)
 | 
						|
       multi-table join fix(Vadim)
 | 
						|
       SIGPIPE crash fix(Darren)
 | 
						|
       large object fixes(Sven)
 | 
						|
       allow btree indexes to handle NULLs(Vadim)
 | 
						|
       timezone fixes(D'Arcy)
 | 
						|
       select SUM(x) can return NULL on no rows(Thomas)
 | 
						|
       internal optimizer, executor bug fixes(Vadim)
 | 
						|
       fix problem where inner loop in < or <= has no rows(Vadim)
 | 
						|
       prevent re-commuting join index clauses(Vadim)
 | 
						|
       fix join clauses for multiple tables(Vadim)
 | 
						|
       fix hash, hashjoin for arrays(Vadim)
 | 
						|
       fix btree for abstime type(Vadim)
 | 
						|
       large object fixes(Raymond)
 | 
						|
       fix buffer leak in hash indices (Vadim)
 | 
						|
       fix rtree for use in inner scan (Vadim)
 | 
						|
       fix gist for use in inner scan, cleanups (Vadim, Andrea)
 | 
						|
       avoid unnecessary local buffers allocation (Vadim, Massimo)
 | 
						|
       fix local buffers leak in transaction aborts (Vadim)
 | 
						|
       fix file manager memmory leaks, cleanups (Vadim, Massimo)
 | 
						|
       fix storage manager memmory leaks (Vadim)
 | 
						|
       fix btree duplicates handling (Vadim)
 | 
						|
       fix deleted tuples re-incarnation caused by vacuum (Vadim)
 | 
						|
       fix SELECT varchar()/char() INTO TABLE made zero-length 
 | 
						|
       fields(Bruce)
 | 
						|
       many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
 | 
						|
 | 
						|
       Enhancements
 | 
						|
       ------------
 | 
						|
       attribute optimization statistics(Bruce)
 | 
						|
       much faster new btree bulk load code(Paul)
 | 
						|
       BTREE UNIQUE added to bulk load code(Vadim) 
 | 
						|
       new lock debug code(Massimo)
 | 
						|
       massive changes to libpg++(Leo)
 | 
						|
       new GEQO optimizer speeds table multi-table optimization(Martin)
 | 
						|
       new WARN message for non-unique insert into unique key(Marc)
 | 
						|
       update x=-3, no spaces, now valid(Bruce)
 | 
						|
       remove case-sensitive identifier handling(Bruce,Thomas,Dan)
 | 
						|
       debug backend now pretty-prints tree(Darren)
 | 
						|
       new Oracle character functions(Edmund)
 | 
						|
       new plaintext password functions(Dan)
 | 
						|
       no such class or insufficient privilege changed to distinct 
 | 
						|
       messages(Dan)
 | 
						|
       new ANSI timestamp function(Dan)
 | 
						|
       new ANSI Time and Date types (Thomas)
 | 
						|
       move large chunks of data in backend(Martin)
 | 
						|
       multi-column btree indexes(Vadim)
 | 
						|
       new SET var TO value command(Martin)
 | 
						|
       update transaction status on reads(Dan)
 | 
						|
       new locale settings for character types(Oleg)
 | 
						|
       new SEQUENCE serial number generator(Vadim)
 | 
						|
       GROUP BY function now possible(Vadim)
 | 
						|
       re-organize regression test(Thomas,Marc)
 | 
						|
       new optimizer operation weights(Vadim)
 | 
						|
       new psql \z grant/permit option(Marc)
 | 
						|
       new MONEY data type(D'Arcy,Thomas)
 | 
						|
       tcp socket communication speed improved(Vadim)
 | 
						|
       new VACUUM option for attribute statistics, and for certain columns 
 | 
						|
       (Vadim)
 | 
						|
       many geometric type improvements(Thomas,Keith)
 | 
						|
       additional regression tests(Thomas)
 | 
						|
       new datestyle variable(Thomas,Vadim,Martin)
 | 
						|
       more comparison operators for sorting types(Thomas)
 | 
						|
       new conversion functions(Thomas)
 | 
						|
       new more compact btree format(Vadim)
 | 
						|
       allow pg_dumpall to preserve database ownership(Bruce)
 | 
						|
       new SET GEQO=# and R_PLANS variable(Vadim)
 | 
						|
       old (!GEQO) optimizer can use right-sided plans (Vadim)
 | 
						|
       typechecking improvement in SQL parser(Bruce)
 | 
						|
       new SET, SHOW, RESET commands(Thomas,Vadim)
 | 
						|
       new \connect database USER option
 | 
						|
       new destroydb -i option (Igor)
 | 
						|
       new \dt and \di psql commands (Darren)
 | 
						|
       SELECT "\n" now escapes newline (A. Duursma)
 | 
						|
       new geometry conversion functions from old format (Thomas)
 | 
						|
 | 
						|
       Source tree changes
 | 
						|
       -------------------
 | 
						|
       new configuration script(Marc)
 | 
						|
       readline configuration option added(Marc)
 | 
						|
       OS-specific configuration options removed(Marc)
 | 
						|
       new OS-specific template files(Marc)
 | 
						|
       no more need to edit Makefile.global(Marc)
 | 
						|
       re-arrange include files(Marc)
 | 
						|
       nextstep patches (Gregor Hoffleit)
 | 
						|
       removed WIN32-specific code(Bruce)
 | 
						|
       removed postmaster -e option, now only postgres -e option (Bruce)
 | 
						|
       merge duplicate library code in front/backends(Martin)
 | 
						|
       now works with eBones, international Kerberos(Jun)
 | 
						|
       more shared library support
 | 
						|
       c++ include file cleanup(Bruce)
 | 
						|
       warn about buggy flex(Bruce)
 | 
						|
       DG-UX, Ultrix, Irix, AIX portability fixes
 | 
						|
 | 
						|
Release v6.0
 | 
						|
 | 
						|
       A dump/restore is required for those wishing to migrate data from 
 | 
						|
       previous releases of Postgres.
 | 
						|
 | 
						|
Migration from v1.09 to v6.0
 | 
						|
 | 
						|
       This migration requires a complete dump of the 1.09 database and a 
 | 
						|
       restore of the database in 6.0.
 | 
						|
 | 
						|
Migration from pre-v1.09 to v6.0
 | 
						|
 | 
						|
       Those migrating from earlier 1.* releases should first upgrade to 
 | 
						|
       1.09 because the COPY output format was improved from the 1.02 
 | 
						|
       release.
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Bug Fixes
 | 
						|
       ---------
 | 
						|
       ALTER TABLE bug - running postgress process needs to re-read table 
 | 
						|
       definition
 | 
						|
       Allow vacuum to be run on one table or entire database(Bruce)
 | 
						|
       Array fixes
 | 
						|
       Fix array over-runs of memory writes(Kurt)
 | 
						|
       Fix elusive btree range/non-range bug(Dan)
 | 
						|
       Fix for hash indexes on some types like time and date
 | 
						|
       Fix for pg_log size explosion
 | 
						|
       Fix permissions on lo_export()(Bruce)
 | 
						|
       Fix unitialized reads of memory(Kurt)
 | 
						|
       Fixed ALTER TABLE ... char(3) bug(Bruce)
 | 
						|
       Fixed a few small memory leaks
 | 
						|
       Fixed EXPLAIN handling of options and changed full_path option name
 | 
						|
       Fixed output of group acl permissions
 | 
						|
       Memory leaks (hunt and destroy with tools like Purify(Kurt)
 | 
						|
       Minor improvements to rules system
 | 
						|
       NOTIFY fixes
 | 
						|
       New asserts for run-checking
 | 
						|
       Overhauled parser/analyze code to properly report errors and 
 | 
						|
       increase speed
 | 
						|
       Pg_dump -d now handles NULL's properly(Bruce)
 | 
						|
       Prevent SELECT NULL from crashing server (Bruce)
 | 
						|
       Properly report errors when INSERT ... SELECT columns did not match
 | 
						|
       Properly report errors when insert column names were not correct
 | 
						|
       Psql \g filename now works(Bruce)
 | 
						|
       Psql fixed problem with multiple statements on one line with 
 | 
						|
       multiple outputs
 | 
						|
       Removed duplicate system oid's
 | 
						|
       SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table 
 | 
						|
       exists(Bruce)
 | 
						|
       Several fixes for queries that crashed the backend
 | 
						|
       Starting quote in insert string errors(Bruce)
 | 
						|
       Submitting an empty query now returns empty status, not just " " 
 | 
						|
       query(Bruce)
 | 
						|
 | 
						|
       Enhancements
 | 
						|
       ------------
 | 
						|
       Add EXPLAIN manual page(Bruce)
 | 
						|
       Add UNIQUE index capability(Dan)
 | 
						|
       Add hostname/user level access control rather than just hostname and 
 | 
						|
       user
 | 
						|
       Add synonym of != for <>(Bruce)
 | 
						|
       Allow "select oid,* from table"
 | 
						|
       Allow BY,ORDER BY to specify columns by number, or by non-alias 
 | 
						|
       table.column(Bruce)
 | 
						|
       Allow COPY from the frontend(Bryan)
 | 
						|
       Allow GROUP BY to use alias column name(Bruce)
 | 
						|
       Allow actual compression, not just reuse on the same page(Vadim)
 | 
						|
       Allow installation-configuration option to auto-add all local 
 | 
						|
       users(Bryan)
 | 
						|
       Allow libpq to distinguish between text value '' and null(Bruce)
 | 
						|
       Allow non-postgres users with createdb privs to destroydb's
 | 
						|
       Allow restriction on who can create C functions(Bryan)
 | 
						|
       Allow restriction on who can do backend COPY(Bryan)
 | 
						|
       Can shrink tables, pg_time and pg_log(Vadim & Erich)
 | 
						|
       Change debug level 2 to print queries only, changed debug heading 
 | 
						|
       layout(Bruce)
 | 
						|
       Change default decimal constant representation from float4 to 
 | 
						|
       float8(Bruce)
 | 
						|
       European date format now set when postmaster is started
 | 
						|
       Execute lowercase function names if not found with exact case
 | 
						|
       Fixes for aggregate/GROUP processing, allow 'select 
 | 
						|
       sum(func(x),sum(x+y) from z'
 | 
						|
       Gist now included in the distrubution(Marc)
 | 
						|
       Idend authentication of local users(Bryan)
 | 
						|
       Implement BETWEEN qualifier(Bruce)
 | 
						|
       Implement IN qualifier(Bruce)
 | 
						|
       Libpq has PQgetisnull()(Bruce)
 | 
						|
       Libpq++ improvements
 | 
						|
       New options to initdb(Bryan)
 | 
						|
       Pg_dump allow dump of oid's(Bruce)
 | 
						|
       Pg_dump create indexes after tables are loaded for speed(Bruce)
 | 
						|
       Pg_dumpall dumps all databases, and the user table
 | 
						|
       Pginterface additions for NULL values(Bruce)
 | 
						|
       Prevent postmaster from being run as root
 | 
						|
       Psql \h and \? is now readable(Bruce)
 | 
						|
       Psql allow backslashed, semicolons anywhere on the line(Bruce)
 | 
						|
       Psql changed command prompt for lines in query or in quotes(Bruce)
 | 
						|
       Psql char(3) now displays as (bp)char in \d output(Bruce)
 | 
						|
       Psql return code now more accurate(Bryan?)
 | 
						|
       Psql updated help syntax(Bruce)
 | 
						|
       Re-visit and fix vacuum(Vadim)
 | 
						|
       Reduce size of regression diffs, remove timezone name 
 | 
						|
       difference(Bruce)
 | 
						|
       Remove compile-time parameters to enable binary distributions(Bryan)
 | 
						|
       Reverse meaning of HBA masks(Bryan)
 | 
						|
       Secure Authentication of local users(Bryan)
 | 
						|
       Speed up vacuum(Vadim)
 | 
						|
       Vacuum now had VERBOSE option(Bruce)
 | 
						|
 | 
						|
       Source tree changes
 | 
						|
       -------------------
 | 
						|
       All functions now have prototypes that are compared against the 
 | 
						|
       calls
 | 
						|
       Allow asserts to be disabled easly from Makefile.global(Bruce)
 | 
						|
       Change oid constants used in code to #define names
 | 
						|
       Decoupled sparc and solaris defines(Kurt)
 | 
						|
       Gcc -Wall compiles cleanly with warnings only from unfixable 
 | 
						|
       constructs
 | 
						|
       Major include file reorganization/reduction(Marc)
 | 
						|
       Make now stops on compile failure(Bryan)
 | 
						|
       Makefile restructuring(Bryan, Marc)
 | 
						|
       Merge bsdi_2_1 to bsdi(Bruce)
 | 
						|
       Monitor program removed
 | 
						|
       Name change from Postgres95 to PostgreSQL
 | 
						|
       New config.h file(Marc, Bryan)
 | 
						|
       PG_VERSION now set to 6.0 and used by postmaster
 | 
						|
       Portability additions, including Ultrix, DG/UX, AIX, and Solaris
 | 
						|
       Reduced the number of #define's, centeralized #define's
 | 
						|
       Remove duplicate OIDS in system tables(Dan)
 | 
						|
       Remove duplicate system catalog info or report mismatches(Dan)
 | 
						|
       Removed many os-specific #define's
 | 
						|
       Restructured object file generation/location(Bryan, Marc)
 | 
						|
       Restructured port-specific file locations(Bryan, Marc)
 | 
						|
       Unused/uninialized variables corrected
 | 
						|
 | 
						|
Release v1.09
 | 
						|
 | 
						|
       Sorry, we stopped keeping track of changes from 1.02 to 1.09. Some 
 | 
						|
       of the changes listed in 6.0 were actually included in the 1.02.1 to 
 | 
						|
       1.09 releases.
 | 
						|
 | 
						|
Release v1.02
 | 
						|
 | 
						|
Migration from v1.02 to v1.02.1
 | 
						|
 | 
						|
       Here is a new migration file for 1.02.1. It includes the 'copy' 
 | 
						|
       change and a script to convert old ascii files.
 | 
						|
 | 
						|
         Note: The following notes are for the benefit of users who want 
 | 
						|
         to migrate databases from postgres95 1.01 and 1.02 to postgres95 
 | 
						|
         1.02.1.
 | 
						|
         If you are starting afresh with postgres95 1.02.1 and do not need 
 | 
						|
         to migrate old databases, you do not need to read any further.
 | 
						|
 | 
						|
       In order to upgrade older postgres95 version 1.01 or 1.02 databases 
 | 
						|
       to version 1.02.1, the following steps are required:
 | 
						|
 | 
						|
       1. Start up a new 1.02.1 postmaster
 | 
						|
       2. Add the new built-in functions and operators of 1.02.1 to 1.01 or 
 | 
						|
         1.02 databases. This is done by running the new 1.02.1 server 
 | 
						|
         against your own 1.01 or 1.02 database and applying the queries 
 | 
						|
         attached at the end of thie file. This can be done easily through 
 | 
						|
         psql. If your 1.01 or 1.02 database is named "testdb" and you 
 | 
						|
         have cut the commands from the end of this file and saved them in 
 | 
						|
         addfunc.sql: 
 | 
						|
                % psql testdb -f addfunc.sql
 | 
						|
         Those upgrading 1.02 databases will get a warning when executing 
 | 
						|
         the last two statements in the file because they are already 
 | 
						|
         present in 1.02. This is not a cause for concern.
 | 
						|
 | 
						|
Dump/Reload Procedure
 | 
						|
 | 
						|
       If you are trying to reload a pg_dump or text-mode 'copy tablename 
 | 
						|
       to stdout' generated with a previous version, you will need to run 
 | 
						|
       the attached sed script on the ASCII file before loading it into the 
 | 
						|
       database. The old format used '.' as end-of-data, while '\.' is now 
 | 
						|
       the end-of-data marker. Also, empty strings are now loaded in as '' 
 | 
						|
       rather than NULL. See the copy manual page for full details. 
 | 
						|
 | 
						|
               sed 's/^\.$/\\./g' <in_file >out_file
 | 
						|
 | 
						|
       If you are loading an older binary copy or non-stdout copy, there is 
 | 
						|
       no end-of-data character, and hence no conversion necessary. 
 | 
						|
 | 
						|
       -- following lines added by agc to reflect the case-insensitive
 | 
						|
       -- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1)
 | 
						|
       create operator ~* (leftarg = bpchar, rightarg = text, procedure = 
 | 
						|
       texticregexeq);
 | 
						|
       create operator !~* (leftarg = bpchar, rightarg = text, procedure = 
 | 
						|
       texticregexne);
 | 
						|
       create operator ~* (leftarg = varchar, rightarg = text, procedure = 
 | 
						|
       texticregexeq);
 | 
						|
       create operator !~* (leftarg = varchar, rightarg = text, procedure = 
 | 
						|
       texticregexne);
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Source code maintenance and development
 | 
						|
        * worldwide team of volunteers
 | 
						|
        * the source tree now in CVS at ftp.ki.net
 | 
						|
 | 
						|
       Enhancements
 | 
						|
        * psql (and underlying libpq library) now has many more options for
 | 
						|
          formatting output, including HTML
 | 
						|
        * pg_dump now output the schema and/or the data, with many fixes to
 | 
						|
          enhance completeness.
 | 
						|
        * psql used in place of monitor in administration shell scripts.
 | 
						|
          monitor to be depreciated in next release.
 | 
						|
        * date/time functions enhanced
 | 
						|
        * NULL insert/update/comparison fixed/enhanced
 | 
						|
        * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and 
 | 
						|
       tcl7.5/tk4.1
 | 
						|
 | 
						|
       Bug Fixes (almost too numerous to mention)
 | 
						|
        * indexes
 | 
						|
        * storage management
 | 
						|
        * check for NULL pointer before dereferencing
 | 
						|
        * Makefile fixes
 | 
						|
 | 
						|
       New Ports
 | 
						|
        * added SolarisX86 port
 | 
						|
        * added BSDI 2.1 port
 | 
						|
        * added DGUX port
 | 
						|
 | 
						|
Release v1.01
 | 
						|
 | 
						|
Migration from v1.0 to v1.01
 | 
						|
 | 
						|
       The following notes are for the benefit of users who want to migrate 
 | 
						|
       databases from postgres95 1.0 to postgres95 1.01. 
 | 
						|
       If you are starting afresh with postgres95 1.01 and do not need to 
 | 
						|
       migrate old databases, you do not need to read any further.
 | 
						|
       In order to postgres95 version 1.01 with databases created with 
 | 
						|
       postgres95 version 1.0, the following steps are required: 
 | 
						|
 | 
						|
       1. Set the definition of NAMEDATALEN in src/Makefile.global to 16 
 | 
						|
         and OIDNAMELEN to 20.
 | 
						|
       2. Decide whether you want to use Host based authentication. 
 | 
						|
            a. If you do, you must create a file name "pg_hba" in your 
 | 
						|
              top-level data directory (typically the value of your 
 | 
						|
              $PGDATA). src/libpq/pg_hba shows an example syntax.
 | 
						|
            b. If you do not want host-based authentication, you can 
 | 
						|
              comment out the line 
 | 
						|
                      HBA = 1
 | 
						|
               in src/Makefile.global
 | 
						|
               Note that host-based authentication is turned on by 
 | 
						|
              default, and if you do not take steps A or B above, the 
 | 
						|
              out-of-the-box 1.01 will not allow you to connect to 1.0 
 | 
						|
              databases.
 | 
						|
       3. Compile and install 1.01, but DO NOT do the initdb step.
 | 
						|
       4. Before doing anything else, terminate your 1.0 postmaster, and 
 | 
						|
         backup your existing $PGDATA directory. 
 | 
						|
       5. Set your PGDATA environment variable to your 1.0 databases, but 
 | 
						|
         set up path up so that 1.01 binaries are being used.
 | 
						|
       6. Modify the file $PGDATA/PG_VERSION from 5.0 to 5.1
 | 
						|
       7. Start up a new 1.01 postmaster
 | 
						|
       8. Add the new built-in functions and operators of 1.01 to 1.0 
 | 
						|
         databases. This is done by running the new 1.01 server against 
 | 
						|
         your own 1.0 database and applying the queries attached and 
 | 
						|
         saving in the file 1.0_to_1.01.sql. This can be done easily 
 | 
						|
         through psql. If your 1.0 database is name "testdb": 
 | 
						|
              % psql testdb -f 1.0_to_1.01.sql
 | 
						|
         and then execute the following commands (cut and paste from 
 | 
						|
         here): 
 | 
						|
         -- add builtin functions that are new to 1.01
 | 
						|
 | 
						|
         create function int4eqoid (int4, oid) returns bool as 'foo'
 | 
						|
         language 'internal';
 | 
						|
         create function oideqint4 (oid, int4) returns bool as 'foo'
 | 
						|
         language 'internal';
 | 
						|
         create function char2icregexeq (char2, text) returns bool as 
 | 
						|
         'foo'
 | 
						|
         language 'internal';
 | 
						|
         create function char2icregexne (char2, text) returns bool as 
 | 
						|
         'foo'
 | 
						|
         language 'internal';
 | 
						|
         create function char4icregexeq (char4, text) returns bool as 
 | 
						|
         'foo'
 | 
						|
         language 'internal';
 | 
						|
         create function char4icregexne (char4, text) returns bool as 
 | 
						|
         'foo'
 | 
						|
         language 'internal';
 | 
						|
         create function char8icregexeq (char8, text) returns bool as 
 | 
						|
         'foo'
 | 
						|
         language 'internal';
 | 
						|
         create function char8icregexne (char8, text) returns bool as 
 | 
						|
         'foo'
 | 
						|
         language 'internal';
 | 
						|
         create function char16icregexeq (char16, text) returns bool as 
 | 
						|
         'foo'
 | 
						|
         language 'internal';
 | 
						|
         create function char16icregexne (char16, text) returns bool as 
 | 
						|
         'foo'
 | 
						|
         language 'internal';
 | 
						|
         create function texticregexeq (text, text) returns bool as 'foo'
 | 
						|
         language 'internal';
 | 
						|
         create function texticregexne (text, text) returns bool as 'foo'
 | 
						|
         language 'internal';
 | 
						|
 | 
						|
         -- add builtin functions that are new to 1.01
 | 
						|
 | 
						|
         create operator = (leftarg = int4, rightarg = oid, procedure = 
 | 
						|
         int4eqoid);
 | 
						|
         create operator = (leftarg = oid, rightarg = int4, procedure = 
 | 
						|
         oideqint4);
 | 
						|
         create operator ~* (leftarg = char2, rightarg = text, procedure = 
 | 
						|
         char2icregexeq);
 | 
						|
         create operator !~* (leftarg = char2, rightarg = text, procedure 
 | 
						|
         = char2icregexne);
 | 
						|
         create operator ~* (leftarg = char4, rightarg = text, procedure = 
 | 
						|
         char4icregexeq);
 | 
						|
         create operator !~* (leftarg = char4, rightarg = text, procedure 
 | 
						|
         = char4icregexne);
 | 
						|
         create operator ~* (leftarg = char8, rightarg = text, procedure = 
 | 
						|
         char8icregexeq);
 | 
						|
         create operator !~* (leftarg = char8, rightarg = text, procedure 
 | 
						|
         = char8icregexne);
 | 
						|
         create operator ~* (leftarg = char16, rightarg = text, procedure 
 | 
						|
         = char16icregexeq);
 | 
						|
         create operator !~* (leftarg = char16, rightarg = text, procedure 
 | 
						|
         = char16icregexne);
 | 
						|
         create operator ~* (leftarg = text, rightarg = text, procedure = 
 | 
						|
         texticregexeq);
 | 
						|
         create operator !~* (leftarg = text, rightarg = text, procedure = 
 | 
						|
         texticregexne);
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Incompatibilities:
 | 
						|
        * 1.01 is backwards compatible with 1.0 database provided the user
 | 
						|
          follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
 | 
						|
          If those steps are not taken, 1.01 is not compatible with 1.0 
 | 
						|
       database.
 | 
						|
 | 
						|
       Enhancements:
 | 
						|
        * added PQdisplayTuples() to libpq and changed monitor and psql to 
 | 
						|
       use it
 | 
						|
        * added NeXT port (requires SysVIPC implementation)
 | 
						|
        * added CAST .. AS ... syntax
 | 
						|
        * added ASC and DESC keywords
 | 
						|
        * added 'internal' as a possible language for CREATE FUNCTION
 | 
						|
          internal functions are C functions which have been statically 
 | 
						|
       linked
 | 
						|
          into the postgres backend.
 | 
						|
        * a new type "name" has been added for system identifiers (table 
 | 
						|
       names,
 | 
						|
          attribute names, etc.)  This replaces the old char16 type.   The
 | 
						|
          of name is set by the NAMEDATALEN #define in src/Makefile.global
 | 
						|
        * a readable reference manual that describes the query language.
 | 
						|
        * added host-based access control.  A configuration file 
 | 
						|
       ($PGDATA/pg_hba)
 | 
						|
          is used to hold the configuration data.  If host-based access 
 | 
						|
       control
 | 
						|
          is not desired, comment out HBA=1 in src/Makefile.global.
 | 
						|
        * changed regex handling to be uniform use of Henry Spencer's regex 
 | 
						|
       code
 | 
						|
          regardless of platform.  The regex code is included in the 
 | 
						|
       distribution
 | 
						|
        * added functions and operators for case-insensitive regular 
 | 
						|
       expressions. 
 | 
						|
          The operators are ~* and !~*.
 | 
						|
        * pg_dump uses COPY instead of SELECT loop for better performance
 | 
						|
 | 
						|
       Bug fixes:
 | 
						|
        * fixed an optimizer bug that was causing core dumps when 
 | 
						|
          functions calls were used in comparisons in the WHERE clause
 | 
						|
        * changed all uses of getuid to geteuid so that effective uids are 
 | 
						|
       used
 | 
						|
        * psql now returns non-zero status on errors when using -c
 | 
						|
        * applied public patches 1-14
 | 
						|
 | 
						|
Release v1.0
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Copyright change:
 | 
						|
        * The copyright of Postgres 1.0 has been loosened to be freely 
 | 
						|
       modifiable
 | 
						|
          and modifiable for any purpose.  Please read the COPYRIGHT file.
 | 
						|
          Thanks to Professor Michael Stonebraker for making this possible.
 | 
						|
 | 
						|
       Incompatibilities:
 | 
						|
        *  date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're 
 | 
						|
       using
 | 
						|
          EUROPEAN STYLE).  This follows SQL-92 specs.
 | 
						|
        *  "delimiters" is now a keyword
 | 
						|
 | 
						|
       Enhancements:
 | 
						|
        *  sql LIKE syntax has been added
 | 
						|
        *  copy command now takes an optional USING DELIMITER 
 | 
						|
       specification.
 | 
						|
          delimiters can be any single-character string. 
 | 
						|
        *  IRIX 5.3 port has been added.
 | 
						|
          Thanks to Paul Walmsley and others.
 | 
						|
        *  updated pg_dump to work with new libpq
 | 
						|
        *  \d has been added psql 
 | 
						|
          Thanks to Keith Parks
 | 
						|
        *  regexp performance for architectures that use POSIX regex has 
 | 
						|
       been
 | 
						|
          improved due to caching of precompiled patterns.
 | 
						|
          Thanks to Alistair Crooks
 | 
						|
        *  a new version of libpq++
 | 
						|
          Thanks to William Wanders
 | 
						|
 | 
						|
       Bug fixes:
 | 
						|
        *  arbitrary userids can be specified in the createuser script
 | 
						|
        *  \c to connect to other databases in psql now works.
 | 
						|
        *  bad pg_proc entry for float4inc() is fixed
 | 
						|
        *  users with usecreatedb field set can now create databases 
 | 
						|
       without
 | 
						|
          having to be usesuper
 | 
						|
        *  remove access control entries when the entry no longer has any
 | 
						|
          permissions
 | 
						|
        *  fixed non-portable datetimes implementation
 | 
						|
        *  added kerberos flags to the src/backend/Makefile
 | 
						|
        *  libpq now works with kerberos
 | 
						|
        *  typographic errors in the user manual have been corrected.
 | 
						|
        *  btrees with multiple index never worked, now we tell you they 
 | 
						|
       don't
 | 
						|
          work when you try to use them
 | 
						|
 | 
						|
Postgres95 Beta 0.03
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Incompatible changes:
 | 
						|
        * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS 
 | 
						|
       VERSIONS
 | 
						|
          (due to system catalog changes and indexing structure changes).
 | 
						|
        * double-quote (") is deprecated as a quoting character for string 
 | 
						|
       literals;
 | 
						|
          you need to convert them to single quotes (').
 | 
						|
        * name of aggregates (eg. int4sum) are renamed in accordance with 
 | 
						|
       the
 | 
						|
          SQL standard (eg. sum).
 | 
						|
        * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
 | 
						|
        * float literals (eg. 3.14) are now of type float4 (instead of 
 | 
						|
       float8 in
 | 
						|
          previous releases); you might have to do typecasting if you 
 | 
						|
       depend on it
 | 
						|
          being of type float8.  If you neglect to do the typecasting and 
 | 
						|
       you assign
 | 
						|
          a float literal to a field of type float8, you may get incorrect 
 | 
						|
       values
 | 
						|
          stored!
 | 
						|
        * LIBPQ has been totally revamped so that frontend applications
 | 
						|
          can connect to multiple backends
 | 
						|
        * the usesysid field in pg_user has been changed from int2 to int4 
 | 
						|
       to
 | 
						|
          allow wider range of Unix user ids.
 | 
						|
        * the netbsd/freebsd/bsd o/s ports have been consolidated into a
 | 
						|
          single BSD44_derived port.  (thanks to Alistair Crooks)
 | 
						|
 | 
						|
       SQL standard-compliance (the following details changes that makes 
 | 
						|
       postgres95
 | 
						|
       more compliant to the SQL-92 standard):
 | 
						|
        * the following SQL types are now built-in: smallint, int(eger), 
 | 
						|
       float, real,
 | 
						|
          char(N), varchar(N), date and time.
 | 
						|
 | 
						|
          The following are aliases to existing postgres types:
 | 
						|
                       smallint -> int2
 | 
						|
                       integer, int -> int4
 | 
						|
                       float, real  -> float4
 | 
						|
          char(N) and varchar(N) are implemented as truncated text types. 
 | 
						|
       In
 | 
						|
          addition, char(N) does blank-padding. 
 | 
						|
        * single-quote (') is used for quoting string literals; '' (in 
 | 
						|
       addition to
 | 
						|
          \') is supported as means of inserting a single quote in a string
 | 
						|
        * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used
 | 
						|
          (Also, aggregates can now be overloaded, i.e. you can define your
 | 
						|
          own MAX aggregate to take in a user-defined type.)
 | 
						|
        * CHANGE ACL removed. GRANT/REVOKE syntax added.  
 | 
						|
          - Privileges can be given to a group using the "GROUP" keyword.
 | 
						|
               For example:
 | 
						|
                       GRANT SELECT ON foobar TO GROUP my_group;
 | 
						|
               The keyword 'PUBLIC' is also supported to mean all users.       
 | 
						|
 | 
						|
               Privileges can only be granted or revoked to one user or 
 | 
						|
       group
 | 
						|
               at a time.  
 | 
						|
 | 
						|
               "WITH GRANT OPTION" is not supported.  Only class owners can 
 | 
						|
       change
 | 
						|
               access control
 | 
						|
          - The default access control is to to grant users readonly 
 | 
						|
       access.
 | 
						|
            You must explicitly grant insert/update access to users.  To 
 | 
						|
       change
 | 
						|
            this, modify the line in 
 | 
						|
                       src/backend/utils/acl.h 
 | 
						|
            that defines ACL_WORLD_DEFAULT 
 | 
						|
 | 
						|
       Bug fixes:
 | 
						|
        * the bug where aggregates of empty tables were not run has been 
 | 
						|
       fixed. Now,
 | 
						|
          aggregates run on empty tables will return the initial conditions 
 | 
						|
       of the
 | 
						|
          aggregates. Thus, COUNT of an empty  table will now properly 
 | 
						|
       return 0.
 | 
						|
          MAX/MIN of an empty table will return a tuple of value NULL. 
 | 
						|
        * allow the use of \; inside the monitor
 | 
						|
        * the LISTEN/NOTIFY asynchronous notification mechanism now work
 | 
						|
        * NOTIFY in rule action bodies now work
 | 
						|
        * hash indices work, and access methods in general should perform 
 | 
						|
       better.
 | 
						|
          creation of large btree indices should be much faster.  (thanks 
 | 
						|
       to Paul
 | 
						|
          Aoki)
 | 
						|
 | 
						|
       Other changes and enhancements:
 | 
						|
        * addition of an EXPLAIN statement used for explaining the query 
 | 
						|
       execution
 | 
						|
          plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution 
 | 
						|
       plan for
 | 
						|
          the query).
 | 
						|
        * WARN and NOTICE messages no longer have timestamps on them. To 
 | 
						|
       turn on
 | 
						|
          timestamps of error messages, uncomment the line in
 | 
						|
          src/backend/utils/elog.h:
 | 
						|
               /* define ELOG_TIMESTAMPS */ 
 | 
						|
        * On an access control violation, the message
 | 
						|
               "Either no such class or insufficient privilege"
 | 
						|
          will be given.  This is the same message that is returned when
 | 
						|
          a class is not found.  This dissuades non-privileged users from
 | 
						|
          guessing the existence of privileged classes.
 | 
						|
        * some additional system catalog changes have been made that are 
 | 
						|
       not
 | 
						|
          visible to the user.
 | 
						|
 | 
						|
       libpgtcl changes:
 | 
						|
        * The -oid option has been added to the "pg_result" tcl command.
 | 
						|
          pg_result -oid returns oid of the last tuple inserted.   If the
 | 
						|
          last command was not an INSERT, then pg_result -oid returns "".
 | 
						|
        * the large object interface is available as pg_lo* tcl commands:
 | 
						|
          pg_lo_open, pg_lo_close, pg_lo_creat, etc.
 | 
						|
 | 
						|
       Portability enhancements and New Ports:
 | 
						|
        * flex/lex problems have been cleared up.  Now, you should be able 
 | 
						|
       to use
 | 
						|
          flex instead of lex on any platforms.  We no longer make 
 | 
						|
       assumptions of
 | 
						|
          what lexer you use based on the platform you use. 
 | 
						|
        * The Linux-ELF port is now supported.  Various configuration have 
 | 
						|
       been 
 | 
						|
          tested:  The following configuration is known to work:
 | 
						|
               kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
 | 
						|
          with everything in ELF format,
 | 
						|
 | 
						|
       New utilities:
 | 
						|
        * ipcclean added to the distribution
 | 
						|
          ipcclean usually does not need to be run, but if your backend 
 | 
						|
       crashes
 | 
						|
          and leaves shared memory segments hanging around, ipcclean will
 | 
						|
          clean them up for you.
 | 
						|
 | 
						|
       New documentation:
 | 
						|
        * the user manual has been revised and libpq documentation added.
 | 
						|
 | 
						|
Postgres95 Beta 0.02
 | 
						|
 | 
						|
Detailed Change List
 | 
						|
 | 
						|
       Incompatible changes:
 | 
						|
        * The SQL statement for creating a database is 'CREATE DATABASE' 
 | 
						|
       instead
 | 
						|
          of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' 
 | 
						|
       instead
 | 
						|
          of 'DESTROYDB'. However, the names of the executables 'createdb' 
 | 
						|
       and 
 | 
						|
          'destroydb' remain the same.
 | 
						|
        
 | 
						|
       New tools:
 | 
						|
        * pgperl - a Perl (4.036) interface to Postgres95
 | 
						|
        * pg_dump - a utility for dumping out a postgres database into a
 | 
						|
               script file containing query commands. The script files are 
 | 
						|
       in a ASCII
 | 
						|
               format and can be used to reconstruct the database, even on 
 | 
						|
       other
 | 
						|
               machines and other architectures. (Also good for converting
 | 
						|
               a Postgres 4.2 database to Postgres95 database.)
 | 
						|
 | 
						|
       The following ports have been incorporated into 
 | 
						|
       postgres95-beta-0.02:
 | 
						|
        * the NetBSD port by Alistair Crooks
 | 
						|
        * the AIX port by Mike Tung
 | 
						|
        * the Windows NT port by Jon Forrest (more stuff but not done yet)
 | 
						|
        * the Linux ELF port by Brian Gallew
 | 
						|
 | 
						|
       The following bugs have been fixed in postgres95-beta-0.02:
 | 
						|
        * new lines not escaped in COPY OUT and problem with COPY OUT when 
 | 
						|
       first
 | 
						|
          attribute is a '.' 
 | 
						|
        * cannot type return to use the default user id in createuser
 | 
						|
        * SELECT DISTINCT on big tables crashes
 | 
						|
        * Linux installation problems
 | 
						|
        * monitor doesn't allow use of 'localhost' as PGHOST
 | 
						|
        * psql core dumps when doing \c or \l
 | 
						|
        * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
 | 
						|
        * libpgtcl has a hard-wired default port number
 | 
						|
        * SELECT DISTINCT INTO TABLE hangs
 | 
						|
        * CREATE TYPE doesn't accept 'variable' as the internallength
 | 
						|
        * wrong result using more than 1 aggregate in a SELECT
 | 
						|
 | 
						|
Postgres95 Beta 0.01
 | 
						|
 | 
						|
       Initial release.
 | 
						|
 |