From bc1a3cdd01412981fa5a2e6ebadfea13fbf11361 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Tue, 23 Aug 2005 19:44:58 +0000 Subject: [PATCH] Update release notes. --- doc/src/sgml/release.sgml | 1075 ++++++++++++++++++++++--------------- 1 file changed, 636 insertions(+), 439 deletions(-) diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index 8a5b447f55..2f1a31a6e6 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,5 +1,5 @@ @@ -29,23 +29,25 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - This was accomplished by eliminating global locks and using a clock - sweep algorithm to find free buffers. This increases scalability - on multi-CPU systems. + This was accomplished by eliminating global locks and using a + clock sweep algorithm to find free buffers. This increases + scalability on multi-CPU systems. - Automatically use indexes for MIN() and MAX() (Tom) + Automatically use indexes for MIN() and + MAX() (Tom) - In previous releases, the only way to use an index for MIN/MAX - was to rewrite the query as SELECT col FROM tab ORDER BY col - LIMIT 1. Index usage now happens automatically. + In previous releases, the only way to use an index for + MIN() or MAX() was to rewrite the + query as SELECT col FROM tab ORDER BY col LIMIT 1. + Index usage now happens automatically. @@ -59,15 +61,15 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian In previous releases, only a single index could be used to do - lookups on a table. With this feature, if a query has WHERE - tab.col1 = 4 and tab.col2 = 9, and there is no multicolumn index - on col1 and col2, but there is an index on col1 and another on - col2, it is possible to do lookups on the col1 index and the - col2 index and combine them in memory to do heap lookups on rows - matching both the col1 and col2 restrictions. This is very - useful in environments that have a lot of unstructured queries - where it is impossible to create indexes that match all possible - access conditions. + lookups on a table. With this feature, if a query has + WHERE tab.col1 = 4 and tab.col2 = 9, and there is no + multicolumn index on col1 and col2, but there is an index on + col1 and another on col2, it is possible to do lookups on the + col1 index and the col2 index and combine them in memory to do + heap lookups on rows matching both the col1 and col2 + restrictions. This is very useful in environments that have a + lot of unstructured queries where it is impossible to create + indexes that match all possible access conditions. @@ -84,9 +86,9 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian their transactions (none failed), all transactions can be committed. Even if a machine crashes after a prepare, the prepared transaction can be committed after it is restarted. New - syntax includes PREPARE TRANSACTION and COMMIT/ROLLBACK - PREPARED. A new system view pg_prepared_xacts has also been - added. + syntax includes PREPARE TRANSACTION and + COMMIT/ROLLBACK PREPARED. A new system view + pg_prepared_xacts has also been added. @@ -127,48 +129,52 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Switch to another member role using SET ROLE + Switch to another member role using SET ROLE So, once a user logs into a role, she inherits capabilities of - the login role plus any inherited roles, and can use SET ROLE to - switch to other member roles. This change also replaces - pg_shadow and pg_group by with new role-capable catalogs - pg_authid and pg_auth_members. The old tables are redefined as - views on the new role tables. + the login role plus any inherited roles, and can use + SET ROLE to switch to other member roles. This + change also replaces pg_shadow and pg_group by with new + role-capable catalogs pg_authid and pg_auth_members. The old + tables are redefined as views on the new role tables. - Move /contrib/pgautovacuum into the main server (Alvaro Herrera) + Move /contrib/pgautovacuum into the main server + (Alvaro Herrera) - Moving pgautovacuum from /contrib allows it to be automatically - started and stoped in sync with the database server, and allows - for pgautovacuum to be configured from postgresql.conf. + Moving pgautovacuum from /contrib allows it to be + automatically started and stoped in sync with the database + server, and allows for pgautovacuum to be configured from + postgresql.conf. - Add shared row level locks using SELECT ... FOR SHARE (Alvaro) + Add shared row level locks using SELECT ... FOR SHARE + (Alvaro) - While PostgreSQL's MVCC locking allows SELECT to never be - blocked by writers and therefore does not need shared row locks - for typical operations, shared locks are useful for applications - that require shared row locking, and to reduce the locking - requirements to maintain referential integrity. + While PostgreSQL's MVCC locking + allows SELECT to never be blocked by writers and + therefore does not need shared row locks for typical operations, + shared locks are useful for applications that require shared row + locking, and to reduce the locking requirements to maintain + referential integrity. @@ -180,16 +186,15 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian Migration to version 8.1 - A dump/restore using pg_dump is - required for those wishing to migrate data from any previous - release. + A dump/restore using pg_dump is required + for those wishing to migrate data from any previous release. The 8.0 release announced that the to_char() function - for intervals would be removed in 8.1. However, since no better API has been - suggested, to_char(interval) has been enhanced in 8.1 and will remain in the - server. + for intervals would be removed in 8.1. However, since no better API + has been suggested, to_char(interval) has been enhanced in 8.1 and + will remain in the server. @@ -203,131 +208,142 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian 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.*; + Generate an error if a table used in a query without a + FROM reference (Neil) This command, SELECT + pg_class.*, now generates an error. - Cause input of a zero-length strings ('') for float4/float8/oid to throw - an error, rather than treat it as a zero (Neil) + Cause input of a zero-length strings ('') 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. + This change is consistent with the current handling of + zero-length strings for integers. The schedule for this change + was announced in 8.0. - Change the default for default_with_oids to false (Neil) + Change default_with_oids to default to false (Neil) - With this option set to false, user-created tables no - longer 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. + With this option set to false, user-created tables no longer 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. - Add E'' syntax so eventually ordinary strings can treat backslashes - literally (Bruce) + Add E'' syntax so eventually ordinary strings can + treat backslashes literally (Bruce) - Currently PostgreSQL processes a backslash in a string - as preceeding a character that requires special processing, e.g. - \n or \010. While this allows easy entry of special values, it is + Currently PostgreSQL processes a + backslash in a string as preceeding a character that requires + special processing, e.g. \n or \010. + While this allows easy entry of special values, it is non-standard and makes porting of application from other - databases more difficult. For this reason, the PostgreSQL project - is planning to remove the special meaning of backslashes in - strings. For backward compatibility and for users who want - special backslash procesing, a new string type will be created. - This new string type is formed by having an E preceed - the single quote that starts the string, e.g. E'hi\n'. - While this release does not change the handling of backslashes in - strings, it does add several new GUC variables to help users - migrate applications for future releases: + databases more difficult. For this reason, the + PostgreSQL project is planning to + remove the special meaning of backslashes in strings. For + backward compatibility and for users who want special backslash + procesing, a new string type will be created. This new string + type is formed by having an E preceed the single quote that + starts the string, e.g. E'hi\n'. While this release + does not change the handling of backslashes in strings, it does + add several new GUC variables to help users migrate applications + for future releases: - + + + escape_string_warning - warn about backslashes in + ordinary (non-E) strings + + + - escape_string_warning - warn about backslashes in ordinary - (non-E) strings - - + escape_string_syntax - does this release support + the E'' syntax? + + - - - escape_string_syntax - does this release support the E'' syntax? - - - - - - standard_conforming_strings - does this release treat - backslashes literally in normal strings? - - + + + standard_conforming_strings>/> - does this release + treat backslashes literally in normal strings? + + - The last two values are read-only and should assist in the porting of - applications. Applications can retrieve these values to know how - backslashes are processed. In a later release, - standard_conforming_strings will be true, meaning backslashes will be - treated literally in non-E strings. To prepare for this change, use - E'' strings in places that need special backslash processing, and turn - on escape_string_warning to find additional strings that need to be - converted to use E''. + The last two values are read-only and should assist in the + porting of applications. Applications can retrieve these values + to know how backslashes are processed. In a later release, + standard_conforming_strings will be true, meaning backslashes + will be treated literally in non-E strings. To prepare for this + change, use E'' strings in places that need special backslash + processing, and turn on escape_string_warning to find additional + strings that need to be converted to use E''. - Make REINDEX DATABASE reindex all indexes in the database (Tom) + Make REINDEX DATABASE reindex all indexes in the + database (Tom) - The old behavior of REINDEX database reindexed only system tables. - This new behavior seems more intuitive. A new command REINDEX SYSTEM - allows for reindexing just the system tables. + The old behavior of REINDEX database reindexed only + system tables. This new behavior seems more intuitive. A new + command REINDEX SYSTEM allows for reindexing just the + system tables. - In psql, treat unquoted \{digit}+ sequences as octal (Bruce) + 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. + 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 + Remove grammar productions for prefix and postfix % + and ^ operators (Tom) - These have never been documented and complicated the use of the modulus - operator (%) with negative numbers. + These have never been documented and complicated the use of the + modulus operator (%) with negative numbers. - Make "&<" and "&>" for polygons consistent with the box - "over" operators (Tom) + Make &< and &> for polygons + consistent with the box "over" operators (Tom) @@ -354,7 +370,8 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Improve the optimizer, including auto-resizing of hash joins (Tom) + Improve the optimizer, including auto-resizing of hash joins + (Tom) @@ -378,22 +395,25 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Allow non-consecutive index columns to be used in a multi-column index + Allow non-consecutive index columns to be used in a multi-column + index (Tom) - For example, this allows an index on columns a,b,c to be used in a - query with WHERE a = 4 and c = 10 + For example, this allows an index on columns a,b,c to be used in + a query with WHERE a = 4 and c = 10. - Skip WAL logging for CREATE TABLE AS / SELECT INTO (Simon) + Skip WAL logging for CREATE TABLE AS / + SELECT INTO (Simon) - Since a crash during CREATE TABLE would cause the table to be dropped - during recovery, there is no reason to WAL log as the table is loaded. + Since a crash during CREATE TABLE would cause the + table to be dropped during recovery, there is no reason to WAL + log as the table is loaded. @@ -405,48 +425,52 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Add GUC full_page_writes to control writing full pages to WAL (Bruce) + Add GUC full_page_writes to control writing full + pages to WAL + (Bruce) To prevent partial disk writes from corrupting the database, - PostgreSQL writes a complete copy of each database disk page to WAL - the first time it is modified after a checkpoint. This turns off that - functionality for users with battery-backed disk caches where partial - page writes cannot happen. + PostgreSQL writes a complete copy of + each database disk page to WAL the first time it is modified + after a checkpoint. This turns off that functionality for users + with battery-backed disk caches where partial page writes cannot + happen. - Add constraint_exclusion to restrict child table lookups based on - table constraints (Simon) + Add constraint_exclusion to restrict child table lookups based + on table constraints (Simon) - This allows for a type of table partitioning. If child table placed - in a different tablespaces using appropriate CHECK constraints, the - optimizer will skip child table accesses if the constraint guarantees - no matching rows exist in the child table. + This allows for a type of table partitioning. If child table + placed in a different tablespaces using appropriate + CHECK constraints, the optimizer will skip child + table accesses if the constraint guarantees no matching rows + exist in the child table. - Use O_DIRECT if available when using O_SYNC for wal_sync_method (ITAGAKI - Takahiro) + Use O_DIRECT if available when using + O_SYNC for wal_sync_method (Itagaki Takahiro) - O_DIRECT causes disk writes to bypass the kernel cache, and for WAL - writes, this improves performance. + O_DIRECT causes disk writes to bypass the kernel + cache, and for WAL writes, this improves performance. - Improve COPY FROM performance (Alon Goldshuv) + Improve COPY FROM performance (Alon Goldshuv) - This was accomplished by reading COPY input in larger chunks, rather - than character by character. + This was accomplished by reading COPY input in + larger chunks, rather than character by character. @@ -463,74 +487,80 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian Prevent problems due to transaction ID (XID) wraparound (Tom) - This was accomplished by warning the transaction counter is - near the the earliest transaction id determined by the - database whose last vacuum is the oldest. If the limit is - reached, the server will no longer accept queries. + This was accomplished by warning the transaction counter is near + the the earliest transaction id determined by the database whose + last vacuum is the oldest. If the limit is reached, the server + will no longer accept queries. - Fix problem of object ID (OID) wraparound conflicting - with existing system objects (Tom) + Fix problem of object ID (OID) wraparound conflicting with + existing system objects (Tom) - Add warning about the need to increase "max_fsm_relations" and - "max_fsm_pages" during VACUUM (Ron Mayer) + Add warning about the need to increase + max_fsm_relations and max_fsm_pages + during VACUUM (Ron Mayer) - Add temp_buffers GUC variable to allow users to determine the size - of the local buffer area for temporary table access (Tom) + Add temp_buffers GUC variable to allow users to + determine the size of the local buffer area for temporary table + access (Tom) - Add session start time and client IP address to pg_stat_activity (Magnus) + Add session start time and client IP address to + pg_stat_activity (Magnus) - Enhance pg_locks display (Tom) + Enhance pg_locks display (Tom) - Log queries for client-side PREPARE and EXECUTE (Simon) + Log queries for client-side PREPARE and + EXECUTE (Simon) Allow Kerberos name and user name case sensitivity to be - specified in postgresql.conf (Magnus) + specified in postgresql.conf (Magnus) - Add GUC krb_server_hostname so the server hostname can be specified as - part of service principal (Todd Kover) + Add GUC krb_server_hostname so the server hostname + can be specified as part of service principal (Todd Kover) - If not set, any service principal matching an entry in the keytab - can be used. This is new Kerberos matching behavior in this release. + If not set, any service principal matching an entry in the + keytab can be used. This is new Kerberos matching behavior in + this release. - Add log_line_prefix options for millisecond timestamps (%m) and - remote host (%h) (Ed L.) + Add log_line_prefix options for millisecond + timestamps (%m) and remote host (%h) (Ed + L.) @@ -539,17 +569,18 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian Add WAL logging for GIST indexes (Teodor, Oleg) - GIST indexes now work for point-in-time recovery and crash recovery + GIST indexes are now safe for crash and point-in-time recovery - Remove old *.backup files when we do pg_stop_backup() (Bruce) + Remove old *.backup files when we do + pg_stop_backup() (Bruce) - This prevents a large number of *.backup files from existing in - /seemspg_xlog. + This prevents a large number of *.backup files from + existing in /pg_xlog. @@ -565,10 +596,10 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian Add per-user and per-database connection limits (Petr Jelinek) - Using ALTER USER and ALTER DATABASE, limits can not be enforced - on the maximum number of users who can connect as as a specific - uesr or to a specific database. Setting the limit to zero - disables user or database connections. + Using ALTER USER and ALTER DATABASE, + limits can not be enforced on the maximum number of users who + can connect as as a specific uesr or to a specific database. + Setting the limit to zero disables user or database connections. @@ -588,57 +619,63 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Fix HAVING without aggregate functions and no GROUP BY to behave - as if the main query returns a single group (Tom) + Fix HAVING without aggregate functions and no + GROUP BY to behave as if the main query returns a + single group (Tom) - Previously, such a case would treat the HAVING clause as WHERE - clause. + Previously, such a case would treat the HAVING + clause as WHERE clause. - Add USING clause to allow additional tables to be specified to DELETE - (Euler Taveira de Oliveira) + Add USING clause to allow additional tables to be + specified to DELETE (Euler Taveira de Oliveira) In prior releases, there was no clear method for specifying - additional tables to be used for joins in a DELETE statement. - UPDATE already has a FROM clause for this purpose. + additional tables to be used for joins in a DELETE + statement. UPDATE already has a FROM + clause for this purpose. - Add support for \x hex escapes in backend and ecpg strings (Bruce) + Add support for \x hex escapes in backend and ecpg + strings (Bruce) - This is just like the standar C \x escape syntax. Octal was already - supported. + This is just like the standard C \x escape syntax. + Octal escapes were already supported. - Add BETWEEN SYMMETRIC query syntax (Pavel Stehule) + Add BETWEEN SYMMETRIC query syntax (Pavel Stehule) - This feature allows BETWEEN comparisons without requiring the - first value to be less than the second. For example, 2 BETWEEN - [ASYMMETRIC] 3 AND 1 returns false, while 2 BETWEEN SYMMETRIC 3 - AND 1 returns true. BETWEEN ASYMMETRIC was already supported. + This feature allows BETWEEN comparisons without + requiring the first value to be less than the second. For + example, 2 BETWEEN [ASYMMETRIC] 3 AND 1 returns + false, while 2 BETWEEN SYMMETRIC 3 AND 1 returns + true. BETWEEN ASYMMETRIC was already supported. - Add NOWAIT option to SELECT ... FOR UPDATE/SHARE (Hans-Juergen Schoenig) + Add NOWAIT option to SELECT ... FOR + UPDATE/SHARE (Hans-Juergen Schoenig) - While SET statement_timeout allows a query taking over a certain - amount of time to be cancelled, the NO WAIT option allows a query to - be canceled as soon as a SELECT ... FOR UPDATE/SHARE cannot - immediately acquire a row lock. + While SET statement_timeout allows a query taking + over a certain amount of time to be cancelled, the NO + WAIT option allows a query to be canceled as soon as a + SELECT ... FOR UPDATE/SHARE cannot immediately + acquire a row lock. @@ -655,31 +692,32 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian Track dependencies of shared objects (Alvaro) - PostgreSQL allows global tables (users, databases, tablespaces) to - reference information in multiple databases. This addition adds - dependency information for global tables, so, for example, user - ownership can be tracked across databases, so a user who owns - something in any database can no longer be removed. Dependency - tracking already existed for database-local objects. + PostgreSQL allows global tables + (users, databases, tablespaces) to reference information in + multiple databases. This addition adds dependency information + for global tables, so, for example, user ownership can be + tracked across databases, so a user who owns something in any + database can no longer be removed. Dependency tracking already + existed for database-local objects. - Allow ALTER OWNER commands to be performed by the object owner as - well as the superuser (Stephen Frost) + Allow ALTER OWNER commands to be performed by the + object owner as well as the superuser (Stephen Frost) - Prior releases only allowed super-user to change object owners, even - if the current owner was executing the command and the new owner - have permission to create objects of that type. + Prior releases only allowed super-user to change object owners, + even if the current owner was executing the command and the new + owner have permission to create objects of that type. - Add ALTER object SET SCHEMA capability for some object types - (tables, functions, types) (Bernd Helmle) + Add ALTER object SET SCHEMA capability + for some object types (tables, functions, types) (Bernd Helmle) This allows objects to be moved to different schemas. @@ -696,62 +734,66 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Allow TRUNCATE to truncate multiple files in a single command (Alvaro) + Allow TRUNCATE to truncate multiple files in a + single command (Alvaro) - Because of referential integrity checks, it is impossible to truncate - a table that is part of a referential integrity constraint. Using this - new functionality, TRUNCATE can be used to truncate all tables - involved in referential integrity if they are truncated in a - single TRUNCATE command. + Because of referential integrity checks, it is impossible to + truncate a table that is part of a referential integrity + constraint. Using this new functionality, TRUNCATE + can be used to truncate all tables involved in referential + integrity if they are truncated in a single TRUNCATE + command. - Properly process carriage returns and line feeds in COPY CSV mode - (Andrew Dunstan) + Properly process carriage returns and line feeds in + COPY CSV mode (Andrew Dunstan) - In release 8.0, carriage returns and line feeds in CSV COPY TO were - processed in an inconsistent manner. (This was documented on the TODO - list.) + In release 8.0, carriage returns and line feeds in CSV + COPY TO were processed in an inconsistent manner. (This was + documented on the TODO list.) - - Add COPY WITH CSV HEADER to allow a heading line as the first line in - COPY (Andrew) + Add COPY WITH CSV HEADER to allow a header line as + the first line in COPY (Andrew) - This allows handling of the common CSV usage of placing the column - names on the first line of the data file. For COPY TO, the first line - contains the column names, and for COPY FROM, the first line is - ignored. + This allows handling of the common CSV usage of + placing the column names on the first line of the data file. For + COPY TO, the first line contains the column names, + and for COPY FROM, the first line is ignored. - On Win32, display better sub-second precision in EXPLAIN ANALYZE (Magnus) + On Win32, display better sub-second precision in + EXPLAIN ANALYZE (Magnus) - Add trigger duration display to EXPLAIN ANALYZE (Tom) + Add trigger duration display to EXPLAIN ANALYZE + (Tom) - Prior releases lumped trigger execution time into the total execution - time. + Prior releases accumulated trigger execution time as part of the + total execution time. - Add support for \x hex escapes in COPY (Sergey Ten) + Add support for \x hex escapes in COPY + (Sergey Ten) Previous releases only supported octal escapes. @@ -760,35 +802,39 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Have SHOW ALL include variable descriptions (Matthias Schmidt) + Have SHOW ALL include variable descriptions + (Matthias Schmidt) - SHOW varname still only displays the variable's value and does not - include the description. + SHOW varname still only displays the variable's + value and does not include the description. - Have initdb create new standard database called "postgres" and - convert utilities to use "postgres" rather than "template1" for + Have initdb create new standard database called + postgres and convert utilities to use + postgres rather than template1 for standard lookups (Dave) In prior releases, template1 was used both as a default connection for utilities like createuser, and as a template for - new databases. This caused CREATE DATABASE to sometimes fail - because a new database cannot be created if anyone else is in - the template database. With this change, the default connection - database is now 'postgres', meaning it is much less likely - someone will be using template1 during CREATE DATABASE. + new databases. This caused CREATE DATABASE to + sometimes fail because a new database cannot be created if + anyone else is in the template database. With this change, the + default connection database is now postgres, meaning + it is much less likely someone will be using + template1 during CREATE DATABASE. - Create new reindexdb command-line utility by moving /contrib/reindexdb - into the server (Euler Taveira de Oliveira) + Create new reindexdb command-line utility by moving + /contrib/reindexdb into the server (Euler Taveira + de Oliveira) @@ -802,7 +848,8 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Add MAX() and MIN() aggregates for array types (Koju Iijima) + Add MAX() and MIN() aggregates for + array types (Koju Iijima) How does this work? @@ -811,130 +858,138 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Fix to_date() and to_timestamp() to behave reasonably when - CC and YY fields are both used (Karel Zak) + Fix to_date() and to_timestamp() to + behave reasonably when CC and YY fields + are both used (Karel Zak) - If the format specification contains CC and a year specification is - YYY or longer, ignore the CC. If the year specification is - YY or shorter, interpret CC as the previous century. ? + If the format specification contains CC and a year + specification is YYY or longer, ignore the + CC. If the year specification is YY or + shorter, interpret CC as the previous century. ? - Add md5(bytea) (Abhijit Menon-Sen) + Add md5(bytea) (Abhijit Menon-Sen) - md5(text) already existed. + md5(text) already existed. - Fix CHAR() to properly pad out to the specified length when - using a multiple-byte character set (Yoshiyuki Asaba) + Fix CHAR() to properly pad spaces to the specified + length when using a multiple-byte character set (Yoshiyuki + Asaba) - In prior releases, the padding of CHAR() was incorrect because it only - padded to the specified number of bytes without considering how many - characters were stored. + In prior releases, the padding of CHAR() was incorrect + because it only padded to the specified number of bytes without + considering how many characters were stored. - Add support for NUMERIC ^ NUMERIC based on power(numeric, numeric) + Add support for NUMERIC ^ NUMERIC based on + power(numeric, numeric) - The function already existed, but there was no operator assigned to - it. + The function already existed, but there was no operator assigned + to it. - Fix NUMERIC modulus by properly truncating the quotient during - computation (Bruce) + Fix NUMERIC modulus by properly truncating the quotient + during computation (Bruce) - In previous releases, modulus for large values sometimes returned - negative results due to the rounding of the quotient. + In previous releases, modulus for large values sometimes + returned negative results due to the rounding of the quotient. - Add a function lastval(), which returns the value returned by the - last nextval() or setval() performed by the current session. (Dennis - Björklund) + Add a function lastval()(Dennis Björklund) - lastval() is a simplified version of currval(). It automatically - determines the proper sequence name based on the most recent - nextval() call. + lastval() is a simplified version of + currval(). It automatically determines the proper + sequence name based on the most recent nextval() or + setval() call performed by the current session. - Add to_timestamp(double precision) + Add to_timestamp(DOUBLE PRECISION) - Converts Unix seconds since 1970 to a timestamp with timezone. + Converts Unix seconds since 1970 to a TIMESTAMP WITH + TIMEZONE. - Add pg_postmaster_start_time() function (Euler Taveira de Oliveira, - Matthias Schmidt) + Add pg_postmaster_start_time() function (Euler + Taveira de Oliveira, Matthias Schmidt) - Allow the full use of time zone names in "AT TIME ZONE", not just - the short list previously available (Magnus) - - - Previously, only a predefined list of time zone names were supported - by AT TIME ZONE. Now any supported time zone name can be used, e.g.: + Allow the full use of time zone names in AT TIME + ZONE, not just the short list previously available (Magnus) + Previously, only a predefined list of time zone names were + supported by AT TIME ZONE. Now any supported time + zone name can be used, e.g.: + SELECT CURRENT_TIMESTAMP AT TIME ZONE 'Europe/London'; - - In the above query, the daylight savings time rules were in effect on - that date are used. + + In the above query, the time zone used is adjusted based on the + daylight savings time rules that were in effect on the supplied + date. - - Add Oracle-compatible GREATEST and LEAST functions (Pavel Stehule) + Add GREATEST() and LEAST() functions + (Pavel Stehule) - These functions take a variable number of arguments and return the - greatest or least value. + These functions take a variable number of arguments and return + the greatest or least value. - Add pg_column_size() to return storage size of a column, including - possible compression (Mark Kirkwood) + Add pg_column_size() (Mark Kirkwood) + + + This returns storage size of a column, including any + compression used. - Add regexp_replace() (Atsushi Ogawa) + Add regexp_replace() (Atsushi Ogawa) - This allows regular expression replacement, like sed. A four-argument - version also allows for global (replace all) and case-insensitive - modes. + This allows regular expression replacement, like sed. A + four-argument version also allows for global (replace all) and + case-insensitive modes. @@ -943,94 +998,139 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian Fix interval division and multiplication (Bruce) - Previous versions sometimes returned unjustified results, like - '4 months'::interval / 5 returning '1 mon -6 days'. + Previous versions sometimes returned unjustified results, like + '4 months'::interval / 5 returning '1 mon + -6 days'. - Add internal 'day' field to INTERVAL so a 1 day interval can be - distinguished from a 24 hour interval (Michael Glaesemann) + Add an internal day field to INTERVAL so a one day + interval can be distinguished from a 24 hour interval (Michael + Glaesemann) - Days that contain a daylight savings time adjustment are not 24 hours, - but typically 23 or 25 hours. This change allows days (not fixed - 24-hour periods) to be added to dates who's result includes a daylight - savings time adjustment period. Therefore, while in previous releases - '1 day' and '24 hours' where interchangeable interval periods, in this - release they are treated differently, e.g. + Days that contain a daylight savings time adjustment are not 24 + hours, but typically 23 or 25 hours. This change allows days + (not fixed 24-hour periods) to be added to dates who's result + includes a daylight savings time adjustment period. Therefore, + while in previous releases 1 day and 24 + hours where interchangeable interval periods, in this release + they are treated differently, e.g. + + '2005-05-03 00:00:00 EST' + '1 day' = '2005-05-04 00:00:00-04' + '2005-05-03 00:00:00 EST' + '24 hours' = '2005-05-04 01:00:00-04' + - '2005-05-03 00:00:00 EST' + '1 day' = '2005-05-04 00:00:00-04' + Add justify_days() and justify_hours() + (Michael Glaesemann) + + + These functions, respectively, adjust days to an appropriate + number of full months and days, and adjust hours to an + appropriate number of full days and hours. - '2005-05-03 00:00:00 EST' + '24 hours' = '2005-05-04 01:00:00-04' + Move /contrib/dbsize into the backend, and rename + some of the functions (Dave Page, Andreas Pflug) + + + + + + + pg_tablespace_size() + + + + + + pg_database_size() + + + + + + pg_relation_size() + + + + + + pg_complete_relation_size() + + + + + + pg_size_pretty() + + + + + + + complete_relation_size() includes indexes and TOAST + tables. - Move /contrib/dbsize into the backend, and rename some of the functions + Add functions for read-only file access to the cluster directory (Dave Page, Andreas Pflug) - The new functions are: - pg_tablespace_size() - pg_database_size() - pg_relation_size() - pg_complete_relation_size() - pg_size_pretty() + + + + + pg_stat_file() + + + + + + pg_read_file() + + + + + + pg_ls_dir() + + + + + + + - complete_relation_size() includes indexes and TOAST tables. + Add pg_reload_conf() to force reloading of the + configuration files (Dave Page, Andreas Pflug) + + + + + + + Add pg_rotate_logfile() to force rotation of the + server log file (Dave Page, - Add justify_days() and justify_hours (Michael Glaesemann) - - - These functions, respectively, adjust days to an appropriate number of - full months and dayss, and adjust hours to an appropriate number - of full days and hours. - - - - - - Add files to do read-only I/O on the cluster directory (Dave Page, - Andreas Pflug) - - pg_stat_file() - pg_read_file() - pg_ls_dir() - - - - - - Add pg_reload_conf() to force reloading of the configuration files (Dave Page, - Andreas Pflug) - - - - - - Add pg_rotate_logfile() to force rotation of the server log file (Dave Page, - - - - - - Change pg_stat_* views to show TOAST tables (Tom) + Change pg_stat_* views to show TOAST tables (Tom) @@ -1044,15 +1144,37 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Rename some encodings to be more consistent and to follow international - standards(Bruce) + Rename some encodings to be more consistent and to follow + international standards(Bruce) - Encoding name changes were: - UNICODE is now UTF8 - ALT is now WIN866 - WIN is now WIN1251 - TCVN is now WIN1258 + + + + + UNICODE is now UTF8 + + + + + + ALT is now WIN866 + + + + + + WIN is now WIN1251 + + + + + + TCVN is now WIN1258 + + + + The original names still work. @@ -1061,23 +1183,26 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Add support for Win1252 encoding (Roland Volkmann) + Add support for WIN1252 encoding (Roland Volkmann) - Add support for 3 and 4-byte UTF8 characters (John Hansen) + Add support for 3 and 4-byte UTF8 characters (John + Hansen) - Previously only one and two-byte UTF8 characters were supported. - This is particularly important for support for some Chinese character. + Previously only one and two-byte UTF8 characters + were supported. This is particularly important for support for + some Chinese character. - Allow direct conversion between EUC_JP and SJIS to improve performance (Atsushi + Allow direct conversion between EUC_JP and + SJIS to improve performance (Atsushi Ogawa) @@ -1092,14 +1217,14 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Fix ALTER LANGUAGE RENAME (Sergey Yatskevich) + Fix ALTER LANGUAGE RENAME (Sergey Yatskevich) Allow function characteristics, like strictness and volatility, - to be modified via ALTER FUNCTION (Neil) + to be modified via ALTER FUNCTION (Neil) @@ -1111,14 +1236,17 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Allow SQL, plperl, PL/PgSQL functions to use OUT and INOUT parameters (Tom) + Allow SQL, plperl, PL/PgSQL functions to use OUT and + INOUT parameters (Tom) - OUT is an alternate way for a function to return values. Instead of - using RETURNS, the function's parameters can be specified as OUT or - INOUT, allowing multiple values to be returned by the function. While - returning multiple values from a function was possible in previous - releases, this greatly simplifies the process. + OUT is an alternate way for a function to return + values. Instead of using RETURNS, the function's + parameters can be specified as OUT or + INOUT, allowing multiple values to be returned by + the function. While returning multiple values from a function + was possible in previous releases, this greatly simplifies the + process. @@ -1134,54 +1262,58 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian Reduce memory usage of PL/PgSQL functions (Neil) - Each function now has its own memory context that can be freed when - the function exits. + Each function now has its own memory context that can be freed + when the function exits. - Check function syntax as CREATE FUNCTION time, rather than at runtime - (Neil) + Check function syntax as CREATE FUNCTION time, + rather than at runtime (Neil) - Previously, syntax errors were reported only when the function was - executed. + Previously, syntax errors were reported only when the function + was executed. - Allow OPEN to open non-SELECT queries like EXPLAIN and SHOW (Tom) + Allow OPEN to open non-SELECT queries + like EXPLAIN and SHOW (Tom) - No longer require functions to issue a RETURN statement (Tom) + No longer require functions to issue a RETURN + statement (Tom) - This is a byproduct of the newly added OUT and INOUT functionality. + This is a byproduct of the newly added OUT and + INOUT functionality. - Add support for an optional INTO clause to PL/PgSQL's EXECUTE command - (Pavel Stehule) + Add support for an optional INTO clause to + PL/PgSQL's EXECUTE command (Pavel Stehule) - Make CREATE TABLE AS set ROW_COUNT (Tom) + Make CREATE TABLE AS set ROW_COUNT (Tom) - Define SQLSTATE and SQLERRM to return the SQLSTATE and - error message of the current exception (Pavel Stehule) + Define SQLSTATE and SQLERRM to return + the SQLSTATE and error message of the current + exception (Pavel Stehule) These variables are only accessable inside exception blocks. @@ -1190,14 +1322,14 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Allow the parameters to the RAISE statement to be expressions - (Pavel Stehule) + Allow the parameters to the RAISE statement to be + expressions (Pavel Stehule) - Add a loop CONTINUE statement (Pavel Stehule) + Add a loop CONTINUE statement (Pavel Stehule) @@ -1217,11 +1349,12 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Allow large result sets to be returned efficiently (Abhijit Menon-Sen) + Allow large result sets to be returned efficiently (Abhijit + Menon-Sen) - This allows functions to use return_next() to avoid building - the entire result set in memory. + This allows functions to use return_next() to avoid + building the entire result set in memory. @@ -1230,15 +1363,16 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian Allow one-row-at-a-time retrieval of query results (Abhijit) - This allows functions to use spi_query() and spi_fetchrow() to - avoid accumulating the entire result set in memory. + This allows functions to use spi_query() and + spi_fetchrow() to avoid accumulating the entire + result set in memory. - Force PL/Perl to handle strings as UTF8 if the server encoding is UTF8 - (David Kamholz) + Force PL/Perl to handle strings as UTF8 if the + server encoding is UTF8 (David Kamholz) @@ -1247,18 +1381,26 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian Add a validator function for PL/Perl (Andrew) - This allows syntax errors to be reported at definition time, rather - than execution time. + This allows syntax errors to be reported at definition time, + rather than execution time. - Allow PL/Perl to return a Perl array when the function returns an array - type (Andrew) + Allow PL/Perl to return a Perl array when the function returns + an array type (Andrew) - This basically maps PostgreSQL arrays to Perl arrays. + This basically maps PostgreSQL arrays + to Perl arrays. + + + + + + Allow Perl non-fatal warnings to generate NOTICE + messages (Andrew) @@ -1272,17 +1414,20 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Add psql \set ON_ERROR_ROLLBACK to allow statements in a transaction to - error without affecting the rest of the transaction (Greg Sabino Mullane) + Add psql \set ON_ERROR_ROLLBACK to allow statements + in a transaction to error without affecting the rest of the + transaction (Greg Sabino Mullane) - This is basically implemented by wrapping every statement in a subtransaction. + This is basically implemented by wrapping every statement in a + subtransaction. - Add support for \x hex strings in psql variables (Bruce) + Add support for \x hex strings in psql variables + (Bruce) Octal escapes were already supported. @@ -1291,14 +1436,15 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Add psql support for troff "-ms" output format (Roger Leigh) + Add psql support for troff -ms output format (Roger + Leigh) - Allow psql's history file location to be controlled by HISTFILE (Andreas - Seltenreich) + Allow psql's history file location to be controlled by + HISTFILE (Andreas Seltenreich) This allows configuration of per-database history storage. @@ -1307,14 +1453,14 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Prevent psql \x (expanded mode) from affecting other backslash output - (Neil) + Prevent psql \x (expanded mode) from affecting other + backslash output (Neil) - Add -L option to psql to log sessions (Lorne Sunley) + Add This option was added because some operating systems do not have @@ -1324,31 +1470,33 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Have psql \d show tablespace of indexes (Qingqing Zhou) + Have psql \d show tablespace of indexes (Qingqing + Zhou) - Allow psql \h to make a best guess on the proper help information (Greg - Sabino Mullane) + Allow psql help (\h) to make a best guess on the + proper help information (Greg Sabino Mullane) - This allows the user to just add \h to the front of the syntax error - query and get help on the supported syntax. Previously any additional - query text beyond the help topics supported had to be removed to use - \h. + This allows the user to just add \h to the front of + the syntax error query and get help on the supported syntax. + Previously any additional query text beyond the help topics + supported had to be removed to use \h. - Add psql \pset numericlocale to allow numbers to be output in a - locale-aware format (Eugen Nedelcu) + Add psql \pset numericlocale to allow numbers to be + output in a locale-aware format (Eugen Nedelcu) - For example, using C locale 100000 would be output as 100,000.0 and - European locale might output this value as 100.000,0. + For example, using C locale 100000 would + be output as 100,000.0 and European locale might + output this value as 100.000,0. @@ -1362,7 +1510,8 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Add -n / --schema switch to pg_restore (Richard van den Bergg) + Add This allows only objects from a specified schema to be restored. @@ -1371,7 +1520,8 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Allow pg_dump to dump a consistent snapshot of large objects (Tom) + Allow pg_dump to dump a consistent snapshot of large objects + (Tom) @@ -1389,12 +1539,12 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Add --encoding to pg_dump (Magnus Hagander) + Add - This allows a database to be dumped in an encoding that is different - from the server's encoding. This is valuable when transferring the dump - to a machine with a different encoding. + This allows a database to be dumped in an encoding that is + different from the server's encoding. This is valuable when + transferring the dump to a machine with a different encoding. @@ -1408,15 +1558,16 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Add a "PGPASSFILE" environment variable to specify the password - file's filename (Andrew Dunstan) + Add a PGPASSFILE environment variable to specify the + password file's filename (Andrew Dunstan) - Add lo_create(), that is similar to lo_creat() but allows the OID of the large - object to be specified (Tom) + Add lo_create(), that is similar to + lo_creat() but allows the OID of the large object + to be specified (Tom) @@ -1430,7 +1581,8 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Add spinlock support for the Itanium processor using Intel compiler (Vikram + Add spinlock support for the Itanium processor using Intel + compiler (Vikram Kalsi) @@ -1449,20 +1601,22 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Rename Rendezvous to Bonjour to match OS/X feature renaming (Bruce) + Rename Rendezvous to Bonjour to match OS/X feature renaming + (Bruce) - Add support for wal_fsync_writethrough for Darwin (Chris Campbell) + Add support for wal_fsync_writethrough for Darwin (Chris + Campbell) - Streamline the passing of information within the server, the optimizer, - and the lock system (Tom) + Streamline the passing of information within the server, the + optimizer, and the lock system (Tom) @@ -1471,7 +1625,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian Allow pg_config to be compiled using MSVC (Andrew Dunstan) - This is required to build DBD::Pg using MSVC. + This is required to build DBD::Pg using MSVC. @@ -1487,20 +1641,23 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Code cleanups (Coverity static analysis performed by EnterpriseDB) + Code cleanups (Coverity static analysis performed by + EnterpriseDB) - Modify postgresql.conf to use documention defaults on/off rather - than true/false (Bruce) + Modify postgresql.conf to use documention defaults + on/off rather than + true/false (Bruce) - Enhance pg_config to be able to report more build-time values (Tom) + Enhance pg_config to be able to report more + build-time values (Tom) @@ -1514,7 +1671,8 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Add /contrib/pg_buffercache contrib module (Mark Kirkwood) + Add /contrib/pg_buffercache contrib module (Mark + Kirkwood) This displays the contents of the buffer cache, for debugging and @@ -1524,25 +1682,28 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Remove /contrib/array because it is obsolete (Tom) + Remove /contrib/array because it is obsolete (Tom) - Cleanup the contrib/lo module (Tom) + Cleanup the /contrib/lo module (Tom) - Move /contrib/findoidjoins to src/tools (Tom) + Move /contrib/findoidjoins to + /src/tools (Tom) - Remove the <<, >>, &<, and &> operators for contrib/cube + Remove the <<, >>, + &<, and &> operators from + /contrib/cube These operators were not useful. @@ -1551,29 +1712,65 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.345 2005/08/23 14:54:06 momjian - Improve /contrib/btree_gist (Janko Richter) + Improve /contrib/btree_gist (Janko Richter) - /contrib/pgcrypto - Remove support for libmhash/libmcrypt (Marko Kreen) + /contrib/pgcrypto - Remove support for + libmhash/libmcrypt (Marko Kreen) - /contrib/pgcrypto - Add support for new encryption methods (Marko Kreen) + /contrib/pgcrypto - Add support for new encryption + methods (Marko Kreen) - 3des and AES - SHA2 (SHA256, SHA384, SHA512) - Fortuna PRNG - PGP encryption - RSA key + + + + + 3DES + + + + + + AES + + + + + + Fortuna PRNG + + + + + + PGP + + + + + + RSA + + + + + + SHA2 (SHA256, SHA384, SHA512) + + + + - +