↑↓ select ↵ open ⌫ change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / Versions

PostgreSQL 9.2

Read the English manual

End of life · Recorded build 9.2.24 · 2017-11-09

This major branch is no longer supported. These records describe its history; the absence of newer security records does not establish that it is safe to run.

First stable release
2012-09-10
Support end
2017-11-09
Indexed releases
25
Original release-note entries
968

Manuals & provenance

PostgreSQL 9.2 English manual · 1218 loaded pages.

Manual loaded 2026-09-27T00:10:47.078613.

Release entries: 2026-09-26. Security evidence: 2026-09-26. PDF links use the verified English manifest and locally available files. Lifecycle: PostgreSQL versioning policy.

Upgrade considerations

Major upgrades need a migration method such as dump/reload or pg_upgrade. Read the intervening major-release notes and the target manual. Minor updates can also require extra steps; review the specific release's migration notes. Official upgrade policy.

Compatibility notes for 9.2.0 · Changes from the initial release through 9.2.24

Original migration guidance for 9.2.0

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:

Release history

Every indexed release keeps its original occurrences. CVE counts below are mentions in its notes, including follow-up corrections; they do not count newly fixed vulnerabilities.

ReleaseDate / snapshot cutoffAll changesBug fixesMigration entriesCVE mentions
9.2.24 2017-11-09 13501
9.2.23 2017-08-31 6000
9.2.22 2017-08-10 321703
9.2.21 2017-05-11 251303
9.2.20 2017-02-09 331400
9.2.19 2016-10-27 18900
9.2.18 2016-08-11 24902
9.2.17 2016-05-12 14600
9.2.16 2016-03-31 17900
9.2.15 2016-02-11 481904
9.2.14 2015-10-08 583201
9.2.13 2015-06-12 2200
9.2.12 2015-06-04 4200
9.2.11 2015-05-22 451903
9.2.10 2015-02-05 693106
9.2.9 2014-07-24 412201
9.2.8 2014-03-20 14400
9.2.7 2014-02-20 492408
9.2.6 2013-12-05 261600
9.2.5 2013-10-10 452200
9.2.4 2013-04-04 322003
9.2.3 2013-02-07 432301
9.2.2 2012-12-06 603500
9.2.1 2012-09-24 12700
9.2.0 2012-09-10 2386230

Initial release changes

Original entries from 9.2.0, including feature changes and compatibility notes. Categories aid browsing; they are not upstream classifications.

238 of 238 original entries.

  • Remove the spclocation field from pg_tablespace Compatibility Migration

    Remove the spclocation field from pg_tablespace (Magnus Hagander)

    This field was duplicative of the symbolic links that actually define tablespace locations, and thus risked errors of omission when moving a tablespace. This change allows tablespace directories to be moved while the server is down, by manually adjusting the symbolic links. To replace this field, we have added pg_tablespace_location() to allow querying of the symbolic links.

    Original release occurrence · 9.2.0/migration/001

  • Move tsvector most-common-element statistics to new pg_stats columns Compatibility Migration

    Move tsvector most-common-element statistics to new pg_stats columns (Alexander Korotkov)

    Consult most_common_elems and most_common_elem_freqs for the data formerly available in most_common_vals and most_common_freqs for a tsvector column.

    Original release occurrence · 9.2.0/migration/002

  • Remove hstore's => operator Compatibility Migration

    Remove hstore's => operator (Robert Haas)

    Users should now use hstore(text, text). Since PostgreSQL 9.0, a warning message has been emitted when an operator named => is created because the SQL standard reserves that token for another use.

    Original release occurrence · 9.2.0/migration/003

  • Ensure that xpath() escapes special characters in string values Compatibility Migration

    Ensure that xpath() escapes special characters in string values (Florian Pflug)

    Without this it is possible for the result not to be valid XML.

    Original release occurrence · 9.2.0/migration/004

  • Make pg_relation_size() and friends return NULL if the object does not exist Compatibility Migration

    Make 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 immediately after a concurrent DROP.

    Original release occurrence · 9.2.0/migration/005

  • Make EXTRACT(EPOCH FROM timestamp without time zone) measure the epoch from local midnight, not UTC midnight Compatibility Migration

    Make EXTRACT(EPOCH FROM timestamp without time zone) measure the epoch from local midnight, not UTC midnight (Tom Lane)

    This change reverts an ill-considered change made in release 7.3. Measuring from UTC midnight was inconsistent because it made the result dependent on the timezone setting, which computations for timestamp without time zone should not be. The previous behavior remains available by casting the input value to timestamp with time zone.

    Original release occurrence · 9.2.0/migration/006

  • Properly parse time strings with trailing yesterday, today, and tomorrow Compatibility Migration

    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.

    Original release occurrence · 9.2.0/migration/007

  • Fix to_date() and to_timestamp() to wrap incomplete dates toward 2020 Compatibility Migration

    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.

    Original release occurrence · 9.2.0/migration/008

  • Prevent ALTER DOMAIN from working on non-domain types Compatibility Migration

    Prevent ALTER DOMAIN from working on non-domain types (Peter Eisentraut)

    Owner and schema changes were previously possible on non-domain types.

    Original release occurrence · 9.2.0/migration/009

  • No longer forcibly lowercase procedural language names in CREATE FUNCTION Compatibility Migration

    No longer forcibly lowercase procedural language names in CREATE FUNCTION (Robert Haas)

    While unquoted language identifiers are still lowercased, strings and quoted identifiers are no longer forcibly down-cased. Thus for example CREATE FUNCTION ... LANGUAGE 'C' will no longer work; it must be spelled 'c', or better omit the quotes.

    Original release occurrence · 9.2.0/migration/010

  • Change system-generated names of foreign key enforcement triggers Compatibility Migration

    Change system-generated names of foreign key enforcement triggers (Tom Lane)

    This change ensures that the triggers fire in the correct order in some corner cases involving self-referential foreign key constraints.

    Original release occurrence · 9.2.0/migration/011

  • Provide consistent backquote, variable expansion, and quoted substring behavior in psql meta-command arguments Compatibility Migration

    Provide consistent backquote, variable expansion, and quoted substring behavior in psql meta-command arguments (Tom Lane)

    Previously, such references were treated oddly when not separated by whitespace from adjacent text. For example 'FOO'BAR was output as FOO BAR (unexpected insertion of a space) and FOO'BAR'BAZ was output unchanged (not removing the quotes as most would expect).

    Original release occurrence · 9.2.0/migration/012

  • No longer treat clusterdb table names as double-quoted; no longer treat reindexdb table and index names as double-quoted Compatibility Migration

    No longer treat clusterdb table names as double-quoted; no longer treat reindexdb table and index names as double-quoted (Bruce Momjian)

    Users must now include double-quotes in the command arguments if quoting is wanted.

    Original release occurrence · 9.2.0/migration/013

  • createuser no longer prompts for option settings by default Compatibility Migration

    createuser no longer prompts for option settings by default (Peter Eisentraut)

    Use --interactive to obtain the old behavior.

    Original release occurrence · 9.2.0/migration/014

  • Disable prompting for the user name in dropuser unless --interactive is specified Compatibility Migration

    Disable prompting for the user name in dropuser unless --interactive is specified (Peter Eisentraut)

    Original release occurrence · 9.2.0/migration/015

  • Add server parameters for specifying the locations of server-side SSL files Compatibility Migration

    Add server parameters for specifying the locations of server-side SSL files (Peter Eisentraut)

    This allows changing the names and locations of the files that were previously hard-coded as server.crt, server.key, root.crt, and root.crl in the data directory. The server will no longer examine root.crt or root.crl by default; to load these files, the associated parameters must be set to non-default values.

    Original release occurrence · 9.2.0/migration/016

  • Remove the silent_mode parameter Compatibility Migration

    Remove the silent_mode parameter (Heikki Linnakangas)

    Similar behavior can be obtained with pg_ctl start -l postmaster.log.

    Original release occurrence · 9.2.0/migration/017

  • Remove the wal_sender_delay parameter, as it is no longer needed Compatibility Migration

    Remove the wal_sender_delay parameter, as it is no longer needed (Tom Lane)

    Original release occurrence · 9.2.0/migration/018

  • Remove the custom_variable_classes parameter Compatibility Migration

    Remove the custom_variable_classes parameter (Tom Lane)

    The checking provided by this setting was dubious. Now any setting can be prefixed by any class name.

    Original release occurrence · 9.2.0/migration/019

  • Rename pg_stat_activity.procpid to pid, to match other system tables Compatibility Migration

    Rename pg_stat_activity.procpid to pid, to match other system tables (Magnus Hagander)

    Original release occurrence · 9.2.0/migration/020

  • Create a separate pg_stat_activity column to report process state Compatibility Migration

    Create a separate pg_stat_activity column to report process state (Scott Mead, Magnus Hagander)

    The previous query and query_start values now remain available for an idle session, allowing enhanced analysis.

    Original release occurrence · 9.2.0/migration/021

  • Rename pg_stat_activity.current_query to query because it is not cleared when the query completes Compatibility Migration

    Rename pg_stat_activity.current_query to query because it is not cleared when the query completes (Magnus Hagander)

    Original release occurrence · 9.2.0/migration/022

  • Change all SQL-level statistics timing values to be float8 columns measured in milliseconds Compatibility Migration

    Change all SQL-level statistics timing values to be float8 columns measured in milliseconds (Tom Lane)

    This change eliminates the designed-in assumption that the values are accurate to microseconds and no more (since the float8 values can be fractional). The columns affected are pg_stat_user_functions.total_time, pg_stat_user_functions.self_time, pg_stat_xact_user_functions.total_time, and pg_stat_xact_user_functions.self_time. The statistics functions underlying these columns now also return float8 milliseconds, rather than bigint microseconds. contrib/pg_stat_statements' total_time column is now also measured in milliseconds.

    Original release occurrence · 9.2.0/migration/023

  • Allow queries to retrieve data only from indexes, avoiding heap access Features

    Allow queries to retrieve data only from indexes, avoiding heap access (Robert Haas, Ibrar Ahmed, Heikki Linnakangas, Tom Lane)

    This feature is often called index-only scans. Heap access can be skipped for heap pages containing only tuples that are visible to all sessions, as reported by the visibility map; so the benefit applies mainly to mostly-static data. The visibility map was made crash-safe as a necessary part of implementing this feature.

    Original release occurrence · 9.2.0/changes/001

  • Add the SP-GiST (Space-Partitioned GiST) index access method Features

    Add the SP-GiST (Space-Partitioned GiST) index access method (Teodor Sigaev, Oleg Bartunov, Tom Lane)

    SP-GiST is comparable to GiST in flexibility, but supports unbalanced partitioned search structures rather than balanced trees. For suitable problems, SP-GiST can be faster than GiST in both index build time and search time.

    Original release occurrence · 9.2.0/changes/002

  • Allow group commit to work effectively under heavy load Features

    Allow group commit to work effectively under heavy load (Peter Geoghegan, Simon Riggs, Heikki Linnakangas)

    Previously, batching of commits became ineffective as the write workload increased, because of internal lock contention.

    Original release occurrence · 9.2.0/changes/003

  • Allow uncontended locks to be managed using a new fast-path lock mechanism Features

    Allow uncontended locks to be managed using a new fast-path lock mechanism (Robert Haas)

    Original release occurrence · 9.2.0/changes/004

  • Reduce overhead of creating virtual transaction ID locks Performance

    Reduce overhead of creating virtual transaction ID locks (Robert Haas)

    Original release occurrence · 9.2.0/changes/005

  • Reduce the overhead of serializable isolation level locks Performance

    Reduce the overhead of serializable isolation level locks (Dan Ports)

    Original release occurrence · 9.2.0/changes/006

  • Improve PowerPC and Itanium spinlock performance Performance

    Improve PowerPC and Itanium spinlock performance (Manabu Ori, Robert Haas, Tom Lane)

    Original release occurrence · 9.2.0/changes/007

  • Reduce overhead for shared invalidation cache messages Performance

    Reduce overhead for shared invalidation cache messages (Robert Haas)

    Original release occurrence · 9.2.0/changes/008

  • Move the frequently accessed members of the PGPROC shared memory array to a separate array Features

    Move the frequently accessed members of the PGPROC shared memory array to a separate array (Pavan Deolasee, Heikki Linnakangas, Robert Haas)

    Original release occurrence · 9.2.0/changes/009

  • Improve COPY performance by adding tuples to the heap in batches Performance

    Improve COPY performance by adding tuples to the heap in batches (Heikki Linnakangas)

    Original release occurrence · 9.2.0/changes/010

  • Improve GiST index performance for geometric data types by producing better trees with less memory allocation overhead Performance

    Improve GiST index performance for geometric data types by producing better trees with less memory allocation overhead (Alexander Korotkov)

    Original release occurrence · 9.2.0/changes/011

  • Improve GiST index build times Features

    Improve GiST index build times (Alexander Korotkov, Heikki Linnakangas)

    Original release occurrence · 9.2.0/changes/012

  • Allow hint bits to be set sooner for temporary and unlogged tables Features

    Allow hint bits to be set sooner for temporary and unlogged tables (Robert Haas)

    Original release occurrence · 9.2.0/changes/013

  • Allow sorting to be performed by inlined, non-SQL-callable comparison functions Features

    Allow sorting to be performed by inlined, non-SQL-callable comparison functions (Peter Geoghegan, Robert Haas, Tom Lane)

    Original release occurrence · 9.2.0/changes/014

  • Make the number of CLOG buffers scale based on shared_buffers Features

    Make the number of CLOG buffers scale based on shared_buffers (Robert Haas, Simon Riggs, Tom Lane)

    Original release occurrence · 9.2.0/changes/015

  • Improve performance of buffer pool scans that occur when tables or databases are dropped Performance

    Improve performance of buffer pool scans that occur when tables or databases are dropped (Jeff Janes, Simon Riggs)

    Original release occurrence · 9.2.0/changes/016

  • Improve performance of checkpointer's fsync-request queue when many tables are being dropped or truncated Performance

    Improve performance of checkpointer's fsync-request queue when many tables are being dropped or truncated (Tom Lane)

    Original release occurrence · 9.2.0/changes/017

  • Pass the safe number of file descriptors to child processes on Windows Features

    Pass the safe number of file descriptors to child processes on Windows (Heikki Linnakangas)

    This allows Windows sessions to use more open file descriptors than before.

    Original release occurrence · 9.2.0/changes/018

  • Create a dedicated background process to perform checkpoints Features

    Create a dedicated background process to perform checkpoints (Simon Riggs)

    Formerly the background writer did both dirty-page writing and checkpointing. Separating this into two processes allows each goal to be accomplished more predictably.

    Original release occurrence · 9.2.0/changes/019

  • Improve asynchronous commit behavior by waking the walwriter sooner Features

    Improve asynchronous commit behavior by waking the walwriter sooner (Simon Riggs)

    Previously, only wal_writer_delay triggered WAL flushing to disk; now filling a WAL buffer also triggers WAL writes.

    Original release occurrence · 9.2.0/changes/020

  • Allow the bgwriter, walwriter, checkpointer, statistics collector, log collector, and archiver background processes to sleep more efficiently during periods of inactivity Features

    Allow the bgwriter, walwriter, checkpointer, statistics collector, log collector, and archiver background processes to sleep more efficiently during periods of inactivity (Peter Geoghegan, Tom Lane)

    This series of changes reduces the frequency of process wake-ups when there is nothing to do, dramatically reducing power consumption on idle servers.

    Original release occurrence · 9.2.0/changes/021

  • Allow the planner to generate custom plans for specific parameter values even when using prepared statements Features

    Allow the planner to generate custom plans for specific parameter values even when using prepared statements (Tom Lane)

    In the past, a prepared statement always had a single "generic" plan that was used for all parameter values, which was frequently much inferior to the plans used for non-prepared statements containing explicit constant values. Now, the planner attempts to generate custom plans for specific parameter values. A generic plan will only be used after custom plans have repeatedly proven to provide no benefit. This change should eliminate the performance penalties formerly seen from use of prepared statements (including non-dynamic statements in PL/pgSQL).

    Original release occurrence · 9.2.0/changes/022

  • Improve the planner's ability to use nested loops with inner index scans Features

    Improve the planner's ability to use nested loops with inner index scans (Tom Lane)

    The new "parameterized path" mechanism allows inner index scans to use values from relations that are more than one join level up from the scan. This can greatly improve performance in situations where semantic restrictions (such as outer joins) limit the allowed join orderings.

    Original release occurrence · 9.2.0/changes/023

  • Improve the planning API for foreign data wrappers Features

    Improve the planning API for foreign data wrappers (Etsuro Fujita, Shigeru Hanada, Tom Lane)

    Wrappers can now provide multiple access "paths" for their tables, allowing more flexibility in join planning.

    Original release occurrence · 9.2.0/changes/024

  • Recognize self-contradictory restriction clauses for non-table relations Features

    Recognize self-contradictory restriction clauses for non-table relations (Tom Lane)

    This check is only performed when constraint_exclusion is on.

    Original release occurrence · 9.2.0/changes/025

  • Allow indexed_col op ANY(ARRAY[...]) conditions to be used in plain index scans and index-only scans Features

    Allow indexed_col op ANY(ARRAY[...]) conditions to be used in plain index scans and index-only scans (Tom Lane)

    Formerly such conditions could only be used in bitmap index scans.

    Original release occurrence · 9.2.0/changes/026

  • Support MIN/MAX index optimizations on boolean columns Features

    Support MIN/MAX index optimizations on boolean columns (Marti Raudsepp)

    Original release occurrence · 9.2.0/changes/027

  • Account for set-returning functions in SELECT target lists when setting row count estimates Features

    Account for set-returning functions in SELECT target lists when setting row count estimates (Tom Lane)

    Original release occurrence · 9.2.0/changes/028

  • Fix planner to handle indexes with duplicated columns more reliably Bug fixes

    Fix planner to handle indexes with duplicated columns more reliably (Tom Lane)

    Original release occurrence · 9.2.0/changes/029

  • Collect and use element-frequency statistics for arrays Features

    Collect and use element-frequency statistics for arrays (Alexander Korotkov, Tom Lane)

    This change improves selectivity estimation for the array <@, &&, and @> operators (array containment and overlaps).

    Original release occurrence · 9.2.0/changes/030

  • Allow statistics to be collected for foreign tables Features

    Allow statistics to be collected for foreign tables (Etsuro Fujita)

    Original release occurrence · 9.2.0/changes/031

  • Improve cost estimates for use of partial indexes Features

    Improve cost estimates for use of partial indexes (Tom Lane)

    Original release occurrence · 9.2.0/changes/032

  • Improve the planner's ability to use statistics for columns referenced in subqueries Features

    Improve the planner's ability to use statistics for columns referenced in subqueries (Tom Lane)

    Original release occurrence · 9.2.0/changes/033

  • Improve statistical estimates for subqueries using DISTINCT Features

    Improve statistical estimates for subqueries using DISTINCT (Tom Lane)

    Original release occurrence · 9.2.0/changes/034

  • Do not treat role names and samerole specified in pg_hba.conf as automatically including superusers Features

    Do not treat role names and samerole specified in pg_hba.conf as automatically including superusers (Andrew Dunstan)

    This makes it easier to use reject lines with group roles.

    Original release occurrence · 9.2.0/changes/035

  • Adjust pg_hba.conf processing to handle token parsing more consistently Features

    Adjust pg_hba.conf processing to handle token parsing more consistently (Brendan Jurd, Álvaro Herrera)

    Original release occurrence · 9.2.0/changes/036

  • Disallow empty pg_hba.conf files Features

    Disallow empty pg_hba.conf files (Tom Lane)

    This was done to more quickly detect misconfiguration.

    Original release occurrence · 9.2.0/changes/037

  • Make superuser privilege imply replication privilege Features

    Make superuser privilege imply replication privilege (Noah Misch)

    This avoids the need to explicitly assign such privileges.

    Original release occurrence · 9.2.0/changes/038

  • Attempt to log the current query string during a backend crash Features

    Attempt to log the current query string during a backend crash (Marti Raudsepp)

    Original release occurrence · 9.2.0/changes/039

  • Make logging of autovacuum I/O activity more verbose Features

    Make logging of autovacuum I/O activity more verbose (Greg Smith, Noah Misch)

    This logging is triggered by log_autovacuum_min_duration.

    Original release occurrence · 9.2.0/changes/040

  • Make WAL replay report failures sooner Features

    Make WAL replay report failures sooner (Fujii Masao)

    There were some cases where failures were only reported once the server went into master mode.

    Original release occurrence · 9.2.0/changes/041

  • Add pg_xlog_location_diff() to simplify WAL location comparisons Features

    Add pg_xlog_location_diff() to simplify WAL location comparisons (Euler Taveira de Oliveira)

    This is useful for computing replication lag.

    Original release occurrence · 9.2.0/changes/042

  • Support configurable event log application names on Windows Features

    Support configurable event log application names on Windows (MauMau, Magnus Hagander)

    This allows different instances to use the event log with different identifiers, by setting the event_source server parameter, which is similar to how syslog_ident works.

    Original release occurrence · 9.2.0/changes/043

  • Change "unexpected EOF" messages to DEBUG1 level, except when there is an open transaction Features

    Change "unexpected EOF" messages to DEBUG1 level, except when there is an open transaction (Magnus Hagander)

    This change reduces log chatter caused by applications that close database connections ungracefully.

    Original release occurrence · 9.2.0/changes/044

  • Track temporary file sizes and file counts in the pg_stat_database system view Features

    Track temporary file sizes and file counts in the pg_stat_database system view (Tomas Vondra)

    Original release occurrence · 9.2.0/changes/045

  • Add a deadlock counter to the pg_stat_database system view Features

    Add a deadlock counter to the pg_stat_database system view (Magnus Hagander)

    Original release occurrence · 9.2.0/changes/046

  • Add a server parameter track_io_timing to track I/O timings Features

    Add a server parameter track_io_timing to track I/O timings (Ants Aasma, Robert Haas)

    Original release occurrence · 9.2.0/changes/047

  • Report checkpoint timing information in pg_stat_bgwriter Features

    Report checkpoint timing information in pg_stat_bgwriter (Greg Smith, Peter Geoghegan)

    Original release occurrence · 9.2.0/changes/048

  • Silently ignore nonexistent schemas specified in search_path Features

    Silently ignore nonexistent schemas specified in search_path (Tom Lane)

    This makes it more convenient to use generic path settings, which might include some schemas that don't exist in all databases.

    Original release occurrence · 9.2.0/changes/049

  • Allow superusers to set deadlock_timeout per-session, not just per-cluster Features

    Allow superusers to set deadlock_timeout per-session, not just per-cluster (Noah Misch)

    This allows deadlock_timeout to be reduced for transactions that are likely to be involved in a deadlock, thus detecting the failure more quickly. Alternatively, increasing the value can be used to reduce the chances of a session being chosen for cancellation due to a deadlock.

    Original release occurrence · 9.2.0/changes/050

  • Add a server parameter temp_file_limit to constrain temporary file space usage per session Features

    Add a server parameter temp_file_limit to constrain temporary file space usage per session (Mark Kirkwood)

    Original release occurrence · 9.2.0/changes/051

  • Allow a superuser to SET an extension's superuser-only custom variable before loading the associated extension Features

    Allow a superuser to SET an extension's superuser-only custom variable before loading the associated extension (Tom Lane)

    The system now remembers whether a SET was performed by a superuser, so that proper privilege checking can be done when the extension is loaded.

    Original release occurrence · 9.2.0/changes/052

  • Add postmaster -C option to query configuration parameters Features

    Add postmaster -C option to query configuration parameters (Bruce Momjian)

    This allows pg_ctl to better handle cases where PGDATA or -D points to a configuration-only directory.

    Original release occurrence · 9.2.0/changes/053

  • Replace an empty locale name with the implied value in CREATE DATABASE Features

    Replace an empty locale name with the implied value in CREATE DATABASE (Tom Lane)

    This prevents cases where pg_database.datcollate or datctype could be interpreted differently after a server restart.

    Original release occurrence · 9.2.0/changes/054

  • Allow multiple errors in postgresql.conf to be reported, rather than just the first one Features

    Allow multiple errors in postgresql.conf to be reported, rather than just the first one (Alexey Klyukin, Tom Lane)

    Original release occurrence · 9.2.0/changes/055

  • Allow a reload of postgresql.conf to be processed by all sessions, even if there are some settings that are invalid for particular sessions Features

    Allow a reload of postgresql.conf to be processed by all sessions, even if there are some settings that are invalid for particular sessions (Alexey Klyukin)

    Previously, such not-valid-within-session values would cause all setting changes to be ignored by that session.

    Original release occurrence · 9.2.0/changes/056

  • Add an include_if_exists facility for configuration files Features

    Add an include_if_exists facility for configuration files (Greg Smith)

    This works the same as include, except that an error is not thrown if the file is missing.

    Original release occurrence · 9.2.0/changes/057

  • Identify the server time zone during initdb, and set postgresql.conf entries timezone and log_timezone accordingly Features

    Identify the server time zone during initdb, and set postgresql.conf entries timezone and log_timezone accordingly (Tom Lane)

    This avoids expensive time zone probes during server start.

    Original release occurrence · 9.2.0/changes/058

  • Fix pg_settings to report postgresql.conf line numbers on Windows Bug fixes

    Fix pg_settings to report postgresql.conf line numbers on Windows (Tom Lane)

    Original release occurrence · 9.2.0/changes/059

  • Allow streaming replication slaves to forward data to other slaves (cascading replication) Features

    Allow streaming replication slaves to forward data to other slaves (cascading replication) (Fujii Masao)

    Previously, only the master server could supply streaming replication log files to standby servers.

    Original release occurrence · 9.2.0/changes/060

  • Add new synchronous_commit mode remote_write Features

    Add new synchronous_commit mode remote_write (Fujii Masao, Simon Riggs)

    This mode waits for the standby server to write transaction data to its own operating system, but does not wait for the data to be flushed to the standby's disk.

    Original release occurrence · 9.2.0/changes/061

  • Add a pg_receivexlog tool to archive WAL file changes as they are written, rather than waiting for completed WAL files Features

    Add a pg_receivexlog tool to archive WAL file changes as they are written, rather than waiting for completed WAL files (Magnus Hagander)

    Original release occurrence · 9.2.0/changes/062

  • Allow pg_basebackup to make base backups from standby servers Features

    Allow pg_basebackup to make base backups from standby servers (Jun Ishizuka, Fujii Masao)

    This feature lets the work of making new base backups be off-loaded from the primary server.

    Original release occurrence · 9.2.0/changes/063

  • Allow streaming of WAL files while pg_basebackup is performing a backup Features

    Allow streaming of WAL files while pg_basebackup is performing a backup (Magnus Hagander)

    This allows passing of WAL files to the standby before they are discarded on the primary.

    Original release occurrence · 9.2.0/changes/064

  • Cancel the running query if the client gets disconnected Features

    Cancel the running query if the client gets disconnected (Florian Pflug)

    If the backend detects loss of client connection during a query, it will now cancel the query rather than attempting to finish it.

    Original release occurrence · 9.2.0/changes/065

  • Retain column names at run time for row expressions Features

    Retain column names at run time for row expressions (Andrew Dunstan, Tom Lane)

    This change allows better results when a row value is converted to hstore or json type: the fields of the resulting value will now have the expected names.

    Original release occurrence · 9.2.0/changes/066

  • Improve column labels used for sub-SELECT results Features

    Improve column labels used for sub-SELECT results (Marti Raudsepp)

    Previously, the generic label ?column? was used.

    Original release occurrence · 9.2.0/changes/067

  • Improve heuristics for determining the types of unknown values Features

    Improve heuristics for determining the types of unknown values (Tom Lane)

    The longstanding rule that an unknown constant might have the same type as the value on the other side of the operator using it is now applied when considering polymorphic operators, not only for simple operator matches.

    Original release occurrence · 9.2.0/changes/068

  • Warn about creating casts to or from domain types Features

    Warn about creating casts to or from domain types (Robert Haas)

    Such casts have no effect.

    Original release occurrence · 9.2.0/changes/069

  • When a row fails a CHECK or NOT NULL constraint, show the row's contents as error detail Features

    When a row fails a CHECK or NOT NULL constraint, show the row's contents as error detail (Jan Kundrát)

    This should make it easier to identify which row is problematic when an insert or update is processing many rows.

    Original release occurrence · 9.2.0/changes/070

  • Provide more reliable operation during concurrent DDL Features

    Provide more reliable operation during concurrent DDL (Robert Haas, Noah Misch)

    This change adds locking that should eliminate "cache lookup failed" errors in many scenarios. Also, it is no longer possible to add relations to a schema that is being concurrently dropped, a scenario that formerly led to inconsistent system catalog contents.

    Original release occurrence · 9.2.0/changes/071

  • Add CONCURRENTLY option to DROP INDEX Features

    Add CONCURRENTLY option to DROP INDEX (Simon Riggs)

    This allows index removal without blocking other sessions.

    Original release occurrence · 9.2.0/changes/072

  • Allow foreign data wrappers to have per-column options Features

    Allow foreign data wrappers to have per-column options (Shigeru Hanada)

    Original release occurrence · 9.2.0/changes/073

  • Improve pretty-printing of view definitions Features

    Improve pretty-printing of view definitions (Andrew Dunstan)

    Original release occurrence · 9.2.0/changes/074

  • Allow CHECK constraints to be declared NOT VALID Features

    Allow CHECK constraints to be declared NOT VALID (Álvaro Herrera)

    Adding a NOT VALID constraint does not cause the table to be scanned to verify that existing rows meet the constraint. Subsequently, newly added or updated rows are checked. Such constraints are ignored by the planner when considering constraint_exclusion, since it is not certain that all rows meet the constraint.

    The new ALTER TABLE VALIDATE command allows NOT VALID constraints to be checked for existing rows, after which they are converted into ordinary constraints.

    Original release occurrence · 9.2.0/changes/075

  • Allow CHECK constraints to be declared NO INHERIT Features

    Allow CHECK constraints to be declared NO INHERIT (Nikhil Sontakke, Alex Hunsaker, Álvaro Herrera)

    This makes them enforceable only on the parent table, not on child tables.

    Original release occurrence · 9.2.0/changes/076

  • Add the ability to rename constraints Features

    Add the ability to rename constraints (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/077

  • Reduce need to rebuild tables and indexes for certain ALTER TABLE ... ALTER COLUMN TYPE operations Features

    Reduce need to rebuild tables and indexes for certain ALTER TABLE ... ALTER COLUMN TYPE operations (Noah Misch)

    Increasing the length limit for a varchar or varbit column, or removing the limit altogether, no longer requires a table rewrite. Similarly, increasing the allowable precision of a numeric column, or changing a column from constrained numeric to unconstrained numeric, no longer requires a table rewrite. Table rewrites are also avoided in similar cases involving the interval, timestamp, and timestamptz types.

    Original release occurrence · 9.2.0/changes/078

  • Avoid having ALTER TABLE revalidate foreign key constraints in some cases where it is not necessary Features

    Avoid having ALTER TABLE revalidate foreign key constraints in some cases where it is not necessary (Noah Misch)

    Original release occurrence · 9.2.0/changes/079

  • Add IF EXISTS options to some ALTER commands Features

    Add IF EXISTS options to some ALTER commands (Pavel Stehule)

    For example, ALTER FOREIGN TABLE IF EXISTS foo RENAME TO bar.

    Original release occurrence · 9.2.0/changes/080

  • Add ALTER FOREIGN DATA WRAPPER ... RENAME and ALTER SERVER ... RENAME Features

    Add ALTER FOREIGN DATA WRAPPER ... RENAME and ALTER SERVER ... RENAME (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/081

  • Add ALTER DOMAIN ... RENAME Features

    Add ALTER DOMAIN ... RENAME (Peter Eisentraut)

    You could already rename domains using ALTER TYPE.

    Original release occurrence · 9.2.0/changes/082

  • Throw an error for ALTER DOMAIN ... DROP CONSTRAINT on a nonexistent constraint Features

    Throw an error for ALTER DOMAIN ... DROP CONSTRAINT on a nonexistent constraint (Peter Eisentraut)

    An IF EXISTS option has been added to provide the previous behavior.

    Original release occurrence · 9.2.0/changes/083

  • Allow CREATE TABLE (LIKE ...) from foreign tables, views, and composite types Features

    Allow CREATE TABLE (LIKE ...) from foreign tables, views, and composite types (Peter Eisentraut)

    For example, this allows a table to be created whose schema matches a view.

    Original release occurrence · 9.2.0/changes/084

  • Fix CREATE TABLE (LIKE ...) to avoid index name conflicts when copying index comments Bug fixes

    Fix CREATE TABLE (LIKE ...) to avoid index name conflicts when copying index comments (Tom Lane)

    Original release occurrence · 9.2.0/changes/085

  • Fix CREATE TABLE ... AS EXECUTE to handle WITH NO DATA and column name specifications Bug fixes

    Fix CREATE TABLE ... AS EXECUTE to handle WITH NO DATA and column name specifications (Tom Lane)

    Original release occurrence · 9.2.0/changes/086

  • Add a security_barrier option for views Features

    Add a security_barrier option for views (KaiGai Kohei, Robert Haas)

    This option prevents optimizations that might allow view-protected data to be exposed to users, for example pushing a clause involving an insecure function into the WHERE clause of the view. Such views can be expected to perform more poorly than ordinary views.

    Original release occurrence · 9.2.0/changes/087

  • Add a new LEAKPROOF function attribute to mark functions that can safely be pushed down into security_barrier views Features

    Add a new LEAKPROOF function attribute to mark functions that can safely be pushed down into security_barrier views (KaiGai Kohei)

    Original release occurrence · 9.2.0/changes/088

  • Add support for privileges on data types Features

    Add support for privileges on data types (Peter Eisentraut)

    This adds support for the SQL-conforming USAGE privilege on types and domains. The intent is to be able to restrict which users can create dependencies on types, since such dependencies limit the owner's ability to alter the type.

    Original release occurrence · 9.2.0/changes/089

  • Check for INSERT privileges in SELECT INTO / CREATE TABLE AS Features

    Check for INSERT privileges in SELECT INTO / CREATE TABLE AS (KaiGai Kohei)

    Because the object is being created by SELECT INTO or CREATE TABLE AS, the creator would ordinarily have insert permissions; but there are corner cases where this is not true, such as when ALTER DEFAULT PRIVILEGES has removed such permissions.

    Original release occurrence · 9.2.0/changes/090

  • Allow VACUUM to more easily skip pages that cannot be locked Features

    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" waiting for other sessions.

    Original release occurrence · 9.2.0/changes/091

  • Make EXPLAIN (BUFFERS) count blocks dirtied and written Features

    Make EXPLAIN (BUFFERS) count blocks dirtied and written (Robert Haas)

    Original release occurrence · 9.2.0/changes/092

  • Make EXPLAIN ANALYZE report the number of rows rejected by filter steps Features

    Make EXPLAIN ANALYZE report the number of rows rejected by filter steps (Marko Tiikkaja)

    Original release occurrence · 9.2.0/changes/093

  • Allow EXPLAIN ANALYZE to avoid timing overhead when time values are not wanted Features

    Allow EXPLAIN ANALYZE to avoid timing overhead when time values are not wanted (Tomas Vondra)

    This is accomplished by setting the new TIMING option to FALSE.

    Original release occurrence · 9.2.0/changes/094

  • Add support for range data types Features

    Add support for range data types (Jeff Davis, Tom Lane, Alexander Korotkov)

    A range data type stores a lower and upper bound belonging to its base data type. It supports operations like contains, overlaps, and intersection.

    Original release occurrence · 9.2.0/changes/095

  • Add a JSON data type Features

    Add a JSON data type (Robert Haas)

    This type stores JSON (JavaScript Object Notation) data with proper validation.

    Original release occurrence · 9.2.0/changes/096

  • Add array_to_json() and row_to_json() Features

    Add array_to_json() and row_to_json() (Andrew Dunstan)

    Original release occurrence · 9.2.0/changes/097

  • Add a SMALLSERIAL data type Features

    Add a SMALLSERIAL data type (Mike Pultz)

    This is like SERIAL, except it stores the sequence in a two-byte integer column (int2).

    Original release occurrence · 9.2.0/changes/098

  • Allow domains to be declared NOT VALID Features

    Allow domains to be declared NOT VALID (Álvaro Herrera)

    This option can be set at domain creation time, or via ALTER DOMAIN ... ADD CONSTRAINT ... NOT VALID. ALTER DOMAIN ... VALIDATE CONSTRAINT fully validates the constraint.

    Original release occurrence · 9.2.0/changes/099

  • Support more locale-specific formatting options for the money data type Features

    Support more locale-specific formatting options for the money data type (Tom Lane)

    Specifically, honor all the POSIX options for ordering of the value, sign, and currency symbol in monetary output. Also, make sure that the thousands separator is only inserted to the left of the decimal point, as required by POSIX.

    Original release occurrence · 9.2.0/changes/100

  • Add bitwise "and", "or", and "not" operators for the macaddr data type Features

    Add bitwise "and", "or", and "not" operators for the macaddr data type (Brendan Jurd)

    Original release occurrence · 9.2.0/changes/101

  • Allow xpath() to return a single-element XML array when supplied a scalar value Features

    Allow xpath() to return a single-element XML array when supplied a scalar value (Florian Pflug)

    Previously, it returned an empty array. This change will also cause xpath_exists() to return true, not false, for such expressions.

    Original release occurrence · 9.2.0/changes/102

  • Improve XML error handling to be more robust Features

    Improve XML error handling to be more robust (Florian Pflug)

    Original release occurrence · 9.2.0/changes/103

  • Allow non-superusers to use pg_cancel_backend() and pg_terminate_backend() on other sessions belonging to the same user Features

    Allow non-superusers to use pg_cancel_backend() and pg_terminate_backend() on other sessions belonging to the same user (Magnus Hagander, Josh Kupershmidt, Dan Farina)

    Previously only superusers were allowed to use these functions.

    Original release occurrence · 9.2.0/changes/104

  • Allow importing and exporting of transaction snapshots Features

    Allow importing and exporting of transaction snapshots (Joachim Wieland, Tom Lane)

    This allows multiple transactions to share identical views of the database state. Snapshots are exported via pg_export_snapshot() and imported via SET TRANSACTION SNAPSHOT. Only snapshots from currently-running transactions can be imported.

    Original release occurrence · 9.2.0/changes/105

  • Support COLLATION FOR on expressions Features

    Support COLLATION FOR on expressions (Peter Eisentraut)

    This returns a string representing the collation of the expression.

    Original release occurrence · 9.2.0/changes/106

  • Add pg_opfamily_is_visible() Features

    Add pg_opfamily_is_visible() (Josh Kupershmidt)

    Original release occurrence · 9.2.0/changes/107

  • Add a numeric variant of pg_size_pretty() for use with pg_xlog_location_diff() Features

    Add a numeric variant of pg_size_pretty() for use with pg_xlog_location_diff() (Fujii Masao)

    Original release occurrence · 9.2.0/changes/108

  • Add a pg_trigger_depth() function Features

    Add a pg_trigger_depth() function (Kevin Grittner)

    This reports the current trigger call depth.

    Original release occurrence · 9.2.0/changes/109

  • Allow string_agg() to process bytea values Features

    Allow string_agg() to process bytea values (Pavel Stehule)

    Original release occurrence · 9.2.0/changes/110

  • Fix regular expressions in which a back-reference occurs within a larger quantified subexpression Bug fixes

    Fix regular expressions in which a back-reference occurs within a larger quantified subexpression (Tom Lane)

    For example, ^(\w+)( \1)+$. Previous releases did not check that the back-reference actually matched the first occurrence.

    Original release occurrence · 9.2.0/changes/111

  • Add information schema views role_udt_grants, udt_privileges, and user_defined_types Features

    Add information schema views role_udt_grants, udt_privileges, and user_defined_types (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/112

  • Add composite-type attributes to the information schema element_types view Features

    Add composite-type attributes to the information schema element_types view (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/113

  • Implement interval_type columns in the information schema Features

    Implement interval_type columns in the information schema (Peter Eisentraut)

    Formerly these columns read as nulls.

    Original release occurrence · 9.2.0/changes/114

  • Implement collation-related columns in the information schema attributes, columns, domains, and element_types views Features

    Implement collation-related columns in the information schema attributes, columns, domains, and element_types views (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/115

  • Implement the with_hierarchy column in the information schema table_privileges view Features

    Implement the with_hierarchy column in the information schema table_privileges view (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/116

  • Add display of sequence USAGE privileges to information schema Features

    Add display of sequence USAGE privileges to information schema (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/117

  • Make the information schema show default privileges Features

    Make the information schema show default privileges (Peter Eisentraut)

    Previously, non-empty default permissions were not represented in the views.

    Original release occurrence · 9.2.0/changes/118

  • Allow the PL/pgSQL OPEN cursor command to supply parameters by name Features

    Allow the PL/pgSQL OPEN cursor command to supply parameters by name (Yeb Havinga)

    Original release occurrence · 9.2.0/changes/119

  • Add a GET STACKED DIAGNOSTICS PL/pgSQL command to retrieve exception info Features

    Add a GET STACKED DIAGNOSTICS PL/pgSQL command to retrieve exception info (Pavel Stehule)

    Original release occurrence · 9.2.0/changes/120

  • Speed up PL/pgSQL array assignment by caching type information Performance

    Speed up PL/pgSQL array assignment by caching type information (Pavel Stehule)

    Original release occurrence · 9.2.0/changes/121

  • Improve performance and memory consumption for long chains of ELSIF clauses Performance

    Improve performance and memory consumption for long chains of ELSIF clauses (Tom Lane)

    Original release occurrence · 9.2.0/changes/122

  • Output the function signature, not just the name, in PL/pgSQL error messages Features

    Output the function signature, not just the name, in PL/pgSQL error messages (Pavel Stehule)

    Original release occurrence · 9.2.0/changes/123

  • Add PL/Python SPI cursor support Features

    Add PL/Python SPI cursor support (Jan Urbanski)

    This allows PL/Python to read partial result sets.

    Original release occurrence · 9.2.0/changes/124

  • Add result metadata functions to PL/Python Features

    Add result metadata functions to PL/Python (Peter Eisentraut)

    Specifically, this adds result object functions .colnames, .coltypes, and .coltypmods.

    Original release occurrence · 9.2.0/changes/125

  • Remove support for Python 2.2 Features

    Remove support for Python 2.2 (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/126

  • Allow SQL-language functions to reference parameters by name Features

    Allow SQL-language functions to reference parameters by name (Matthew Draper)

    To use this, simply name the function arguments and then reference the argument names in the SQL function body.

    Original release occurrence · 9.2.0/changes/127

  • Add initdb options --auth-local and --auth-host Features

    Add initdb options --auth-local and --auth-host (Peter Eisentraut)

    This allows separate control of local and host pg_hba.conf authentication settings. --auth still controls both.

    Original release occurrence · 9.2.0/changes/128

  • Add --replication/--no-replication flags to createuser to control replication permission Features

    Add --replication/--no-replication flags to createuser to control replication permission (Fujii Masao)

    Original release occurrence · 9.2.0/changes/129

  • Add the --if-exists option to dropdb and dropuser Features

    Add the --if-exists option to dropdb and dropuser (Josh Kupershmidt)

    Original release occurrence · 9.2.0/changes/130

  • 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 Features

    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)

    Original release occurrence · 9.2.0/changes/131

  • Add a display mode to auto-expand output based on the display width Features

    Add a display mode to auto-expand output based on the display width (Peter Eisentraut)

    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.

    Original release occurrence · 9.2.0/changes/132

  • Allow inclusion of a script file that is named relative to the directory of the file from which it was invoked Features

    Allow inclusion of a script file that is named relative to the directory of the file from which it was invoked (Gurjeet Singh)

    This is done with a new command \ir.

    Original release occurrence · 9.2.0/changes/133

  • Add support for non-ASCII characters in psql variable names Features

    Add support for non-ASCII characters in psql variable names (Tom Lane)

    Original release occurrence · 9.2.0/changes/134

  • Add support for major-version-specific .psqlrc files Features

    Add support for major-version-specific .psqlrc files (Bruce Momjian)

    psql already supported minor-version-specific .psqlrc files.

    Original release occurrence · 9.2.0/changes/135

  • Provide environment variable overrides for psql history and startup file locations Features

    Provide environment variable overrides for psql history and startup file locations (Andrew Dunstan)

    PSQL_HISTORY and PSQLRC now determine these file names if set.

    Original release occurrence · 9.2.0/changes/136

  • Add a \setenv command to modify the environment variables passed to child processes Features

    Add a \setenv command to modify the environment variables passed to child processes (Andrew Dunstan)

    Original release occurrence · 9.2.0/changes/137

  • Name psql's temporary editor files with a .sql extension Features

    Name psql's temporary editor files with a .sql extension (Peter Eisentraut)

    This allows extension-sensitive editors to select the right mode.

    Original release occurrence · 9.2.0/changes/138

  • Allow psql to use zero-byte field and record separators Features

    Allow psql to use zero-byte field and record separators (Peter Eisentraut)

    Various shell tools use zero-byte (NUL) separators, e.g. find.

    Original release occurrence · 9.2.0/changes/139

  • Make the \timing option report times for failed queries Features

    Make the \timing option report times for failed queries (Magnus Hagander)

    Previously times were reported only for successful queries.

    Original release occurrence · 9.2.0/changes/140

  • Unify and tighten psql's treatment of \copy and SQL COPY Features

    Unify and tighten psql's treatment of \copy and SQL COPY (Noah Misch)

    This fix makes failure behavior more predictable and honors \set ON_ERROR_ROLLBACK.

    Original release occurrence · 9.2.0/changes/141

  • Make \d on a sequence show the table/column name owning it Features

    Make \d on a sequence show the table/column name owning it (Magnus Hagander)

    Original release occurrence · 9.2.0/changes/142

  • Show statistics target for columns in \d+ Features

    Show statistics target for columns in \d+ (Magnus Hagander)

    Original release occurrence · 9.2.0/changes/143

  • Show role password expiration dates in \du Features

    Show role password expiration dates in \du (Fabrízio de Royes Mello)

    Original release occurrence · 9.2.0/changes/144

  • Display comments for casts, conversions, domains, and languages Features

    Display comments for casts, conversions, domains, and languages (Josh Kupershmidt)

    These are included in the output of \dC+, \dc+, \dD+, and \dL respectively.

    Original release occurrence · 9.2.0/changes/145

  • Display comments for SQL/MED objects Features

    Display comments for SQL/MED objects (Josh Kupershmidt)

    These are included in the output of \des+, \det+, and \dew+ for foreign servers, foreign tables, and foreign data wrappers respectively.

    Original release occurrence · 9.2.0/changes/146

  • Change \dd to display comments only for object types without their own backslash command Features

    Change \dd to display comments only for object types without their own backslash command (Josh Kupershmidt)

    Original release occurrence · 9.2.0/changes/147

  • In psql tab completion, complete SQL keywords in either upper or lower case according to the new COMP_KEYWORD_CASE setting Features

    In psql tab completion, complete SQL keywords in either upper or lower case according to the new COMP_KEYWORD_CASE setting (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/148

  • Add tab completion support for EXECUTE Features

    Add tab completion support for EXECUTE (Andreas Karlsson)

    Original release occurrence · 9.2.0/changes/149

  • Allow tab completion of role references in GRANT/REVOKE Features

    Allow tab completion of role references in GRANT/REVOKE (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/150

  • Allow tab completion of file names to supply quotes, when necessary Features

    Allow tab completion of file names to supply quotes, when necessary (Noah Misch)

    Original release occurrence · 9.2.0/changes/151

  • Change tab completion support for TABLE to also include views Features

    Change tab completion support for TABLE to also include views (Magnus Hagander)

    Original release occurrence · 9.2.0/changes/152

  • Add an --exclude-table-data option to pg_dump Features

    Add an --exclude-table-data option to pg_dump (Andrew Dunstan)

    This allows dumping of a table's definition but not its data, on a per-table basis.

    Original release occurrence · 9.2.0/changes/153

  • Add a --section option to pg_dump and pg_restore Features

    Add a --section option to pg_dump and pg_restore (Andrew Dunstan)

    Valid values are pre-data, data, and post-data. The option can be given more than once to select two or more sections.

    Original release occurrence · 9.2.0/changes/154

  • Make pg_dumpall dump all roles first, then all configuration settings on roles Features

    Make pg_dumpall dump all roles first, then all configuration settings on roles (Phil Sorber)

    This allows a role's configuration settings to mention other roles without generating an error.

    Original release occurrence · 9.2.0/changes/155

  • Allow pg_dumpall to avoid errors if the postgres database is missing in the new cluster Features

    Allow pg_dumpall to avoid errors if the postgres database is missing in the new cluster (Robert Haas)

    Original release occurrence · 9.2.0/changes/156

  • Dump foreign server user mappings in user name order Features

    Dump foreign server user mappings in user name order (Peter Eisentraut)

    This helps produce deterministic dump files.

    Original release occurrence · 9.2.0/changes/157

  • Dump operators in a predictable order Features

    Dump operators in a predictable order (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/158

  • Tighten rules for when extension configuration tables are dumped by pg_dump Features

    Tighten rules for when extension configuration tables are dumped by pg_dump (Tom Lane)

    Original release occurrence · 9.2.0/changes/159

  • Make pg_dump emit more useful dependency information Features

    Make pg_dump emit more useful dependency information (Tom Lane)

    The dependency links included in archive-format dumps were formerly of very limited use, because they frequently referenced objects that appeared nowhere in the dump. Now they represent actual dependencies (possibly indirect) among the dumped objects.

    Original release occurrence · 9.2.0/changes/160

  • Improve pg_dump's performance when dumping many database objects Performance

    Improve pg_dump's performance when dumping many database objects (Tom Lane)

    Original release occurrence · 9.2.0/changes/161

  • Allow libpq connection strings to have the format of a URI Features

    Allow libpq connection strings to have the format of a URI (Alexander Shulgin)

    The syntax begins with postgres://. This can allow applications to avoid implementing their own parser for URIs representing database connections.

    Original release occurrence · 9.2.0/changes/162

  • Add a connection option to disable SSL compression Features

    Add a connection option to disable SSL compression (Laurenz Albe)

    This can be used to remove the overhead of SSL compression on fast networks.

    Original release occurrence · 9.2.0/changes/163

  • Add a single-row processing mode for better handling of large result sets Features

    Add a single-row processing mode for better handling of large result sets (Kyotaro Horiguchi, Marko Kreen)

    Previously, libpq always collected the entire query result in memory before passing it back to the application.

    Original release occurrence · 9.2.0/changes/164

  • Add const qualifiers to the declarations of the functions PQconnectdbParams, PQconnectStartParams, and PQpingParams Features

    Add const qualifiers to the declarations of the functions PQconnectdbParams, PQconnectStartParams, and PQpingParams (Lionel Elie Mamane)

    Original release occurrence · 9.2.0/changes/165

  • Allow the .pgpass file to include escaped characters in the password field Features

    Allow the .pgpass file to include escaped characters in the password field (Robert Haas)

    Original release occurrence · 9.2.0/changes/166

  • Make library functions use abort() instead of exit() when it is necessary to terminate the process Features

    Make library functions use abort() instead of exit() when it is necessary to terminate the process (Peter Eisentraut)

    This choice does not interfere with the normal exit codes used by the program, and generates a signal that can be caught by the caller.

    Original release occurrence · 9.2.0/changes/167

  • Remove dead ports Features

    Remove dead ports (Peter Eisentraut)

    The following platforms are no longer supported: dgux, nextstep, sunos4, svr4, ultrix4, univel, bsdi.

    Original release occurrence · 9.2.0/changes/168

  • Add support for building with MS Visual Studio 2010 Features

    Add support for building with MS Visual Studio 2010 (Brar Piening)

    Original release occurrence · 9.2.0/changes/169

  • Enable compiling with the MinGW-w64 32-bit compiler Features

    Enable compiling with the MinGW-w64 32-bit compiler (Lars Kanis)

    Original release occurrence · 9.2.0/changes/170

  • Install plpgsql.h into include/server during installation Features

    Install plpgsql.h into include/server during installation (Heikki Linnakangas)

    Original release occurrence · 9.2.0/changes/171

  • Improve the latch facility to include detection of postmaster death Features

    Improve the latch facility to include detection of postmaster death (Peter Geoghegan, Heikki Linnakangas, Tom Lane)

    This eliminates one of the main reasons that background processes formerly had to wake up to poll for events.

    Original release occurrence · 9.2.0/changes/172

  • Use C flexible array members, where supported Features

    Use C flexible array members, where supported (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/173

  • Improve the concurrent transaction regression tests (isolationtester) Features

    Improve the concurrent transaction regression tests (isolationtester) (Noah Misch)

    Original release occurrence · 9.2.0/changes/174

  • Modify thread_test to create its test files in the current directory, rather than /tmp Features

    Modify thread_test to create its test files in the current directory, rather than /tmp (Bruce Momjian)

    Original release occurrence · 9.2.0/changes/175

  • Improve flex and bison warning and error reporting Features

    Improve flex and bison warning and error reporting (Tom Lane)

    Original release occurrence · 9.2.0/changes/176

  • Add memory barrier support Features

    Add memory barrier support (Robert Haas)

    This is currently unused.

    Original release occurrence · 9.2.0/changes/177

  • Modify pgindent to use a typedef file Features

    Modify pgindent to use a typedef file (Bruce Momjian)

    Original release occurrence · 9.2.0/changes/178

  • Add a hook for processing messages due to be sent to the server log Features

    Add a hook for processing messages due to be sent to the server log (Martin Pihlak)

    Original release occurrence · 9.2.0/changes/179

  • Add object access hooks for DROP commands Features

    Add object access hooks for DROP commands (KaiGai Kohei)

    Original release occurrence · 9.2.0/changes/180

  • Centralize DROP handling for some object types Features

    Centralize DROP handling for some object types (KaiGai Kohei)

    Original release occurrence · 9.2.0/changes/181

  • Add a pg_upgrade test suite Features

    Add a pg_upgrade test suite (Peter Eisentraut)

    Original release occurrence · 9.2.0/changes/182

  • Sync regular expression code with TCL 8.5.11 and improve internal processing Features

    Sync regular expression code with TCL 8.5.11 and improve internal processing (Tom Lane)

    Original release occurrence · 9.2.0/changes/183

  • Move CRC tables to libpgport, and provide them in a separate include file Features

    Move CRC tables to libpgport, and provide them in a separate include file (Daniel Farina)

    Original release occurrence · 9.2.0/changes/184

  • Add options to git_changelog for use in major release note creation Features

    Add options to git_changelog for use in major release note creation (Bruce Momjian)

    Original release occurrence · 9.2.0/changes/185

  • Support Linux's /proc/self/oom_score_adj API Features

    Support Linux's /proc/self/oom_score_adj API (Tom Lane)

    Original release occurrence · 9.2.0/changes/186

  • Improve efficiency of dblink by using libpq's new single-row processing mode Features

    Improve efficiency of dblink by using libpq's new single-row processing mode (Kyotaro Horiguchi, Marko Kreen)

    This improvement does not apply to dblink_send_query()/dblink_get_result().

    Original release occurrence · 9.2.0/changes/187

  • Support force_not_null option in file_fdw Features

    Support force_not_null option in file_fdw (Shigeru Hanada)

    Original release occurrence · 9.2.0/changes/188

  • Implement dry-run mode for pg_archivecleanup Features

    Implement dry-run mode for pg_archivecleanup (Gabriele Bartolini)

    This only outputs the names of files to be deleted.

    Original release occurrence · 9.2.0/changes/189

  • Add new pgbench switches --unlogged-tables, --tablespace, and --index-tablespace Features

    Add new pgbench switches --unlogged-tables, --tablespace, and --index-tablespace (Robert Haas)

    Original release occurrence · 9.2.0/changes/190

  • Change pg_test_fsync to test for a fixed amount of time, rather than a fixed number of cycles Bug fixes

    Change pg_test_fsync to test for a fixed amount of time, rather than a fixed number of cycles (Bruce Momjian)

    The -o/cycles option was removed, and -s/seconds added.

    Original release occurrence · 9.2.0/changes/191

  • Add a pg_test_timing utility to measure clock monotonicity and timing overhead Features

    Add a pg_test_timing utility to measure clock monotonicity and timing overhead (Ants Aasma, Greg Smith)

    Original release occurrence · 9.2.0/changes/192

  • Add a tcn (triggered change notification) module to generate NOTIFY events on table changes Features

    Add a tcn (triggered change notification) module to generate NOTIFY events on table changes (Kevin Grittner)

    Original release occurrence · 9.2.0/changes/193

  • Adjust pg_upgrade environment variables Features

    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.

    Original release occurrence · 9.2.0/changes/194

  • Overhaul pg_upgrade logging and failure reporting Features

    Overhaul pg_upgrade logging and failure reporting (Bruce Momjian)

    Create four append-only log files, and delete them on success. Add -r/--retain option to unconditionally retain these files. Also remove pg_upgrade options -g/-G/-l options as unnecessary, and tighten log file permissions.

    Original release occurrence · 9.2.0/changes/195

  • Make pg_upgrade create a script to incrementally generate more accurate optimizer statistics Features

    Make 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.

    Original release occurrence · 9.2.0/changes/196

  • Allow pg_upgrade to upgrade an old cluster that does not have a postgres database Features

    Allow pg_upgrade to upgrade an old cluster that does not have a postgres database (Bruce Momjian)

    Original release occurrence · 9.2.0/changes/197

  • Allow pg_upgrade to handle cases where some old or new databases are missing, as long as they are empty Features

    Allow pg_upgrade to handle cases where some old or new databases are missing, as long as they are empty (Bruce Momjian)

    Original release occurrence · 9.2.0/changes/198

  • Allow pg_upgrade to handle configuration-only directory installations Features

    Allow pg_upgrade to handle configuration-only directory installations (Bruce Momjian)

    Original release occurrence · 9.2.0/changes/199

  • In pg_upgrade, add -o/-O options to pass parameters to the servers Features

    In pg_upgrade, add -o/-O options to pass parameters to the servers (Bruce Momjian)

    This is useful for configuration-only directory installs.

    Original release occurrence · 9.2.0/changes/200

  • Change pg_upgrade to use port 50432 by default Features

    Change pg_upgrade to use port 50432 by default (Bruce Momjian)

    This helps avoid unintended client connections during the upgrade.

    Original release occurrence · 9.2.0/changes/201

  • Reduce cluster locking in pg_upgrade Features

    Reduce cluster locking in pg_upgrade (Bruce Momjian)

    Specifically, only lock the old cluster if link mode is used, and do it right after the schema is restored.

    Original release occurrence · 9.2.0/changes/202

  • Allow pg_stat_statements to aggregate similar queries via SQL text normalization Features

    Allow pg_stat_statements to aggregate similar queries via SQL text normalization (Peter Geoghegan, Tom Lane)

    Users with applications that use non-parameterized SQL will now be able to monitor query performance without detailed log analysis.

    Original release occurrence · 9.2.0/changes/203

  • Add dirtied and written block counts and read/write times to pg_stat_statements Features

    Add dirtied and written block counts and read/write times to pg_stat_statements (Robert Haas, Ants Aasma)

    Original release occurrence · 9.2.0/changes/204

  • Prevent pg_stat_statements from double-counting PREPARE and EXECUTE commands Features

    Prevent pg_stat_statements from double-counting PREPARE and EXECUTE commands (Tom Lane)

    Original release occurrence · 9.2.0/changes/205

  • Support SECURITY LABEL on global objects Features

    Support SECURITY LABEL on global objects (KaiGai Kohei, Robert Haas)

    Specifically, add security labels to databases, tablespaces, and roles.

    Original release occurrence · 9.2.0/changes/206

  • Allow sepgsql to honor database labels Features

    Allow sepgsql to honor database labels (KaiGai Kohei)

    Original release occurrence · 9.2.0/changes/207

  • Perform sepgsql permission checks during the creation of various objects Features

    Perform sepgsql permission checks during the creation of various objects (KaiGai Kohei)

    Original release occurrence · 9.2.0/changes/208

  • Add sepgsql_setcon() and related functions to control the sepgsql security domain Features

    Add sepgsql_setcon() and related functions to control the sepgsql security domain (KaiGai Kohei)

    Original release occurrence · 9.2.0/changes/209

  • Add a user space access cache to sepgsql to improve performance Performance

    Add a user space access cache to sepgsql to improve performance (KaiGai Kohei)

    Original release occurrence · 9.2.0/changes/210

  • Add a rule to optionally build HTML documentation using the stylesheet from the website Features

    Add a rule to optionally build HTML documentation using the stylesheet from the website (Magnus Hagander)

    Use gmake STYLE=website draft.

    Original release occurrence · 9.2.0/changes/211

  • Improve EXPLAIN documentation Features

    Improve EXPLAIN documentation (Tom Lane)

    Original release occurrence · 9.2.0/changes/212

  • Document that user/database names are preserved with double-quoting by command-line tools like vacuumdb Features

    Document that user/database names are preserved with double-quoting by command-line tools like vacuumdb (Bruce Momjian)

    Original release occurrence · 9.2.0/changes/213

  • Document the actual string returned by the client for MD5 authentication Features

    Document the actual string returned by the client for MD5 authentication (Cyan Ogilvie)

    Original release occurrence · 9.2.0/changes/214

  • Deprecate use of GLOBAL and LOCAL in CREATE TEMP TABLE Features

    Deprecate use of GLOBAL and LOCAL in CREATE TEMP TABLE (Noah Misch)

    PostgreSQL has long treated these keyword as no-ops, and continues to do so; but in future they might mean what the SQL standard says they mean, so applications should avoid using them.

    Original release occurrence · 9.2.0/changes/215

Security evidence

33 records from the official security matrix and release-note mentions. A fixed version is shown only when the security snapshot explicitly names this branch. A mention alone does not establish applicability or a new fix.

CVE-2017-7547 · pg_user_mappings view discloses passwords to users lacking server privileges CVSS 8.5
CVE-2017-7546 · empty password accepted in some authentication methods CVSS 8.1

Fixed in this branch: 9.2.22. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Release-note mentions:

CVE-2017-7486 · pg_user_mappings view discloses foreign server passwords CVSS 8.5
CVE-2017-7484 · selectivity estimators bypass SELECT privilege checks CVSS 4.3

Fixed in this branch: 9.2.21. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N

Release-note mentions:

CVE-2017-12172 · Start scripts permit database administrator to modify root-owned files CVSS 8.4

Fixed in this branch: 9.2.24. Component: contrib module.

Official affected-branch entry: 9.2.

AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:H

Release-note mentions:

CVE-2016-7048 · Interactive installer downloads software over plain HTTP, then executes it CVSS 7.5

Fixed in this branch: 9.2.19. Component: packaging.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H

CVE-2016-5424 · Exceptional database and role names could enable escalation to superuser CVSS 8.5

Fixed in this branch: 9.2.18. Component: client.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H

Release-note mentions:

CVE-2016-5423 · Certain nested CASE/WHEN expressions can crash server CVSS 4.3

Fixed in this branch: 9.2.18. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N

Release-note mentions:

CVE-2016-0773 · Unchecked regex can crash the server CVSS 6.5

Fixed in this branch: 9.2.15. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H

Release-note mentions:

CVE-2016-0766 · CVE-2016-0766

No fixed version for this branch is recorded.

Release-note mentions:

CVE-2015-7499 · CVE-2015-7499

No fixed version for this branch is recorded.

Release-note mentions:

CVE-2015-5288 · Memory leak in crypt() function. CVSS 3.1

Fixed in this branch: 9.2.14. Component: contrib module.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N

Release-note mentions:

CVE-2015-3167 · pgcrypto has multiple error messages for decryption with an incorrect key. CVSS 3.7

Fixed in this branch: 9.2.11. Component: contrib module.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N

Release-note mentions:

CVE-2015-3166 · Unanticipated errors from the standard library. CVSS 5.6

Fixed in this branch: 9.2.11. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L

Release-note mentions:

CVE-2015-3165 · Double "free" after authentication timeout CVSS 7.5

Fixed in this branch: 9.2.11. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Release-note mentions:

CVE-2015-0244 · An error in extended protocol message reading. CVSS 8.1

Fixed in this branch: 9.2.10. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Release-note mentions:

CVE-2015-0243 · Memory errors in functions in the pgcrypto extension. CVSS 6.5

Fixed in this branch: 9.2.10. Component: contrib module.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H

Release-note mentions:

CVE-2015-0242 · Buffer overrun in replacement printf family of functions. CVSS 4.2

Fixed in this branch: 9.2.10. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N

Release-note mentions:

CVE-2015-0241 · Buffer overruns in "to_char" functions. CVSS 4.2

Fixed in this branch: 9.2.10. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N

Release-note mentions:

CVE-2014-8161 · Constraint violation errors can cause display of values in columns which the user would not normally have rights to see. CVSS 3.1

Fixed in this branch: 9.2.10. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N

Release-note mentions:

CVE-2014-0067 · Unauthenticated users may gain access to the database server during "make check".. CVSS 7.0
CVE-2014-0066 · Potential null pointer dereference crash when crypt(3) returns NULL. CVSS 0.0

Fixed in this branch: 9.2.7. Component: contrib module.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:N

Release-note mentions:

CVE-2014-0065 · Potential buffer overruns of fixed-size buffers. CVSS 0.0

Fixed in this branch: 9.2.7. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:N

Release-note mentions:

CVE-2014-0064 · Potential buffer overruns due to integer overflow in size calculations. CVSS 6.5

Fixed in this branch: 9.2.7. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H

Release-note mentions:

CVE-2014-0063 · Potential buffer overruns in datetime input/output. CVSS 4.3

Fixed in this branch: 9.2.7. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N

Release-note mentions:

CVE-2014-0062 · Race condition in CREATE INDEX allows for privilege escalation. CVSS 8.8

Fixed in this branch: 9.2.7. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Release-note mentions:

CVE-2014-0061 · Privilege escalation via calls to validator functions. CVSS 7.5

Fixed in this branch: 9.2.7. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

Release-note mentions:

CVE-2014-0060 · SET ROLE bypasses lack of ADMIN OPTION. CVSS 3.1

Fixed in this branch: 9.2.7. Component: core server.

Official affected-branch entry: 9.2.

AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L

Release-note mentions:

CVE-2013-1901 · An unprivileged user can run commands that could interfere with in-progress backups.

Fixed in this branch: 9.2.4.

Official affected-branch entry: 9.2.

Release-note mentions:

CVE-2013-1900 · Random numbers generated by contrib/pgcrypto functions may be easy for another database user to guess

Fixed in this branch: 9.2.4.

Official affected-branch entry: 9.2.

Release-note mentions:

CVE-2013-1899 · A connection request containing a database name that begins with "-" may be crafted to damage or destroy files within a server's data directory

Fixed in this branch: 9.2.4.

Official affected-branch entry: 9.2.

Release-note mentions:

CVE-2013-0255 · executing enum_recv() with wrong parameters crashes server

Fixed in this branch: 9.2.3.

Official affected-branch entry: 9.2.

Release-note mentions:

CVE-2007-4772 · CVE-2007-4772

No fixed version for this branch is recorded.

Release-note mentions:

Export this branch as JSON · Compare any two indexed releases