↑↓ select ↵ open ⌫ change scope Open full search

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

DocumentationVersion comparison

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.2.15 release changes

All features, fixes, and compatibility notes in this release, with related records from other versions.

All changes in this release
All changes in this release

Includes changes after the source version through the target. A major version name means its initial release.

From PostgreSQL 9.0 onward: 17 major branches and 352 release notes. Updated 2026-09-26.

Complete release changes

9.2.15

2016-02-11

Export JSON
48changesFeatures, fixes, improvements
1releaseGrouped by release
4CVEsVulnerability IDs mentioned in these notes

9.2.15 HistoricalSupport ends 2017-11-09

Security records mentioned in this release 4 CVEs
CVEs mentioned in these notes, including possible follow-up fixes for earlier vulnerabilities
CVE / issueSeverityFixed version
CVE-2016-0773

Fix infinite loops and buffer-overrun problems in regular expressions

6.59.2.15
CVE-2016-0766

Prevent certain PL/Java parameters from being set by non-superusers

CVE-2015-7499

Add variant regression test expected-output file to match behavior of current libxml2

CVE-2007-4772

Fix regular-expression compiler to handle loops of constraint arcs

PostgreSQL 9.2.15

Migration and compatibility

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.11, see Section E.14.

SecurityFix infinite loops and buffer-overrun problems in regular expressions

Changes

Fix infinite loops and buffer-overrun problems in regular expressions (Tom Lane)

Very large character ranges in bracket expressions could cause infinite loops in some cases, and memory overwrites in other cases. (CVE-2016-0773)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsPerform an immediate shutdown if the postmaster.pid file is removed

Changes

Perform an immediate shutdown if the postmaster.pid file is removed (Tom Lane)

The postmaster now checks every minute or so that postmaster.pid is still there and still contains its own PID. If not, it performs an immediate shutdown, as though it had received SIGQUIT. The main motivation for this change is to ensure that failed buildfarm runs will get cleaned up without manual intervention; but it also serves to limit the bad effects if a DBA forcibly removes postmaster.pid and then starts a new postmaster.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsIn SERIALIZABLE transaction isolation mode, serialization anomalies could be missed due to race conditions during insertions

Changes

In SERIALIZABLE transaction isolation mode, serialization anomalies could be missed due to race conditions during insertions (Kevin Grittner, Thomas Munro)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix failure to emit appropriate WAL records when doing ALTER TABLE ... SET TABLESPACE for unlogged relations

Changes

Fix failure to emit appropriate WAL records when doing ALTER TABLE ... SET TABLESPACE for unlogged relations (Michael Paquier, Andres Freund)

Even though the relation's data is unlogged, the move must be logged or the relation will be inaccessible after a standby is promoted to master.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix possible misinitialization of unlogged relations at the end of crash recovery

Changes

Fix possible misinitialization of unlogged relations at the end of crash recovery (Andres Freund, Michael Paquier)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix ALTER COLUMN TYPE to reconstruct inherited check constraints properly

Changes

Fix ALTER COLUMN TYPE to reconstruct inherited check constraints properly (Tom Lane)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix REASSIGN OWNED to change ownership of composite types properly

Changes

Fix REASSIGN OWNED to change ownership of composite types properly (Álvaro Herrera)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix REASSIGN OWNED and ALTER OWNER to correctly update granted-permissions lists when changing owners of data types, foreign data wrappers, or foreign servers

Changes

Fix REASSIGN OWNED and ALTER OWNER to correctly update granted-permissions lists when changing owners of data types, foreign data wrappers, or foreign servers (Bruce Momjian, Álvaro Herrera)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix REASSIGN OWNED to ignore foreign user mappings, rather than fail

Changes

Fix REASSIGN OWNED to ignore foreign user mappings, rather than fail (Álvaro Herrera)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsAdd more defenses against bad planner cost estimates for GIN index scans when the index's internal statistics are very out-of-date

Changes

Add more defenses against bad planner cost estimates for GIN index scans when the index's internal statistics are very out-of-date (Tom Lane)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsMake planner cope with hypothetical GIN indexes suggested by an index advisor plug-in

Changes

Make planner cope with hypothetical GIN indexes suggested by an index advisor plug-in (Julien Rouhaud)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix dumping of whole-row Vars in ROW() and VALUES() lists

Changes

Fix dumping of whole-row Vars in ROW() and VALUES() lists (Tom Lane)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix possible internal overflow in numeric division

Changes

Fix possible internal overflow in numeric division (Dean Rasheed)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix enforcement of restrictions inside parentheses within regular expression lookahead constraints

Changes

Fix enforcement of restrictions inside parentheses within regular expression lookahead constraints (Tom Lane)

Lookahead constraints aren't allowed to contain backrefs, and parentheses within them are always considered non-capturing, according to the manual. However, the code failed to handle these cases properly inside a parenthesized subexpression, and would give unexpected results.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsConversion of regular expressions to indexscan bounds could produce incorrect bounds from regexps containing lookahead constraints

Changes

Conversion of regular expressions to indexscan bounds could produce incorrect bounds from regexps containing lookahead constraints (Tom Lane)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

SecurityFix regular-expression compiler to handle loops of constraint arcs

Changes

Fix regular-expression compiler to handle loops of constraint arcs (Tom Lane)

The code added for CVE-2007-4772 was both incomplete, in that it didn't handle loops involving more than one state, and incorrect, in that it could cause assertion failures (though there seem to be no bad consequences of that in a non-assert build). Multi-state loops would cause the compiler to run until the query was canceled or it reached the too-many-states error condition.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsImprove memory-usage accounting in regular-expression compiler

Changes

Improve memory-usage accounting in regular-expression compiler (Tom Lane)

This causes the code to emit "regular expression is too complex" errors in some cases that previously used unreasonable amounts of time and memory.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

PerformanceImprove performance of regular-expression compiler

Changes

Improve performance of regular-expression compiler (Tom Lane)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsMake %h and %r escapes in log_line_prefix work for messages emitted due to log_connections

Changes

Make %h and %r escapes in log_line_prefix work for messages emitted due to log_connections (Tom Lane)

Previously, %h/%r started to work just after a new session had emitted the "connection received" log message; now they work for that message too.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsOn Windows, ensure the shared-memory mapping handle gets closed in child processes that don't need it

Changes

On Windows, ensure the shared-memory mapping handle gets closed in child processes that don't need it (Tom Lane, Amit Kapila)

This oversight resulted in failure to recover from crashes whenever logging_collector is turned on.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix possible failure to detect socket EOF in non-blocking mode on Windows

Changes

Fix possible failure to detect socket EOF in non-blocking mode on Windows (Tom Lane)

It's not entirely clear whether this problem can happen in pre-9.5 branches, but if it did, the symptom would be that a walsender process would wait indefinitely rather than noticing a loss of connection.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesAvoid leaking a token handle during SSPI authentication

Changes

Avoid leaking a token handle during SSPI authentication (Christian Ullrich)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsIn psql, ensure that libreadline's idea of the screen size is updated when the terminal window size changes

Changes

In psql, ensure that libreadline's idea of the screen size is updated when the terminal window size changes (Merlin Moncure)

Previously, libreadline did not notice if the window was resized during query output, leading to strange behavior during later input of multiline queries.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix psql's \det command to interpret its pattern argument the same way as other \d commands with potentially schema-qualified patterns do

Changes

Fix psql's \det command to interpret its pattern argument the same way as other \d commands with potentially schema-qualified patterns do (Reece Hart)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesAvoid possible crash in psql's \c command when previous connection was via Unix socket and command specifies a new hostname and same username

Changes

Avoid possible crash in psql's \c command when previous connection was via Unix socket and command specifies a new hostname and same username (Tom Lane)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsIn pg_ctl start -w, test child process status directly rather than relying on heuristics

Changes

In pg_ctl start -w, test child process status directly rather than relying on heuristics (Tom Lane, Michael Paquier)

Previously, pg_ctl relied on an assumption that the new postmaster would always create postmaster.pid within five seconds. But that can fail on heavily-loaded systems, causing pg_ctl to report incorrectly that the postmaster failed to start.

Except on Windows, this change also means that a pg_ctl start -w done immediately after another such command will now reliably fail, whereas previously it would report success if done within two seconds of the first command.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsIn pg_ctl start -w, don't attempt to use a wildcard listen address to connect to the postmaster

Changes

In pg_ctl start -w, don't attempt to use a wildcard listen address to connect to the postmaster (Kondo Yuta)

On Windows, pg_ctl would fail to detect postmaster startup if listen_addresses is set to 0.0.0.0 or ::, because it would try to use that value verbatim as the address to connect to, which doesn't work. Instead assume that 127.0.0.1 or ::1, respectively, is the right thing to use.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsIn pg_ctl on Windows, check service status to decide where to send output, rather than checking if standard output is a terminal

Changes

In pg_ctl on Windows, check service status to decide where to send output, rather than checking if standard output is a terminal (Michael Paquier)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsIn pg_dump and pg_basebackup, adopt the GNU convention for handling tar-archive members exceeding 8GB

Changes

In pg_dump and pg_basebackup, adopt the GNU convention for handling tar-archive members exceeding 8GB (Tom Lane)

The POSIX standard for tar file format does not allow archive member files to exceed 8GB, but most modern implementations of tar support an extension that fixes that. Adopt this extension so that pg_dump with -Ft no longer fails on tables with more than 8GB of data, and so that pg_basebackup can handle files larger than 8GB. In addition, fix some portability issues that could cause failures for members between 4GB and 8GB on some platforms. Potentially these problems could cause unrecoverable data loss due to unreadable backup files.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix assorted corner-case bugs in pg_dump's processing of extension member objects

Changes

Fix assorted corner-case bugs in pg_dump's processing of extension member objects (Tom Lane)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsMake pg_dump mark a view's triggers as needing to be processed after its rule, to prevent possible failure during parallel pg_restore

Changes

Make pg_dump mark a view's triggers as needing to be processed after its rule, to prevent possible failure during parallel pg_restore (Tom Lane)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsEnsure that relation option values are properly quoted in pg_dump

Changes

Ensure that relation option values are properly quoted in pg_dump (Kouhei Sutou, Tom Lane)

A reloption value that isn't a simple identifier or number could lead to dump/reload failures due to syntax errors in CREATE statements issued by pg_dump. This is not an issue with any reloption currently supported by core PostgreSQL, but extensions could allow reloptions that cause the problem.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix pg_upgrade's file-copying code to handle errors properly on Windows

Changes

Fix pg_upgrade's file-copying code to handle errors properly on Windows (Bruce Momjian)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsInstall guards in pgbench against corner-case overflow conditions during evaluation of script-specified division or modulo operators

Changes

Install guards in pgbench against corner-case overflow conditions during evaluation of script-specified division or modulo operators (Fabien Coelho, Michael Paquier)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix failure to localize messages emitted by pg_receivexlog and pg_recvlogical

Changes

Fix failure to localize messages emitted by pg_receivexlog and pg_recvlogical (Ioseph Kim)

Related records (2)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsAvoid dump/reload problems when using both plpython2 and plpython3

Changes

Avoid dump/reload problems when using both plpython2 and plpython3 (Tom Lane)

In principle, both versions of PL/Python can be used in the same database, though not in the same session (because the two versions of libpython cannot safely be used concurrently). However, pg_restore and pg_upgrade both do things that can fall foul of the same-session restriction. Work around that by changing the timing of the check.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix PL/Python regression tests to pass with Python 3.5

Changes

Fix PL/Python regression tests to pass with Python 3.5 (Peter Eisentraut)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

SecurityPrevent certain PL/Java parameters from being set by non-superusers

Changes

Prevent certain PL/Java parameters from being set by non-superusers (Noah Misch)

This change mitigates a PL/Java security bug (CVE-2016-0766), which was fixed in PL/Java by marking these parameters as superuser-only. To fix the security hazard for sites that update PostgreSQL more frequently than PL/Java, make the core code aware of them also.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsImprove libpq's handling of out-of-memory situations

Changes

Improve libpq's handling of out-of-memory situations (Michael Paquier, Amit Kapila, Heikki Linnakangas)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix order of arguments in ecpg-generated typedef statements

Changes

Fix order of arguments in ecpg-generated typedef statements (Michael Meskes)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsUse %g not %f format in ecpg's PGTYPESnumeric_from_double()

Changes

Use %g not %f format in ecpg's PGTYPESnumeric_from_double() (Tom Lane)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix ecpg-supplied header files to not contain comments continued from a preprocessor directive line onto the next line

Changes

Fix ecpg-supplied header files to not contain comments continued from a preprocessor directive line onto the next line (Michael Meskes)

Such a comment is rejected by ecpg. It's not yet clear whether ecpg itself should be changed.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsEnsure that contrib/pgcrypto's crypt() function can be interrupted by query cancel

Changes

Ensure that contrib/pgcrypto's crypt() function can be interrupted by query cancel (Andreas Karlsson)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsAccept flex versions later than 2.5.x

Changes

Accept flex versions later than 2.5.x (Tom Lane, Michael Paquier)

Now that flex 2.6.0 has been released, the version checks in our build scripts needed to be adjusted.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsInstall our missing script where PGXS builds can find it

Changes

Install our missing script where PGXS builds can find it (Jim Nasby)

This allows sane behavior in a PGXS build done on a machine where build tools such as bison are missing.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsEnsure that dynloader.h is included in the installed header files in MSVC builds

Changes

Ensure that dynloader.h is included in the installed header files in MSVC builds (Bruce Momjian, Michael Paquier)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

SecurityAdd variant regression test expected-output file to match behavior of current libxml2

Changes

Add variant regression test expected-output file to match behavior of current libxml2 (Tom Lane)

The fix for libxml2's CVE-2015-7499 causes it not to output error context reports in some cases where it used to do so. This seems to be a bug, but we'll probably have to live with it for some time, so work around it.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsUpdate time zone data files to tzdata release 2016a for DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.

Changes

Update time zone data files to tzdata release 2016a for DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

How is this comparison generated?

The comparison follows PostgreSQL release notes from just after the source through the target version. For a major upgrade, maintenance releases from each older branch are included only up to the next major release date, and never after the target date. A major version such as 18 means its initial release, 18.0. Previews and development snapshots are labeled separately.

Entries come from the original English manuals. Release coverage and commit evidence are verified against upstream sources. Every entry retains its complete explanation and source link. Categories aid browsing; read the full notes for impact, conditions, and migration steps.

Fixes can be backported to several branches. Confirmed duplicates are merged conservatively, with every branch explanation retained. A note describing several independent fixes is excluded only when all are already present in the source. Major-release features remain distinct from related maintenance patches unless their complete original descriptions match. Uncertain matches are retained. This is a release-note history, not an exhaustive comparison of compiled binaries.

CVE results are calculated independently from the PostgreSQL security registry and vulnerability records. A CVE counts as gained protection only when the source is affected and the target is fixed or unaffected. Remaining vulnerabilities are listed separately. Security entries and distinct CVEs are counted separately.

Interaction inspired by pgversions.com and pgversionreport. Content comes from PostgreSQL release notes. See the release notes archive.