From 668f959dcb7786654943d4726d1af07ad468a5be Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 9 May 2012 22:25:43 -0400 Subject: [PATCH] Publish draft version of Postgres 9.2 release notes. --- doc/src/sgml/filelist.sgml | 1 + doc/src/sgml/release-9.2.sgml | 2906 +++++++++++++++++++++++++++++++++ doc/src/sgml/release.sgml | 4 +- 3 files changed, 2910 insertions(+), 1 deletion(-) create mode 100644 doc/src/sgml/release-9.2.sgml diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml index 428a167278..82b9e394aa 100644 --- a/doc/src/sgml/filelist.sgml +++ b/doc/src/sgml/filelist.sgml @@ -155,6 +155,7 @@ + diff --git a/doc/src/sgml/release-9.2.sgml b/doc/src/sgml/release-9.2.sgml new file mode 100644 index 0000000000..502e18b90b --- /dev/null +++ b/doc/src/sgml/release-9.2.sgml @@ -0,0 +1,2906 @@ + + + + + Release 9.2 + + + Release Date + 2012-??-?? + CURRENT AS OF 2012-05-09 + + + + + Overview + + + NARRATIVE HERE. Major enhancements include: + + + + MAJOR LIST HERE + + + + + + The above items are explained in more detail in the sections below. + + + + + + + Migration to Version 9.2 + + + A dump/restore using pg_dump, or use of + pg_upgrade, is required for those wishing + to migrate data from any previous release. + + + + Version 9.2 contains a number of changes that may affect compatibility + with previous releases. Observe the following incompatibilities: + + + + Functions + + + + + + Ensure that xpath() + escapes special characters in string values (Florian Pflug, + Radoslaw Smogura) + + + + Without this it is possible to output illegal + XML. + + + + + + Remove hstore's => + operator (Robert Haas, David Wheeler) + + + + Users should now use hstore(text, text). Since + PostgreSQL 9.0, we have emitted a + warning message when an operator named => is created because + the SQL standard reserves that token for + another use. + + + + + + Have pg_relation_size() + and friends return NULL if the object does not exist (Phil Sorber) + + + + This prevents queries that call these functions from returning + errors during concurrent drop operations. + + + + + + Remove the spclocation + field from pg_tablespace (Magnus Hagander, + Tom Lane)) + + + + This field was duplicative of the symbolic links already + present in the data directory. This allows tablespace + directories to be moved while the server is down. Also add + pg_tablespace_location() to allow querying of the + symbolic links. + + + + + + + Temporal Functions + + + + + + Have EXTRACT of + a non-timezone-aware value measure the epoch from local midnight, + not UTC midnight (Tom Lane) + + + + Having these computations depend on UTC + was inconsistent. The old behavior is available by casting the + value to timestamp with time zone. + + + + + + Properly parse time strings with trailing yesterday, + today, and tomorrow (Dean Rasheed) + + + + Previously, SELECT '04:00:00 + yesterday'::timestamp returned yesterday's date at + midnight. + + + + + + Fix to_date() and + to_timestamp() to wrap incomplete dates toward 2020 + (Bruce Momjian) + + + + Previously supplied years and year masks of less than four digits + wrapped inconsistently. + + + + + + + + + + Object Modification + + + + + + Prevent ALTER + DOMAIN from working on non-domain types (Peter + Eisentraut) + + + + Owner and schema changes were previously possible on non-domain + types. + + + + + + No longer auto-lowercase procedural language names (Robert Haas) + + + + While unquoted language identifiers are still lowercased, double + and single-quoted identifiers are no longer down-cased. + + + + + + + + + Command-Line Tools + + + + + + Provide consistent backquote, variable + expansion, and quoted substring behavior in psql meta-command + arguments (Tom Lane) + + + + Previously, such usage was only properly expanded when isolated by + whitespace, e.g. 'FOO'BAR was output as FOO + BAR. + + + + + + No longer treat clusterdb + table names as double-quoted; no longer treat reindexdb table + and index names as double-quoted (Bruce Momjian) + + + + Users must supply double-quotes in the command arguments to + accomplish double-quoting behavior. + + + + + + Disable prompting for the user name in dropdb unless + + + + + + No longer have createuser prompt + for settings (Peter Eisentraut, Josh Kupershmidt) + + + + Previously createuser prompted regarding various + user settings. + + + + + + Remove initdb + support for the crypt authentication method (Peter Eisentraut) + + + + This was removed from the backend years ago. + + + + + + + + + Server Settings + + + + + Remove the postgresql.conf setting + silent_mode (Heikki Linnakangas) + + + + This behavior could already be accomplished with pg_ctl + -l postmaster.log. + + + + + + Remove GUC wal_sender_delay, + as it is no longer needed (Tom Lane) + + + + The new "latch" capability made this setting unnecessary. + + + + + + Remove the custom_variable_classes + postgresql.conf parameter (Tom Lane) + + + + The checking provided by this setting was dubious. Now any + setting can be prefixed by any class name. + + + + + + + + Monitoring + + + + + + Rename pg_stat_activity.procpid + to pid, to match other system tables (Magnus Hagander) + + + + + + Create a separate pg_stat_activity column to + report state information, e.g. idle (Scott Mead, Magnus Hagander, + Greg Smith) + + + + The previous query values are preserved, allowing for enhanced + analysis. + + + + + + Change all SQL-level statistics timing values + to float8-stored milliseconds (Tom Lane) + + + + The columns affected are: + pg_stat_user_functions.total_time, + pg_stat_user_functions.self_time, + pg_stat_xact_user_functions.total_time, + pg_stat_xact_user_functions.self_time. + + + + + + Change pg_stat_statements' + total_time column to be measured in milliseconds + (Tom Lane) + + + + + + + + + Other Incompatibilities + + + + + + Add libpq parameters for + specifying the locations of server-side SSL + files (Peter Eisentraut) + + + + This allows changing the location of the files that were previously + hard-coded to server.crt, server.key, + root.crt, root.crl. CA + (crt) and CRL files no longer have default + names, and if specified, these files must exist. + + + + + + + + + + Changes + + + Below you will find a detailed account of the changes between + PostgreSQL 9.2 and the previous major + release. + + + + Server + + + Performance + + + + + Allow queries to retrieve data only from indexes, avoiding heap + access (Robert Haas, Ibrar Ahmed, Tom Lane) + + + + This is possible for heap pages with exclusively all-visible + tuples, as reported by the visibility map. + + + + + + Allow frequently uncontended locks to be recorded using a new + lightweight lock mechanism (Robert Haas, Jeff Davis) + + + + + + Move the frequently accessed members of the PGPROC + shared memory array to a separate section, for performance (Pavan + Deolasee, Heikki Linnakangas, Robert Haas) + + + + + + Reduce overhead of creating virtual transaction id locks ((Robert + Haas, Jeff Davis) + + + + + + Reduce overhead for shared invalidation cache messages (Robert + Haas, Noah Misch) + + + + + + Improve performance of transactions using many savepoints (Simon + Riggs, Robert Haas) PARTIALLY REVERTED. KEEP? + + + + + + Improve COPY performance by adding tuples to + the heap in batches (Heikki Linnakangas) + + + + + + Make the visibility map crash-safe (Robert Haas, Noah Misch) + + + + This helps vacuum be more efficient, and is necessary for + index-only scans. + + + + + + Improve GiST box and point index performance by producing better + trees with less memory allocation overhead (Alexander Korotkov, + Heikki Linnakangas, Kevin Grittner) + + + + + + Allow hint bits to be set sooner for temporary and unlogged tables + (Robert Haas) + + + + + + Reduce checkpoints and WAL traffic on low + activity servers (Simon Riggs) + + + + + + Allow sorting to be performed by inlined and faster, + non-SQL-callable comparison functions (Peter + Geoghegan, Robert Haas, Tom Lane) + + + + + + Add the SP-GiST (Space-Partitioned + GiST) index access method (Teodor Sigaev, Oleg Bartunov, Tom Lane, + Robert Haas) + + + + SP-GiST is comparable to GiST in flexibility, but supports + non-balanced partitioned search structures rather than balanced + trees. CLARIFY? + + + + + + Improve GiST index build times (Alexander Korotkov) + + + + + + Take fewer MVCC snapshots, for performance + (Robert Haas, Dimitri Fontaine) + + + + + + Have the number of clog buffer count scale based on shared_buffers + (Robert Haas) + + + + + + Reduce the overhead of serializable isolation level locks (Dan + Ports, Heikki Linnakangas) + + + + + + Improve performance of WAL writes when multiple + transactions commit at the same time (Peter Geoghegan, Simon Riggs, + Heikki Linnakangas) + + + + + + Improve PowerPC and Itanium spinlock performance (Manabu Ori, + Tom Lane, Robert Haas) + + + + + + + + + Process Management + + + + + + Create a dedicated worker process to perform checkpoints (Simon + Riggs, Dickson Guedes) + + + + Formerly the background writer did dirty page writing and + checkpointing. + + + + + + Improve asynchronous commit behavior by waking up sooner (Simon + Riggs) + + + + Previously, only wal_writer_delay + triggered WAL flushing to disk; now filling a + WAL buffer also triggers WAL + writes. + + + + + + Allow backends to detect postmaster death via a pipe read failure, + rather than polling (Peter Geoghegan, Heikki Linnakangas) + + + + These are internally called "latches". + + + + + + Allow the bgwriter, + walwriter, and statistics collector to sleep + more efficiently during periods of inactivity (Peter Geoghegan, + Heikki Linnakangas, Tom Lane) + + + + This reduces CPU wake-ups. + + + + + + Pass the safe number of file descriptors to Windows processes + (Heikki Linnakangas) + + + + This allows Windows sessions to cache more open file descriptors. + + + + + + + + + Optimizer + + + + + + Improve the ability of the planner to choose parameterized plans + (Tom Lane) + + + + A prepared statement is now parsed, analyzed, and rewritten, + but not necessarily planned. When the prepared plan is executed + with parameters, the planner might replan it for every constant, + or it might execute a generic plan if its cost is close to that + of a constant-specific plan. CLARIFY + + + + + + Allow the optimizer to use CHECK constraints defined + on tables referenced in subqueries in planning decisions (Tom Lane) + + + + This is only enabled when constraint_exclusion + = on. + + + + + + Allow indexedcol op ANY(ARRAY[...]) conditions to be + used in plain indexscans (Tom Lane) + + + + + + Improve heuristics for determining the type of unknown values by + considering other data types involved in the operation (Tom Lane) + + + + + + Allow better matching of index columns with non-default operator + qualifications (Tom Lane) + + + + + + Improve the planner's ability to use nested loops with inner + index scans (Tom Lane) + + + + + + Support MIN/MAX index optimizations on + boolean columns (Marti Raudsepp, Abhijit Menon-Sen) + + + + + + + Optimizer Statistics + + + + + Improve the ability to use statistics on columns referenced in + subqueries (Tom Lane) + + + + + + Improve optimizer estimation for subqueries using + DISTINCT (Tom Lane) + + + + + + Collect and use element-frequency statistics for arrays (Alexander + Korotkov, Noah Misch, Nathan Boley, Tom Lane, Daniele Varrazzo) + + + + This patch improves selectivity estimation for the array <@, + &&, and @> (containment and overlaps) array operators. + + + + + + Improve costing of partial indexes (Tom Lane) + + + + + + Allow analyze statistics to be collected for foreign tables + (Etsuro Fujita, Shigeru Hanada, Tom Lane) + + + + + + + + + + + Authentication + + + + + + Do not assume roles and samerole specified in pg_hba.conf + include superusers (Andrew Dunstan, Robert Haas) + + + + This makes it easier to use reject lines with group roles. + + + + + + Make superuser imply replication privilege (Noah Misch) + + + + This avoids the need to explicitly assign such privileges. + + + + + + Adjust pg_hba.conf processing to more + consistently handle token parsing (Brendan Jurd, Álvaro + Herrera, Pavel Stehule) + + + + + + Disallow empty pg_hba.conf files (Tom Lane) + + + + This was done to more quickly report misconfiguration. + + + + + + + + + Monitoring + + + + + + Attempt to log the current query string before a backend crash + (Marti Raudsepp, PDXPUG, Tom Lane) + + + + + + Make logging of autovacuum I/O activity more verbose (Greg Smith, + Noah Misch) + + + + This logging is triggered by log_autovacuum_min_duration. + + + + + + Have WAL replay report failures sooner + (Fujii Masao) + + + + There were some cases where failures were only reported once the + server went into master mode. + + + + + + Add pg_xlog_location_diff() + to simplify xlog comparisons (Euler Taveira de Oliveira, Fujii + Masao, Magnus Hagander) + + + + This is useful for computing replication lag. + + + + + + Support configurable eventlog application names on Windows (MauMau, + Magnus Hagander) + + + + This allows different instances to use the eventlog + with different identifiers, by setting the event_source + GUC, which is similar to how syslog_ident works. + + + + + + Change "unexpected EOF" message to DEBUG1 level + (Magnus Hagander) + + + + + + + + + Statistical Views + + + + + + Track temporary file sizes and file counts in the pg_stat_database + system view (Tomas Vondra) + + + + + + Add a deadlock counter to the pg_stat_database + system view (Magnus Hagander, Jaime Casanova) + + + + + + Add a GUC setting track_io_timing + to track I/O timings (Ants Aasma, Greg Smith, Robert Haas) + + + + + + Report checkpoint timing information in pg_stat_bgwriter + (Greg Smith, Peter Geoghegan, Robert Haas) + + + + + + + + + Server Settings + + + + + + Allow deadlock_timeout + to be set per-session by superusers, not just per-cluster (Noah + Misch, Shigeru Hanada) + + + + This allows deadlock_timeout to be reduced for + transactions that are likely to be involved in a deadlock, + thus detecting it more quickly. It can also be used to reduce + the chances of a session being chosen for cancellation due to + a deadlock. + + + + + + Add GUC parameter temp_file_limit + to constrain temporary file space usage per session (Mark Kirkwood, + Cédric Villemain, Tatsuo Ishii) + + + + + + Add postgresql.conf category "Replication / + Sending Servers" (Fujii Masao) + + + + + + Allow a superuser to SET an extension's a + superuser-only custom variable before loading the associated + extension (Tom Lane) + + + + The system now remembers whether a SET was + performed by a superuser. + + + + + + Add postmaster + + + This allows pg_ctl to better handle + configuration-only directory installations. + + + + + + Force the locale to be recorded more specifically, rather than + using the empty string to mean the default (Tom Lane) + + + + + + + <filename>postgresql.conf</filename> + + + + + + Allow multiple errors in postgresql.conf + to be reported, rather than just the first one (Alexey Klyukin, + Andy Colson) + + + + + + Allow a reload of postgresql.conf to be + processed by all backends even if there are some settings that + are invalid for that session (Alexey Klyukin, Andy Colson) + + + + Previously such not-valid-for-session errors would cause all + setting changes to be ignored by that backend. + + + + + + Add an include_if_exists facility for configuration + files (Greg Smith, Euler Taveira de Oliveira) + + + + This works the same as include, except that an error + is not thrown if the file is missing. + + + + + + Check the server time zone during initdb, and set + postgresql.conf values timezone and log_timezone + accordingly (Tom Lane) + + + + This avoids expensive time zone probes during server start. + + + + + + Allow Windows to report + postgresql.conf line numbers in pg_settings + (Tom Lane) + + + + + + + + + + + + + Replication and Recovery + + + Streaming Replication + + + + + + Allow streaming replications slaves to serve other slaves (Fujii + Masao, Simon Riggs) + + + + Previously, only the master server could supply streaming + replication log files to standby servers. Slaves can also now + do continuous archiving. (?) + + + + + + Add new synchronous_commit + replication mode remote_write (Fujii Masao and + Simon Riggs) + + + + This only writes data to the socket, but does not wait a write + to the remote disk. + + + + + + Add a pg_receivexlog + tool to archive xlog file changes as they are written, rather + than waiting for completed xlog files (Magnus Hagander) + + + + + + Send keepalive messages to standby servers (Simon Riggs) + + + + This allows administrators to accurately calculate streaming + replication transfer and application latency. + + + + + + + <link linkend="app-pgbasebackup"><application>pg_basebackup</></link> + + + + + + Allow streaming of xlog files while pg_basebackup + is performing a backup (Magnus Hagander) + + + + This allows passing of xlog files to the standby before they are + discarded on the primary. + + + + + + Allow pg_basebackup to pull from standby servers + (Jun Ishizuka, Fujii Masao) + + + + + + Exclude the postmaster.opts file from pg_basebackup + backups (Magnus Hagander) + + + + + + + + + + + + Queries + + + + + + Improve columns labels produced by subqueries (Marti Raudsepp, + Kyotaro Horiugchi) + + + + Previously the generic label ?column? was used. + + + + + + Preserve column names in row expressions (Andrew Dunstan, Tom Lane) + + + + + + Cancel queries if clients get disconnected (Florian Pflug Greg + Jaskiewicz) + + + + + + Silently ignore nonexistent schemas specified in search_path (Tom Lane) + + + + + + Warn about casts to and from domain types (Robert Haas) + + + + Such casts have no affect. + + + + + + When a row fails a CHECK or NOT NULL + constraint, show the row's contents in errdetail (Jan + Kundrát, Royce Ausburn, Tom Lane) + + + + This should make it easier to identify which row is problematic + when an insert or update is processing many rows. + + + + + + + + + Object Manipulation + + + + + + Provide more reliable operation during concurrent + DDL (Robert Haas, Noah Misch) + + + + + + Add CONCURRENTLY option to DROP INDEX + CONCURRENTLY (Simon Riggs) + + + + This allows index removal without blocking other sessions. + + + + + + + Constraints + + + + + + Allow CHECK + constraints to be declared NOT VALID (Álvaro + Herrera, Thom Brown, Dean Rasheed, Jaime Casanova) + + + + A NOT VALID CHECK constraint can be added + to a table without the table's data being verified against the + constraint. New rows are verified. + + + + Such constraints are ignored by the planner when considering + constraint_exclusion. ALTER TABLE / + VALIDATE allows NOT VALID CHECK + check constraints to be fully validated and considered for + constraint_exclusion, including re-planning of + cached plans. + + + + + + Allow CHECK constraints to be declared NO + INHERIT (Nikhil Sontakke, Alex Hunsaker) + + + + This makes them enforceable only on the parent table, not on + child tables. + + + + + + Add the ability to rename + constraints (Peter Eisentraut) + + + + + + Disallow merging of ONLY and non-ONLY + constraints in child tables (Nikhil Sontakke) + + + + Such merging would cause unpredictable behavior in grandchild + tables. + + + + + + + + + <command>ALTER</> + + + + + + Avoid table and index rebuilds when NUMERIC, + VARBIT, and temporal columns are changed in compatible + ways (Noah Misch) + + + + + + Reduce need to rebuild indexes for various ALTER TABLE + operations (Noah Misch) DUPLICATE? + + + + + + Avoid index rebuilds for no-rewrite ALTER TABLE + / ALTER TYPE + (Noah Misch) + + + + + + Add IF EXIST clause to ALTER + commands (Pavel Stehule) + + + + For example, ALTER FOREIGN TABLE IF EXISTS foo RENAME + TO bar. + + + + + + Add ALTER + FOREIGN DATA WRAPPER / RENAME + and ALTER + SERVER / RENAME (Peter Eisentraut) + + + + + + Add ALTER + DOMAIN / RENAME (Peter Eisentraut) + + + + You could already rename domains using ALTER + TYPE. + + + + + + Throw an error for ALTER DOMAIN / DROP + CONSTRAINT on a nonexistent constraint (Peter Eisentraut) + + + + An IF EXISTS option has been added to enable the + previous behavior. + + + + + + + + + <link linkend="SQL-CREATETABLE"><command>CREATE/ALTER TABLE</></link> + + + + + + Fix CREATE TABLE ... AS EXECUTE + to handle WITH NO DATA and column name specification + (Tom Lane) + + + + + + Support CREATE TABLE (LIKE ...) from foreign + tables and views (Peter Eisentraut) + + + + + + Allow CREATE TABLE (LIKE ...) from composite + type (Peter Eisentraut) + + + + This also allows a table to be created who's schema matches a view. + + + + + + Tighten creation of tables in temporary schemas (Robert Haas) + + + + Previously, it was possible to create unlogged tables in temporary + schemas, and temporary tables in the temporary schemas of other + sessions. + + + + + + + + + Object Permissions + + + + + + Add a security_barrier + option for views (KaiGai Kohei, Noah Misch) + + + + This prevents security_barrier views from being moved + into other scopes, preventing possible leakage of view-prohibited + data. Such views might perform more poorly. + + + + + + Add a new LEAKPROOF function + specification to mark functions that can be safely pushed down + into security_barrier views (KaiGai Kohei) + + + + + + Add support for privileges on date types (Peter Eisentraut, + Yeb Havinga) + + + + This adds support for the SQL-conforming + USAGE privilege on types and domains. The intent is + to be able restrict which users can create dependencies on types, + which restricts the way in which owners can alter types. + + + + + + Check for INSERT privileges in SELECT + INTO / CREATE TABLE AS (KaiGai Kohei, + Albe Laurenz) + + + + Because the object is being created by SELECT + INTO or CREATE TABLE AS, it will + have default insert permissions, except if ALTER DEFAULT + PRIVILEGES has removed such permissions, hence the need for + a permission check. + + + + + + + + + + + Utility Operations + + + + + + Allow vacuum to more easily skip pages that cannot be locked + (Simon Riggs, Robert Haas) + + + + This change should greatly reduce the incidence of vacuum getting + "stuck". + + + + + + + <link linkend="SQL-EXPLAIN"><command>EXPLAIN</></link> + + + + + + Make EXPLAIN (BUFFERS) track blocks dirtied + and written (Robert Haas, Fujii Masao, Greg Smith) + + + + + + Have EXPLAIN ANALYZE report the number of rows + rejected by filter steps (Marko Tiikkaja, Marc Cousin) + + + + + + Allow EXPLAIN to avoid timing overhead when + time values are unwanted (Tomas Vondra, Eric Theise) + + + + This is accomplished by setting TIMING to + FALSE. + + + + + + + + + + + Data Types + + + + + + Add a JSON + data type (Robert Haas) AUTHOR? + + + + This stores JSON data as text after proper + validation. + + + + + + Add array_to_json() + and row_to_json() (Andrew Dunstan, Abhijit Menon-Sen) + + + + + + Add support for range data types + (Jeff Davis, Tom Lane, Alexander Korotkov) + + + + The range data type records a lower and upper bound, and supports + comparisons like contains, overlaps, and intersection. + + + + + + Add SMALLSERIAL + data type (Mike Pultz, Brar Piening, Josh Kupershmidt) + + + + This is like SERIAL, except it stores the sequence in + a two-byte integer column (int2). + + + + + + Allow domains to be + declared NOT VALID (Álvaro Herrera, Thom Brown, + Dean Rasheed, Jaime Casanova, Peter Eisentraut) + + + + This can be set at domain creation time, or via + ALTER DOMAIN / ADD CONSTRAINT / NOT + VALID. ALTER DOMAIN / VALIDATE + CONSTRAINT fully validates the domain. + + + + + + Support more locale-specific formatting options for the MONEY data type (Tom Lane) + + + + Specifically, display the plus/minus sign, currency symbol, + and separators in a locale-specific order. CORRECT? + + + + + + Add bitwise "and", "or", and "not" operators for the macaddr + data type (Brendan Jurd, Fujii Masao) + + + + + + + <link linkend="functions-xml"><acronym>XML</></link> + + + + + + Allow xpath() to return a single-element + XML array when supplied a scalar value (Florian + Pflug, Radoslaw Smogura) + + + + Previously, it returned an empty array. This change will also + cause xpath_exists() to return true, not false, + for such expressions. + + + + + + Improve XML error handling to be more robust + (Florian Pflug, Tom Lane, Noah Misch) + + + + + + + + + + + Functions + + + + + + Allow a user to cancel queries in other owned sessions using pg_cancel_backend() + (Magnus Hagander) + + + + Previously only the superuser could cancel queries. + + + + + + Allow string_agg() + to process bytea values (Pavel Stehule, Peter Eisentraut) + + + + + + Allow regular expressions to use back-references (Tom Lane) + + + + For example, '^(\w+)( \1)+$'. + + + + + + Allow importing and exporting of transaction snapshots (Joachim + Wieland, Marko Tiikkaja, Tom Lane) + + + + Snapshots are exported via pg_export_snapshot(), + and imported via SET TRANSACTION SNAPSHOT. + Only snapshots of currently-running transactions can be imported. + + + + + + Support COLLATION + FOR on expressions (Peter Eisentraut, Jaime Casanova) + + + + This returns a string representing the collation of the expression. + + + + + + Add a NUMERIC variant of pg_size_pretty() + for use with pg_xlog_location_diff() (Fujii Masao) + + + + + + + Function and Trigger Creation + + + + + + Change default names of triggers to fire action triggers before + check triggers (Tom Lane) + + + + This allows default-named check triggers to check post-action rows. + + + + + + Add a pg_trigger_depth() + function (Kevin Grittner) + + + + This reports the current trigger call depth. + + + + + + + + + Object Information Functions + + + + + Add pg_opfamily_is_visible() + (Josh Kupershmidt) + + + + + + Allow per-column foreign data wrapper options and + force_not_null (Shigeru Hanada, KaiGai Kohei) + + + + This allows SQL specification of per-column + information useful to foreign data sources. Includes + psql option display support. + + + + + + Improve pretty printing of view definitions (Andrew Dunstan, + Hitoshi Harada) + + + + + + + + + <link linkend="information-schema">Information Schema</link> + + + + + + Add information_schema views + role_udt_grants, udt_privileges, + and user_defined_types (Peter Eisentraut) + + + + + + Add composite-type attributes to the + information_schema.element_types view + (Peter Eisentraut) + + + + + + Implement information schema interval_type columns + (Peter Eisentraut) + + + + + + Add collation columns to various information schema views (Peter + Eisentraut) + + + + Specifically, provide collation columns for views referencing + attributes, columns, domains, and element_types. + + + + + + Add display of sequence USAGE privileges to information + schema (Peter Eisentraut) + + + + + + Add a with_hierarchy column to the information schema + privileges display (Peter Eisentraut) + + + + + + Have the information schema show default privileges (Peter + Eisentraut, Abhijit Menon-Sen) + + + + Previously default permissions generated NULL fields. + (WAS IT NULL?) + + + + + + + + + + + Server-Side Languages + + + <link linkend="plpgsql">PL/pgSQL</link> Server-Side Language + + + + + + Allow the PL/pgSQL OPEN cursor command to supply + parameters by name (Yeb Havinga, Kevin Grittner, Tom Lane) + + + + + + Add a GET STACKED DIAGNOSTICS PL/pgSQL command + to retrieve exception info (Pavel Stehule, Shigeru Hanada, + David Wheeler) + + + + + + Speed up PL/pgSQL array assignment by caching type information + (Pavel Stehule) + + + + + + Improve performance and memory consumption of the PL/pgSQL + ELSIF clauses (Tom Lane) + + + + + + Output the function signature, not just the name, in PL/pgSQL + error messages (Pavel Stehule, Abhijit Menon-Sen, Tom Lane) + + + + + + + + + <link linkend="plperl">PL/Perl</link> Server-Side Language + + + + + + Properly handle empty arrays returned by PL/Perl functions + (Andrew Dunstan) DETAILS? + + + + + + + + + <link linkend="plpython">PL/Python</link> Server-Side Language + + + + + + Add PL/Python SPI cursor support (Jan + Urbańnski, Steve Singer) + + + + This allows PL/Python to read partial result sets. + + + + + + Add result metadata functions to PL/Python (Peter Eisentraut, + Abhijit Menon-Sen) + + + + Specifically, this adds result object functions .colnames, + .coltypes, and .coltypmods. + + + + + + + + + <link linkend="xfunc-sql">SQL</link> Server-Side Language + + + + + Allow SQL-language functions to reference + parameters by name (Matthew Draper, Hitoshi Harada) + + + + To use this, simply name the function arguments and reference + the argument names in the SQL function body. + + + + + + + + + + Client Applications + + + + + + Add initdb + options + + + This allows individual control of local and + host pg_hba.conf authentication + settings. + + + + + Add + + + + + Add the + + + + + Give command-line tools the ability to specify the name of the + database to connect to, and fall back to template1 + if a postgres database connection fails (Robert Haas) + + + + + + + <link linkend="APP-PSQL"><application>psql</></link> + + + + + + Add psql mode to auto-expand output based on the + display width (Peter Eisentraut, Noah Misch) + + + + This adds the auto option to the \x + command, which switches to the expanded mode when the normal + output would be wider than the screen. + + + + + + Allow inclusion of psql files relative to the + directory of the input file from which it was invoked (Gurjeet + Singh, Josh Kupershmidt) + + + + The psql command is \ir. + + + + + + Add support for non-ASCII characters in + psql variable names (Tom Lane) + + + + + + Add support for major-version-specific .psqlrc files + (Bruce Momjian) + + + + We already supported minor-version-specific .psqlrc + files. + + + + + + Provide environment variable overrides for psql + history and startup file locations (Andrew Dunstan) + + + + Specifically, PSQL_HISTORY and + PSQLRC. + + + + + + Add a psql \setenv command to modify + the environment variables used by child processes (Andrew Dunstan, + Josh Kupershmidt) + + + + This is useful in .psqlrc files. + + + + + + Have psql temporary editor files use a + .sql extension (Peter Eisentraut) + + + + + + Allows psql to use zero-byte field and record + separators (Peter Eisentraut, Abhijit Menon-Sen) + + + + Various shell tools use zero/null-byte separators, e.g. find. + + + + + + Have psql \timing report times for + failed queries (Magnus Hagander) + + + + Previously only successful query times were reported. + + + + + + Have psql \copy use libpq's + SendQuery() (Noah Misch) + + + + This makes \copy failure behavior more predictable, + and honors ON_ERROR_ROLLBACK. + + + + + + + + + Informational Commands + + + + + Make psql \d on a sequence show the + table/column name owning it (Magnus Hagander) + + + + + + Show statistics target for columns in psql + \d+ (Magnus Hagander) + + + + + + Show role password expiration dates in psql + \du (Fabrízio de Royes Mello) + + + + + + + + Comments + + + + + Allow psql to display comments for languages and + casts (Josh Kupershmidt) + + + + These are output via \dL and \dC. + + + + + + Allow psql to display comments for conversions + and domains (Josh Kupershmidt) + + + + This is accomplished with the addition of + to + \dc and \dD commands. + + + + + + Allow psql to display the comments on + SQL/MED objects in verbose + mode (Josh Kupershmidt) + + + + + + Change psql's \dd command to display + only objects without their own backslash command (Josh Kupershmidt) + + + + + + + + + + + Tab Completion + + + + + + In psql tab completion, + complete SQL key words based on + COMP_KEYWORD_CASE setting and the perhaps case of + the partially-supplied word (Peter Eisentraut, Fujii Masao) + + + + + + Add psql tab completion support for + EXECUTE (Andreas Karlsson, Josh Kupershmidt) + + + + + + Allow tab completion of role references in + GRANT/REVOKE (Peter + Eisentraut, Pavel Stehule) + + + + + + Allow tab completion of file names to supply quotes, when necessary + (Noah Misch) + + + + + + Change psql tab completion support for + TABLE to also display views (Magnus Hagander) + + + + + + + + + <link linkend="APP-PGDUMP"><application>pg_dump</></link> + + + + + + Parallel pg_dump (Robert Haas, Joachim Wieland) + DETAILS? + + + + + + Add an + + + This allows dumping of a table's definition but not its data, + on a per-table basis. + + + + + + Add a + + + Valid values are pre-data, data, + and post-data. The option can be + given more than once. + + + + + Have pg_dumpall dump all + roles first, then all configuration settings on roles (Phil Sorber) + + + + This allows a role's configuration settings to rely on other + roles without generating an error. + + + + + + Allow pg_dumpall to avoid errors if the + postgres database is missing in the new cluster + (Robert Haas) + + + + + + Dump foreign server user mappings in user name order (Peter + Eisentraut) + + + + This helps produce deterministic dump files. + + + + + + Dump operators in a predictable order (Peter Eisentraut) + + + + + + Tighten rules for when extension configuration tables are dumped + by pg_dump (Tom Lane) + + + + + + + + + + + <link linkend="libpq"><application>libpq</></link> + + + + + + Add URIs support to libpq connection functions + (Alexander Shulgin) + + + + The syntax begins with postgres://. + + + + + + Add a libpq connection option to disable SSL + compression (Laurenz Albe) + + + + This can be used to remove the overhead of SSL + compression on fast networks. + + + + + + Add a row processor API to libpq for better + handling of large result sets (Kyotaro Horiguchi, Marko Kreen) + + + + Previously libpq collected the entire query result into memory + before passing it back to the application. + + + + + + Enhance const qualifiers in the libpq functions + PQconnectdbParams, PQconnectStartParams, and PQpingParams (Lionel + Elie Mamane, Craig Ringer) + + + + + + Allow libpq's .pgpass file to process escaped characters in the + password field (Robert Haas, Ross Reedstrom) + + + + + + Have library functions use abort() instead of + exit() to terminate the executable (Peter Eisentraut) + + + + This does not interfere with the normal exit codes used by the + program, and generates a signal that can be caught by the caller. + + + + + + Fix a libpq memory leak by freeing client encoding connection + parameters (Peter Eisentraut) + + + + + + + + + Source Code + + + + + + Add support for building with MS + Visual Studio 2010 (Brar Piening, Craig Ringer) + + + + + + Enable compiling with the MinGW-w64 32-bit compiler (Lars Kanis, + Nishiyama Tomoaki) + + + + + + Install plpgsql.h into include/server during installation + (Heikki Linnakangas) + + + + + + Use C flexible array members, where supported (Peter Eisentraut) + + + + + + Improve the concurrent transaction regression tests + (isolationtester) (Noah Misch, Alexander Shulgin) + + + + + + Modify thread_test to create its test files in + the current directory, rather than /tmp (Bruce Momjian) + + + + + + Improve flex and bison warning and error reporting (Tom Lane, + Noah Misch) + + + + + + Add memory barrier support (Robert Haas) + + + + This is currently unused. STILL TRUE? + + + + + + Modify pgindent to use a typedef file (Bruce Momjian) + + + + + + Add a hook for processing messages due to be sent to the server + log (Martin Pihlak, Marti Raudsepp) + + + + + + Add object access hooks for DROP commands + (KaiGai Kohei) + + + + + + Centralize DROP handling for some object types + (KaiGai Kohei) + + + + + + Add a pg_upgrade test suite (Peter Eisentraut) + + + + + + Sync regular expression code with TCL 8.5.11 + and improve internal processing (Tom Lane) + + + + + + Move CRC tables to libpgport, and provide them + in a separate include file (Daniel Farina, Abhijit Menon-Sen) + + + + + + Add options to git_changelog for use in major + release note creation (Bruce Momjian) + + + + + + Remove dead ports (Peter Eisentraut) + + + + The removed ports are: dgux, nextstep, sunos4, svr4, ultrix4, + univel, bsdi. + + + + + + + + + Modules + + + + + + Improve efficiency of dblink by + using libpq's new row processor API (Kyotaro + Horiguchi, Marko Kreen) + + + + This cannot be used by + dblink_send_query()/dblink_get_result(). + + + + + + Add tcn (triggered change notification) + to generate NOTIFY events on table changes + (Kevin Grittner) + + + + + + Implement dry-run mode for pg_archivecleanup + (Gabriele Bartolini, Josh Kupershmidt) + + + + This only outputs the names of files to be deleted. + + + + + + Add new pgbench switchs + + + + + + Have vacuumlo remove large objects + in batches, to reduce locking (Tim Lewis, Josh Kupershmidt, + Tom Lane) + + + + The new + + + + + Change pg_test_fsync to test + for a fixed amount of time, rather than a fixed number of cycles + (Bruce Momjian) + + + + The + + + + + Add a pg_test_timing + utility to measure clock monotonicity and timing overhead (Ants + Aasma, Greg Smith) + + + + + + + <link linkend="pgupgrade"><application>pg_upgrade</></link> + + + + + + Allow pg_upgrade to upgrade an old cluster that + does not have a postgres database (Bruce Momjian) + + + + + + Allow pg_upgrade to handle cases where some + old or new databases are missing, as long as they are empty + (Bruce Momjian) + + + + + + Allow pg_upgrade to handle configuration-only + directory installations (Bruce Momjian) + + + + + + In pg_upgrade, add + + + This is useful for configuration-only directory installs. + + + + + + Change pg_upgrade to use port 50432 by default + (Bruce Momjian) + + + + This helps avoid unintended client connections during the upgrade. + + + + + + Overhaul pg_upgrade logging and failure reporting + (Bruce Momjian) + + + + Create four append-only log files, and delete them on success. + Add + + + + + Adjust pg_upgrade environment variables (Bruce + Momjian) + + + + Rename data, bin, and port environment + variables to begin with PG, and support + PGPORTOLD/PGPORTNEW, to replace + PGPORT. INCOMPATIBILITY? + + + + + + Have pg_upgrade create a script to incrementally + generate more accurate optimizer statistics (Bruce Momjian) + + + + This reduces the time needed to generate minimal cluster statistics + after an upgrade. + + + + + + Reduce cluster locking in pg_upgrade (Bruce + Momjian) + + + + Specifically, only lock the old cluster if link mode is used, + and do it right after we restore the schema. + + + + + + + + + <link linkend="pgstatstatements"><application>pg_stat_statements</></link> + + + + + + Improve pg_stat_statements to aggregate similar + queries (Peter Geoghegan, Daniel Farina, Tom Lane) + + + + + + Improve pg_stat_statements' handling of + PREPARE/EXECUTE statements + (Tom Lane) + + + + + + Add dirtied and written block counts to + pg_stat_statements (Robert Haas, Fujii Masao, + Greg Smith) + + + + + + + + + <link linkend="sepgsql">sepgsql</link> + + + + + Support SECURITY LABEL on global objects (KaiGai Kohei, + Robert Haas) + + + + Specifically, add SECURITY LABELs to databases, + tablespaces, and roles. + + + + + + Allow sepgsql to honor database labels (KaiGai Kohei) + + + + + + Perform sepgsql permission checks during the creation of various + objects (KaiGai Kohei, Dimitri Fontaine) + + + + + + Add sepgsql_setcon() and related functions to control + the sepgsql security domain (KaiGai Kohei, Yeb Havinga) + + + + + + Add a userspace access cache to sepgsql to improve performance + (KaiGai Kohei) + + + + + + + + + + Documentation + + + + + + Add a rule to optionally build docs with the stylesheet from the + website (Magnus Hagander) + + + + Use make STYLE=website draft. + + + + + + Improve EXPLAIN documentation (Tom Lane) + + + + + + Document that user/database names are preserved with double-quoting + by command-line tools like vacuumdb (Bruce + Momjian) + + + + + + Improve the foreign data wrapper API and + documentation (Hanada Shigeru, KaiGai Kohei) + + + + + + Document the actual string returned by the client for MD5 + authentication (Cyan Ogilvie) + + + + + + + + + diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index 1c4762a289..078e97beb9 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -13,7 +13,8 @@ postgresql.conf, pg_hba.conf, [A-Za-z_]/[A-Za-z_]+ psql pg_[A-Za-z0-9_]+ , -[A-Z][A-Z][A-Z_ ]* , +[A-Z][A-Z][A-Z_ ]* +[a-z]+_[a-z_]+ non-ASCII characters find using grep -P '[\x80-\xFF]' convert to HTML4 entity (&) escapes @@ -75,6 +76,7 @@ can be created without links to the main documentation. Don't use . The reason for splitting the release notes this way is so that appropriate subsets can easily be copied into back branches. --> +&release-9.2; &release-9.1; &release-9.0; &release-8.4;