diff --git a/HISTORY b/HISTORY deleted file mode 100644 index 9d13dbbba8..0000000000 --- a/HISTORY +++ /dev/null @@ -1,5234 +0,0 @@ - - Release Notes - - Release 7.4.2 - - Release date: 2004-03-08 - - This release contains a variety of fixes from 7.4.1. - _________________________________________________________________ - -Migration to version 7.4.2 - - A dump/restore is not required for those running 7.4.X. However, it - may be advisable as the easiest method of incorporating fixes for two - errors that have been found in the initial contents of 7.4.X system - catalogs. A dump/initdb/reload sequence using 7.4.2's initdb will - automatically correct these problems. - - The more severe of the two errors is that data type anyarray has the - wrong alignment label; this is a problem because the pg_statistic - system catalog uses anyarray columns. The mislabeling can cause - planner misestimations and even crashes when planning queries that - involve WHERE clauses on double-aligned columns (such as float8 and - timestamp). It is strongly recommended that all installations repair - this error, either by initdb or by following the manual repair - procedure given below. - - The lesser error is that the system view pg_settings ought to be - marked as having public update access, to allow UPDATE pg_settings to - be used as a substitute for "SET". This can also be fixed either by - initdb or manually, but it is not necessary to fix unless you want to - use UPDATE pg_settings. - - If you wish not to do an initdb, the following procedure will work for - fixing pg_statistic. As the database superuser, do: --- clear out old data in pg_statistic: -DELETE FROM pg_statistic; -VACUUM pg_statistic; --- this should update 1 row: -UPDATE pg_type SET typalign = 'd' WHERE oid = 2277; --- this should update 6 rows: -UPDATE pg_attribute SET attalign = 'd' WHERE atttypid = 2277; --- --- At this point you MUST start a fresh backend to avoid a crash! --- --- repopulate pg_statistic: -ANALYZE; - - This can be done in a live database, but beware that all backends - running in the altered database must be restarted before it is safe to - repopulate pg_statistic. - - To repair the pg_settings error, simply do: -GRANT SELECT, UPDATE ON pg_settings TO PUBLIC; - - The above procedures must be carried out in *each* database of an - installation, including template1, and ideally including template0 as - well. If you do not fix the template databases then any subsequently - created databases will contain the same errors. template1 can be fixed - in the same way as any other database, but fixing template0 requires - additional steps. First, from any database issue -UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'; - - Next connect to template0 and perform the above repair procedures. - Finally, do --- re-freeze template0: -VACUUM FREEZE; --- and protect it against future alterations: -UPDATE pg_database SET datallowconn = false WHERE datname = 'template0'; - _________________________________________________________________ - -Changes - - Release 7.4.2 incorporates all the fixes included in release 7.3.6, - plus the following fixes: - - * Fix pg_statistics alignment bug that could crash optimizer - See above for details about this problem. - * Allow non-super users to update pg_settings - * Fix several optimizer bugs, most of which led to "variable not - found in subplan target lists" errors - * Avoid out-of-memory failure during startup of large multiple index - scan - * Fix multibyte problem that could lead to "out of memory" error - during "COPY IN" - * Fix problems with "SELECT INTO" / "CREATE TABLE AS" from tables - without OIDs - * Fix problems with "alter_table" regression test during parallel - testing - * Fix problems with hitting open file limit, especially on OS X - (Tom) - * Partial fix for Turkish-locale issues - initdb will succeed now in Turkish locale, but there are still - some inconveniences associated with the i/I problem. - * Make pg_dump set client encoding on restore - * Other minor pg_dump fixes - * Allow ecpg to again use C keywords as column names (Michael) - * Added ecpg WHENEVER NOT_FOUND to SELECT/INSERT/UPDATE/DELETE - (Michael) - * Fix ecpg crash for queries calling set-returning functions - (Michael) - * Various other ecpg fixes (Michael) - * Fixes for Borland compiler - * Thread build improvements (Bruce) - * Various other build fixes - * Various JDBC fixes - _________________________________________________________________ - - Release 7.4.1 - - Release date: 2003-12-22 - - This release contains a variety of fixes from 7.4. - _________________________________________________________________ - -Migration to version 7.4.1 - - A dump/restore is *not* required for those running 7.4. - - If you want to install the fixes in the information schema you need to - reload it into the database. This is either accomplished by - initializing a new cluster by running "initdb", or by running the - following sequence of SQL commands in each database (ideally including - template1) as a superuser in psql, after installing the new release: -DROP SCHEMA information_schema CASCADE; -\i /usr/local/pgsql/share/information_schema.sql - - Substitute your installation path in the second command. - _________________________________________________________________ - -Changes - - * Fixed bug in "CREATE SCHEMA" parsing in ECPG (Michael) - * Fix compile error when "--enable-thread-safety" and "--with-perl" - are used together (Peter) - * Fix for subqueries that used hash joins (Tom) - Certain subqueries that used hash joins would crash because of - improperly shared structures. - * Fix free space map compaction bug (Tom) - This fixes a bug where compaction of the free space map could lead - to a database server shutdown. - * Fix for Borland compiler build of libpq (Bruce) - * Fix netmask() and hostmask() to return the maximum-length masklen - (Tom) - Fix these functions to return values consistent with pre-7.4 - releases. - * Several "contrib/pg_autovacuum" fixes - Fixes include improper variable initialization, missing vacuum - after "TRUNCATE", and duration computation overflow for long - vacuums. - * Allow compile of "contrib/cube" under Cygwin (Jason Tishler) - * Fix Solaris use of password file when no passwords are defined - (Tom) - Fix crash on Solaris caused by use of any type of password - authentication when no passwords were defined. - * JDBC fix for thread problems, other fixes - * Fix for bytea index lookups (Joe) - * Fix information schema for bit data types (Peter) - * Force zero_damaged_pages to be on during recovery from WAL - * Prevent some obscure cases of "variable not in subplan target - lists" - * Make PQescapeBytea and byteaout consistent with each other (Joe) - * Escape bytea output for bytes > 0x7e(Joe) - If different client encodings are used for bytea output and input, - it is possible for bytea values to be corrupted by the differing - encodings. This fix escapes all bytes that might be affected. - * Added missing SPI_finish() calls to dblink's - get_tuple_of_interest() (Joe) - * New Czech FAQ - * Fix information schema view constraint_column_usage for foreign - keys (Peter) - * ECPG fixes (Michael) - * Fix bug with multiple IN subqueries and joins in the subqueries - (Tom) - * Alllow COUNT('x') to work (Tom) - * Install ECPG include files for Informix compatibility into - separate directory (Peter) - Some names of ECPG include files for Informix compatibility - conflicted with operating system include files. By installing them - in their own directory, name conflicts have been reduced. - * Fix SSL memory leak (Neil) - This release fixes a bug in 7.4 where SSL didn't free all memory - it allocated. - * Prevent "pg_service.conf" from using service name as default - dbname (Bruce) - * Fix local ident authentication on FreeBSD (Tom) - _________________________________________________________________ - - 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 in SET TIMEZONE - * 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á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 (Joe, Tom) - * 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á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.6 - - Release date: 2004-03-02 - - This release contains a variety of fixes from 7.3.5. - _________________________________________________________________ - -Migration to version 7.3.6 - - A dump/restore is *not* required for those running 7.3.*. - _________________________________________________________________ - -Changes - - * Revert erroneous changes in rule permissions checking - A patch applied in 7.3.3 to fix a corner case in rule permissions - checks turns out to have disabled rule-related permissions checks - in many not-so-corner cases. This would for example allow users to - insert into views they weren't supposed to have permission to - insert into. We have therefore reverted the 7.3.3 patch. The - original bug will be fixed in 7.5. - * Repair incorrect order of operations in GetNewTransactionId() - This bug could result in failure under out-of-disk-space - conditions, including inability to restart even after disk space - is freed. - * Ensure configure selects -fno-strict-aliasing even when an - external value for CFLAGS is supplied - On some platforms, building with -fstrict-aliasing causes bugs. - * Make pg_restore handle 64-bit off_t correctly - This bug prevented proper restoration from archive files exceeding - 4Gb. - * Make contrib/dblink not assume that local and remote type OIDs - match (Joe) - * Quote connectby()'s start_with argument properly (Joe) - * Don't crash when a rowtype argument to a plpgsql function is NULL - * Avoid generating invalid character encoding sequences in corner - cases when planning LIKE operations - * Ensure text_position() cannot scan past end of source string in - multibyte cases (Korea PostgreSQL Users' Group) - * Fix index optimization and selectivity estimates for LIKE - operations on bytea columns (Joe) - _________________________________________________________________ - - Release 7.3.5 - - Release date: 2003-12-03 - - This has a variety of fixes from 7.3.4. - _________________________________________________________________ - -Migration to version 7.3.5 - - A dump/restore is *not* required for those running 7.3.*. - _________________________________________________________________ - -Changes - - * Force zero_damaged_pages to be on during recovery from WAL - * Prevent some obscure cases of "variable not in subplan target - lists" - * Force stats processes to detach from shared memory, ensuring - cleaner shutdown - * Make PQescapeBytea and byteaout consistent with each other (Joe) - * Added missing SPI_finish() calls to dblink's - get_tuple_of_interest() (Joe) - * Fix for possible foreign key violation when rule rewrites INSERT - (Jan) - * Support qualified type names in PL/Tcl's spi_prepare command (Jan) - * Make pg_dump handle a procedural language handler located in - pg_catalog - * Make pg_dump handle cases where a custom opclass is in another - schema - * Make pg_dump dump binary-compatible casts correctly (Jan) - * Fix insertion of expressions containing subqueries into rule - bodies - * Fix incorrect argument processing in clusterdb script (Anand - Ranganathan) - * Fix problems with dropped columns in plpython triggers - * Repair problems with to_char() reading past end of its input - string (Karel) - * Fix GB18030 mapping errors (Tatsuo) - * Fix several problems with SSL error handling and asynchronous SSL - I/O - * Remove ability to bind a list of values to a single parameter in - JDBC (prevents possible SQL-injection attacks) - * Fix some errors in HAVE_INT64_TIMESTAMP code paths - * Fix corner case for btree search in parallel with first root page - split - _________________________________________________________________ - - 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 a 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 ) -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 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 ) -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 ) -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 -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 ) -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' 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. diff --git a/INSTALL b/INSTALL deleted file mode 100644 index c2e0b33796..0000000000 --- a/INSTALL +++ /dev/null @@ -1,877 +0,0 @@ - PostgreSQL Installation Instructions - -This document describes the installation of PostgreSQL from the source code -distribution. - -------------------------------------------------------------------------------- - -Short Version - - ./configure - gmake - su - gmake install - adduser postgres - mkdir /usr/local/pgsql/data - chown postgres /usr/local/pgsql/data - su - postgres - /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data - /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & - /usr/local/pgsql/bin/createdb test - /usr/local/pgsql/bin/psql test - -The long version is the rest of this document. - -------------------------------------------------------------------------------- - -Requirements - -In general, a modern Unix-compatible platform should be able to run PostgreSQL. -The platforms that had received specific testing at the time of release are -listed in the Section called Supported Platforms below. In the "doc" -subdirectory of the distribution there are several platform-specific FAQ -documents you might wish to consult if you are having trouble. The following -software packages are required for building PostgreSQL: - - * GNU make is required; other make programs will *not* work. GNU make is - often installed under the name "gmake"; this document will always refer - to it by that name. (On some systems GNU make is the default tool with - the name "make".) To test for GNU make enter - - gmake --version - - It is recommended to use version 3.76.1 or later. - - * You need an ISO/ANSI C compiler. Recent versions of GCC are - recommendable, but PostgreSQL is known to build with a wide variety of - compilers from different vendors. - - * gzip is needed to unpack the distribution in the first place. If you are - reading this, you probably already got past that hurdle. - - * The GNU Readline library (for comfortable line editing and command - history retrieval) will be used by default. If you don't want to use it - then you must specify the "--without-readline" option for "configure". - (On NetBSD, the "libedit" library is Readline-compatible and is used if - "libreadline" is not found.) - - * To build on Windows NT or Windows 2000 you need the Cygwin and cygipc - packages. See the file "doc/FAQ_MSWIN" for details. - -The following packages are optional. They are not required in the default -configuration, but they are needed when certain build options are enabled, as -explained below. - - * To build the server programming language PL/Perl you need a full Perl - installation, including the "libperl" library and the header files. Since - PL/Perl will be a shared library, the "libperl" library must be a shared - library also on most platforms. This appears to be the default in recent - Perl versions, but it was not in earlier versions, and in general it is - the choice of whomever installed Perl at your site. - If you don't have the shared library but you need one, a message like - this will appear during the build to point out this fact: - - *** Cannot build PL/Perl because libperl is not a shared library. - *** You might have to rebuild your Perl installation. Refer to - *** the documentation for details. - - (If you don't follow the on-screen output you will merely notice that the - PL/Perl library object, "plperl.so" or similar, will not be installed.) - If you see this, you will have to rebuild and install Perl manually to be - able to build PL/Perl. During the configuration process for Perl, request - a shared library. - - * To build the PL/Python server programming language, you need a Python - installation, including the header files. Since PL/Python will be a - shared library, the "libpython" library must be a shared library also on - most platforms. This is not the case in a default Python installation. - If after building and installing you have a file called "plpython.so" - (possibly a different extension), then everything went well. Otherwise - you should have seen a notice like this flying by: - - *** Cannot build PL/Python because libpython is not a shared library. - *** You might have to rebuild your Python installation. Refer to - *** the documentation for details. - - That means you have to rebuild (part of) your Python installation to - supply this shared library. - The catch is that the Python distribution or the Python maintainers do - not provide any direct way to do this. The closest thing we can offer you - is the information in Python FAQ 3.30. On some operating systems you - don't really have to build a shared library, but then you will have to - convince the PostgreSQL build system of this. Consult the "Makefile" in - the "src/pl/plpython" directory for details. - - * If you want to build Tcl or Tk components (clients and the PL/Tcl - language) you of course need a Tcl installation. - - * To build the JDBC driver, you need Ant 1.5 or higher and a JDK. Ant is a - special tool for building Java-based packages. It can be downloaded from - the Ant web site. - If you have several Java compilers installed, it depends on the Ant - configuration which one gets used. Precompiled Ant distributions are - typically set up to read a file ".antrc" in the current user's home - directory for configuration. For example, to use a different JDK than the - default, this may work: - - JAVA_HOME=/usr/local/sun-jdk1.3 - JAVACMD=$JAVA_HOME/bin/java - - Note: Do not try to build the driver by calling "ant" or even - "javac" directly. This will not work. Run "gmake" normally as - described below. - - * To enable Native Language Support (NLS), that is, the ability to display - a program's messages in a language other than English, you need an - implementation of the Gettext API. Some operating systems have this - built-in (e.g., Linux, NetBSD, Solaris), for other systems you can - download an add-on package from here: http://developer.postgresql.org/~petere/ - bsd-gettext/. If you are using the Gettext implementation in the GNU C - library then you will additionally need the GNU Gettext package for some - utility programs. For any of the other implementations you will not need - it. - - * Kerberos, OpenSSL, or PAM, if you want to support authentication using - these services. - -If you are building from a CVS tree instead of using a released source package, -or if you want to do development, you also need the following packages: - - * Flex and Bison are needed to build a CVS checkout or if you changed the - actual scanner and parser definition files. If you need them, be sure to - get Flex 2.5.4 or later and Bison 1.875 or later. Other yacc programs can - sometimes be used, but doing so requires extra effort and is not - recommended. Other lex programs will definitely not work. - -If you need to get a GNU package, you can find it at your local GNU mirror site -(see http://www.gnu.org/order/ftp.html for a list) or at ftp://ftp.gnu.org/ -gnu/. -Also check that you have sufficient disk space. You will need about 65 MB for -the source tree during compilation and about 15 MB for the installation -directory. An empty database cluster takes about 25 MB, databases take about -five times the amount of space that a flat text file with the same data would -take. If you are going to run the regression tests you will temporarily need up -to an extra 90 MB. Use the "df" command to check for disk space. - -------------------------------------------------------------------------------- - -If You Are Upgrading - -The internal data storage format changes with new releases of PostgreSQL. -Therefore, if you are upgrading an existing installation that does not have a -version number "7.4.x", you must back up and restore your data as shown here. -These instructions assume that your existing installation is under the "/usr/ -local/pgsql" directory, and that the data area is in "/usr/local/pgsql/data". -Substitute your paths appropriately. - - 1. Make sure that your database is not updated during or after the backup. - This does not affect the integrity of the backup, but the changed data - would of course not be included. If necessary, edit the permissions in - the file "/usr/local/pgsql/data/pg_hba.conf" (or equivalent) to disallow - access from everyone except you. - - 2. To back up your database installation, type: - - pg_dumpall > outputfile - - If you need to preserve OIDs (such as when using them as foreign keys), - then use the "-o" option when running "pg_dumpall". - "pg_dumpall" does not save large objects. Check the documentation if you - need to do this. - To make the backup, you can use the "pg_dumpall" command from the version - you are currently running. For best results, however, try to use the - "pg_dumpall" command from PostgreSQL 7.4, since this version contains - bug fixes and improvements over older versions. While this advice might - seem idiosyncratic since you haven't installed the new version yet, it is - advisable to follow it if you plan to install the new version in parallel - with the old version. In that case you can complete the installation - normally and transfer the data later. This will also decrease the - downtime. - - 3. If you are installing the new version at the same location as the old one - then shut down the old server, at the latest before you install the new - files: - - kill -INT `cat /usr/local/pgsql/data/postmaster.pid | sed 1q` - - Versions prior to 7.0 do not have this "postmaster.pid" file. If you are - using such a version you must find out the process ID of the server - yourself, for example by typing "ps ax | grep postmaster", and supply it - to the "kill" command. - On systems that have PostgreSQL started at boot time, there is probably a - start-up file that will accomplish the same thing. For example, on a Red - Hat Linux system one might find that - - /etc/rc.d/init.d/postgresql stop - - works. Another possibility is "pg_ctl stop". - - 4. If you are installing in the same place as the old version then it is - also a good idea to move the old installation out of the way, in case you - have trouble and need to revert to it. Use a command like this: - - mv /usr/local/pgsql /usr/local/pgsql.old - -After you have installed PostgreSQL 7.4, create a new database directory and -start the new server. Remember that you must execute these commands while -logged in to the special database user account (which you already have if you -are upgrading). - - /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data - /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data - -Finally, restore your data with - - /usr/local/pgsql/bin/psql -d template1 -f outputfile - -using the *new* psql. -These topics are discussed at length in the documentation, which you are -encouraged to read in any case. - -------------------------------------------------------------------------------- - -Installation Procedure - - 1. Configuration - The first step of the installation procedure is to configure the source - tree for your system and choose the options you would like. This is done - by running the "configure" script. For a default installation simply - enter - - ./configure - - This script will run a number of tests to guess values for various system - dependent variables and detect some quirks of your operating system, and - finally will create several files in the build tree to record what it - found. (You can also run "configure" in a directory outside the source - tree if you want to keep the build directory separate.) - The default configuration will build the server and utilities, as well as - all client applications and interfaces that require only a C compiler. - All files will be installed under "/usr/local/pgsql" by default. - You can customize the build and installation process by supplying one or - more of the following command line options to "configure": - - --prefix=PREFIX - - Install all files under the directory "PREFIX" instead of "/usr/ - local/pgsql". The actual files will be installed into various - subdirectories; no files will ever be installed directly into the - "PREFIX" directory. - If you have special needs, you can also customize the individual - subdirectories with the following options. - - --exec-prefix=EXEC-PREFIX - - You can install architecture-dependent files under a different - prefix, "EXEC-PREFIX", than what "PREFIX" was set to. This can be - useful to share architecture-independent files between hosts. If - you omit this, then "EXEC-PREFIX" is set equal to "PREFIX" and both - architecture-dependent and independent files will be installed - under the same tree, which is probably what you want. - - --bindir=DIRECTORY - - Specifies the directory for executable programs. The default is - "EXEC-PREFIX/bin", which normally means "/usr/local/pgsql/bin". - - --datadir=DIRECTORY - - Sets the directory for read-only data files used by the installed - programs. The default is "PREFIX/share". Note that this has nothing - to do with where your database files will be placed. - - --sysconfdir=DIRECTORY - - The directory for various configuration files, "PREFIX/etc" by - default. - - --libdir=DIRECTORY - - The location to install libraries and dynamically loadable modules. - The default is "EXEC-PREFIX/lib". - - --includedir=DIRECTORY - - The directory for installing C and C++ header files. The default is - "PREFIX/include". - - --docdir=DIRECTORY - - Documentation files, except "man" pages, will be installed into - this directory. The default is "PREFIX/doc". - - --mandir=DIRECTORY - - The man pages that come with PostgreSQL will be installed under - this directory, in their respective "manx" subdirectories. The - default is "PREFIX/man". - - Note: Care has been taken to make it possible to install - PostgreSQL into shared installation locations (such as "/usr/ - local/include") without interfering with the namespace of the - rest of the system. First, the string "/postgresql" is - automatically appended to datadir, sysconfdir, and docdir, - unless the fully expanded directory name already contains the - string "postgres" or "pgsql". For example, if you choose "/usr/ - local" as prefix, the documentation will be installed in "/usr/ - local/doc/postgresql", but if the prefix is "/opt/postgres", - then it will be in "/opt/postgres/doc". The public C header - files of the client interfaces are installed into includedir - and are namespace-clean. The internal header files and the - server header files are installed into private directories - under includedir. See the documentation of each interface for - information about how to get at the its header files. Finally, - a private subdirectory will also be created, if appropriate, - under libdir for dynamically loadable modules. - - --with-includes=DIRECTORIES - - "DIRECTORIES" is a colon-separated list of directories that will be - added to the list the compiler searches for header files. If you - have optional packages (such as GNU Readline) installed in a non- - standard location, you have to use this option and probably also - the corresponding "--with-libraries" option. - Example: --with-includes=/opt/gnu/include:/usr/sup/include. - - --with-libraries=DIRECTORIES - - "DIRECTORIES" is a colon-separated list of directories to search - for libraries. You will probably have to use this option (and the - corresponding "--with-includes" option) if you have packages - installed in non-standard locations. - Example: --with-libraries=/opt/gnu/lib:/usr/sup/lib. - - --enable-nls[=LANGUAGES] - - Enables Native Language Support (NLS), that is, the ability to - display a program's messages in a language other than English. - "LANGUAGES" is a space separated list of codes of the languages - that you want supported, for example --enable-nls='de fr'. (The - intersection between your list and the set of actually provided - translations will be computed automatically.) If you do not specify - a list, then all available translations are installed. - To use this option, you will need an implementation of the Gettext - API; see above. - - --with-pgport=NUMBER - - Set "NUMBER" as the default port number for server and clients. The - default is 5432. The port can always be changed later on, but if - you specify it here then both server and clients will have the same - default compiled in, which can be very convenient. Usually the only - good reason to select a non-default value is if you intend to run - multiple PostgreSQL servers on the same machine. - - --with-perl - - Build the PL/Perl server-side language. - - --with-python - - Build the PL/Python server-side language. - - --with-tcl - - Build components that require Tcl/Tk, which are libpgtcl, pgtclsh, - pgtksh, and PL/Tcl. But see below about "--without-tk". - - --without-tk - - If you specify "--with-tcl" and this option, then the program that - requires Tk (pgtksh) will be excluded. - - --with-tclconfig=DIRECTORY, --with-tkconfig=DIRECTORY - - Tcl/Tk installs the files "tclConfig.sh" and "tkConfig.sh", which - contain configuration information needed to build modules - interfacing to Tcl or Tk. These files are normally found - automatically at their well-known locations, but if you want to use - a different version of Tcl or Tk you can specify the directory in - which to find them. - - --with-java - - Build the JDBC driver and associated Java packages. - - --with-krb4[=DIRECTORY], --with-krb5[=DIRECTORY] - - Build with support for Kerberos authentication. You can use either - Kerberos version 4 or 5, but not both. The "DIRECTORY" argument - specifies the root directory of the Kerberos installation; "/usr/ - athena" is assumed as default. If the relevant header files and - libraries are not under a common parent directory, then you must - use the "--with-includes" and "--with-libraries" options in - addition to this option. If, on the other hand, the required files - are in a location that is searched by default (e.g., "/usr/lib"), - then you can leave off the argument. - "configure" will check for the required header files and libraries - to make sure that your Kerberos installation is sufficient before - proceeding. - - --with-krb-srvnam=NAME - - The name of the Kerberos service principal. postgres is the - default. There's probably no reason to change this. - - --with-openssl[=DIRECTORY] - - Build with support for SSL (encrypted) connections. This requires - the OpenSSL package to be installed. The "DIRECTORY" argument - specifies the root directory of the OpenSSL installation; the - default is "/usr/local/ssl". - "configure" will check for the required header files and libraries - to make sure that your OpenSSL installation is sufficient before - proceeding. - - --with-pam - - Build with PAM (Pluggable Authentication Modules) support. - - --without-readline - - Prevents the use of the Readline library. This disables command- - line editing and history in psql, so it is not recommended. - - --with-rendezvous - - Build with Rendezvous support. - - --disable-spinlocks - - Allow the builds to succeed even if PostgreSQL has no CPU spinlock - support for the platform. The lack of spinlock support will result - in poor performance; therefore, this option should only be used if - the build aborts and informs you that the platform lacks spinlock - support. - - --enable-thread-safety - - Make the client libraries thread-safe. This allows concurrent - threads in libpq and ECPG programs to safely control their private - connection handles. - - --without-zlib - - Prevents the use of the Zlib library. This disables compression - support in pg_dump. This option is only intended for those rare - systems where this library is not available. - - --enable-debug - - Compiles all programs and libraries with debugging symbols. This - means that you can run the programs through a debugger to analyze - problems. This enlarges the size of the installed executables - considerably, and on non-GCC compilers it usually also disables - compiler optimization, causing slowdowns. However, having the - symbols available is extremely helpful for dealing with any - problems that may arise. Currently, this option is recommended for - production installations only if you use GCC. But you should always - have it on if you are doing development work or running a beta - version. - - --enable-cassert - - Enables assertion checks in the server, which test for many "can't - happen" conditions. This is invaluable for code development - purposes, but the tests slow things down a little. Also, having the - tests turned on won't necessarily enhance the stability of your - server! The assertion checks are not categorized for severity, and - so what might be a relatively harmless bug will still lead to - server restarts if it triggers an assertion failure. Currently, - this option is not recommended for production use, but you should - have it on for development work or when running a beta version. - - --enable-depend - - Enables automatic dependency tracking. With this option, the - makefiles are set up so that all affected object files will be - rebuilt when any header file is changed. This is useful if you are - doing development work, but is just wasted overhead if you intend - only to compile once and install. At present, this option will work - only if you use GCC. - - If you prefer a C compiler different from the one "configure" picks then - you can set the environment variable CC to the program of your choice. By - default, "configure" will pick "gcc" unless this is inappropriate for the - platform. Similarly, you can override the default compiler flags with the - CFLAGS variable. - - You can specify environment variables on the "configure" command line, - for example: - - ./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe' - - 2. Build - To start the build, type - - gmake - - (Remember to use GNU make.) The build may take anywhere from 5 minutes to - half an hour depending on your hardware. The last line displayed should - be - - All of PostgreSQL is successfully made. Ready to install. - - 3. Regression Tests - If you want to test the newly built server before you install it, you can - run the regression tests at this point. The regression tests are a test - suite to verify that PostgreSQL runs on your machine in the way the - developers expected it to. Type - - gmake check - - (This won't work as root; do it as an unprivileged user.) The file "src/ - test/regress/README" and the documentation contain detailed information - about interpreting the test results. You can repeat this test at any - later time by issuing the same command. - - 4. Installing The Files - Note: If you are upgrading an existing system and are going to - install the new files over the old ones, then you should have - backed up your data and shut down the old server by now, as - explained in - the Section called If You Are Upgrading - above. - To install PostgreSQL enter - - gmake install - - This will install files into the directories that were specified in step - 1. Make sure that you have appropriate permissions to write into that - area. Normally you need to do this step as root. Alternatively, you could - create the target directories in advance and arrange for appropriate - permissions to be granted. - You can use gmake install-strip instead of gmake install to strip the - executable files and libraries as they are installed. This will save some - space. If you built with debugging support, stripping will effectively - remove the debugging support, so it should only be done if debugging is - no longer needed. install-strip tries to do a reasonable job saving - space, but it does not have perfect knowledge of how to strip every - unneeded byte from an executable file, so if you want to save all the - disk space you possibly can, you will have to do manual work. - The standard installation provides only the header files needed for - client application development. If you plan to do any server-side program - development (such as custom functions or data types written in C), then - you may want to install the entire PostgreSQL include tree into your - target include directory. To do that, enter - - gmake install-all-headers - - This adds a megabyte or two to the installation footprint, and is only - useful if you don't plan to keep the whole source tree around for - reference. (If you do, you can just use the source's include directory - when building server-side software.) - Client-only installation: If you want to install only the client - applications and interface libraries, then you can use these commands: - - gmake -C src/bin install - gmake -C src/include install - gmake -C src/interfaces install - gmake -C doc install - -Uninstallation: To undo the installation use the command "gmake uninstall". -However, this will not remove any created directories. -Cleaning: After the installation you can make room by removing the built files -from the source tree with the command "gmake clean". This will preserve the -files made by the "configure" program, so that you can rebuild everything with -"gmake" later on. To reset the source tree to the state in which it was -distributed, use "gmake distclean". If you are going to build for several -platforms from the same source tree you must do this and re-configure for each -build. -If you perform a build and then discover that your "configure" options were -wrong, or if you change anything that "configure" investigates (for example, -software upgrades), then it's a good idea to do "gmake distclean" before -reconfiguring and rebuilding. Without this, your changes in configuration -choices may not propagate everywhere they need to. - -------------------------------------------------------------------------------- - -Post-Installation Setup - -Shared Libraries - -On some systems that have shared libraries (which most systems do) you need to -tell your system how to find the newly installed shared libraries. The systems -on which this is *not* necessary include BSD/OS, FreeBSD, HP-UX, IRIX, Linux, -NetBSD, OpenBSD, Tru64 UNIX (formerly Digital UNIX), and Solaris. -The method to set the shared library search path varies between platforms, but -the most widely usable method is to set the environment variable -LD_LIBRARY_PATH like so: In Bourne shells ("sh", "ksh", "bash", "zsh") - - LD_LIBRARY_PATH=/usr/local/pgsql/lib - export LD_LIBRARY_PATH - -or in "csh" or "tcsh" - - setenv LD_LIBRARY_PATH /usr/local/pgsql/lib - -Replace /usr/local/pgsql/lib with whatever you set "--libdir" to in step 1. You -should put these commands into a shell start-up file such as "/etc/profile" or -"~/.bash_profile". Some good information about the caveats associated with this -method can be found at http://www.visi.com/~barr/ldpath.html. -On some systems it might be preferable to set the environment variable -LD_RUN_PATH *before* building. -On Cygwin, put the library directory in the PATH or move the ".dll" files into -the "bin" directory. -If in doubt, refer to the manual pages of your system (perhaps "ld.so" or -"rld"). If you later on get a message like - - psql: error in loading shared libraries - libpq.so.2.1: cannot open shared object file: No such file or directory - -then this step was necessary. Simply take care of it then. -If you are on BSD/OS, Linux, or SunOS 4 and you have root access you can run - - /sbin/ldconfig /usr/local/pgsql/lib - -(or equivalent directory) after installation to enable the run-time linker to -find the shared libraries faster. Refer to the manual page of "ldconfig" for -more information. On FreeBSD, NetBSD, and OpenBSD the command is - - /sbin/ldconfig -m /usr/local/pgsql/lib - -instead. Other systems are not known to have an equivalent command. - -------------------------------------------------------------------------------- - -Environment Variables - -If you installed into "/usr/local/pgsql" or some other location that is not -searched for programs by default, you should add "/usr/local/pgsql/bin" (or -whatever you set "--bindir" to in step 1) into your PATH. Strictly speaking, -this is not necessary, but it will make the use of PostgreSQL much more -convenient. -To do this, add the following to your shell start-up file, such as -"~/.bash_profile" (or "/etc/profile", if you want it to affect every user): - - PATH=/usr/local/pgsql/bin:$PATH - export PATH - -If you are using "csh" or "tcsh", then use this command: - - set path = ( /usr/local/pgsql/bin $path ) - -To enable your system to find the man documentation, you need to add lines like -the following to a shell start-up file unless you installed into a location -that is searched by default. - - MANPATH=/usr/local/pgsql/man:$MANPATH - export MANPATH - -The environment variables PGHOST and PGPORT specify to client applications the -host and port of the database server, overriding the compiled-in defaults. If -you are going to run client applications remotely then it is convenient if -every user that plans to use the database sets PGHOST. This is not required, -however: the settings can be communicated via command line options to most -client programs. - -------------------------------------------------------------------------------- - -Getting Started - -The following is a quick summary of how to get PostgreSQL up and running once -installed. The main documentation contains more information. - - 1. Create a user account for the PostgreSQL server. This is the user the - server will run as. For production use you should create a separate, - unprivileged account ("postgres" is commonly used). If you do not have - root access or just want to play around, your own user account is enough, - but running the server as root is a security risk and will not work. - - adduser postgres - - 2. Create a database installation with the "initdb" command. To run "initdb" - you must be logged in to your PostgreSQL server account. It will not work - as root. - - root# mkdir /usr/local/pgsql/data - root# chown postgres /usr/local/pgsql/data - root# su - postgres - postgres$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data - - The "-D" option specifies the location where the data will be stored. You - can use any path you want, it does not have to be under the installation - directory. Just make sure that the server account can write to the - directory (or create it, if it doesn't already exist) before starting - "initdb", as illustrated here. - - 3. The previous step should have told you how to start up the database - server. Do so now. The command should look something like - - /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data - - This will start the server in the foreground. To put the server in the - background use something like - - nohup /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data \ - >server.log 2>&1 or , not to the people listed here. - _____________________________________________________________________________ -|OS__________|Processor|Version|Reported______________________|Remarks________| -|AIX |RS6000 |7.4 |2003-10-25, Hans-Jürgen |see also doc/ | -|____________|_________|_______|Schönig_()____|FAQ_AIX________| -|BSD/OS |x86 |7.4 |2003-10-24, Bruce Momjian |4.3 | -|____________|_________|_______|()____|_______________| -|FreeBSD |Alpha |7.4 |2003-10-25, Peter Eisentraut |4.8 | -|____________|_________|_______|()___________|_______________| -|FreeBSD |x86 |7.4 |2003-10-24, Peter Eisentraut |4.9 | -|____________|_________|_______|()___________|_______________| -|HP-UX |PA-RISC |7.4 |2003-10-31, 10.20, Tom Lane |gcc and cc; see| -| | | |(); 2003- |also doc/ | -| | | |11-04, 11.00, Peter Eisentraut|FAQ_HPUX | -|____________|_________|_______|()___________|_______________| -|IRIX |MIPS |7.4 |2003-11-12, Robert E. |6.5.20, cc only| -| | | |Bruccoleri | | -|____________|_________|_______|()|_______________| -|Linux |Alpha |7.4 |2003-10-25, Nočl Köthe |2.4 | -|____________|_________|_______|()___________|_______________| -|Linux |arm41 |7.4 |2003-10-25, Nočl Köthe |2.4 | -|____________|_________|_______|()___________|_______________| -|Linux |Itanium |7.4 |2003-10-25, Nočl Köthe |2.4 | -|____________|_________|_______|()___________|_______________| -|Linux |m68k |7.4 |2003-10-25, Nočl Köthe |2.4 | -|____________|_________|_______|()___________|_______________| -|Linux |MIPS |7.4 |2003-10-25, Nočl Köthe |2.4 | -|____________|_________|_______|()___________|_______________| -|Linux |Opteron |7.4 |2003-11-01, Jani Averbach |2.6 | -|____________|_________|_______|()_____________|_______________| -|Linux |PPC |7.4 |2003-10-25, Nočl Köthe | | -|____________|_________|_______|()___________|_______________| -|Linux |S/390 |7.4 |2003-10-25, Nočl Köthe |2.4 | -|____________|_________|_______|()___________|_______________| -|Linux |Sparc |7.4 |2003-10-24, Peter Eisentraut |2.4, 32-bit | -|____________|_________|_______|()___________|_______________| -|Linux |x86 |7.4 |2003-10-24, Peter Eisentraut |2.4 | -|____________|_________|_______|()___________|_______________| -|MacOS X |PPC |7.4 |2003-10-24, 10.2.8, Adam | | -| | | |Witney | | -| | | |(), 10.3,| | -| | | |Marko Karppinen | | -|____________|_________|_______|()________|_______________| -|NetBSD |arm32 |7.4 |2003-11-12, Patrick Welche |1.6ZE/acorn32 | -|____________|_________|_______|()______|_______________| -|NetBSD |x86 |7.4 |2003-10-24, Peter Eisentraut |1.6 | -|____________|_________|_______|()___________|_______________| -|OpenBSD |Sparc |7.4 |2003-11-01, Peter Eisentraut |3.4 | -|____________|_________|_______|()___________|_______________| -|OpenBSD |x86 |7.4 |2003-10-24, Peter Eisentraut |3.2 | -|____________|_________|_______|()___________|_______________| -|Solaris |Sparc |7.4 |2003-10-26, Christopher Browne|2.8; see also | -|____________|_________|_______|()__|doc/FAQ_Solaris| -|Solaris |x86 |7.4 |2003-10-26, Kurt Roeckx |2.6 see also | -|____________|_________|_______|()_________________|doc/FAQ_Solaris| -|Tru64 UNIX |Alpha |7.4 |2003-10-25, 5.1b, Peter | | -| | | |Eisentraut | | -| | | |(); 2003-10- | | -| | | |29, 4.0g, Alessio Bragadini | | -|____________|_________|_______|()______|_______________| -|UnixWare |x86 |7.4 |2003-11-03, Larry Rosenman |7.1.3; join | -| | | |() |test may fail, | -| | | | |see also doc/ | -|____________|_________|_______|______________________________|FAQ_SCO________| -|Windows with|x86 |7.4 |2003-10-24, Peter Eisentraut |see doc/ | -|Cygwin______|_________|_______|()___________|FAQ_MSWIN______| -|Windows |x86 |7.4 |2003-10-27, Dave Page |native is | -| | | |() |client-side | -| | | | |only, see | -|____________|_________|_______|______________________________|documentation__| - -Unsupported Platforms: The following platforms are either known not to work, or -they used to work in a previous release and we did not receive explicit -confirmation of a successful test with version 7.4 at the time this list was -compiled. We include these here to let you know that these platforms *could* be -supported if given some attention. - ________________________________________________________________________________ -|OS________|Processor__|Version|Reported_______________________|Remarks__________| -|BeOS |x86 |7.2 |2001-11-29, Cyril Velter |needs updates to | -|__________|___________|_______|()|semaphore_code___| -|Linux |PlayStation|7.4 |2003-11-02, Peter Eisentraut |needs new | -| |2 | |() |config.guess, -- | -| | | | |disable- | -| | | | |spinlocks, #undef| -| | | | |HAS_TEST_AND_SET,| -| | | | |disable tas_dummy| -|__________|___________|_______|_______________________________|()_______________| -|Linux |PA-RISC |7.4 |2003-10-25, Nočl Köthe |needs --disable- | -| | | |() |spinlocks, | -|__________|___________|_______|_______________________________|otherwise_OK_____| -|NetBSD |Alpha |7.2 |2001-11-20, Thomas Thai |1.5W | -|__________|___________|_______|()__________|_________________| -|NetBSD |MIPS |7.2.1 |2002-06-13, Warwick Hunter |1.5.3 | -|__________|___________|_______|()___________|_________________| -|NetBSD |PPC |7.2 |2001-11-28, Bill Studenmund |1.5 | -|__________|___________|_______|()________|_________________| -|NetBSD |Sparc |7.2 |2001-12-03, Matthew Green |32- and 64-bit | -|__________|___________|_______|()__________|builds___________| -|NetBSD |VAX |7.1 |2001-03-30, Tom I. Helbekkmo |1.5 | -|__________|___________|_______|()____________|_________________| -|QNX 4 RTOS|x86 |7.2 |2001-12-10, Bernd Tegge |needs updates to | -| | | |() |semaphore code; | -| | | | |see also doc/ | -|__________|___________|_______|_______________________________|FAQ_QNX4_________| -|QNX RTOS |x86 |7.2 |2001-11-20, Igor Kovalenko |patches available| -|v6 | | |()|in archives, but | -|__________|___________|_______|_______________________________|too_late_for_7.2_| -|SCO |x86 |7.3.1 |2002-12-11, Shibashish Satpathy|5.0.4, gcc; see | -|OpenServer|___________|_______|()__________|also_doc/FAQ_SCO_| -|SunOS 4 |Sparc |7.2 |2001-12-04, Tatsuo Ishii ()______________|_________________| diff --git a/README.CVS b/README.CVS new file mode 100644 index 0000000000..dc078bb4d8 --- /dev/null +++ b/README.CVS @@ -0,0 +1,13 @@ +Tarball versions of PostgreSQL will contain INSTALL and HISTORY files in +this directory. + +For people using CVS checkouts, you can view the install instructions +at: + + http://developer.postgresql.org/docs/postgres/installation.html + +and the release notes can be viewed at: + + http://developer.postgresql.org/docs/postgres/release.html + +This file does not appear in release tarball.