mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			4960 lines
		
	
	
		
			229 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			4960 lines
		
	
	
		
			229 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						||
                               Release Notes
 | 
						||
                                      
 | 
						||
                                Release 7.4
 | 
						||
                                      
 | 
						||
     Release date: 2003-11-17
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Overview
 | 
						||
                                      
 | 
						||
   Major changes in this release:
 | 
						||
   
 | 
						||
   IN / NOT IN subqueries are now much more efficient
 | 
						||
          In previous releases, IN/NOT IN subqueries were joined to the
 | 
						||
          upper query by sequentially scanning the subquery looking for a
 | 
						||
          match. The 7.4 code uses the same sophisticated techniques used
 | 
						||
          by ordinary joins and so is much faster. An IN will now usually
 | 
						||
          be as fast as or faster than an equivalent EXISTS subquery;
 | 
						||
          this reverses the conventional wisdom that applied to previous
 | 
						||
          releases.
 | 
						||
          
 | 
						||
   Improved GROUP BY processing by using hash buckets
 | 
						||
          In previous releases, rows to be grouped had to be sorted
 | 
						||
          first. The 7.4 code can do GROUP BY without sorting, by
 | 
						||
          accumulating results into a hash table with one entry per
 | 
						||
          group. It will still use the sort technique, however, if the
 | 
						||
          hash table is estimated to be too large to fit in sort_mem.
 | 
						||
          
 | 
						||
   New multikey hash join capability
 | 
						||
          In previous releases, hash joins could only occur on single
 | 
						||
          keys. This release allows multicolumn hash joins.
 | 
						||
          
 | 
						||
   Queries using the explicit JOIN syntax are now better optimized
 | 
						||
          Prior releases evaluated queries using the explicit JOIN syntax
 | 
						||
          only in the order implied by the syntax. 7.4 allows full
 | 
						||
          optimization of these queries, meaning the optimizer considers
 | 
						||
          all possible join orderings and chooses the most efficient.
 | 
						||
          Outer joins, however, must still follow the declared ordering.
 | 
						||
          
 | 
						||
   Faster and more powerful regular expression code
 | 
						||
          The entire regular expression module has been replaced with a
 | 
						||
          new version by Henry Spencer, originally written for Tcl. The
 | 
						||
          code greatly improves performance and supports several flavors
 | 
						||
          of regular expressions.
 | 
						||
          
 | 
						||
   Function-inlining for simple SQL functions
 | 
						||
          Simple SQL functions can now be inlined by including their SQL
 | 
						||
          in the main query. This improves performance by eliminating
 | 
						||
          per-call overhead. That means simple SQL functions now behave
 | 
						||
          like macros.
 | 
						||
          
 | 
						||
   Full support for IPv6 connections and IPv6 address data types
 | 
						||
          Previous releases allowed only IPv4 connections, and the IP
 | 
						||
          data types only supported IPv4 addresses. This release adds
 | 
						||
          full IPv6 support in both of these areas.
 | 
						||
          
 | 
						||
   Major improvements in SSL performance and reliability
 | 
						||
          Several people very familiar with the SSL API have overhauled
 | 
						||
          our SSL code to improve SSL key negotiation and error recovery.
 | 
						||
          
 | 
						||
   Make free space map efficiently reuse empty index pages, and other
 | 
						||
          free space management improvements
 | 
						||
          In previous releases, B-tree index pages that were left empty
 | 
						||
          because of deleted rows could only be reused by rows with index
 | 
						||
          values similar to the rows originally indexed on that page. In
 | 
						||
          7.4, "VACUUM" records empty index pages and allows them to be
 | 
						||
          reused for any future index rows.
 | 
						||
          
 | 
						||
   SQL-standard information schema
 | 
						||
          The information schema provides a standardized and stable way
 | 
						||
          to access information about the schema objects defined in a
 | 
						||
          database.
 | 
						||
          
 | 
						||
   Cursors conform more closely to the SQL standard
 | 
						||
          The commands "FETCH" and "MOVE" have been overhauled to conform
 | 
						||
          more closely to the SQL standard.
 | 
						||
          
 | 
						||
   Cursors can exist outside transactions
 | 
						||
          These cursors are also called holdable cursors.
 | 
						||
          
 | 
						||
   New client-to-server protocol
 | 
						||
          The new protocol adds error codes, more status information,
 | 
						||
          faster startup, better support for binary data transmission,
 | 
						||
          parameter values separated from SQL commands, prepared
 | 
						||
          statements available at the protocol level, and cleaner
 | 
						||
          recovery from "COPY" failures. The older protocol is still
 | 
						||
          supported by both server and clients.
 | 
						||
          
 | 
						||
   libpq and ECPG applications are now fully thread-safe
 | 
						||
          While previous libpq releases already supported threads, this
 | 
						||
          release improves thread safety by fixing some non-thread-safe
 | 
						||
          code that was used during database connection startup. The
 | 
						||
          "configure" option "--enable-thread-safety" must be used to
 | 
						||
          enable this feature.
 | 
						||
          
 | 
						||
   New version of full-text indexing
 | 
						||
          A new full-text indexing suite is available in
 | 
						||
          "contrib/tsearch2".
 | 
						||
          
 | 
						||
   New autovacuum tool
 | 
						||
          The new autovacuum tool in "contrib/autovacuum" monitors the
 | 
						||
          database statistics tables for "INSERT"/"UPDATE"/"DELETE"
 | 
						||
          activity and automatically vacuums tables when needed.
 | 
						||
          
 | 
						||
   Array handling has been improved and moved into the server core
 | 
						||
          Many array limitations have been removed, and arrays behave
 | 
						||
          more like fully-supported data types.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                          Migration to version 7.4
 | 
						||
                                      
 | 
						||
   A dump/restore using pg_dump is required for those wishing to migrate
 | 
						||
   data from any previous release.
 | 
						||
   
 | 
						||
   Observe the following incompatibilities:
 | 
						||
   
 | 
						||
     * The server-side autocommit setting was removed and reimplemented
 | 
						||
       in client applications and languages. Server-side autocommit was
 | 
						||
       causing too many problems with languages and applications that
 | 
						||
       wanted to control their own autocommit behavior, so autocommit was
 | 
						||
       removed from the server and added to individual client APIs as
 | 
						||
       appropriate.
 | 
						||
     * Error message wording has changed substantially in this release.
 | 
						||
       Significant effort was invested to make the messages more
 | 
						||
       consistent and user-oriented. If your applications try to detect
 | 
						||
       different error conditions by parsing the error message, you are
 | 
						||
       strongly encouraged to use the new error code facility instead.
 | 
						||
     * Inner joins using the explicit JOIN syntax may behave differently
 | 
						||
       because they are now better optimized.
 | 
						||
     * A number of server configuration parameters have been renamed for
 | 
						||
       clarity, primarily those related to logging.
 | 
						||
     * FETCH 0 or MOVE 0 now does nothing. In prior releases, FETCH 0
 | 
						||
       would fetch all remaining rows, and MOVE 0 would move to the end
 | 
						||
       of the cursor.
 | 
						||
     * "FETCH" and "MOVE" now return the actual number of rows
 | 
						||
       fetched/moved, or zero if at the beginning/end of the cursor.
 | 
						||
       Prior releases would return the row count passed to the command,
 | 
						||
       not the number of rows actually fetched or moved.
 | 
						||
     * "COPY" now can process files that use carriage-return or
 | 
						||
       carriage-return/line-feed end-of-line sequences. Literal
 | 
						||
       carriage-returns and line-feeds are no longer accepted in data
 | 
						||
       values; use \r and \n instead.
 | 
						||
     * Trailing spaces are now trimmed when converting from type char(n)
 | 
						||
       to varchar(n) or text. This is what most people always expected to
 | 
						||
       happen anyway.
 | 
						||
     * The data type float(p) now measures "p" in binary digits, not
 | 
						||
       decimal digits. The new behavior follows the SQL standard.
 | 
						||
     * Ambiguous date values now must match the ordering specified by the
 | 
						||
       datestyle setting. In prior releases, a date specification of
 | 
						||
       10/20/03 was interpreted as a date in October even if datestyle
 | 
						||
       specified that the day should be first. 7.4 will throw an error if
 | 
						||
       a date specification is invalid for the current setting of
 | 
						||
       datestyle.
 | 
						||
     * The functions oidrand, oidsrand, and userfntest have been removed.
 | 
						||
       These functions were determined to be no longer useful.
 | 
						||
     * String literals specifying time-varying date/time values, such as
 | 
						||
       'now' or 'today' will no longer work as expected in column default
 | 
						||
       expressions; they now cause the time of the table creation to be
 | 
						||
       the default, not the time of the insertion. Functions such as
 | 
						||
       now(), current_timestamp, or current_date should be used instead.
 | 
						||
       In previous releases, there was special code so that strings such
 | 
						||
       as 'now' were interpreted at "INSERT" time and not at table
 | 
						||
       creation time, but this work around didn't cover all cases.
 | 
						||
       Release 7.4 now requires that defaults be defined properly using
 | 
						||
       functions such as now() or current_timestamp. These will work in
 | 
						||
       all situations.
 | 
						||
     * The dollar sign ($) is no longer allowed in operator names. It can
 | 
						||
       instead be a non-first character in identifiers. This was done to
 | 
						||
       improve compatibility with other database systems, and to avoid
 | 
						||
       syntax problems when parameter placeholders ($n) are written
 | 
						||
       adjacent to operators.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
   Below you will find a detailed account of the changes between release
 | 
						||
   7.4 and the previous major release.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Server Operation Changes
 | 
						||
 | 
						||
     * Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce,
 | 
						||
       Tom, Kurt Roeckx, Andrew Dunstan)
 | 
						||
     * Fix SSL to handle errors cleanly (Nathan Mueller)
 | 
						||
       In prior releases, certain SSL API error reports were not handled
 | 
						||
       correctly. This release fixes those problems.
 | 
						||
     * SSL protocol security and performance improvements (Sean
 | 
						||
       Chittenden)
 | 
						||
       SSL key renegotiation was happening too frequently, causing poor
 | 
						||
       SSL performance. Also, initial key handling was improved.
 | 
						||
     * Print lock information when a deadlock is detected (Tom)
 | 
						||
       This allows easier debugging of deadlock situations.
 | 
						||
     * Update "/tmp" socket modification times regularly to avoid their
 | 
						||
       removal (Tom)
 | 
						||
       This should help prevent "/tmp" directory cleaner administration
 | 
						||
       scripts from removing server socket files.
 | 
						||
     * Enable PAM for Mac OS X (Aaron Hillegass)
 | 
						||
     * Make B-tree indexes fully WAL-safe (Tom)
 | 
						||
       In prior releases, under certain rare cases, a server crash could
 | 
						||
       cause B-tree indexes to become corrupt. This release removes those
 | 
						||
       last few rare cases.
 | 
						||
     * Allow B-tree index compaction and empty page reuse (Tom)
 | 
						||
     * Fix inconsistent index lookups during split of first root page
 | 
						||
       (Tom)
 | 
						||
       In prior releases, when a single-page index split into two pages,
 | 
						||
       there was a brief period when another database session could miss
 | 
						||
       seeing an index entry. This release fixes that rare failure case.
 | 
						||
     * Improve free space map allocation logic (Tom)
 | 
						||
     * Preserve free space information between server restarts (Tom)
 | 
						||
       In prior releases, the free space map was not saved when the
 | 
						||
       postmaster was stopped, so newly started servers had no free space
 | 
						||
       information. This release saves the free space map, and reloads it
 | 
						||
       when the server is restarted.
 | 
						||
     * Add start time to pg_stat_activity (Neil)
 | 
						||
     * New code to detect corrupt disk pages; erase with
 | 
						||
       zero_damaged_pages (Tom)
 | 
						||
     * New client/server protocol: faster, no username length limit,
 | 
						||
       allow clean exit from "COPY" (Tom)
 | 
						||
     * Add transaction status, table ID, column ID to client/server
 | 
						||
       protocol (Tom)
 | 
						||
     * Add binary I/O to client/server protocol (Tom)
 | 
						||
     * Remove autocommit server setting; move to client applications
 | 
						||
       (Tom)
 | 
						||
     * New error message wording, error codes, and three levels of error
 | 
						||
       detail (Tom, Joe, Peter)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Performance Improvements
 | 
						||
 | 
						||
     * Add hashing for GROUP BY aggregates (Tom)
 | 
						||
     * Make nested-loop joins be smarter about multicolumn indexes (Tom)
 | 
						||
     * Allow multikey hash joins (Tom)
 | 
						||
     * Improve constant folding (Tom)
 | 
						||
     * Add ability to inline simple SQL functions (Tom)
 | 
						||
     * Reduce memory usage for queries using complex functions (Tom)
 | 
						||
       In prior releases, functions returning allocated memory would not
 | 
						||
       free it until the query completed. This release allows the freeing
 | 
						||
       of function-allocated memory when the function call completes,
 | 
						||
       reducing the total memory used by functions.
 | 
						||
     * Improve GEQO optimizer performance (Tom)
 | 
						||
       This release fixes several inefficiencies in the way the GEQO
 | 
						||
       optimizer manages potential query paths.
 | 
						||
     * Allow IN/NOT IN to be handled via hash tables (Tom)
 | 
						||
     * Improve NOT IN (subquery) performance (Tom)
 | 
						||
     * Allow most IN subqueries to be processed as joins (Tom)
 | 
						||
     * Pattern matching operations can use indexes regardless of locale
 | 
						||
       (Peter)
 | 
						||
       There is no way for non-ASCII locales to use the standard indexes
 | 
						||
       for LIKE comparisons. This release adds a way to create a special
 | 
						||
       index for LIKE.
 | 
						||
     * Allow the postmaster to preload libraries using preload_libraries
 | 
						||
       (Joe)
 | 
						||
       For shared libraries that require a long time to load, this option
 | 
						||
       is available so the library can be preloaded in the postmaster and
 | 
						||
       inherited by all database sessions.
 | 
						||
     * Improve optimizer cost computations, particularly for subqueries
 | 
						||
       (Tom)
 | 
						||
     * Avoid sort when subquery ORDER BY matches upper query (Tom)
 | 
						||
     * Deduce that WHERE a.x = b.y AND b.y = 42 also means a.x = 42 (Tom)
 | 
						||
     * Allow hash/merge joins on complex joins (Tom)
 | 
						||
     * Allow hash joins for more data types (Tom)
 | 
						||
     * Allow join optimization of explicit inner joins, disable with
 | 
						||
       join_collapse_limit (Tom)
 | 
						||
     * Add parameter from_collapse_limit to control conversion of
 | 
						||
       subqueries to joins (Tom)
 | 
						||
     * Use faster and more powerful regular expression code from Tcl
 | 
						||
       (Henry Spencer, Tom)
 | 
						||
     * Use bit-mapped relation sets in the optimizer (Tom)
 | 
						||
     * Improve connection startup time (Tom)
 | 
						||
       The new client/server protocol requires fewer network packets to
 | 
						||
       start a database session.
 | 
						||
     * Improve trigger/constraint performance (Stephan)
 | 
						||
     * Improve speed of col IN (const, const, const, ...) (Tom)
 | 
						||
     * Fix hash indexes which were broken in rare cases (Tom)
 | 
						||
     * Improve hash index concurrency and speed (Tom)
 | 
						||
       Prior releases suffered from poor hash index performance,
 | 
						||
       particularly for high concurrency situations. This release fixes
 | 
						||
       that, and the development group is interested in reports comparing
 | 
						||
       B-tree and hash index performance.
 | 
						||
     * Align shared buffers on 32-byte boundary for copy speed
 | 
						||
       improvement (Manfred Spraul)
 | 
						||
       Certain CPU's perform faster data copies when addresses are
 | 
						||
       32-byte aligned.
 | 
						||
     * Data type numeric reimplemented for better performance (Tom)
 | 
						||
       numeric used to be stored in base 100. The new code uses base
 | 
						||
       10000, for significantly better performance.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Server Configuration Changes
 | 
						||
 | 
						||
     * Rename server parameter server_min_messages to log_min_messages
 | 
						||
       (Bruce)
 | 
						||
       This was done so most parameters that control the server logs
 | 
						||
       begin with log_.
 | 
						||
     * Rename show_*_stats to log_*_stats (Bruce)
 | 
						||
     * Rename show_source_port to log_source_port (Bruce)
 | 
						||
     * Rename hostname_lookup to log_hostname (Bruce)
 | 
						||
     * Add checkpoint_warning to warn of excessive checkpointing (Bruce)
 | 
						||
       In prior releases, it was difficult to determine if checkpoint was
 | 
						||
       happening too frequently. This feature adds a warning to the
 | 
						||
       server logs when excessive checkpointing happens.
 | 
						||
     * New read-only server parameters for localization (Tom)
 | 
						||
     * Change debug server log messages to output as DEBUG rather than
 | 
						||
       LOG (Bruce)
 | 
						||
     * Prevent server log variables from being turned off by
 | 
						||
       non-superusers (Bruce)
 | 
						||
       This is a security feature so non-superusers cannot disable
 | 
						||
       logging that was enabled by the administrator.
 | 
						||
     * log_min_messages/client_min_messages now controls debug_* output
 | 
						||
       (Bruce)
 | 
						||
       This centralizes client debug information so all debug output can
 | 
						||
       be sent to either the client or server logs.
 | 
						||
     * Add Mac OS X Rendezvous server support (Chris Campbell)
 | 
						||
       This allows Mac OS X hosts to query the network for available
 | 
						||
       PostgreSQL servers.
 | 
						||
     * Add ability to print only slow statements using
 | 
						||
       log_min_duration_statement (Christopher)
 | 
						||
       This is an often requested debugging feature that allows
 | 
						||
       administrators to see only slow queries in their server logs.
 | 
						||
     * Allow "pg_hba.conf" to accept netmasks in CIDR format (Andrew
 | 
						||
       Dunstan)
 | 
						||
       This allows administrators to merge the host IP address and
 | 
						||
       netmask fields into a single CIDR field in "pg_hba.conf".
 | 
						||
     * New read-only parameter is_superuser (Tom)
 | 
						||
     * New parameter log_error_verbosity to control error detail (Tom)
 | 
						||
       This works with the new error reporting feature to supply
 | 
						||
       additional error information like hints, file names and line
 | 
						||
       numbers.
 | 
						||
     * postgres --describe-config now dumps server config variables
 | 
						||
       (Aizaz Ahmed, Peter)
 | 
						||
       This option is useful for administration tools that need to know
 | 
						||
       the configuration variable names and their minimums, maximums,
 | 
						||
       defaults, and descriptions.
 | 
						||
     * Add new columns in pg_settings: context, type, source, min_val,
 | 
						||
       max_val (Joe)
 | 
						||
     * Make default shared_buffers 1000 and max_connections 100, if
 | 
						||
       possible (Tom)
 | 
						||
       Prior versions defaulted to 64 shared buffers so PostgreSQL would
 | 
						||
       start on even very old systems. This release tests the amount of
 | 
						||
       shared memory allowed by the platform and selects more reasonable
 | 
						||
       default values if possible. Of course, users are still encouraged
 | 
						||
       to evaluate their resource load and size shared_buffers
 | 
						||
       accordingly.
 | 
						||
     * New "pg_hba.conf" record type hostnossl to prevent SSL connections
 | 
						||
       (Jon Jensen)
 | 
						||
       In prior releases, there was no way to prevent SSL connections if
 | 
						||
       both the client and server supported SSL. This option allows that
 | 
						||
       capability.
 | 
						||
     * Remove parameter geqo_random_seed (Tom)
 | 
						||
     * Add server parameter regex_flavor to control regular expression
 | 
						||
       processing (Tom)
 | 
						||
     * Make "pg_ctl" better handle nonstandard ports (Greg)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Query Changes
 | 
						||
 | 
						||
     * New SQL-standard information schema (Peter)
 | 
						||
     * Add read-only transactions (Peter)
 | 
						||
     * Print key name and value in foreign-key violation messages (Dmitry
 | 
						||
       Tkach)
 | 
						||
     * Allow users to see their own queries in pg_stat_activity (Kevin
 | 
						||
       Brown)
 | 
						||
       In prior releases, only the superuser could see query strings
 | 
						||
       using pg_stat_activity. Now ordinary users can see their own query
 | 
						||
       strings.
 | 
						||
     * Fix aggregates in subqueries to match SQL standard (Tom)
 | 
						||
       The SQL standard says that an aggregate function appearing within
 | 
						||
       a nested subquery belongs to the outer query if its argument
 | 
						||
       contains only outer-query variables. Prior PostgreSQL releases did
 | 
						||
       not handle this fine point correctly.
 | 
						||
     * Add option to prevent auto-addition of tables referenced in query
 | 
						||
       (Nigel J. Andrews)
 | 
						||
       By default, tables mentioned in the query are automatically added
 | 
						||
       to the FROM clause if they are not already there. This is
 | 
						||
       compatible with historic POSTGRES behavior but is contrary to the
 | 
						||
       SQL standard. This option allows selecting standard-compatible
 | 
						||
       behavior.
 | 
						||
     * Allow UPDATE ... SET col = DEFAULT (Rod)
 | 
						||
       This allows "UPDATE" to set a column to its declared default
 | 
						||
       value.
 | 
						||
     * Allow expressions to be used in LIMIT/OFFSET (Tom)
 | 
						||
       In prior releases, LIMIT/OFFSET could only use constants, not
 | 
						||
       expressions.
 | 
						||
     * Implement CREATE TABLE AS EXECUTE (Neil, Peter)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Object Manipulation Changes
 | 
						||
 | 
						||
     * Make "CREATE SEQUENCE" grammar more conforming to SQL 2003 (Neil)
 | 
						||
     * Add statement-level triggers (Neil)
 | 
						||
       While this allows a trigger to fire at the end of a statement, it
 | 
						||
       does not allow the trigger to access all rows modified by the
 | 
						||
       statement. This capability is planned for a future release.
 | 
						||
     * Add check constraints for domains (Rod)
 | 
						||
       This greatly increases the usefulness of domains by allowing them
 | 
						||
       to use check constraints.
 | 
						||
     * Add "ALTER DOMAIN" (Rod)
 | 
						||
       This allows manipulation of existing domains.
 | 
						||
     * Fix several zero-column table bugs (Tom)
 | 
						||
       PostgreSQL supports zero-column tables. This fixes various bugs
 | 
						||
       that occur when using such tables.
 | 
						||
     * Have ALTER TABLE ... ADD PRIMARY KEY add not-null constraint (Rod)
 | 
						||
       In prior releases, ALTER TABLE ... ADD PRIMARY would add a unique
 | 
						||
       index, but not a not-null constraint. That is fixed in this
 | 
						||
       release.
 | 
						||
     * Add ALTER TABLE ... WITHOUT OIDS (Rod)
 | 
						||
       This allows control over whether new and updated rows will have an
 | 
						||
       OID column. This is most useful for saving storage space.
 | 
						||
     * Add ALTER SEQUENCE to modify minimum, maximum, increment, cache,
 | 
						||
       cycle values (Rod)
 | 
						||
     * Add ALTER TABLE ... CLUSTER ON (Alvaro Herrera)
 | 
						||
       This command is used by "pg_dump" to record the cluster column for
 | 
						||
       each table previously clustered. This information is used by
 | 
						||
       database-wide cluster to cluster all previously clustered tables.
 | 
						||
     * Improve automatic type casting for domains (Rod, Tom)
 | 
						||
     * Allow dollar signs in identifiers, except as first character (Tom)
 | 
						||
     * Disallow dollar signs in operator names, so x=$1 works (Tom)
 | 
						||
     * Allow copying table schema using LIKE subtable, also SQL 2003
 | 
						||
       feature INCLUDING DEFAULTS (Rod)
 | 
						||
     * Add WITH GRANT OPTION clause to "GRANT" (Peter)
 | 
						||
       This enabled "GRANT" to give other users the ability to grant
 | 
						||
       privileges on a object.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Utility Command Changes
 | 
						||
 | 
						||
     * Add ON COMMIT clause to "CREATE TABLE" for temporary tables
 | 
						||
       (Gavin)
 | 
						||
       This adds the ability for a table to be dropped or all rows
 | 
						||
       deleted on transaction commit.
 | 
						||
     * Allow cursors outside transactions using WITH HOLD (Neil)
 | 
						||
       In previous releases, cursors were removed at the end of the
 | 
						||
       transaction that created them. Cursors can now be created with the
 | 
						||
       WITH HOLD option, which allows them to continue to be accessed
 | 
						||
       after the creating transaction has committed.
 | 
						||
     * FETCH 0 and MOVE 0 now do nothing (Bruce)
 | 
						||
       In previous releases, FETCH 0 fetched all remaining rows, and MOVE
 | 
						||
       0 moved to the end of the cursor.
 | 
						||
     * Cause "FETCH" and "MOVE" to return the number of rows
 | 
						||
       fetched/moved, or zero if at the beginning/end of cursor, per SQL
 | 
						||
       standard (Bruce)
 | 
						||
       In prior releases, the row count returned by "FETCH" and "MOVE"
 | 
						||
       did not accurately reflect the number of rows processed.
 | 
						||
     * Properly handle SCROLL with cursors, or report an error (Neil)
 | 
						||
       Allowing random access (both forward and backward scrolling) to
 | 
						||
       some kinds of queries cannot be done without some additional work.
 | 
						||
       If SCROLL is specified when the cursor is created, this additional
 | 
						||
       work will be performed. Furthermore, if the cursor has been
 | 
						||
       created with NO SCROLL, no random access is allowed.
 | 
						||
     * Implement SQL-compatible options FIRST, LAST, ABSOLUTE n, RELATIVE
 | 
						||
       n for "FETCH" and "MOVE" (Tom)
 | 
						||
     * Allow "EXPLAIN" on "DECLARE CURSOR" (Tom)
 | 
						||
     * Allow "CLUSTER" to use index marked as pre-clustered by default
 | 
						||
       (Alvaro Herrera)
 | 
						||
     * Allow "CLUSTER" to cluster all tables (Alvaro Herrera)
 | 
						||
       This allows all previously clustered tables in a database to be
 | 
						||
       reclustered with a single command.
 | 
						||
     * Prevent "CLUSTER" on partial indexes (Tom)
 | 
						||
     * Allow DOS and Mac line-endings in "COPY" files (Bruce)
 | 
						||
     * Disallow literal carriage return as a data value,
 | 
						||
       backslash-carriage-return and \r are still allowed (Bruce)
 | 
						||
     * "COPY" changes (binary, \.) (Tom)
 | 
						||
     * Recover from "COPY" failure cleanly (Tom)
 | 
						||
     * Prevent possible memory leaks in "COPY" (Tom)
 | 
						||
     * Make "TRUNCATE" transaction-safe (Rod)
 | 
						||
       "TRUNCATE" can now be used inside a transaction. If the
 | 
						||
       transaction aborts, the changes made by the "TRUNCATE" are
 | 
						||
       automatically rolled back.
 | 
						||
     * Allow prepare/bind of utility commands like "FETCH" and "EXPLAIN"
 | 
						||
       (Tom)
 | 
						||
     * Add "EXPLAIN EXECUTE" (Neil)
 | 
						||
     * Improve "VACUUM" performance on indexes by reducing WAL traffic
 | 
						||
       (Tom)
 | 
						||
     * Functional indexes have been generalized into indexes on
 | 
						||
       expressions (Tom)
 | 
						||
       In prior releases, functional indexes only supported a simple
 | 
						||
       function applied to one or more column names. This release allows
 | 
						||
       any type of scalar expression.
 | 
						||
     * Have "SHOW TRANSACTION ISOLATION" match input to "SET TRANSACTION
 | 
						||
       ISOLATION" (Tom)
 | 
						||
     * Have "COMMENT ON DATABASE" on nonlocal database generate a warning
 | 
						||
       (Rod)
 | 
						||
       Database comments are stored in database-local tables so comments
 | 
						||
       on a database have to be stored in each database.
 | 
						||
     * Improve reliability of "LISTEN"/"NOTIFY" (Tom)
 | 
						||
     * Allow "REINDEX" to reliably reindex nonshared system catalog
 | 
						||
       indexes (Tom)
 | 
						||
       This allows system tables to be reindexed without the requirement
 | 
						||
       of a standalone session, which was necessary in previous releases.
 | 
						||
       The only tables that now require a standalone session for
 | 
						||
       reindexing are the global system tables pg_database, pg_shadow,
 | 
						||
       and pg_group.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Data Type and Function Changes
 | 
						||
 | 
						||
     * New server parameter extra_float_digits to control precision
 | 
						||
       display of floating-point numbers (Pedro Ferreira, Tom)
 | 
						||
       This controls output precision which was causing regression
 | 
						||
       testing problems.
 | 
						||
     * Allow +1300 as a numeric time-zone specifier, for FJST (Tom)
 | 
						||
     * Remove rarely used functions oidrand, oidsrand, and userfntest
 | 
						||
       functions (Neil)
 | 
						||
     * Add md5() function to main server, already in "contrib/pgcrypto"
 | 
						||
       (Joe)
 | 
						||
       An MD5 function was frequently requested. For more complex
 | 
						||
       encryption capabilities, use "contrib/pgcrypto".
 | 
						||
     * Increase date range of timestamp (John Cochran)
 | 
						||
     * Change EXTRACT(EPOCH FROM timestamp) so timestamp without time
 | 
						||
       zone is assumed to be in local time, not GMT (Tom)
 | 
						||
     * Trap division by zero in case the operating system doesn't prevent
 | 
						||
       it (Tom)
 | 
						||
     * Change the numeric data type internally to base 10000 (Tom)
 | 
						||
     * New hostmask() function (Greg Wickham)
 | 
						||
     * Fixes for to_char() and to_timestamp() (Karel)
 | 
						||
     * Allow functions that can take any argument data type and return
 | 
						||
       any data type, using anyelement and anyarray (Joe)
 | 
						||
       This allows the creation of functions that can work with any data
 | 
						||
       type.
 | 
						||
     * Arrays may now be specified as ARRAY[1,2,3],
 | 
						||
       ARRAY[['a','b'],['c','d']], or ARRAY[ARRAY[ARRAY[2]]] (Joe)
 | 
						||
     * Allow proper comparisons for arrays, including ORDER BY and
 | 
						||
       DISTINCT support (Joe)
 | 
						||
     * Allow indexes on array columns (Joe)
 | 
						||
     * Allow array concatenation with || (Joe)
 | 
						||
     * Allow WHERE qualification expr op ANY/SOME/ALL (array_expr) (Joe)
 | 
						||
       This allows arrays to behave like a list of values, for purposes
 | 
						||
       like SELECT * FROM tab WHERE col IN (array_val).
 | 
						||
     * New array functions array_append, array_cat, array_lower,
 | 
						||
       array_prepend, array_to_string, array_upper, string_to_array (Joe)
 | 
						||
     * Allow user defined aggregates to use polymorphic functions (Joe)
 | 
						||
     * Allow assignments to empty arrays (Joe)
 | 
						||
     * Allow 60 in seconds fields of time, timestamp, and interval input
 | 
						||
       values (Tom)
 | 
						||
       Sixty-second values are needed for leap seconds.
 | 
						||
     * Allow cidr data type to be cast to text (Tom)
 | 
						||
     * Disallow invalid time zone names (Tom)
 | 
						||
     * Trim trailing spaces when char is cast to varchar or text (Tom)
 | 
						||
     * Make float(p) measure the precision "p" in binary digits, not
 | 
						||
       decimal digits (Tom)
 | 
						||
     * Add IPv6 support to the inet and cidr data types (Michael Graff)
 | 
						||
     * Add family() function to report whether address is IPv4 or IPv6
 | 
						||
       (Michael Graff)
 | 
						||
     * Have SHOW datestyle generate output similar to that used by SET
 | 
						||
       datestyle (Tom)
 | 
						||
     * Make EXTRACT(TIMEZONE) and SET/SHOW TIME ZONE follow the SQL
 | 
						||
       convention for the sign of time zone offsets, i.e., positive is
 | 
						||
       east from UTC (Tom)
 | 
						||
     * Fix date_trunc('quarter', ...) (B<>jthe Zolt<6C>n)
 | 
						||
       Prior releases returned an incorrect value for this function call.
 | 
						||
     * Make initcap() more compatible with Oracle (Mike Nolan)
 | 
						||
       initcap() now uppercases a letter appearing after any
 | 
						||
       non-alphanumeric character, rather than only after whitespace.
 | 
						||
     * Allow only datestyle field order for date values not in ISO-8601
 | 
						||
       format (Greg)
 | 
						||
     * Add new datestyle values MDY, DMY, and YMD to set input field
 | 
						||
       order; honor US and European for backward compatibility (Tom)
 | 
						||
     * String literals like 'now' or 'today' will no longer work as a
 | 
						||
       column default. Use functions such as now(), current_timestamp
 | 
						||
       instead. (change required for prepared statements) (Tom)
 | 
						||
     * Treat NaN as larger than any other value in min()/max() (Tom)
 | 
						||
       NaN was already sorted after ordinary numeric values for most
 | 
						||
       purposes, but min() and max() didn't get this right.
 | 
						||
     * Prevent interval from suppressing :00 seconds display
 | 
						||
     * New function pg_get_triggerdef(prettyprint) and
 | 
						||
       pg_constraint_is_visible()
 | 
						||
     * Allow time to be specified as 040506 or 0405 (Tom)
 | 
						||
     * Input date order must now be YYYY-MM-DD (with 4-digit year) or
 | 
						||
       match datestyle
 | 
						||
     * Make pg_get_constraintdef to support unique, primary-key, and
 | 
						||
       check constraints (Christopher)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Server-Side Language Changes
 | 
						||
 | 
						||
     * Prevent PL/pgSQL crash when RETURN NEXT is used on a zero-row
 | 
						||
       record variable (Tom)
 | 
						||
     * Make PL/Python's spi_execute interface handle null values properly
 | 
						||
       (Andrew Bosma)
 | 
						||
     * Allow PL/pgSQL to declare variables of composite types without
 | 
						||
       %ROWTYPE (Tom)
 | 
						||
     * Fix PL/Python's _quote() function to handle big integers
 | 
						||
     * Make PL/Python an untrusted language, now called plpythonu (Kevin
 | 
						||
       Jacobs, Tom)
 | 
						||
       The Python language no longer supports a restricted execution
 | 
						||
       environment, so the trusted version of PL/Python was removed. If
 | 
						||
       this situation changes, a version of PL/python that can be used by
 | 
						||
       non-superusers will be readded.
 | 
						||
     * Allow polymorphic PL/pgSQL functions (Tom, Joe)
 | 
						||
     * Allow polymorphic SQL functions (Joe)
 | 
						||
     * Improved compiled function caching mechanism in PL/pgSQL with full
 | 
						||
       support for polymorphism (Joe)
 | 
						||
     * Add new parameter $0 in PL/pgSQL representing the function's
 | 
						||
       actual return type (Joe)
 | 
						||
     * Allow PL/Tcl and PL/Python to use the same trigger on multiple
 | 
						||
       tables (Tom)
 | 
						||
     * Fixed PL/Tcl's spi_prepare to accept fully qualified type names in
 | 
						||
       the parameter type list (Jan)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
psql Changes
 | 
						||
 | 
						||
     * Add \pset pager always to always use pager (Greg)
 | 
						||
       This forces the pager to be used even if the number of rows is
 | 
						||
       less than the screen height. This is valuable for rows that wrap
 | 
						||
       across several screen rows.
 | 
						||
     * Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)
 | 
						||
     * Reorder \? help into groupings (Harald Armin Massa, Bruce)
 | 
						||
     * Add backslash commands for listing schemas, casts, and conversions
 | 
						||
       (Christopher)
 | 
						||
     * "\encoding" now changes based on the server parameter
 | 
						||
       client_encoding server (Tom)
 | 
						||
       In previous versions, "\encoding" was not aware of encoding
 | 
						||
       changes made using SET client_encoding.
 | 
						||
     * Save editor buffer into readline history (Ross)
 | 
						||
       When "\e" is used to edit a query, the result is saved in the
 | 
						||
       readline history for retrieval using the up arrow.
 | 
						||
     * Improve "\d" display (Christopher)
 | 
						||
     * Enhance HTML mode to be more standards-conforming (Greg)
 | 
						||
     * New "\set AUTOCOMMIT off" capability (Tom)
 | 
						||
       This takes the place of the removed server parameter autocommit.
 | 
						||
     * New "\set VERBOSITY" to control error detail (Tom)
 | 
						||
       This controls the new error reporting details.
 | 
						||
     * New prompt escape sequence %x to show transaction status (Tom)
 | 
						||
     * Long options for psql are now available on all platforms
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
pg_dump Changes
 | 
						||
 | 
						||
     * Multiple pg_dump fixes, including tar format and large objects
 | 
						||
     * Allow pg_dump to dump specific schemas (Neil)
 | 
						||
     * Make pg_dump preserve column storage characteristics (Christopher)
 | 
						||
       This preserves ALTER TABLE ... SET STORAGE information.
 | 
						||
     * Make pg_dump preserve "CLUSTER" characteristics (Christopher)
 | 
						||
     * Have pg_dumpall use "GRANT"/"REVOKE" to dump database-level
 | 
						||
       privleges (Tom)
 | 
						||
     * Allow pg_dumpall to support the options "-a", "-s", "-x" of
 | 
						||
       pg_dump (Tom)
 | 
						||
     * Prevent pg_dump from lowercasing identifiers specified on the
 | 
						||
       command line (Tom)
 | 
						||
     * pg_dump options "--use-set-session-authorization" and
 | 
						||
       "--no-reconnect" now do nothing, all dumps use "SET SESSION
 | 
						||
       AUTHORIZATION"
 | 
						||
       pg_dump no longer reconnects to switch users, but instead always
 | 
						||
       uses "SET SESSION AUTHORIZATION". This will reduce password
 | 
						||
       prompting during restores.
 | 
						||
     * Long options for pg_dump are now available on all platforms
 | 
						||
       PostgreSQL now includes its own long-option processing routines.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
libpq Changes
 | 
						||
 | 
						||
     * Add function PQfreemem for freeing memory on Windows, suggested
 | 
						||
       for "NOTIFY" (Bruce)
 | 
						||
       Windows requires that memory allocated in a library be freed by a
 | 
						||
       function in the same library, hence free() doesn't work for
 | 
						||
       freeing memory allocated by libpq. PQfreemem is the proper way to
 | 
						||
       free libpq memory, especially on Windows, and is recommended for
 | 
						||
       other platforms as well.
 | 
						||
     * Document service capability, and add sample file (Bruce)
 | 
						||
       This allows clients to look up connection information in a central
 | 
						||
       file on the client machine.
 | 
						||
     * Make PQsetdbLogin have the same defaults as PQconnectdb (Tom)
 | 
						||
     * Allow libpq to cleanly fail when result sets are too large (Tom)
 | 
						||
     * Improve performance of function PGunescapeBytea (Ben Lamb)
 | 
						||
     * Allow thread-safe libpq with "configure" option
 | 
						||
       "--enable-thread-safety" (Lee Kindness, Philip Yarra)
 | 
						||
     * Allow function pqInternalNotice to accept a format string and
 | 
						||
       arguments instead of just a preformatted message (Tom, Sean
 | 
						||
       Chittenden)
 | 
						||
     * Control SSL negotiation with sslmode values disable, allow,
 | 
						||
       prefer, and require (Jon Jensen)
 | 
						||
     * Allow new error codes and levels of text (Tom)
 | 
						||
     * Allow access to the underlying table and column of a query result
 | 
						||
       (Tom)
 | 
						||
       This is helpful for query-builder applications that want to know
 | 
						||
       the underlying table and column names associated with a specific
 | 
						||
       result set.
 | 
						||
     * Allow access to the current transaction status (Tom)
 | 
						||
     * Add ability to pass binary data directly to the server (Tom)
 | 
						||
     * Add function PQexecPrepared and PQsendQueryPrepared functions
 | 
						||
       which perform bind/execute of previously prepared statements (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
JDBC Changes
 | 
						||
 | 
						||
     * Allow setNull on updateable result sets
 | 
						||
     * Allow executeBatch on a prepared statement (Barry)
 | 
						||
     * Support SSL connections (Barry)
 | 
						||
     * Handle schema names in result sets (Paul Sorenson)
 | 
						||
     * Add refcursor support (Nic Ferrier)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Miscellaneous Interface Changes
 | 
						||
 | 
						||
     * Prevent possible memory leak or core dump during libpgtcl shutdown
 | 
						||
       (Tom)
 | 
						||
     * Add Informix compatibility to ECPG (Michael)
 | 
						||
       This allows ECPG to process embedded C programs that were written
 | 
						||
       using certain Informix extensions.
 | 
						||
     * Add type decimal to ECPG that is fixed length, for Informix
 | 
						||
       (Michael)
 | 
						||
     * Allow thread-safe embedded SQL programs with "configure" option
 | 
						||
       "--enable-thread-safety" (Lee Kindness, Bruce)
 | 
						||
       This allows multiple threads to access the database at the same
 | 
						||
       time.
 | 
						||
     * Moved Python client PyGreSQL to http://www.pygresql.org (Marc)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Source Code Changes
 | 
						||
 | 
						||
     * Prevent need for separate platform geometry regression result
 | 
						||
       files (Tom)
 | 
						||
     * Improved PPC locking primitive (Reinhard Max)
 | 
						||
     * New function palloc0 to allocate and clear memory (Bruce)
 | 
						||
     * Fix locking code for s390x CPU (64-bit) (Tom)
 | 
						||
     * Allow OpenBSD to use local ident credentials (William Ahern)
 | 
						||
     * Make query plan trees read-only to executor (Tom)
 | 
						||
     * Add Darwin startup scripts (David Wheeler)
 | 
						||
     * Allow libpq to compile with Borland C++ compiler (Lester Godwin,
 | 
						||
       Karl Waclawek)
 | 
						||
     * Use our own version of getopt_long() if needed (Peter)
 | 
						||
     * Convert administration scripts to C (Peter)
 | 
						||
     * Bison >= 1.85 is now required to build the PostgreSQL grammar, if
 | 
						||
       building from CVS
 | 
						||
     * Merge documentation into one book (Peter)
 | 
						||
     * Add Windows compatibility functions (Bruce)
 | 
						||
     * Allow client interfaces to compile under MinGW (Bruce)
 | 
						||
     * New ereport() function for error reporting (Tom)
 | 
						||
     * Support Intel compiler on Linux (Peter)
 | 
						||
     * Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil)
 | 
						||
     * Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce)
 | 
						||
     * Remove "--enable-recode" option from "configure"
 | 
						||
       This was no longer needed now that we have "CREATE CONVERSION".
 | 
						||
     * Generate a compile error if spinlock code is not found (Bruce)
 | 
						||
       Platforms without spinlock code will now fail to compile, rather
 | 
						||
       than silently using semaphores. This failure can be disabled with
 | 
						||
       a new "configure" option.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Contrib Changes
 | 
						||
 | 
						||
     * Change dbmirror license to BSD
 | 
						||
     * Improve earthdistance (Bruno Wolff III)
 | 
						||
     * Portability improvements to pgcrypto (Marko Kreen)
 | 
						||
     * Prevent crash in xml (John Gray, Michael Richards)
 | 
						||
     * Update oracle
 | 
						||
     * Update mysql
 | 
						||
     * Update cube (Bruno Wolff III)
 | 
						||
     * Update earthdistance to use cube (Bruno Wolff III)
 | 
						||
     * Update btree_gist (Oleg)
 | 
						||
     * New tsearch2 full-text search module (Oleg, Teodor)
 | 
						||
     * Add hash-based crosstab function to tablefuncs (Joe)
 | 
						||
     * Add serial column to order connectby() siblings in tablefuncs
 | 
						||
       (Nabil Sayegh,Joe)
 | 
						||
     * Add named persistent connections to dblink (Shridhar Daithanka)
 | 
						||
     * New pg_autovacuum allows automatic "VACUUM" (Matthew T. O'Connor)
 | 
						||
     * Make pgbench honor environment variables PGHOST, PGPORT, PGUSER
 | 
						||
       (Tatsuo)
 | 
						||
     * Improve intarray (Teodor Sigaev)
 | 
						||
     * Improve pgstattuple (Rod)
 | 
						||
     * Fix bug in metaphone() in fuzzystrmatch
 | 
						||
     * Improve adddepend (Rod)
 | 
						||
     * Update spi/timetravel (B<>jthe Zolt<6C>n)
 | 
						||
     * Fix dbase "-s" option and improve non-ASCII handling (Thomas Behr,
 | 
						||
       M<>rcio Smiderle)
 | 
						||
     * Remove array module because features now included by default (Joe)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.3.4
 | 
						||
                                      
 | 
						||
     Release date: 2003-07-24
 | 
						||
     
 | 
						||
   This has a variety of fixes from 7.3.3.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.3.4
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running 7.3.*.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
     * Repair breakage in timestamp-to-date conversion for dates before
 | 
						||
       2000
 | 
						||
     * Prevent rare possibility of server startup failure (Tom)
 | 
						||
     * Fix bugs in interval-to-time conversion (Tom)
 | 
						||
     * Add constraint names in a few places in pg_dump (Rod)
 | 
						||
     * Improve performance of functions with many parameters (Tom)
 | 
						||
     * Fix to_ascii() buffer overruns (Tom)
 | 
						||
     * Prevent restore of database comments from throwing an error (Tom)
 | 
						||
     * Work around buggy strxfrm() present in some Solaris releases (Tom)
 | 
						||
     * Properly escape jdbc setObject() strings to improve security
 | 
						||
       (Barry)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.3.3
 | 
						||
                                      
 | 
						||
     Release date: 2003-05-22
 | 
						||
     
 | 
						||
   This release contains of variety of fixes for version 7.3.2.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.3.3
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running version 7.3.*.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
     * Repair sometimes-incorrect computation of StartUpID after a crash
 | 
						||
     * Avoid slowness with lots of deferred triggers in one transaction
 | 
						||
       (Stephan)
 | 
						||
     * Don't lock referenced row when "UPDATE" doesn't change foreign
 | 
						||
       key's value (Jan)
 | 
						||
     * Use "-fPIC" not "-fpic" on Sparc (Tom Callaway)
 | 
						||
     * Repair lack of schema-awareness in contrib/reindexdb
 | 
						||
     * Fix contrib/intarray error for zero-element result array (Teodor)
 | 
						||
     * Ensure createuser script will exit on control-C (Oliver)
 | 
						||
     * Fix errors when the type of a dropped column has itself been
 | 
						||
       dropped
 | 
						||
     * "CHECKPOINT" does not cause database panic on failure in
 | 
						||
       noncritical steps
 | 
						||
     * Accept 60 in seconds fields of timestamp, time, interval input
 | 
						||
       values
 | 
						||
     * Issue notice, not error, if TIMESTAMP, TIME, or INTERVAL precision
 | 
						||
       too large
 | 
						||
     * Fix abstime-to-time cast function (fix is not applied unless you
 | 
						||
       initdb)
 | 
						||
     * Fix pg_proc entry for timestampt_izone (fix is not applied unless
 | 
						||
       you initdb)
 | 
						||
     * Make EXTRACT(EPOCH FROM timestamp without time zone) treat input
 | 
						||
       as local time
 | 
						||
     * "'now'::timestamptz" gave wrong answer if timezone changed earlier
 | 
						||
       in transaction
 | 
						||
     * HAVE_INT64_TIMESTAMP code for time with timezone overwrote its
 | 
						||
       input
 | 
						||
     * Accept "GLOBAL TEMP/TEMPORARY" as a synonym for "TEMPORARY"
 | 
						||
     * Avoid improper schema-privilege-check failure in foreign-key
 | 
						||
       triggers
 | 
						||
     * Fix bugs in foreign-key triggers for "SET DEFAULT" action
 | 
						||
     * Fix incorrect time-qual check in row fetch for "UPDATE" and
 | 
						||
       "DELETE" triggers
 | 
						||
     * Foreign-key clauses were parsed but ignored in "ALTER TABLE ADD
 | 
						||
       COLUMN"
 | 
						||
     * Fix createlang script breakage for case where handler function
 | 
						||
       already exists
 | 
						||
     * Fix misbehavior on zero-column tables in pg_dump, COPY, ANALYZE,
 | 
						||
       other places
 | 
						||
     * Fix misbehavior of func_error() on type names containing '%'
 | 
						||
     * Fix misbehavior of replace() on strings containing '%'
 | 
						||
     * Regular-expression patterns containing certain multibyte
 | 
						||
       characters failed
 | 
						||
     * Account correctly for "NULL"s in more cases in join size
 | 
						||
       estimation
 | 
						||
     * Avoid conflict with system definition of isblank() function or
 | 
						||
       macro
 | 
						||
     * Fix failure to convert large code point values in EUC_TW
 | 
						||
       conversions (Tatsuo)
 | 
						||
     * Fix error recovery for SSL_read/SSL_write calls
 | 
						||
     * Don't do early constant-folding of type coercion expressions
 | 
						||
     * Validate page header fields immediately after reading in any page
 | 
						||
     * Repair incorrect check for ungrouped variables in unnamed joins
 | 
						||
     * Fix buffer overrun in to_ascii (Guido Notari)
 | 
						||
     * contrib/ltree fixes (Teodor)
 | 
						||
     * Fix core dump in deadlock detection on machines where char is
 | 
						||
       unsigned
 | 
						||
     * Avoid running out of buffers in many-way indexscan (bug introduced
 | 
						||
       in 7.3)
 | 
						||
     * Fix planner's selectivity estimation functions to handle domains
 | 
						||
       properly
 | 
						||
     * Fix dbmirror memory-allocation bug (Steven Singer)
 | 
						||
     * Prevent infinite loop in ln(numeric) due to roundoff error
 | 
						||
     * "GROUP BY" got confused if there were multiple equal GROUP BY
 | 
						||
       items
 | 
						||
     * Fix bad plan when inherited "UPDATE"/"DELETE" references another
 | 
						||
       inherited table
 | 
						||
     * Prevent clustering on incomplete (partial or non-NULL-storing)
 | 
						||
       indexes
 | 
						||
     * Service shutdown request at proper time if it arrives while still
 | 
						||
       starting up
 | 
						||
     * Fix left-links in temporary indexes (could make backwards scans
 | 
						||
       miss entries)
 | 
						||
     * Fix incorrect handling of client_encoding setting in
 | 
						||
       postgresql.conf (Tatsuo)
 | 
						||
     * Fix failure to respond to "pg_ctl stop -m fast" after
 | 
						||
       Async_NotifyHandler runs
 | 
						||
     * Fix SPI for case where rule contains multiple statements of the
 | 
						||
       same type
 | 
						||
     * Fix problem with checking for wrong type of access privilege in
 | 
						||
       rule query
 | 
						||
     * Fix problem with "EXCEPT" in "CREATE RULE"
 | 
						||
     * Prevent problem with dropping temp tables having serial columns
 | 
						||
     * Fix replace_vars_with_subplan_refs failure in complex views
 | 
						||
     * Fix regexp slowness in single-byte encodings (Tatsuo)
 | 
						||
     * Allow qualified type names in "CREATE CAST" and " DROP CAST"
 | 
						||
     * Accept SETOF type[], which formerly had to be written SETOF _type
 | 
						||
     * Fix pg_dump core dump in some cases with procedural languages
 | 
						||
     * Force ISO datestyle in pg_dump output, for portability (Oliver)
 | 
						||
     * pg_dump failed to handle error return from lo_read (Oleg Drokin)
 | 
						||
     * pg_dumpall failed with groups having no members (Nick Eskelinen)
 | 
						||
     * pg_dumpall failed to recognize --globals-only switch
 | 
						||
     * pg_restore failed to restore blobs if -X disable-triggers is
 | 
						||
       specified
 | 
						||
     * Repair intrafunction memory leak in plpgsql
 | 
						||
     * pltcl's "elog" command dumped core if given wrong parameters (Ian
 | 
						||
       Harding)
 | 
						||
     * plpython used wrong value of atttypmod (Brad McLean)
 | 
						||
     * Fix improper quoting of boolean values in Python interface
 | 
						||
       (D'Arcy)
 | 
						||
     * Added addDataType() method to PGConnection interface for JDBC
 | 
						||
     * Fixed various problems with updateable ResultSets for JDBC (Shawn
 | 
						||
       Green)
 | 
						||
     * Fixed various problems with DatabaseMetaData for JDBC (Kris Jurka,
 | 
						||
       Peter Royal)
 | 
						||
     * Fixed problem with parsing table ACLs in JDBC
 | 
						||
     * Better error message for character set conversion problems in JDBC
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.3.2
 | 
						||
                                      
 | 
						||
     Release date: 2003-02-04
 | 
						||
     
 | 
						||
   This release contains a variety of fixes for version 7.3.1.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.3.2
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running version 7.3.*.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
     * Restore creation of OID column in CREATE TABLE AS / SELECT INTO
 | 
						||
     * Fix pg_dump core dump when dumping views having comments
 | 
						||
     * Dump DEFERRABLE/INITIALLY DEFERRED constraints properly
 | 
						||
     * Fix UPDATE when child table's column numbering differs from parent
 | 
						||
     * Increase default value of max_fsm_relations
 | 
						||
     * Fix problem when fetching backwards in a cursor for a single-row
 | 
						||
       query
 | 
						||
     * Make backward fetch work properly with cursor on SELECT DISTINCT
 | 
						||
       query
 | 
						||
     * Fix problems with loading pg_dump files containing contrib/lo
 | 
						||
       usage
 | 
						||
     * Fix problem with all-numeric user names
 | 
						||
     * Fix possible memory leak and core dump during disconnect in
 | 
						||
       libpgtcl
 | 
						||
     * Make plpython's spi_execute command handle nulls properly (Andrew
 | 
						||
       Bosma)
 | 
						||
     * Adjust plpython error reporting so that its regression test passes
 | 
						||
       again
 | 
						||
     * Work with bison 1.875
 | 
						||
     * Handle mixed-case names properly in plpgsql's %type (Neil)
 | 
						||
     * Fix core dump in pltcl when executing a query rewritten by a rule
 | 
						||
     * Repair array subscript overruns (per report from Yichen Xie)
 | 
						||
     * Reduce MAX_TIME_PRECISION from 13 to 10 in floating-point case
 | 
						||
     * Correctly case-fold variable names in per-database and per-user
 | 
						||
       settings
 | 
						||
     * Fix coredump in plpgsql's RETURN NEXT when SELECT into record
 | 
						||
       returns no rows
 | 
						||
     * Fix outdated use of pg_type.typprtlen in python client interface
 | 
						||
     * Correctly handle fractional seconds in timestamps in JDBC driver
 | 
						||
     * Improve performance of getImportedKeys() in JDBC
 | 
						||
     * Make shared-library symlinks work standardly on HPUX (Giles)
 | 
						||
     * Repair inconsistent rounding behavior for timestamp, time,
 | 
						||
       interval
 | 
						||
     * SSL negotiation fixes (Nathan Mueller)
 | 
						||
     * Make libpq's ~/.pgpass feature work when connecting with
 | 
						||
       PQconnectDB
 | 
						||
     * Update my2pg, ora2pg
 | 
						||
     * Translation updates
 | 
						||
     * Add casts between types lo and oid in contrib/lo
 | 
						||
     * fastpath code now checks for privilege to call function
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.3.1
 | 
						||
                                      
 | 
						||
     Release date: 2002-12-18
 | 
						||
     
 | 
						||
   This release contains a variety of fixes for version 7.3.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.3.1
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running version 7.3.
 | 
						||
   However, it should be noted that the main PostgreSQL interface
 | 
						||
   library, libpq, has a new major version number for this release, which
 | 
						||
   may require recompilation of client code in certain cases.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
     * Fix a core dump of COPY TO when client/server encodings don't
 | 
						||
       match (Tom)
 | 
						||
     * Allow pg_dump to work with pre-7.2 servers (Philip)
 | 
						||
     * contrib/adddepend fixes (Tom)
 | 
						||
     * Fix problem with deletion of per-user/per-database config settings
 | 
						||
       (Tom)
 | 
						||
     * contrib/vacuumlo fix (Tom)
 | 
						||
     * Allow 'password' encryption even when pg_shadow contains MD5
 | 
						||
       passwords (Bruce)
 | 
						||
     * contrib/dbmirror fix (Steven Singer)
 | 
						||
     * Optimizer fixes (Tom)
 | 
						||
     * contrib/tsearch fixes (Teodor Sigaev, Magnus)
 | 
						||
     * Allow locale names to be mixed case (Nicolai Tufar)
 | 
						||
     * Increment libpq library's major version number (Bruce)
 | 
						||
     * pg_hba.conf error reporting fixes (Bruce, Neil)
 | 
						||
     * Add SCO Openserver 5.0.4 as a supported platform (Bruce)
 | 
						||
     * Prevent EXPLAIN from crashing server (Tom)
 | 
						||
     * SSL fixes (Nathan Mueller)
 | 
						||
     * Prevent composite column creation via ALTER TABLE (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                Release 7.3
 | 
						||
                                      
 | 
						||
     Release date: 2002-11-27
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Overview
 | 
						||
                                      
 | 
						||
   Major changes in this release:
 | 
						||
   
 | 
						||
   Schemas
 | 
						||
          Schemas allow users to create objects in separate namespaces,
 | 
						||
          so two people or applications can have tables with the same
 | 
						||
          name. There is also a public schema for shared tables.
 | 
						||
          Table/index creation can be restricted by removing privileges
 | 
						||
          on the public schema.
 | 
						||
          
 | 
						||
   Drop Column
 | 
						||
          PostgreSQL now supports the ALTER TABLE ... DROP COLUMN
 | 
						||
          functionality.
 | 
						||
          
 | 
						||
   Table Functions
 | 
						||
          Functions returning multiple rows and/or multiple columns are
 | 
						||
          now much easier to use than before. You can call such a "table
 | 
						||
          function" in the SELECT FROM clause, treating its output like a
 | 
						||
          table. Also, PL/pgSQL functions can now return sets.
 | 
						||
          
 | 
						||
   Prepared Queries
 | 
						||
          PostgreSQL now supports prepared queries, for improved
 | 
						||
          performance.
 | 
						||
          
 | 
						||
   Dependency Tracking
 | 
						||
          PostgreSQL now records object dependencies, which allows
 | 
						||
          improvements in many areas. "DROP" statements now take either
 | 
						||
          CASCADE or RESTRICT to control whether dependent objects are
 | 
						||
          also dropped.
 | 
						||
          
 | 
						||
   Privileges
 | 
						||
          Functions and procedural languages now have privileges, and
 | 
						||
          functions can be defined to run with the privileges of their
 | 
						||
          creator.
 | 
						||
          
 | 
						||
   Internationalization
 | 
						||
          Both multibyte and locale support are now always enabled.
 | 
						||
          
 | 
						||
   Logging
 | 
						||
          A variety of logging options have been enhanced.
 | 
						||
          
 | 
						||
   Interfaces
 | 
						||
          A large number of interfaces have been moved to
 | 
						||
          http://gborg.postgresql.org where they can be developed and
 | 
						||
          released independently.
 | 
						||
          
 | 
						||
   Functions/Identifiers
 | 
						||
          By default, functions can now take up to 32 parameters, and
 | 
						||
          identifiers can be up to 63 bytes long. Also, OPAQUE is now
 | 
						||
          deprecated: there are specific "pseudo-datatypes" to represent
 | 
						||
          each of the former meanings of OPAQUE in function argument and
 | 
						||
          result types.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                          Migration to version 7.3
 | 
						||
                                      
 | 
						||
   A dump/restore using pg_dump is required for those wishing to migrate
 | 
						||
   data from any previous release. If your application examines the
 | 
						||
   system catalogs, additional changes will be required due to the
 | 
						||
   introduction of schemas in 7.3; for more information, see:
 | 
						||
   http://developer.postgresql.org/~momjian/upgrade_tips_7.3.
 | 
						||
   
 | 
						||
   Observe the following incompatibilities:
 | 
						||
   
 | 
						||
     * Pre-6.3 clients are no longer supported.
 | 
						||
     * "pg_hba.conf" now has a column for the user name and additional
 | 
						||
       features. Existing files need to be adjusted.
 | 
						||
     * Several "postgresql.conf" logging parameters have been renamed.
 | 
						||
     * LIMIT #,# has been disabled; use LIMIT # OFFSET #.
 | 
						||
     * "INSERT" statements with column lists must specify a value for
 | 
						||
       each specified column. For example, INSERT INTO tab (col1, col2)
 | 
						||
       VALUES ('val1') is now invalid. It's still allowed to supply fewer
 | 
						||
       columns than expected if the "INSERT" does not have a column list.
 | 
						||
     * serial columns are no longer automatically UNIQUE; thus, an index
 | 
						||
       will not automatically be created.
 | 
						||
     * A "SET" command inside an aborted transaction is now rolled back.
 | 
						||
     * "COPY" no longer considers missing trailing columns to be null.
 | 
						||
       All columns need to be specified. (However, one may achieve a
 | 
						||
       similar effect by specifying a column list in the "COPY" command.)
 | 
						||
     * The data type timestamp is now equivalent to timestamp without
 | 
						||
       time zone, instead of timestamp with time zone.
 | 
						||
     * Pre-7.3 databases loaded into 7.3 will not have the new object
 | 
						||
       dependencies for serial columns, unique constraints, and foreign
 | 
						||
       keys. See the directory "contrib/adddepend/" for a detailed
 | 
						||
       description and a script that will add such dependencies.
 | 
						||
     * An empty string ('') is no longer allowed as the input into an
 | 
						||
       integer field. Formerly, it was silently interpreted as 0.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Server Operation
 | 
						||
 | 
						||
     * Add pg_locks view to show locks (Neil)
 | 
						||
     * Security fixes for password negotiation memory allocation (Neil)
 | 
						||
     * Remove support for version 0 FE/BE protocol (PostgreSQL 6.2 and
 | 
						||
       earlier) (Tom)
 | 
						||
     * Reserve the last few backend slots for superusers, add parameter
 | 
						||
       superuser_reserved_connections to control this (Nigel J. Andrews)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Performance
 | 
						||
 | 
						||
     * Improve startup by calling localtime() only once (Tom)
 | 
						||
     * Cache system catalog information in flat files for faster startup
 | 
						||
       (Tom)
 | 
						||
     * Improve caching of index information (Tom)
 | 
						||
     * Optimizer improvements (Tom, Fernando Nasser)
 | 
						||
     * Catalog caches now store failed lookups (Tom)
 | 
						||
     * Hash function improvements (Neil)
 | 
						||
     * Improve performance of query tokenization and network handling
 | 
						||
       (Peter)
 | 
						||
     * Speed improvement for large object restore (Mario Weilguni)
 | 
						||
     * Mark expired index entries on first lookup, saving later heap
 | 
						||
       fetches (Tom)
 | 
						||
     * Avoid excessive NULL bitmap padding (Manfred Koizar)
 | 
						||
     * Add BSD-licensed qsort() for Solaris, for performance (Bruce)
 | 
						||
     * Reduce per-row overhead by four bytes (Manfred Koizar)
 | 
						||
     * Fix GEQO optimizer bug (Neil Conway)
 | 
						||
     * Make WITHOUT OID actually save four bytes per row (Manfred Koizar)
 | 
						||
     * Add default_statistics_target variable to specify ANALYZE buckets
 | 
						||
       (Neil)
 | 
						||
     * Use local buffer cache for temporary tables so no WAL overhead
 | 
						||
       (Tom)
 | 
						||
     * Improve free space map performance on large tables (Stephen
 | 
						||
       Marshall, Tom)
 | 
						||
     * Improved WAL write concurrency (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Privileges
 | 
						||
 | 
						||
     * Add privileges on functions and procedural languages (Peter)
 | 
						||
     * Add OWNER to CREATE DATABASE so superusers can create databases on
 | 
						||
       behalf of unprivileged users (Gavin Sherry, Tom)
 | 
						||
     * Add new object privilege bits EXECUTE and USAGE (Tom)
 | 
						||
     * Add SET SESSION AUTHORIZATION DEFAULT and RESET SESSION
 | 
						||
       AUTHORIZATION (Tom)
 | 
						||
     * Allow functions to be executed with the privilege of the function
 | 
						||
       owner (Peter)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Server Configuration
 | 
						||
 | 
						||
     * Server log messages now tagged with LOG, not DEBUG (Bruce)
 | 
						||
     * Add user column to pg_hba.conf (Bruce)
 | 
						||
     * Have log_connections output two lines in log file (Tom)
 | 
						||
     * Remove debug_level from postgresql.conf, now server_min_messages
 | 
						||
       (Bruce)
 | 
						||
     * New ALTER DATABASE/USER ... SET command for per-user/database
 | 
						||
       initialization (Peter)
 | 
						||
     * New parameters server_min_messages and client_min_messages to
 | 
						||
       control which messages are sent to the server logs or client
 | 
						||
       applications (Bruce)
 | 
						||
     * Allow pg_hba.conf to specify lists of users/databases separated by
 | 
						||
       commas, group names prepended with +, and file names prepended
 | 
						||
       with @ (Bruce)
 | 
						||
     * Remove secondary password file capability and pg_password utility
 | 
						||
       (Bruce)
 | 
						||
     * Add variable db_user_namespace for database-local user names
 | 
						||
       (Bruce)
 | 
						||
     * SSL improvements (Bear Giles)
 | 
						||
     * Make encryption of stored passwords the default (Bruce)
 | 
						||
     * Allow pg_statistics to be reset by calling pg_stat_reset()
 | 
						||
       (Christopher)
 | 
						||
     * Add log_duration parameter (Bruce)
 | 
						||
     * Rename debug_print_query to log_statement (Bruce)
 | 
						||
     * Rename show_query_stats to show_statement_stats (Bruce)
 | 
						||
     * Add param log_min_error_statement to print commands to logs on
 | 
						||
       error (Gavin)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Queries
 | 
						||
 | 
						||
     * Make cursors insensitive, meaning their contents do not change
 | 
						||
       (Tom)
 | 
						||
     * Disable LIMIT #,# syntax; now only LIMIT # OFFSET # supported
 | 
						||
       (Bruce)
 | 
						||
     * Increase identifier length to 63 (Neil, Bruce)
 | 
						||
     * UNION fixes for merging >= 3 columns of different lengths (Tom)
 | 
						||
     * Add DEFAULT key word to INSERT, e.g., INSERT ... (..., DEFAULT,
 | 
						||
       ...) (Rod)
 | 
						||
     * Allow views to have default values using ALTER COLUMN ... SET
 | 
						||
       DEFAULT (Neil)
 | 
						||
     * Fail on INSERTs with column lists that don't supply all column
 | 
						||
       values, e.g., INSERT INTO tab (col1, col2) VALUES ('val1'); (Rod)
 | 
						||
     * Fix for join aliases (Tom)
 | 
						||
     * Fix for FULL OUTER JOINs (Tom)
 | 
						||
     * Improve reporting of invalid identifier and location (Tom, Gavin)
 | 
						||
     * Fix OPEN cursor(args) (Tom)
 | 
						||
     * Allow 'ctid' to be used in a view and currtid(viewname) (Hiroshi)
 | 
						||
     * Fix for CREATE TABLE AS with UNION (Tom)
 | 
						||
     * SQL99 syntax improvements (Thomas)
 | 
						||
     * Add statement_timeout variable to cancel queries (Bruce)
 | 
						||
     * Allow prepared queries with PREPARE/EXECUTE (Neil)
 | 
						||
     * Allow FOR UPDATE to appear after LIMIT/OFFSET (Bruce)
 | 
						||
     * Add variable autocommit (Tom, David Van Wie)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Object Manipulation
 | 
						||
 | 
						||
     * Make equals signs optional in CREATE DATABASE (Gavin Sherry)
 | 
						||
     * Make ALTER TABLE OWNER change index ownership too (Neil)
 | 
						||
     * New ALTER TABLE tabname ALTER COLUMN colname SET STORAGE controls
 | 
						||
       TOAST storage, compression (John Gray)
 | 
						||
     * Add schema support, CREATE/DROP SCHEMA (Tom)
 | 
						||
     * Create schema for temporary tables (Tom)
 | 
						||
     * Add variable search_path for schema search (Tom)
 | 
						||
     * Add ALTER TABLE SET/DROP NOT NULL (Christopher)
 | 
						||
     * New CREATE FUNCTION volatility levels (Tom)
 | 
						||
     * Make rule names unique only per table (Tom)
 | 
						||
     * Add 'ON tablename' clause to DROP RULE and COMMENT ON RULE (Tom)
 | 
						||
     * Add ALTER TRIGGER RENAME (Joe)
 | 
						||
     * New current_schema() and current_schemas() inquiry functions (Tom)
 | 
						||
     * Allow functions to return multiple rows (table functions) (Joe)
 | 
						||
     * Make WITH optional in CREATE DATABASE, for consistency (Bruce)
 | 
						||
     * Add object dependency tracking (Rod, Tom)
 | 
						||
     * Add RESTRICT/CASCADE to DROP commands (Rod)
 | 
						||
     * Add ALTER TABLE DROP for non-CHECK CONSTRAINT (Rod)
 | 
						||
     * Autodestroy sequence on DROP of table with SERIAL (Rod)
 | 
						||
     * Prevent column dropping if column is used by foreign key (Rod)
 | 
						||
     * Automatically drop constraints/functions when object is dropped
 | 
						||
       (Rod)
 | 
						||
     * Add CREATE/DROP OPERATOR CLASS (Bill Studenmund, Tom)
 | 
						||
     * Add ALTER TABLE DROP COLUMN (Christopher, Tom, Hiroshi)
 | 
						||
     * Prevent inherited columns from being removed or renamed (Alvaro
 | 
						||
       Herrera)
 | 
						||
     * Fix foreign key constraints to not error on intermediate database
 | 
						||
       states (Stephan)
 | 
						||
     * Propagate column or table renaming to foreign key constraints
 | 
						||
     * Add CREATE OR REPLACE VIEW (Gavin, Neil, Tom)
 | 
						||
     * Add CREATE OR REPLACE RULE (Gavin, Neil, Tom)
 | 
						||
     * Have rules execute alphabetically, returning more predictable
 | 
						||
       values (Tom)
 | 
						||
     * Triggers are now fired in alphabetical order (Tom)
 | 
						||
     * Add /contrib/adddepend to handle pre-7.3 object dependencies (Rod)
 | 
						||
     * Allow better casting when inserting/updating values (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Utility Commands
 | 
						||
 | 
						||
     * Have COPY TO output embedded carriage returns and newlines as \r
 | 
						||
       and \n (Tom)
 | 
						||
     * Allow DELIMITER in COPY FROM to be 8-bit clean (Tatsuo)
 | 
						||
     * Make pg_dump use ALTER TABLE ADD PRIMARY KEY, for performance
 | 
						||
       (Neil)
 | 
						||
     * Disable brackets in multistatement rules (Bruce)
 | 
						||
     * Disable VACUUM from being called inside a function (Bruce)
 | 
						||
     * Allow dropdb and other scripts to use identifiers with spaces
 | 
						||
       (Bruce)
 | 
						||
     * Restrict database comment changes to the current database
 | 
						||
     * Allow comments on operators, independent of the underlying
 | 
						||
       function (Rod)
 | 
						||
     * Rollback SET commands in aborted transactions (Tom)
 | 
						||
     * EXPLAIN now outputs as a query (Tom)
 | 
						||
     * Display condition expressions and sort keys in EXPLAIN (Tom)
 | 
						||
     * Add 'SET LOCAL var = value' to set configuration variables for a
 | 
						||
       single transaction (Tom)
 | 
						||
     * Allow ANALYZE to run in a transaction (Bruce)
 | 
						||
     * Improve COPY syntax using new WITH clauses, keep backward
 | 
						||
       compatibility (Bruce)
 | 
						||
     * Fix pg_dump to consistently output tags in non-ASCII dumps (Bruce)
 | 
						||
     * Make foreign key constraints clearer in dump file (Rod)
 | 
						||
     * Add COMMENT ON CONSTRAINT (Rod)
 | 
						||
     * Allow COPY TO/FROM to specify column names (Brent Verner)
 | 
						||
     * Dump UNIQUE and PRIMARY KEY constraints as ALTER TABLE (Rod)
 | 
						||
     * Have SHOW output a query result (Joe)
 | 
						||
     * Generate failure on short COPY lines rather than pad NULLs (Neil)
 | 
						||
     * Fix CLUSTER to preserve all table attributes (Alvaro Herrera)
 | 
						||
     * New pg_settings table to view/modify GUC settings (Joe)
 | 
						||
     * Add smart quoting, portability improvements to pg_dump output
 | 
						||
       (Peter)
 | 
						||
     * Dump serial columns out as SERIAL (Tom)
 | 
						||
     * Enable large file support, >2G for pg_dump (Peter, Philip Warner,
 | 
						||
       Bruce)
 | 
						||
     * Disallow TRUNCATE on tables that are involved in referential
 | 
						||
       constraints (Rod)
 | 
						||
     * Have TRUNCATE also auto-truncate the toast table of the relation
 | 
						||
       (Tom)
 | 
						||
     * Add clusterdb utility that will auto-cluster an entire database
 | 
						||
       based on previous CLUSTER operations (Alvaro Herrera)
 | 
						||
     * Overhaul pg_dumpall (Peter)
 | 
						||
     * Allow REINDEX of TOAST tables (Tom)
 | 
						||
     * Implemented START TRANSACTION, per SQL99 (Neil)
 | 
						||
     * Fix rare index corruption when a page split affects bulk delete
 | 
						||
       (Tom)
 | 
						||
     * Fix ALTER TABLE ... ADD COLUMN for inheritance (Alvaro Herrera)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Data Types and Functions
 | 
						||
 | 
						||
     * Fix factorial(0) to return 1 (Bruce)
 | 
						||
     * Date/time/timezone improvements (Thomas)
 | 
						||
     * Fix for array slice extraction (Tom)
 | 
						||
     * Fix extract/date_part to report proper microseconds for timestamp
 | 
						||
       (Tatsuo)
 | 
						||
     * Allow text_substr() and bytea_substr() to read TOAST values more
 | 
						||
       efficiently (John Gray)
 | 
						||
     * Add domain support (Rod)
 | 
						||
     * Make WITHOUT TIME ZONE the default for TIMESTAMP and TIME data
 | 
						||
       types (Thomas)
 | 
						||
     * Allow alternate storage scheme of 64-bit integers for date/time
 | 
						||
       types using --enable-integer-datetimes in configure (Thomas)
 | 
						||
     * Make timezone(timestamptz) return timestamp rather than a string
 | 
						||
       (Thomas)
 | 
						||
     * Allow fractional seconds in date/time types for dates prior to 1BC
 | 
						||
       (Thomas)
 | 
						||
     * Limit timestamp data types to 6 decimal places of precision
 | 
						||
       (Thomas)
 | 
						||
     * Change timezone conversion functions from timetz() to timezone()
 | 
						||
       (Thomas)
 | 
						||
     * Add configuration variables datestyle and timezone (Tom)
 | 
						||
     * Add OVERLAY(), which allows substitution of a substring in a
 | 
						||
       string (Thomas)
 | 
						||
     * Add SIMILAR TO (Thomas, Tom)
 | 
						||
     * Add regular expression SUBSTRING(string FROM pat FOR escape)
 | 
						||
       (Thomas)
 | 
						||
     * Add LOCALTIME and LOCALTIMESTAMP functions (Thomas)
 | 
						||
     * Add named composite types using CREATE TYPE typename AS (column)
 | 
						||
       (Joe)
 | 
						||
     * Allow composite type definition in the table alias clause (Joe)
 | 
						||
     * Add new API to simplify creation of C language table functions
 | 
						||
       (Joe)
 | 
						||
     * Remove ODBC-compatible empty parentheses from calls to SQL99
 | 
						||
       functions for which these parentheses do not match the standard
 | 
						||
       (Thomas)
 | 
						||
     * Allow macaddr data type to accept 12 hex digits with no separators
 | 
						||
       (Mike Wyer)
 | 
						||
     * Add CREATE/DROP CAST (Peter)
 | 
						||
     * Add IS DISTINCT FROM operator (Thomas)
 | 
						||
     * Add SQL99 TREAT() function, synonym for CAST() (Thomas)
 | 
						||
     * Add pg_backend_pid() to output backend pid (Bruce)
 | 
						||
     * Add IS OF / IS NOT OF type predicate (Thomas)
 | 
						||
     * Allow bit string constants without fully-specified length (Thomas)
 | 
						||
     * Allow conversion between 8-byte integers and bit strings (Thomas)
 | 
						||
     * Implement hex literal conversion to bit string literal (Thomas)
 | 
						||
     * Allow table functions to appear in the FROM clause (Joe)
 | 
						||
     * Increase maximum number of function parameters to 32 (Bruce)
 | 
						||
     * No longer automatically create index for SERIAL column (Tom)
 | 
						||
     * Add current_database() (Rod)
 | 
						||
     * Fix cash_words() to not overflow buffer (Tom)
 | 
						||
     * Add functions replace(), split_part(), to_hex() (Joe)
 | 
						||
     * Fix LIKE for bytea as a right-hand argument (Joe)
 | 
						||
     * Prevent crashes caused by SELECT cash_out(2) (Tom)
 | 
						||
     * Fix to_char(1,'FM999.99') to return a period (Karel)
 | 
						||
     * Fix trigger/type/language functions returning OPAQUE to return
 | 
						||
       proper type (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Internationalization
 | 
						||
 | 
						||
     * Add additional encodings: Korean (JOHAB), Thai (WIN874),
 | 
						||
       Vietnamese (TCVN), Arabic (WIN1256), Simplified Chinese (GBK),
 | 
						||
       Korean (UHC) (Eiji Tokuya)
 | 
						||
     * Enable locale support by default (Peter)
 | 
						||
     * Add locale variables (Peter)
 | 
						||
     * Escape byes >= 0x7f for multibyte in PQescapeBytea/PQunescapeBytea
 | 
						||
       (Tatsuo)
 | 
						||
     * Add locale awareness to regular expression character classes
 | 
						||
     * Enable multibyte support by default (Tatsuo)
 | 
						||
     * Add GB18030 multibyte support (Bill Huang)
 | 
						||
     * Add CREATE/DROP CONVERSION, allowing loadable encodings (Tatsuo,
 | 
						||
       Kaori)
 | 
						||
     * Add pg_conversion table (Tatsuo)
 | 
						||
     * Add SQL99 CONVERT() function (Tatsuo)
 | 
						||
     * pg_dumpall, pg_controldata, and pg_resetxlog now national-language
 | 
						||
       aware (Peter)
 | 
						||
     * New and updated translations
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Server-side Languages
 | 
						||
 | 
						||
     * Allow recursive SQL function (Peter)
 | 
						||
     * Change PL/Tcl build to use configured compiler and Makefile.shlib
 | 
						||
       (Peter)
 | 
						||
     * Overhaul the PL/pgSQL FOUND variable to be more Oracle-compatible
 | 
						||
       (Neil, Tom)
 | 
						||
     * Allow PL/pgSQL to handle quoted identifiers (Tom)
 | 
						||
     * Allow set-returning PL/pgSQL functions (Neil)
 | 
						||
     * Make PL/pgSQL schema-aware (Joe)
 | 
						||
     * Remove some memory leaks (Nigel J. Andrews, Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
psql
 | 
						||
 | 
						||
     * Don't lowercase psql \connect database name for 7.2.0
 | 
						||
       compatibility (Tom)
 | 
						||
     * Add psql \timing to time user queries (Greg Sabino Mullane)
 | 
						||
     * Have psql \d show index information (Greg Sabino Mullane)
 | 
						||
     * New psql \dD shows domains (Jonathan Eisler)
 | 
						||
     * Allow psql to show rules on views (Paul ?)
 | 
						||
     * Fix for psql variable substitution (Tom)
 | 
						||
     * Allow psql \d to show temporary table structure (Tom)
 | 
						||
     * Allow psql \d to show foreign keys (Rod)
 | 
						||
     * Fix \? to honor \pset pager (Bruce)
 | 
						||
     * Have psql reports its version number on startup (Tom)
 | 
						||
     * Allow \copy to specify column names (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
libpq
 | 
						||
 | 
						||
     * Add $HOME/.pgpass to store host/user password combinations (Alvaro
 | 
						||
       Herrera)
 | 
						||
     * Add PQunescapeBytea() function to libpq (Patrick Welche)
 | 
						||
     * Fix for sending large queries over non-blocking connections
 | 
						||
       (Bernhard Herzog)
 | 
						||
     * Fix for libpq using timers on Win9X (David Ford)
 | 
						||
     * Allow libpq notify to handle servers with different-length
 | 
						||
       identifiers (Tom)
 | 
						||
     * Add libpq PQescapeString() and PQescapeBytea() to Windows (Bruce)
 | 
						||
     * Fix for SSL with non-blocking connections (Jack Bates)
 | 
						||
     * Add libpq connection timeout parameter (Denis A Ustimenko)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
JDBC
 | 
						||
 | 
						||
     * Allow JDBC to compile with JDK 1.4 (Dave)
 | 
						||
     * Add JDBC 3 support (Barry)
 | 
						||
     * Allows JDBC to set loglevel by adding ?loglevel=X to the
 | 
						||
       connection URL (Barry)
 | 
						||
     * Add Driver.info() message that prints out the version number
 | 
						||
       (Barry)
 | 
						||
     * Add updateable result sets (Raghu Nidagal, Dave)
 | 
						||
     * Add support for callable statements (Paul Bethe)
 | 
						||
     * Add query cancel capability
 | 
						||
     * Add refresh row (Dave)
 | 
						||
     * Fix MD5 encryption handling for multibyte servers (Jun Kawai)
 | 
						||
     * Add support for prepared statements (Barry)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Miscellaneous Interfaces
 | 
						||
 | 
						||
     * Fixed ECPG bug concerning octal numbers in single quotes (Michael)
 | 
						||
     * Move src/interfaces/libpgeasy to http://gborg.postgresql.org
 | 
						||
       (Marc, Bruce)
 | 
						||
     * Improve Python interface (Elliot Lee, Andrew Johnson, Greg
 | 
						||
       Copeland)
 | 
						||
     * Add libpgtcl connection close event (Gerhard Hintermayer)
 | 
						||
     * Move src/interfaces/libpq++ to http://gborg.postgresql.org (Marc,
 | 
						||
       Bruce)
 | 
						||
     * Move src/interfaces/odbc to http://gborg.postgresql.org (Marc)
 | 
						||
     * Move src/interfaces/libpgeasy to http://gborg.postgresql.org
 | 
						||
       (Marc, Bruce)
 | 
						||
     * Move src/interfaces/perl5 to http://gborg.postgresql.org (Marc,
 | 
						||
       Bruce)
 | 
						||
     * Remove src/bin/pgaccess from main tree, now at
 | 
						||
       http://www.pgaccess.org (Bruce)
 | 
						||
     * Add pg_on_connection_loss command to libpgtcl (Gerhard
 | 
						||
       Hintermayer, Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Source Code
 | 
						||
 | 
						||
     * Fix for parallel make (Peter)
 | 
						||
     * AIX fixes for linking Tcl (Andreas Zeugswetter)
 | 
						||
     * Allow PL/Perl to build under Cygwin (Jason Tishler)
 | 
						||
     * Improve MIPS compiles (Peter, Oliver Elphick)
 | 
						||
     * Require Autoconf version 2.53 (Peter)
 | 
						||
     * Require readline and zlib by default in configure (Peter)
 | 
						||
     * Allow Solaris to use Intimate Shared Memory (ISM), for performance
 | 
						||
       (Scott Brunza, P.J. Josh Rovero)
 | 
						||
     * Always enable syslog in compile, remove --enable-syslog option
 | 
						||
       (Tatsuo)
 | 
						||
     * Always enable multibyte in compile, remove --enable-multibyte
 | 
						||
       option (Tatsuo)
 | 
						||
     * Always enable locale in compile, remove --enable-locale option
 | 
						||
       (Peter)
 | 
						||
     * Fix for Win9x DLL creation (Magnus Naeslund)
 | 
						||
     * Fix for link() usage by WAL code on Windows, BeOS (Jason Tishler)
 | 
						||
     * Add sys/types.h to c.h, remove from main files (Peter, Bruce)
 | 
						||
     * Fix AIX hang on SMP machines (Tomoyuki Niijima)
 | 
						||
     * AIX SMP hang fix (Tomoyuki Niijima)
 | 
						||
     * Fix pre-1970 date handling on newer glibc libraries (Tom)
 | 
						||
     * Fix PowerPC SMP locking (Tom)
 | 
						||
     * Prevent gcc -ffast-math from being used (Peter, Tom)
 | 
						||
     * Bison >= 1.50 now required for developer builds
 | 
						||
     * Kerberos 5 support now builds with Heimdal (Peter)
 | 
						||
     * Add appendix in the User's Guide which lists SQL features (Thomas)
 | 
						||
     * Improve loadable module linking to use RTLD_NOW (Tom)
 | 
						||
     * New error levels WARNING, INFO, LOG, DEBUG[1-5] (Bruce)
 | 
						||
     * New src/port directory holds replaced libc functions (Peter,
 | 
						||
       Bruce)
 | 
						||
     * New pg_namespace system catalog for schemas (Tom)
 | 
						||
     * Add pg_class.relnamespace for schemas (Tom)
 | 
						||
     * Add pg_type.typnamespace for schemas (Tom)
 | 
						||
     * Add pg_proc.pronamespace for schemas (Tom)
 | 
						||
     * Restructure aggregates to have pg_proc entries (Tom)
 | 
						||
     * System relations now have their own namespace, pg_* test not
 | 
						||
       required (Fernando Nasser)
 | 
						||
     * Rename TOAST index names to be *_index rather than *_idx (Neil)
 | 
						||
     * Add namespaces for operators, opclasses (Tom)
 | 
						||
     * Add additional checks to server control file (Thomas)
 | 
						||
     * New Polish FAQ (Marcin Mazurek)
 | 
						||
     * Add Posix semaphore support (Tom)
 | 
						||
     * Document need for reindex (Bruce)
 | 
						||
     * Rename some internal identifiers to simplify Windows compile (Jan,
 | 
						||
       Katherine Ward)
 | 
						||
     * Add documentation on computing disk space (Bruce)
 | 
						||
     * Remove KSQO from GUC (Bruce)
 | 
						||
     * Fix memory leak in rtree (Kenneth Been)
 | 
						||
     * Modify a few error messages for consistency (Bruce)
 | 
						||
     * Remove unused system table columns (Peter)
 | 
						||
     * Make system columns NOT NULL where appropriate (Tom)
 | 
						||
     * Clean up use of sprintf in favor of snprintf() (Neil, Jukka
 | 
						||
       Holappa)
 | 
						||
     * Remove OPAQUE and create specific subtypes (Tom)
 | 
						||
     * Cleanups in array internal handling (Joe, Tom)
 | 
						||
     * Disallow pg_atoi('') (Bruce)
 | 
						||
     * Remove parameter wal_files because WAL files are now recycled
 | 
						||
       (Bruce)
 | 
						||
     * Add version numbers to heap pages (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Contrib
 | 
						||
 | 
						||
     * Allow inet arrays in /contrib/array (Neil)
 | 
						||
     * GiST fixes (Teodor Sigaev, Neil)
 | 
						||
     * Upgrade /contrib/mysql
 | 
						||
     * Add /contrib/dbsize which shows table sizes without vacuum (Peter)
 | 
						||
     * Add /contrib/intagg, integer aggregator routines (mlw)
 | 
						||
     * Improve /contrib/oid2name (Neil, Bruce)
 | 
						||
     * Improve /contrib/tsearch (Oleg, Teodor Sigaev)
 | 
						||
     * Cleanups of /contrib/rserver (Alexey V. Borzov)
 | 
						||
     * Update /contrib/oracle conversion utility (Gilles Darold)
 | 
						||
     * Update /contrib/dblink (Joe)
 | 
						||
     * Improve options supported by /contrib/vacuumlo (Mario Weilguni)
 | 
						||
     * Improvements to /contrib/intarray (Oleg, Teodor Sigaev, Andrey
 | 
						||
       Oktyabrski)
 | 
						||
     * Add /contrib/reindexdb utility (Shaun Thomas)
 | 
						||
     * Add indexing to /contrib/isbn_issn (Dan Weston)
 | 
						||
     * Add /contrib/dbmirror (Steven Singer)
 | 
						||
     * Improve /contrib/pgbench (Neil)
 | 
						||
     * Add /contrib/tablefunc table function examples (Joe)
 | 
						||
     * Add /contrib/ltree data type for tree structures (Teodor Sigaev,
 | 
						||
       Oleg Bartunov)
 | 
						||
     * Move /contrib/pg_controldata, pg_resetxlog into main tree (Bruce)
 | 
						||
     * Fixes to /contrib/cube (Bruno Wolff)
 | 
						||
     * Improve /contrib/fulltextindex (Christopher)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.2.4
 | 
						||
                                      
 | 
						||
     Release date: 2003-01-30
 | 
						||
     
 | 
						||
   This release contains a variety of fixes for version 7.2.3, including
 | 
						||
   fixes to prevent possible data loss.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.2.4
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running version 7.2.*.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
     * Fix some additional cases of VACUUM "No one parent tuple was
 | 
						||
       found" error
 | 
						||
     * Prevent VACUUM from being called inside a function (Bruce)
 | 
						||
     * Ensure pg_clog updates are sync'd to disk before marking
 | 
						||
       checkpoint complete
 | 
						||
     * Avoid integer overflow during large hash joins
 | 
						||
     * Make GROUP commands work when pg_group.grolist is large enough to
 | 
						||
       be toasted
 | 
						||
     * Fix errors in datetime tables; some timezone names weren't being
 | 
						||
       recognized
 | 
						||
     * Fix integer overflows in circle_poly(), path_encode(), path_add()
 | 
						||
       (Neil)
 | 
						||
     * Repair long-standing logic errors in lseg_eq(), lseg_ne(),
 | 
						||
       lseg_center()
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.2.3
 | 
						||
                                      
 | 
						||
     Release date: 2002-10-01
 | 
						||
     
 | 
						||
   This release contains a variety of fixes for version 7.2.2, including
 | 
						||
   fixes to prevent possible data loss.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.2.3
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running version 7.2.*.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
     * Prevent possible compressed transaction log loss (Tom)
 | 
						||
     * Prevent non-superuser from increasing most recent vacuum info
 | 
						||
       (Tom)
 | 
						||
     * Handle pre-1970 date values in newer versions of glibc (Tom)
 | 
						||
     * Fix possible hang during server shutdown
 | 
						||
     * Prevent spinlock hangs on SMP PPC machines (Tomoyuki Niijima)
 | 
						||
     * Fix pg_dump to properly dump FULL JOIN USING (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.2.2
 | 
						||
                                      
 | 
						||
     Release date: 2002-08-23
 | 
						||
     
 | 
						||
   This release contains a variety of fixes for version 7.2.1.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.2.2
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running version 7.2.*.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
     * Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)
 | 
						||
     * Fix for compressed transaction log id wraparound (Tom)
 | 
						||
     * Fix PQescapeBytea/PQunescapeBytea so that they handle bytes > 0x7f
 | 
						||
       (Tatsuo)
 | 
						||
     * Fix for psql and pg_dump crashing when invoked with non-existent
 | 
						||
       long options (Tatsuo)
 | 
						||
     * Fix crash when invoking geometric operators (Tom)
 | 
						||
     * Allow OPEN cursor(args) (Tom)
 | 
						||
     * Fix for rtree_gist index build (Teodor)
 | 
						||
     * Fix for dumping user-defined aggregates (Tom)
 | 
						||
     * contrib/intarray fixes (Oleg)
 | 
						||
     * Fix for complex UNION/EXCEPT/INTERSECT queries using parens (Tom)
 | 
						||
     * Fix to pg_convert (Tatsuo)
 | 
						||
     * Fix for crash with long DATA strings (Thomas, Neil)
 | 
						||
     * Fix for repeat(), lpad(), rpad() and long strings (Neil)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.2.1
 | 
						||
                                      
 | 
						||
     Release date: 2002-03-21
 | 
						||
     
 | 
						||
   This release contains a variety of fixes for version 7.2.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.2.1
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running version 7.2.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
     * Ensure that sequence counters do not go backwards after a crash
 | 
						||
       (Tom)
 | 
						||
     * Fix pgaccess kanji-conversion key binding (Tatsuo)
 | 
						||
     * Optimizer improvements (Tom)
 | 
						||
     * Cash I/O improvements (Tom)
 | 
						||
     * New Russian FAQ
 | 
						||
     * Compile fix for missing AuthBlockSig (Heiko)
 | 
						||
     * Additional time zones and time zone fixes (Thomas)
 | 
						||
     * Allow psql \connect to handle mixed case database and user names
 | 
						||
       (Tom)
 | 
						||
     * Return proper OID on command completion even with ON INSERT rules
 | 
						||
       (Tom)
 | 
						||
     * Allow COPY FROM to use 8-bit DELIMITERS (Tatsuo)
 | 
						||
     * Fix bug in extract/date_part for milliseconds/microseconds
 | 
						||
       (Tatsuo)
 | 
						||
     * Improve handling of multiple UNIONs with different lengths (Tom)
 | 
						||
     * contrib/btree_gist improvements (Teodor Sigaev)
 | 
						||
     * contrib/tsearch dictionary improvements, see README.tsearch for an
 | 
						||
       additional installation step (Thomas T. Thai, Teodor Sigaev)
 | 
						||
     * Fix for array subscripts handling (Tom)
 | 
						||
     * Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                Release 7.2
 | 
						||
                                      
 | 
						||
     Release date: 2002-02-04
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Overview
 | 
						||
                                      
 | 
						||
   This release improves PostgreSQL for use in high-volume applications.
 | 
						||
   
 | 
						||
   Major changes in this release:
 | 
						||
   
 | 
						||
   VACUUM
 | 
						||
          Vacuuming no longer locks tables, thus allowing normal user
 | 
						||
          access during the vacuum. A new "VACUUM FULL" command does
 | 
						||
          old-style vacuum by locking the table and shrinking the on-disk
 | 
						||
          copy of the table.
 | 
						||
          
 | 
						||
   Transactions
 | 
						||
          There is no longer a problem with installations that exceed
 | 
						||
          four billion transactions.
 | 
						||
          
 | 
						||
   OIDs
 | 
						||
          OIDs are now optional. Users can now create tables without OIDs
 | 
						||
          for cases where OID usage is excessive.
 | 
						||
          
 | 
						||
   Optimizer
 | 
						||
          The system now computes histogram column statistics during
 | 
						||
          "ANALYZE", allowing much better optimizer choices.
 | 
						||
          
 | 
						||
   Security
 | 
						||
          A new MD5 encryption option allows more secure storage and
 | 
						||
          transfer of passwords. A new Unix-domain socket authentication
 | 
						||
          option is available on Linux and BSD systems.
 | 
						||
          
 | 
						||
   Statistics
 | 
						||
          Administrators can use the new table access statistics module
 | 
						||
          to get fine-grained information about table and index usage.
 | 
						||
          
 | 
						||
   Internationalization
 | 
						||
          Program and library messages can now be displayed in several
 | 
						||
          languages.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                          Migration to version 7.2
 | 
						||
                                      
 | 
						||
   A dump/restore using "pg_dump" is required for those wishing to
 | 
						||
   migrate data from any previous release.
 | 
						||
   
 | 
						||
   Observe the following incompatibilities:
 | 
						||
   
 | 
						||
     * The semantics of the "VACUUM" command have changed in this
 | 
						||
       release. You may wish to update your maintenance procedures
 | 
						||
       accordingly.
 | 
						||
     * In this release, comparisons using = NULL will always return false
 | 
						||
       (or NULL, more precisely). Previous releases automatically
 | 
						||
       transformed this syntax to IS NULL. The old behavior can be
 | 
						||
       re-enabled using a "postgresql.conf" parameter.
 | 
						||
     * The "pg_hba.conf" and "pg_ident.conf" configuration is now only
 | 
						||
       reloaded after receiving a SIGHUP signal, not with each
 | 
						||
       connection.
 | 
						||
     * The function "octet_length()" now returns the uncompressed data
 | 
						||
       length.
 | 
						||
     * The date/time value 'current' is no longer available. You will
 | 
						||
       need to rewrite your applications.
 | 
						||
     * The timestamp(), time(), and interval() functions are no longer
 | 
						||
       available. Instead of timestamp(), use timestamp 'string' or CAST.
 | 
						||
       
 | 
						||
   The SELECT ... LIMIT #,# syntax will be removed in the next release.
 | 
						||
   You should change your queries to use separate LIMIT and OFFSET
 | 
						||
   clauses, e.g. LIMIT 10 OFFSET 20.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Server Operation
 | 
						||
 | 
						||
     * Create temporary files in a separate directory (Bruce)
 | 
						||
     * Delete orphaned temporary files on postmaster startup (Bruce)
 | 
						||
     * Added unique indexes to some system tables (Tom)
 | 
						||
     * System table operator reorganization (Oleg Bartunov, Teodor
 | 
						||
       Sigaev, Tom)
 | 
						||
     * Renamed pg_log to pg_clog (Tom)
 | 
						||
     * Enable SIGTERM, SIGQUIT to kill backends (Jan)
 | 
						||
     * Removed compile-time limit on number of backends (Tom)
 | 
						||
     * Better cleanup for semaphore resource failure (Tatsuo, Tom)
 | 
						||
     * Allow safe transaction ID wraparound (Tom)
 | 
						||
     * Removed OIDs from some system tables (Tom)
 | 
						||
     * Removed "triggered data change violation" error check (Tom)
 | 
						||
     * SPI portal creation of prepared/saved plans (Jan)
 | 
						||
     * Allow SPI column functions to work for system columns (Tom)
 | 
						||
     * Long value compression improvement (Tom)
 | 
						||
     * Statistics collector for table, index access (Jan)
 | 
						||
     * Truncate extra-long sequence names to a reasonable value (Tom)
 | 
						||
     * Measure transaction times in milliseconds (Thomas)
 | 
						||
     * Fix TID sequential scans (Hiroshi)
 | 
						||
     * Superuser ID now fixed at 1 (Peter E)
 | 
						||
     * New pg_ctl "reload" option (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Performance
 | 
						||
 | 
						||
     * Optimizer improvements (Tom)
 | 
						||
     * New histogram column statistics for optimizer (Tom)
 | 
						||
     * Reuse write-ahead log files rather than discarding them (Tom)
 | 
						||
     * Cache improvements (Tom)
 | 
						||
     * IS NULL, IS NOT NULL optimizer improvement (Tom)
 | 
						||
     * Improve lock manager to reduce lock contention (Tom)
 | 
						||
     * Keep relcache entries for index access support functions (Tom)
 | 
						||
     * Allow better selectivity with NaN and infinities in NUMERIC (Tom)
 | 
						||
     * R-tree performance improvements (Kenneth Been)
 | 
						||
     * B-tree splits more efficient (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Privileges
 | 
						||
 | 
						||
     * Change UPDATE, DELETE privileges to be distinct (Peter E)
 | 
						||
     * New REFERENCES, TRIGGER privileges (Peter E)
 | 
						||
     * Allow GRANT/REVOKE to/from more than one user at a time (Peter E)
 | 
						||
     * New has_table_privilege() function (Joe Conway)
 | 
						||
     * Allow non-superuser to vacuum database (Tom)
 | 
						||
     * New SET SESSION AUTHORIZATION command (Peter E)
 | 
						||
     * Fix bug in privilege modifications on newly created tables (Tom)
 | 
						||
     * Disallow access to pg_statistic for non-superuser, add
 | 
						||
       user-accessible views (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Client Authentication
 | 
						||
 | 
						||
     * Fork postmaster before doing authentication to prevent hangs
 | 
						||
       (Peter E)
 | 
						||
     * Add ident authentication over Unix domain sockets on Linux, *BSD
 | 
						||
       (Helge Bahmann, Oliver Elphick, Teodor Sigaev, Bruce)
 | 
						||
     * Add a password authentication method that uses MD5 encryption
 | 
						||
       (Bruce)
 | 
						||
     * Allow encryption of stored passwords using MD5 (Bruce)
 | 
						||
     * PAM authentication (Dominic J. Eidson)
 | 
						||
     * Load pg_hba.conf and pg_ident.conf only on startup and SIGHUP
 | 
						||
       (Bruce)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Server Configuration
 | 
						||
 | 
						||
     * Interpretation of some time zone abbreviations as Australian
 | 
						||
       rather than North American now settable at run time (Bruce)
 | 
						||
     * New parameter to set default transaction isolation level (Peter E)
 | 
						||
     * New parameter to enable conversion of "expr = NULL" into "expr IS
 | 
						||
       NULL", off by default (Peter E)
 | 
						||
     * New parameter to control memory usage by VACUUM (Tom)
 | 
						||
     * New parameter to set client authentication timeout (Tom)
 | 
						||
     * New parameter to set maximum number of open files (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Queries
 | 
						||
 | 
						||
     * Statements added by INSERT rules now execute after the INSERT
 | 
						||
       (Jan)
 | 
						||
     * Prevent unadorned relation names in target list (Bruce)
 | 
						||
     * NULLs now sort after all normal values in ORDER BY (Tom)
 | 
						||
     * New IS UNKNOWN, IS NOT UNKNOWN Boolean tests (Tom)
 | 
						||
     * New SHARE UPDATE EXCLUSIVE lock mode (Tom)
 | 
						||
     * New EXPLAIN ANALYZE command that shows run times and row counts
 | 
						||
       (Martijn van Oosterhout)
 | 
						||
     * Fix problem with LIMIT and subqueries (Tom)
 | 
						||
     * Fix for LIMIT, DISTINCT ON pushed into subqueries (Tom)
 | 
						||
     * Fix nested EXCEPT/INTERSECT (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Schema Manipulation
 | 
						||
 | 
						||
     * Fix SERIAL in temporary tables (Bruce)
 | 
						||
     * Allow temporary sequences (Bruce)
 | 
						||
     * Sequences now use int8 internally (Tom)
 | 
						||
     * New SERIAL8 creates int8 columns with sequences, default still
 | 
						||
       SERIAL4 (Tom)
 | 
						||
     * Make OIDs optional using WITHOUT OIDS (Tom)
 | 
						||
     * Add %TYPE syntax to CREATE TYPE (Ian Lance Taylor)
 | 
						||
     * Add ALTER TABLE / DROP CONSTRAINT for CHECK constraints
 | 
						||
       (Christopher Kings-Lynne)
 | 
						||
     * New CREATE OR REPLACE FUNCTION to alter existing function
 | 
						||
       (preserving the function OID) (Gavin Sherry)
 | 
						||
     * Add ALTER TABLE / ADD [ UNIQUE | PRIMARY ] (Christopher
 | 
						||
       Kings-Lynne)
 | 
						||
     * Allow column renaming in views
 | 
						||
     * Make ALTER TABLE / RENAME COLUMN update column names of indexes
 | 
						||
       (Brent Verner)
 | 
						||
     * Fix for ALTER TABLE / ADD CONSTRAINT ... CHECK with inherited
 | 
						||
       tables (Stephan Szabo)
 | 
						||
     * ALTER TABLE RENAME update foreign-key trigger arguments correctly
 | 
						||
       (Brent Verner)
 | 
						||
     * DROP AGGREGATE and COMMENT ON AGGREGATE now accept an aggtype
 | 
						||
       (Tom)
 | 
						||
     * Add automatic return type data casting for SQL functions (Tom)
 | 
						||
     * Allow GiST indexes to handle NULLs and multikey indexes (Oleg
 | 
						||
       Bartunov, Teodor Sigaev, Tom)
 | 
						||
     * Enable partial indexes (Martijn van Oosterhout)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Utility Commands
 | 
						||
 | 
						||
     * Add RESET ALL, SHOW ALL (Marko Kreen)
 | 
						||
     * CREATE/ALTER USER/GROUP now allow options in any order (Vince)
 | 
						||
     * Add LOCK A, B, C functionality (Neil Padgett)
 | 
						||
     * New ENCRYPTED/UNENCRYPTED option to CREATE/ALTER USER (Bruce)
 | 
						||
     * New light-weight VACUUM does not lock table; old semantics are
 | 
						||
       available as VACUUM FULL (Tom)
 | 
						||
     * Disable COPY TO/FROM on views (Bruce)
 | 
						||
     * COPY DELIMITERS string must be exactly one character (Tom)
 | 
						||
     * VACUUM warning about index tuples fewer than heap now only appears
 | 
						||
       when appropriate (Martijn van Oosterhout)
 | 
						||
     * Fix privilege checks for CREATE INDEX (Tom)
 | 
						||
     * Disallow inappropriate use of CREATE/DROP INDEX/TRIGGER/VIEW (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Data Types and Functions
 | 
						||
 | 
						||
     * SUM(), AVG(), COUNT() now uses int8 internally for speed (Tom)
 | 
						||
     * Add convert(), convert2() (Tatsuo)
 | 
						||
     * New function bit_length() (Peter E)
 | 
						||
     * Make the "n" in CHAR(n)/VARCHAR(n) represents letters, not bytes
 | 
						||
       (Tatsuo)
 | 
						||
     * CHAR(), VARCHAR() now reject strings that are too long (Peter E)
 | 
						||
     * BIT VARYING now rejects bit strings that are too long (Peter E)
 | 
						||
     * BIT now rejects bit strings that do not match declared size (Peter
 | 
						||
       E)
 | 
						||
     * INET, CIDR text conversion functions (Alex Pilosov)
 | 
						||
     * INET, CIDR operators << and <<= indexable (Alex Pilosov)
 | 
						||
     * Bytea \### now requires valid three digit octal number
 | 
						||
     * Bytea comparison improvements, now supports =, <>, >, >=, <, and
 | 
						||
       <=
 | 
						||
     * Bytea now supports B-tree indexes
 | 
						||
     * Bytea now supports LIKE, LIKE...ESCAPE, NOT LIKE, NOT
 | 
						||
       LIKE...ESCAPE
 | 
						||
     * Bytea now supports concatenation
 | 
						||
     * New bytea functions: position, substring, trim, btrim, and length
 | 
						||
     * New encode() function mode, "escaped", converts minimally escaped
 | 
						||
       bytea to/from text
 | 
						||
     * Add pg_database_encoding_max_length() (Tatsuo)
 | 
						||
     * Add pg_client_encoding() function (Tatsuo)
 | 
						||
     * now() returns time with millisecond precision (Thomas)
 | 
						||
     * New TIMESTAMP WITHOUT TIMEZONE data type (Thomas)
 | 
						||
     * Add ISO date/time specification with "T", yyyy-mm-ddThh:mm:ss
 | 
						||
       (Thomas)
 | 
						||
     * New xid/int comparison functions (Hiroshi)
 | 
						||
     * Add precision to TIME, TIMESTAMP, and INTERVAL data types (Thomas)
 | 
						||
     * Modify type coercion logic to attempt binary-compatible functions
 | 
						||
       first (Tom)
 | 
						||
     * New encode() function installed by default (Marko Kreen)
 | 
						||
     * Improved to_*() conversion functions (Karel Zak)
 | 
						||
     * Optimize LIKE/ILIKE when using single-byte encodings (Tatsuo)
 | 
						||
     * New functions in contrib/pgcrypto: crypt(), hmac(), encrypt(),
 | 
						||
       gen_salt() (Marko Kreen)
 | 
						||
     * Correct description of translate() function (Bruce)
 | 
						||
     * Add INTERVAL argument for SET TIME ZONE (Thomas)
 | 
						||
     * Add INTERVAL YEAR TO MONTH (etc.) syntax (Thomas)
 | 
						||
     * Optimize length functions when using single-byte encodings
 | 
						||
       (Tatsuo)
 | 
						||
     * Fix path_inter, path_distance, path_length, dist_ppath to handle
 | 
						||
       closed paths (Curtis Barrett, Tom)
 | 
						||
     * octet_length(text) now returns non-compressed length (Tatsuo,
 | 
						||
       Bruce)
 | 
						||
     * Handle "July" full name in date/time literals (Greg Sabino
 | 
						||
       Mullane)
 | 
						||
     * Some datatype() function calls now evaluated differently
 | 
						||
     * Add support for Julian and ISO time specifications (Thomas)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Internationalization
 | 
						||
 | 
						||
     * National language support in psql, pg_dump, libpq, and server
 | 
						||
       (Peter E)
 | 
						||
     * Message translations in Chinese (simplified, traditional), Czech,
 | 
						||
       French, German, Hungarian, Russian, Swedish (Peter E, Serguei A.
 | 
						||
       Mokhov, Karel Zak, Weiping He, Zhenbang Wei, Kovacs Zoltan)
 | 
						||
     * Make trim, ltrim, rtrim, btrim, lpad, rpad, translate multibyte
 | 
						||
       aware (Tatsuo)
 | 
						||
     * Add LATIN5,6,7,8,9,10 support (Tatsuo)
 | 
						||
     * Add ISO 8859-5,6,7,8 support (Tatsuo)
 | 
						||
     * Correct LATIN5 to mean ISO-8859-9, not ISO-8859-5 (Tatsuo)
 | 
						||
     * Make mic2ascii() non-ASCII aware (Tatsuo)
 | 
						||
     * Reject invalid multibyte character sequences (Tatsuo)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
PL/pgSQL
 | 
						||
 | 
						||
     * Now uses portals for SELECT loops, allowing huge result sets (Jan)
 | 
						||
     * CURSOR and REFCURSOR support (Jan)
 | 
						||
     * Can now return open cursors (Jan)
 | 
						||
     * Add ELSEIF (Klaus Reger)
 | 
						||
     * Improve PL/pgSQL error reporting, including location of error
 | 
						||
       (Tom)
 | 
						||
     * Allow IS or FOR key words in cursor declaration, for compatibility
 | 
						||
       (Bruce)
 | 
						||
     * Fix for SELECT ... FOR UPDATE (Tom)
 | 
						||
     * Fix for PERFORM returning multiple rows (Tom)
 | 
						||
     * Make PL/pgSQL use the server's type coercion code (Tom)
 | 
						||
     * Memory leak fix (Jan, Tom)
 | 
						||
     * Make trailing semicolon optional (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
PL/Perl
 | 
						||
 | 
						||
     * New untrusted PL/Perl (Alex Pilosov)
 | 
						||
     * PL/Perl is now built on some platforms even if libperl is not
 | 
						||
       shared (Peter E)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
PL/Tcl
 | 
						||
 | 
						||
     * Now reports errorInfo (Vsevolod Lobko)
 | 
						||
     * Add spi_lastoid function (bob@redivi.com)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
PL/Python
 | 
						||
 | 
						||
     * ...is new (Andrew Bosma)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
psql
 | 
						||
 | 
						||
     * \d displays indexes in unique, primary groupings (Christopher
 | 
						||
       Kings-Lynne)
 | 
						||
     * Allow trailing semicolons in backslash commands (Greg Sabino
 | 
						||
       Mullane)
 | 
						||
     * Read password from /dev/tty if possible
 | 
						||
     * Force new password prompt when changing user and database (Tatsuo,
 | 
						||
       Tom)
 | 
						||
     * Format the correct number of columns for Unicode (Patrice)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
libpq
 | 
						||
 | 
						||
     * New function PQescapeString() to escape quotes in command strings
 | 
						||
       (Florian Weimer)
 | 
						||
     * New function PQescapeBytea() escapes binary strings for use as SQL
 | 
						||
       string literals
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
JDBC
 | 
						||
 | 
						||
     * Return OID of INSERT (Ken K)
 | 
						||
     * Handle more data types (Ken K)
 | 
						||
     * Handle single quotes and newlines in strings (Ken K)
 | 
						||
     * Handle NULL variables (Ken K)
 | 
						||
     * Fix for time zone handling (Barry Lind)
 | 
						||
     * Improved Druid support
 | 
						||
     * Allow eight-bit characters with non-multibyte server (Barry Lind)
 | 
						||
     * Support BIT, BINARY types (Ned Wolpert)
 | 
						||
     * Reduce memory usage (Michael Stephens, Dave Cramer)
 | 
						||
     * Update DatabaseMetaData (Peter E)
 | 
						||
     * Add DatabaseMetaData.getCatalogs() (Peter E)
 | 
						||
     * Encoding fixes (Anders Bengtsson)
 | 
						||
     * Get/setCatalog methods (Jason Davies)
 | 
						||
     * DatabaseMetaData.getColumns() now returns column defaults (Jason
 | 
						||
       Davies)
 | 
						||
     * DatabaseMetaData.getColumns() performance improvement (Jeroen van
 | 
						||
       Vianen)
 | 
						||
     * Some JDBC1 and JDBC2 merging (Anders Bengtsson)
 | 
						||
     * Transaction performance improvements (Barry Lind)
 | 
						||
     * Array fixes (Greg Zoller)
 | 
						||
     * Serialize addition
 | 
						||
     * Fix batch processing (Rene Pijlman)
 | 
						||
     * ExecSQL method reorganization (Anders Bengtsson)
 | 
						||
     * GetColumn() fixes (Jeroen van Vianen)
 | 
						||
     * Fix isWriteable() function (Rene Pijlman)
 | 
						||
     * Improved passage of JDBC2 conformance tests (Rene Pijlman)
 | 
						||
     * Add bytea type capability (Barry Lind)
 | 
						||
     * Add isNullable() (Rene Pijlman)
 | 
						||
     * JDBC date/time test suite fixes (Liam Stewart)
 | 
						||
     * Fix for SELECT 'id' AS xxx FROM table (Dave Cramer)
 | 
						||
     * Fix DatabaseMetaData to show precision properly (Mark Lillywhite)
 | 
						||
     * New getImported/getExported keys (Jason Davies)
 | 
						||
     * MD5 password encryption support (Jeremy Wohl)
 | 
						||
     * Fix to actually use type cache (Ned Wolpert)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
ODBC
 | 
						||
 | 
						||
     * Remove query size limit (Hiroshi)
 | 
						||
     * Remove text field size limit (Hiroshi)
 | 
						||
     * Fix for SQLPrimaryKeys in multibyte mode (Hiroshi)
 | 
						||
     * Allow ODBC procedure calls (Hiroshi)
 | 
						||
     * Improve boolean handing (Aidan Mountford)
 | 
						||
     * Most configuration options now settable via DSN (Hiroshi)
 | 
						||
     * Multibyte, performance fixes (Hiroshi)
 | 
						||
     * Allow driver to be used with iODBC or unixODBC (Peter E)
 | 
						||
     * MD5 password encryption support (Bruce)
 | 
						||
     * Add more compatibility functions to odbc.sql (Peter E)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
ECPG
 | 
						||
 | 
						||
     * EXECUTE ... INTO implemented (Christof Petig)
 | 
						||
     * Multiple row descriptor support (e.g. CARDINALITY) (Christof
 | 
						||
       Petig)
 | 
						||
     * Fix for GRANT parameters (Lee Kindness)
 | 
						||
     * Fix INITIALLY DEFERRED bug
 | 
						||
     * Various bug fixes (Michael, Christof Petig)
 | 
						||
     * Auto allocation for indicator variable arrays (int *ind_p=NULL)
 | 
						||
     * Auto allocation for string arrays (char **foo_pp=NULL)
 | 
						||
     * ECPGfree_auto_mem fixed
 | 
						||
     * All function names with external linkage are now prefixed by ECPG
 | 
						||
     * Fixes for arrays of structures (Michael)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Misc. Interfaces
 | 
						||
 | 
						||
     * Python fix fetchone() (Gerhard Haring)
 | 
						||
     * Use UTF, Unicode in Tcl where appropriate (Vsevolod Lobko,
 | 
						||
       Reinhard Max)
 | 
						||
     * Add Tcl COPY TO/FROM (ljb)
 | 
						||
     * Prevent output of default index op class in pg_dump (Tom)
 | 
						||
     * Fix libpgeasy memory leak (Bruce)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Build and Install
 | 
						||
 | 
						||
     * Configure, dynamic loader, and shared library fixes (Peter E)
 | 
						||
     * Fixes in QNX 4 port (Bernd Tegge)
 | 
						||
     * Fixes in Cygwin and Windows ports (Jason Tishler, Gerhard Haring,
 | 
						||
       Dmitry Yurtaev, Darko Prenosil, Mikhail Terekhov)
 | 
						||
     * Fix for Windows socket communication failures (Magnus, Mikhail
 | 
						||
       Terekhov)
 | 
						||
     * Hurd compile fix (Oliver Elphick)
 | 
						||
     * BeOS fixes (Cyril Velter)
 | 
						||
     * Remove configure --enable-unicode-conversion, now enabled by
 | 
						||
       multibyte (Tatsuo)
 | 
						||
     * AIX fixes (Tatsuo, Andreas)
 | 
						||
     * Fix parallel make (Peter E)
 | 
						||
     * Install SQL language manual pages into OS-specific directories
 | 
						||
       (Peter E)
 | 
						||
     * Rename config.h to pg_config.h (Peter E)
 | 
						||
     * Reorganize installation layout of header files (Peter E)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Source Code
 | 
						||
 | 
						||
     * Remove SEP_CHAR (Bruce)
 | 
						||
     * New GUC hooks (Tom)
 | 
						||
     * Merge GUC and command line handling (Marko Kreen)
 | 
						||
     * Remove EXTEND INDEX (Martijn van Oosterhout, Tom)
 | 
						||
     * New pgjindent utility to indent java code (Bruce)
 | 
						||
     * Remove define of true/false when compiling under C++ (Leandro
 | 
						||
       Fanzone, Tom)
 | 
						||
     * pgindent fixes (Bruce, Tom)
 | 
						||
     * Replace strcasecmp() with strcmp() where appropriate (Peter E)
 | 
						||
     * Dynahash portability improvements (Tom)
 | 
						||
     * Add 'volatile' usage in spinlock structures
 | 
						||
     * Improve signal handling logic (Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Contrib
 | 
						||
 | 
						||
     * New contrib/rtree_gist (Oleg Bartunov, Teodor Sigaev)
 | 
						||
     * New contrib/tsearch full-text indexing (Oleg, Teodor Sigaev)
 | 
						||
     * Add contrib/dblink for remote database access (Joe Conway)
 | 
						||
     * contrib/ora2pg Oracle conversion utility (Gilles Darold)
 | 
						||
     * contrib/xml XML conversion utility (John Gray)
 | 
						||
     * contrib/fulltextindex fixes (Christopher Kings-Lynne)
 | 
						||
     * New contrib/fuzzystrmatch with levenshtein and metaphone, soundex
 | 
						||
       merged (Joe Conway)
 | 
						||
     * Add contrib/intarray boolean queries, binary search, fixes (Oleg
 | 
						||
       Bartunov)
 | 
						||
     * New pg_upgrade utility (Bruce)
 | 
						||
     * Add new pg_resetxlog options (Bruce, Tom)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.1.3
 | 
						||
                                      
 | 
						||
     Release date: 2001-08-15
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.1.3
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running 7.1.X.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Remove unused WAL segements of large transactions (Tom)
 | 
						||
Multiaction rule fix (Tom)
 | 
						||
PL/pgSQL memory allocation fix (Jan)
 | 
						||
VACUUM buffer fix (Tom)
 | 
						||
Regression test fixes (Tom)
 | 
						||
pg_dump fixes for GRANT/REVOKE/comments on views, user-defined types (Tom)
 | 
						||
Fix subselects with DISTINCT ON or LIMIT (Tom)
 | 
						||
BeOS fix
 | 
						||
Disable COPY TO/FROM a view (Tom)
 | 
						||
Cygwin build (Jason Tishler)
 | 
						||
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.1.2
 | 
						||
                                      
 | 
						||
     Release date: 2001-05-11
 | 
						||
     
 | 
						||
   This has one fix from 7.1.1.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.1.2
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running 7.1.X.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Fix PL/pgSQL SELECTs when returning no rows
 | 
						||
Fix for psql backslash core dump
 | 
						||
Referential integrity privilege fix
 | 
						||
Optimizer fixes
 | 
						||
pg_dump cleanups
 | 
						||
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.1.1
 | 
						||
                                      
 | 
						||
     Release date: 2001-05-05
 | 
						||
     
 | 
						||
   This has a variety of fixes from 7.1.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.1.1
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running 7.1.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Fix for numeric MODULO operator (Tom)
 | 
						||
pg_dump fixes (Philip)
 | 
						||
pg_dump can dump 7.0 databases (Philip)
 | 
						||
readline 4.2 fixes (Peter E)
 | 
						||
JOIN fixes (Tom)
 | 
						||
AIX, MSWIN, VAX, N32K fixes (Tom)
 | 
						||
Multibytes fixes (Tom)
 | 
						||
Unicode fixes (Tatsuo)
 | 
						||
Optimizer improvements (Tom)
 | 
						||
Fix for whole rows in functions (Tom)
 | 
						||
Fix for pg_ctl and option strings with spaces (Peter E)
 | 
						||
ODBC fixes (Hiroshi)
 | 
						||
EXTRACT can now take string argument (Thomas)
 | 
						||
Python fixes (Darcy)
 | 
						||
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                Release 7.1
 | 
						||
                                      
 | 
						||
     Release date: 2001-04-13
 | 
						||
     
 | 
						||
   This release focuses on removing limitations that have existed in the
 | 
						||
   PostgreSQL code for many years.
 | 
						||
   
 | 
						||
   Major changes in this release:
 | 
						||
   
 | 
						||
   Write-ahead Log (WAL)
 | 
						||
          To maintain database consistency in case of an operating system
 | 
						||
          crash, previous releases of PostgreSQL have forced all data
 | 
						||
          modifications to disk before each transaction commit. With WAL,
 | 
						||
          only one log file must be flushed to disk, greatly improving
 | 
						||
          performance. If you have been using -F in previous releases to
 | 
						||
          disable disk flushes, you may want to consider discontinuing
 | 
						||
          its use.
 | 
						||
          
 | 
						||
   TOAST
 | 
						||
          TOAST - Previous releases had a compiled-in row length limit,
 | 
						||
          typically 8k - 32k. This limit made storage of long text fields
 | 
						||
          difficult. With TOAST, long rows of any length can be stored
 | 
						||
          with good performance.
 | 
						||
          
 | 
						||
   Outer Joins
 | 
						||
          We now support outer joins. The UNION/NOT IN workaround for
 | 
						||
          outer joins is no longer required. We use the SQL92 outer join
 | 
						||
          syntax.
 | 
						||
          
 | 
						||
   Function Manager
 | 
						||
          The previous C function manager did not handle null values
 | 
						||
          properly, nor did it support 64-bit CPU's (Alpha). The new
 | 
						||
          function manager does. You can continue using your old custom
 | 
						||
          functions, but you may want to rewrite them in the future to
 | 
						||
          use the new function manager call interface.
 | 
						||
          
 | 
						||
   Complex Queries
 | 
						||
          A large number of complex queries that were unsupported in
 | 
						||
          previous releases now work. Many combinations of views,
 | 
						||
          aggregates, UNION, LIMIT, cursors, subqueries, and inherited
 | 
						||
          tables now work properly. Inherited tables are now accessed by
 | 
						||
          default. Subqueries in FROM are now supported.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                          Migration to version 7.1
 | 
						||
                                      
 | 
						||
   A dump/restore using pg_dump is required for those wishing to migrate
 | 
						||
   data from any previous release.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Bug Fixes
 | 
						||
---------
 | 
						||
Many multibyte/Unicode/locale fixes (Tatsuo and others)
 | 
						||
More reliable ALTER TABLE RENAME (Tom)
 | 
						||
Kerberos V fixes (David Wragg)
 | 
						||
Fix for INSERT INTO...SELECT where targetlist has subqueries (Tom)
 | 
						||
Prompt username/password on standard error (Bruce)
 | 
						||
Large objects inv_read/inv_write fixes (Tom)
 | 
						||
Fixes for to_char(), to_date(), to_ascii(), and to_timestamp() (Karel,
 | 
						||
    Daniel Baldoni)
 | 
						||
Prevent query expressions from leaking memory (Tom)
 | 
						||
Allow UPDATE of arrays elements (Tom)
 | 
						||
Wake up lock waiters during cancel (Hiroshi)
 | 
						||
Fix rare cursor crash when using hash join (Tom)
 | 
						||
Fix for DROP TABLE/INDEX in rolled-back transaction (Hiroshi)
 | 
						||
Fix psql crash from \l+ if MULTIBYTE enabled (Peter E)
 | 
						||
Fix truncation of rule names during CREATE VIEW (Ross Reedstrom)
 | 
						||
Fix PL/perl (Alex Kapranoff)
 | 
						||
Disallow LOCK on views (Mark Hollomon)
 | 
						||
Disallow INSERT/UPDATE/DELETE on views (Mark Hollomon)
 | 
						||
Disallow DROP RULE, CREATE INDEX, TRUNCATE on views (Mark Hollomon)
 | 
						||
Allow PL/pgSQL accept non-ASCII identifiers (Tatsuo)
 | 
						||
Allow views to proper handle GROUP BY, aggregates, DISTINCT (Tom)
 | 
						||
Fix rare failure with TRUNCATE command (Tom)
 | 
						||
Allow UNION/INTERSECT/EXCEPT to be used with ALL, subqueries, views,
 | 
						||
    DISTINCT, ORDER BY, SELECT...INTO (Tom)
 | 
						||
Fix parser failures during aborted transactions (Tom)
 | 
						||
Allow temporary relations to properly clean up indexes (Bruce)
 | 
						||
Fix VACUUM problem with moving rows in same page (Tom)
 | 
						||
Modify pg_dump to better handle user-defined items in template1 (Philip)
 | 
						||
Allow LIMIT in VIEW (Tom)
 | 
						||
Require cursor FETCH to honor LIMIT (Tom)
 | 
						||
Allow PRIMARY/FOREIGN Key definitions on inherited columns (Stephan)
 | 
						||
Allow ORDER BY, LIMIT in subqueries (Tom)
 | 
						||
Allow UNION in CREATE RULE (Tom)
 | 
						||
Make ALTER/DROP TABLE rollback-able (Vadim, Tom)
 | 
						||
Store initdb collation in pg_control so collation cannot be changed (Tom)
 | 
						||
Fix INSERT...SELECT with rules (Tom)
 | 
						||
Fix FOR UPDATE inside views and subselects (Tom)
 | 
						||
Fix OVERLAPS operators conform to SQL92 spec regarding NULLs (Tom)
 | 
						||
Fix lpad() and rpad() to handle length less than input string (Tom)
 | 
						||
Fix use of NOTIFY in some rules (Tom)
 | 
						||
Overhaul btree code (Tom)
 | 
						||
Fix NOT NULL use in Pl/pgSQL variables (Tom)
 | 
						||
Overhaul GIST code (Oleg)
 | 
						||
Fix CLUSTER to preserve constraints and column default (Tom)
 | 
						||
Improved deadlock detection handling (Tom)
 | 
						||
Allow multiple SERIAL columns in a table (Tom)
 | 
						||
Prevent occasional index corruption (Vadim)
 | 
						||
 | 
						||
Enhancements
 | 
						||
------------
 | 
						||
Add OUTER JOINs (Tom)
 | 
						||
Function manager overhaul (Tom)
 | 
						||
Allow ALTER TABLE RENAME on indexes (Tom)
 | 
						||
Improve CLUSTER (Tom)
 | 
						||
Improve ps status display for more platforms (Peter E, Marc)
 | 
						||
Improve CREATE FUNCTION failure message (Ross)
 | 
						||
JDBC improvements (Peter, Travis Bauer, Christopher Cain, William Webber,
 | 
						||
    Gunnar)
 | 
						||
Grand Unified Configuration scheme/GUC.  Many options can now be set in
 | 
						||
    data/postgresql.conf, postmaster/postgres flags, or SET commands (Peter E)
 | 
						||
Improved handling of file descriptor cache (Tom)
 | 
						||
New warning code about auto-created table alias entries (Bruce)
 | 
						||
Overhaul initdb process (Tom, Peter E)
 | 
						||
Overhaul of inherited tables; inherited tables now accessed by default;
 | 
						||
   new ONLY key word prevents it (Chris Bitmead, Tom)
 | 
						||
ODBC cleanups/improvements (Nick Gorham, Stephan Szabo, Zoltan Kovacs,
 | 
						||
    Michael Fork)
 | 
						||
Allow renaming of temp tables (Tom)
 | 
						||
Overhaul memory manager contexts (Tom)
 | 
						||
pg_dumpall uses CREATE USER or CREATE GROUP rather using COPY (Peter E)
 | 
						||
Overhaul pg_dump (Philip Warner)
 | 
						||
Allow pg_hba.conf secondary password file to specify only username (Peter E)
 | 
						||
Allow TEMPORARY or TEMP key word when creating temporary tables (Bruce)
 | 
						||
New memory leak checker (Karel)
 | 
						||
New SET SESSION CHARACTERISTICS (Thomas)
 | 
						||
Allow nested block comments (Thomas)
 | 
						||
Add WITHOUT TIME ZONE type qualifier (Thomas)
 | 
						||
New ALTER TABLE ADD CONSTRAINT (Stephan)
 | 
						||
Use NUMERIC accumulators for INTEGER aggregates (Tom)
 | 
						||
Overhaul aggregate code (Tom)
 | 
						||
New VARIANCE and STDDEV() aggregates
 | 
						||
Improve dependency ordering of pg_dump (Philip)
 | 
						||
New pg_restore command (Philip)
 | 
						||
New pg_dump tar output option (Philip)
 | 
						||
New pg_dump of large objects  (Philip)
 | 
						||
New ESCAPE option to LIKE (Thomas)
 | 
						||
New case-insensitive LIKE - ILIKE (Thomas)
 | 
						||
Allow functional indexes to use binary-compatible type (Tom)
 | 
						||
Allow SQL functions to be used in more contexts (Tom)
 | 
						||
New pg_config utility (Peter E)
 | 
						||
New PL/pgSQL EXECUTE command which allows dynamic SQL and utility statements
 | 
						||
    (Jan)
 | 
						||
New PL/pgSQL GET DIAGNOSTICS statement for SPI value access (Jan)
 | 
						||
New quote_identifiers() and quote_literal() functions (Jan)
 | 
						||
New ALTER TABLE table OWNER TO user command (Mark Hollomon)
 | 
						||
Allow subselects in FROM, i.e. FROM (SELECT ...) [AS] alias (Tom)
 | 
						||
Update PyGreSQL to version 3.1 (D'Arcy)
 | 
						||
Store tables as files named by OID (Vadim)
 | 
						||
New SQL function setval(seq,val,bool) for use in pg_dump (Philip)
 | 
						||
Require DROP VIEW to remove views, no DROP TABLE (Mark)
 | 
						||
Allow DROP VIEW view1, view2 (Mark)
 | 
						||
Allow multiple objects in DROP INDEX, DROP RULE, and DROP TYPE (Tom)
 | 
						||
Allow automatic conversion to/from Unicode (Tatsuo, Eiji)
 | 
						||
New /contrib/pgcrypto hashing functions (Marko Kreen)
 | 
						||
New pg_dumpall --globals-only option (Peter E)
 | 
						||
New CHECKPOINT command for WAL which creates new WAL log file (Vadim)
 | 
						||
New AT TIME ZONE syntax (Thomas)
 | 
						||
Allow location of Unix domain socket to be configurable (David J. MacKenzie)
 | 
						||
Allow postmaster to listen on a specific IP address (David J. MacKenzie)
 | 
						||
Allow socket path name to be specified in hostname by using leading slash
 | 
						||
    (David J. MacKenzie)
 | 
						||
Allow CREATE DATABASE to specify template database (Tom)
 | 
						||
New utility to convert MySQL schema dumps to SQL92 and PostgreSQL (Thomas)
 | 
						||
New /contrib/rserv replication toolkit (Vadim)
 | 
						||
New file format for COPY BINARY (Tom)
 | 
						||
New /contrib/oid2name to map numeric files to table names (B Palmer)
 | 
						||
New "idle in transaction" ps status message (Marc)
 | 
						||
Update to pgaccess 0.98.7 (Constantin Teodorescu)
 | 
						||
pg_ctl now defaults to -w (wait) on shutdown, new -l (log) option
 | 
						||
Add rudimentary dependency checking to pg_dump (Philip)
 | 
						||
 | 
						||
Types
 | 
						||
-----
 | 
						||
Fix INET/CIDR type ordering and add new functions (Tom)
 | 
						||
Make OID behave as an unsigned type (Tom)
 | 
						||
Allow BIGINT as synonym for INT8 (Peter E)
 | 
						||
New int2 and int8 comparison operators (Tom)
 | 
						||
New BIT and BIT VARYING types (Adriaan Joubert, Tom, Peter E)
 | 
						||
CHAR() no longer faster than VARCHAR() because of TOAST (Tom)
 | 
						||
New GIST seg/cube examples (Gene Selkov)
 | 
						||
Improved round(numeric) handling (Tom)
 | 
						||
Fix CIDR output formatting (Tom)
 | 
						||
New CIDR abbrev() function (Tom)
 | 
						||
 | 
						||
Performance
 | 
						||
-----------
 | 
						||
Write-Ahead Log (WAL) to provide crash recovery with less performance
 | 
						||
    overhead (Vadim)
 | 
						||
ANALYZE stage of VACUUM no longer exclusively locks table (Bruce)
 | 
						||
Reduced file seeks (Denis Perchine)
 | 
						||
Improve BTREE code for duplicate keys (Tom)
 | 
						||
Store all large objects in a single table (Denis Perchine, Tom)
 | 
						||
Improve memory allocation performance (Karel, Tom)
 | 
						||
 | 
						||
Source Code
 | 
						||
-----------
 | 
						||
New function manager call conventions (Tom)
 | 
						||
SGI portability fixes (David Kaelbling)
 | 
						||
New configure --enable-syslog option (Peter E)
 | 
						||
New BSDI README (Bruce)
 | 
						||
configure script moved to top level, not /src (Peter E)
 | 
						||
Makefile/configuration/compilation overhaul (Peter E)
 | 
						||
New configure --with-python option (Peter E)
 | 
						||
Solaris cleanups (Peter E)
 | 
						||
Overhaul /contrib Makefiles (Karel)
 | 
						||
New OpenSSL configuration option (Magnus, Peter E)
 | 
						||
AIX fixes (Andreas)
 | 
						||
QNX fixes (Maurizio)
 | 
						||
New heap_open(), heap_openr() API (Tom)
 | 
						||
Remove colon and semi-colon operators (Thomas)
 | 
						||
New pg_class.relkind value for views (Mark Hollomon)
 | 
						||
Rename ichar() to chr() (Karel)
 | 
						||
New documentation for btrim(), ascii(), chr(), repeat() (Karel)
 | 
						||
Fixes for NT/Cygwin (Pete Forman)
 | 
						||
AIX port fixes (Andreas)
 | 
						||
New BeOS port (David Reid, Cyril Velter)
 | 
						||
Add proofreader's changes to docs (Addison-Wesley, Bruce)
 | 
						||
New Alpha spinlock code (Adriaan Joubert, Compaq)
 | 
						||
UnixWare port overhaul (Peter E)
 | 
						||
New Darwin/MacOS X port (Peter Bierman, Bruce Hartzler)
 | 
						||
New FreeBSD Alpha port (Alfred)
 | 
						||
Overhaul shared memory segments (Tom)
 | 
						||
Add IBM S/390 support (Neale Ferguson)
 | 
						||
Moved macmanuf to /contrib (Larry Rosenman)
 | 
						||
Syslog improvements (Larry Rosenman)
 | 
						||
New template0 database that contains no user additions (Tom)
 | 
						||
New /contrib/cube and /contrib/seg GIST sample code (Gene Selkov)
 | 
						||
Allow NetBSD's libedit instead of readline (Peter)
 | 
						||
Improved assembly language source code format (Bruce)
 | 
						||
New contrib/pg_logger
 | 
						||
New --template option to createdb
 | 
						||
New contrib/pg_control utility (Oliver)
 | 
						||
New FreeBSD tools ipc_check, start-scripts/freebsd
 | 
						||
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.0.3
 | 
						||
                                      
 | 
						||
     Release date: 2000-11-11
 | 
						||
     
 | 
						||
   This has a variety of fixes from 7.0.2.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.0.3
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running 7.0.*.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Jdbc fixes (Peter)
 | 
						||
Large object fix (Tom)
 | 
						||
Fix lean in COPY WITH OIDS leak (Tom)
 | 
						||
Fix backwards-index-scan (Tom)
 | 
						||
Fix SELECT ... FOR UPDATE so it checks for duplicate keys (Hiroshi)
 | 
						||
Add --enable-syslog to configure (Marc)
 | 
						||
Fix abort transaction at backend exit in rare cases (Tom)
 | 
						||
Fix for psql \l+ when multibyte enabled (Tatsuo)
 | 
						||
Allow PL/pgSQL to accept non ascii identifiers (Tatsuo)
 | 
						||
Make vacuum always flush buffers (Tom)
 | 
						||
Fix to allow cancel while waiting for a lock (Hiroshi)
 | 
						||
Fix for memory aloocation problem in user authentication code (Tom)
 | 
						||
Remove bogus use of int4out() (Tom)
 | 
						||
Fixes for multiple subqueries in COALESCE or BETWEEN (Tom)
 | 
						||
Fix for failure of triggers on heap open in certain cases (Jeroen van
 | 
						||
    Vianen)
 | 
						||
Fix for erroneous selectivity of not-equals (Tom)
 | 
						||
Fix for erroneous use of strcmp() (Tom)
 | 
						||
Fix for bug where storage manager accesses items beyond end of file
 | 
						||
    (Tom)
 | 
						||
Fix to include kernel errno message in all smgr elog messages (Tom)
 | 
						||
Fix for '.' not in PATH at build time (SL Baur)
 | 
						||
Fix for out-of-file-descriptors error (Tom)
 | 
						||
Fix to make pg_dump dump 'iscachable' flag for functions (Tom)
 | 
						||
Fix for subselect in targetlist of Append node (Tom)
 | 
						||
Fix for mergejoin plans (Tom)
 | 
						||
Fix TRUNCATE failure on relations with indexes (Tom)
 | 
						||
Avoid database-wide restart on write error (Hiroshi)
 | 
						||
Fix nodeMaterial to honor chgParam by recomputing its output (Tom)
 | 
						||
Fix VACUUM problem with moving chain of update row versions when source
 | 
						||
    and destination of a row version lie on the same page (Tom)
 | 
						||
Fix user.c CommandCounterIncrement (Tom)
 | 
						||
Fix for AM/PM boundary problem in to_char() (Karel Zak)
 | 
						||
Fix TIME aggregate handling (Tom)
 | 
						||
Fix to_char() to avoid coredump on NULL input (Tom)
 | 
						||
Buffer fix (Tom)
 | 
						||
Fix for inserting/copying longer multibyte strings into char() data
 | 
						||
    types (Tatsuo)
 | 
						||
Fix for crash of backend, on abort (Tom)
 | 
						||
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.0.2
 | 
						||
                                      
 | 
						||
     Release date: 2000-06-05
 | 
						||
     
 | 
						||
   This is a repackaging of 7.0.1 with added documentation.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.0.2
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running 7.*.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Added documentation to tarball.
 | 
						||
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 7.0.1
 | 
						||
                                      
 | 
						||
     Release date: 2000-06-01
 | 
						||
     
 | 
						||
   This is a cleanup release for 7.0.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 7.0.1
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running 7.0.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Fix many CLUSTER failures (Tom)
 | 
						||
Allow ALTER TABLE RENAME works on indexes (Tom)
 | 
						||
Fix plpgsql to handle datetime->timestamp and timespan->interval (Bruce)
 | 
						||
New configure --with-setproctitle switch to use setproctitle() (Marc, Bruce)
 | 
						||
Fix the off by one errors in ResultSet from 6.5.3, and more.
 | 
						||
jdbc ResultSet fixes (Joseph Shraibman)
 | 
						||
optimizer tunings (Tom)
 | 
						||
Fix create user for pgaccess
 | 
						||
Fix for UNLISTEN failure
 | 
						||
IRIX fixes (David Kaelbling)
 | 
						||
QNX fixes (Andreas Kardos)
 | 
						||
Reduce COPY IN lock level (Tom)
 | 
						||
Change libpqeasy to use PQconnectdb() style parameters (Bruce)
 | 
						||
Fix pg_dump to handle OID indexes (Tom)
 | 
						||
Fix small memory leak (Tom)
 | 
						||
Solaris fix for createdb/dropdb (Tatsuo)
 | 
						||
Fix for non-blocking connections (Alfred Perlstein)
 | 
						||
Fix improper recovery after RENAME TABLE failures (Tom)
 | 
						||
Copy pg_ident.conf.sample into /lib directory in install (Bruce)
 | 
						||
Add SJIS UDC (NEC selection IBM kanji) support (Eiji Tokuya)
 | 
						||
Fix too long syslog message (Tatsuo)
 | 
						||
Fix problem with quoted indexes that are too long (Tom)
 | 
						||
JDBC ResultSet.getTimestamp() fix (Gregory Krasnow & Floyd Marinescu)
 | 
						||
ecpg changes (Michael)
 | 
						||
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                Release 7.0
 | 
						||
                                      
 | 
						||
     Release date: 2000-05-08
 | 
						||
     
 | 
						||
   This release contains improvements in many areas, demonstrating the
 | 
						||
   continued growth of PostgreSQL. There are more improvements and fixes
 | 
						||
   in 7.0 than in any previous release. The developers have confidence
 | 
						||
   that this is the best release yet; we do our best to put out only
 | 
						||
   solid releases, and this one is no exception.
 | 
						||
   
 | 
						||
   Major changes in this release:
 | 
						||
   
 | 
						||
   Foreign Keys
 | 
						||
          Foreign keys are now implemented, with the exception of PARTIAL
 | 
						||
          MATCH foreign keys. Many users have been asking for this
 | 
						||
          feature, and we are pleased to offer it.
 | 
						||
          
 | 
						||
   Optimizer Overhaul
 | 
						||
          Continuing on work started a year ago, the optimizer has been
 | 
						||
          improved, allowing better query plan selection and faster
 | 
						||
          performance with less memory usage.
 | 
						||
          
 | 
						||
   Updated psql
 | 
						||
          psql, our interactive terminal monitor, has been updated with a
 | 
						||
          variety of new features. See the psql manual page for details.
 | 
						||
          
 | 
						||
   Join Syntax
 | 
						||
          SQL92 join syntax is now supported, though only as INNER JOIN
 | 
						||
          for this release. JOIN, NATURAL JOIN, JOIN/USING, and JOIN/ON
 | 
						||
          are available, as are column correlation names.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                          Migration to version 7.0
 | 
						||
                                      
 | 
						||
   A dump/restore using pg_dump is required for those wishing to migrate
 | 
						||
   data from any previous release of PostgreSQL. For those upgrading from
 | 
						||
   6.5.*, you may instead use pg_upgrade to upgrade to this release;
 | 
						||
   however, a full dump/reload installation is always the most robust
 | 
						||
   method for upgrades.
 | 
						||
   
 | 
						||
   Interface and compatibility issues to consider for the new release
 | 
						||
   include:
 | 
						||
   
 | 
						||
     * The date/time types datetime and timespan have been superseded by
 | 
						||
       the SQL92-defined types timestamp and interval. Although there has
 | 
						||
       been some effort to ease the transition by allowing PostgreSQL to
 | 
						||
       recognize the deprecated type names and translate them to the new
 | 
						||
       type names, this mechanism may not be completely transparent to
 | 
						||
       your existing application.
 | 
						||
     * The optimizer has been substantially improved in the area of query
 | 
						||
       cost estimation. In some cases, this will result in decreased
 | 
						||
       query times as the optimizer makes a better choice for the
 | 
						||
       preferred plan. However, in a small number of cases, usually
 | 
						||
       involving pathological distributions of data, your query times may
 | 
						||
       go up. If you are dealing with large amounts of data, you may want
 | 
						||
       to check your queries to verify performance.
 | 
						||
     * The JDBC and ODBC interfaces have been upgraded and extended.
 | 
						||
     * The string function CHAR_LENGTH is now a native function. Previous
 | 
						||
       versions translated this into a call to LENGTH, which could result
 | 
						||
       in ambiguity with other types implementing LENGTH such as the
 | 
						||
       geometric types.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Bug Fixes
 | 
						||
---------
 | 
						||
Prevent function calls exceeding maximum number of arguments (Tom)
 | 
						||
Improve CASE construct (Tom)
 | 
						||
Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (Tom)
 | 
						||
Fix SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
 | 
						||
Fix GROUP BY scan bug (Tom)
 | 
						||
Improvements in SQL grammar processing (Tom)
 | 
						||
Fix for views involved in INSERT ... SELECT ... (Tom)
 | 
						||
Fix for SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2 (Tom)
 | 
						||
Fix for subselects in INSERT ... SELECT (Tom)
 | 
						||
Prevent INSERT ... SELECT ... ORDER BY (Tom)
 | 
						||
Fixes for relations greater than 2GB, including vacuum
 | 
						||
Improve propagating system table changes to other backends (Tom)
 | 
						||
Improve propagating user table changes to other backends (Tom)
 | 
						||
Fix handling of temp tables in complex situations (Bruce, Tom)
 | 
						||
Allow table locking at table open, improving concurrent reliability (Tom)
 | 
						||
Properly quote sequence names in pg_dump (Ross J. Reedstrom)
 | 
						||
Prevent DROP DATABASE while others accessing
 | 
						||
Prevent any rows from being returned by GROUP BY if no rows processed (Tom)
 | 
						||
Fix SELECT COUNT(1) FROM table WHERE ...' if no rows matching WHERE (Tom)
 | 
						||
Fix pg_upgrade so it works for MVCC (Tom)
 | 
						||
Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom)
 | 
						||
Fix for "f1 datetime DEFAULT 'now'"  (Tom)
 | 
						||
Fix problems with CURRENT_DATE used in DEFAULT (Tom)
 | 
						||
Allow comment-only lines, and ;;; lines too. (Tom)
 | 
						||
Improve recovery after failed disk writes, disk full (Hiroshi)
 | 
						||
Fix cases where table is mentioned in FROM but not joined (Tom)
 | 
						||
Allow HAVING clause without aggregate functions (Tom)
 | 
						||
Fix for "--" comment and no trailing newline, as seen in perl interface
 | 
						||
Improve pg_dump failure error reports (Bruce)
 | 
						||
Allow sorts and hashes to exceed 2GB file sizes (Tom)
 | 
						||
Fix for pg_dump dumping of inherited rules (Tom)
 | 
						||
Fix for NULL handling comparisons (Tom)
 | 
						||
Fix inconsistent state caused by failed CREATE/DROP commands (Hiroshi)
 | 
						||
Fix for dbname with dash
 | 
						||
Prevent DROP INDEX from interfering with other backends (Tom)
 | 
						||
Fix file descriptor leak in verify_password()
 | 
						||
Fix for "Unable to identify an operator =$" problem
 | 
						||
Fix ODBC so no segfault if CommLog and Debug enabled (Dirk Niggemann)
 | 
						||
Fix for recursive exit call (Massimo)
 | 
						||
Fix for extra-long timezones (Jeroen van Vianen)
 | 
						||
Make pg_dump preserve primary key information (Peter E)
 | 
						||
Prevent databases with single quotes (Peter E)
 | 
						||
Prevent DROP DATABASE inside  transaction (Peter E)
 | 
						||
ecpg memory leak fixes (Stephen Birch)
 | 
						||
Fix for SELECT null::text, SELECT int4fac(null) and SELECT 2 + (null) (Tom)
 | 
						||
Y2K timestamp fix (Massimo)
 | 
						||
Fix for VACUUM 'HEAP_MOVED_IN was not expected' errors (Tom)
 | 
						||
Fix for views with tables/columns containing spaces  (Tom)
 | 
						||
Prevent privileges on indexes (Peter E)
 | 
						||
Fix for spinlock stuck problem when error is generated (Hiroshi)
 | 
						||
Fix ipcclean on Linux
 | 
						||
Fix handling of NULL constraint conditions (Tom)
 | 
						||
Fix memory leak in odbc driver (Nick Gorham)
 | 
						||
Fix for privilege check on UNION tables (Tom)
 | 
						||
Fix to allow SELECT 'a' LIKE 'a' (Tom)
 | 
						||
Fix for SELECT 1 + NULL (Tom)
 | 
						||
Fixes to CHAR
 | 
						||
Fix log() on numeric type (Tom)
 | 
						||
Deprecate ':' and ';' operators
 | 
						||
Allow vacuum of temporary tables
 | 
						||
Disallow inherited columns with the same name as new columns
 | 
						||
Recover or force failure when disk space is exhausted (Hiroshi)
 | 
						||
Fix INSERT INTO ... SELECT with AS columns matching result columns
 | 
						||
Fix INSERT ... SELECT ... GROUP BY groups by target columns not source columns
 | 
						||
(Tom)
 | 
						||
Fix CREATE TABLE test (a char(5) DEFAULT text '', b int4) with INSERT (Tom)
 | 
						||
Fix UNION with LIMIT
 | 
						||
Fix CREATE TABLE x AS SELECT 1 UNION SELECT 2
 | 
						||
Fix CREATE TABLE test(col char(2) DEFAULT user)
 | 
						||
Fix mismatched types in CREATE TABLE ... DEFAULT
 | 
						||
Fix SELECT * FROM pg_class where oid in (0,-1)
 | 
						||
Fix SELECT COUNT('asdf') FROM pg_class WHERE oid=12
 | 
						||
Prevent user who can create databases can modifying pg_database table (Peter E)
 | 
						||
Fix btree to give a useful elog when key > 1/2 (page - overhead) (Tom)
 | 
						||
Fix INSERT of 0.0 into DECIMAL(4,4) field (Tom)
 | 
						||
 | 
						||
Enhancements
 | 
						||
------------
 | 
						||
New CLI interface include file sqlcli.h, based on SQL3/SQL98
 | 
						||
Remove all limits on query length, row length limit still exists (Tom)
 | 
						||
Update jdbc protocol to 2.0 (Jens Glaser <jens@jens.de>)
 | 
						||
Add TRUNCATE command to quickly truncate relation (Mike Mascari)
 | 
						||
Fix to give super user and createdb user proper update catalog rights (Peter E)
 | 
						||
Allow ecpg bool variables to have NULL values (Christof)
 | 
						||
Issue ecpg error if NULL value for variable with no NULL indicator (Christof)
 | 
						||
Allow ^C to cancel COPY command (Massimo)
 | 
						||
Add SET FSYNC and SHOW PG_OPTIONS commands(Massimo)
 | 
						||
Function name overloading for dynamically-loaded C functions (Frankpitt)
 | 
						||
Add CmdTuples() to libpq++(Vince)
 | 
						||
New CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands(Jan)
 | 
						||
Allow CREATE FUNCTION/WITH clause to be used for all language types
 | 
						||
configure --enable-debug adds -g (Peter E)
 | 
						||
configure --disable-debug removes -g (Peter E)
 | 
						||
Allow more complex default expressions (Tom)
 | 
						||
First real FOREIGN KEY constraint trigger functionality (Jan)
 | 
						||
Add FOREIGN KEY ... MATCH FULL ... ON DELETE CASCADE (Jan)
 | 
						||
Add FOREIGN KEY ... MATCH <unspecified> referential actions (Don Baccus)
 | 
						||
Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
 | 
						||
Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
 | 
						||
Change pgeasy connectdb() parameter ordering (Bruce)
 | 
						||
Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
 | 
						||
Add Oracle's COMMENT ON command (Mike Mascari <mascarim@yahoo.com>)
 | 
						||
libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
 | 
						||
Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
 | 
						||
Make USING in COPY optional (Bruce)
 | 
						||
Allow subselects in the target list (Tom)
 | 
						||
Allow subselects on the left side of comparison operators (Tom)
 | 
						||
New parallel regression test (Jan)
 | 
						||
Change backend-side COPY to write files with permissions 644 not 666 (Tom)
 | 
						||
Force permissions on PGDATA directory to be secure, even if it exists (Tom)
 | 
						||
Added psql LASTOID variable to return last inserted oid (Peter E)
 | 
						||
Allow concurrent vacuum and remove pg_vlock vacuum lock file (Tom)
 | 
						||
Add privilege check for vacuum (Peter E)
 | 
						||
New libpq functions to allow asynchronous connections: PQconnectStart(),
 | 
						||
   PQconnectPoll(), PQresetStart(), PQresetPoll(), PQsetenvStart(),
 | 
						||
   PQsetenvPoll(), PQsetenvAbort (Ewan Mellor)
 | 
						||
New libpq PQsetenv() function (Ewan Mellor)
 | 
						||
create/alter user extension (Peter E)
 | 
						||
New postmaster.pid and postmaster.opts under $PGDATA (Tatsuo)
 | 
						||
New scripts for create/drop user/db (Peter E)
 | 
						||
Major psql overhaul (Peter E)
 | 
						||
Add const to libpq interface (Peter E)
 | 
						||
New libpq function PQoidValue (Peter E)
 | 
						||
Show specific non-aggregate causing problem with GROUP BY (Tom)
 | 
						||
Make changes to pg_shadow recreate pg_pwd file (Peter E)
 | 
						||
Add aggregate(DISTINCT ...) (Tom)
 | 
						||
Allow flag to control COPY input/output of NULLs (Peter E)
 | 
						||
Make postgres user have a password by default (Peter E)
 | 
						||
Add CREATE/ALTER/DROP GROUP (Peter E)
 | 
						||
All administration scripts now support --long options (Peter E, Karel)
 | 
						||
Vacuumdb script now supports --all option (Peter E)
 | 
						||
ecpg new portable FETCH syntax
 | 
						||
Add ecpg EXEC SQL IFDEF, EXEC SQL IFNDEF, EXEC SQL ELSE, EXEC SQL ELIF
 | 
						||
        and EXEC SQL ENDIF directives
 | 
						||
Add pg_ctl script to control backend start-up (Tatsuo)
 | 
						||
Add postmaster.opts.default file to store start-up flags (Tatsuo)
 | 
						||
Allow --with-mb=SQL_ASCII
 | 
						||
Increase maximum number of index keys to 16 (Bruce)
 | 
						||
Increase maximum number of function arguments to 16 (Bruce)
 | 
						||
Allow configuration of maximum number of index keys and arguments (Bruce)
 | 
						||
Allow unprivileged users to change their passwords (Peter E)
 | 
						||
Password authentication enabled; required for new users (Peter E)
 | 
						||
Disallow dropping a user who owns a database (Peter E)
 | 
						||
Change initdb option --with-mb to --enable-multibyte
 | 
						||
Add option for initdb to prompts for superuser password (Peter E)
 | 
						||
Allow complex type casts like col::numeric(9,2) and col::int2::float8 (Tom)
 | 
						||
Updated user interfaces on initdb, initlocation, pg_dump, ipcclean (Peter E)
 | 
						||
New pg_char_to_encoding() and pg_encoding_to_char() functions (Tatsuo)
 | 
						||
libpq non-blocking mode (Alfred Perlstein)
 | 
						||
Improve conversion of types in casts that don't specify a length
 | 
						||
New plperl internal programming language (Mark Hollomon)
 | 
						||
Allow COPY IN to read file that do not end with a newline (Tom)
 | 
						||
Indicate when long identifiers are truncated (Tom)
 | 
						||
Allow aggregates to use type equivalency (Peter E)
 | 
						||
Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number()
 | 
						||
        conversion functions (Karel Zak <zakkr@zf.jcu.cz>)
 | 
						||
Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
 | 
						||
Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom)
 | 
						||
Add NUMERIC and int8 types to ODBC
 | 
						||
Improve EXPLAIN results for Append, Group, Agg, Unique (Tom)
 | 
						||
Add ALTER TABLE ... ADD FOREIGN KEY (Stephan Szabo)
 | 
						||
Allow SELECT .. FOR UPDATE in PL/pgSQL (Hiroshi)
 | 
						||
Enable backward sequential scan even after reaching EOF (Hiroshi)
 | 
						||
Add btree indexing of boolean values, >= and <= (Don Baccus)
 | 
						||
Print current line number when COPY FROM fails (Massimo)
 | 
						||
Recognize POSIX time zone e.g. "PST+8" and "GMT-8" (Thomas)
 | 
						||
Add DEC as synonym for DECIMAL (Thomas)
 | 
						||
Add SESSION_USER as SQL92 key word, same as CURRENT_USER (Thomas)
 | 
						||
Implement SQL92 column aliases (aka correlation names) (Thomas)
 | 
						||
Implement SQL92 join syntax (Thomas)
 | 
						||
Make INTERVAL reserved word allowed as a column identifier (Thomas)
 | 
						||
Implement REINDEX command (Hiroshi)
 | 
						||
Accept ALL in aggregate function SUM(ALL col) (Tom)
 | 
						||
Prevent GROUP BY from using column aliases (Tom)
 | 
						||
New psql \encoding option (Tatsuo)
 | 
						||
Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
 | 
						||
Allow negation of a negative number in all cases
 | 
						||
Add ecpg descriptors (Christof, Michael)
 | 
						||
Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
 | 
						||
Allow casts with length, like foo::char(8)
 | 
						||
New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
 | 
						||
Add support for SJIS user defined characters (Tatsuo)
 | 
						||
Larger views/rules supported
 | 
						||
Make libpq's PQconndefaults() thread-safe (Tom)
 | 
						||
Disable // as comment to be ANSI conforming, should use -- (Tom)
 | 
						||
Allow column aliases on views CREATE VIEW name (collist)
 | 
						||
Fixes for views with subqueries (Tom)
 | 
						||
Allow UPDATE table SET fld = (SELECT ...) (Tom)
 | 
						||
SET command options no longer require quotes
 | 
						||
Update pgaccess to 0.98.6
 | 
						||
New SET SEED command
 | 
						||
New pg_options.sample file
 | 
						||
New SET FSYNC command (Massimo)
 | 
						||
Allow pg_descriptions when creating tables
 | 
						||
Allow pg_descriptions when creating types, columns, and functions
 | 
						||
Allow psql \copy to allow delimiters (Peter E)
 | 
						||
Allow psql to print nulls as distinct from "" [null] (Peter E)
 | 
						||
 | 
						||
Types
 | 
						||
-----
 | 
						||
Many array fixes (Tom)
 | 
						||
Allow bare column names to be subscripted as arrays (Tom)
 | 
						||
Improve type casting of int and float constants (Tom)
 | 
						||
Cleanups for int8 inputs, range checking, and type conversion (Tom)
 | 
						||
Fix for SELECT timespan('21:11:26'::time) (Tom)
 | 
						||
netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0 (Oleg Sharoiko)
 | 
						||
Add btree index on NUMERIC (Jan)
 | 
						||
Perl fix for large objects containing NUL characters (Douglas Thomson)
 | 
						||
ODBC fix for for large objects (free)
 | 
						||
Fix indexing of cidr data type
 | 
						||
Fix for Ethernet MAC addresses (macaddr type) comparisons
 | 
						||
Fix for date/time types when overflows happened in computations (Tom)
 | 
						||
Allow array on int8 (Peter E)
 | 
						||
Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
 | 
						||
Allow NUMERIC arrays
 | 
						||
Fix bugs in NUMERIC ceil() and floor() functions (Tom)
 | 
						||
Make char_length()/octet_length including trailing blanks (Tom)
 | 
						||
Made abstime/reltime use int4 instead of time_t (Peter E)
 | 
						||
New lztext data type for compressed text fields
 | 
						||
Revise code to handle coercion of int and float constants (Tom)
 | 
						||
Start at new code to implement a BIT and BIT VARYING type (Adriaan Joubert)
 | 
						||
NUMERIC now accepts scientific notation (Tom)
 | 
						||
NUMERIC to int4 rounds (Tom)
 | 
						||
Convert float4/8 to NUMERIC properly (Tom)
 | 
						||
Allow type conversion with NUMERIC (Thomas)
 | 
						||
Make ISO date style (2000-02-16 09:33) the default (Thomas)
 | 
						||
Add NATIONAL CHAR [ VARYING ] (Thomas)
 | 
						||
Allow NUMERIC round and trunc to accept negative scales (Tom)
 | 
						||
New TIME WITH TIME ZONE type (Thomas)
 | 
						||
Add MAX()/MIN() on time type (Thomas)
 | 
						||
Add abs(), mod(), fac() for int8 (Thomas)
 | 
						||
Rename functions to round(), sqrt(), cbrt(), pow() for float8 (Thomas)
 | 
						||
Add transcendental math functions (e.g. sin(), acos()) for float8 (Thomas)
 | 
						||
Add exp() and ln() for NUMERIC type
 | 
						||
Rename NUMERIC power() to pow() (Thomas)
 | 
						||
Improved TRANSLATE() function (Edwin Ramirez, Tom)
 | 
						||
Allow X=-Y operators  (Tom)
 | 
						||
Allow SELECT float8(COUNT(*))/(SELECT COUNT(*) FROM t) FROM t GROUP BY f1; (Tom
 | 
						||
)
 | 
						||
Allow LOCALE to use indexes in regular expression searches (Tom)
 | 
						||
Allow creation of functional indexes to use default types
 | 
						||
 | 
						||
Performance
 | 
						||
-----------
 | 
						||
Prevent exponential space consumption with many AND's and OR's (Tom)
 | 
						||
Collect attribute selectivity values for system columns (Tom)
 | 
						||
Reduce memory usage of aggregates (Tom)
 | 
						||
Fix for LIKE optimization to use indexes with multibyte encodings (Tom)
 | 
						||
Fix r-tree index optimizer selectivity (Thomas)
 | 
						||
Improve optimizer selectivity computations and functions (Tom)
 | 
						||
Optimize btree searching for cases where many equal keys exist (Tom)
 | 
						||
Enable fast LIKE index processing only if index present (Tom)
 | 
						||
Re-use free space on index pages with duplicates (Tom)
 | 
						||
Improve hash join processing (Tom)
 | 
						||
Prevent descending sort if result is already sorted(Hiroshi)
 | 
						||
Allow commuting of index scan query qualifications (Tom)
 | 
						||
Prefer index scans in cases where ORDER BY/GROUP BY is required (Tom)
 | 
						||
Allocate large memory requests in fix-sized chunks for performance (Tom)
 | 
						||
Fix vacuum's performance by reducing memory allocation requests (Tom)
 | 
						||
Implement constant-expression simplification (Bernard Frankpitt, Tom)
 | 
						||
Use secondary columns to be used to determine start of index scan (Hiroshi)
 | 
						||
Prevent quadruple use of disk space when doing internal sorting (Tom)
 | 
						||
Faster sorting by calling fewer functions (Tom)
 | 
						||
Create system indexes to match all system caches (Bruce, Hiroshi)
 | 
						||
Make system caches use system indexes (Bruce)
 | 
						||
Make all system indexes unique (Bruce)
 | 
						||
Improve pg_statistics management for VACUUM speed improvement (Tom)
 | 
						||
Flush backend cache less frequently (Tom, Hiroshi)
 | 
						||
COPY now reuses previous memory allocation, improving performance (Tom)
 | 
						||
Improve optimization cost estimation (Tom)
 | 
						||
Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom
 | 
						||
)
 | 
						||
Use DNF instead of CNF where appropriate (Tom, Taral)
 | 
						||
Further cleanup for OR-of-AND WHERE-clauses (Tom)
 | 
						||
Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
 | 
						||
Smarter optimizer computations for random index page access (Tom)
 | 
						||
New SET variable to control optimizer costs (Tom)
 | 
						||
Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
 | 
						||
Reduce optimizer internal housekeeping of join paths for speedup (Tom)
 | 
						||
Major subquery speedup (Tom)
 | 
						||
Fewer fsync writes when fsync is not disabled (Tom)
 | 
						||
Improved LIKE optimizer estimates (Tom)
 | 
						||
Prevent fsync in SELECT-only queries (Vadim)
 | 
						||
Make index creation use psort code, because it is now faster (Tom)
 | 
						||
Allow creation of sort temp tables > 1 Gig
 | 
						||
 | 
						||
Source Tree Changes
 | 
						||
-------------------
 | 
						||
Fix for linux PPC compile
 | 
						||
New generic expression-tree-walker subroutine (Tom)
 | 
						||
Change form() to varargform() to prevent portability problems
 | 
						||
Improved range checking for large integers on Alphas
 | 
						||
Clean up #include in /include directory (Bruce)
 | 
						||
Add scripts for checking includes (Bruce)
 | 
						||
Remove un-needed #include's from *.c files (Bruce)
 | 
						||
Change #include's to use <> and "" as appropriate (Bruce)
 | 
						||
Enable Windows compilation of libpq
 | 
						||
Alpha spinlock fix from Uncle George <gatgul@voicenet.com>
 | 
						||
Overhaul of optimizer data structures (Tom)
 | 
						||
Fix to cygipc library (Yutaka Tanida)
 | 
						||
Allow pgsql to work on newer Cygwin snapshots (Dan)
 | 
						||
New catalog version number (Tom)
 | 
						||
Add Linux ARM
 | 
						||
Rename heap_replace to heap_update
 | 
						||
Update for QNX (Dr. Andreas Kardos)
 | 
						||
New platform-specific regression handling (Tom)
 | 
						||
Rename oid8 -> oidvector and int28 -> int2vector (Bruce)
 | 
						||
Included all yacc and lex files into the distribution (Peter E.)
 | 
						||
Remove lextest, no longer needed (Peter E)
 | 
						||
Fix for libpq and psql on Windows (Magnus)
 | 
						||
Internally change datetime and timespan into timestamp and interval (Thomas)
 | 
						||
Fix for plpgsql on BSD/OS
 | 
						||
Add SQL_ASCII test case to the regression test (Tatsuo)
 | 
						||
configure --with-mb now deprecated (Tatsuo)
 | 
						||
NT fixes
 | 
						||
NetBSD fixes (Johnny C. Lam <lamj@stat.cmu.edu>)
 | 
						||
Fixes for Alpha compiles
 | 
						||
New multibyte encodings
 | 
						||
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 6.5.3
 | 
						||
                                      
 | 
						||
     Release date: 1999-10-13
 | 
						||
     
 | 
						||
   This is basically a cleanup release for 6.5.2. We have added a new
 | 
						||
   PgAccess that was missing in 6.5.2, and installed an NT-specific fix.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 6.5.3
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running 6.5.*.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Updated version of pgaccess 0.98
 | 
						||
NT-specific patch
 | 
						||
Fix dumping rules on inherited tables
 | 
						||
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 6.5.2
 | 
						||
                                      
 | 
						||
     Release date: 1999-09-15
 | 
						||
     
 | 
						||
   This is basically a cleanup release for 6.5.1. We have fixed a variety
 | 
						||
   of problems reported by 6.5.1 users.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 6.5.2
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running 6.5.*.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
subselect+CASE fixes(Tom)
 | 
						||
Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren Sefcik)
 | 
						||
Fixes for CASE in WHERE join clauses(Tom)
 | 
						||
Fix BTScan abort(Tom)
 | 
						||
Repair the check for redundant UNIQUE and PRIMARY KEY indexes(Thomas)
 | 
						||
Improve it so that it checks for multicolumn constraints(Thomas)
 | 
						||
Fix for Windows making problem with MB enabled(Hiroki Kataoka)
 | 
						||
Allow BSD yacc and bison to compile pl code(Bruce)
 | 
						||
Fix SET NAMES working
 | 
						||
int8 fixes(Thomas)
 | 
						||
Fix vacuum's memory consumption(Hiroshi,Tatsuo)
 | 
						||
Reduce the total memory consumption of vacuum(Tom)
 | 
						||
Fix for timestamp(datetime)
 | 
						||
Rule deparsing bugfixes(Tom)
 | 
						||
Fix quoting problems in mkMakefile.tcldefs.sh.in and mkMakefile.tkdefs.sh.in(To
 | 
						||
m)
 | 
						||
This is to re-use space on index pages freed by vacuum(Vadim)
 | 
						||
document -x for pg_dump(Bruce)
 | 
						||
Fix for unary operators in rule deparser(Tom)
 | 
						||
Comment out FileUnlink of excess segments during mdtruncate()(Tom)
 | 
						||
IRIX linking fix from Yu Cao >yucao@falcon.kla-tencor.com<
 | 
						||
Repair logic error in LIKE: should not return LIKE_ABORT
 | 
						||
   when reach end of pattern before end of text(Tom)
 | 
						||
Repair incorrect cleanup of heap memory allocation during transaction abort(Tom
 | 
						||
)
 | 
						||
Updated version of pgaccess 0.98
 | 
						||
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 6.5.1
 | 
						||
                                      
 | 
						||
     Release date: 1999-07-15
 | 
						||
     
 | 
						||
   This is basically a cleanup release for 6.5. We have fixed a variety
 | 
						||
   of problems reported by 6.5 users.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 6.5.1
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running 6.5.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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 multisegment 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 row from being created(Bruce)
 | 
						||
plpgsql fixes
 | 
						||
Allow port numbers 32k - 64k(Bruce)
 | 
						||
Add ^ precidence(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
 | 
						||
                                      
 | 
						||
     Release date: 1999-06-09
 | 
						||
     
 | 
						||
   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:
 | 
						||
   
 | 
						||
   Multiversion 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 multiversion 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
 | 
						||
          consistent 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
 | 
						||
          Windows NT/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 PostgreSQL source tree via anonymous CVS and
 | 
						||
          CVSup.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                          Migration to version 6.5
 | 
						||
                                      
 | 
						||
   A dump/restore using pg_dump is required for those wishing to migrate
 | 
						||
   data from any previous release of PostgreSQL. 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 Multiversion Concurrency Control (MVCC) features can give
 | 
						||
   somewhat different behaviors in multiuser environments. *Read and
 | 
						||
   understand the following section to ensure that your existing
 | 
						||
   applications will give you the behavior you need.*
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
Multiversion 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 PostgreSQL and other
 | 
						||
   environments.
 | 
						||
   
 | 
						||
   Keep the above in mind if you are using "contrib/refint.*" triggers
 | 
						||
   for referential integrity. Additional techniques 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.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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 coercion 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 user name containing a dash to grant privileges
 | 
						||
Cleanup of NULL in inet types
 | 
						||
Clean up system table bugs(Tom)
 | 
						||
Fix problems of PAGER and \? command(Masaaki Sakaida)
 | 
						||
Reduce default multisegment 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 multisegment 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 privileges(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 indexes used(Tom)
 | 
						||
Implement CASE, COALESCE, NULLIF  expression(Thomas)
 | 
						||
New pg_dump table output format(Constantin)
 | 
						||
Add string min()/max() functions(Thomas)
 | 
						||
Extend new type coercion 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 multibyte handling(Tatsuo)
 | 
						||
Multiversion 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 start-up 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 Windows NT 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 key word for rule queries(Jan)
 | 
						||
NT dynamic loading now works(Daniel Horak)
 | 
						||
Add ARM32 support(Andrew McMurry)
 | 
						||
Better support for HP-UX 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
 | 
						||
                                      
 | 
						||
     Release date: 1998-12-20
 | 
						||
     
 | 
						||
   The 6.4.1 release was improperly packaged. This also has one
 | 
						||
   additional bug fix.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 6.4.2
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running 6.4.*.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Fix for datetime constant problem on some platforms(Thomas)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                               Release 6.4.1
 | 
						||
                                      
 | 
						||
     Release date: 1998-12-18
 | 
						||
     
 | 
						||
   This is basically a cleanup release for 6.4. We have fixed a variety
 | 
						||
   of problems reported by 6.4 users.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                         Migration to version 6.4.1
 | 
						||
                                      
 | 
						||
   A dump/restore is *not* required for those running 6.4.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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 existence 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
 | 
						||
Multibyte 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)
 | 
						||
HP-UX fixes(Tom)
 | 
						||
Use implicit type coercion for matching DEFAULT values(Thomas)
 | 
						||
Add routines to help with single-byte (internal) character type(Thomas)
 | 
						||
Compilation of libpq for Windows fixes(Magnus)
 | 
						||
Upgrade to PyGreSQL 2.2(D'Arcy)
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                Release 6.4
 | 
						||
                                      
 | 
						||
     Release date: 1998-10-30
 | 
						||
     
 | 
						||
   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:
 | 
						||
   
 | 
						||
     * 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.
 | 
						||
     * Jan also contributed a second procedural language, PL/pgSQL, to go
 | 
						||
       with the original PL/pgTCL procedural language he contributed last
 | 
						||
       release.
 | 
						||
     * We have optional multiple-byte character set support from Tatsuo
 | 
						||
       Ishii to complement our existing locale support.
 | 
						||
     * Client/server communications has been cleaned up, with better
 | 
						||
       support for asynchronous messages and interrupts thanks to Tom
 | 
						||
       Lane.
 | 
						||
     * The parser will now perform automatic type coercion 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
 | 
						||
       PostgreSQL. There is a new chapter in the User's Guide which
 | 
						||
       covers this topic.
 | 
						||
     * 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.
 | 
						||
     * Several more SQL92-compatible syntax features have been added,
 | 
						||
       including "INSERT DEFAULT VALUES"
 | 
						||
     * 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 version 6.4
 | 
						||
                                      
 | 
						||
   A dump/restore using pg_dump or pg_dumpall is required for those
 | 
						||
   wishing to migrate data from any previous release of PostgreSQL.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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)
 | 
						||
Multibyte 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)(Thoma
 | 
						||
s)
 | 
						||
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 multibytes
 | 
						||
feature, see /doc/README.mb(Tatsuo)
 | 
						||
contrib/noupdate code to revoke update permission on a column
 | 
						||
libpq can now be compiled on Windows(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 indexes 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 indexes to be considered when checking for valid
 | 
						||
Indexes 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 futu
 | 
						||
re
 | 
						||
        * 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 privileges of 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 multikey(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 start-up if no postmaster running(Massimo)
 | 
						||
Conditional trace package(Massimo)
 | 
						||
New UNLISTEN command(Massimo)
 | 
						||
psql and libpq now compile under Windows 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 key word, 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)
 | 
						||
Multibyte 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
 | 
						||
                                      
 | 
						||
     Release date: 1998-04-07
 | 
						||
     
 | 
						||
   This is a bug-fix release for 6.3.x. Refer to the release notes for
 | 
						||
   version 6.3 for a more complete summary of new features.
 | 
						||
   
 | 
						||
   Summary:
 | 
						||
   
 | 
						||
     * Repairs automatic configuration support for some platforms,
 | 
						||
       including Linux, from breakage inadvertently introduced in version
 | 
						||
       6.3.1.
 | 
						||
     * 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 PostgreSQL libraries.
 | 
						||
   
 | 
						||
   For upgrades from pre-6.3 installations, refer to the installation and
 | 
						||
   migration instructions for version 6.3.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  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
 | 
						||
                                      
 | 
						||
     Release date: 1998-03-23
 | 
						||
     
 | 
						||
   Summary:
 | 
						||
   
 | 
						||
     * Additional support for multibyte character sets.
 | 
						||
     * Repair byte ordering for mixed-endian clients and servers.
 | 
						||
     * Minor updates to allowed SQL syntax.
 | 
						||
     * 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 PostgreSQL libraries.
 | 
						||
   
 | 
						||
   For upgrades from pre-6.3 installations, refer to the installation and
 | 
						||
   migration instructions for version 6.3.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  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
 | 
						||
multibyte 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 key word 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
 | 
						||
                                      
 | 
						||
     Release date: 1998-03-01
 | 
						||
     
 | 
						||
   There are *many* new features and improvements in this release. Here
 | 
						||
   is a brief, incomplete summary:
 | 
						||
   
 | 
						||
     * Many new SQL features, including full SQL92 subselect capability
 | 
						||
       (everything is here but target-list subselects).
 | 
						||
     * Support for client-side environment variables to specify time zone
 | 
						||
       and date style.
 | 
						||
     * Socket interface for client/server connection. This is the default
 | 
						||
       now so you may need to start postmaster with the "-i" flag.
 | 
						||
     * Better password authorization mechanisms. Default table privileges
 | 
						||
       have changed.
 | 
						||
     * 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 Administrator's Guide 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 privilege to PUBLIC by
 | 
						||
   default. This was done because the ANSI standard requires it. You can
 | 
						||
   of course GRANT any privileges 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 documentation 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
 | 
						||
   privileges now, not based on the underlying tables, so privileges on
 | 
						||
   them have to be set separately. Check "/pgsql/interfaces" for some new
 | 
						||
   ways to talk to PostgreSQL.
 | 
						||
   
 | 
						||
   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 version 6.3
 | 
						||
                                      
 | 
						||
   A dump/restore using pg_dump or pg_dumpall is required for those
 | 
						||
   wishing to migrate data from any previous release of PostgreSQL.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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 key words (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 indexes(Thomas)
 | 
						||
Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
 | 
						||
Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas
 | 
						||
)
 | 
						||
Allow PostgreSQL-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 indexes(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 PostgreSQL Procedural Language (PL) backend interface(Jan)
 | 
						||
Rename pg_dump -H option to -h(Bruce)
 | 
						||
Add Java support for passwords, European dates(Peter)
 | 
						||
Use indexes 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 PostgreSQL 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(Tho
 | 
						||
mas)
 | 
						||
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 indexes(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 privileges(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 start-up(Andrew)
 | 
						||
Modify sample start-up 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 privileges 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 privileges.
 | 
						||
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 spinlock 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
 | 
						||
                                      
 | 
						||
     Release date: 1997-10-17
 | 
						||
     
 | 
						||
   6.2.1 is a bug-fix and usability release on 6.2.
 | 
						||
   
 | 
						||
   Summary:
 | 
						||
   
 | 
						||
     * Allow strings to span lines, per SQL92.
 | 
						||
     * Include example trigger function for inserting user names on table
 | 
						||
       updates.
 | 
						||
       
 | 
						||
   This is a minor bug-fix release on 6.2. For upgrades from pre-6.2
 | 
						||
   systems, a full dump/reload is required. Refer to the 6.2 release
 | 
						||
   notes for instructions.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                Migration from version 6.2 to version 6.2.1
 | 
						||
                                      
 | 
						||
   This is a minor bug-fix release. A dump/reload is not required from
 | 
						||
   version 6.2, but is required from any release prior to 6.2.
 | 
						||
   
 | 
						||
   In upgrading from version 6.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.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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
 | 
						||
                                      
 | 
						||
     Release date: 1997-10-02
 | 
						||
     
 | 
						||
   A dump/restore is required for those wishing to migrate data from
 | 
						||
   previous releases of PostgreSQL.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                 Migration from version 6.1 to version 6.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 version 1.x to version 6.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.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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(Thoma
 | 
						||
s)
 | 
						||
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 rows changed/inserted by a command
 | 
						||
        visible to the command itself (so we had multiple update of
 | 
						||
        updated rows, 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 rows 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 rows 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 "<^"(Tho
 | 
						||
mas)
 | 
						||
Add routines for text trimming on both ends, substring, and string position(Tho
 | 
						||
mas)
 | 
						||
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 start-up 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
 | 
						||
-------------------
 | 
						||
HP-UX 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 attdispersion(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
 | 
						||
                                      
 | 
						||
     Release date: 1997-07-22
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                Migration from version 6.1 to version 6.1.1
 | 
						||
                                      
 | 
						||
   This is a minor bug-fix release. A dump/reload is not required from
 | 
						||
   version 6.1, but is required from any release prior to 6.1. Refer to
 | 
						||
   the release notes for 6.1 for more details.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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
 | 
						||
                                      
 | 
						||
     Release date: 1997-06-08
 | 
						||
     
 | 
						||
   The regression tests have been adapted and extensively modified for
 | 
						||
   the 6.1 release of PostgreSQL.
 | 
						||
   
 | 
						||
   Three new data types (datetime, timespan, and circle) have been added
 | 
						||
   to the native set of PostgreSQL types. Points, boxes, paths, and
 | 
						||
   polygons have had their output formats made consistent across the data
 | 
						||
   types. The polygon output in misc.out has only been spot-checked for
 | 
						||
   correctness relative to the original regression output.
 | 
						||
   
 | 
						||
   PostgreSQL 6.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 version 6.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.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
Bug Fixes
 | 
						||
---------
 | 
						||
packet length checking in library routines
 | 
						||
lock manager priority patch
 | 
						||
check for under/over flow of float8(Bruce)
 | 
						||
multitable 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 indexes (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 rows reincarnation 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 multitable 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)
 | 
						||
multicolumn 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 Windows-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 6.0
 | 
						||
                                      
 | 
						||
     Release date: 1997-01-29
 | 
						||
     
 | 
						||
   A dump/restore is required for those wishing to migrate data from
 | 
						||
   previous releases of PostgreSQL.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                 Migration from version 1.09 to version 6.0
 | 
						||
                                      
 | 
						||
   This migration requires a complete dump of the 1.09 database and a
 | 
						||
   restore of the database in 6.0.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                   Migration from pre-1.09 to version 6.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.
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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 privileges
 | 
						||
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 OIDs
 | 
						||
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(Br
 | 
						||
uce)
 | 
						||
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 OIDs(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 1.09
 | 
						||
                                      
 | 
						||
     Release date: 1996-11-04
 | 
						||
     
 | 
						||
   Sorry, we didn't keep 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 1.02
 | 
						||
                                      
 | 
						||
     Release date: 1996-08-01
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
               Migration from version 1.02 to version 1.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 the 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 = texticregexe
 | 
						||
q);
 | 
						||
create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregex
 | 
						||
ne);
 | 
						||
create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregex
 | 
						||
eq);
 | 
						||
create operator !~* (leftarg = varchar, rightarg = text, procedure = texticrege
 | 
						||
xne);
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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 deprecated 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 BSD/OS 2.1 port
 | 
						||
 * added DG/UX port
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                Release 1.01
 | 
						||
                                      
 | 
						||
     Release date: 1996-02-23
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                 Migration from version 1.0 to version 1.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 = char2icregexe
 | 
						||
q);
 | 
						||
create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregex
 | 
						||
ne);
 | 
						||
create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexe
 | 
						||
q);
 | 
						||
create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregex
 | 
						||
ne);
 | 
						||
create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexe
 | 
						||
q);
 | 
						||
create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregex
 | 
						||
ne);
 | 
						||
create operator ~* (leftarg = char16, rightarg = text, procedure = char16icrege
 | 
						||
xeq);
 | 
						||
create operator !~* (leftarg = char16, rightarg = text, procedure = char16icreg
 | 
						||
exne);
 | 
						||
create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq)
 | 
						||
;
 | 
						||
create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne
 | 
						||
);
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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 key words
 | 
						||
 * 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 1.0
 | 
						||
                                      
 | 
						||
     Release date: 1995-09-05
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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 key word
 | 
						||
 | 
						||
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
 | 
						||
   privileges
 | 
						||
 *  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 Release 0.03
 | 
						||
                                      
 | 
						||
     Release date: 1995-07-21
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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" key word.
 | 
						||
        For example:
 | 
						||
                GRANT SELECT ON foobar TO GROUP my_group;
 | 
						||
        The key word '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 row 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 indexes work, and access methods in general should perform better.
 | 
						||
   creation of large btree indexes 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 row 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 Release 0.02
 | 
						||
                                      
 | 
						||
     Release date: 1995-05-25
 | 
						||
     _________________________________________________________________
 | 
						||
   
 | 
						||
                                  Changes
 | 
						||
                                      
 | 
						||
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 Release 0.01
 | 
						||
                                      
 | 
						||
     Release date: 1995-05-01
 | 
						||
     
 | 
						||
   Initial release.
 |