From f8450bb32af577647390b9d84aa40de29a1eb0bf Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 6 Aug 2004 23:33:48 +0000 Subject: [PATCH] Some editorial work on the 8.0 release notes. Update for recent commits, improve existing descriptions. --- doc/src/sgml/release.sgml | 858 ++++++++++++++++++++++++++++++---------------- 1 file changed, 556 insertions(+), 302 deletions(-) diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index 4e4911599b..1bd20134dd 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,16 +1,16 @@ Release Notes - + Release 8.0 Release date - 2004-??-??, current as of 2004-07-22 + 2004-??-??, current as of 2004-08-06 @@ -22,40 +22,24 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Native Win32 Server + Win32 Native Server - This is the first PostgreSQL release to natively support Microsoft - Windows as a server. It can run as a service and a separate - installer project has been created to ease installation, - http://pgfoundry.org/projects/pginstaller. This release - supports NT-based Windows releases like NT4, Win2k, XP, Win2003. + This is the first PostgreSQL release to natively run on Microsoft + Windows as a server. It can run as a Windows service. This release + supports NT-based Windows releases like NT4, Win2k, XP, Win2003. Older releases like Windows 95, 98, and ME are not supported because these operating systems do not have the infrastructure to - support PostgreSQL. + support PostgreSQL. A separate + installer project has been created to ease installation on + Windows: + http://pgfoundry.org/projects/pginstaller. Previous releases required the Unix emulation toolkit Cygwin for - Win32 support. PostgreSQL has always supported clients on Win32. - - - - - - - Tablespaces Simplify Disk Layout - - - - - This release introduces tablespaces which allows administrators - to control the file system used for storage of databases, - schemas, tables, or indexes. This improves performance and - control over disk space usage. Prior releases used the inferior - initlocation and custom symlinks for such tasks. + Win32 server support. PostgreSQL has always supported clients on Win32. @@ -69,9 +53,11 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp Savepoints allow specific parts of a transaction to be aborted without affecting the remainder of the transaction. Prior - release had no such capability; there was no way to recover from - a statement failure in a transation. This feature is valuable - for application writers that required complex transaction control. + releases had no such capability; there was no way to recover from + a statement failure within a transaction except by aborting the whole + transaction. This feature is valuable + for application writers who require error recovery within a + complex transaction. @@ -95,6 +81,22 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp + Tablespaces Simplify Disk Layout + + + + + Tablespaces allow administrators + to select the file systems used for storage of databases, + schemas, tables, or indexes. This improves performance and + control over disk space usage. Prior releases used + initlocation and manual symlink management for such tasks. + + + + + + Improved Buffer Management, CHECKPOINT, VACUUM @@ -103,7 +105,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp This release has a more intelligent buffer replacement strategy, which will make better use of available shared buffers and improve performance. The performance impact of vacuum and - checkpoints is also improved. + checkpoints is also lessened. @@ -127,9 +129,9 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - A new version of the Perl server-side language now supports a - persistent, shared storage area, triggers, returning records and - arrays of records, and SPI calls. + A new version of the plperl server-side language now + supports a persistent shared storage area, triggers, returning records + and arrays of records, and SPI calls to access the database. @@ -141,7 +143,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - COPY can now read and write comma-separate-value (CSV) files. It + COPY can now read and write comma-separated-value (CSV) files. It has the flexibility to interpret non-standard quoting and separation characters too. @@ -165,71 +167,83 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp Observe the following incompatibilities: - - - Server configuration parameters SortMem and VacuumMem have been - renamed to work_mem and maintenance_work_mem to better reflect - their use. The original names still supported. - - - Server configuration parameters log_pid, log_timestamp, and - log_source_port have been removed now that a more flexible - log_line_prefix has been added. + 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 virtual_host and tcpip_socket - have been replaced with a more general 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 parameter syslog has been removed and - replaced with a more logical log_destination variable to control - the log output destination. + Server configuration parameters log_pid, + log_timestamp, and log_source_port have been + removed now that a more flexible log_line_prefix has been + added. - Server configuration parameter log_statement has been changed so - it can restrict logging of just database modification or data - definition statements. + Server configuration parameter syslog has been removed and + replaced with a more logical log_destination variable to + control the log output destination. - Server configuration parameter max_expr_depth parameter has been - replaced with max_stack_depth which measures the stack size - rather than the number of stack levels used. This helps prevent - session termination due to stack overflow caused by recursive - functions. + Server configuration parameter log_statement has been + changed so it can selectively log just database modification or + data definition statements. - EXECUTE now returns a completion tag that matches the executed - statement. + 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 measures trailing spaces in - CHAR() values. + 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. + + + + + + UPDATE-ing 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. + + + The server now warns of empty strings passed to oid/float4/float8 @@ -240,41 +254,52 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Function to_char() now returns the proper year for BC dates. It - previously returned one less than the current year. The function - now also returns the proper millennium and century. + The extract() function (also called date_part) now returns the proper + year for BC dates. It previously returned one less than the current + year. The function now also returns the proper values for millennium + and century. - psql \copy now reads from the query stdin/stdout, rather than - psql's stdin/stdout. The previous behavior can be accessed via new + psql's \copy command now reads or writes the query stdin/stdout, rather + than psql's stdin/stdout. The previous behavior can be accessed via new pstdin/pstdout parameters. - The JDBC client interface has been removed and is now - hosted at The JDBC client interface has been removed from the core + distribution, and is now hosted at http://jdbc.postgresql.org. The TCL client interface has also been removed. There are several - now hosted at http://gborg.postgresql.org + TCL interfaces now hosted at http://gborg.postgresql.org. The server now uses its own time zone database, rather than the - one supplied by the operating system. This should not change - the time zone behavior. + 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. + + + + + + EXECUTE now returns a completion tag that matches the executed + statement. - The configure threading option no longer requires users to run + configure's threading option no longer requires users to run tests or edit configuration files; threading options are now detected automatically. @@ -307,7 +332,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp Support cross-data-type index usage (Tom) - Before this change some queries would not use an index if the data + Before this change, many queries would not use an index if the data types did not match exactly. This improvement makes index usage more intuitive and consistent. @@ -318,12 +343,12 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp New buffer replacement strategy that improves caching (Jan) - Prior releases use a least-recently-used (LRU) cache to keep - recently referenced pages in the cache. Unfortunately, the cache + Prior releases used a least-recently-used (LRU) cache to keep + recently referenced pages in memory. The LRU algorithm did not consider the number of times a specific cache entry was - accessed. Large table scans could force out useful cache pages. - The new cache uses four separate cache areas to track most - recently used and most frequently used cache pages to dynamically + accessed, so large table scans could force out useful cache pages. + The new cache algorithm uses four separate lists to track most + recently used and most frequently used cache pages and dynamically optimize their replacement based on the work load. This should lead to much more efficient use of the shared buffer cache. Administrators who have tested shared buffer sizes in the past @@ -337,13 +362,27 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp In previous releases, the checkpoint process, which runs every few - minutes, would write all dirty buffers to the operating system - buffer cache then flush all operating system dirty buffers to + minutes, would write all dirty buffers to the operating system's + buffer cache then flush all dirty operating system buffers to disk. This often resulted in a periodic spike in disk usage that hurt performance. The new code uses a background writer to trickle disk writes at a steady pace so checkpoints have far fewer dirty - pages to write to disk. This should improve performance and - minimize performance degradation during checkpoints. + pages to write to disk. Also, the new code does not issue a global + sync() call, but instead fsync()s just the files written since the + last checkpoint. This should improve performance and + minimize degradation during checkpoints. + + + + + + Add ability to prolong vacuum to reduce performance impact (Jan) + + + On busy systems, VACUUM performs many I/O requests which can hurt + performance for other users. This release allows you to slow down + VACUUM to reduce its impact on other users, though this increases the + total duration of VACUUM. @@ -362,10 +401,10 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp Improved index usage with OR clauses (Tom) - This allows the optimizer to use indexes in statements with - many OR clauses that were not possible in the past. It can also - use multi-column indexes where the first column is specified and - the second column is part of an OR clause. + This allows the optimizer to use indexes in statements with many OR + clauses that would not have been indexed in the past. It can also use + multi-column indexes where the first column is specified and the second + column is part of an OR clause. @@ -381,35 +420,33 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Improve load speed for C functions (Tom) + Improve performance of the GEQO optimizer (Tom) - This release now uses a hash to lookup information for externally - loaded C functions. This improves their speed so they perform as - quickly as native functions that are part of the server backend. + The GEQO optimizer is used to plan queries involving many tables (by + default, twelve or more). This release speeds up the way queries are + analyzed to decrease time spent in optimization. - Improve performance of the GEQO optimizer (Tom) + Miscellaneous optimizer improvements - The GEQO optimizer is used for joining many tables (default - twelve). This release speeds up the way queries are analyzed to - decrease time spent in optimization. + There is not room here to list all the minor improvements made, but + numerous special cases work better than in prior releases. - Add ability to prolong vacuum to reduce performance impact (Jan) + Improve lookup speed for C functions (Tom) - On busy systems, VACUUM performs many I/O request which can hurt - performance for other users. This release allows you to slow down - VACUUM so it uses fewer resources though this increases the - duration of VACUUM. + This release uses a hash table to lookup information for dynamically + loaded C functions. This improves their speed so they perform nearly as + quickly as functions that are built into the server executable. @@ -418,7 +455,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp Add type-specific ANALYZE statistics capability (Mark Cave-Ayland) - This adjustment allows more flexibility in generating statistics + This feature allows more flexibility in generating statistics for non-standard data types. @@ -429,21 +466,11 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp Expression indexes (also called functional indexes) allow users to - index not just columns but the result of expressions and function - calls. With this release, expression indexes can collect analyze - statistics used by the optimizer in choosing the best execution - plan. - - - - - - Sort duplicate btree items by file offset during creation (Manfred Koizar) - - - To improve performance, this release sorts duplicate index entries - in base table order so duplicate row lookups happen in sequential - order. This ordering is not maintained during table modification. + index not just columns but the results of expressions and function + calls. With this release, the optimizer can gather and use statistics + about the contents of expression indexes. This will greatly improve + the quality of planning for queries in which an expression index is + relevant. @@ -458,25 +485,11 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Optimize prepared queries only when first executed so constants can be used - for statistics (unnamed?) (Oliver Jowett) + Speed up TRUNCATE (Tom) - Prepared statements optimize queries once and execute them many - times. While prepared queries run quickly, they benefit from - knowing all the values used in the query. This release allows - unnamed prepared queries to use the constants supplied by the - first query invocation as optimization hints. - - - - - - Fix hash joins and aggregates of INET and CIDR data types (Tom) - - - Previous releases did not adjust to the fact that INET and CIDR - types have slightly different internal representations. + This buys back some of the performance loss observed in 7.4, while still + keeping TRUNCATE transaction-safe. @@ -490,21 +503,32 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Add tablespace so admins can control disk layout (Gavin) + Add WAL file archiving and point-in-time recovery (Simon Riggs) - Add Point-in-time recovery (Simon Riggs) + Add tablespaces so admins can control disk layout (Gavin) - Add new read-only server configuration parameter to query server - compile-time setting func_max_args, index_max_keys, namedatalen, - blcksz, have_int64_timestamp (Joe) + Add a built-in log rotation program (Andreas Pflug) + + + It is now possible to log server messages conveniently without + relying on either syslog or an external log rotation program. + + + + + + Add new read-only server configuration parameters to query server + compile-time settings: block_size, + integer_datetimes, max_function_args, + max_identifier_length, max_index_keys (Joe) @@ -517,102 +541,136 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Use clearer IPv6 name ::1/128 for localhost (Andrew) + Use clearer IPv6 name ::1/128 for localhost in default + pg_hba.conf (Andrew) - Rename server configuration parameters SortMem and VacuumMem to - work_mem and maintenance_work_mem (Old names still supported) - (Tom) + Rename server configuration parameters SortMem and + VacuumMem to work_mem and + maintenance_work_mem (Old names still supported) (Tom) - This change was made to clarify that index creation uses - maintenance_work_mem and work_mem is for memory used for query - execution. + This change was made to clarify that bulk operations such as index and + foreign key creation use maintenance_work_mem, while + work_mem is for workspaces used during query execution. Allow logging of session disconnections using server configuration - log_disconnections (Andrew) + log_disconnections (Andrew) - Add new server configuration parameter log_line_prefix to report useful - session information at the start of each log line (Andrew) + Add new server configuration parameter log_line_prefix to + allow control of information emitted in each log line (Andrew) - Information includes user name, database name, remote IP address, - and session start time. + Available information includes user name, database name, remote IP + address, and session start time. - Remove server configuration parameter log_pid, log_timestamp, - log_source_port; functionality superseded by log_line_prefix - (Andrew) + Remove server configuration parameters log_pid, + log_timestamp, log_source_port; functionality + superseded by log_line_prefix (Andrew) - Replace the virtual_host and tcpip_socket parameters with a unified - listen_addresses parameter (Andrew, Tom) + Replace the virtual_host and tcpip_socket + parameters with a unified listen_addresses parameter + (Andrew, Tom) - Listen on localhost by default, which eliminates the need for the -i - postmaster switch in many scenarios (Andrew) + Listen on localhost by default, which eliminates the need for the + -i postmaster switch in many scenarios (Andrew) Listening on localhost (127.0.0.1) opens no new security holes but allows configurations like Win32 and JDBC, which do not support - local sockets, to work. + local sockets, to work without special adjustments. - Remove 'syslog' server configuration parameter, and add more - logical 'log_destination' variable to control log output location - (Magnus) + Remove syslog server configuration parameter, and add more + logical log_destination variable to control log output + location (Magnus) - Change server configuration parameter log_statement to take values - "all, mod, ddl, none" which controls the queries output (Bruce) + Change server configuration parameter log_statement to take + values all, mod, ddl, or + none to select which queries are logged (Bruce) This allows administrators to log only data definition changes or - date modification statements. + only data modification statements. - Allow backends to be safely terminated with SIGTERM (Bruce) + Allow configuration files to be placed outside the data directory (mlw) + + + By default, configuration files sit in the top server directory. + With this addition, configuration files can be placed outside the + data directory, easing administration. - Allow configuration files to be placed outside the data directory using - server configuration parameters (mlw) + Plan prepared queries only when first executed so constants can be + used for statistics (Oliver Jowett) - By default, configuration files sit in the top server directory. - With this addition, configuration files can be place outside the - data directory, easing administration. + Prepared statements plan queries once and execute them many + times. While prepared queries avoid the overhead of re-planning + on each use, the quality of the plan suffers from not knowing the exact + parameters to be used in the query. In this release, planning of + unnamed prepared statements is delayed until the first execution, + and the actual parameter values of that execution are used as + optimization hints. + + + + + + Allow DECLARE CURSOR to take parameters (Oliver Jowett) + + + It is now useful to issue DECLARE CURSOR in a Parse message with + parameters. The parameter values sent at Bind time will be substituted + into the execution of the cursor's query. + + + + + + Fix hash joins and aggregates of INET and CIDR data types (Tom) + + + Release 7.4 handled hashing of mixed INET and CIDR values incorrectly. + (This bug did not exist in prior releases because they wouldn't try + to hash either datatype.) @@ -626,19 +684,19 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Add savepoints (and nested transactions) (Alvaro) + Add savepoints (nested transactions) (Alvaro) Unsupported isolation levels are now accepted and promoted to the - spec-compliant level supported (Peter) + nearest supported level (Peter) The SQL specification states that if a database doesn't support a - specific isolation level, it should use a more restrictive level. - This change adds that capability. + specific isolation level, it should use the next more restrictive level. + This change complies with that recommendation. @@ -651,7 +709,8 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - More flexible rule/view permission checking (?) (Tom) + Fix table permission checking for cases in which rules generate + a query type different from the originally submitted query (Tom) @@ -662,21 +721,22 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp In previous releases, because single quotes had to be used to - quote a function's contents, the use of single quotes inside the - function required use of two single quotes or other error-prone - mechanisms. With this release we add the ability to use "dollar - quoting" to quote a block of text that eliminates the awkwardness - of single quotes used inside the function. Dollar quoting can - actually be used anywhere quoted text is used. + quote a function's body, the use of single quotes inside the + function text required use of two single quotes or other error-prone + notations. With this release we add the ability to use "dollar + quoting" to quote a block of text. The ability to use different + quoting delimiters at different nesting levels greatly simplifies + the task of quoting correctly, especially in complex functions. + Dollar quoting can be used anywhere quoted text is needed. - Make CASE val WHEN compval1 THEN evaluate 'val' only once (Tom) + Make CASE val WHEN compval1 THEN ... evaluate val only once (Tom) - This prevents CASE from re-evaluating the test expression multiple + CASE no longer evaluates the test expression multiple times. This has benefits when the expression is complex or is volatile. @@ -684,51 +744,85 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Replace max_expr_depth parameter with max_stack_depth parameter, - measured in kilobytes of stack size (Tom) + Test HAVING before computing target list of an aggregate query (Tom) + + + Fixes improper failure of cases such as SELECT SUM(win)/SUM(lose) + ... GROUP BY ... HAVING SUM(lose) > 0. This should work but formerly + could fail with divide-by-zero. + + + + + + Replace max_expr_depth parameter with + max_stack_depth parameter, measured in kilobytes of stack + size (Tom) This gives us a fairly bulletproof defense against crashing due to - runaway recursive functions. Instead of measure the number of stack - calls, it measures the size of the stack. + runaway recursive functions. Instead of measuring the depth of expression + nesting, we now directly measure the size of the execution stack. + + + + + + Allow arbitrary row expressions (Tom) + + + This release allows SQL expressions to contain arbitrary composite + types, that is, row values. It also allows functions to more easily + take rows as arguments and return row values. - Allow LIKE/ILIKE to appear in more places in a query (?) (Fabien Coelho) + Allow LIKE/ILIKE to be used as the operator in row and subselect + comparisons (Fabien Coelho) - + - Change EXECUTE to return a completion tag matching the executed statement - (Kris Jurka) + Avoid locale-specific case conversion of basic ASCII letters in + identifiers and keywords (Tom) - Previous releases return an EXECUTE tag for any EXECUTE call. In - this release, the tag returned will reflect the command executed. + This solves the Turkish problem with mangling of words + containing I and i. Folding of characters + outside the 7-bit-ASCII set is still locale-aware. + + + + + + Improve syntax error reporting (Fabien, Tom) + + + Syntax error reports are more useful than before. - Disallow NATURAL CROSS JOIN (Tom) + Change EXECUTE to return a completion tag matching the executed statement + (Kris Jurka) - Such a clause makes no logical sense, but was not disabled in the - past. + Previous releases return an EXECUTE tag for any EXECUTE call. In + this release, the tag returned will reflect the command executed. - Allow arbitrary row expressions (Tom) + Avoid emitting NATURAL CROSS JOIN in rule listings (Tom) - This allows columns to contain arbitrary composite types like rows - from other tables. It also allows functions to more easily take - rows as arguments and return row values. + Such a clause makes no logical sense, but in some cases the rule + decompiler formerly produced this syntax. @@ -749,18 +843,18 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Add new server configuration parameter default_with_oids to - control the oid default during table creation (Neil) + Add new server configuration parameter default_with_oids to + control whether tables are created with OIDs by default (Neil) This allows administrators to default all CREATE TABLE commands to - create tables without oid columns. + create tables without OID columns. - Add WITH / WITHOID OIDS clause to CREATE TABLE AS (Neil) + Add WITH / WITHOUT OIDS clause to CREATE TABLE AS (Neil) @@ -773,18 +867,18 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Allowing composite types as table columns (Tom) + Allow composite types as table columns (Tom) - Allow ALTER ... ADD COLUMN with defaults and NOT NULL constraints works per SQL - spec (Rod) + Allow ALTER ... ADD COLUMN with defaults and NOT NULL constraints; + works per SQL spec (Rod) - This release will supply the appropriate defaults for columns - added with defaults. + It is now possible for ADD COLUMN to create a column that is not + initially filled with NULLs, but with a specified default value. @@ -792,6 +886,10 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp Add ALTER COLUMN TYPE to change column's type (Rod) + + It is now possible to alter a column's datatype without dropping + and re-adding the column. + @@ -800,17 +898,30 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp This is particularly useful for ALTER commands that rewrite the - table. By grouping ALTER commands together, the table can be + table (which include ALTER COLUMN TYPE and ADD COLUMN with a default). + By grouping ALTER commands together, the table need be rewritten only once. - Allow ALTER DATABASE ... OWNER (Euler Taveira de Oliveira) + Allow ALTER TABLE to add SERIAL columns (Tom) + + + This is related to the new capability of adding defaults for new + columns. + + + + + + Allow changing the owners of aggregates, conversions, databases, + functions, operators, operator classes, schemas, types, and tablespaces + (Christopher, Euler Taveira de Oliveira) - Previously this required modifying the system tables. + Previously this required modifying the system tables directly. @@ -844,18 +955,8 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Allow ALTER TABLE to add SERIAL columns (Tom) - - - This is related to the new capability of adding default for new - columns. - - - - - - Add pg_get_serial_sequence() to return the serial columns - sequence name(Christopher) + Add pg_get_serial_sequence() to return a serial column's + sequence name (Christopher) This allows automated scripts to reliabily find the serial @@ -865,15 +966,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Allow changing the owners of aggregates, conversions, functions, - operators, operator classes, schemas, types, and tablespaces - (Christopher) - - - - - - Warn of primary/foreign key mismatch requires costly lookup + Warn when primary/foreign key datatype mismatch requires costly lookup @@ -905,20 +998,50 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp Add NOWAIT option to LOCK command (Tatsuo) - This allows the LOCK command to fail if they would have to wait for + This allows the LOCK command to fail if it would have to wait for the requested lock. + Allow COPY to read and write comma-separated-value (CSV) files (Andrew, Bruce) + + + + + Generate error if the COPY delimiter and NULL string conflict (Bruce) - Allow COPY to read comma-separated-value (CSV) files (Andrew, Bruce) + GRANT/REVOKE behavior follows the SQL spec more closely + + + + + + Avoid locking conflict between CREATE INDEX and CHECKPOINT (Tom) + + + In 7.3 and 7.4, a long-running btree index build could block concurrent + CHECKPOINTs from completing, thereby causing WAL bloat because the + WAL log could not be recycled. + + + + + + Database-wide ANALYZE does not hold locks across tables (Tom) + + + This reduces the potential for deadlocks against other backends that + want exclusive locks on tables. To get the benefit of this change, + do not execute database-wide ANALYZE inside a transaction block + (BEGIN block); it must be able to commit and start a new transaction + for each table. @@ -929,18 +1052,19 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp PostgreSQL uses the user name as salt when encrypting passwords via MD5. When a user name is changed, their salt no longer matches - the stored MD5 password so a notice is generated and the password + the stored MD5 password, so the stored password becomes useless. + In this release a notice is generated and the password is cleared. A new password must then be assigned. - New pg_ctl 'kill' option for Win32 (Andrew) + New pg_ctl kill option for Win32 (Andrew) - Win32 does not have a 'kill' command to send signals to backends - so this capability was added to pg_ctl. + Win32 does not have a kill command to send signals to + backends so this capability was added to pg_ctl. @@ -952,7 +1076,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Add --pwfile option to initdb so the passwords can be set by GUI tools + Add --pwfile option to initdb so the initial password can be set by GUI tools (Magnus) @@ -973,6 +1097,32 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp + More complete support for composite types (row types) (Tom) + + + Composite values can be used in many places where only scalar values + worked before. + + + + + + Reject non-rectangular array literals as erroneous (Joe) + + + Formerly, array_in would silently build a surprising result. + + + + + + Emit array literals with explicit array bounds when lower bound is not one + (Joe) + + + + + Accept YYYY-monthname-DD as a date string (Tom) @@ -986,11 +1136,11 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Change factorial function to NUMERIC (Gavin) + Change factorial function to return NUMERIC (Gavin) - The NUMERIC data type more accurately represents the return value - from factorials. + Returning NUMERIC allows the factorial function to work for a wider + range of input values. @@ -1002,30 +1152,44 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Make length() disregard trailing spaces in CHAR() (Gavin) + Make length() disregard trailing spaces in CHAR(n) (Gavin) - This change was made for SQL specification compliance. (?) + This change was made to improve consistency: trailing spaces are + semantically insignificant in CHAR(n) data, so they should not be + counted by length(). - Warn of empty string being passed to oid/float4/float8 data types; 8.1 - will throw an error instead (Neil) + Warn of empty string being passed to oid/float4/float8 data types (Neil) + + + 8.1 will throw an error instead. - Add "week" to date_trunc(Robert Creager) + Allow int2/int4/int8/float4/float8 input routines to have leading + or trailing whitespace (Neil) - Allow int2/int4/int8/float4/float8 input routines to have leading - or trailing whitespace (Neil) + Better support for IEEE Infinity and NaN values in float4, float8 (Neil) + + + These should now work on all platforms that support IEEE-compliant + floating point arithmetic. + + + + + + Add "week" to date_trunc options (Robert Creager) @@ -1038,17 +1202,19 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp Fix to_char(year) for BC dates (previously it returned one less than - the current year) (Bruce) + the correct year) (Bruce) - Fix date_part() to return the proper millennium and century (With - the previous version, the centuries and millennium had a wrong - number and started the wrong year. Moreover century number 0, - which does not exist in reality, lasted 200 years. Also, - millennium number 0 lasted 2000 years) Fabien Coelho) + Fix date_part() to return the proper millennium and century (Fabien + Coelho) + + + In previous versions, the century and millennium results had a wrong + number and started in the wrong year, as compared to standard + reckoning of such things. @@ -1069,7 +1235,19 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Fix upper/lower() to work with multibyte encodings (Tom) + Add width_bucket() function as defined by SQL2003 (Neil) + + + + + + Add generate_series() functions to simplify working with numeric sets (Joe) + + + + + + Fix upper/lower/initcap functions to work with multibyte encodings (Tom) @@ -1081,7 +1259,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - New inet_* functions to return network addresses for client + New session information functions to return network addresses for client and server (Sean Chittenden) @@ -1094,16 +1272,29 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Add function to send cancel and terminate to other backends (Magnus) + Add function to send cancel request to other backends (Magnus) + + + + + + Add interval plus datetime operators (Tom) + + + The reverse ordering, datetime plus interval, was already supported, + but both are required by the SQL standard. - Allow interval plus datetime expressions (Tom) + Casting an integer to BIT(N) selects the rightmost N bits of the integer + (Tom) - The reverse ordering, datetime plus interval, was already supported. + In prior releases, the leftmost N bits were selected, but this was + deemed unhelpful, not to mention inconsistent with casting from bit + to int. @@ -1117,11 +1308,21 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Allow plpgsql parameter names to be referenced inside the function body (Tom) + Allow function parameters to be declared with names (Dennis Bjorklund) - This basically creates an auto-reference to the names of the - number parameters inside the function body. + This allows better documentation of functions. Whether the names + actually do anything depends on the specific function language + being used. + + + + + + Allow plpgsql parameter names to be referenced in the function (Dennis Bjorklund) + + + This basically creates an automatic alias for each named parameter. @@ -1130,7 +1331,35 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp Do minimal syntax checking of plpgsql functions at creation time (Tom) - This allows us to catch simple function errors sooner. (?) + This allows us to catch simple syntax errors sooner. + + + + + + More support for composite types (row and record variables) in plpgsql + + + For example, it now works to pass a rowtype variable to another function + as a single variable. + + + + + + Default values for plpgsql variables can now reference previously + declared variables + + + + + + Improve parsing of plpgsql FOR loops (Tom) + + + Parsing is now driven by presence of ".." rather than datatype of FOR + variable. This makes no difference for correct functions, but should + result in more understandable error messages when a mistake is made. @@ -1181,13 +1410,13 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Have psql \copy match COPY syntax (Tom) + Make psql \copy match COPY command syntax fully (Tom) - Allow psql to show the location of syntax errors (Fabien Coelho, Tom) + Show the location of syntax errors (Fabien Coelho, Tom) @@ -1221,14 +1450,14 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Have psql \d+ indicate if the table has an oid column (Neil) + Have psql \d+ indicate if the table has an OID column (Neil) - Use binary file mode in psql when reading files so control-z is not seen - as end-of-file + On Windows, use binary mode in psql when reading files so control-Z + is not seen as end-of-file @@ -1267,6 +1496,11 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp Allow pg_restore to ignore some SQL errors (Fabien Coelho) + + This makes pg_restore's behavior similar to the results of feeding + a pg_dump output script to psql. In most cases, ignoring errors and + plowing ahead is the most useful thing to do. + @@ -1349,6 +1583,28 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp + Create an extension makefile framework (Fabien Coelho, Peter) + + + This simplifies the task of building extensions outside the original + source tree. + + + + + + Support relocatable installations (Bruce) + + + Directory paths for installed files (such as the /share directory) + are now computed relative to the actual location of the executables, + so that an installation tree can be moved to another place without + reconfiguring and rebuilding. + + + + + Use --with-docdir to choose installation location of documentation; also allow --infodir (Peter) @@ -1371,8 +1627,10 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp New "PostgreSQL" CVS tag (Marc) - This was done to make it easier for organizations with their own - PostgreSQL CVS repositories. + This was done to make it easier for organizations to manage their own + copies of the PostgreSQL CVS repository. File version stamps from the + master repository will not get munged by checking into or out of + a copied repository. @@ -1390,25 +1648,26 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Remove pg_id client program (Peter) + Decouple platform tests from cpu spinlock code (Bruce, Tom) - Decouple platform tests from cpu spinlock code (Bruce, Tom) + Add inlined test-and-set code on PA-RISC for gcc (ViSolve, Tom) - Add inlined test-and-set code on PA-RISC for gcc (ViSolve,Tom) + Improve i386 spinlock code (Manfred Spraul) - Improved i386 spinlock code (Manfred Spraul) + Clean up spinlock assembly code to avoid warnings from newer gcc + releases (Tom) @@ -1420,6 +1679,13 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp + Remove the libpgtcl client interface; now a separate project + + + + + + More accurately estimate memory and file descriptor usage (Tom) @@ -1444,31 +1710,31 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Remove the libpgtcl client interface + Remove pg_encoding; not needed anymore - Remove pg_encoding; not needed anymore + Remove pg_id; not needed anymore - Auto detect thread flags (no more manual testing) (Bruce) + Remove initlocation; not needed anymore - Use Olson's public domain timezone library (Magnus) + Auto detect thread flags (no more manual testing) (Bruce) - Allow relocatable installs (Bruce) + Use Olson's public domain timezone library (Magnus) @@ -1485,7 +1751,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - psql now uses a lexical analyzer to process command strings + psql now uses a flex-generated lexical analyzer to process command strings @@ -1494,33 +1760,27 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp New linked list data structure implementation (Neil) - This improved performance by allowing list append operations to be + This improves performance by allowing list append operations to be more efficient. - Allow external interfaces to create their own server configuration + Allow dynamically loaded modules to create their own server configuration parameters (Thomas Hallgren) - Remove sync() call during checkpoint and do separate fsyncs() (Tom) - - - - - New Brazilian version of FAQ (Euler Taveira de Oliveira) - Remove alternate database locations using initlocation (Tom) + Add French FAQ (Guillaume Lelarge) @@ -1532,13 +1792,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.277 2004/08/04 21:33:40 tgl Exp - Make libpq and ecpg build as proper OS X shard libraries (Tom) - - - - - - Add French FAQ (Guillaume Lelarge) + Make libpq and ecpg build as proper shared libraries on OS X (Tom) -- 2.11.0