diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index 87d571ad8f..d27d659045 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,5 +1,5 @@ @@ -114,76 +114,76 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.341 2005/08/23 11:59:09 momjian Observe the following incompatibilities: - - - - - - Change add_missing_from to 'false' - - - Generate an error if a table used in a query without a FROM reference (Neil) - No more SELECT pg_class.*; - - - - - - Cause input of a zero-length string ('') for float4/float8/oid to throw - an error, rather than treat it as a zero (Neil) - - - This change is consistent with the current handling of zero-length - strings for integers. The schedule for this change was announced in 8.0. - - - - - - Make default_with_oids default to false (Neil) - - - With this option set to false, user-created tables no - have an the usually-invisible OID column unless WITH OIDS - is specified in CREATE TABLE. Though OIDs have existed in all previous - releases of PostgreSQL, their use is limited because they are only four - bytes long and the counter is unique across all installed databases. - The preferred way of uniquely identifying rows is via sequences and - SERIAL, which has been supported since PostgreSQL 6.4. - - - - - - In psql, treat unquoted \{digit}+ sequences as octal (Bruce) - - - In previous releases, \{digit}+ sequences were treated as - decimal, and only \0{digit}+ were treated as octal. This - change was made for consistency. - - - - - - Remove grammar productions for prefix and postfix % and ^ operators - (Tom) - - - These have never been documented and complicated the use of modulus - (%) with negative numbers. - - - - - - Make "&<" and "&>" for polygons consistent with the box - "over" operators (Tom) - - - - + + + + + + Change add_missing_from to 'false' + + + Generate an error if a table used in a query without a FROM reference (Neil) + No more SELECT pg_class.*; + + + + + + Cause input of a zero-length string ('') for float4/float8/oid to throw + an error, rather than treat it as a zero (Neil) + + + This change is consistent with the current handling of zero-length + strings for integers. The schedule for this change was announced in 8.0. + + + + + + Make default_with_oids default to false (Neil) + + + With this option set to false, user-created tables no + have an the usually-invisible OID column unless WITH OIDS + is specified in CREATE TABLE. Though OIDs have existed in all previous + releases of PostgreSQL, their use is limited because they are only four + bytes long and the counter is unique across all installed databases. + The preferred way of uniquely identifying rows is via sequences and + SERIAL, which has been supported since PostgreSQL 6.4. + + + + + + In psql, treat unquoted \{digit}+ sequences as octal (Bruce) + + + In previous releases, \{digit}+ sequences were treated as + decimal, and only \0{digit}+ were treated as octal. This + change was made for consistency. + + + + + + Remove grammar productions for prefix and postfix % and ^ operators + (Tom) + + + These have never been documented and complicated the use of modulus + (%) with negative numbers. + + + + + + Make "&<" and "&>" for polygons consistent with the box + "over" operators (Tom) + + + + @@ -2032,241 +2032,241 @@ typedefs (Michael) Observe the following incompatibilities: - - - - - - In - - - - - Functions declared - - - - - Non-deferred - - - - - Server configuration parameters virtual_host and - tcpip_socket have been replaced with a more general - parameter listen_addresses. Also, the server now listens on - localhost by default, which eliminates the need for the - -i postmaster switch in many scenarios. - - - - - - Server configuration parameters SortMem and - VacuumMem have been renamed to work_mem - and maintenance_work_mem to better reflect their - use. The original names are still supported in - SET and SHOW. - - - - - - Server configuration parameters log_pid, - log_timestamp, and log_source_port have been - replaced with a more general parameter log_line_prefix. - - - - - - Server configuration parameter syslog has been - replaced with a more logical log_destination variable to - control the log output destination. - - - - - - Server configuration parameter log_statement has been - changed so it can selectively log just database modification or - data definition statements. Server configuration parameter - log_duration now prints only when log_statement - prints the query. - - - - - - Server configuration parameter max_expr_depth parameter has - been replaced with max_stack_depth which measures the - physical stack size rather than the expression nesting depth. This - helps prevent session termination due to stack overflow caused by - recursive functions. - - - - - - The length() function no longer counts trailing spaces in - CHAR(n) values. - - - - - - Casting an integer to BIT(N) selects the rightmost N bits of the - integer, not the leftmost N bits as before. - - - - - - Updating an element or slice of a NULL array value now produces - a non-NULL array result, namely an array containing - just the assigned-to positions. - - - - - - Syntax checking of array input values has been tightened up - considerably. Junk that was previously allowed in odd places with - odd results now causes an error. Empty-string element values - must now be written as "", rather than writing nothing. - Also changed behavior with respect to whitespace surrounding - array elements: trailing whitespace is now ignored, for symmetry - with leading whitespace (which has always been ignored). - - - - - - Overflow in integer arithmetic operations is now detected and - reported as an error. - - - - - - The arithmetic operators associated with the single-byte - "char" data type have been removed. - - - - - - The extract() function (also called - date_part) now returns the proper year for BC dates. - It previously returned one less than the correct year. The - function now also returns the proper values for millennium and - century. - - - - - - CIDR values now must have their non-masked bits be zero. - For example, we no longer allow - 204.248.199.1/31 as a CIDR value. Such - values should never have been accepted by - PostgreSQL and will now be rejected. - - - - - - EXECUTE now returns a completion tag that - matches the executed statement. - - - - - - psql's \copy command now reads or - writes to the query's stdin/stdout, rather than - psql's stdin/stdout. The previous - behavior can be accessed via new - - - - - - The JDBC client interface has been removed from the core - distribution, and is now hosted at . - - - - - - The Tcl client interface has also been removed. There are several - Tcl interfaces now hosted at . - - - - - - The server now uses its own time zone database, rather than the - one supplied by the operating system. This will provide consistent - behavior across all platforms. In most cases, there should be - little noticeable difference in time zone behavior, except that - the time zone names used by SET/SHOW - TimeZone may - be different from what your platform provides. - - - - - - Configure's threading option no longer requires - users to run tests or edit configuration files; threading options - are now detected automatically. - - - - - - Now that tablespaces have been implemented, - initlocation has been removed. - - - - - - The API for user-defined GiST indexes has been changed. The - Union and PickSplit methods are now passed a pointer to a - special GistEntryVector structure, - rather than a bytea. - - - - + + + + + + In + + + + + Functions declared + + + + + Non-deferred + + + + + Server configuration parameters virtual_host and + tcpip_socket have been replaced with a more general + parameter listen_addresses. Also, the server now listens on + localhost by default, which eliminates the need for the + -i postmaster switch in many scenarios. + + + + + + Server configuration parameters SortMem and + VacuumMem have been renamed to work_mem + and maintenance_work_mem to better reflect their + use. The original names are still supported in + SET and SHOW. + + + + + + Server configuration parameters log_pid, + log_timestamp, and log_source_port have been + replaced with a more general parameter log_line_prefix. + + + + + + Server configuration parameter syslog has been + replaced with a more logical log_destination variable to + control the log output destination. + + + + + + Server configuration parameter log_statement has been + changed so it can selectively log just database modification or + data definition statements. Server configuration parameter + log_duration now prints only when log_statement + prints the query. + + + + + + Server configuration parameter max_expr_depth parameter has + been replaced with max_stack_depth which measures the + physical stack size rather than the expression nesting depth. This + helps prevent session termination due to stack overflow caused by + recursive functions. + + + + + + The length() function no longer counts trailing spaces in + CHAR(n) values. + + + + + + Casting an integer to BIT(N) selects the rightmost N bits of the + integer, not the leftmost N bits as before. + + + + + + Updating an element or slice of a NULL array value now produces + a non-NULL array result, namely an array containing + just the assigned-to positions. + + + + + + Syntax checking of array input values has been tightened up + considerably. Junk that was previously allowed in odd places with + odd results now causes an error. Empty-string element values + must now be written as "", rather than writing nothing. + Also changed behavior with respect to whitespace surrounding + array elements: trailing whitespace is now ignored, for symmetry + with leading whitespace (which has always been ignored). + + + + + + Overflow in integer arithmetic operations is now detected and + reported as an error. + + + + + + The arithmetic operators associated with the single-byte + "char" data type have been removed. + + + + + + The extract() function (also called + date_part) now returns the proper year for BC dates. + It previously returned one less than the correct year. The + function now also returns the proper values for millennium and + century. + + + + + + CIDR values now must have their non-masked bits be zero. + For example, we no longer allow + 204.248.199.1/31 as a CIDR value. Such + values should never have been accepted by + PostgreSQL and will now be rejected. + + + + + + EXECUTE now returns a completion tag that + matches the executed statement. + + + + + + psql's \copy command now reads or + writes to the query's stdin/stdout, rather than + psql's stdin/stdout. The previous + behavior can be accessed via new + + + + + + The JDBC client interface has been removed from the core + distribution, and is now hosted at . + + + + + + The Tcl client interface has also been removed. There are several + Tcl interfaces now hosted at . + + + + + + The server now uses its own time zone database, rather than the + one supplied by the operating system. This will provide consistent + behavior across all platforms. In most cases, there should be + little noticeable difference in time zone behavior, except that + the time zone names used by SET/SHOW + TimeZone may + be different from what your platform provides. + + + + + + Configure's threading option no longer requires + users to run tests or edit configuration files; threading options + are now detected automatically. + + + + + + Now that tablespaces have been implemented, + initlocation has been removed. + + + + + + The API for user-defined GiST indexes has been changed. The + Union and PickSplit methods are now passed a pointer to a + special GistEntryVector structure, + rather than a bytea. + + + + - - - Deprecated Features - - + + + Deprecated Features + + Some aspects of PostgreSQL's behavior have been determined to be suboptimal. For the sake of backward compatibility these have not been removed in 8.0, but they are @@ -2305,6 +2305,7 @@ typedefs (Michael) PostgreSQL. + @@ -5198,146 +5199,147 @@ DROP SCHEMA information_schema CASCADE; 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. - - - + + + + + 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. + + + + @@ -7560,99 +7562,98 @@ operations on bytea columns (Joe) 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. - - - - + + + + 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. + + + + @@ -8516,58 +8517,59 @@ since PostgreSQL 7.1. 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 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