Publish draft version of Postgres 9.2 release notes.
authorBruce Momjian
Thu, 10 May 2012 02:25:43 +0000 (22:25 -0400)
committerBruce Momjian
Thu, 10 May 2012 02:25:52 +0000 (22:25 -0400)
doc/src/sgml/filelist.sgml
doc/src/sgml/release-9.2.sgml [new file with mode: 0644]
doc/src/sgml/release.sgml

index 428a1672783c6c496e7a9dd1564d2c6af7ff533d..82b9e394aa551d846803b48c687a62d7210e932b 100644 (file)
 
 
 
+
 
 
 
diff --git a/doc/src/sgml/release-9.2.sgml b/doc/src/sgml/release-9.2.sgml
new file mode 100644 (file)
index 0000000..502e18b
--- /dev/null
@@ -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 
+        linkend="functions-xml-processing">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 
+        linkend="functions-admin-dbobject">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 
+        linkend="catalog-pg-tablespace">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 
+        linkend="functions-datetime-extract">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 
+        linkend="functions-formatting">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 
+        linkend="APP-PSQL">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 
+        linkend="APP-CLUSTERDB">clusterdb
+        table names as double-quoted; no longer treat 
+        linkend="APP-REINDEXDB">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 
+        linkend="APP-DROPDB">dropdb unless
+        
+        Kupershmidt)
+       
+      
+      
+      
+       
+        No longer have 
+        linkend="APP-CREATEUSER">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 
+        linkend="monitoring-stats-views-table">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 
+        linkend="guc-shared-buffers">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 
+        linkend="guc-wal-writer-delay">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 
+        linkend="monitoring-stats">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 
+        linkend="guc-constraint-exclusion">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 
+        linkend="auth-pg-hba-conf">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 
+        linkend="guc-log-autovacuum-min-duration">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 
+        linkend="functions-admin-backup">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 
+        linkend="guc-event-source">event_source
+        GUC, which is similar to how 
+        linkend="guc-syslog-ident">syslog_ident works.
+       
+      
+      
+      
+       
+        Change "unexpected EOF" message to DEBUG1 level
+        (Magnus Hagander)
+       
+      
+      
+     
+
+    
+
+    
+     Statistical Views
+
+     
+
+      
+       
+        Track temporary file sizes and file counts in the 
+        linkend="monitoring-stats-views">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 
+        linkend="guc-track-io-timing">track_io_timing
+        to track I/O timings (Ants Aasma, Greg Smith, Robert Haas)
+       
+      
+      
+      
+       
+        Report checkpoint timing information in 
+        linkend="pg-stat-bgwriter-view">pg_stat_bgwriter
+        (Greg Smith, Peter Geoghegan, Robert Haas)
+       
+      
+      
+     
+
+    
+
+    
+     Server Settings
+
+     
+
+      
+       
+        Allow 
+        linkend="guc-deadlock-timeout">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 
+        linkend="guc-temp-file-limit">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 
+        option to query configuration parameters (Bruce Momjian)
+       
+       
+       
+        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 
+        linkend="guc-log-timezone">log_timezone
+        accordingly (Tom Lane)
+       
+       
+       
+        This avoids expensive time zone probes during server start.
+       
+      
+      
+      
+       
+        Allow Windows to report
+        postgresql.conf line numbers in 
+        linkend="view-pg-settings">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 
+        linkend="guc-synchronous-commit">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 
+        linkend="app-pgreceivexlog">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 
+        linkend="guc-search-path">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 
+        linkend="SQL-DROPINDEX">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 
+        linkend="SQL-ALTERTABLE">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 
+        linkend="SQL-CREATEVIEW">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 
+        linkend="SQL-CREATEFUNCTION">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 
+        linkend="functions-json">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 
+        linkend="datatype-money">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" 
+        linkend="macaddr-functions-table">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 
+        linkend="functions-admin-signal">pg_cancel_backend()
+        (Magnus Hagander)
+       
+       
+       
+        Previously only the superuser could cancel queries.
+       
+      
+      
+      
+       
+        Allow 
+        linkend="functions-aggregate-table">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 
+        linkend="functions-snapshot-synchronization">pg_export_snapshot(),
+        and imported via SET TRANSACTION SNAPSHOT.
+        Only snapshots of currently-running transactions can be imported.
+       
+      
+      
+      
+       
+        Support 
+        linkend="functions-info-catalog-table">COLLATION
+        FOR on expressions (Peter Eisentraut, Jaime Casanova)
+       
+       
+       
+        This returns a string representing the collation of the expression.
+       
+      
+      
+      
+       
+        Add a NUMERIC variant of 
+        linkend="functions-admin-dbsize">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 
+        linkend="functions-info-session-table">pg_trigger_depth()
+        function (Kevin Grittner)
+       
+       
+       
+        This reports the current trigger call depth.
+       
+      
+      
+     
+
+    
+
+    
+     Object Information Functions
+
+     
+      
+       
+        Add 
+        linkend="functions-info-schema-table">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 
+        (Peter Eisentraut, Pavel Stehule)
+       
+       
+       
+        This allows individual control of local and
+        host pg_hba.conf authentication
+        settings.  
+       
+      
+      
+      
+       
+        Add 
+        createuser
+        to control replication permission (Fujii Masao, Cédric
+        Villemain)
+       
+      
+      
+      
+       
+        Add the