- This release contains a variety of fixes from 8.3.22.
- release branch soon.
- A dump/restore is not required for those running 8.3.X.
- For safety, ownership of these objects must be reassigned, not dropped.
- client code.
- This is now used in some eastern-European time zones.
- This release contains a variety of fixes from 8.3.21.
- for the 8.3.X release series in February 2013.
- Users are encouraged to update to a newer release branch soon.
- A dump/restore is not required for those running 8.3.X.
- resulting in corrupt concurrently-created indexes.
- the invalid index.
- or crashes depending on the specific datatypes involved.
- about whether to fire the trigger.
- against existing mis-converted views.
- Fix race conditions and possible file descriptor leakage.
- compatibility problems when 9.3 comes out.
- that there is an active postmaster using the data directory.
- Building modules outside the original source tree didn't work on AIX.
- Samoa, and portions of Brazil.
- This release contains a variety of fixes from 8.3.20.
- for the 8.3.X release series in February 2013.
- Users are encouraged to update to a newer release branch soon.
- A dump/restore is not required for those running 8.3.X.
- error.
- to.
- the normal Postgres signal handler after initializing PL/Perl.
- that throws an error.
- This release contains a variety of fixes from 8.3.19.
- for the 8.3.X release series in February 2013.
- Users are encouraged to update to a newer release branch soon.
- A dump/restore is not required for those running 8.3.X.
- remove it.
- recycled while a read-only transaction was still in flight to it.
- timing requirements, but nonetheless it should be fixed.
- has now seen enough field testing to seem safe to back-patch.
- work than seems safe to back-patch.
- incorrect index optimization of searches for such patterns.
- This release contains a variety of fixes from 8.3.18.
- A dump/restore is not required for those running 8.3.X.
- Applying such attributes to a call handler could crash the server.
- during reload.
- indefinite sequence of future DST transitions.
- particularly acute if many new sessions were starting at once.
- would not respond to interrupts meanwhile.
- unpredictable but not good consequences.
- attaching a no-op cast.
- got too busy.
- are many owned sequences.
- also historical corrections for Canada.
- This release contains a variety of fixes from 8.3.17.
- A dump/restore is not required for those running 8.3.X.
- function with forged input data, by installing it on a table he owns.
- after unrelated rows are re-inserted at the now-free table locations.
- will fix things.
- these settings now act like that one.
- counter to a reasonable value once values are needed.
- by the back-reference symbol.
- in scenarios such as building a btree index on such a column.
- when running on a debug version of Windows.
- function.
- restored subtly incorrectly.
- output is okay.
- incorrectly omitted from the result.
- and would instead return random garbage values for incorrect input.
- crash in corner cases.
- not a security issue in itself, but bad example code is still bad.
- instruction, which is deprecated and not available on ARMv6 and later.
- leading to bizarre failures in multiprocess operation.
- produce creative results.
- work; but FreeBSD fixed the problem, so remove that error check.
- This release contains a variety of fixes from 8.3.16.
- A dump/restore is not required for those running 8.3.X.
- definition as explained in the first changelog item below.
- depends on a different constraint than the one it really does.
- to be fixed.
- corrupt results in certain corner cases.
- paths that could trigger the same bug.
- toast table would always belong to a system catalog.
- datum as per usual convention.
- not be re-read.
- Don't let
- linkend="guc-transform-null-equals">transform_null_equals>
- affect CASE foo WHEN NULL ...> constructs
- (Heikki Linnakangas)
-
-
- transform_null_equals> is only supposed to affect
- foo = NULL> expressions written directly by the user, not
- equality checks generated internally by this form of CASE>.
-
-
-
-
- Change foreign-key trigger creation order to better support
- self-referential foreign keys (Tom Lane)
-
-
- For a cascading foreign key that references its own table, a row update
- will fire both the ON UPDATE> trigger and the
- CHECK> trigger as one event. The ON UPDATE>
- trigger must execute first, else the CHECK> will check a
- non-final state of the row and possibly throw an inappropriate error.
- However, the firing order of these triggers is determined by their
- names, which generally sort in creation order since the triggers have
- auto-generated names following the convention
- RI_ConstraintTrigger_NNNN>. A proper fix would require
- modifying that convention, which we will do in 9.2, but it seems risky
- to change it in existing releases. So this patch just changes the
- creation order of the triggers. Users encountering this type of error
- should drop and re-create the foreign key constraint to get its
- triggers into the right order.
-
-
-
-
- Avoid floating-point underflow while tracking buffer allocation rate
- (Greg Matthews)
-
-
- While harmless in itself, on certain platforms this would result in
- annoying kernel log messages.
-
-
-
-
- Preserve blank lines within commands in
psql>'s command
- history (Robert Haas)
-
-
- The former behavior could cause problems if an empty line was removed
- from within a string literal, for example.
-
-
-
-
- Fix
pg_dump> to dump user-defined casts between
- auto-generated types, such as table rowtypes (Tom Lane)
-
-
-
-
- Use the preferred version of
xsubpp> to build PL/Perl,
- not necessarily the operating system's main copy
- (David Wheeler and Alex Hunsaker)
-
-
-
-
- Fix incorrect coding in contrib/dict_int> and
- contrib/dict_xsyn> (Tom Lane)
-
-
- Some functions incorrectly assumed that memory returned by
- palloc()> is guaranteed zeroed.
-
-
-
-
- Honor query cancel interrupts promptly in pgstatindex()>
- (Robert Haas)
-
-
-
-
- Ensure VPATH builds properly install all server header files
- (Peter Eisentraut)
-
-
-
-
- Shorten file names reported in verbose error messages (Peter Eisentraut)
-
-
- Regular builds have always reported just the name of the C file
- containing the error message call, but VPATH builds formerly
- reported an absolute path name.
-
-
-
-
- Fix interpretation of Windows timezone names for Central America
- (Tom Lane)
-
-
- Map Central America Standard Time> to CST6>, not
- CST6CDT>, because DST is generally not observed anywhere in
- Central America.
-
-
-
-
- Update time zone data files to
tzdata> release 2011n
- for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
- also historical corrections for Alaska and British East Africa.
-
-
-
-
-
-
-
-
-
-
Release 8.3.16
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.15.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.16
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.8,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix bugs in indexing of in-doubt HOT-updated tuples (Tom Lane)
-
-
- These bugs could result in index corruption after reindexing a system
- catalog. They are not believed to affect user indexes.
-
-
-
-
- Fix multiple bugs in GiST index page split processing (Heikki
- Linnakangas)
-
-
- The probability of occurrence was low, but these could lead to index
- corruption.
-
-
-
-
- Fix possible buffer overrun in tsvector_concat()>
- (Tom Lane)
-
-
- The function could underestimate the amount of memory needed for its
- result, leading to server crashes.
-
-
-
-
- Fix crash in xml_recv> when processing a
- standalone> parameter (Tom Lane)
-
-
-
-
- Avoid possibly accessing off the end of memory in ANALYZE>
- and in SJIS-2004 encoding conversion (Noah Misch)
-
-
- This fixes some very-low-probability server crash scenarios.
-
-
-
-
- Fix race condition in relcache init file invalidation (Tom Lane)
-
-
- There was a window wherein a new backend process could read a stale init
- file but miss the inval messages that would tell it the data is stale.
- The result would be bizarre failures in catalog accesses, typically
- could not read block 0 in file ...> later during startup.
-
-
-
-
- Fix memory leak at end of a GiST index scan (Tom Lane)
-
-
- Commands that perform many separate GiST index scans, such as
- verification of a new GiST-based exclusion constraint on a table
- already containing many rows, could transiently require large amounts of
- memory due to this leak.
-
-
-
-
- Fix performance problem when constructing a large, lossy bitmap
- (Tom Lane)
-
-
-
-
- Fix array- and path-creating functions to ensure padding bytes are
- zeroes (Tom Lane)
-
-
- This avoids some situations where the planner will think that
- semantically-equal constants are not equal, resulting in poor
- optimization.
-
-
-
-
- Work around gcc 4.6.0 bug that breaks WAL replay (Tom Lane)
-
-
- This could lead to loss of committed transactions after a server crash.
-
-
-
-
- Fix dump bug for VALUES> in a view (Tom Lane)
-
-
-
-
- Disallow SELECT FOR UPDATE/SHARE> on sequences (Tom Lane)
-
-
- This operation doesn't work as expected and can lead to failures.
-
-
-
-
- Defend against integer overflow when computing size of a hash table (Tom
- Lane)
-
-
-
-
- Fix cases where CLUSTER> might attempt to access
- already-removed TOAST data (Tom Lane)
-
-
-
-
- Fix portability bugs in use of credentials control messages for
- peer> authentication (Tom Lane)
-
-
-
-
- Fix SSPI login when multiple roundtrips are required (Ahmed Shinwari,
- Magnus Hagander)
-
-
- The typical symptom of this problem was The function requested is
- not supported> errors during SSPI login.
-
-
-
-
- Fix typo in pg_srand48> seed initialization (Andres Freund)
-
-
- This led to failure to use all bits of the provided seed. This function
- is not used on most platforms (only those without srandom>),
- and the potential security exposure from a less-random-than-expected
- seed seems minimal in any case.
-
-
-
-
- Avoid integer overflow when the sum of LIMIT> and
- OFFSET> values exceeds 2^63 (Heikki Linnakangas)
-
-
-
-
- Add overflow checks to int4> and int8> versions of
- generate_series()> (Robert Haas)
-
-
-
-
- Fix trailing-zero removal in to_char()> (Marti Raudsepp)
-
-
- In a format with FM> and no digit positions
- after the decimal point, zeroes to the left of the decimal point could
- be removed incorrectly.
-
-
-
-
- Fix pg_size_pretty()> to avoid overflow for inputs close to
- 2^63 (Tom Lane)
-
-
-
-
- In
pg_ctl>, support silent mode for service registrations
- on Windows (MauMau)
-
-
-
-
- Fix
psql>'s counting of script file line numbers during
- COPY> from a different file (Tom Lane)
-
-
-
-
- Fix
pg_restore>'s direct-to-database mode for
- standard_conforming_strings> (Tom Lane)
-
-
-
pg_restore> could emit incorrect commands when restoring
- directly to a database server from an archive file that had been made
- with standard_conforming_strings> set to on>.
-
-
-
-
- Fix write-past-buffer-end and memory leak in
libpq>'s
- LDAP service lookup code (Albe Laurenz)
-
-
-
-
- In
libpq>, avoid failures when using nonblocking I/O
- and an SSL connection (Martin Pihlak, Tom Lane)
-
-
-
-
- Improve libpq's handling of failures during connection startup
- (Tom Lane)
-
-
- In particular, the response to a server report of fork()>
- failure during SSL connection startup is now saner.
-
-
-
-
- Improve
libpq>'s error reporting for SSL failures (Tom
- Lane)
-
-
-
-
- Make
ecpglib> write double> values with 15 digits
- precision (Akira Kurosawa)
-
-
-
-
- In
ecpglib>, be sure LC_NUMERIC> setting is
- restored after an error (Michael Meskes)
-
-
-
-
- Apply upstream fix for blowfish signed-character bug (CVE-2011-2483)
- (Tom Lane)
-
-
- contrib/pg_crypto>'s blowfish encryption code could give
- wrong results on platforms where char is signed (which is most),
- leading to encrypted passwords being weaker than they should be.
-
-
-
-
- Fix memory leak in contrib/seg> (Heikki Linnakangas)
-
-
-
-
- Fix pgstatindex()> to give consistent results for empty
- indexes (Tom Lane)
-
-
-
-
- Allow building with perl 5.14 (Alex Hunsaker)
-
-
-
-
- Update configure script's method for probing existence of system
- functions (Tom Lane)
-
-
- The version of autoconf we used in 8.3 and 8.2 could be fooled by
- compilers that perform link-time optimization.
-
-
-
-
- Fix assorted issues with build and install file paths containing spaces
- (Tom Lane)
-
-
-
-
- Update time zone data files to
tzdata> release 2011i
- for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan.
-
-
-
-
-
-
-
-
-
-
Release 8.3.15
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.14.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.15
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.8,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Disallow including a composite type in itself (Tom Lane)
-
-
- This prevents scenarios wherein the server could recurse infinitely
- while processing the composite type. While there are some possible
- uses for such a structure, they don't seem compelling enough to
- justify the effort required to make sure it always works safely.
-
-
-
-
- Avoid potential deadlock during catalog cache initialization
- (Nikhil Sontakke)
-
-
- In some cases the cache loading code would acquire share lock on a
- system index before locking the index's catalog. This could deadlock
- against processes trying to acquire exclusive locks in the other,
- more standard order.
-
-
-
-
- Fix dangling-pointer problem in BEFORE ROW UPDATE> trigger
- handling when there was a concurrent update to the target tuple
- (Tom Lane)
-
-
- This bug has been observed to result in intermittent cannot
- extract system attribute from virtual tuple> failures while trying to
- do UPDATE RETURNING ctid>. There is a very small probability
- of more serious errors, such as generating incorrect index entries for
- the updated tuple.
-
-
-
-
- Disallow DROP TABLE> when there are pending deferred trigger
- events for the table (Tom Lane)
-
-
- Formerly the DROP> would go through, leading to
- could not open relation with OID nnn> errors when the
- triggers were eventually fired.
-
-
-
-
- Fix PL/Python memory leak involving array slices (Daniel Popowich)
-
-
-
-
- Fix
pg_restore> to cope with long lines (over 1KB) in
- TOC files (Tom Lane)
-
-
-
-
- Put in more safeguards against crashing due to division-by-zero
- with overly enthusiastic compiler optimization (Aurelien Jarno)
-
-
-
-
- Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane)
-
-
- There was a hard-wired assumption that this system function was not
- available on MIPS hardware on these systems. Use a compile-time test
- instead, since more recent versions have it.
-
-
-
-
- Fix compilation failures on HP-UX (Heikki Linnakangas)
-
-
-
-
- Fix version-incompatibility problem with
libintl> on
- Windows (Hiroshi Inoue)
-
-
-
-
- Fix usage of
xcopy> in Windows build scripts to
- work correctly under Windows 7 (Andrew Dunstan)
-
-
- This affects the build scripts only, not installation or usage.
-
-
-
-
- Fix path separator used by
pg_regress> on Cygwin
- (Andrew Dunstan)
-
-
-
-
- Update time zone data files to
tzdata> release 2011f
- for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa,
- and Turkey; also historical corrections for South Australia, Alaska,
- and Hawaii.
-
-
-
-
-
-
-
-
-
-
Release 8.3.14
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.13.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.14
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.8,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Avoid failures when EXPLAIN> tries to display a simple-form
- CASE> expression (Tom Lane)
-
-
- If the CASE>'s test expression was a constant, the planner
- could simplify the CASE> into a form that confused the
- expression-display code, resulting in unexpected CASE WHEN
- clause> errors.
-
-
-
-
- Fix assignment to an array slice that is before the existing range
- of subscripts (Tom Lane)
-
-
- If there was a gap between the newly added subscripts and the first
- pre-existing subscript, the code miscalculated how many entries needed
- to be copied from the old array's null bitmap, potentially leading to
- data corruption or crash.
-
-
-
-
- Avoid unexpected conversion overflow in planner for very distant date
- values (Tom Lane)
-
-
- The date> type supports a wider range of dates than can be
- represented by the timestamp> types, but the planner assumed it
- could always convert a date to timestamp with impunity.
-
-
-
-
- Fix
pg_restore>'s text output for large objects (BLOBs)
- when standard_conforming_strings> is on (Tom Lane)
-
-
- Although restoring directly to a database worked correctly, string
- escaping was incorrect if
pg_restore> was asked for
- SQL text output and standard_conforming_strings> had been
- enabled in the source database.
-
-
-
-
- Fix erroneous parsing of tsquery> values containing
- ... & !(subexpression) | ... (Tom Lane)
-
-
- Queries containing this combination of operators were not executed
- correctly. The same error existed in contrib/intarray>'s
- query_int> type and contrib/ltree>'s
- ltxtquery> type.
-
-
-
-
- Fix buffer overrun in contrib/intarray>'s input function
- for the query_int> type (Apple)
-
-
- This bug is a security risk since the function's return address could
- be overwritten. Thanks to Apple Inc's security team for reporting this
- issue and supplying the fix. (CVE-2010-4015)
-
-
-
-
- Fix bug in contrib/seg>'s GiST picksplit algorithm
- (Alexander Korotkov)
-
-
- This could result in considerable inefficiency, though not actually
- incorrect answers, in a GiST index on a seg> column.
- If you have such an index, consider REINDEX>ing it after
- installing this update. (This is identical to the bug that was fixed in
- contrib/cube> in the previous update.)
-
-
-
-
-
-
-
-
-
-
Release 8.3.13
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.12.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.13
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.8,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Force the default
- wal_sync_method>
- to be fdatasync> on Linux (Tom Lane, Marti Raudsepp)
-
-
- The default on Linux has actually been fdatasync> for many
- years, but recent kernel changes caused
PostgreSQL> to
- choose open_datasync> instead. This choice did not result
- in any performance improvement, and caused outright failures on
- certain filesystems, notably ext4> with the
- data=journal> mount option.
-
-
-
-
- Fix assorted bugs in WAL replay logic for GIN indexes (Tom Lane)
-
-
- This could result in bad buffer id: 0> failures or
- corruption of index contents during replication.
-
-
-
-
- Fix recovery from base backup when the starting checkpoint WAL record
- is not in the same WAL segment as its redo point (Jeff Davis)
-
-
-
-
- Fix persistent slowdown of autovacuum workers when multiple workers
- remain active for a long time (Tom Lane)
-
-
- The effective vacuum_cost_limit> for an autovacuum worker
- could drop to nearly zero if it processed enough tables, causing it
- to run extremely slowly.
-
-
-
-
- Add support for detecting register-stack overrun on IA64>
- (Tom Lane)
-
-
- The IA64> architecture has two hardware stacks. Full
- prevention of stack-overrun failures requires checking both.
-
-
-
-
- Add a check for stack overflow in copyObject()> (Tom Lane)
-
-
- Certain code paths could crash due to stack overflow given a
- sufficiently complex query.
-
-
-
-
- Fix detection of page splits in temporary GiST indexes (Heikki
- Linnakangas)
-
-
- It is possible to have a concurrent> page split in a
- temporary index, if for example there is an open cursor scanning the
- index when an insertion is done. GiST failed to detect this case and
- hence could deliver wrong results when execution of the cursor
- continued.
-
-
-
-
- Avoid memory leakage while ANALYZE>'ing complex index
- expressions (Tom Lane)
-
-
-
-
- Ensure an index that uses a whole-row Var still depends on its table
- (Tom Lane)
-
-
- An index declared like create index i on t (foo(t.*))>
- would not automatically get dropped when its table was dropped.
-
-
-
-
- Do not inline> a SQL function with multiple OUT>
- parameters (Tom Lane)
-
-
- This avoids a possible crash due to loss of information about the
- expected result rowtype.
-
-
-
-
- Behave correctly if ORDER BY>, LIMIT>,
- FOR UPDATE>, or WITH> is attached to the
- VALUES> part of INSERT ... VALUES> (Tom Lane)
-
-
-
-
- Fix constant-folding of COALESCE()> expressions (Tom Lane)
-
-
- The planner would sometimes attempt to evaluate sub-expressions that
- in fact could never be reached, possibly leading to unexpected errors.
-
-
-
-
- Fix postmaster crash when connection acceptance
- (accept()> or one of the calls made immediately after it)
- fails, and the postmaster was compiled with GSSAPI support (Alexander
- Chernikov)
-
-
-
-
- Fix missed unlink of temporary files when log_temp_files>
- is active (Tom Lane)
-
-
- If an error occurred while attempting to emit the log message, the
- unlink was not done, resulting in accumulation of temp files.
-
-
-
-
- Add print functionality for InhRelation> nodes (Tom Lane)
-
-
- This avoids a failure when debug_print_parse> is enabled
- and certain types of query are executed.
-
-
-
-
- Fix incorrect calculation of distance from a point to a horizontal
- line segment (Tom Lane)
-
-
- This bug affected several different geometric distance-measurement
- operators.
-
-
-
-
- Fix
PL/pgSQL>'s handling of simple>
- expressions to not fail in recursion or error-recovery cases (Tom Lane)
-
-
-
-
- Fix
PL/Python>'s handling of set-returning functions
- (Jan Urbanski)
-
-
- Attempts to call SPI functions within the iterator generating a set
- result would fail.
-
-
-
-
- Fix bug in contrib/cube>'s GiST picksplit algorithm
- (Alexander Korotkov)
-
-
- This could result in considerable inefficiency, though not actually
- incorrect answers, in a GiST index on a cube> column.
- If you have such an index, consider REINDEX>ing it after
- installing this update.
-
-
-
-
- Don't emit identifier will be truncated> notices in
- contrib/dblink> except when creating new connections
- (Itagaki Takahiro)
-
-
-
-
- Fix potential coredump on missing public key in
- contrib/pgcrypto> (Marti Raudsepp)
-
-
-
-
- Fix memory leak in contrib/xml2>'s XPath query functions
- (Tom Lane)
-
-
-
-
- Update time zone data files to
tzdata> release 2010o
- for DST law changes in Fiji and Samoa;
- also historical corrections for Hong Kong.
-
-
-
-
-
-
-
-
-
-
Release 8.3.12
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.11.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.12
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.8,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Use a separate interpreter for each calling SQL userid in PL/Perl and
- PL/Tcl (Tom Lane)
-
-
- This change prevents security problems that can be caused by subverting
- Perl or Tcl code that will be executed later in the same session under
- another SQL user identity (for example, within a SECURITY
- DEFINER> function). Most scripting languages offer numerous ways that
- that might be done, such as redefining standard functions or operators
- called by the target function. Without this change, any SQL user with
- Perl or Tcl language usage rights can do essentially anything with the
- SQL privileges of the target function's owner.
-
-
- The cost of this change is that intentional communication among Perl
- and Tcl functions becomes more difficult. To provide an escape hatch,
- PL/PerlU and PL/TclU functions continue to use only one interpreter
- per session. This is not considered a security issue since all such
- functions execute at the trust level of a database superuser already.
-
-
- It is likely that third-party procedural languages that claim to offer
- trusted execution have similar security issues. We advise contacting
- the authors of any PL you are depending on for security-critical
- purposes.
-
-
- Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
-
-
-
-
- Prevent possible crashes in pg_get_expr()> by disallowing
- it from being called with an argument that is not one of the system
- catalog columns it's intended to be used with
- (Heikki Linnakangas, Tom Lane)
-
-
-
-
- Treat exit code 128 (ERROR_WAIT_NO_CHILDREN>) as non-fatal on
- Windows (Magnus Hagander)
-
-
- Under high load, Windows processes will sometimes fail at startup with
- this error code. Formerly the postmaster treated this as a panic
- condition and restarted the whole database, but that seems to be
- an overreaction.
-
-
-
-
- Fix incorrect usage of non-strict OR joinclauses in Append indexscans
- (Tom Lane)
-
-
- This is a back-patch of an 8.4 fix that was missed in the 8.3 branch.
- This corrects an error introduced in 8.3.8 that could cause incorrect
- results for outer joins when the inner relation is an inheritance tree
- or UNION ALL> subquery.
-
-
-
-
- Fix possible duplicate scans of UNION ALL> member relations
- (Tom Lane)
-
-
-
-
- Fix cannot handle unplanned sub-select
error (Tom Lane)
-
-
- This occurred when a sub-select contains a join alias reference that
- expands into an expression containing another sub-select.
-
-
-
-
- Fix failure to mark cached plans as transient (Tom Lane)
-
-
- If a plan is prepared while CREATE INDEX CONCURRENTLY> is
- in progress for one of the referenced tables, it is supposed to be
- re-planned once the index is ready for use. This was not happening
- reliably.
-
-
-
-
- Reduce PANIC to ERROR in some occasionally-reported btree failure cases,
- and provide additional detail in the resulting error messages
- (Tom Lane)
-
-
- This should improve the system's robustness with corrupted indexes.
-
-
-
-
- Prevent show_session_authorization() from crashing within autovacuum
- processes (Tom Lane)
-
-
-
-
- Defend against functions returning setof record where not all the
- returned rows are actually of the same rowtype (Tom Lane)
-
-
-
-
- Fix possible failure when hashing a pass-by-reference function result
- (Tao Ma, Tom Lane)
-
-
-
-
- Improve merge join's handling of NULLs in the join columns (Tom Lane)
-
-
- A merge join can now stop entirely upon reaching the first NULL,
- if the sort order is such that NULLs sort high.
-
-
-
-
- Take care to fsync the contents of lockfiles (both
- postmaster.pid> and the socket lockfile) while writing them
- (Tom Lane)
-
-
- This omission could result in corrupted lockfile contents if the
- machine crashes shortly after postmaster start. That could in turn
- prevent subsequent attempts to start the postmaster from succeeding,
- until the lockfile is manually removed.
-
-
-
-
- Avoid recursion while assigning XIDs to heavily-nested
- subtransactions (Andres Freund, Robert Haas)
-
-
- The original coding could result in a crash if there was limited
- stack space.
-
-
-
-
- Avoid holding open old WAL segments in the walwriter process
- (Magnus Hagander, Heikki Linnakangas)
-
-
- The previous coding would prevent removal of no-longer-needed segments.
-
-
-
-
- Fix log_line_prefix>'s %i> escape,
- which could produce junk early in backend startup (Tom Lane)
-
-
-
-
- Fix possible data corruption in ALTER TABLE ... SET
- TABLESPACE> when archiving is enabled (Jeff Davis)
-
-
-
-
- Allow CREATE DATABASE> and ALTER DATABASE ... SET
- TABLESPACE> to be interrupted by query-cancel (Guillaume Lelarge)
-
-
-
-
- Fix REASSIGN OWNED> to handle operator classes and families
- (Asko Tiidumaa)
-
-
-
-
- Fix possible core dump when comparing two empty tsquery> values
- (Tom Lane)
-
-
-
-
- Fix LIKE>'s handling of patterns containing %>
- followed by _> (Tom Lane)
-
-
- We've fixed this before, but there were still some incorrectly-handled
- cases.
-
-
-
-
- In PL/Python, defend against null pointer results from
- PyCObject_AsVoidPtr> and PyCObject_FromVoidPtr>
- (Peter Eisentraut)
-
-
-
-
- Make psql recognize DISCARD ALL> as a command that should
- not be encased in a transaction block in autocommit-off mode
- (Itagaki Takahiro)
-
-
-
-
- Fix
ecpg> to process data from RETURNING>
- clauses correctly (Michael Meskes)
-
-
-
-
- Improve contrib/dblink>'s handling of tables containing
- dropped columns (Tom Lane)
-
-
-
-
- Fix connection leak after duplicate connection name
- errors in contrib/dblink> (Itagaki Takahiro)
-
-
-
-
- Fix contrib/dblink> to handle connection names longer than
- 62 bytes correctly (Itagaki Takahiro)
-
-
-
-
- Add hstore(text, text)>
- function to contrib/hstore> (Robert Haas)
-
-
- This function is the recommended substitute for the now-deprecated
- =>> operator. It was back-patched so that future-proofed
- code can be used with older server versions. Note that the patch will
- be effective only after contrib/hstore> is installed or
- reinstalled in a particular database. Users might prefer to execute
- the CREATE FUNCTION> command by hand, instead.
-
-
-
-
- Update build infrastructure and documentation to reflect the source code
- repository's move from CVS to Git (Magnus Hagander and others)
-
-
-
-
- Update time zone data files to
tzdata> release 2010l
- for DST law changes in Egypt and Palestine; also historical corrections
- for Finland.
-
-
- This change also adds new names for two Micronesian timezones:
- Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred
- abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over
- Pacific/Ponape.
-
-
-
-
- Make Windows' N. Central Asia Standard Time> timezone map to
- Asia/Novosibirsk, not Asia/Almaty (Magnus Hagander)
-
-
- Microsoft changed the DST behavior of this zone in the timezone update
- from KB976098. Asia/Novosibirsk is a better match to its new behavior.
-
-
-
-
-
-
-
-
-
-
Release 8.3.11
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.10.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.11
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.8,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Enforce restrictions in plperl> using an opmask applied to
- the whole interpreter, instead of using Safe.pm>
- (Tim Bunce, Andrew Dunstan)
-
-
- Recent developments have convinced us that Safe.pm> is too
- insecure to rely on for making plperl> trustable. This
- change removes use of Safe.pm> altogether, in favor of using
- a separate interpreter with an opcode mask that is always applied.
- Pleasant side effects of the change include that it is now possible to
- use Perl's strict> pragma in a natural way in
- plperl>, and that Perl's $a> and $b>
- variables work as expected in sort routines, and that function
- compilation is significantly faster. (CVE-2010-1169)
-
-
-
-
- Prevent PL/Tcl from executing untrustworthy code from
- pltcl_modules> (Tom)
-
-
- PL/Tcl's feature for autoloading Tcl code from a database table
- could be exploited for trojan-horse attacks, because there was no
- restriction on who could create or insert into that table. This change
- disables the feature unless pltcl_modules> is owned by a
- superuser. (However, the permissions on the table are not checked, so
- installations that really need a less-than-secure modules table can
- still grant suitable privileges to trusted non-superusers.) Also,
- prevent loading code into the unrestricted normal> Tcl
- interpreter unless we are really going to execute a pltclu>
- function. (CVE-2010-1170)
-
-
-
-
- Fix possible crash if a cache reset message is received during
- rebuild of a relcache entry (Heikki)
-
-
- This error was introduced in 8.3.10 while fixing a related failure.
-
-
-
-
- Apply per-function GUC settings while running the language validator
- for the function (Itagaki Takahiro)
-
-
- This avoids failures if the function's code is invalid without the
- setting; an example is that SQL functions may not parse if the
- search_path> is not correct.
-
-
-
-
- Do not allow an unprivileged user to reset superuser-only parameter
- settings (Alvaro)
-
-
- Previously, if an unprivileged user ran ALTER USER ... RESET
- ALL> for himself, or ALTER DATABASE ... RESET ALL> for
- a database he owns, this would remove all special parameter settings
- for the user or database, even ones that are only supposed to be
- changeable by a superuser. Now, the ALTER> will only
- remove the parameters that the user has permission to change.
-
-
-
-
- Avoid possible crash during backend shutdown if shutdown occurs
- when a CONTEXT> addition would be made to log entries (Tom)
-
-
- In some cases the context-printing function would fail because the
- current transaction had already been rolled back when it came time
- to print a log message.
-
-
-
-
- Ensure the archiver process responds to changes in
- archive_command> as soon as possible (Tom)
-
-
-
-
- Update pl/perl's ppport.h> for modern Perl versions
- (Andrew)
-
-
-
-
- Fix assorted memory leaks in pl/python (Andreas Freund, Tom)
-
-
-
-
- Prevent infinite recursion in
psql> when expanding
- a variable that refers to itself (Tom)
-
-
-
-
- Fix
psql>'s \copy> to not add spaces around
- a dot within \copy (select ...)> (Tom)
-
-
- Addition of spaces around the decimal point in a numeric literal would
- result in a syntax error.
-
-
-
-
- Fix unnecessary GIN indexes do not support whole-index scans>
- errors for unsatisfiable queries using contrib/intarray>
- operators (Tom)
-
-
-
-
- Ensure that contrib/pgstattuple> functions respond to cancel
- interrupts promptly (Tatsuhito Kasahara)
-
-
-
-
- Make server startup deal properly with the case that
- shmget()> returns EINVAL> for an existing
- shared memory segment (Tom)
-
-
- This behavior has been observed on BSD-derived kernels including OS X.
- It resulted in an entirely-misleading startup failure complaining that
- the shared memory request size was too large.
-
-
-
-
- Avoid possible crashes in syslogger process on Windows (Heikki)
-
-
-
-
- Deal more robustly with incomplete time zone information in the
- Windows registry (Magnus)
-
-
-
-
- Update the set of known Windows time zone names (Magnus)
-
-
-
-
- Update time zone data files to
tzdata> release 2010j
- for DST law changes in Argentina, Australian Antarctic, Bangladesh,
- Mexico, Morocco, Pakistan, Palestine, Russia, Syria, Tunisia;
- also historical corrections for Taiwan.
-
-
- Also, add PKST> (Pakistan Summer Time) to the default set of
- timezone abbreviations.
-
-
-
-
-
-
-
-
-
-
Release 8.3.10
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.9.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.10
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.8,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Add new configuration parameter ssl_renegotiation_limit> to
- control how often we do session key renegotiation for an SSL connection
- (Magnus)
-
-
- This can be set to zero to disable renegotiation completely, which may
- be required if a broken SSL library is used. In particular, some
- vendors are shipping stopgap patches for CVE-2009-3555 that cause
- renegotiation attempts to fail.
-
-
-
-
- Fix possible deadlock during backend startup (Tom)
-
-
-
-
- Fix possible crashes due to not handling errors during relcache reload
- cleanly (Tom)
-
-
-
-
- Fix possible crash due to use of dangling pointer to a cached plan
- (Tatsuo)
-
-
-
-
- Fix possible crashes when trying to recover from a failure in
- subtransaction start (Tom)
-
-
-
-
- Fix server memory leak associated with use of savepoints and a client
- encoding different from server's encoding (Tom)
-
-
-
-
- Fix incorrect WAL data emitted during end-of-recovery cleanup of a GIST
- index page split (Yoichi Hirai)
-
-
- This would result in index corruption, or even more likely an error
- during WAL replay, if we were unlucky enough to crash during
- end-of-recovery cleanup after having completed an incomplete GIST
- insertion.
-
-
-
-
- Make substring()> for bit> types treat any negative
- length as meaning all the rest of the string> (Tom)
-
-
- The previous coding treated only -1 that way, and would produce an
- invalid result value for other negative values, possibly leading to
- a crash (CVE-2010-0442).
-
-
-
-
- Fix integer-to-bit-string conversions to handle the first fractional
- byte correctly when the output bit width is wider than the given
- integer by something other than a multiple of 8 bits (Tom)
-
-
-
-
- Fix some cases of pathologically slow regular expression matching (Tom)
-
-
-
-
- Fix assorted crashes in xml> processing caused by sloppy
- memory management (Tom)
-
-
- This is a back-patch of changes first applied in 8.4. The 8.3 code
- was known buggy, but the new code was sufficiently different to not
- want to back-patch it until it had gotten some field testing.
-
-
-
-
- Fix bug with trying to update a field of an element of a
- composite-type array column (Tom)
-
-
-
-
- Fix the STOP WAL LOCATION> entry in backup history files to
- report the next WAL segment's name when the end location is exactly at a
- segment boundary (Itagaki Takahiro)
-
-
-
-
- Fix some more cases of temporary-file leakage (Heikki)
-
-
- This corrects a problem introduced in the previous minor release.
- One case that failed is when a plpgsql function returning set is
- called within another function's exception handler.
-
-
-
-
- Improve constraint exclusion processing of boolean-variable cases,
- in particular make it possible to exclude a partition that has a
- bool_column = false> constraint (Tom)
-
-
-
-
- When reading pg_hba.conf> and related files, do not treat
- @something> as a file inclusion request if the @>
- appears inside quote marks; also, never treat @> by itself
- as a file inclusion request (Tom)
-
-
- This prevents erratic behavior if a role or database name starts with
- @>. If you need to include a file whose path name
- contains spaces, you can still do so, but you must write
- @"/path to/file"> rather than putting the quotes around
- the whole construct.
-
-
-
-
- Prevent infinite loop on some platforms if a directory is named as
- an inclusion target in pg_hba.conf> and related files
- (Tom)
-
-
-
-
- Fix possible infinite loop if SSL_read> or
- SSL_write> fails without setting errno> (Tom)
-
-
- This is reportedly possible with some Windows versions of
-
-
-
-
- Disallow
GSSAPI> authentication on local connections,
- since it requires a hostname to function correctly (Magnus)
-
-
-
-
- Make
ecpg> report the proper SQLSTATE if the connection
- disappears (Michael)
-
-
-
-
- Fix
psql>'s numericlocale> option to not
- format strings it shouldn't in latex and troff output formats (Heikki)
-
-
-
-
- Make
psql> return the correct exit status (3) when
- ON_ERROR_STOP> and --single-transaction> are
- both specified and an error occurs during the implied COMMIT>
- (Bruce)
-
-
-
-
- Fix plpgsql failure in one case where a composite column is set to NULL
- (Tom)
-
-
-
-
- Fix possible failure when calling PL/Perl functions from PL/PerlU
- or vice versa (Tim Bunce)
-
-
-
-
- Add volatile> markings in PL/Python to avoid possible
- compiler-specific misbehavior (Zdenek Kotala)
-
-
-
-
- Ensure PL/Tcl initializes the Tcl interpreter fully (Tom)
-
-
- The only known symptom of this oversight is that the Tcl
- clock> command misbehaves if using Tcl 8.5 or later.
-
-
-
-
- Prevent crash in contrib/dblink> when too many key
- columns are specified to a dblink_build_sql_*> function
- (Rushabh Lathia, Joe Conway)
-
-
-
-
- Allow zero-dimensional arrays in contrib/ltree> operations
- (Tom)
-
-
- This case was formerly rejected as an error, but it's more convenient to
- treat it the same as a zero-element array. In particular this avoids
- unnecessary failures when an ltree> operation is applied to the
- result of ARRAY(SELECT ...)> and the sub-select returns no
- rows.
-
-
-
-
- Fix assorted crashes in contrib/xml2> caused by sloppy
- memory management (Tom)
-
-
-
-
- Make building of contrib/xml2> more robust on Windows
- (Andrew)
-
-
-
-
- Fix race condition in Windows signal handling (Radu Ilie)
-
-
- One known symptom of this bug is that rows in pg_listener>
- could be dropped under heavy load.
-
-
-
-
- Update time zone data files to
tzdata> release 2010e
- for DST law changes in Bangladesh, Chile, Fiji, Mexico, Paraguay, Samoa.
-
-
-
-
-
-
-
-
-
-
Release 8.3.9
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.8.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.9
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.8,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Protect against indirect security threats caused by index functions
- changing session-local state (Gurjeet Singh, Tom)
-
-
- This change prevents allegedly-immutable index functions from possibly
- subverting a superuser's session (CVE-2009-4136).
-
-
-
-
- Reject SSL certificates containing an embedded null byte in the common
- name (CN) field (Magnus)
-
-
- This prevents unintended matching of a certificate to a server or client
- name during SSL validation (CVE-2009-4034).
-
-
-
-
- Fix possible crash during backend-startup-time cache initialization (Tom)
-
-
-
-
- Avoid crash on empty thesaurus dictionary (Tom)
-
-
-
-
- Prevent signals from interrupting VACUUM> at unsafe times
- (Alvaro)
-
-
- This fix prevents a PANIC if a VACUUM FULL> is canceled
- after it's already committed its tuple movements, as well as transient
- errors if a plain VACUUM> is interrupted after having
- truncated the table.
-
-
-
-
- Fix possible crash due to integer overflow in hash table size
- calculation (Tom)
-
-
- This could occur with extremely large planner estimates for the size of
- a hashjoin's result.
-
-
-
-
- Fix very rare crash in inet>/cidr> comparisons (Chris
- Mikkelson)
-
-
-
-
- Ensure that shared tuple-level locks held by prepared transactions are
- not ignored (Heikki)
-
-
-
-
- Fix premature drop of temporary files used for a cursor that is accessed
- within a subtransaction (Heikki)
-
-
-
-
- Fix memory leak in syslogger process when rotating to a new CSV logfile
- (Tom)
-
-
-
-
- Fix Windows permission-downgrade logic (Jesse Morris)
-
-
- This fixes some cases where the database failed to start on Windows,
- often with misleading error messages such as could not locate
- matching postgres executable.
-
-
-
-
- Fix incorrect logic for GiST index page splits, when the split depends
- on a non-first column of the index (Paul Ramsey)
-
-
-
-
- Don't error out if recycling or removing an old WAL file fails at the
- end of checkpoint (Heikki)
-
-
- It's better to treat the problem as non-fatal and allow the checkpoint
- to complete. Future checkpoints will retry the removal. Such problems
- are not expected in normal operation, but have been seen to be
- caused by misdesigned Windows anti-virus and backup software.
-
-
-
-
- Ensure WAL files aren't repeatedly archived on Windows (Heikki)
-
-
- This is another symptom that could happen if some other process
- interfered with deletion of a no-longer-needed file.
-
-
-
-
- Fix PAM password processing to be more robust (Tom)
-
-
- The previous code is known to fail with the combination of the Linux
- pam_krb5> PAM module with Microsoft Active Directory as the
- domain controller. It might have problems elsewhere too, since it was
- making unjustified assumptions about what arguments the PAM stack would
- pass to it.
-
-
-
-
- Raise the maximum authentication token (Kerberos ticket) size in GSSAPI
- and SSPI authentication methods (Ian Turner)
-
-
- While the old 2000-byte limit was more than enough for Unix Kerberos
- implementations, tickets issued by Windows Domain Controllers can be
- much larger.
-
-
-
-
- Re-enable collection of access statistics for sequences (Akira Kurosawa)
-
-
- This used to work but was broken in 8.3.
-
-
-
-
- Fix processing of ownership dependencies during CREATE OR
- REPLACE FUNCTION> (Tom)
-
-
-
-
- Fix incorrect handling of WHERE>
- x>=x> conditions (Tom)
-
-
- In some cases these could get ignored as redundant, but they aren't
- — they're equivalent to x> IS NOT NULL>.
-
-
-
-
- Make text search parser accept underscores in XML attributes (Peter)
-
-
-
-
- Fix encoding handling in xml> binary input (Heikki)
-
-
- If the XML header doesn't specify an encoding, we now assume UTF-8 by
- default; the previous handling was inconsistent.
-
-
-
-
- Fix bug with calling plperl> from plperlu> or vice
- versa (Tom)
-
-
- An error exit from the inner function could result in crashes due to
- failure to re-select the correct Perl interpreter for the outer function.
-
-
-
-
- Fix session-lifespan memory leak when a PL/Perl function is redefined
- (Tom)
-
-
-
-
- Ensure that Perl arrays are properly converted to
-
PostgreSQL> arrays when returned by a set-returning
- PL/Perl function (Andrew Dunstan, Abhijit Menon-Sen)
-
-
- This worked correctly already for non-set-returning functions.
-
-
-
-
- Fix rare crash in exception processing in PL/Python (Peter)
-
-
-
-
- In contrib/pg_standby>, disable triggering failover with a
- signal on Windows (Fujii Masao)
-
-
- This never did anything useful, because Windows doesn't have Unix-style
- signals, but recent changes made it actually crash.
-
-
-
-
- Ensure
psql>'s flex module is compiled with the correct
- system header definitions (Tom)
-
-
- This fixes build failures on platforms where
- --enable-largefile> causes incompatible changes in the
- generated code.
-
-
-
-
- Make the postmaster ignore any application_name> parameter in
- connection request packets, to improve compatibility with future libpq
- versions (Tom)
-
-
-
-
- Update the timezone abbreviation files to match current reality (Joachim
- Wieland)
-
-
- This includes adding IDT> and SGT> to the default
- timezone abbreviation set.
-
-
-
-
- Update time zone data files to
tzdata> release 2009s
- for DST law changes in Antarctica, Argentina, Bangladesh, Fiji,
- Novokuznetsk, Pakistan, Palestine, Samoa, Syria; also historical
- corrections for Hong Kong.
-
-
-
-
-
-
-
-
-
-
Release 8.3.8
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.7.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.8
-
- A dump/restore is not required for those running 8.3.X.
- However, if you have any hash indexes on interval> columns,
- you must REINDEX> them after updating to 8.3.8.
- Also, if you are upgrading from a version earlier than 8.3.5,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix Windows shared-memory allocation code (Tsutomu Yamada, Magnus)
-
-
- This bug led to the often-reported could not reattach
- to shared memory> error message.
-
-
-
-
- Force WAL segment switch during pg_start_backup()>
- (Heikki)
-
-
- This avoids corner cases that could render a base backup unusable.
-
-
-
-
- Disallow RESET ROLE> and RESET SESSION
- AUTHORIZATION> inside security-definer functions (Tom, Heikki)
-
-
- This covers a case that was missed in the previous patch that
- disallowed SET ROLE> and SET SESSION
- AUTHORIZATION> inside security-definer functions.
- (See CVE-2007-6600)
-
-
-
-
- Make LOAD> of an already-loaded loadable module
- into a no-op (Tom)
-
-
- Formerly, LOAD> would attempt to unload and re-load the
- module, but this is unsafe and not all that useful.
-
-
-
-
- Disallow empty passwords during LDAP authentication (Magnus)
-
-
-
-
- Fix handling of sub-SELECTs appearing in the arguments of
- an outer-level aggregate function (Tom)
-
-
-
-
- Fix bugs associated with fetching a whole-row value from the
- output of a Sort or Materialize plan node (Tom)
-
-
-
-
- Prevent synchronize_seqscans> from changing the results of
- scrollable and WITH HOLD> cursors (Tom)
-
-
-
-
- Revert planner change that disabled partial-index and constraint
- exclusion optimizations when there were more than 100 clauses in
- an AND or OR list (Tom)
-
-
-
-
- Fix hash calculation for data type interval> (Tom)
-
-
- This corrects wrong results for hash joins on interval values.
- It also changes the contents of hash indexes on interval columns.
- If you have any such indexes, you must REINDEX> them
- after updating.
-
-
-
-
- Treat to_char(..., 'TH')> as an uppercase ordinal
- suffix with 'HH'>/'HH12'> (Heikki)
-
-
- It was previously handled as 'th'> (lowercase).
-
-
-
-
- Fix overflow for INTERVAL 'x> ms'
- when x> is more than 2 million and integer
- datetimes are in use (Alex Hunsaker)
-
-
-
-
- Fix calculation of distance between a point and a line segment (Tom)
-
-
- This led to incorrect results from a number of geometric operators.
-
-
-
-
- Fix money> data type to work in locales where currency
- amounts have no fractional digits, e.g. Japan (Itagaki Takahiro)
-
-
-
-
- Fix LIKE> for case where pattern contains %_>
- (Tom)
-
-
-
-
- Properly round datetime input like
- 00:12:57.9999999999999999999999999999> (Tom)
-
-
-
-
- Fix memory leaks in XML operations (Tom)
-
-
-
-
- Fix poor choice of page split point in GiST R-tree operator classes
- (Teodor)
-
-
-
-
- Ensure that a fast shutdown> request will forcibly terminate
- open sessions, even if a smart shutdown> was already in progress
- (Fujii Masao)
-
-
-
-
- Avoid performance degradation in bulk inserts into GIN indexes
- when the input values are (nearly) in sorted order (Tom)
-
-
-
-
- Correctly enforce NOT NULL domain constraints in some contexts in
- PL/pgSQL (Tom)
-
-
-
-
- Fix portability issues in plperl initialization (Andrew Dunstan)
-
-
-
-
- Fix
pg_ctl> to not go into an infinite loop if
- postgresql.conf> is empty (Jeff Davis)
-
-
-
-
- Improve
pg_dump>'s efficiency when there are
- many large objects (Tamas Vincze)
-
-
-
-
- Use SIGUSR1>, not SIGQUIT>, as the
- failover signal for
pg_standby> (Heikki)
-
-
-
-
- Make
pg_standby>'s maxretries> option
- behave as documented (Fujii Masao)
-
-
-
-
- Make contrib/hstore> throw an error when a key or
- value is too long to fit in its data structure, rather than
- silently truncating it (Andrew Gierth)
-
-
-
-
- Fix contrib/xml2>'s xslt_process()> to
- properly handle the maximum number of parameters (twenty) (Tom)
-
-
-
-
- Improve robustness of
libpq>'s code to recover
- from errors during COPY FROM STDIN> (Tom)
-
-
-
-
- Avoid including conflicting readline and editline header files
- when both libraries are installed (Zdenek Kotala)
-
-
-
-
- Update time zone data files to
tzdata> release 2009l
- for DST law changes in Bangladesh, Egypt, Jordan, Pakistan,
- Argentina/San_Luis, Cuba, Jordan (historical correction only),
- Mauritius, Morocco, Palestine, Syria, Tunisia.
-
-
-
-
-
-
-
-
-
-
Release 8.3.7
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.6.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.7
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.5,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Prevent error recursion crashes when encoding conversion fails (Tom)
-
-
- This change extends fixes made in the last two minor releases for
- related failure scenarios. The previous fixes were narrowly tailored
- for the original problem reports, but we have now recognized that
- any> error thrown by an encoding conversion function could
- potentially lead to infinite recursion while trying to report the
- error. The solution therefore is to disable translation and encoding
- conversion and report the plain-ASCII form of any error message,
- if we find we have gotten into a recursive error reporting situation.
- (CVE-2009-0922)
-
-
-
-
- Disallow CREATE CONVERSION> with the wrong encodings
- for the specified conversion function (Heikki)
-
-
- This prevents one possible scenario for encoding conversion failure.
- The previous change is a backstop to guard against other kinds of
- failures in the same area.
-
-
-
-
- Fix xpath()> to not modify the path expression unless
- necessary, and to make a saner attempt at it when necessary (Andrew)
-
-
- The SQL standard suggests that xpath> should work on data
- that is a document fragment, but
libxml> doesn't support
- that, and indeed it's not clear that this is sensible according to the
- XPath standard. xpath> attempted to work around this
- mismatch by modifying both the data and the path expression, but the
- modification was buggy and could cause valid searches to fail. Now,
- xpath> checks whether the data is in fact a well-formed
- document, and if so invokes
libxml> with no change to the
- data or path expression. Otherwise, a different modification method
- that is somewhat less likely to fail is used.
-
-
-
- The new modification method is still not 100% satisfactory, and it
- seems likely that no real solution is possible. This patch should
- therefore be viewed as a band-aid to keep from breaking existing
- applications unnecessarily. It is likely that
-
PostgreSQL> 8.4 will simply reject use of
- xpath> on data that is not a well-formed document.
-
-
-
-
-
- Fix core dump when to_char()> is given format codes that
- are inappropriate for the type of the data argument (Tom)
-
-
-
-
- Fix possible failure in text search when C locale is used with
- a multi-byte encoding (Teodor)
-
-
- Crashes were possible on platforms where wchar_t> is narrower
- than int>; Windows in particular.
-
-
-
-
- Fix extreme inefficiency in text search parser's handling of an
- email-like string containing multiple @> characters (Heikki)
-
-
-
-
- Fix planner problem with sub-SELECT> in the output list
- of a larger subquery (Tom)
-
-
- The known symptom of this bug is a failed to locate grouping
- columns> error that is dependent on the datatype involved;
- but there could be other issues as well.
-
-
-
-
- Fix decompilation of CASE WHEN> with an implicit coercion
- (Tom)
-
-
- This mistake could lead to Assert failures in an Assert-enabled build,
- or an unexpected CASE WHEN clause> error message in other
- cases, when trying to examine or dump a view.
-
-
-
-
- Fix possible misassignment of the owner of a TOAST table's rowtype (Tom)
-
-
- If CLUSTER> or a rewriting variant of ALTER TABLE>
- were executed by someone other than the table owner, the
- pg_type> entry for the table's TOAST table would end up
- marked as owned by that someone. This caused no immediate problems,
- since the permissions on the TOAST rowtype aren't examined by any
- ordinary database operation. However, it could lead to unexpected
- failures if one later tried to drop the role that issued the command
- (in 8.1 or 8.2), or owner of data type appears to be invalid>
- warnings from
pg_dump> after having done so (in 8.3).
-
-
-
-
- Change UNLISTEN> to exit quickly if the current session has
- never executed any LISTEN> command (Tom)
-
-
- Most of the time this is not a particularly useful optimization, but
- since DISCARD ALL> invokes UNLISTEN>, the previous
- coding caused a substantial performance problem for applications that
- made heavy use of DISCARD ALL>.
-
-
-
-
- Fix PL/pgSQL to not treat INTO> after INSERT> as
- an INTO-variables clause anywhere in the string, not only at the start;
- in particular, don't fail for INSERT INTO> within
- CREATE RULE> (Tom)
-
-
-
-
- Clean up PL/pgSQL error status variables fully at block exit
- (Ashesh Vashi and Dave Page)
-
-
- This is not a problem for PL/pgSQL itself, but the omission could cause
- the PL/pgSQL Debugger to crash while examining the state of a function.
-
-
-
-
- Retry failed calls to CallNamedPipe()> on Windows
- (Steve Marshall, Magnus)
-
-
- It appears that this function can sometimes fail transiently;
- we previously treated any failure as a hard error, which could
- confuse LISTEN>/NOTIFY> as well as other
- operations.
-
-
-
-
- Add MUST> (Mauritius Island Summer Time) to the default list
- of known timezone abbreviations (Xavier Bugaud)
-
-
-
-
-
-
-
-
-
-
Release 8.3.6
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.5.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.6
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.5,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Make DISCARD ALL> release advisory locks, in addition
- to everything it already did (Tom)
-
-
- This was decided to be the most appropriate behavior. This could
- affect existing applications, however.
-
-
-
-
- Fix whole-index GiST scans to work correctly (Teodor)
-
-
- This error could cause rows to be lost if a table is clustered
- on a GiST index.
-
-
-
-
- Fix crash of xmlconcat(NULL)> (Peter)
-
-
-
-
- Fix possible crash in ispell> dictionary if high-bit-set
- characters are used as flags (Teodor)
-
-
- This is known to be done by one widely available Norwegian dictionary,
- and the same condition may exist in others.
-
-
-
-
- Fix misordering of
pg_dump> output for composite types
- (Tom)
-
-
- The most likely problem was for user-defined operator classes to
- be dumped after indexes or views that needed them.
-
-
-
-
- Improve handling of URLs in headline()> function (Teodor)
-
-
-
-
- Improve handling of overlength headlines in headline()>
- function (Teodor)
-
-
-
-
- Prevent possible Assert failure or misconversion if an encoding
- conversion is created with the wrong conversion function for the
- specified pair of encodings (Tom, Heikki)
-
-
-
-
- Fix possible Assert failure if a statement executed in PL/pgSQL is
- rewritten into another kind of statement, for example if an
- INSERT> is rewritten into an UPDATE> (Heikki)
-
-
-
-
- Ensure that a snapshot is available to datatype input functions (Tom)
-
-
- This primarily affects domains that are declared with CHECK>
- constraints involving user-defined stable or immutable functions. Such
- functions typically fail if no snapshot has been set.
-
-
-
-
- Make it safer for SPI-using functions to be used within datatype I/O;
- in particular, to be used in domain check constraints (Tom)
-
-
-
-
- Avoid unnecessary locking of small tables in VACUUM>
- (Heikki)
-
-
-
-
- Fix a problem that sometimes kept ALTER TABLE ENABLE/DISABLE
- RULE> from being recognized by active sessions (Tom)
-
-
-
-
- Fix a problem that made UPDATE RETURNING tableoid>
- return zero instead of the correct OID (Tom)
-
-
-
-
- Allow functions declared as taking ANYARRAY> to work on
- the pg_statistic> columns of that type (Tom)
-
-
- This used to work, but was unintentionally broken in 8.3.
-
-
-
-
- Fix planner misestimation of selectivity when transitive equality
- is applied to an outer-join clause (Tom)
-
-
- This could result in bad plans for queries like
- ... from a left join b on a.a1 = b.b1 where a.a1 = 42 ...>
-
-
-
-
- Improve optimizer's handling of long IN> lists (Tom)
-
-
- This change avoids wasting large amounts of time on such lists
- when constraint exclusion is enabled.
-
-
-
-
- Prevent synchronous scan during GIN index build (Tom)
-
-
- Because GIN is optimized for inserting tuples in increasing TID order,
- choosing to use a synchronous scan could slow the build by a factor of
- three or more.
-
-
-
-
- Ensure that the contents of a holdable cursor don't depend on the
- contents of TOAST tables (Tom)
-
-
- Previously, large field values in a cursor result might be represented
- as TOAST pointers, which would fail if the referenced table got dropped
- before the cursor is read, or if the large value is deleted and then
- vacuumed away. This cannot happen with an ordinary cursor,
- but it could with a cursor that is held past its creating transaction.
-
-
-
-
- Fix memory leak when a set-returning function is terminated without
- reading its whole result (Tom)
-
-
-
-
- Fix encoding conversion problems in XML functions when the database
- encoding isn't UTF-8 (Tom)
-
-
-
-
- Fix contrib/dblink>'s
- dblink_get_result(text,bool)> function (Joe)
-
-
-
-
- Fix possible garbage output from contrib/sslinfo> functions
- (Tom)
-
-
-
-
- Fix incorrect behavior of contrib/tsearch2> compatibility
- trigger when it's fired more than once in a command (Teodor)
-
-
-
-
- Fix possible mis-signaling in autovacuum (Heikki)
-
-
-
-
- Support running as a service on Windows 7 beta (Dave and Magnus)
-
-
-
-
- Fix
ecpg>'s handling of varchar structs (Michael)
-
-
-
-
- Fix
configure> script to properly report failure when
- unable to obtain linkage information for PL/Perl (Andrew)
-
-
-
-
- Make all documentation reference pgsql-bugs> and/or
- pgsql-hackers> as appropriate, instead of the
- now-decommissioned pgsql-ports> and pgsql-patches>
- mailing lists (Tom)
-
-
-
-
- Update time zone data files to
tzdata> release 2009a (for
- Kathmandu and historical DST corrections in Switzerland, Cuba)
-
-
-
-
-
-
-
-
-
-
Release 8.3.5
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.4.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.5
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.1,
- see . Also, if you were running a previous
- 8.3.X release, it is recommended to REINDEX> all GiST
- indexes after the upgrade.
-
-
-
-
-
-
Changes
-
-
-
-
- Fix GiST index corruption due to marking the wrong index entry
- dead> after a deletion (Teodor)
-
-
- This would result in index searches failing to find rows they
- should have found. Corrupted indexes can be fixed with
- REINDEX>.
-
-
-
-
- Fix backend crash when the client encoding cannot represent a localized
- error message (Tom)
-
-
- We have addressed similar issues before, but it would still fail if
- the character has no equivalent> message itself couldn't
- be converted. The fix is to disable localization and send the plain
- ASCII error message when we detect such a situation.
-
-
-
-
- Fix possible crash in bytea>-to-XML mapping (Michael McMaster)
-
-
-
-
- Fix possible crash when deeply nested functions are invoked from
- a trigger (Tom)
-
-
-
-
- Improve optimization of expression> IN>
- (expression-list>) queries (Tom, per an idea from Robert
- Haas)
-
-
- Cases in which there are query variables on the right-hand side had been
- handled less efficiently in 8.2.x and 8.3.x than in prior versions.
- The fix restores 8.1 behavior for such cases.
-
-
-
-
- Fix mis-expansion of rule queries when a sub-SELECT> appears
- in a function call in FROM>, a multi-row VALUES>
- list, or a RETURNING> list (Tom)
-
-
- The usual symptom of this problem is an unrecognized node type>
- error.
-
-
-
-
- Fix Assert failure during rescan of an IS NULL>
- search of a GiST index (Teodor)
-
-
-
-
- Fix memory leak during rescan of a hashed aggregation plan (Neil)
-
-
-
-
- Ensure an error is reported when a newly-defined PL/pgSQL trigger
- function is invoked as a normal function (Tom)
-
-
-
-
- Force a checkpoint before CREATE DATABASE> starts to copy
- files (Heikki)
-
-
- This prevents a possible failure if files had recently been deleted
- in the source database.
-
-
-
-
- Prevent possible collision of relfilenode> numbers
- when moving a table to another tablespace with ALTER SET
- TABLESPACE> (Heikki)
-
-
- The command tried to re-use the existing filename, instead of
- picking one that is known unused in the destination directory.
-
-
-
-
- Fix incorrect text search headline generation when single query
- item matches first word of text (Sushant Sinha)
-
-
-
-
- Fix improper display of fractional seconds in interval values when
- using a non-ISO datestyle in an --enable-integer-datetimes>
- build (Ron Mayer)
-
-
-
-
- Make ILIKE> compare characters case-insensitively
- even when they're escaped (Andrew)
-
-
-
-
- Ensure DISCARD> is handled properly by statement logging (Tom)
-
-
-
-
- Fix incorrect logging of last-completed-transaction time during
- PITR recovery (Tom)
-
-
-
-
- Ensure SPI_getvalue> and SPI_getbinval>
- behave correctly when the passed tuple and tuple descriptor have
- different numbers of columns (Tom)
-
-
- This situation is normal when a table has had columns added or removed,
- but these two functions didn't handle it properly.
- The only likely consequence is an incorrect error indication.
-
-
-
-
- Mark SessionReplicationRole> as PGDLLIMPORT>
- so it can be used by
Slony> on Windows (Magnus)
-
-
-
-
- Fix small memory leak when using
libpq>'s
- gsslib> parameter (Magnus)
-
-
- The space used by the parameter string was not freed at connection
- close.
-
-
-
-
- Ensure
libgssapi> is linked into libpq>
- if needed (Markus Schaaf)
-
-
-
-
- Fix
ecpg>'s parsing of CREATE ROLE> (Michael)
-
-
-
-
- Fix recent breakage of pg_ctl restart> (Tom)
-
-
-
-
- Ensure pg_control> is opened in binary mode
- (Itagaki Takahiro)
-
-
-
pg_controldata> and pg_resetxlog>
- did this incorrectly, and so could fail on Windows.
-
-
-
-
- Update time zone data files to
tzdata> release 2008i (for
- DST law changes in Argentina, Brazil, Mauritius, Syria)
-
-
-
-
-
-
-
-
-
-
Release 8.3.4
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.3.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.4
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.1,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix bug in btree WAL recovery code (Heikki)
-
-
- Recovery failed if the WAL ended partway through a page split operation.
-
-
-
-
- Fix potential use of wrong cutoff XID for HOT page pruning (Alvaro)
-
-
- This error created a risk of corruption in system
- catalogs that are consulted by VACUUM>: dead tuple versions
- might be removed too soon. The impact of this on actual database
- operations would be minimal, since the system doesn't follow MVCC
- rules while examining catalogs, but it might result in transiently
- wrong output from
pg_dump> or other client programs.
-
-
-
-
- Fix potential miscalculation of datfrozenxid> (Alvaro)
-
-
- This error may explain some recent reports of failure to remove old
- pg_clog> data.
-
-
-
-
- Fix incorrect HOT updates after pg_class> is reindexed
- (Tom)
-
-
- Corruption of pg_class> could occur if REINDEX
- TABLE pg_class> was followed in the same session by an ALTER
- TABLE RENAME> or ALTER TABLE SET SCHEMA> command.
-
-
-
-
- Fix missed combo cid> case (Karl Schnaitter)
-
-
- This error made rows incorrectly invisible to a transaction in which they
- had been deleted by multiple subtransactions that all aborted.
-
-
-
-
- Prevent autovacuum from crashing if the table it's currently
- checking is deleted at just the wrong time (Alvaro)
-
-
-
-
- Widen local lock counters from 32 to 64 bits (Tom)
-
-
- This responds to reports that the counters could overflow in
- sufficiently long transactions, leading to unexpected lock is
- already held> errors.
-
-
-
-
- Fix possible duplicate output of tuples during a GiST index scan (Teodor)
-
-
-
-
- Regenerate foreign key checking queries from scratch when either
- table is modified (Tom)
-
-
- Previously, 8.3 would attempt to replan the query, but would work from
- previously generated query text. This led to failures if a
- table or column was renamed.
-
-
-
-
- Fix missed permissions checks when a view contains a simple
- UNION ALL> construct (Heikki)
-
-
- Permissions for the referenced tables were checked properly, but not
- permissions for the view itself.
-
-
-
-
- Add checks in executor startup to ensure that the tuples produced by an
- INSERT> or UPDATE> will match the target table's
- current rowtype (Tom)
-
-
- This situation is believed to be impossible in 8.3, but it can happen in
- prior releases, so a check seems prudent.
-
-
-
-
- Fix possible repeated drops during DROP OWNED> (Tom)
-
-
- This would typically result in strange errors such as cache
- lookup failed for relation NNN>.
-
-
-
-
- Fix several memory leaks in XML operations (Kris Jurka, Tom)
-
-
-
-
- Fix xmlserialize()> to raise error properly for
- unacceptable target data type (Tom)
-
-
-
-
- Fix a couple of places that mis-handled multibyte characters in text
- search configuration file parsing (Tom)
-
-
- Certain characters occurring in configuration files would always cause
- invalid byte sequence for encoding> failures.
-
-
-
-
- Provide file name and line number location for all errors reported
- in text search configuration files (Tom)
-
-
-
-
- Fix AT TIME ZONE> to first try to interpret its timezone
- argument as a timezone abbreviation, and only try it as a full timezone
- name if that fails, rather than the other way around as formerly (Tom)
-
-
- The timestamp input functions have always resolved ambiguous zone names
- in this order. Making AT TIME ZONE> do so as well improves
- consistency, and fixes a compatibility bug introduced in 8.1:
- in ambiguous cases we now behave the same as 8.0 and before did,
- since in the older versions AT TIME ZONE> accepted
- only> abbreviations.
-
-
-
-
- Fix datetime input functions to correctly detect integer overflow when
- running on a 64-bit platform (Tom)
-
-
-
-
- Prevent integer overflows during units conversion when displaying a
- configuration parameter that has units (Tom)
-
-
-
-
- Improve performance of writing very long log messages to syslog (Tom)
-
-
-
-
- Allow spaces in the suffix part of an LDAP URL in
- pg_hba.conf> (Tom)
-
-
-
-
- Fix bug in backwards scanning of a cursor on a SELECT DISTINCT
- ON> query (Tom)
-
-
-
-
- Fix planner bug that could improperly push down IS NULL>
- tests below an outer join (Tom)
-
-
- This was triggered by occurrence of IS NULL> tests for
- the same relation in all arms of an upper OR> clause.
-
-
-
-
- Fix planner bug with nested sub-select expressions (Tom)
-
-
- If the outer sub-select has no direct dependency on the parent query,
- but the inner one does, the outer value might not get recalculated
- for new parent query rows.
-
-
-
-
- Fix planner to estimate that GROUP BY> expressions yielding
- boolean results always result in two groups, regardless of the
- expressions' contents (Tom)
-
-
- This is very substantially more accurate than the regular GROUP
- BY> estimate for certain boolean tests like col>
- IS NULL>.
-
-
-
-
- Fix PL/pgSQL to not fail when a FOR> loop's target variable
- is a record containing composite-type fields (Tom)
-
-
-
-
- Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
- about the encoding of data sent to or from Tcl (Tom)
-
-
-
-
- Improve performance of PQescapeBytea()> (Rudolf Leitgeb)
-
-
-
-
- On Windows, work around a Microsoft bug by preventing
-
libpq> from trying to send more than 64kB per system call
- (Magnus)
-
-
-
-
- Fix
ecpg> to handle variables properly in SET>
- commands (Michael)
-
-
-
-
- Improve
pg_dump> and pg_restore>'s
- error reporting after failure to send a SQL command (Tom)
-
-
-
-
- Fix
pg_ctl> to properly preserve postmaster
- command-line arguments across a restart> (Bruce)
-
-
-
-
- Fix erroneous WAL file cutoff point calculation in
-
-
-
-
- Update time zone data files to
tzdata> release 2008f (for
- DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
- Pakistan, Palestine, and Paraguay)
-
-
-
-
-
-
-
-
-
-
Release 8.3.3
-
-
-
Release date:
-
-
- This release contains one serious and one minor bug fix over 8.3.2.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.3
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.1,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Make pg_get_ruledef()> parenthesize negative constants (Tom)
-
-
- Before this fix, a negative constant in a view or rule might be dumped
- as, say, -42::integer>, which is subtly incorrect: it should
- be (-42)::integer> due to operator precedence rules.
- Usually this would make little difference, but it could interact with
- another recent patch to cause
-
PostgreSQL> to reject what had been a valid
- SELECT DISTINCT> view query. Since this could result in
-
pg_dump> output failing to reload, it is being treated
- as a high-priority fix. The only released versions in which dump
- output is actually incorrect are 8.3.1 and 8.2.7.
-
-
-
-
- Make ALTER AGGREGATE ... OWNER TO> update
- pg_shdepend> (Tom)
-
-
- This oversight could lead to problems if the aggregate was later
- involved in a DROP OWNED> or REASSIGN OWNED>
- operation.
-
-
-
-
-
-
-
-
-
-
Release 8.3.2
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.1.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.2
-
- A dump/restore is not required for those running 8.3.X.
- However, if you are upgrading from a version earlier than 8.3.1,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix ERRORDATA_STACK_SIZE exceeded crash that
- occurred on Windows when using UTF-8 database encoding and a different
- client encoding (Tom)
-
-
-
-
- Fix incorrect archive truncation point calculation for the
- %r> macro in restore_command> parameters
- (Simon)
-
-
- This could lead to data loss if a warm-standby script relied on
- %r> to decide when to throw away WAL segment files.
-
-
-
-
- Fix ALTER TABLE ADD COLUMN ... PRIMARY KEY> so that the new
- column is correctly checked to see if it's been initialized to all
- non-nulls (Brendan Jurd)
-
-
- Previous versions neglected to check this requirement at all.
-
-
-
-
- Fix REASSIGN OWNED> so that it works on procedural
- languages too (Alvaro)
-
-
-
-
- Fix problems with SELECT FOR UPDATE/SHARE> occurring as a
- subquery in a query with a non-SELECT> top-level operation
- (Tom)
-
-
-
-
- Fix possible CREATE TABLE> failure when inheriting the
- same> constraint from multiple parent relations that
- inherited that constraint from a common ancestor (Tom)
-
-
-
-
- Fix pg_get_ruledef()> to show the alias, if any, attached
- to the target table of an UPDATE> or DELETE>
- (Tom)
-
-
-
-
- Restore the pre-8.3 behavior that an out-of-range block number in a
- TID being used in a TidScan plan results in silently not matching any
- rows (Tom)
-
-
- 8.3.0 and 8.3.1 threw an error instead.
-
-
-
-
- Fix GIN bug that could result in a too many LWLocks
- taken failure (Teodor)
-
-
-
-
- Fix broken GiST comparison function for tsquery> (Teodor)
-
-
-
-
- Fix tsvector_update_trigger()> and ts_stat()>
- to accept domains over the types they expect to work with (Tom)
-
-
-
-
- Fix failure to support enum data types as foreign keys (Tom)
-
-
-
-
- Avoid possible crash when decompressing corrupted data
- (Zdenek Kotala)
-
-
-
-
- Fix race conditions between delayed unlinks and DROP
- DATABASE> (Heikki)
-
-
- In the worst case this could result in deleting a newly created table
- in a new database that happened to get the same OID as the
- recently-dropped one; but of course that is an extremely
- low-probability scenario.
-
-
-
-
- Repair two places where SIGTERM exit of a backend could leave corrupted
- state in shared memory (Tom)
-
-
- Neither case is very important if SIGTERM is used to shut down the
- whole database cluster together, but there was a problem if someone
- tried to SIGTERM individual backends.
-
-
-
-
- Fix possible crash due to incorrect plan generated for an
- x> IN (SELECT y>
- FROM ...) clause when x> and y>
- have different data types; and make sure the behavior is semantically
- correct when the conversion from y>'s type to
- x>'s type is lossy (Tom)
-
-
-
-
- Fix oversight that prevented the planner from substituting known Param
- values as if they were constants (Tom)
-
-
- This mistake partially disabled optimization of unnamed
- extended-Query statements in 8.3.0 and 8.3.1: in particular the
- LIKE-to-indexscan optimization would never be applied if the LIKE
- pattern was passed as a parameter, and constraint exclusion
- depending on a parameter value didn't work either.
-
-
-
-
- Fix planner failure when an indexable MIN> or
- MAX> aggregate is used with DISTINCT> or
- ORDER BY> (Tom)
-
-
-
-
- Fix planner to ensure it never uses a physical tlist> for a
- plan node that is feeding a Sort node (Tom)
-
-
- This led to the sort having to push around more data than it really
- needed to, since unused column values were included in the sorted
- data.
-
-
-
-
- Avoid unnecessary copying of query strings (Tom)
-
-
- This fixes a performance problem introduced in 8.3.0 when a very large
- number of commands are submitted as a single query string.
-
-
-
-
- Make TransactionIdIsCurrentTransactionId()> use binary
- search instead of linear search when checking child-transaction XIDs
- (Heikki)
-
-
- This fixes some cases in which 8.3.0 was significantly
- slower than earlier releases.
-
-
-
-
- Fix conversions between ISO-8859-5 and other encodings to handle
- Cyrillic Yo> characters (e> and E> with
- two dots) (Sergey Burladyan)
-
-
-
-
- Fix several datatype input functions, notably array_in()>,
- that were allowing unused bytes in their results to contain
- uninitialized, unpredictable values (Tom)
-
-
- This could lead to failures in which two apparently identical literal
- values were not seen as equal, resulting in the parser complaining
- about unmatched ORDER BY> and DISTINCT>
- expressions.
-
-
-
-
- Fix a corner case in regular-expression substring matching
- (substring(string> from
- pattern>)) (Tom)
-
-
- The problem occurs when there is a match to the pattern overall but
- the user has specified a parenthesized subexpression and that
- subexpression hasn't got a match. An example is
- substring('foo' from 'foo(bar)?')>.
- This should return NULL, since (bar)> isn't matched, but
- it was mistakenly returning the whole-pattern match instead (ie,
- foo>).
-
-
-
-
- Prevent cancellation of an auto-vacuum that was launched to prevent
- XID wraparound (Alvaro)
-
-
-
-
- Improve ANALYZE>'s handling of in-doubt tuples (those
- inserted or deleted by a not-yet-committed transaction) so that the
- counts it reports to the stats collector are more likely to be correct
- (Pavan Deolasee)
-
-
-
-
- Fix
initdb> to reject a relative path for its
- --xlogdir> (-X>) option (Tom)
-
-
-
-
- Make
psql> print tab characters as an appropriate
- number of spaces, rather than \x09 as was done in
- 8.3.0 and 8.3.1 (Bruce)
-
-
-
-
- Update time zone data files to
tzdata> release 2008c (for
- DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, and
- Argentina/San_Luis)
-
-
-
-
- Add ECPGget_PGconn()> function to
-
-
-
-
- Fix incorrect result from
ecpg>'s
- PGTYPEStimestamp_sub()> function (Michael)
-
-
-
-
- Fix handling of continuation line markers in
ecpg>
- (Michael)
-
-
-
-
- Fix possible crashes in contrib/cube> functions (Tom)
-
-
-
-
- Fix core dump in contrib/xml2>'s
- xpath_table()> function when the input query returns a
- NULL value (Tom)
-
-
-
-
- Fix contrib/xml2>'s makefile to not override
- CFLAGS>, and make it auto-configure properly for
-
libxslt> present or not (Tom)
-
-
-
-
-
-
-
-
-
-
Release 8.3.1
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.3.0.
- For information about new features in the 8.3 major release, see
- .
-
-
-
-
Migration to Version 8.3.1
-
- A dump/restore is not required for those running 8.3.X.
- However, you might need to REINDEX> indexes on textual
- columns after updating, if you are affected by the Windows locale
- issue described below.
-
-
-
-
-
-
Changes
-
-
-
-
- Fix character string comparison for Windows locales that consider
- different character combinations as equal (Tom)
-
-
- This fix applies only on Windows and only when using UTF-8
- database encoding. The same fix was made for all other cases
- over two years ago, but Windows with UTF-8 uses a separate code
- path that was not updated. If you are using a locale that
- considers some non-identical strings as equal, you may need to
- REINDEX> to fix existing indexes on textual columns.
-
-
-
-
- Repair corner-case bugs in VACUUM FULL> (Tom)
-
-
- A potential deadlock between concurrent VACUUM FULL>
- operations on different system catalogs was introduced in 8.2.
- This has now been corrected. 8.3 made this worse because the
- deadlock could occur within a critical code section, making it
- a PANIC rather than just ERROR condition.
-
-
- Also, a VACUUM FULL> that failed partway through
- vacuuming a system catalog could result in cache corruption in
- concurrent database sessions.
-
-
- Another VACUUM FULL> bug introduced in 8.3 could
- result in a crash or out-of-memory report when dealing with
- pages containing no live tuples.
-
-
-
-
- Fix misbehavior of foreign key checks involving character>
- or bit> columns (Tom)
-
-
- If the referencing column were of a different but compatible type
- (for instance varchar>), the constraint was enforced incorrectly.
-
-
-
-
- Avoid needless deadlock failures in no-op foreign-key checks (Stephan
- Szabo, Tom)
-
-
-
-
- Fix possible core dump when re-planning a prepared query (Tom)
-
-
- This bug affected only protocol-level prepare operations, not
- SQL PREPARE>, and so tended to be seen only with
- JDBC, DBI, and other client-side drivers that use prepared
- statements heavily.
-
-
-
-
- Fix possible failure when re-planning a query that calls an SPI-using
- function (Tom)
-
-
-
-
- Fix failure in row-wise comparisons involving columns of different
- datatypes (Tom)
-
-
-
-
- Fix longstanding LISTEN>/NOTIFY>
- race condition (Tom)
-
-
- In rare cases a session that had just executed a
- LISTEN> might not get a notification, even though
- one would be expected because the concurrent transaction executing
- NOTIFY> was observed to commit later.
-
-
- A side effect of the fix is that a transaction that has executed
- a not-yet-committed LISTEN> command will not see any
- row in pg_listener> for the LISTEN>,
- should it choose to look; formerly it would have. This behavior
- was never documented one way or the other, but it is possible that
- some applications depend on the old behavior.
-
-
-
-
- Disallow LISTEN> and UNLISTEN> within a
- prepared transaction (Tom)
-
-
- This was formerly allowed but trying to do it had various unpleasant
- consequences, notably that the originating backend could not exit
- as long as an UNLISTEN> remained uncommitted.
-
-
-
-
- Disallow dropping a temporary table within a
- prepared transaction (Heikki)
-
-
- This was correctly disallowed by 8.1, but the check was inadvertently
- broken in 8.2 and 8.3.
-
-
-
-
- Fix rare crash when an error occurs during a query using a hash index
- (Heikki)
-
-
-
-
- Fix incorrect comparison of tsquery> values (Teodor)
-
-
-
-
- Fix incorrect behavior of LIKE> with non-ASCII characters
- in single-byte encodings (Rolf Jentsch)
-
-
-
-
- Disable xmlvalidate> (Tom)
-
-
- This function should have been removed before 8.3 release, but
- was inadvertently left in the source code. It poses a small
- security risk since unprivileged users could use it to read the
- first few characters of any file accessible to the server.
-
-
-
-
- Fix memory leaks in certain usages of set-returning functions (Neil)
-
-
-
-
- Make encode(bytea>, 'escape')> convert all
- high-bit-set byte values into \>nnn> octal
- escape sequences (Tom)
-
-
- This is necessary to avoid encoding problems when the database
- encoding is multi-byte. This change could pose compatibility issues
- for applications that are expecting specific results from
- encode>.
-
-
-
-
- Fix input of datetime values for February 29 in years BC (Tom)
-
-
- The former coding was mistaken about which years were leap years.
-
-
-
-
- Fix unrecognized node type> error in some variants of
- ALTER OWNER> (Tom)
-
-
-
-
- Avoid tablespace permissions errors in CREATE TABLE LIKE
- INCLUDING INDEXES> (Tom)
-
-
-
-
- Ensure pg_stat_activity>.waiting> flag
- is cleared when a lock wait is aborted (Tom)
-
-
-
-
- Fix handling of process permissions on Windows Vista (Dave, Magnus)
-
-
- In particular, this fix allows starting the server as the Administrator
- user.
-
-
-
-
- Update time zone data files to
tzdata> release 2008a
- (in particular, recent Chile changes); adjust timezone abbreviation
- VET> (Venezuela) to mean UTC-4:30, not UTC-4:00 (Tom)
-
-
-
-
- Fix
ecpg> problems with arrays (Michael)
-
-
-
-
- Fix
pg_ctl> to correctly extract the postmaster's port
- number from command-line options (Itagaki Takahiro, Tom)
-
-
- Previously, pg_ctl start -w> could try to contact the
- postmaster on the wrong port, leading to bogus reports of startup
- failure.
-
-
-
-
- Use -fwrapv> to defend against possible misoptimization
- in recent
gcc> versions (Tom)
-
-
- This is known to be necessary when building
PostgreSQL>
- with
gcc> 4.3 or later.
-
-
-
-
- Enable building contrib/uuid-ossp> with MSVC (Hiroshi Saito)
-
-
-
-
-
-
-
-
-
-
Release 8.3
-
-
-
Release date:
-
-
-
-
Overview
-
- With significant new functionality and performance enhancements,
- this release represents a major leap forward for
-
PostgreSQL>. This was made possible by a growing
- community that has dramatically accelerated the pace of
- development. This release adds the following major features:
-
-
-
-
-
- Full text search is integrated into the core database system
-
-
-
-
- Support for the SQL/XML standard, including new operators and an
- XML data type
-
-
-
-
- Enumerated data types (ENUM )
-
-
-
-
- Arrays of composite types
-
-
-
-
- Universally Unique Identifier (UUID>) data type
-
-
-
-
- Add control over whether NULL>s sort first or last
-
-
-
-
- Updatable cursors
-
-
-
-
- Server configuration parameters can now be set on a per-function
- basis
-
-
-
-
- User-defined types can now have type modifiers
-
-
-
-
- Automatically re-plan cached queries when table
- definitions change or statistics are updated
-
-
-
-
- Numerous improvements in logging and statistics collection
-
-
-
-
- Support Security Service Provider Interface (
SSPI>) for
- authentication on Windows
-
-
-
-
- Support multiple concurrent autovacuum processes, and other
- autovacuum improvements
-
-
-
-
- Allow the whole
PostgreSQL> distribution to be compiled
- with
Microsoft Visual C++>
-
-
-
-
-
- Major performance improvements are listed below. Most of
- these enhancements are automatic and do not require user changes or
- tuning:
-
-
-
-
-
- Asynchronous commit delays writes to WAL during transaction commit
-
-
-
-
- Checkpoint writes can be spread over a longer time period to smooth
- the I/O spike during each checkpoint
-
-
-
-
- Heap-Only Tuples (
HOT>) accelerate space reuse for
- most UPDATE>s and DELETE>s
-
-
-
-
- Just-in-time background writer strategy improves disk write
- efficiency
-
-
-
-
- Using non-persistent transaction IDs for read-only transactions
- reduces overhead and VACUUM> requirements
-
-
-
-
- Per-field and per-row storage overhead has been reduced
-
-
-
-
- Large sequential scans no longer force out frequently used
- cached pages
-
-
-
-
- Concurrent large sequential scans can now share disk reads
-
-
-
-
- ORDER BY ... LIMIT> can be done without sorting
-
-
-
-
-
- The above items are explained in more detail in the sections below.
-
-
-
-
-
-
Migration to Version 8.3
-
- A dump/restore using
pg_dump is
- required for those wishing to migrate data from any previous
- release.
-
-
- Observe the following incompatibilities:
-
-
-
-
General
-
-
-
- Non-character data types are no longer automatically cast to
- TEXT> (Peter, Tom)
-
-
- Previously, if a non-character value was supplied to an operator or
- function that requires text> input, it was automatically
- cast to text>, for most (though not all) built-in data types.
- This no longer happens: an explicit cast to text> is now
- required for all non-character-string types. For example, these
- expressions formerly worked:
-
-substr(current_date, 1, 4)
-23 LIKE '2%'
-
-
- but will now draw function does not exist> and operator
- does not exist> errors respectively. Use an explicit cast instead:
-
-substr(current_date::text, 1, 4)
-23::text LIKE '2%'
-
-
- (Of course, you can use the more verbose CAST()> syntax too.)
- The reason for the change is that these automatic casts too often caused
- surprising behavior. An example is that in previous releases, this
- expression was accepted but did not do what was expected:
-
-current_date < 2017-11-17
-
-
- This is actually comparing a date to an integer, which should be
- (and now is) rejected — but in the presence of automatic
- casts both sides were cast to text> and a textual comparison
- was done, because the text < text> operator was able
- to match the expression when no other <> operator could.
-
-
- Types char(n>) and
- varchar(n>) still cast to text>
- automatically. Also, automatic casting to text> still works for
- inputs to the concatenation (||>) operator, so long as least
- one input is a character-string type.
-
-
-
-
- Full text search features from contrib/tsearch2> have
- been moved into the core server, with some minor syntax changes
-
-
- contrib/tsearch2> now contains a compatibility
- interface.
-
-
-
-
- ARRAY(SELECT ...) , where the SELECT>
- returns no rows, now returns an empty array, rather than NULL
- (Tom)
-
-
-
-
- The array type name for a base data type is no longer always the base
- type's name with an underscore prefix
-
-
- The old naming convention is still honored when possible, but
- application code should no longer depend on it. Instead
- use the new pg_type.typarray column to
- identify the array data type associated with a given type.
-
-
-
-
- ORDER BY ... USING> operator> must now
- use a less-than or greater-than operator> that is
- defined in a btree operator class
-
-
- This restriction was added to prevent inconsistent results.
-
-
-
-
- SET LOCAL changes now persist until
- the end of the outermost transaction, unless rolled back (Tom)
-
-
- Previously SET LOCAL 's effects were lost
- after subtransaction commit (RELEASE SAVEPOINT>
- or exit from a PL/pgSQL exception block).
-
-
-
-
- Commands rejected in transaction blocks are now also rejected in
- multiple-statement query strings (Tom)
-
-
- For example, "BEGIN; DROP DATABASE; COMMIT"> will now be
- rejected even if submitted as a single query message.
-
-
-
-
- ROLLBACK> outside a transaction block now
- issues NOTICE> instead of WARNING> (Bruce)
-
-
-
-
- Prevent NOTIFY /LISTEN /UNLISTEN
- from accepting schema-qualified names (Bruce)
-
-
- Formerly, these commands accepted schema.relation> but
- ignored the schema part, which was confusing.
-
-
-
-
- ALTER SEQUENCE> no longer affects the sequence's
- currval()> state (Tom)
-
-
-
-
- Foreign keys now must match indexable conditions for
- cross-data-type references (Tom)
-
-
- This improves semantic consistency and helps avoid
- performance problems.
-
-
-
-
- Restrict object size functions to users who have reasonable
- permissions to view such information (Tom)
-
-
- For example, pg_database_size() now requires
- CONNECT> permission, which is granted to everyone by
- default. pg_tablespace_size() requires
- CREATE> permission in the tablespace, or is allowed if
- the tablespace is the default tablespace for the database.
-
-
-
-
- Remove the undocumented !!=> (not in) operator (Tom)
-
-
- NOT IN (SELECT ...) is the proper way to
- perform this operation.
-
-
-
-
- Internal hashing functions are now more uniformly-distributed (Tom)
-
-
- If application code was computing and storing hash values using
- internal
PostgreSQL> hashing functions, the hash
- values must be regenerated.
-
-
-
-
- C-code conventions for handling variable-length data values
- have changed (Greg Stark, Tom)
-
-
- The new SET_VARSIZE()> macro must> be used
- to set the length of generated varlena> values. Also, it
- might be necessary to expand (de-TOAST
) input values
- in more cases.
-
-
-
-
- Continuous archiving no longer reports each successful archive
- operation to the server logs unless DEBUG> level is used
- (Simon)
-
-
-
-
-
-
-
-
-
Configuration Parameters
-
-
-
-
- Numerous changes in administrative server parameters
-
-
- bgwriter_lru_percent>,
- bgwriter_all_percent>,
- bgwriter_all_maxpages>,
- stats_start_collector>, and
- stats_reset_on_server_start> are removed.
- redirect_stderr> is renamed to
- logging_collector>.
- stats_command_string> is renamed to
- track_activities>.
- stats_block_level> and stats_row_level>
- are merged into track_counts>.
- A new boolean configuration parameter, archive_mode>,
- controls archiving. Autovacuum's default settings have changed.
-
-
-
-
- Remove stats_start_collector parameter (Tom)
-
-
- We now always start the collector process, unless
UDP>
- socket creation fails.
-
-
-
-
- Remove stats_reset_on_server_start parameter (Tom)
-
-
- This was removed because pg_stat_reset()
- can be used for this purpose.
-
-
-
-
- Commenting out a parameter in postgresql.conf> now
- causes it to revert to its default value (Joachim Wieland)
-
-
- Previously, commenting out an entry left the parameter's value unchanged
- until the next server restart.
-
-
-
-
-
-
-
-
-
-
Character Encodings
-
-
-
-
- Add more checks for invalidly-encoded data (Andrew)
-
-
- This change plugs some holes that existed in literal backslash
- escape string processing and COPY escape
- processing. Now the de-escaped string is rechecked to see if the
- result created an invalid multi-byte character.
-
-
-
-
- Disallow database encodings that are inconsistent with the server's
- locale setting (Tom)
-
-
- On most platforms, C> locale is the only locale that
- will work with any database encoding. Other locale settings imply
- a specific encoding and will misbehave if the database encoding
- is something different. (Typical symptoms include bogus textual
- sort order and wrong results from upper()> or
- lower()>.) The server now rejects attempts to create
- databases that have an incompatible encoding.
-
-
-
-
- Ensure that chr() cannot create
- invalidly-encoded values (Andrew)
-
-
- In UTF8-encoded databases the argument of chr() is
- now treated as a Unicode code point. In other multi-byte encodings
- chr() 's argument must designate a 7-bit ASCII
- character. Zero is no longer accepted.
- ascii() has been adjusted to match.
-
-
-
-
- Adjust convert() behavior to ensure encoding
- validity (Andrew)
-
-
- The two argument form of convert() has been
- removed. The three argument form now takes a bytea
- first argument and returns a bytea . To cover the
- loss of functionality, three new functions have been added:
-
-
-
-
- convert_from(bytea, name) returns
- text> — converts the first argument from the named
- encoding to the database encoding
-
-
-
-
- convert_to(text, name) returns
- bytea> — converts the first argument from the
- database encoding to the named encoding
-
-
-
-
- length(bytea, name) returns
- integer> — gives the length of the first
- argument in characters in the named encoding
-
-
-
-
-
-
- Remove convert(argument USING conversion_name)
- (Andrew)
-
-
- Its behavior did not match the SQL standard.
-
-
-
-
- Make JOHAB encoding client-only (Tatsuo)
-
-
- JOHAB is not safe as a server-side encoding.
-
-
-
-
-
-
-
-
-
-
-
Changes
-
- Below you will find a detailed account of the
- changes between
PostgreSQL 8.3 and
- the previous major release.
-
-
-
-
Performance
-
-
-
- Asynchronous commit delays writes to WAL during transaction commit
- (Simon)
-
-
- This feature dramatically increases performance for short data-modifying
- transactions. The disadvantage is that because disk writes are delayed,
- if the database or operating system crashes before data is written to
- the disk, committed data will be lost. This feature is useful for
- applications that can accept some data loss. Unlike turning off
- fsync , using asynchronous commit does not put
- database consistency at risk; the worst case is that after a crash the
- last few reportedly-committed transactions might not be committed after
- all.
- This feature is enabled by turning off synchronous_commit>
- (which can be done per-session or per-transaction, if some transactions
- are critical and others are not).
- wal_writer_delay> can be adjusted to control the maximum
- delay before transactions actually reach disk.
-
-
-
-
- Checkpoint writes can be spread over a longer time period to smooth
- the I/O spike during each checkpoint (Itagaki Takahiro and Heikki
- Linnakangas)
-
-
- Previously all modified buffers were forced to disk as quickly as
- possible during a
- checkpoint, causing an I/O spike that decreased server performance.
- This new approach spreads out disk writes during checkpoints,
- reducing peak I/O usage. (User-requested and shutdown checkpoints
- are still written as quickly as possible.)
-
-
-
-
- Heap-Only Tuples (
HOT>) accelerate space reuse for most
- UPDATE>s and DELETE>s (Pavan Deolasee, with
- ideas from many others)
-
-
- UPDATE>s and DELETE>s leave dead tuples
- behind, as do failed INSERT>s. Previously only
- VACUUM> could reclaim space taken by dead tuples. With
-
HOT> dead tuple space can be automatically reclaimed at
- the time of INSERT> or UPDATE> if no changes
- are made to indexed columns. This allows for more consistent
- performance. Also,
HOT> avoids adding duplicate index
- entries.
-
-
-
-
- Just-in-time background writer strategy improves disk write
- efficiency (Greg Smith, Itagaki Takahiro)
-
-
- This greatly reduces the need for manual tuning of the background
- writer.
-
-
-
-
- Per-field and per-row storage overhead have been reduced
- (Greg Stark, Heikki Linnakangas)
-
-
- Variable-length data types with data values less than 128 bytes long
- will see a storage decrease of 3 to 6 bytes. For example, two adjacent
- char(1) fields now use 4 bytes instead of 16. Row headers
- are also 4 bytes shorter than before.
-
-
-
-
- Using non-persistent transaction IDs for read-only transactions
- reduces overhead and VACUUM> requirements (Florian Pflug)
-
-
- Non-persistent transaction IDs do not increment the global
- transaction counter. Therefore, they reduce the load on
- pg_clog> and increase the time between forced
- vacuums to prevent transaction ID wraparound.
- Other performance
- improvements were also made that should improve concurrency.
-
-
-
-
- Avoid incrementing the command counter after a read-only command (Tom)
-
-
- There was formerly a hard limit of 232>
- (4 billion) commands per transaction. Now only commands that
- actually changed the database count, so while this limit still
- exists, it should be significantly less annoying.
-
-
-
-
- Create a dedicated
WAL> writer process to off-load
- work from backends (Simon)
-
-
-
-
- Skip unnecessary WAL writes for CLUSTER and
- COPY (Simon)
-
-
- Unless WAL archiving is enabled, the system now avoids WAL writes
- for CLUSTER and just fsync()>s the
- table at the end of the command. It also does the same for
- COPY if the table was created in the same
- transaction.
-
-
-
-
- Large sequential scans no longer force out frequently used
- cached pages (Simon, Heikki, Tom)
-
-
-
-
- Concurrent large sequential scans can now share disk reads (Jeff Davis)
-
-
- This is accomplished by starting the new sequential scan in the
- middle of the table (where another sequential scan is already
- in-progress) and wrapping around to the beginning to finish. This
- can affect the order of returned rows in a query that does not
- specify ORDER BY>. The synchronize_seqscans>
- configuration parameter can be used to disable this if necessary.
-
-
-
-
- ORDER BY ... LIMIT> can be done without sorting
- (Greg Stark)
-
-
- This is done by sequentially scanning the table and tracking just
- the top N> candidate rows, rather than performing a
- full sort of the entire table. This is useful when there is no
- matching index and the LIMIT> is not large.
-
-
-
-
- Put a rate limit on messages sent to the statistics
- collector by backends
- (Tom)
-
-
- This reduces overhead for short transactions, but might sometimes
- increase the delay before statistics are tallied.
-
-
-
-
- Improve hash join performance for cases with many NULLs (Tom)
-
-
-
-
- Speed up operator lookup for cases with non-exact datatype matches (Tom)
-
-
-
-
-
-
-
-
-
Server
-
-
-
- Autovacuum is now enabled by default (Alvaro)
-
-
- Several changes were made to eliminate disadvantages of having
- autovacuum enabled, thereby justifying the change in default.
- Several other autovacuum parameter defaults were also modified.
-
-
-
-
- Support multiple concurrent autovacuum processes (Alvaro, Itagaki
- Takahiro)
-
-
- This allows multiple vacuums to run concurrently. This prevents
- vacuuming of a large table from delaying vacuuming of smaller tables.
-
-
-
-
- Automatically re-plan cached queries when table
- definitions change or statistics are updated (Tom)
-
-
- Previously PL/pgSQL functions that referenced temporary tables
- would fail if the temporary table was dropped and recreated
- between function invocations, unless EXECUTE> was
- used. This improvement fixes that problem and many related issues.
-
-
-
-
- Add a temp_tablespaces parameter to control
- the tablespaces for temporary tables and files (Jaime Casanova,
- Albert Cervera, Bernd Helmle)
-
-
- This parameter defines a list of tablespaces to be used. This
- enables spreading the I/O load across multiple tablespaces. A random
- tablespace is chosen each time a temporary object is created.
- Temporary files are no longer stored in per-database
- pgsql_tmp/ directories but in per-tablespace
- directories.
-
-
-
-
- Place temporary tables' TOAST tables in special schemas named
- pg_toast_temp_nnn> (Tom)
-
-
- This allows low-level code to recognize these tables as temporary,
- which enables various optimizations such as not WAL-logging changes
- and using local rather than shared buffers for access. This also
- fixes a bug wherein backends unexpectedly held open file references
- to temporary TOAST tables.
-
-
-
-
- Fix problem that a constant flow of new connection requests could
- indefinitely delay the postmaster from completing a shutdown or
- a crash restart (Tom)
-
-
-
-
- Guard against a very-low-probability data loss scenario by preventing
- re-use of a deleted table's relfilenode until after the next
- checkpoint (Heikki)
-
-
-
-
- Fix CREATE CONSTRAINT TRIGGER>
- to convert old-style foreign key trigger definitions into regular
- foreign key constraints (Tom)
-
-
- This will ease porting of foreign key constraints carried forward from
- pre-7.3 databases, if they were never converted using
- contrib/adddepend>.
-
-
-
-
- Fix DEFAULT NULL> to override inherited defaults (Tom)
-
-
- DEFAULT NULL> was formerly considered a noise phrase, but it
- should (and now does) override non-null defaults that would otherwise
- be inherited from a parent table or domain.
-
-
-
-
- Add new encodings EUC_JIS_2004 and SHIFT_JIS_2004 (Tatsuo)
-
-
- These new encodings can be converted to and from UTF-8.
-
-
-
-
- Change server startup log message from database system is
- ready to database system is ready to accept
- connections, and adjust its timing
-
-
- The message now appears only when the postmaster is really ready
- to accept connections.
-
-
-
-
-
-
-
-
-
Monitoring
-
-
-
- Add log_autovacuum_min_duration parameter to
- support configurable logging of autovacuum activity (Simon, Alvaro)
-
-
-
-
- Add log_lock_waits parameter to log lock waiting
- (Simon)
-
-
-
-
- Add log_temp_files parameter to log temporary
- file usage (Bill Moran)
-
-
-
-
- Add log_checkpoints parameter to improve logging
- of checkpoints (Greg Smith, Heikki)
-
-
-
-
- log_line_prefix now supports
- %s and %c escapes in all
- processes (Andrew)
-
-
- Previously these escapes worked only for user sessions, not for
- background database processes.
-
-
-
-
- Add log_restartpoints to control logging of
- point-in-time recovery restart points (Simon)
-
-
-
-
- Last transaction end time is now logged at end of recovery and at
- each logged restart point (Simon)
-
-
-
-
- Autovacuum now reports its activity start time in
- pg_stat_activity (Tom)
-
-
-
-
- Allow server log output in comma-separated value (CSV) format (Arul
- Shaji, Greg Smith, Andrew Dunstan)
-
-
- CSV-format log files can easily be loaded into a database table for
- subsequent analysis.
-
-
-
-
- Use PostgreSQL-supplied timezone support for formatting timestamps
- displayed in the server log (Tom)
-
-
- This avoids Windows-specific problems with localized time zone
- names that are in the wrong encoding. There is a new
- log_timezone> parameter that controls the timezone
- used in log messages, independently of the client-visible
- timezone> parameter.
-
-
-
-
- New system view pg_stat_bgwriter displays
- statistics about background writer activity (Magnus)
-
-
-
-
- Add new columns for database-wide tuple statistics to
- pg_stat_database (Magnus)
-
-
-
-
- Add an xact_start (transaction start time) column to
- pg_stat_activity (Neil)
-
-
- This makes it easier to identify long-running transactions.
-
-
-
-
- Add n_live_tuples> and n_dead_tuples> columns
- to pg_stat_all_tables and related views (Glen
- Parker)
-
-
-
-
- Merge stats_block_level> and stats_row_level>
- parameters into a single parameter track_counts>, which
- controls all messages sent to the statistics collector process
- (Tom)
-
-
-
-
- Rename stats_command_string parameter to
- track_activities (Tom)
-
-
-
-
- Fix statistical counting of live and dead tuples to recognize that
- committed and aborted transactions have different effects (Tom)
-
-
-
-
-
-
-
-
-
Authentication
-
-
-
- Support Security Service Provider Interface (
SSPI>) for
- authentication on Windows (Magnus)
-
-
-
-
- Support GSSAPI authentication (Henry Hotz, Magnus)
-
-
- This should be preferred to native Kerberos authentication because
- GSSAPI is an industry standard.
-
-
-
-
- Support a global SSL configuration file (Victor Wagner)
-
-
-
-
- Add ssl_ciphers> parameter to control accepted SSL ciphers
- (Victor Wagner)
-
-
-
-
- Add a Kerberos realm parameter, krb_realm> (Magnus)
-
-
-
-
-
-
-
-
-
Write-Ahead Log (WAL>) and Continuous Archiving
-
-
-
- Change the timestamps recorded in transaction WAL records from
- time_t to TimestampTz representation (Tom)
-
-
- This provides sub-second resolution in WAL, which can be useful for
- point-in-time recovery.
-
-
-
-
- Reduce WAL disk space needed by warm standby servers (Simon)
-
-
- This change allows a warm standby server to pass the name of the earliest
- still-needed WAL file to the recovery script, allowing automatic removal
- of no-longer-needed WAL files. This is done using %r> in
- the restore_command parameter of
- recovery.conf .
-
-
-
-
- New boolean configuration parameter, archive_mode>,
- controls archiving (Simon)
-
-
- Previously setting archive_command> to an empty string
- turned off archiving. Now archive_mode> turns archiving
- on and off, independently of archive_command>. This is
- useful for stopping archiving temporarily.
-
-
-
-
-
-
-
-
-
Queries
-
-
-
- Full text search is integrated into the core database
- system (Teodor, Oleg)
-
-
- Text search has been improved, moved into the core code, and is now
- installed by default. contrib/tsearch2> now contains
- a compatibility interface.
-
-
-
-
- Add control over whether NULL>s sort first or last (Teodor, Tom)
-
-
- The syntax is ORDER BY ... NULLS FIRST/LAST>.
-
-
-
-
- Allow per-column ascending/descending (ASC>/DESC>)
- ordering options for indexes (Teodor, Tom)
-
-
- Previously a query using ORDER BY> with mixed
- ASC>/DESC> specifiers could not fully use
- an index. Now an index can be fully used in such cases if the
- index was created with matching
- ASC>/DESC> specifications.
- NULL> sort order within an index can be controlled, too.
-
-
-
-
- Allow col IS NULL> to use an index (Teodor)
-
-
-
-
- Updatable cursors (Arul Shaji, Tom)
-
-
- This eliminates the need to reference a primary key to
- UPDATE> or DELETE> rows returned by a cursor.
- The syntax is UPDATE/DELETE WHERE CURRENT OF>.
-
-
-
-
- Allow FOR UPDATE in cursors (Arul Shaji, Tom)
-
-
-
-
- Create a general mechanism that supports casts to and from the
- standard string types (TEXT , VARCHAR ,
- CHAR ) for every datatype, by
- invoking the datatype's I/O functions (Tom)
-
-
- Previously, such casts were available only for types that had
- specialized function(s) for the purpose.
- These new casts are assignment-only in the to-string direction,
- explicit-only in the other direction, and therefore should create no
- surprising behavior.
-
-
-
-
- Allow UNION> and related constructs to return a domain
- type, when all inputs are of that domain type (Tom)
-
-
- Formerly, the output would be considered to be of the domain's base
- type.
-
-
-
-
- Allow limited hashing when using two different data types (Tom)
-
-
- This allows hash joins, hash indexes, hashed subplans, and hash
- aggregation to be used in situations involving cross-data-type
- comparisons, if the data types have compatible hash functions.
- Currently, cross-data-type hashing support exists for
- smallint /integer /bigint ,
- and for float4 /float8 .
-
-
-
-
- Improve optimizer logic for detecting when variables are equal
- in a WHERE> clause (Tom)
-
-
- This allows mergejoins to work with descending sort orders, and
- improves recognition of redundant sort columns.
-
-
-
-
- Improve performance when planning large inheritance trees in
- cases where most tables are excluded by constraints (Tom)
-
-
-
-
-
-
-
-
-
Object Manipulation
-
-
-
-
- Arrays of composite types (David Fetter, Andrew, Tom)
-
-
- In addition to arrays of explicitly-declared composite types,
- arrays of the rowtypes of regular tables and views are now
- supported, except for rowtypes of system catalogs, sequences, and TOAST
- tables.
-
-
-
-
-
- Server configuration parameters can now be set on a per-function
- basis (Tom)
-
-
- For example, functions can now set their own
- search_path> to prevent unexpected behavior if a
- different search_path> exists at run-time. Security
- definer functions should set search_path to
- avoid security loopholes.
-
-
-
-
- CREATE/ALTER FUNCTION now supports
- COST and ROWS options (Tom)
-
-
- COST allows specification of the cost of a
- function call. ROWS allows specification of
- the average number or rows returned by a set-returning function.
- These values are used by the optimizer in choosing the best plan.
-
-
-
-
- Implement CREATE TABLE LIKE ... INCLUDING
- INDEXES (Trevor Hardcastle, Nikhil Sontakke, Neil)
-
-
-
-
- Allow CREATE INDEX CONCURRENTLY to ignore
- transactions in other databases (Simon)
-
-
-
-
- Add ALTER VIEW ... RENAME TO and ALTER
- SEQUENCE ... RENAME TO (David Fetter, Neil)
-
-
- Previously this could only be done via ALTER TABLE ...
- RENAME TO.
-
-
-
-
- Make CREATE/DROP/RENAME DATABASE> wait briefly for
- conflicting backends to exit before failing (Tom)
-
-
- This increases the likelihood that these commands will succeed.
-
-
-
-
- Allow triggers and rules to be deactivated in groups using a
- configuration parameter, for replication purposes (Jan)
-
-
- This allows replication systems to disable triggers and rewrite
- rules as a group without modifying the system catalogs directly.
- The behavior is controlled by ALTER TABLE> and a new
- parameter session_replication_role .
-
-
-
-
- User-defined types can now have type modifiers (Teodor, Tom)
-
-
- This allows a user-defined type to take a modifier, like
- ssnum(7)>. Previously only built-in
- data types could have modifiers.
-
-
-
-
-
-
-
-
-
Utility Commands
-
-
-
- Non-superuser database owners now are able to add trusted procedural
- languages to their databases by default (Jeremy Drake)
-
-
- While this is reasonably safe, some administrators might wish to
- revoke the privilege. It is controlled by
- pg_pltemplate>.tmpldbacreate>.
-
-
-
-
- Allow a session's current parameter setting to be used as the
- default for future sessions (Tom)
-
-
- This is done with SET ... FROM CURRENT in
- CREATE/ALTER FUNCTION , ALTER
- DATABASE, or ALTER ROLE .
-
-
-
-
- Implement new commands DISCARD ALL ,
- DISCARD PLANS , DISCARD
- TEMPORARY, CLOSE ALL , and
- DEALLOCATE ALL (Marko Kreen, Neil)
-
-
- These commands simplify resetting a database session to its initial
- state, and are particularly useful for connection-pooling software.
-
-
-
-
- Make CLUSTER MVCC-safe (Heikki Linnakangas)
-
-
- Formerly, CLUSTER would discard all tuples
- that were committed dead, even if there were still transactions
- that should be able to see them under MVCC visibility rules.
-
-
-
-
- Add new CLUSTER syntax: CLUSTER
- table> USING index>
- (Holger Schurig)
-
-
- The old CLUSTER syntax is still supported, but
- the new form is considered more logical.
-
-
-
-
- Fix EXPLAIN so it can show complex plans
- more accurately (Tom)
-
-
- References to subplan outputs are now always shown correctly,
- instead of using ?columnN>?
- for complicated cases.
-
-
-
-
- Limit the amount of information reported when a user is dropped
- (Alvaro)
-
-
- Previously, dropping (or attempting to drop) a user who owned many
- objects could result in large NOTICE or
- ERROR messages listing all these objects; this
- caused problems for some client applications. The length of the
- message is now limited, although a full list is still sent to the
- server log.
-
-
-
-
-
-
-
-
-
Data Types
-
-
-
- Support for the SQL/XML standard, including new operators and an
- XML data type (Nikolay Samokhvalov, Pavel Stehule, Peter)
-
-
-
-
- Enumerated data types (ENUM ) (Tom Dunstan)
-
-
- This feature provides convenient support for fields that have a
- small, fixed set of allowed values. An example of creating an
- ENUM> type is
- CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy')>.
-
-
-
-
- Universally Unique Identifier (UUID>) data type (Gevik
- Babakhani, Neil)
-
-
- This closely matches
RFC> 4122.
-
-
-
-
- Widen the MONEY data type to 64 bits (D'Arcy Cain)
-
-
- This greatly increases the range of supported MONEY>
- values.
-
-
-
-
- Fix float4 /float8 to handle
- Infinity> and NAN> (Not A Number)
- consistently (Bruce)
-
-
- The code formerly was not consistent about distinguishing
- Infinity> from overflow conditions.
-
-
-
-
- Allow leading and trailing whitespace during input of
- boolean values (Neil)
-
-
-
-
- Prevent COPY> from using digits and lowercase letters as
- delimiters (Tom)
-
-
-
-
-
-
-
-
-
Functions
-
-
-
- Add new regular expression functions
- regexp_matches() ,
- regexp_split_to_array() , and
- regexp_split_to_table() (Jeremy Drake, Neil)
-
-
- These functions provide extraction of regular expression
- subexpressions and allow splitting a string using a POSIX regular
- expression.
-
-
-
-
- Add lo_truncate() for large object truncation
- (Kris Jurka)
-
-
-
-
- Implement width_bucket() for the float8>
- data type (Neil)
-
-
-
-
- Add pg_stat_clear_snapshot() to discard
- statistics snapshots collected during the current transaction
- (Tom)
-
-
- The first request for statistics in a transaction takes a statistics
- snapshot that does not change during the transaction. This function
- allows the snapshot to be discarded and a new snapshot loaded during
- the next statistics query. This is particularly useful for PL/pgSQL
- functions, which are confined to a single transaction.
-
-
-
-
- Add isodow> option to EXTRACT()> and
- date_part()> (Bruce)
-
-
- This returns the day of the week, with Sunday as seven.
- (dow> returns Sunday as zero.)
-
-
-
-
- Add ID> (ISO day of week) and IDDD> (ISO
- day of year) format codes for to_char()>,
- to_date()>, and to_timestamp()> (Brendan
- Jurd)
-
-
-
-
- Make to_timestamp()> and to_date()>
- assume TM (trim) option for potentially
- variable-width fields (Bruce)
-
-
- This matches
Oracle>'s behavior.
-
-
-
-
- Fix off-by-one conversion error in
- to_date() /to_timestamp()
- D> (non-ISO day of week) fields (Bruce)
-
-
-
-
- Make setseed() return void, rather than a
- useless integer value (Neil)
-
-
-
-
- Add a hash function for NUMERIC (Neil)
-
-
- This allows hash indexes and hash-based plans to be used with
- NUMERIC columns.
-
-
-
-
- Improve efficiency of
- LIKE /ILIKE , especially for
- multi-byte character sets like UTF-8 (Andrew, Itagaki Takahiro)
-
-
-
-
- Make currtid() functions require
- SELECT privileges on the target table (Tom)
-
-
-
-
- Add several txid_*() functions to query
- active transaction IDs (Jan)
-
-
- This is useful for various replication solutions.
-
-
-
-
-
-
-
-
-
PL/pgSQL Server-Side Language
-
-
-
- Add scrollable cursor support, including directional control in
- FETCH (Pavel Stehule)
-
-
-
-
- Allow IN as an alternative to
- FROM in PL/pgSQL's FETCH
- statement, for consistency with the backend's
- FETCH command (Pavel Stehule)
-
-
-
-
- Add MOVE to PL/pgSQL (Magnus, Pavel Stehule,
- Neil)
-
-
-
-
- Implement RETURN QUERY (Pavel Stehule, Neil)
-
-
- This adds convenient syntax for PL/pgSQL set-returning functions
- that want to return the result of a query. RETURN QUERY>
- is easier and more efficient than a loop
- around RETURN NEXT .
-
-
-
-
- Allow function parameter names to be qualified with the
- function's name (Tom)
-
-
- For example, myfunc.myvar>. This is particularly
- useful for specifying variables in a query where the variable
- name might match a column name.
-
-
-
-
- Make qualification of variables with block labels work properly (Tom)
-
-
- Formerly, outer-level block labels could unexpectedly interfere with
- recognition of inner-level record or row references.
-
-
-
-
- Tighten requirements for FOR loop
- STEP> values (Tom)
-
-
- Prevent non-positive STEP> values, and handle
- loop overflows.
-
-
-
-
- Improve accuracy when reporting syntax error locations (Tom)
-
-
-
-
-
-
-
-
-
Other Server-Side Languages
-
-
-
- Allow type-name arguments to PL/Perl
- spi_prepare() to be data type aliases in
- addition to names found in pg_type (Andrew)
-
-
-
-
- Allow type-name arguments to PL/Python
- plpy.prepare() to be data type aliases in
- addition to names found in pg_type (Andrew)
-
-
-
-
- Allow type-name arguments to PL/Tcl spi_prepare> to
- be data type aliases in addition to names found in
- pg_type (Andrew)
-
-
-
-
- Enable PL/PythonU to compile on Python 2.5 (Marko Kreen)
-
-
-
-
- Support a true PL/Python boolean type in compatible Python versions
- (Python 2.3 and later) (Marko Kreen)
-
-
-
-
- Fix PL/Tcl problems with thread-enabled libtcl> spawning
- multiple threads within the backend (Steve Marshall, Paul Bayer,
- Doug Knight)
-
-
- This caused all sorts of unpleasantness.
-
-
-
-
-
-
-
-
-
-
-
- List disabled triggers separately in \d output
- (Brendan Jurd)
-
-
-
-
- In \d patterns, always match $
- literally (Tom)
-
-
-
-
- Show aggregate return types in \da output
- (Greg Sabino Mullane)
-
-
-
-
- Add the function's volatility status to the output of
- \df+ (Neil)
-
-
-
-
- Add \prompt capability (Chad Wagner)
-
-
-
-
- Allow \pset , \t , and
- \x to specify on> or off>,
- rather than just toggling (Chad Wagner)
-
-
-
-
- Add \sleep> capability (Jan)
-
-
-
-
- Enable \timing> output for \copy> (Andrew)
-
-
-
-
- Improve \timing resolution on Windows
- (Itagaki Takahiro)
-
-
-
-
- Flush \o> output after each backslash command (Tom)
-
-
-
-
- Correctly detect and report errors while reading a -f>
- input file (Peter)
-
-
-
-
- Remove -u> option (this option has long been deprecated)
- (Tom)
-
-
-
-
-
-
-
-
-
-
-
- Add --tablespaces-only> and --roles-only>
- options to
pg_dumpall (Dave Page)
-
-
-
-
- Add an output file option to
-
-
- This is primarily useful on Windows, where output redirection of
- child
pg_dump processes does not work.
-
-
-
-
- Allow
pg_dumpall> to accept an initial-connection
- database name rather than the default
- template1 (Dave Page)
-
-
-
-
- In -n> and -t> switches, always match
- $ literally (Tom)
-
-
-
-
- Improve performance when a database has thousands of objects (Tom)
-
-
-
-
- Remove -u> option (this option has long been deprecated)
- (Tom)
-
-
-
-
-
-
-
-
-
Other Client Applications
-
-
-
- In
initdb>, allow the location of the
- pg_xlog directory to be specified
- (Euler Taveira de Oliveira)
-
-
-
-
- Enable server core dump generation in
pg_regress>
- on supported operating systems (Andrew)
-
-
-
-
- Add a
-t> (timeout) parameter to pg_ctl>
- (Bruce)
-
-
- This controls how long
pg_ctl> will wait when waiting
- for server startup or shutdown. Formerly the timeout was hard-wired
- as 60 seconds.
-
-
-
-
- Add a
pg_ctl> option to control generation
- of server core dumps (Andrew)
-
-
-
-
- Allow Control-C to cancel
clusterdb>,
-
reindexdb>, and vacuumdb> (Itagaki
- Takahiro, Magnus)
-
-
-
-
- Suppress command tag output for
createdb>,
-
createuser>, dropdb>, and
-
-
- The --quiet> option is ignored and will be removed in 8.4.
- Progress messages when acting on all databases now go to stdout
- instead of stderr because they are not actually errors.
-
-
-
-
-
-
-
-
-
-
-
- Interpret the dbName> parameter of
- PQsetdbLogin()> as a conninfo> string if
- it contains an equals sign (Andrew)
-
-
- This allows use of conninfo> strings in client
- programs that still use PQsetdbLogin()>.
-
-
-
-
- Support a global
SSL> configuration file (Victor
- Wagner)
-
-
-
-
- Add environment variable PGSSLKEY> to control
-
SSL> hardware keys (Victor Wagner)
-
-
-
-
- Add lo_truncate() for large object
- truncation (Kris Jurka)
-
-
-
-
- Add PQconnectionNeedsPassword() that returns
- true if the server required a password but none was supplied
- (Joe Conway, Tom)
-
-
- If this returns true after a failed connection attempt, a client
- application should prompt the user for a password. In the past
- applications have had to check for a specific error message string to
- decide whether a password is needed; that approach is now
- deprecated.
-
-
-
-
- Add PQconnectionUsedPassword() that returns
- true if the supplied password was actually used
- (Joe Conway, Tom)
-
-
- This is useful in some security contexts where it is important
- to know whether a user-supplied password is actually valid.
-
-
-
-
-
-
-
-
-
-
-
- Use V3 frontend/backend protocol (Michael)
-
-
- This adds support for server-side prepared statements.
-
-
-
-
- Use native threads, instead of pthreads, on Windows (Magnus)
-
-
-
-
- Improve thread-safety of ecpglib (Itagaki Takahiro)
-
-
-
-
- Make the ecpg libraries export only necessary API symbols (Michael)
-
-
-
-
-
-
-
-
-
-
-
- Allow the whole
PostgreSQL> distribution to be compiled
- with
Microsoft Visual C++> (Magnus and others)
-
-
- This allows Windows-based developers to use familiar development
- and debugging tools.
- Windows executables made with Visual C++ might also have better
- stability and performance than those made with other tool sets.
- The client-only Visual C++ build scripts have been removed.
-
-
-
-
- Drastically reduce postmaster's memory usage when it has many child
- processes (Magnus)
-
-
-
-
- Allow regression tests to be started by an administrative
- user (Magnus)
-
-
-
-
- Add native shared memory implementation (Magnus)
-
-
-
-
-
-
-
-
-
Server Programming Interface (SPI>)
-
-
-
- Add cursor-related functionality in SPI (Pavel Stehule)
-
-
- Allow access to the cursor-related planning options, and add
- FETCH>/MOVE> routines.
-
-
-
-
- Allow execution of cursor commands through
- SPI_execute (Tom)
-
-
- The macro SPI_ERROR_CURSOR> still exists but will
- never be returned.
-
-
-
-
- SPI plan pointers are now declared as SPIPlanPtr> instead of
- void *> (Tom)
-
-
- This does not break application code, but switching is
- recommended to help catch simple programming mistakes.
-
-
-
-
-
-
-
-
-
Build Options
-
-
-
- Add
configure> option --enable-profiling>
- to enable code profiling (works only with
gcc>)
- (Korry Douglas and Nikhil Sontakke)
-
-
-
-
- Add
configure> option --with-system-tzdata>
- to use the operating system's time zone database (Peter)
-
-
-
-
- Fix
PGXS> so extensions can be built against PostgreSQL
- installations whose
pg_config> program does not
- appear first in the PATH> (Tom)
-
-
-
-
- Support gmake draft when building the
-
SGML> documentation (Bruce)
-
-
- Unless draft> is used, the documentation build will
- now be repeated if necessary to ensure the index is up-to-date.
-
-
-
-
-
-
-
-
-
Source Code
-
-
-
- Rename macro DLLIMPORT> to PGDLLIMPORT> to
- avoid conflicting with third party includes (like Tcl) that
- define DLLIMPORT> (Magnus)
-
-
-
-
- Create operator families
to improve planning of
- queries involving cross-data-type comparisons (Tom)
-
-
-
-
- Update GIN extractQuery()> API to allow signalling
- that nothing can satisfy the query (Teodor)
-
-
-
-
- Move NAMEDATALEN> definition from
- postgres_ext.h> to pg_config_manual.h>
- (Peter)
-
-
-
-
- Provide strlcpy() and
- strlcat() on all platforms, and replace
- error-prone uses of strncpy() ,
- strncat() , etc (Peter)
-
-
-
-
- Create hooks to let an external plugin monitor (or even replace) the
- planner and create plans for hypothetical situations (Gurjeet
- Singh, Tom)
-
-
-
-
- Create a function variable join_search_hook> to let plugins
- override the join search order portion of the planner (Julius
- Stroffek)
-
-
-
-
- Add tas()> support for Renesas' M32R processor
- (Kazuhiro Inaoka)
-
-
-
-
- quote_identifier() and
-
pg_dump no longer quote keywords that are
- unreserved according to the grammar (Tom)
-
-
-
-
- Change the on-disk representation of the NUMERIC
- data type so that the sign_dscale> word comes
- before the weight (Tom)
-
-
-
-
- Use
SYSV> semaphores rather than POSIX on Darwin
- >= 6.0, i.e., OS X 10.2 and up (Chris Marcellino)
-
-
-
-
- Add
acronym and
- linkend="creating-cluster-nfs">NFS documentation
- sections (Bruce)
-
-
-
-
- "Postgres" is now documented as an accepted alias for
- "PostgreSQL" (Peter)
-
-
-
-
- Add documentation about preventing database server spoofing when
- the server is down (Bruce)
-
-
-
-
-
-
-
-
-
Contrib
-
-
-
- Move contrib> README> content into the
- main
PostgreSQL> documentation (Albert Cervera i
- Areny)
-
-
-
-
- Add contrib/pageinspect module for low-level
- page inspection (Simon, Heikki)
-
-
-
-
- Add contrib/pg_standby module for controlling
- warm standby operation (Simon)
-
-
-
-
- Add contrib/uuid-ossp module for generating
- UUID> values using the OSSP UUID library (Peter)
-
-
- --with-ossp-uuid to activate. This takes
- advantage of the new UUID builtin type.
-
-
-
-
- Add contrib/dict_int ,
- contrib/dict_xsyn , and
- contrib/test_parser modules to provide
- sample add-on text search dictionary templates and parsers
- (Sergey Karpov)
-
-
-
-
- Allow
contrib/pgbench> to set the fillfactor (Pavan
- Deolasee)
-
-
-
-
- Add timestamps to
contrib/pgbench> -l>
- (Greg Smith)
-
-
-
-
- Add usage count statistics to
- contrib/pgbuffercache (Greg Smith)
-
-
-
-
- Add GIN support for contrib/hstore> (Teodor)
-
-
-
-
- Add GIN support for contrib/pg_trgm> (Guillaume Smet, Teodor)
-
-
-
-
- Update OS/X startup scripts in
- contrib/start-scripts (Mark Cotner, David
- Fetter)
-
-
-
-
- Restrict pgrowlocks() and
- dblink_get_pkey() to users who have
- SELECT privilege on the target table (Tom)
-
-
-
-
- Restrict contrib/pgstattuple functions to
- superusers (Tom)
-
-
-
-
- contrib/xml2 is deprecated and planned for
- removal in 8.4 (Peter)
-
-
- The new XML support in core PostgreSQL supersedes this module.
-
-
-
-
-
-
-
-
+++ /dev/null
-
-
-
-
-
Release 8.4.22
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.21.
- For information about new features in the 8.4 major release, see
- .
-
-
- This is expected to be the last
PostgreSQL> release
- in the 8.4.X series. Users are encouraged to update to a newer
- release branch soon.
-
-
-
-
Migration to Version 8.4.22
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, this release corrects an index corruption problem in some GiST
- indexes. See the first changelog entry below to find out whether your
- installation has been affected and what steps you should take if so.
-
-
- Also, if you are upgrading from a version earlier than 8.4.19,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Correctly initialize padding bytes in contrib/btree_gist>
- indexes on bit> columns (Heikki Linnakangas)
-
-
- This error could result in incorrect query results due to values that
- should compare equal not being seen as equal.
- Users with GiST indexes on bit> or bit varying>
- columns should REINDEX> those indexes after installing this
- update.
-
-
-
-
- Protect against torn pages when deleting GIN list pages (Heikki
- Linnakangas)
-
-
- This fix prevents possible index corruption if a system crash occurs
- while the page update is being written to disk.
-
-
-
-
- Fix possibly-incorrect cache invalidation during nested calls
- to ReceiveSharedInvalidMessages> (Andres Freund)
-
-
-
-
- Don't assume a subquery's output is unique if there's a set-returning
- function in its targetlist (David Rowley)
-
-
- This oversight could lead to misoptimization of constructs
- like WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
- BY y).
-
-
-
-
- Fix failure to detoast fields in composite elements of structured
- types (Tom Lane)
-
-
- This corrects cases where TOAST pointers could be copied into other
- tables without being dereferenced. If the original data is later
- deleted, it would lead to errors like missing chunk number 0
- for toast value ...> when the now-dangling pointer is used.
-
-
-
-
- Fix record type has not been registered> failures with
- whole-row references to the output of Append plan nodes (Tom Lane)
-
-
-
-
- Fix possible crash when invoking a user-defined function while
- rewinding a cursor (Tom Lane)
-
-
-
-
- Fix query-lifespan memory leak while evaluating the arguments for a
- function in FROM> (Tom Lane)
-
-
-
-
- Fix session-lifespan memory leaks in regular-expression processing
- (Tom Lane, Arthur O'Dwyer, Greg Stark)
-
-
-
-
- Fix data encoding error in hungarian.stop> (Tom Lane)
-
-
-
-
- Fix liveness checks for rows that were inserted in the current
- transaction and then deleted by a now-rolled-back subtransaction
- (Andres Freund)
-
-
- This could cause problems (at least spurious warnings, and at worst an
- infinite loop) if CREATE INDEX> or CLUSTER> were
- done later in the same transaction.
-
-
-
-
- Clear pg_stat_activity>.xact_start>
- during PREPARE TRANSACTION> (Andres Freund)
-
-
- After the PREPARE>, the originating session is no longer in
- a transaction, so it should not continue to display a transaction
- start time.
-
-
-
-
- Fix REASSIGN OWNED> to not fail for text search objects
- (Álvaro Herrera)
-
-
-
-
- Block signals during postmaster startup (Tom Lane)
-
-
- This ensures that the postmaster will properly clean up after itself
- if, for example, it receives SIGINT> while still
- starting up.
-
-
-
-
- Secure Unix-domain sockets of temporary postmasters started during
- make check> (Noah Misch)
-
-
- Any local user able to access the socket file could connect as the
- server's bootstrap superuser, then proceed to execute arbitrary code as
- the operating-system user running the test, as we previously noted in
- CVE-2014-0067. This change defends against that risk by placing the
- server's socket in a temporary, mode 0700 subdirectory
- of /tmp>. The hazard remains however on platforms where
- Unix sockets are not supported, notably Windows, because then the
- temporary postmaster must accept local TCP connections.
-
-
- A useful side effect of this change is to simplify
- make check> testing in builds that
- override DEFAULT_PGSOCKET_DIR>. Popular non-default values
- like /var/run/postgresql> are often not writable by the
- build user, requiring workarounds that will no longer be necessary.
-
-
-
-
- On Windows, allow new sessions to absorb values of PGC_BACKEND
- parameters (such as ) from the
- configuration file (Amit Kapila)
-
-
- Previously, if such a parameter were changed in the file post-startup,
- the change would have no effect.
-
-
-
-
- Properly quote executable path names on Windows (Nikhil Deshpande)
-
-
- This oversight could cause
initdb>
- and
pg_upgrade> to fail on Windows, if the installation
- path contained both spaces and @> signs.
-
-
-
-
- Fix linking of
libpython> on OS X (Tom Lane)
-
-
- The method we previously used can fail with the Python library
- supplied by Xcode 5.0 and later.
-
-
-
-
- Avoid buffer bloat in
libpq> when the server
- consistently sends data faster than the client can absorb it
- (Shin-ichi Morita, Tom Lane)
-
-
-
libpq> could be coerced into enlarging its input buffer
- until it runs out of memory (which would be reported misleadingly
- as lost synchronization with server>). Under ordinary
- circumstances it's quite far-fetched that data could be continuously
- transmitted more quickly than the recv()> loop can
- absorb it, but this has been observed when the client is artificially
- slowed by scheduler constraints.
-
-
-
-
- Ensure that LDAP lookup attempts in
libpq> time out as
- intended (Laurenz Albe)
-
-
-
-
- Fix
pg_restore>'s processing of old-style large object
- comments (Tom Lane)
-
-
- A direct-to-database restore from an archive file generated by a
- pre-9.0 version of
pg_dump> would usually fail if the
- archive contained more than a few comments for large objects.
-
-
-
-
- In contrib/pgcrypto> functions, ensure sensitive
- information is cleared from stack variables before returning
- (Marko Kreen)
-
-
-
-
- In contrib/uuid-ossp>, cache the state of the OSSP UUID
- library across calls (Tom Lane)
-
-
- This improves the efficiency of UUID generation and reduces the amount
- of entropy drawn from /dev/urandom>, on platforms that
- have that.
-
-
-
-
- Update time zone data files to
tzdata> release 2014e
- for DST law changes in Crimea, Egypt, and Morocco.
-
-
-
-
-
-
-
-
-
-
Release 8.4.21
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.20.
- For information about new features in the 8.4 major release, see
- .
-
-
- The
PostgreSQL> community will stop releasing updates
- for the 8.4.X release series in July 2014.
- Users are encouraged to update to a newer release branch soon.
-
-
-
-
Migration to Version 8.4.21
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, if you are upgrading from a version earlier than 8.4.19,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Restore GIN metapages unconditionally to avoid torn-page risk
- (Heikki Linnakangas)
-
-
- Although this oversight could theoretically result in a corrupted
- index, it is unlikely to have caused any problems in practice, since
- the active part of a GIN metapage is smaller than a standard 512-byte
- disk sector.
-
-
-
-
- Allow regular-expression operators to be terminated early by query
- cancel requests (Tom Lane)
-
-
- This prevents scenarios wherein a pathological regular expression
- could lock up a server process uninterruptibly for a long time.
-
-
-
-
- Remove incorrect code that tried to allow OVERLAPS> with
- single-element row arguments (Joshua Yanovski)
-
-
- This code never worked correctly, and since the case is neither
- specified by the SQL standard nor documented, it seemed better to
- remove it than fix it.
-
-
-
-
- Avoid getting more than AccessShareLock> when de-parsing a
- rule or view (Dean Rasheed)
-
-
- This oversight resulted in
pg_dump> unexpectedly
- acquiring RowExclusiveLock> locks on tables mentioned as
- the targets of INSERT>/UPDATE>/DELETE>
- commands in rules. While usually harmless, that could interfere with
- concurrent transactions that tried to acquire, for example,
- ShareLock> on those tables.
-
-
-
-
- Prevent interrupts while reporting non-ERROR> messages
- (Tom Lane)
-
-
- This guards against rare server-process freezeups due to recursive
- entry to syslog()>, and perhaps other related problems.
-
-
-
-
- Update time zone data files to
tzdata> release 2014a
- for DST law changes in Fiji and Turkey, plus historical changes in
- Israel and Ukraine.
-
-
-
-
-
-
-
-
-
-
Release 8.4.20
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.19.
- For information about new features in the 8.4 major release, see
- .
-
-
- The
PostgreSQL> community will stop releasing updates
- for the 8.4.X release series in July 2014.
- Users are encouraged to update to a newer release branch soon.
-
-
-
-
Migration to Version 8.4.20
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, if you are upgrading from a version earlier than 8.4.19,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Shore up GRANT ... WITH ADMIN OPTION> restrictions
- (Noah Misch)
-
-
- Granting a role without ADMIN OPTION> is supposed to
- prevent the grantee from adding or removing members from the granted
- role, but this restriction was easily bypassed by doing SET
- ROLE> first. The security impact is mostly that a role member can
- revoke the access of others, contrary to the wishes of his grantor.
- Unapproved role member additions are a lesser concern, since an
- uncooperative role member could provide most of his rights to others
- anyway by creating views or SECURITY DEFINER> functions.
- (CVE-2014-0060)
-
-
-
-
- Prevent privilege escalation via manual calls to PL validator
- functions (Andres Freund)
-
-
- The primary role of PL validator functions is to be called implicitly
- during CREATE FUNCTION>, but they are also normal SQL
- functions that a user can call explicitly. Calling a validator on
- a function actually written in some other language was not checked
- for and could be exploited for privilege-escalation purposes.
- The fix involves adding a call to a privilege-checking function in
- each validator function. Non-core procedural languages will also
- need to make this change to their own validator functions, if any.
- (CVE-2014-0061)
-
-
-
-
- Avoid multiple name lookups during table and index DDL
- (Robert Haas, Andres Freund)
-
-
- If the name lookups come to different conclusions due to concurrent
- activity, we might perform some parts of the DDL on a different table
- than other parts. At least in the case of CREATE INDEX>,
- this can be used to cause the permissions checks to be performed
- against a different table than the index creation, allowing for a
- privilege escalation attack.
- (CVE-2014-0062)
-
-
-
-
- Prevent buffer overrun with long datetime strings (Noah Misch)
-
-
- The MAXDATELEN> constant was too small for the longest
- possible value of type interval>, allowing a buffer overrun
- in interval_out()>. Although the datetime input
- functions were more careful about avoiding buffer overrun, the limit
- was short enough to cause them to reject some valid inputs, such as
- input containing a very long timezone name. The
ecpg>
- library contained these vulnerabilities along with some of its own.
- (CVE-2014-0063)
-
-
-
-
- Prevent buffer overrun due to integer overflow in size calculations
- (Noah Misch, Heikki Linnakangas)
-
-
- Several functions, mostly type input functions, calculated an
- allocation size without checking for overflow. If overflow did
- occur, a too-small buffer would be allocated and then written past.
- (CVE-2014-0064)
-
-
-
-
- Prevent overruns of fixed-size buffers
- (Peter Eisentraut, Jozef Mlich)
-
-
- Use strlcpy()> and related functions to provide a clear
- guarantee that fixed-size buffers are not overrun. Unlike the
- preceding items, it is unclear whether these cases really represent
- live issues, since in most cases there appear to be previous
- constraints on the size of the input string. Nonetheless it seems
- prudent to silence all Coverity warnings of this type.
- (CVE-2014-0065)
-
-
-
-
- Avoid crashing if crypt()> returns NULL (Honza Horak,
- Bruce Momjian)
-
-
- There are relatively few scenarios in which crypt()>
- could return NULL, but contrib/chkpass> would crash
- if it did. One practical case in which this could be an issue is
- if
libc> is configured to refuse to execute unapproved
- hashing algorithms (e.g., FIPS mode>).
- (CVE-2014-0066)
-
-
-
-
- Document risks of make check> in the regression testing
- instructions (Noah Misch, Tom Lane)
-
-
- Since the temporary server started by make check>
- uses trust> authentication, another user on the same machine
- could connect to it as database superuser, and then potentially
- exploit the privileges of the operating-system user who started the
- tests. A future release will probably incorporate changes in the
- testing procedure to prevent this risk, but some public discussion is
- needed first. So for the moment, just warn people against using
- make check> when there are untrusted users on the
- same machine.
- (CVE-2014-0067)
-
-
-
-
- Fix possible mis-replay of WAL records when some segments of a
- relation aren't full size (Greg Stark, Tom Lane)
-
-
- The WAL update could be applied to the wrong page, potentially many
- pages past where it should have been. Aside from corrupting data,
- this error has been observed to result in significant bloat>
- of standby servers compared to their masters, due to updates being
- applied far beyond where the end-of-file should have been. This
- failure mode does not appear to be a significant risk during crash
- recovery, only when initially synchronizing a standby created from a
- base backup taken from a quickly-changing master.
-
-
-
-
- Ensure that insertions into non-leaf GIN index pages write a full-page
- WAL record when appropriate (Heikki Linnakangas)
-
-
- The previous coding risked index corruption in the event of a
- partial-page write during a system crash.
-
-
-
-
- Fix race conditions during server process exit (Robert Haas)
-
-
- Ensure that signal handlers don't attempt to use the
- process's MyProc> pointer after it's no longer valid.
-
-
-
-
- Fix unsafe references to errno> within error reporting
- logic (Christian Kruse)
-
-
- This would typically lead to odd behaviors such as missing or
- inappropriate HINT> fields.
-
-
-
-
- Fix possible crashes from using ereport()> too early
- during server startup (Tom Lane)
-
-
- The principal case we've seen in the field is a crash if the server
- is started in a directory it doesn't have permission to read.
-
-
-
-
- Clear retry flags properly in OpenSSL socket write
- function (Alexander Kukushkin)
-
-
- This omission could result in a server lockup after unexpected loss
- of an SSL-encrypted connection.
-
-
-
-
- Fix length checking for Unicode identifiers (U&"...">
- syntax) containing escapes (Tom Lane)
-
-
- A spurious truncation warning would be printed for such identifiers
- if the escaped form of the identifier was too long, but the
- identifier actually didn't need truncation after de-escaping.
-
-
-
-
- Fix possible crash due to invalid plan for nested sub-selects, such
- as WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)>
- (Tom Lane)
-
-
-
-
- Ensure that ANALYZE> creates statistics for a table column
- even when all the values in it are too wide> (Tom Lane)
-
-
- ANALYZE> intentionally omits very wide values from its
- histogram and most-common-values calculations, but it neglected to do
- something sane in the case that all the sampled entries are too wide.
-
-
-
-
- In ALTER TABLE ... SET TABLESPACE>, allow the database's
- default tablespace to be used without a permissions check
- (Stephen Frost)
-
-
- CREATE TABLE> has always allowed such usage,
- but ALTER TABLE> didn't get the memo.
-
-
-
-
- Fix cannot accept a set> error when some arms of
- a CASE> return a set and others don't (Tom Lane)
-
-
-
-
- Fix checks for all-zero client addresses in pgstat functions (Kevin
- Grittner)
-
-
-
-
- Fix possible misclassification of multibyte characters by the text
- search parser (Tom Lane)
-
-
- Non-ASCII characters could be misclassified when using C locale with
- a multibyte encoding. On Cygwin, non-C locales could fail as well.
-
-
-
-
- Fix possible misbehavior in plainto_tsquery()>
- (Heikki Linnakangas)
-
-
- Use memmove()> not memcpy()> for copying
- overlapping memory regions. There have been no field reports of
- this actually causing trouble, but it's certainly risky.
-
-
-
-
- Accept SHIFT_JIS> as an encoding name for locale checking
- purposes (Tatsuo Ishii)
-
-
-
-
- Fix misbehavior of PQhost()> on Windows (Fujii Masao)
-
-
- It should return localhost> if no host has been specified.
-
-
-
-
- Improve error handling in
libpq> and psql>
- for failures during COPY TO STDOUT/FROM STDIN> (Tom Lane)
-
-
- In particular this fixes an infinite loop that could occur in 9.2 and
- up if the server connection was lost during COPY FROM
- STDIN>. Variants of that scenario might be possible in older
- versions, or with other client applications.
-
-
-
-
- Fix misaligned descriptors in
ecpg> (MauMau)
-
-
-
-
- In
ecpg>, handle lack of a hostname in the connection
- parameters properly (Michael Meskes)
-
-
-
-
- Fix performance regression in contrib/dblink> connection
- startup (Joe Conway)
-
-
- Avoid an unnecessary round trip when client and server encodings match.
-
-
-
-
- In contrib/isn>, fix incorrect calculation of the check
- digit for ISMN values (Fabien Coelho)
-
-
-
-
- Ensure client-code-only installation procedure works as documented
- (Peter Eisentraut)
-
-
-
-
- In Mingw and Cygwin builds, install the
libpq> DLL
- in the bin> directory (Andrew Dunstan)
-
-
- This duplicates what the MSVC build has long done. It should fix
- problems with programs like
psql> failing to start
- because they can't find the DLL.
-
-
-
-
- Don't generate plain-text HISTORY>
- and src/test/regress/README> files anymore (Tom Lane)
-
-
- These text files duplicated the main HTML and PDF documentation
- formats. The trouble involved in maintaining them greatly outweighs
- the likely audience for plain-text format. Distribution tarballs
- will still contain files by these names, but they'll just be stubs
- directing the reader to consult the main documentation.
- The plain-text INSTALL> file will still be maintained, as
- there is arguably a use-case for that.
-
-
-
-
- Update time zone data files to
tzdata> release 2013i
- for DST law changes in Jordan and historical changes in Cuba.
-
-
- In addition, the zones Asia/Riyadh87>,
- Asia/Riyadh88>, and Asia/Riyadh89> have been
- removed, as they are no longer maintained by IANA, and never
- represented actual civil timekeeping practice.
-
-
-
-
-
-
-
-
-
-
Release 8.4.19
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.18.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.19
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, this release corrects a potential data corruption
- issue. See the first changelog entry below to find out whether
- your installation has been affected and what steps you can take if so.
-
-
- Also, if you are upgrading from a version earlier than 8.4.17,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix VACUUM>'s tests to see whether it can
- update relfrozenxid> (Andres Freund)
-
-
- In some cases VACUUM> (either manual or autovacuum) could
- incorrectly advance a table's relfrozenxid> value,
- allowing tuples to escape freezing, causing those rows to become
- invisible once 2^31 transactions have elapsed. The probability of
- data loss is fairly low since multiple incorrect advancements would
- need to happen before actual loss occurs, but it's not zero. Users
- upgrading from release 8.4.8 or earlier are not affected, but all later
- versions contain the bug.
-
-
- The issue can be ameliorated by, after upgrading, vacuuming all tables
- in all databases while having
- linkend="guc-vacuum-freeze-table-age">vacuum_freeze_table_age>
- set to zero. This will fix any latent corruption but will not be able
- to fix all pre-existing data errors. However, an installation can be
- presumed safe after performing this vacuuming if it has executed fewer
- than 2^31 update transactions in its lifetime (check this with
- SELECT txid_current() < 2^31>).
-
-
-
-
- Fix race condition in GIN index posting tree page deletion (Heikki
- Linnakangas)
-
-
- This could lead to transient wrong answers or query failures.
-
-
-
-
- Avoid flattening a subquery whose SELECT> list contains a
- volatile function wrapped inside a sub-SELECT> (Tom Lane)
-
-
- This avoids unexpected results due to extra evaluations of the
- volatile function.
-
-
-
-
- Fix planner's processing of non-simple-variable subquery outputs
- nested within outer joins (Tom Lane)
-
-
- This error could lead to incorrect plans for queries involving
- multiple levels of subqueries within JOIN> syntax.
-
-
-
-
- Fix premature deletion of temporary files (Andres Freund)
-
-
-
-
- Fix possible read past end of memory in rule printing (Peter Eisentraut)
-
-
-
-
- Fix array slicing of int2vector> and oidvector> values
- (Tom Lane)
-
-
- Expressions of this kind are now implicitly promoted to
- regular int2> or oid> arrays.
-
-
-
-
- Fix incorrect behaviors when using a SQL-standard, simple GMT offset
- timezone (Tom Lane)
-
-
- In some cases, the system would use the simple GMT offset value when
- it should have used the regular timezone setting that had prevailed
- before the simple offset was selected. This change also causes
- the timeofday> function to honor the simple GMT offset
- zone.
-
-
-
-
- Prevent possible misbehavior when logging translations of Windows
- error codes (Tom Lane)
-
-
-
-
- Properly quote generated command lines in
pg_ctl>
- (Naoya Anzai and Tom Lane)
-
-
- This fix applies only to Windows.
-
-
-
-
- Fix
pg_dumpall> to work when a source database
- sets
- linkend="guc-default-transaction-read-only">default_transaction_read_only>
- via ALTER DATABASE SET> (Kevin Grittner)
-
-
- Previously, the generated script would fail during restore.
-
-
-
-
- Fix
ecpg>'s processing of lists of variables
- declared varchar> (Zoltán Böszörményi)
-
-
-
-
- Make contrib/lo> defend against incorrect trigger definitions
- (Marc Cousin)
-
-
-
-
- Update time zone data files to
tzdata> release 2013h
- for DST law changes in Argentina, Brazil, Jordan, Libya,
- Liechtenstein, Morocco, and Palestine. Also, new timezone
- abbreviations WIB, WIT, WITA for Indonesia.
-
-
-
-
-
-
-
-
-
-
Release 8.4.18
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.17.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.18
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, if you are upgrading from a version earlier than 8.4.17,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Prevent corruption of multi-byte characters when attempting to
- case-fold identifiers (Andrew Dunstan)
-
-
-
PostgreSQL> case-folds non-ASCII characters only
- when using a single-byte server encoding.
-
-
-
-
- Fix memory leak caused by lo_open() failure
- (Heikki Linnakangas)
-
-
-
-
- Fix memory overcommit bug when work_mem> is using more
- than 24GB of memory (Stephen Frost)
-
-
-
-
- Fix deadlock bug in libpq when using SSL (Stephen Frost)
-
-
-
-
- Properly compute row estimates for boolean columns containing many NULL
- values (Andrew Gierth)
-
-
- Previously tests like col IS NOT TRUE> and col IS
- NOT FALSE> did not properly factor in NULL values when estimating
- plan costs.
-
-
-
-
- Prevent pushing down WHERE> clauses into unsafe
- UNION/INTERSECT> subqueries (Tom Lane)
-
-
- Subqueries of a UNION> or INTERSECT> that
- contain set-returning functions or volatile functions in their
- SELECT> lists could be improperly optimized, leading to
- run-time errors or incorrect query results.
-
-
-
-
- Fix rare case of failed to locate grouping columns>
- planner failure (Tom Lane)
-
-
-
-
- Improve view dumping code's handling of dropped columns in referenced
- tables (Tom Lane)
-
-
-
-
- Fix possible deadlock during concurrent CREATE INDEX
- CONCURRENTLY> operations (Tom Lane)
-
-
-
-
- Fix regexp_matches()> handling of zero-length matches
- (Jeevan Chalke)
-
-
- Previously, zero-length matches like '^' could return too many matches.
-
-
-
-
- Fix crash for overly-complex regular expressions (Heikki Linnakangas)
-
-
-
-
- Fix regular expression match failures for back references combined with
- non-greedy quantifiers (Jeevan Chalke)
-
-
-
-
- Prevent CREATE FUNCTION> from checking SET>
- variables unless function body checking is enabled (Tom Lane)
-
-
-
-
- Fix pgp_pub_decrypt()> so it works for secret keys with
- passwords (Marko Kreen)
-
-
-
-
- Remove rare inaccurate warning during vacuum of index-less tables
- (Heikki Linnakangas)
-
-
-
-
- Avoid possible failure when performing transaction control commands (e.g
- ROLLBACK>) in prepared queries (Tom Lane)
-
-
-
-
- Ensure that floating-point data input accepts standard spellings
- of infinity> on all platforms (Tom Lane)
-
-
- The C99 standard says that allowable spellings are inf>,
- +inf>, -inf>, infinity>,
- +infinity>, and -infinity>. Make sure we
- recognize these even if the platform's strtod> function
- doesn't.
-
-
-
-
- Expand ability to compare rows to records and arrays (Rafal Rzepecki,
- Tom Lane)
-
-
-
-
- Update time zone data files to
tzdata> release 2013d
- for DST law changes in Israel, Morocco, Palestine, and Paraguay.
- Also, historical zone data corrections for Macquarie Island.
-
-
-
-
-
-
-
-
-
-
Release 8.4.17
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.16.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.17
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, this release corrects several errors in management of GiST
- indexes. After installing this update, it is advisable to
- REINDEX> any GiST indexes that meet one or more of the
- conditions described below.
-
-
- Also, if you are upgrading from a version earlier than 8.4.10,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Reset OpenSSL randomness state in each postmaster child process
- (Marko Kreen)
-
-
- This avoids a scenario wherein random numbers generated by
- contrib/pgcrypto> functions might be relatively easy for
- another database user to guess. The risk is only significant when
- the postmaster is configured with ssl> = on>
- but most connections don't use SSL encryption. (CVE-2013-1900)
-
-
-
-
- Fix GiST indexes to not use fuzzy> geometric comparisons when
- it's not appropriate to do so (Alexander Korotkov)
-
-
- The core geometric types perform comparisons using fuzzy>
- equality, but gist_box_same> must do exact comparisons,
- else GiST indexes using it might become inconsistent. After installing
- this update, users should REINDEX> any GiST indexes on
- box>, polygon>, circle>, or point>
- columns, since all of these use gist_box_same>.
-
-
-
-
- Fix erroneous range-union and penalty logic in GiST indexes that use
- contrib/btree_gist> for variable-width data types, that is
- text>, bytea>, bit>, and numeric>
- columns (Tom Lane)
-
-
- These errors could result in inconsistent indexes in which some keys
- that are present would not be found by searches, and also in useless
- index bloat. Users are advised to REINDEX> such indexes
- after installing this update.
-
-
-
-
- Fix bugs in GiST page splitting code for multi-column indexes
- (Tom Lane)
-
-
- These errors could result in inconsistent indexes in which some keys
- that are present would not be found by searches, and also in indexes
- that are unnecessarily inefficient to search. Users are advised to
- REINDEX> multi-column GiST indexes after installing this
- update.
-
-
-
-
- Fix infinite-loop risk in regular expression compilation (Tom Lane,
- Don Porter)
-
-
-
-
- Fix potential null-pointer dereference in regular expression compilation
- (Tom Lane)
-
-
-
-
- Fix to_char()> to use ASCII-only case-folding rules where
- appropriate (Tom Lane)
-
-
- This fixes misbehavior of some template patterns that should be
- locale-independent, but mishandled I>
and
- i>
in Turkish locales.
-
-
-
-
- Fix unwanted rejection of timestamp 1999-12-31 24:00:00>
- (Tom Lane)
-
-
-
-
- Remove useless picksplit doesn't support secondary split> log
- messages (Josh Hansen, Tom Lane)
-
-
- This message seems to have been added in expectation of code that was
- never written, and probably never will be, since GiST's default
- handling of secondary splits is actually pretty good. So stop nagging
- end users about it.
-
-
-
-
- Fix possible failure to send a session's last few transaction
- commit/abort counts to the statistics collector (Tom Lane)
-
-
-
-
- Eliminate memory leaks in PL/Perl's spi_prepare()> function
- (Alex Hunsaker, Tom Lane)
-
-
-
-
- Fix
pg_dumpall> to handle database names containing
- =>
correctly (Heikki Linnakangas)
-
-
-
-
- Avoid crash in
pg_dump> when an incorrect connection
- string is given (Heikki Linnakangas)
-
-
-
-
- Ignore invalid indexes in
pg_dump> (Michael Paquier)
-
-
- Dumping invalid indexes can cause problems at restore time, for example
- if the reason the index creation failed was because it tried to enforce
- a uniqueness condition not satisfied by the table's data. Also, if the
- index creation is in fact still in progress, it seems reasonable to
- consider it to be an uncommitted DDL change, which
-
pg_dump> wouldn't be expected to dump anyway.
-
-
-
-
- Fix contrib/pg_trgm>'s similarity()> function
- to return zero for trigram-less strings (Tom Lane)
-
-
- Previously it returned NaN> due to internal division by zero.
-
-
-
-
- Update time zone data files to
tzdata> release 2013b
- for DST law changes in Chile, Haiti, Morocco, Paraguay, and some
- Russian areas. Also, historical zone data corrections for numerous
- places.
-
-
- Also, update the time zone abbreviation files for recent changes in
- Russia and elsewhere: CHOT>, GET>,
- IRKT>, KGT>, KRAT>, MAGT>,
- MAWT>, MSK>, NOVT>, OMST>,
- TKT>, VLAT>, WST>, YAKT>,
- YEKT> now follow their current meanings, and
- VOLT> (Europe/Volgograd) and MIST>
- (Antarctica/Macquarie) are added to the default abbreviations list.
-
-
-
-
-
-
-
-
-
-
Release 8.4.16
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.15.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.16
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, if you are upgrading from a version earlier than 8.4.10,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Prevent execution of enum_recv> from SQL (Tom Lane)
-
-
- The function was misdeclared, allowing a simple SQL command to crash the
- server. In principle an attacker might be able to use it to examine the
- contents of server memory. Our thanks to Sumit Soni (via Secunia SVCRP)
- for reporting this issue. (CVE-2013-0255)
-
-
-
-
- Update minimum recovery point when truncating a relation file (Heikki
- Linnakangas)
-
-
- Once data has been discarded, it's no longer safe to stop recovery at
- an earlier point in the timeline.
-
-
-
-
- Fix SQL grammar to allow subscripting or field selection from a
- sub-SELECT result (Tom Lane)
-
-
-
-
- Protect against race conditions when scanning
- pg_tablespace> (Stephen Frost, Tom Lane)
-
-
- CREATE DATABASE> and DROP DATABASE> could
- misbehave if there were concurrent updates of
- pg_tablespace> entries.
-
-
-
-
- Prevent DROP OWNED> from trying to drop whole databases or
- tablespaces (Álvaro Herrera)
-
-
- For safety, ownership of these objects must be reassigned, not dropped.
-
-
-
-
- Fix error in
- linkend="guc-vacuum-freeze-table-age">vacuum_freeze_table_age>
- implementation (Andres Freund)
-
-
- In installations that have existed for more than
- linkend="guc-vacuum-freeze-min-age">vacuum_freeze_min_age>
- transactions, this mistake prevented autovacuum from using partial-table
- scans, so that a full-table scan would always happen instead.
-
-
-
-
- Prevent misbehavior when a RowExpr> or XmlExpr>
- is parse-analyzed twice (Andres Freund, Tom Lane)
-
-
- This mistake could be user-visible in contexts such as
- CREATE TABLE LIKE INCLUDING INDEXES>.
-
-
-
-
- Improve defenses against integer overflow in hashtable sizing
- calculations (Jeff Davis)
-
-
-
-
- Reject out-of-range dates in to_date()> (Hitoshi Harada)
-
-
-
-
- Ensure that non-ASCII prompt strings are translated to the correct
- code page on Windows (Alexander Law, Noah Misch)
-
-
- This bug affected
psql> and some other client programs.
-
-
-
-
- Fix possible crash in
psql>'s \?> command
- when not connected to a database (Meng Qingzhong)
-
-
-
-
- Fix one-byte buffer overrun in
libpq>'s
- PQprintTuples> (Xi Wang)
-
-
- This ancient function is not used anywhere by
-
PostgreSQL> itself, but it might still be used by some
- client code.
-
-
-
-
- Make
ecpglib> use translated messages properly
- (Chen Huajun)
-
-
-
-
- Properly install
ecpg_compat> and
-
pgtypes> libraries on MSVC (Jiang Guiqing)
-
-
-
-
- Rearrange configure's tests for supplied functions so it is not
- fooled by bogus exports from libedit/libreadline (Christoph Berg)
-
-
-
-
- Ensure Windows build number increases over time (Magnus Hagander)
-
-
-
-
- Make
pgxs> build executables with the right
- .exe> suffix when cross-compiling for Windows
- (Zoltan Boszormenyi)
-
-
-
-
- Add new timezone abbreviation FET> (Tom Lane)
-
-
- This is now used in some eastern-European time zones.
-
-
-
-
-
-
-
-
-
-
Release 8.4.15
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.14.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.15
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, if you are upgrading from a version earlier than 8.4.10,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix multiple bugs associated with CREATE INDEX
- CONCURRENTLY> (Andres Freund, Tom Lane)
-
-
- Fix CREATE INDEX CONCURRENTLY> to use
- in-place updates when changing the state of an index's
- pg_index> row. This prevents race conditions that could
- cause concurrent sessions to miss updating the target index, thus
- resulting in corrupt concurrently-created indexes.
-
-
- Also, fix various other operations to ensure that they ignore
- invalid indexes resulting from a failed CREATE INDEX
- CONCURRENTLY> command. The most important of these is
- VACUUM>, because an auto-vacuum could easily be launched
- on the table before corrective action can be taken to fix or remove
- the invalid index.
-
-
-
-
- Avoid corruption of internal hash tables when out of memory
- (Hitoshi Harada)
-
-
-
-
- Fix planning of non-strict equivalence clauses above outer joins
- (Tom Lane)
-
-
- The planner could derive incorrect constraints from a clause equating
- a non-strict construct to something else, for example
- WHERE COALESCE(foo, 0) = 0>
- when foo> is coming from the nullable side of an outer join.
-
-
-
-
- Improve planner's ability to prove exclusion constraints from
- equivalence classes (Tom Lane)
-
-
-
-
- Fix partial-row matching in hashed subplans to handle cross-type cases
- correctly (Tom Lane)
-
-
- This affects multicolumn NOT IN> subplans, such as
- WHERE (a, b) NOT IN (SELECT x, y FROM ...)>
- when for instance b> and y> are int4>
- and int8> respectively. This mistake led to wrong answers
- or crashes depending on the specific datatypes involved.
-
-
-
-
- Acquire buffer lock when re-fetching the old tuple for an
- AFTER ROW UPDATE/DELETE> trigger (Andres Freund)
-
-
- In very unusual circumstances, this oversight could result in passing
- incorrect data to the precheck logic for a foreign-key enforcement
- trigger. That could result in a crash, or in an incorrect decision
- about whether to fire the trigger.
-
-
-
-
- Fix ALTER COLUMN TYPE> to handle inherited check
- constraints properly (Pavan Deolasee)
-
-
- This worked correctly in pre-8.4 releases, and now works correctly
- in 8.4 and later.
-
-
-
-
- Fix REASSIGN OWNED> to handle grants on tablespaces
- (Álvaro Herrera)
-
-
-
-
- Ignore incorrect pg_attribute> entries for system
- columns for views (Tom Lane)
-
-
- Views do not have any system columns. However, we forgot to
- remove such entries when converting a table to a view. That's fixed
- properly for 9.3 and later, but in previous branches we need to defend
- against existing mis-converted views.
-
-
-
-
- Fix rule printing to dump INSERT INTO table>
- DEFAULT VALUES correctly (Tom Lane)
-
-
-
-
- Guard against stack overflow when there are too many
- UNION>/INTERSECT>/EXCEPT> clauses
- in a query (Tom Lane)
-
-
-
-
- Prevent platform-dependent failures when dividing the minimum possible
- integer value by -1 (Xi Wang, Tom Lane)
-
-
-
-
- Fix possible access past end of string in date parsing
- (Hitoshi Harada)
-
-
-
-
- Produce an understandable error message if the length of the path name
- for a Unix-domain socket exceeds the platform-specific limit
- (Tom Lane, Andrew Dunstan)
-
-
- Formerly, this would result in something quite unhelpful, such as
- Non-recoverable failure in name resolution>.
-
-
-
-
- Fix memory leaks when sending composite column values to the client
- (Tom Lane)
-
-
-
-
- Make
pg_ctl> more robust about reading the
- postmaster.pid> file (Heikki Linnakangas)
-
-
- Fix race conditions and possible file descriptor leakage.
-
-
-
-
- Fix possible crash in
psql> if incorrectly-encoded data
- is presented and the client_encoding> setting is a
- client-only encoding, such as SJIS (Jiang Guiqing)
-
-
-
-
- Fix bugs in the restore.sql> script emitted by
-
pg_dump> in tar> output format (Tom Lane)
-
-
- The script would fail outright on tables whose names include
- upper-case characters. Also, make the script capable of restoring
- data in --inserts> mode as well as the regular COPY mode.
-
-
-
-
- Fix
pg_restore> to accept POSIX-conformant
- tar> files (Brian Weaver, Tom Lane)
-
-
- The original coding of
pg_dump>'s tar>
- output mode produced files that are not fully conformant with the
- POSIX standard. This has been corrected for version 9.3. This
- patch updates previous branches so that they will accept both the
- incorrect and the corrected formats, in hopes of avoiding
- compatibility problems when 9.3 comes out.
-
-
-
-
- Fix
pg_resetxlog> to locate postmaster.pid>
- correctly when given a relative path to the data directory (Tom Lane)
-
-
- This mistake could lead to
pg_resetxlog> not noticing
- that there is an active postmaster using the data directory.
-
-
-
-
- Fix
libpq>'s lo_import()> and
- lo_export()> functions to report file I/O errors properly
- (Tom Lane)
-
-
-
-
- Fix
ecpg>'s processing of nested structure pointer
- variables (Muhammad Usama)
-
-
-
-
- Make contrib/pageinspect>'s btree page inspection
- functions take buffer locks while examining pages (Tom Lane)
-
-
-
-
- Fix
pgxs> support for building loadable modules on AIX
- (Tom Lane)
-
-
- Building modules outside the original source tree didn't work on AIX.
-
-
-
-
- Update time zone data files to
tzdata> release 2012j
- for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
- Samoa, and portions of Brazil.
-
-
-
-
-
-
-
-
-
-
Release 8.4.14
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.13.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.14
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, if you are upgrading from a version earlier than 8.4.10,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix planner's assignment of executor parameters, and fix executor's
- rescan logic for CTE plan nodes (Tom Lane)
-
-
- These errors could result in wrong answers from queries that scan the
- same WITH> subquery multiple times.
-
-
-
-
- Improve page-splitting decisions in GiST indexes (Alexander Korotkov,
- Robert Haas, Tom Lane)
-
-
- Multi-column GiST indexes might suffer unexpected bloat due to this
- error.
-
-
-
-
- Fix cascading privilege revoke to stop if privileges are still held
- (Tom Lane)
-
-
- If we revoke a grant option from some role X>, but
- X> still holds that option via a grant from someone
- else, we should not recursively revoke the corresponding privilege
- from role(s) Y> that X> had granted it
- to.
-
-
-
-
- Fix handling of SIGFPE> when PL/Perl is in use (Andres Freund)
-
-
- Perl resets the process's SIGFPE> handler to
- SIG_IGN>, which could result in crashes later on. Restore
- the normal Postgres signal handler after initializing PL/Perl.
-
-
-
-
- Prevent PL/Perl from crashing if a recursive PL/Perl function is
- redefined while being executed (Tom Lane)
-
-
-
-
- Work around possible misoptimization in PL/Perl (Tom Lane)
-
-
- Some Linux distributions contain an incorrect version of
- pthread.h> that results in incorrect compiled code in
- PL/Perl, leading to crashes if a PL/Perl function calls another one
- that throws an error.
-
-
-
-
- Update time zone data files to
tzdata> release 2012f
- for DST law changes in Fiji
-
-
-
-
-
-
-
-
-
-
Release 8.4.13
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.12.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.13
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, if you are upgrading from a version earlier than 8.4.10,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Prevent access to external files/URLs via XML entity references
- (Noah Misch, Tom Lane)
-
-
- xml_parse()> would attempt to fetch external files or
- URLs as needed to resolve DTD and entity references in an XML value,
- thus allowing unprivileged database users to attempt to fetch data
- with the privileges of the database server. While the external data
- wouldn't get returned directly to the user, portions of it could be
- exposed in error messages if the data didn't parse as valid XML; and
- in any case the mere ability to check existence of a file might be
- useful to an attacker. (CVE-2012-3489)
-
-
-
-
- Prevent access to external files/URLs via contrib/xml2>'s
- xslt_process()> (Peter Eisentraut)
-
-
-
libxslt> offers the ability to read and write both
- files and URLs through stylesheet commands, thus allowing
- unprivileged database users to both read and write data with the
- privileges of the database server. Disable that through proper use
- of
libxslt>'s security options. (CVE-2012-3488)
-
-
- Also, remove xslt_process()>'s ability to fetch documents
- and stylesheets from external files/URLs. While this was a
- documented feature>, it was long regarded as a bad idea.
- The fix for CVE-2012-3489 broke that capability, and rather than
- expend effort on trying to fix it, we're just going to summarily
- remove it.
-
-
-
-
- Prevent too-early recycling of btree index pages (Noah Misch)
-
-
- When we allowed read-only transactions to skip assigning XIDs, we
- introduced the possibility that a deleted btree page could be
- recycled while a read-only transaction was still in flight to it.
- This would result in incorrect index search results. The probability
- of such an error occurring in the field seems very low because of the
- timing requirements, but nonetheless it should be fixed.
-
-
-
-
- Fix crash-safety bug with newly-created-or-reset sequences (Tom Lane)
-
-
- If ALTER SEQUENCE> was executed on a freshly created or
- reset sequence, and then precisely one nextval()> call
- was made on it, and then the server crashed, WAL replay would restore
- the sequence to a state in which it appeared that no
- nextval()> had been done, thus allowing the first
- sequence value to be returned again by the next
- nextval()> call. In particular this could manifest for
- serial> columns, since creation of a serial column's sequence
- includes an ALTER SEQUENCE OWNED BY> step.
-
-
-
-
- Ensure the backup_label> file is fsync'd after
- pg_start_backup()> (Dave Kerr)
-
-
-
-
- Back-patch 9.1 improvement to compress the fsync request queue
- (Robert Haas)
-
-
- This improves performance during checkpoints. The 9.1 change
- has now seen enough field testing to seem safe to back-patch.
-
-
-
-
- Only allow autovacuum to be auto-canceled by a directly blocked
- process (Tom Lane)
-
-
- The original coding could allow inconsistent behavior in some cases;
- in particular, an autovacuum could get canceled after less than
- deadlock_timeout> grace period.
-
-
-
-
- Improve logging of autovacuum cancels (Robert Haas)
-
-
-
-
- Fix log collector so that log_truncate_on_rotation> works
- during the very first log rotation after server start (Tom Lane)
-
-
-
-
- Fix WITH> attached to a nested set operation
- (UNION>/INTERSECT>/EXCEPT>)
- (Tom Lane)
-
-
-
-
- Ensure that a whole-row reference to a subquery doesn't include any
- extra GROUP BY> or ORDER BY> columns (Tom Lane)
-
-
-
-
- Disallow copying whole-row references in CHECK>
- constraints and index definitions during CREATE TABLE>
- (Tom Lane)
-
-
- This situation can arise in CREATE TABLE> with
- LIKE> or INHERITS>. The copied whole-row
- variable was incorrectly labeled with the row type of the original
- table not the new one. Rejecting the case seems reasonable for
- LIKE>, since the row types might well diverge later. For
- INHERITS> we should ideally allow it, with an implicit
- coercion to the parent table's row type; but that will require more
- work than seems safe to back-patch.
-
-
-
-
- Fix memory leak in ARRAY(SELECT ...)> subqueries (Heikki
- Linnakangas, Tom Lane)
-
-
-
-
- Fix extraction of common prefixes from regular expressions (Tom Lane)
-
-
- The code could get confused by quantified parenthesized
- subexpressions, such as ^(foo)?bar>. This would lead to
- incorrect index optimization of searches for such patterns.
-
-
-
-
- Fix bugs with parsing signed
- hh>:>mm> and
- hh>:>mm>:>ss>
- fields in interval> constants (Amit Kapila, Tom Lane)
-
-
-
-
- Report errors properly in contrib/xml2>'s
- xslt_process()> (Tom Lane)
-
-
-
-
- Update time zone data files to
tzdata> release 2012e
- for DST law changes in Morocco and Tokelau
-
-
-
-
-
-
-
-
-
-
Release 8.4.12
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.11.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.12
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, if you are upgrading from a version earlier than 8.4.10,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix incorrect password transformation in
- contrib/pgcrypto>'s DES crypt()> function
- (Solar Designer)
-
-
- If a password string contained the byte value 0x80>, the
- remainder of the password was ignored, causing the password to be much
- weaker than it appeared. With this fix, the rest of the string is
- properly included in the DES hash. Any stored password values that are
- affected by this bug will thus no longer match, so the stored values may
- need to be updated. (CVE-2012-2143)
-
-
-
-
- Ignore SECURITY DEFINER> and SET> attributes for
- a procedural language's call handler (Tom Lane)
-
-
- Applying such attributes to a call handler could crash the server.
- (CVE-2012-2655)
-
-
-
-
- Allow numeric timezone offsets in timestamp> input to be up to
- 16 hours away from UTC (Tom Lane)
-
-
- Some historical time zones have offsets larger than 15 hours, the
- previous limit. This could result in dumped data values being rejected
- during reload.
-
-
-
-
- Fix timestamp conversion to cope when the given time is exactly the
- last DST transition time for the current timezone (Tom Lane)
-
-
- This oversight has been there a long time, but was not noticed
- previously because most DST-using zones are presumed to have an
- indefinite sequence of future DST transitions.
-
-
-
-
- Fix text> to name> and char> to name>
- casts to perform string truncation correctly in multibyte encodings
- (Karl Schnaitter)
-
-
-
-
- Fix memory copying bug in to_tsquery()> (Heikki Linnakangas)
-
-
-
-
- Fix planner's handling of outer PlaceHolderVars within subqueries (Tom
- Lane)
-
-
- This bug concerns sub-SELECTs that reference variables coming from the
- nullable side of an outer join of the surrounding query.
- In 9.1, queries affected by this bug would fail with ERROR:
- Upper-level PlaceHolderVar found where not expected>. But in 9.0 and
- 8.4, you'd silently get possibly-wrong answers, since the value
- transmitted into the subquery wouldn't go to null when it should.
-
-
-
-
- Fix slow session startup when pg_attribute> is very large
- (Tom Lane)
-
-
- If pg_attribute> exceeds one-fourth of
- shared_buffers>, cache rebuilding code that is sometimes
- needed during session start would trigger the synchronized-scan logic,
- causing it to take many times longer than normal. The problem was
- particularly acute if many new sessions were starting at once.
-
-
-
-
- Ensure sequential scans check for query cancel reasonably often (Merlin
- Moncure)
-
-
- A scan encountering many consecutive pages that contain no live tuples
- would not respond to interrupts meanwhile.
-
-
-
-
- Ensure the Windows implementation of PGSemaphoreLock()>
- clears ImmediateInterruptOK> before returning (Tom Lane)
-
-
- This oversight meant that a query-cancel interrupt received later
- in the same query could be accepted at an unsafe time, with
- unpredictable but not good consequences.
-
-
-
-
- Show whole-row variables safely when printing views or rules
- (Abbas Butt, Tom Lane)
-
-
- Corner cases involving ambiguous names (that is, the name could be
- either a table or column name of the query) were printed in an
- ambiguous way, risking that the view or rule would be interpreted
- differently after dump and reload. Avoid the ambiguous case by
- attaching a no-op cast.
-
-
-
-
- Fix COPY FROM> to properly handle null marker strings that
- correspond to invalid encoding (Tom Lane)
-
-
- A null marker string such as E'\\0'> should work, and did
- work in the past, but the case got broken in 8.4.
-
-
-
-
- Ensure autovacuum worker processes perform stack depth checking
- properly (Heikki Linnakangas)
-
-
- Previously, infinite recursion in a function invoked by
- auto-ANALYZE> could crash worker processes.
-
-
-
-
- Fix logging collector to not lose log coherency under high load (Andrew
- Dunstan)
-
-
- The collector previously could fail to reassemble large messages if it
- got too busy.
-
-
-
-
- Fix logging collector to ensure it will restart file rotation
- after receiving SIGHUP> (Tom Lane)
-
-
-
-
- Fix WAL replay logic for GIN indexes to not fail if the index was
- subsequently dropped (Tom Lane)
-
-
-
-
- Fix memory leak in PL/pgSQL's RETURN NEXT> command (Joe
- Conway)
-
-
-
-
- Fix PL/pgSQL's GET DIAGNOSTICS> command when the target
- is the function's first variable (Tom Lane)
-
-
-
-
- Fix potential access off the end of memory in
psql>'s
- expanded display (\x>) mode (Peter Eisentraut)
-
-
-
-
- Fix several performance problems in
pg_dump> when
- the database contains many objects (Jeff Janes, Tom Lane)
-
-
-
pg_dump> could get very slow if the database contained
- many schemas, or if many objects are in dependency loops, or if there
- are many owned sequences.
-
-
-
-
- Fix contrib/dblink>'s dblink_exec()> to not leak
- temporary database connections upon error (Tom Lane)
-
-
-
-
- Fix contrib/dblink> to report the correct connection name in
- error messages (Kyotaro Horiguchi)
-
-
-
-
- Update time zone data files to
tzdata> release 2012c
- for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland
- Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands;
- also historical corrections for Canada.
-
-
-
-
-
-
-
-
-
-
Release 8.4.11
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.10.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.11
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, if you are upgrading from a version earlier than 8.4.10,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Require execute permission on the trigger function for
- CREATE TRIGGER> (Robert Haas)
-
-
- This missing check could allow another user to execute a trigger
- function with forged input data, by installing it on a table he owns.
- This is only of significance for trigger functions marked
- SECURITY DEFINER>, since otherwise trigger functions run
- as the table owner anyway. (CVE-2012-0866)
-
-
-
-
- Remove arbitrary limitation on length of common name in SSL
- certificates (Heikki Linnakangas)
-
-
- Both
libpq> and the server truncated the common name
- extracted from an SSL certificate at 32 bytes. Normally this would
- cause nothing worse than an unexpected verification failure, but there
- are some rather-implausible scenarios in which it might allow one
- certificate holder to impersonate another. The victim would have to
- have a common name exactly 32 bytes long, and the attacker would have
- to persuade a trusted CA to issue a certificate in which the common
- name has that string as a prefix. Impersonating a server would also
- require some additional exploit to redirect client connections.
- (CVE-2012-0867)
-
-
-
-
- Convert newlines to spaces in names written in
pg_dump>
- comments (Robert Haas)
-
-
-
pg_dump> was incautious about sanitizing object names
- that are emitted within SQL comments in its output script. A name
- containing a newline would at least render the script syntactically
- incorrect. Maliciously crafted object names could present a SQL
- injection risk when the script is reloaded. (CVE-2012-0868)
-
-
-
-
- Fix btree index corruption from insertions concurrent with vacuuming
- (Tom Lane)
-
-
- An index page split caused by an insertion could sometimes cause a
- concurrently-running VACUUM> to miss removing index entries
- that it should remove. After the corresponding table rows are removed,
- the dangling index entries would cause errors (such as could not
- read block N in file ...>) or worse, silently wrong query results
- after unrelated rows are re-inserted at the now-free table locations.
- This bug has been present since release 8.2, but occurs so infrequently
- that it was not diagnosed until now. If you have reason to suspect
- that it has happened in your database, reindexing the affected index
- will fix things.
-
-
-
-
- Update per-column permissions, not only per-table permissions, when
- changing table owner (Tom Lane)
-
-
- Failure to do this meant that any previously granted column permissions
- were still shown as having been granted by the old owner. This meant
- that neither the new owner nor a superuser could revoke the
- now-untraceable-to-table-owner permissions.
-
-
-
-
- Allow non-existent values for some settings in ALTER
- USER/DATABASE SET> (Heikki Linnakangas)
-
-
- Allow default_text_search_config>,
- default_tablespace>, and temp_tablespaces> to be
- set to names that are not known. This is because they might be known
- in another database where the setting is intended to be used, or for the
- tablespace cases because the tablespace might not be created yet. The
- same issue was previously recognized for search_path>, and
- these settings now act like that one.
-
-
-
-
- Avoid crashing when we have problems deleting table files post-commit
- (Tom Lane)
-
-
- Dropping a table should lead to deleting the underlying disk files only
- after the transaction commits. In event of failure then (for instance,
- because of wrong file permissions) the code is supposed to just emit a
- warning message and go on, since it's too late to abort the
- transaction. This logic got broken as of release 8.4, causing such
- situations to result in a PANIC and an unrestartable database.
-
-
-
-
- Track the OID counter correctly during WAL replay, even when it wraps
- around (Tom Lane)
-
-
- Previously the OID counter would remain stuck at a high value until the
- system exited replay mode. The practical consequences of that are
- usually nil, but there are scenarios wherein a standby server that's
- been promoted to master might take a long time to advance the OID
- counter to a reasonable value once values are needed.
-
-
-
-
- Fix regular expression back-references with *> attached
- (Tom Lane)
-
-
- Rather than enforcing an exact string match, the code would effectively
- accept any string that satisfies the pattern sub-expression referenced
- by the back-reference symbol.
-
-
- A similar problem still afflicts back-references that are embedded in a
- larger quantified expression, rather than being the immediate subject
- of the quantifier. This will be addressed in a future
-
-
-
-
- Fix recently-introduced memory leak in processing of
- inet>/cidr> values (Heikki Linnakangas)
-
-
- A patch in the December 2011 releases of
PostgreSQL>
- caused memory leakage in these operations, which could be significant
- in scenarios such as building a btree index on such a column.
-
-
-
-
- Fix dangling pointer after CREATE TABLE AS>/SELECT
- INTO> in a SQL-language function (Tom Lane)
-
-
- In most cases this only led to an assertion failure in assert-enabled
- builds, but worse consequences seem possible.
-
-
-
-
- Avoid double close of file handle in syslogger on Windows (MauMau)
-
-
- Ordinarily this error was invisible, but it would cause an exception
- when running on a debug version of Windows.
-
-
-
-
- Fix I/O-conversion-related memory leaks in plpgsql
- (Andres Freund, Jan Urbanski, Tom Lane)
-
-
- Certain operations would leak memory until the end of the current
- function.
-
-
-
-
- Improve
pg_dump>'s handling of inherited table columns
- (Tom Lane)
-
-
-
pg_dump> mishandled situations where a child column has
- a different default expression than its parent column. If the default
- is textually identical to the parent's default, but not actually the
- same (for instance, because of schema search path differences) it would
- not be recognized as different, so that after dump and restore the
- child would be allowed to inherit the parent's default. Child columns
- that are NOT NULL> where their parent is not could also be
- restored subtly incorrectly.
-
-
-
-
- Fix
pg_restore>'s direct-to-database mode for
- INSERT-style table data (Tom Lane)
-
-
- Direct-to-database restores from archive files made with
- --inserts> or --column-inserts> options fail when
- using
pg_restore> from a release dated September or
- December 2011, as a result of an oversight in a fix for another
- problem. The archive file itself is not at fault, and text-mode
- output is okay.
-
-
-
-
- Allow
AT> option in ecpg>
- DEALLOCATE> statements (Michael Meskes)
-
-
- The infrastructure to support this has been there for awhile, but
- through an oversight there was still an error check rejecting the case.
-
-
-
-
- Fix error in contrib/intarray>'s int[] &
- int[]> operator (Guillaume Lelarge)
-
-
- If the smallest integer the two input arrays have in common is 1,
- and there are smaller values in either array, then 1 would be
- incorrectly omitted from the result.
-
-
-
-
- Fix error detection in contrib/pgcrypto>'s
- encrypt_iv()> and decrypt_iv()>
- (Marko Kreen)
-
-
- These functions failed to report certain types of invalid-input errors,
- and would instead return random garbage values for incorrect input.
-
-
-
-
- Fix one-byte buffer overrun in contrib/test_parser>
- (Paul Guyot)
-
-
- The code would try to read one more byte than it should, which would
- crash in corner cases.
- Since contrib/test_parser> is only example code, this is
- not a security issue in itself, but bad example code is still bad.
-
-
-
-
- Use __sync_lock_test_and_set()> for spinlocks on ARM, if
- available (Martin Pitt)
-
-
- This function replaces our previous use of the SWPB>
- instruction, which is deprecated and not available on ARMv6 and later.
- Reports suggest that the old code doesn't fail in an obvious way on
- recent ARM boards, but simply doesn't interlock concurrent accesses,
- leading to bizarre failures in multiprocess operation.
-
-
-
-
- Use -fexcess-precision=standard> option when building with
- gcc versions that accept it (Andrew Dunstan)
-
-
- This prevents assorted scenarios wherein recent versions of gcc will
- produce creative results.
-
-
-
-
- Allow use of threaded Python on FreeBSD (Chris Rees)
-
-
- Our configure script previously believed that this combination wouldn't
- work; but FreeBSD fixed the problem, so remove that error check.
-
-
-
-
-
-
-
-
-
-
Release 8.4.10
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.9.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.10
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, a longstanding error was discovered in the definition of the
- information_schema.referential_constraints> view. If you
- rely on correct results from that view, you should replace its
- definition as explained in the first changelog item below.
-
-
- Also, if you are upgrading from a version earlier than 8.4.8,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix bugs in information_schema.referential_constraints> view
- (Tom Lane)
-
-
- This view was being insufficiently careful about matching the
- foreign-key constraint to the depended-on primary or unique key
- constraint. That could result in failure to show a foreign key
- constraint at all, or showing it multiple times, or claiming that it
- depends on a different constraint than the one it really does.
-
-
- Since the view definition is installed by
initdb>,
- merely upgrading will not fix the problem. If you need to fix this
- in an existing installation, you can (as a superuser) drop the
- information_schema> schema then re-create it by sourcing
- SHAREDIR>/information_schema.sql .
- (Run pg_config --sharedir> if you're uncertain where
- SHAREDIR> is.) This must be repeated in each database
- to be fixed.
-
-
-
-
- Fix incorrect replay of WAL records for GIN index updates
- (Tom Lane)
-
-
- This could result in transiently failing to find index entries after
- a crash, or on a hot-standby server. The problem would be repaired
- by the next VACUUM> of the index, however.
-
-
-
-
- Fix TOAST-related data corruption during CREATE TABLE dest AS
- SELECT * FROM src> or INSERT INTO dest SELECT * FROM src>
- (Tom Lane)
-
-
- If a table has been modified by ALTER TABLE ADD COLUMN>,
- attempts to copy its data verbatim to another table could produce
- corrupt results in certain corner cases.
- The problem can only manifest in this precise form in 8.4 and later,
- but we patched earlier versions as well in case there are other code
- paths that could trigger the same bug.
-
-
-
-
- Fix race condition during toast table access from stale syscache entries
- (Tom Lane)
-
-
- The typical symptom was transient errors like missing chunk
- number 0 for toast value NNNNN in pg_toast_2619>, where the cited
- toast table would always belong to a system catalog.
-
-
-
-
- Track dependencies of functions on items used in parameter default
- expressions (Tom Lane)
-
-
- Previously, a referenced object could be dropped without having dropped
- or modified the function, leading to misbehavior when the function was
- used. Note that merely installing this update will not fix the missing
- dependency entries; to do that, you'd need to CREATE OR
- REPLACE> each such function afterwards. If you have functions whose
- defaults depend on non-built-in objects, doing so is recommended.
-
-
-
-
- Allow inlining of set-returning SQL functions with multiple OUT
- parameters (Tom Lane)
-
-
-
-
- Make DatumGetInetP()> unpack inet datums that have a 1-byte
- header, and add a new macro, DatumGetInetPP()>, that does
- not (Heikki Linnakangas)
-
-
- This change affects no core code, but might prevent crashes in add-on
- code that expects DatumGetInetP()> to produce an unpacked
- datum as per usual convention.
-
-
-
-
- Improve locale support in money> type's input and output
- (Tom Lane)
-
-
- Aside from not supporting all standard
- lc_monetary>
- formatting options, the input and output functions were inconsistent,
- meaning there were locales in which dumped money> values could
- not be re-read.
-
-
-
-
- Don't let
- linkend="guc-transform-null-equals">transform_null_equals>
- affect CASE foo WHEN NULL ...> constructs
- (Heikki Linnakangas)
-
-
- transform_null_equals> is only supposed to affect
- foo = NULL> expressions written directly by the user, not
- equality checks generated internally by this form of CASE>.
-
-
-
-
- Change foreign-key trigger creation order to better support
- self-referential foreign keys (Tom Lane)
-
-
- For a cascading foreign key that references its own table, a row update
- will fire both the ON UPDATE> trigger and the
- CHECK> trigger as one event. The ON UPDATE>
- trigger must execute first, else the CHECK> will check a
- non-final state of the row and possibly throw an inappropriate error.
- However, the firing order of these triggers is determined by their
- names, which generally sort in creation order since the triggers have
- auto-generated names following the convention
- RI_ConstraintTrigger_NNNN>. A proper fix would require
- modifying that convention, which we will do in 9.2, but it seems risky
- to change it in existing releases. So this patch just changes the
- creation order of the triggers. Users encountering this type of error
- should drop and re-create the foreign key constraint to get its
- triggers into the right order.
-
-
-
-
- Avoid floating-point underflow while tracking buffer allocation rate
- (Greg Matthews)
-
-
- While harmless in itself, on certain platforms this would result in
- annoying kernel log messages.
-
-
-
-
- Preserve configuration file name and line number values when starting
- child processes under Windows (Tom Lane)
-
-
- Formerly, these would not be displayed correctly in the
- pg_settings> view.
-
-
-
-
- Preserve blank lines within commands in
psql>'s command
- history (Robert Haas)
-
-
- The former behavior could cause problems if an empty line was removed
- from within a string literal, for example.
-
-
-
-
- Fix
pg_dump> to dump user-defined casts between
- auto-generated types, such as table rowtypes (Tom Lane)
-
-
-
-
- Use the preferred version of
xsubpp> to build PL/Perl,
- not necessarily the operating system's main copy
- (David Wheeler and Alex Hunsaker)
-
-
-
-
- Fix incorrect coding in contrib/dict_int> and
- contrib/dict_xsyn> (Tom Lane)
-
-
- Some functions incorrectly assumed that memory returned by
- palloc()> is guaranteed zeroed.
-
-
-
-
- Honor query cancel interrupts promptly in pgstatindex()>
- (Robert Haas)
-
-
-
-
- Ensure VPATH builds properly install all server header files
- (Peter Eisentraut)
-
-
-
-
- Shorten file names reported in verbose error messages (Peter Eisentraut)
-
-
- Regular builds have always reported just the name of the C file
- containing the error message call, but VPATH builds formerly
- reported an absolute path name.
-
-
-
-
- Fix interpretation of Windows timezone names for Central America
- (Tom Lane)
-
-
- Map Central America Standard Time> to CST6>, not
- CST6CDT>, because DST is generally not observed anywhere in
- Central America.
-
-
-
-
- Update time zone data files to
tzdata> release 2011n
- for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
- also historical corrections for Alaska and British East Africa.
-
-
-
-
-
-
-
-
-
-
Release 8.4.9
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.8.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.9
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, if you are upgrading from a version earlier than 8.4.8,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix bugs in indexing of in-doubt HOT-updated tuples (Tom Lane)
-
-
- These bugs could result in index corruption after reindexing a system
- catalog. They are not believed to affect user indexes.
-
-
-
-
- Fix multiple bugs in GiST index page split processing (Heikki
- Linnakangas)
-
-
- The probability of occurrence was low, but these could lead to index
- corruption.
-
-
-
-
- Fix possible buffer overrun in tsvector_concat()>
- (Tom Lane)
-
-
- The function could underestimate the amount of memory needed for its
- result, leading to server crashes.
-
-
-
-
- Fix crash in xml_recv> when processing a
- standalone> parameter (Tom Lane)
-
-
-
-
- Make pg_options_to_table> return NULL for an option with no
- value (Tom Lane)
-
-
- Previously such cases would result in a server crash.
-
-
-
-
- Avoid possibly accessing off the end of memory in ANALYZE>
- and in SJIS-2004 encoding conversion (Noah Misch)
-
-
- This fixes some very-low-probability server crash scenarios.
-
-
-
-
- Prevent intermittent hang in interactions of startup process with
- bgwriter process (Simon Riggs)
-
-
- This affected recovery in non-hot-standby cases.
-
-
-
-
- Fix race condition in relcache init file invalidation (Tom Lane)
-
-
- There was a window wherein a new backend process could read a stale init
- file but miss the inval messages that would tell it the data is stale.
- The result would be bizarre failures in catalog accesses, typically
- could not read block 0 in file ...> later during startup.
-
-
-
-
- Fix memory leak at end of a GiST index scan (Tom Lane)
-
-
- Commands that perform many separate GiST index scans, such as
- verification of a new GiST-based exclusion constraint on a table
- already containing many rows, could transiently require large amounts of
- memory due to this leak.
-
-
-
-
- Fix incorrect memory accounting (leading to possible memory bloat) in
- tuplestores supporting holdable cursors and plpgsql's RETURN
- NEXT> command (Tom Lane)
-
-
-
-
- Fix performance problem when constructing a large, lossy bitmap
- (Tom Lane)
-
-
-
-
- Fix join selectivity estimation for unique columns (Tom Lane)
-
-
- This fixes an erroneous planner heuristic that could lead to poor
- estimates of the result size of a join.
-
-
-
-
- Fix nested PlaceHolderVar expressions that appear only in sub-select
- target lists (Tom Lane)
-
-
- This mistake could result in outputs of an outer join incorrectly
- appearing as NULL.
-
-
-
-
- Allow nested EXISTS> queries to be optimized properly (Tom
- Lane)
-
-
-
-
- Fix array- and path-creating functions to ensure padding bytes are
- zeroes (Tom Lane)
-
-
- This avoids some situations where the planner will think that
- semantically-equal constants are not equal, resulting in poor
- optimization.
-
-
-
-
- Fix EXPLAIN> to handle gating Result nodes within
- inner-indexscan subplans (Tom Lane)
-
-
- The usual symptom of this oversight was bogus varno> errors.
-
-
-
-
- Work around gcc 4.6.0 bug that breaks WAL replay (Tom Lane)
-
-
- This could lead to loss of committed transactions after a server crash.
-
-
-
-
- Fix dump bug for VALUES> in a view (Tom Lane)
-
-
-
-
- Disallow SELECT FOR UPDATE/SHARE> on sequences (Tom Lane)
-
-
- This operation doesn't work as expected and can lead to failures.
-
-
-
-
- Fix VACUUM> so that it always updates
- pg_class>.reltuples>/relpages> (Tom
- Lane)
-
-
- This fixes some scenarios where autovacuum could make increasingly poor
- decisions about when to vacuum tables.
-
-
-
-
- Defend against integer overflow when computing size of a hash table (Tom
- Lane)
-
-
-
-
- Fix cases where CLUSTER> might attempt to access
- already-removed TOAST data (Tom Lane)
-
-
-
-
- Fix portability bugs in use of credentials control messages for
- peer> authentication (Tom Lane)
-
-
-
-
- Fix SSPI login when multiple roundtrips are required (Ahmed Shinwari,
- Magnus Hagander)
-
-
- The typical symptom of this problem was The function requested is
- not supported> errors during SSPI login.
-
-
-
-
- Throw an error if pg_hba.conf> contains hostssl>
- but SSL is disabled (Tom Lane)
-
-
- This was concluded to be more user-friendly than the previous behavior
- of silently ignoring such lines.
-
-
-
-
- Fix typo in pg_srand48> seed initialization (Andres Freund)
-
-
- This led to failure to use all bits of the provided seed. This function
- is not used on most platforms (only those without srandom>),
- and the potential security exposure from a less-random-than-expected
- seed seems minimal in any case.
-
-
-
-
- Avoid integer overflow when the sum of LIMIT> and
- OFFSET> values exceeds 2^63 (Heikki Linnakangas)
-
-
-
-
- Add overflow checks to int4> and int8> versions of
- generate_series()> (Robert Haas)
-
-
-
-
- Fix trailing-zero removal in to_char()> (Marti Raudsepp)
-
-
- In a format with FM> and no digit positions
- after the decimal point, zeroes to the left of the decimal point could
- be removed incorrectly.
-
-
-
-
- Fix pg_size_pretty()> to avoid overflow for inputs close to
- 2^63 (Tom Lane)
-
-
-
-
- Weaken plpgsql's check for typmod matching in record values (Tom Lane)
-
-
- An overly enthusiastic check could lead to discarding length modifiers
- that should have been kept.
-
-
-
-
- Correctly handle quotes in locale names during
initdb>
- (Heikki Linnakangas)
-
-
- The case can arise with some Windows locales, such as People's
- Republic of China>.
-
-
-
-
- Fix
pg_upgrade> to preserve toast tables' relfrozenxids
- during an upgrade from 8.3 (Bruce Momjian)
-
-
- Failure to do this could lead to pg_clog> files being
- removed too soon after the upgrade.
-
-
-
-
- In
pg_ctl>, support silent mode for service registrations
- on Windows (MauMau)
-
-
-
-
- Fix
psql>'s counting of script file line numbers during
- COPY> from a different file (Tom Lane)
-
-
-
-
- Fix
pg_restore>'s direct-to-database mode for
- standard_conforming_strings> (Tom Lane)
-
-
-
pg_restore> could emit incorrect commands when restoring
- directly to a database server from an archive file that had been made
- with standard_conforming_strings> set to on>.
-
-
-
-
- Be more user-friendly about unsupported cases for parallel
-
-
- This change ensures that such cases are detected and reported before
- any restore actions have been taken.
-
-
-
-
- Fix write-past-buffer-end and memory leak in
libpq>'s
- LDAP service lookup code (Albe Laurenz)
-
-
-
-
- In
libpq>, avoid failures when using nonblocking I/O
- and an SSL connection (Martin Pihlak, Tom Lane)
-
-
-
-
- Improve libpq's handling of failures during connection startup
- (Tom Lane)
-
-
- In particular, the response to a server report of fork()>
- failure during SSL connection startup is now saner.
-
-
-
-
- Improve
libpq>'s error reporting for SSL failures (Tom
- Lane)
-
-
-
-
- Fix PQsetvalue()> to avoid possible crash when adding a new
- tuple to a PGresult> originally obtained from a server
- query (Andrew Chernow)
-
-
-
-
- Make
ecpglib> write double> values with 15 digits
- precision (Akira Kurosawa)
-
-
-
-
- In
ecpglib>, be sure LC_NUMERIC> setting is
- restored after an error (Michael Meskes)
-
-
-
-
- Apply upstream fix for blowfish signed-character bug (CVE-2011-2483)
- (Tom Lane)
-
-
- contrib/pg_crypto>'s blowfish encryption code could give
- wrong results on platforms where char is signed (which is most),
- leading to encrypted passwords being weaker than they should be.
-
-
-
-
- Fix memory leak in contrib/seg> (Heikki Linnakangas)
-
-
-
-
- Fix pgstatindex()> to give consistent results for empty
- indexes (Tom Lane)
-
-
-
-
- Allow building with perl 5.14 (Alex Hunsaker)
-
-
-
-
- Update configure script's method for probing existence of system
- functions (Tom Lane)
-
-
- The version of autoconf we used in 8.3 and 8.2 could be fooled by
- compilers that perform link-time optimization.
-
-
-
-
- Fix assorted issues with build and install file paths containing spaces
- (Tom Lane)
-
-
-
-
- Update time zone data files to
tzdata> release 2011i
- for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan.
-
-
-
-
-
-
-
-
-
-
Release 8.4.8
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.7.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.8
-
- A dump/restore is not required for those running 8.4.X.
-
-
- However, if your installation was upgraded from a previous major
- release by running
pg_upgrade>, you should take
- action to prevent possible data loss due to a now-fixed bug in
-
pg_upgrade>. The recommended solution is to run
- VACUUM FREEZE> on all TOAST tables.
- More information is available at
- url="http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix">
- http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix.
-
-
- Also, if you are upgrading from a version earlier than 8.4.2,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix
pg_upgrade>'s handling of TOAST tables
- (Bruce Momjian)
-
-
- The pg_class>.relfrozenxid> value for
- TOAST tables was not correctly copied into the new installation
- during
pg_upgrade>. This could later result in
- pg_clog> files being discarded while they were still
- needed to validate tuples in the TOAST tables, leading to
- could not access status of transaction> failures.
-
-
- This error poses a significant risk of data loss for installations
- that have been upgraded with
pg_upgrade>. This patch
- corrects the problem for future uses of
pg_upgrade>,
- but does not in itself cure the issue in installations that have been
- processed with a buggy version of
pg_upgrade>.
-
-
-
-
- Suppress incorrect PD_ALL_VISIBLE flag was incorrectly set>
- warning (Heikki Linnakangas)
-
-
- VACUUM> would sometimes issue this warning in cases that
- are actually valid.
-
-
-
-
- Disallow including a composite type in itself (Tom Lane)
-
-
- This prevents scenarios wherein the server could recurse infinitely
- while processing the composite type. While there are some possible
- uses for such a structure, they don't seem compelling enough to
- justify the effort required to make sure it always works safely.
-
-
-
-
- Avoid potential deadlock during catalog cache initialization
- (Nikhil Sontakke)
-
-
- In some cases the cache loading code would acquire share lock on a
- system index before locking the index's catalog. This could deadlock
- against processes trying to acquire exclusive locks in the other,
- more standard order.
-
-
-
-
- Fix dangling-pointer problem in BEFORE ROW UPDATE> trigger
- handling when there was a concurrent update to the target tuple
- (Tom Lane)
-
-
- This bug has been observed to result in intermittent cannot
- extract system attribute from virtual tuple> failures while trying to
- do UPDATE RETURNING ctid>. There is a very small probability
- of more serious errors, such as generating incorrect index entries for
- the updated tuple.
-
-
-
-
- Disallow DROP TABLE> when there are pending deferred trigger
- events for the table (Tom Lane)
-
-
- Formerly the DROP> would go through, leading to
- could not open relation with OID nnn> errors when the
- triggers were eventually fired.
-
-
-
-
- Prevent crash triggered by constant-false WHERE conditions during
- GEQO optimization (Tom Lane)
-
-
-
-
- Improve planner's handling of semi-join and anti-join cases
- (Tom Lane)
-
-
-
-
- Fix selectivity estimation for text search to account for NULLs
- (Jesper Krogh)
-
-
-
-
- Improve PL/pgSQL's ability to handle row types with dropped columns
- (Pavel Stehule)
-
-
- This is a back-patch of fixes previously made in 9.0.
-
-
-
-
- Fix PL/Python memory leak involving array slices (Daniel Popowich)
-
-
-
-
- Fix
pg_restore> to cope with long lines (over 1KB) in
- TOC files (Tom Lane)
-
-
-
-
- Put in more safeguards against crashing due to division-by-zero
- with overly enthusiastic compiler optimization (Aurelien Jarno)
-
-
-
-
- Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane)
-
-
- There was a hard-wired assumption that this system function was not
- available on MIPS hardware on these systems. Use a compile-time test
- instead, since more recent versions have it.
-
-
-
-
- Fix compilation failures on HP-UX (Heikki Linnakangas)
-
-
-
-
- Fix version-incompatibility problem with
libintl> on
- Windows (Hiroshi Inoue)
-
-
-
-
- Fix usage of
xcopy> in Windows build scripts to
- work correctly under Windows 7 (Andrew Dunstan)
-
-
- This affects the build scripts only, not installation or usage.
-
-
-
-
- Fix path separator used by
pg_regress> on Cygwin
- (Andrew Dunstan)
-
-
-
-
- Update time zone data files to
tzdata> release 2011f
- for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa,
- and Turkey; also historical corrections for South Australia, Alaska,
- and Hawaii.
-
-
-
-
-
-
-
-
-
-
Release 8.4.7
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.6.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.7
-
- A dump/restore is not required for those running 8.4.X.
- However, if you are upgrading from a version earlier than 8.4.2,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Avoid failures when EXPLAIN> tries to display a simple-form
- CASE> expression (Tom Lane)
-
-
- If the CASE>'s test expression was a constant, the planner
- could simplify the CASE> into a form that confused the
- expression-display code, resulting in unexpected CASE WHEN
- clause> errors.
-
-
-
-
- Fix assignment to an array slice that is before the existing range
- of subscripts (Tom Lane)
-
-
- If there was a gap between the newly added subscripts and the first
- pre-existing subscript, the code miscalculated how many entries needed
- to be copied from the old array's null bitmap, potentially leading to
- data corruption or crash.
-
-
-
-
- Avoid unexpected conversion overflow in planner for very distant date
- values (Tom Lane)
-
-
- The date> type supports a wider range of dates than can be
- represented by the timestamp> types, but the planner assumed it
- could always convert a date to timestamp with impunity.
-
-
-
-
- Fix
pg_restore>'s text output for large objects (BLOBs)
- when standard_conforming_strings> is on (Tom Lane)
-
-
- Although restoring directly to a database worked correctly, string
- escaping was incorrect if
pg_restore> was asked for
- SQL text output and standard_conforming_strings> had been
- enabled in the source database.
-
-
-
-
- Fix erroneous parsing of tsquery> values containing
- ... & !(subexpression) | ... (Tom Lane)
-
-
- Queries containing this combination of operators were not executed
- correctly. The same error existed in contrib/intarray>'s
- query_int> type and contrib/ltree>'s
- ltxtquery> type.
-
-
-
-
- Fix buffer overrun in contrib/intarray>'s input function
- for the query_int> type (Apple)
-
-
- This bug is a security risk since the function's return address could
- be overwritten. Thanks to Apple Inc's security team for reporting this
- issue and supplying the fix. (CVE-2010-4015)
-
-
-
-
- Fix bug in contrib/seg>'s GiST picksplit algorithm
- (Alexander Korotkov)
-
-
- This could result in considerable inefficiency, though not actually
- incorrect answers, in a GiST index on a seg> column.
- If you have such an index, consider REINDEX>ing it after
- installing this update. (This is identical to the bug that was fixed in
- contrib/cube> in the previous update.)
-
-
-
-
-
-
-
-
-
-
Release 8.4.6
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.5.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.6
-
- A dump/restore is not required for those running 8.4.X.
- However, if you are upgrading from a version earlier than 8.4.2,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Force the default
- wal_sync_method>
- to be fdatasync> on Linux (Tom Lane, Marti Raudsepp)
-
-
- The default on Linux has actually been fdatasync> for many
- years, but recent kernel changes caused
PostgreSQL> to
- choose open_datasync> instead. This choice did not result
- in any performance improvement, and caused outright failures on
- certain filesystems, notably ext4> with the
- data=journal> mount option.
-
-
-
-
- Fix assorted bugs in WAL replay logic for GIN indexes (Tom Lane)
-
-
- This could result in bad buffer id: 0> failures or
- corruption of index contents during replication.
-
-
-
-
- Fix recovery from base backup when the starting checkpoint WAL record
- is not in the same WAL segment as its redo point (Jeff Davis)
-
-
-
-
- Fix persistent slowdown of autovacuum workers when multiple workers
- remain active for a long time (Tom Lane)
-
-
- The effective vacuum_cost_limit> for an autovacuum worker
- could drop to nearly zero if it processed enough tables, causing it
- to run extremely slowly.
-
-
-
-
- Add support for detecting register-stack overrun on IA64>
- (Tom Lane)
-
-
- The IA64> architecture has two hardware stacks. Full
- prevention of stack-overrun failures requires checking both.
-
-
-
-
- Add a check for stack overflow in copyObject()> (Tom Lane)
-
-
- Certain code paths could crash due to stack overflow given a
- sufficiently complex query.
-
-
-
-
- Fix detection of page splits in temporary GiST indexes (Heikki
- Linnakangas)
-
-
- It is possible to have a concurrent> page split in a
- temporary index, if for example there is an open cursor scanning the
- index when an insertion is done. GiST failed to detect this case and
- hence could deliver wrong results when execution of the cursor
- continued.
-
-
-
-
- Fix error checking during early connection processing (Tom Lane)
-
-
- The check for too many child processes was skipped in some cases,
- possibly leading to postmaster crash when attempting to add the new
- child process to fixed-size arrays.
-
-
-
-
- Improve efficiency of window functions (Tom Lane)
-
-
- Certain cases where a large number of tuples needed to be read in
- advance, but work_mem> was large enough to allow them all
- to be held in memory, were unexpectedly slow.
- percent_rank()>, cume_dist()> and
- ntile()> in particular were subject to this problem.
-
-
-
-
- Avoid memory leakage while ANALYZE>'ing complex index
- expressions (Tom Lane)
-
-
-
-
- Ensure an index that uses a whole-row Var still depends on its table
- (Tom Lane)
-
-
- An index declared like create index i on t (foo(t.*))>
- would not automatically get dropped when its table was dropped.
-
-
-
-
- Do not inline> a SQL function with multiple OUT>
- parameters (Tom Lane)
-
-
- This avoids a possible crash due to loss of information about the
- expected result rowtype.
-
-
-
-
- Behave correctly if ORDER BY>, LIMIT>,
- FOR UPDATE>, or WITH> is attached to the
- VALUES> part of INSERT ... VALUES> (Tom Lane)
-
-
-
-
- Fix constant-folding of COALESCE()> expressions (Tom Lane)
-
-
- The planner would sometimes attempt to evaluate sub-expressions that
- in fact could never be reached, possibly leading to unexpected errors.
-
-
-
-
- Fix postmaster crash when connection acceptance
- (accept()> or one of the calls made immediately after it)
- fails, and the postmaster was compiled with GSSAPI support (Alexander
- Chernikov)
-
-
-
-
- Fix missed unlink of temporary files when log_temp_files>
- is active (Tom Lane)
-
-
- If an error occurred while attempting to emit the log message, the
- unlink was not done, resulting in accumulation of temp files.
-
-
-
-
- Add print functionality for InhRelation> nodes (Tom Lane)
-
-
- This avoids a failure when debug_print_parse> is enabled
- and certain types of query are executed.
-
-
-
-
- Fix incorrect calculation of distance from a point to a horizontal
- line segment (Tom Lane)
-
-
- This bug affected several different geometric distance-measurement
- operators.
-
-
-
-
- Fix incorrect calculation of transaction status in
-
ecpg> (Itagaki Takahiro)
-
-
-
-
- Fix
PL/pgSQL>'s handling of simple>
- expressions to not fail in recursion or error-recovery cases (Tom Lane)
-
-
-
-
- Fix
PL/Python>'s handling of set-returning functions
- (Jan Urbanski)
-
-
- Attempts to call SPI functions within the iterator generating a set
- result would fail.
-
-
-
-
- Fix bug in contrib/cube>'s GiST picksplit algorithm
- (Alexander Korotkov)
-
-
- This could result in considerable inefficiency, though not actually
- incorrect answers, in a GiST index on a cube> column.
- If you have such an index, consider REINDEX>ing it after
- installing this update.
-
-
-
-
- Don't emit identifier will be truncated> notices in
- contrib/dblink> except when creating new connections
- (Itagaki Takahiro)
-
-
-
-
- Fix potential coredump on missing public key in
- contrib/pgcrypto> (Marti Raudsepp)
-
-
-
-
- Fix memory leak in contrib/xml2>'s XPath query functions
- (Tom Lane)
-
-
-
-
- Update time zone data files to
tzdata> release 2010o
- for DST law changes in Fiji and Samoa;
- also historical corrections for Hong Kong.
-
-
-
-
-
-
-
-
-
-
Release 8.4.5
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.4.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.5
-
- A dump/restore is not required for those running 8.4.X.
- However, if you are upgrading from a version earlier than 8.4.2,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Use a separate interpreter for each calling SQL userid in PL/Perl and
- PL/Tcl (Tom Lane)
-
-
- This change prevents security problems that can be caused by subverting
- Perl or Tcl code that will be executed later in the same session under
- another SQL user identity (for example, within a SECURITY
- DEFINER> function). Most scripting languages offer numerous ways that
- that might be done, such as redefining standard functions or operators
- called by the target function. Without this change, any SQL user with
- Perl or Tcl language usage rights can do essentially anything with the
- SQL privileges of the target function's owner.
-
-
- The cost of this change is that intentional communication among Perl
- and Tcl functions becomes more difficult. To provide an escape hatch,
- PL/PerlU and PL/TclU functions continue to use only one interpreter
- per session. This is not considered a security issue since all such
- functions execute at the trust level of a database superuser already.
-
-
- It is likely that third-party procedural languages that claim to offer
- trusted execution have similar security issues. We advise contacting
- the authors of any PL you are depending on for security-critical
- purposes.
-
-
- Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
-
-
-
-
- Prevent possible crashes in pg_get_expr()> by disallowing
- it from being called with an argument that is not one of the system
- catalog columns it's intended to be used with
- (Heikki Linnakangas, Tom Lane)
-
-
-
-
- Treat exit code 128 (ERROR_WAIT_NO_CHILDREN>) as non-fatal on
- Windows (Magnus Hagander)
-
-
- Under high load, Windows processes will sometimes fail at startup with
- this error code. Formerly the postmaster treated this as a panic
- condition and restarted the whole database, but that seems to be
- an overreaction.
-
-
-
-
- Fix incorrect placement of placeholder evaluation (Tom Lane)
-
-
- This bug could result in query outputs being non-null when they
- should be null, in cases where the inner side of an outer join
- is a sub-select with non-strict expressions in its output list.
-
-
-
-
- Fix possible duplicate scans of UNION ALL> member relations
- (Tom Lane)
-
-
-
-
- Fix cannot handle unplanned sub-select
error (Tom Lane)
-
-
- This occurred when a sub-select contains a join alias reference that
- expands into an expression containing another sub-select.
-
-
-
-
- Fix mishandling of whole-row Vars that reference a view or sub-select
- and appear within a nested sub-select (Tom Lane)
-
-
-
-
- Fix mishandling of cross-type IN> comparisons (Tom Lane)
-
-
- This could result in failures if the planner tried to implement an
- IN> join with a sort-then-unique-then-plain-join plan.
-
-
-
-
- Fix computation of ANALYZE> statistics for tsvector>
- columns (Jan Urbanski)
-
-
- The original coding could produce incorrect statistics, leading to
- poor plan choices later.
-
-
-
-
- Improve planner's estimate of memory used by array_agg()>,
- string_agg()>, and similar aggregate functions
- (Hitoshi Harada)
-
-
- The previous drastic underestimate could lead to out-of-memory failures
- due to inappropriate choice of a hash-aggregation plan.
-
-
-
-
- Fix failure to mark cached plans as transient (Tom Lane)
-
-
- If a plan is prepared while CREATE INDEX CONCURRENTLY> is
- in progress for one of the referenced tables, it is supposed to be
- re-planned once the index is ready for use. This was not happening
- reliably.
-
-
-
-
- Reduce PANIC to ERROR in some occasionally-reported btree failure cases,
- and provide additional detail in the resulting error messages
- (Tom Lane)
-
-
- This should improve the system's robustness with corrupted indexes.
-
-
-
-
- Fix incorrect search logic for partial-match queries with GIN indexes
- (Tom Lane)
-
-
- Cases involving AND/OR combination of several GIN index conditions
- didn't always give the right answer, and were sometimes much slower
- than necessary.
-
-
-
-
- Prevent show_session_authorization() from crashing within autovacuum
- processes (Tom Lane)
-
-
-
-
- Defend against functions returning setof record where not all the
- returned rows are actually of the same rowtype (Tom Lane)
-
-
-
-
- Fix possible corruption of pending trigger event lists during
- subtransaction rollback (Tom Lane)
-
-
- This could lead to a crash or incorrect firing of triggers.
-
-
-
-
- Fix possible failure when hashing a pass-by-reference function result
- (Tao Ma, Tom Lane)
-
-
-
-
- Improve merge join's handling of NULLs in the join columns (Tom Lane)
-
-
- A merge join can now stop entirely upon reaching the first NULL,
- if the sort order is such that NULLs sort high.
-
-
-
-
- Take care to fsync the contents of lockfiles (both
- postmaster.pid> and the socket lockfile) while writing them
- (Tom Lane)
-
-
- This omission could result in corrupted lockfile contents if the
- machine crashes shortly after postmaster start. That could in turn
- prevent subsequent attempts to start the postmaster from succeeding,
- until the lockfile is manually removed.
-
-
-
-
- Avoid recursion while assigning XIDs to heavily-nested
- subtransactions (Andres Freund, Robert Haas)
-
-
- The original coding could result in a crash if there was limited
- stack space.
-
-
-
-
- Avoid holding open old WAL segments in the walwriter process
- (Magnus Hagander, Heikki Linnakangas)
-
-
- The previous coding would prevent removal of no-longer-needed segments.
-
-
-
-
- Fix log_line_prefix>'s %i> escape,
- which could produce junk early in backend startup (Tom Lane)
-
-
-
-
- Prevent misinterpretation of partially-specified relation options
- for TOAST tables (Itagaki Takahiro)
-
-
- In particular, fillfactor> would be read as zero if any
- other reloption had been set for the table, leading to serious bloat.
-
-
-
-
- Fix inheritance count tracking in ALTER TABLE ... ADD
- CONSTRAINT> (Robert Haas)
-
-
-
-
- Fix possible data corruption in ALTER TABLE ... SET
- TABLESPACE> when archiving is enabled (Jeff Davis)
-
-
-
-
- Allow CREATE DATABASE> and ALTER DATABASE ... SET
- TABLESPACE> to be interrupted by query-cancel (Guillaume Lelarge)
-
-
-
-
- Improve CREATE INDEX>'s checking of whether proposed index
- expressions are immutable (Tom Lane)
-
-
-
-
- Fix REASSIGN OWNED> to handle operator classes and families
- (Asko Tiidumaa)
-
-
-
-
- Fix possible core dump when comparing two empty tsquery> values
- (Tom Lane)
-
-
-
-
- Fix LIKE>'s handling of patterns containing %>
- followed by _> (Tom Lane)
-
-
- We've fixed this before, but there were still some incorrectly-handled
- cases.
-
-
-
-
- Re-allow input of Julian dates prior to 0001-01-01 AD (Tom Lane)
-
-
- Input such as 'J100000'::date> worked before 8.4,
- but was unintentionally broken by added error-checking.
-
-
-
-
- Fix PL/pgSQL to throw an error, not crash, if a cursor is closed within
- a FOR> loop that is iterating over that cursor
- (Heikki Linnakangas)
-
-
-
-
- In PL/Python, defend against null pointer results from
- PyCObject_AsVoidPtr> and PyCObject_FromVoidPtr>
- (Peter Eisentraut)
-
-
-
-
- In
libpq>, fix full SSL certificate verification for the
- case where both host> and hostaddr> are specified
- (Tom Lane)
-
-
-
-
- Make psql recognize DISCARD ALL> as a command that should
- not be encased in a transaction block in autocommit-off mode
- (Itagaki Takahiro)
-
-
-
-
- Fix some issues in
pg_dump>'s handling of SQL/MED objects
- (Tom Lane)
-
-
- Notably,
pg_dump> would always fail if run by a
- non-superuser, which was not intended.
-
-
-
-
- Improve
pg_dump> and pg_restore>'s
- handling of non-seekable archive files (Tom Lane, Robert Haas)
-
-
- This is important for proper functioning of parallel restore.
-
-
-
-
- Improve parallel pg_restore's ability to cope with selective restore
- (-L> option) (Tom Lane)
-
-
- The original code tended to fail if the -L> file commanded
- a non-default restore ordering.
-
-
-
-
- Fix
ecpg> to process data from RETURNING>
- clauses correctly (Michael Meskes)
-
-
-
-
- Fix some memory leaks in
ecpg> (Zoltan Boszormenyi)
-
-
-
-
- Improve contrib/dblink>'s handling of tables containing
- dropped columns (Tom Lane)
-
-
-
-
- Fix connection leak after duplicate connection name
- errors in contrib/dblink> (Itagaki Takahiro)
-
-
-
-
- Fix contrib/dblink> to handle connection names longer than
- 62 bytes correctly (Itagaki Takahiro)
-
-
-
-
- Add hstore(text, text)>
- function to contrib/hstore> (Robert Haas)
-
-
- This function is the recommended substitute for the now-deprecated
- =>> operator. It was back-patched so that future-proofed
- code can be used with older server versions. Note that the patch will
- be effective only after contrib/hstore> is installed or
- reinstalled in a particular database. Users might prefer to execute
- the CREATE FUNCTION> command by hand, instead.
-
-
-
-
- Update build infrastructure and documentation to reflect the source code
- repository's move from CVS to Git (Magnus Hagander and others)
-
-
-
-
- Update time zone data files to
tzdata> release 2010l
- for DST law changes in Egypt and Palestine; also historical corrections
- for Finland.
-
-
- This change also adds new names for two Micronesian timezones:
- Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred
- abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over
- Pacific/Ponape.
-
-
-
-
- Make Windows' N. Central Asia Standard Time> timezone map to
- Asia/Novosibirsk, not Asia/Almaty (Magnus Hagander)
-
-
- Microsoft changed the DST behavior of this zone in the timezone update
- from KB976098. Asia/Novosibirsk is a better match to its new behavior.
-
-
-
-
-
-
-
-
-
-
Release 8.4.4
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.3.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.4
-
- A dump/restore is not required for those running 8.4.X.
- However, if you are upgrading from a version earlier than 8.4.2,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Enforce restrictions in plperl> using an opmask applied to
- the whole interpreter, instead of using Safe.pm>
- (Tim Bunce, Andrew Dunstan)
-
-
- Recent developments have convinced us that Safe.pm> is too
- insecure to rely on for making plperl> trustable. This
- change removes use of Safe.pm> altogether, in favor of using
- a separate interpreter with an opcode mask that is always applied.
- Pleasant side effects of the change include that it is now possible to
- use Perl's strict> pragma in a natural way in
- plperl>, and that Perl's $a> and $b>
- variables work as expected in sort routines, and that function
- compilation is significantly faster. (CVE-2010-1169)
-
-
-
-
- Prevent PL/Tcl from executing untrustworthy code from
- pltcl_modules> (Tom)
-
-
- PL/Tcl's feature for autoloading Tcl code from a database table
- could be exploited for trojan-horse attacks, because there was no
- restriction on who could create or insert into that table. This change
- disables the feature unless pltcl_modules> is owned by a
- superuser. (However, the permissions on the table are not checked, so
- installations that really need a less-than-secure modules table can
- still grant suitable privileges to trusted non-superusers.) Also,
- prevent loading code into the unrestricted normal> Tcl
- interpreter unless we are really going to execute a pltclu>
- function. (CVE-2010-1170)
-
-
-
-
- Fix data corruption during WAL replay of
- ALTER ... SET TABLESPACE> (Tom)
-
-
- When archive_mode> is on, ALTER ... SET TABLESPACE>
- generates a WAL record whose replay logic was incorrect. It could write
- the data to the wrong place, leading to possibly-unrecoverable data
- corruption. Data corruption would be observed on standby slaves, and
- could occur on the master as well if a database crash and recovery
- occurred after committing the ALTER> and before the next
- checkpoint.
-
-
-
-
- Fix possible crash if a cache reset message is received during
- rebuild of a relcache entry (Heikki)
-
-
- This error was introduced in 8.4.3 while fixing a related failure.
-
-
-
-
- Apply per-function GUC settings while running the language validator
- for the function (Itagaki Takahiro)
-
-
- This avoids failures if the function's code is invalid without the
- setting; an example is that SQL functions may not parse if the
- search_path> is not correct.
-
-
-
-
- Do constraint exclusion for inherited UPDATE> and
- DELETE> target tables when
- constraint_exclusion> = partition> (Tom)
-
-
- Due to an oversight, this setting previously only caused constraint
- exclusion to be checked in SELECT> commands.
-
-
-
-
- Do not allow an unprivileged user to reset superuser-only parameter
- settings (Alvaro)
-
-
- Previously, if an unprivileged user ran ALTER USER ... RESET
- ALL> for himself, or ALTER DATABASE ... RESET ALL> for
- a database he owns, this would remove all special parameter settings
- for the user or database, even ones that are only supposed to be
- changeable by a superuser. Now, the ALTER> will only
- remove the parameters that the user has permission to change.
-
-
-
-
- Avoid possible crash during backend shutdown if shutdown occurs
- when a CONTEXT> addition would be made to log entries (Tom)
-
-
- In some cases the context-printing function would fail because the
- current transaction had already been rolled back when it came time
- to print a log message.
-
-
-
-
- Fix erroneous handling of %r> parameter in
- recovery_end_command> (Heikki)
-
-
- The value always came out zero.
-
-
-
-
- Ensure the archiver process responds to changes in
- archive_command> as soon as possible (Tom)
-
-
-
-
- Fix pl/pgsql's CASE> statement to not fail when the
- case expression is a query that returns no rows (Tom)
-
-
-
-
- Update pl/perl's ppport.h> for modern Perl versions
- (Andrew)
-
-
-
-
- Fix assorted memory leaks in pl/python (Andreas Freund, Tom)
-
-
-
-
- Handle empty-string connect parameters properly in ecpg (Michael)
-
-
-
-
- Prevent infinite recursion in
psql> when expanding
- a variable that refers to itself (Tom)
-
-
-
-
- Fix
psql>'s \copy> to not add spaces around
- a dot within \copy (select ...)> (Tom)
-
-
- Addition of spaces around the decimal point in a numeric literal would
- result in a syntax error.
-
-
-
-
- Avoid formatting failure in
psql> when running in a
- locale context that doesn't match the client_encoding>
- (Tom)
-
-
-
-
- Fix unnecessary GIN indexes do not support whole-index scans>
- errors for unsatisfiable queries using contrib/intarray>
- operators (Tom)
-
-
-
-
- Ensure that contrib/pgstattuple> functions respond to cancel
- interrupts promptly (Tatsuhito Kasahara)
-
-
-
-
- Make server startup deal properly with the case that
- shmget()> returns EINVAL> for an existing
- shared memory segment (Tom)
-
-
- This behavior has been observed on BSD-derived kernels including OS X.
- It resulted in an entirely-misleading startup failure complaining that
- the shared memory request size was too large.
-
-
-
-
- Avoid possible crashes in syslogger process on Windows (Heikki)
-
-
-
-
- Deal more robustly with incomplete time zone information in the
- Windows registry (Magnus)
-
-
-
-
- Update the set of known Windows time zone names (Magnus)
-
-
-
-
- Update time zone data files to
tzdata> release 2010j
- for DST law changes in Argentina, Australian Antarctic, Bangladesh,
- Mexico, Morocco, Pakistan, Palestine, Russia, Syria, Tunisia;
- also historical corrections for Taiwan.
-
-
- Also, add PKST> (Pakistan Summer Time) to the default set of
- timezone abbreviations.
-
-
-
-
-
-
-
-
-
-
Release 8.4.3
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.2.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.3
-
- A dump/restore is not required for those running 8.4.X.
- However, if you are upgrading from a version earlier than 8.4.2,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Add new configuration parameter ssl_renegotiation_limit> to
- control how often we do session key renegotiation for an SSL connection
- (Magnus)
-
-
- This can be set to zero to disable renegotiation completely, which may
- be required if a broken SSL library is used. In particular, some
- vendors are shipping stopgap patches for CVE-2009-3555 that cause
- renegotiation attempts to fail.
-
-
-
-
- Fix possible deadlock during backend startup (Tom)
-
-
-
-
- Fix possible crashes due to not handling errors during relcache reload
- cleanly (Tom)
-
-
-
-
- Fix possible crash due to use of dangling pointer to a cached plan
- (Tatsuo)
-
-
-
-
- Fix possible crash due to overenthusiastic invalidation of cached
- plan for ROLLBACK> (Tom)
-
-
-
-
- Fix possible crashes when trying to recover from a failure in
- subtransaction start (Tom)
-
-
-
-
- Fix server memory leak associated with use of savepoints and a client
- encoding different from server's encoding (Tom)
-
-
-
-
- Fix incorrect WAL data emitted during end-of-recovery cleanup of a GIST
- index page split (Yoichi Hirai)
-
-
- This would result in index corruption, or even more likely an error
- during WAL replay, if we were unlucky enough to crash during
- end-of-recovery cleanup after having completed an incomplete GIST
- insertion.
-
-
-
-
- Fix bug in WAL redo cleanup method for GIN indexes (Heikki)
-
-
-
-
- Fix incorrect comparison of scan key in GIN index search (Teodor)
-
-
-
-
- Make substring()> for bit> types treat any negative
- length as meaning all the rest of the string> (Tom)
-
-
- The previous coding treated only -1 that way, and would produce an
- invalid result value for other negative values, possibly leading to
- a crash (CVE-2010-0442).
-
-
-
-
- Fix integer-to-bit-string conversions to handle the first fractional
- byte correctly when the output bit width is wider than the given
- integer by something other than a multiple of 8 bits (Tom)
-
-
-
-
- Fix some cases of pathologically slow regular expression matching (Tom)
-
-
-
-
- Fix bug occurring when trying to inline a SQL function that returns
- a set of a composite type that contains dropped columns (Tom)
-
-
-
-
- Fix bug with trying to update a field of an element of a
- composite-type array column (Tom)
-
-
-
-
- Avoid failure when EXPLAIN> has to print a FieldStore or
- assignment ArrayRef expression (Tom)
-
-
- These cases can arise now that EXPLAIN VERBOSE> tries to
- print plan node target lists.
-
-
-
-
- Avoid an unnecessary coercion failure in some cases where an undecorated
- literal string appears in a subquery within
- UNION>/INTERSECT>/EXCEPT> (Tom)
-
-
- This fixes a regression for some cases that worked before 8.4.
-
-
-
-
- Avoid undesirable rowtype compatibility check failures in some cases
- where a whole-row Var has a rowtype that contains dropped columns (Tom)
-
-
-
-
- Fix the STOP WAL LOCATION> entry in backup history files to
- report the next WAL segment's name when the end location is exactly at a
- segment boundary (Itagaki Takahiro)
-
-
-
-
- Always pass the catalog ID to an option validator function specified in
- CREATE FOREIGN DATA WRAPPER> (Martin Pihlak)
-
-
-
-
- Fix some more cases of temporary-file leakage (Heikki)
-
-
- This corrects a problem introduced in the previous minor release.
- One case that failed is when a plpgsql function returning set is
- called within another function's exception handler.
-
-
-
-
- Add support for doing FULL JOIN ON FALSE> (Tom)
-
-
- This prevents a regression from pre-8.4 releases for some queries that
- can now be simplified to a constant-false join condition.
-
-
-
-
- Improve constraint exclusion processing of boolean-variable cases,
- in particular make it possible to exclude a partition that has a
- bool_column = false> constraint (Tom)
-
-
-
-
- Prevent treating an INOUT> cast as representing binary
- compatibility (Heikki)
-
-
-
-
- Include column name in the message when warning about inability to
- grant or revoke column-level privileges (Stephen Frost)
-
-
- This is more useful than before and helps to prevent confusion when
- a REVOKE> generates multiple messages, which formerly
- appeared to be duplicates.
-
-
-
-
- When reading pg_hba.conf> and related files, do not treat
- @something> as a file inclusion request if the @>
- appears inside quote marks; also, never treat @> by itself
- as a file inclusion request (Tom)
-
-
- This prevents erratic behavior if a role or database name starts with
- @>. If you need to include a file whose path name
- contains spaces, you can still do so, but you must write
- @"/path to/file"> rather than putting the quotes around
- the whole construct.
-
-
-
-
- Prevent infinite loop on some platforms if a directory is named as
- an inclusion target in pg_hba.conf> and related files
- (Tom)
-
-
-
-
- Fix possible infinite loop if SSL_read> or
- SSL_write> fails without setting errno> (Tom)
-
-
- This is reportedly possible with some Windows versions of
-
-
-
-
- Disallow
GSSAPI> authentication on local connections,
- since it requires a hostname to function correctly (Magnus)
-
-
-
-
- Protect
ecpg> against applications freeing strings
- unexpectedly (Michael)
-
-
-
-
- Make
ecpg> report the proper SQLSTATE if the connection
- disappears (Michael)
-
-
-
-
- Fix translation of cell contents in
psql> \d>
- output (Heikki)
-
-
-
-
- Fix
psql>'s numericlocale> option to not
- format strings it shouldn't in latex and troff output formats (Heikki)
-
-
-
-
- Fix a small per-query memory leak in
psql> (Tom)
-
-
-
-
- Make
psql> return the correct exit status (3) when
- ON_ERROR_STOP> and --single-transaction> are
- both specified and an error occurs during the implied COMMIT>
- (Bruce)
-
-
-
-
- Fix
pg_dump>'s output of permissions for foreign servers
- (Heikki)
-
-
-
-
- Fix possible crash in parallel
pg_restore> due to
- out-of-range dependency IDs (Tom)
-
-
-
-
- Fix plpgsql failure in one case where a composite column is set to NULL
- (Tom)
-
-
-
-
- Fix possible failure when calling PL/Perl functions from PL/PerlU
- or vice versa (Tim Bunce)
-
-
-
-
- Add volatile> markings in PL/Python to avoid possible
- compiler-specific misbehavior (Zdenek Kotala)
-
-
-
-
- Ensure PL/Tcl initializes the Tcl interpreter fully (Tom)
-
-
- The only known symptom of this oversight is that the Tcl
- clock> command misbehaves if using Tcl 8.5 or later.
-
-
-
-
- Prevent ExecutorEnd> from being run on portals created
- within a failed transaction or subtransaction (Tom)
-
-
- This is known to cause issues when using
- contrib/auto_explain>.
-
-
-
-
- Prevent crash in contrib/dblink> when too many key
- columns are specified to a dblink_build_sql_*> function
- (Rushabh Lathia, Joe Conway)
-
-
-
-
- Allow zero-dimensional arrays in contrib/ltree> operations
- (Tom)
-
-
- This case was formerly rejected as an error, but it's more convenient to
- treat it the same as a zero-element array. In particular this avoids
- unnecessary failures when an ltree> operation is applied to the
- result of ARRAY(SELECT ...)> and the sub-select returns no
- rows.
-
-
-
-
- Fix assorted crashes in contrib/xml2> caused by sloppy
- memory management (Tom)
-
-
-
-
- Make building of contrib/xml2> more robust on Windows
- (Andrew)
-
-
-
-
- Fix race condition in Windows signal handling (Radu Ilie)
-
-
- One known symptom of this bug is that rows in pg_listener>
- could be dropped under heavy load.
-
-
-
-
- Make the configure script report failure if the C compiler does
- not provide a working 64-bit integer datatype (Tom)
-
-
- This case has been broken for some time, and no longer seems worth
- supporting, so just reject it at configure time instead.
-
-
-
-
- Update time zone data files to
tzdata> release 2010e
- for DST law changes in Bangladesh, Chile, Fiji, Mexico, Paraguay, Samoa.
-
-
-
-
-
-
-
-
-
-
Release 8.4.2
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.1.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.2
-
- A dump/restore is not required for those running 8.4.X.
- However, if you have any hash indexes,
- you should REINDEX> them after updating to 8.4.2,
- to repair possible damage.
-
-
-
-
-
-
Changes
-
-
-
-
- Protect against indirect security threats caused by index functions
- changing session-local state (Gurjeet Singh, Tom)
-
-
- This change prevents allegedly-immutable index functions from possibly
- subverting a superuser's session (CVE-2009-4136).
-
-
-
-
- Reject SSL certificates containing an embedded null byte in the common
- name (CN) field (Magnus)
-
-
- This prevents unintended matching of a certificate to a server or client
- name during SSL validation (CVE-2009-4034).
-
-
-
-
- Fix hash index corruption (Tom)
-
-
- The 8.4 change that made hash indexes keep entries sorted by hash value
- failed to update the bucket splitting and compaction routines to
- preserve the ordering. So application of either of those operations
- could lead to permanent corruption of an index, in the sense that
- searches might fail to find entries that are present. To deal with
- this, it is recommended to REINDEX> any hash indexes you may
- have after installing this update.
-
-
-
-
- Fix possible crash during backend-startup-time cache initialization (Tom)
-
-
-
-
- Avoid crash on empty thesaurus dictionary (Tom)
-
-
-
-
- Prevent signals from interrupting VACUUM> at unsafe times
- (Alvaro)
-
-
- This fix prevents a PANIC if a VACUUM FULL> is canceled
- after it's already committed its tuple movements, as well as transient
- errors if a plain VACUUM> is interrupted after having
- truncated the table.
-
-
-
-
- Fix possible crash due to integer overflow in hash table size
- calculation (Tom)
-
-
- This could occur with extremely large planner estimates for the size of
- a hashjoin's result.
-
-
-
-
- Fix crash if a DROP> is attempted on an internally-dependent
- object (Tom)
-
-
-
-
- Fix very rare crash in inet>/cidr> comparisons (Chris
- Mikkelson)
-
-
-
-
- Ensure that shared tuple-level locks held by prepared transactions are
- not ignored (Heikki)
-
-
-
-
- Fix premature drop of temporary files used for a cursor that is accessed
- within a subtransaction (Heikki)
-
-
-
-
- Fix memory leak in syslogger process when rotating to a new CSV logfile
- (Tom)
-
-
-
-
- Fix memory leak in postmaster when re-parsing pg_hba.conf>
- (Tom)
-
-
-
-
- Fix Windows permission-downgrade logic (Jesse Morris)
-
-
- This fixes some cases where the database failed to start on Windows,
- often with misleading error messages such as could not locate
- matching postgres executable.
-
-
-
-
- Make FOR UPDATE/SHARE> in the primary query not propagate
- into WITH> queries (Tom)
-
-
- For example, in
-WITH w AS (SELECT * FROM foo) SELECT * FROM w, bar ... FOR UPDATE
-
- the FOR UPDATE> will now affect bar> but not
- foo>. This is more useful and consistent than the original
- 8.4 behavior, which tried to propagate FOR UPDATE> into the
- WITH> query but always failed due to assorted implementation
- restrictions. It also follows the design rule that WITH>
- queries are executed as if independent of the main query.
-
-
-
-
- Fix bug with a WITH RECURSIVE> query immediately inside
- another one (Tom)
-
-
-
-
- Fix concurrency bug in hash indexes (Tom)
-
-
- Concurrent insertions could cause index scans to transiently report
- wrong results.
-
-
-
-
- Fix incorrect logic for GiST index page splits, when the split depends
- on a non-first column of the index (Paul Ramsey)
-
-
-
-
- Fix wrong search results for a multi-column GIN index with
- fastupdate> enabled (Teodor)
-
-
-
-
- Fix bugs in WAL entry creation for GIN indexes (Tom)
-
-
- These bugs were masked when full_page_writes> was on, but
- with it off a WAL replay failure was certain if a crash occurred before
- the next checkpoint.
-
-
-
-
- Don't error out if recycling or removing an old WAL file fails at the
- end of checkpoint (Heikki)
-
-
- It's better to treat the problem as non-fatal and allow the checkpoint
- to complete. Future checkpoints will retry the removal. Such problems
- are not expected in normal operation, but have been seen to be
- caused by misdesigned Windows anti-virus and backup software.
-
-
-
-
- Ensure WAL files aren't repeatedly archived on Windows (Heikki)
-
-
- This is another symptom that could happen if some other process
- interfered with deletion of a no-longer-needed file.
-
-
-
-
- Fix PAM password processing to be more robust (Tom)
-
-
- The previous code is known to fail with the combination of the Linux
- pam_krb5> PAM module with Microsoft Active Directory as the
- domain controller. It might have problems elsewhere too, since it was
- making unjustified assumptions about what arguments the PAM stack would
- pass to it.
-
-
-
-
- Raise the maximum authentication token (Kerberos ticket) size in GSSAPI
- and SSPI authentication methods (Ian Turner)
-
-
- While the old 2000-byte limit was more than enough for Unix Kerberos
- implementations, tickets issued by Windows Domain Controllers can be
- much larger.
-
-
-
-
- Ensure that domain constraints are enforced in constructs like
- ARRAY[...]::domain>, where the domain is over an array type
- (Heikki)
-
-
-
-
- Fix foreign-key logic for some cases involving composite-type columns
- as foreign keys (Tom)
-
-
-
-
- Ensure that a cursor's snapshot is not modified after it is created
- (Alvaro)
-
-
- This could lead to a cursor delivering wrong results if later operations
- in the same transaction modify the data the cursor is supposed to return.
-
-
-
-
- Fix CREATE TABLE> to properly merge default expressions
- coming from different inheritance parent tables (Tom)
-
-
- This used to work but was broken in 8.4.
-
-
-
-
- Re-enable collection of access statistics for sequences (Akira Kurosawa)
-
-
- This used to work but was broken in 8.3.
-
-
-
-
- Fix processing of ownership dependencies during CREATE OR
- REPLACE FUNCTION> (Tom)
-
-
-
-
- Fix incorrect handling of WHERE>
- x>=x> conditions (Tom)
-
-
- In some cases these could get ignored as redundant, but they aren't
- — they're equivalent to x> IS NOT NULL>.
-
-
-
-
- Fix incorrect plan construction when using hash aggregation to implement
- DISTINCT> for textually identical volatile expressions (Tom)
-
-
-
-
- Fix Assert failure for a volatile SELECT DISTINCT ON>
- expression (Tom)
-
-
-
-
- Fix ts_stat()> to not fail on an empty tsvector>
- value (Tom)
-
-
-
-
- Make text search parser accept underscores in XML attributes (Peter)
-
-
-
-
- Fix encoding handling in xml> binary input (Heikki)
-
-
- If the XML header doesn't specify an encoding, we now assume UTF-8 by
- default; the previous handling was inconsistent.
-
-
-
-
- Fix bug with calling plperl> from plperlu> or vice
- versa (Tom)
-
-
- An error exit from the inner function could result in crashes due to
- failure to re-select the correct Perl interpreter for the outer function.
-
-
-
-
- Fix session-lifespan memory leak when a PL/Perl function is redefined
- (Tom)
-
-
-
-
- Ensure that Perl arrays are properly converted to
-
PostgreSQL> arrays when returned by a set-returning
- PL/Perl function (Andrew Dunstan, Abhijit Menon-Sen)
-
-
- This worked correctly already for non-set-returning functions.
-
-
-
-
- Fix rare crash in exception processing in PL/Python (Peter)
-
-
-
-
- Fix
ecpg> problem with comments in DECLARE
- CURSOR> statements (Michael)
-
-
-
-
- Fix
ecpg> to not treat recently-added keywords as
- reserved words (Tom)
-
-
- This affected the keywords CALLED>, CATALOG>,
- DEFINER>, ENUM>, FOLLOWING>,
- INVOKER>, OPTIONS>, PARTITION>,
- PRECEDING>, RANGE>, SECURITY>,
- SERVER>, UNBOUNDED>, and WRAPPER>.
-
-
-
-
- Re-allow regular expression special characters in
psql>'s
- \df> function name parameter (Tom)
-
-
-
-
- In contrib/fuzzystrmatch>, correct the calculation of
- levenshtein> distances with non-default costs (Marcin Mank)
-
-
-
-
- In contrib/pg_standby>, disable triggering failover with a
- signal on Windows (Fujii Masao)
-
-
- This never did anything useful, because Windows doesn't have Unix-style
- signals, but recent changes made it actually crash.
-
-
-
-
- Put FREEZE> and VERBOSE> options in the right
- order in the VACUUM> command that
- contrib/vacuumdb> produces (Heikki)
-
-
-
-
- Fix possible leak of connections when contrib/dblink>
- encounters an error (Tatsuhito Kasahara)
-
-
-
-
- Ensure
psql>'s flex module is compiled with the correct
- system header definitions (Tom)
-
-
- This fixes build failures on platforms where
- --enable-largefile> causes incompatible changes in the
- generated code.
-
-
-
-
- Make the postmaster ignore any application_name> parameter in
- connection request packets, to improve compatibility with future libpq
- versions (Tom)
-
-
-
-
- Update the timezone abbreviation files to match current reality (Joachim
- Wieland)
-
-
- This includes adding IDT> to the default
- timezone abbreviation set.
-
-
-
-
- Update time zone data files to
tzdata> release 2009s
- for DST law changes in Antarctica, Argentina, Bangladesh, Fiji,
- Novokuznetsk, Pakistan, Palestine, Samoa, Syria; also historical
- corrections for Hong Kong.
-
-
-
-
-
-
-
-
-
-
Release 8.4.1
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 8.4.
- For information about new features in the 8.4 major release, see
- .
-
-
-
-
Migration to Version 8.4.1
-
- A dump/restore is not required for those running 8.4.X.
-
-
-
-
-
-
Changes
-
-
-
-
- Fix WAL page header initialization at the end of archive recovery
- (Heikki)
-
-
- This could lead to failure to process the WAL in a subsequent
- archive recovery.
-
-
-
-
- Fix cannot make new WAL entries during recovery> error (Tom)
-
-
-
-
- Fix problem that could make expired rows visible after a crash (Tom)
-
-
- This bug involved a page status bit potentially not being set
- correctly after a server crash.
-
-
-
-
- Disallow RESET ROLE> and RESET SESSION
- AUTHORIZATION> inside security-definer functions (Tom, Heikki)
-
-
- This covers a case that was missed in the previous patch that
- disallowed SET ROLE> and SET SESSION
- AUTHORIZATION> inside security-definer functions.
- (See CVE-2007-6600)
-
-
-
-
- Make LOAD> of an already-loaded loadable module
- into a no-op (Tom)
-
-
- Formerly, LOAD> would attempt to unload and re-load the
- module, but this is unsafe and not all that useful.
-
-
-
-
- Make window function PARTITION BY> and ORDER BY>
- items always be interpreted as simple expressions (Tom)
-
-
- In 8.4.0 these lists were parsed following the rules used for
- top-level GROUP BY> and ORDER BY> lists.
- But this was not correct per the SQL standard, and it led to possible
- circularity.
-
-
-
-
- Fix several errors in planning of semi-joins (Tom)
-
-
- These led to wrong query results in some cases where IN>
- or EXISTS> was used together with another join.
-
-
-
-
- Fix handling of whole-row references to subqueries that are within
- an outer join (Tom)
-
-
- An example is
- SELECT COUNT(ss.*) FROM ... LEFT JOIN (SELECT ...) ss ON ...>.
- Here, ss.*> would be treated as ROW(NULL,NULL,...)>
- for null-extended join rows, which is not the same as a simple NULL.
- Now it is treated as a simple NULL.
-
-
-
-
- Fix Windows shared-memory allocation code (Tsutomu Yamada, Magnus)
-
-
- This bug led to the often-reported could not reattach
- to shared memory> error message.
-
-
-
-
- Fix locale handling with plperl (Heikki)
-
-
- This bug could cause the server's locale setting to change when a
- plperl function is called, leading to data corruption.
-
-
-
-
- Fix handling of reloptions to ensure setting one option doesn't
- force default values for others (Itagaki Takahiro)
-
-
-
-
- Ensure that a fast shutdown> request will forcibly terminate
- open sessions, even if a smart shutdown> was already in progress
- (Fujii Masao)
-
-
-
-
- Avoid memory leak for array_agg()> in GROUP BY>
- queries (Tom)
-
-
-
-
- Treat to_char(..., 'TH')> as an uppercase ordinal
- suffix with 'HH'>/'HH12'> (Heikki)
-
-
- It was previously handled as 'th'> (lowercase).
-
-
-
-
- Include the fractional part in the result of
- EXTRACT(second)> and
- EXTRACT(milliseconds)> for
- time> and time with time zone> inputs (Tom)
-
-
- This has always worked for floating-point datetime configurations,
- but was broken in the integer datetime code.
-
-
-
-
- Fix overflow for INTERVAL 'x> ms'
- when x> is more than 2 million and integer
- datetimes are in use (Alex Hunsaker)
-
-
-
-
- Improve performance when processing toasted values in index scans (Tom)
-
-
- This is particularly useful for
- url="http://postgis.net/">PostGIS.
-
-
-
-
- Fix a typo that disabled commit_delay> (Jeff Janes)
-
-
-
-
- Output early-startup messages to postmaster.log> if the
- server is started in silent mode (Tom)
-
-
- Previously such error messages were discarded, leading to
- difficulty in debugging.
-
-
-
-
- Remove translated FAQs (Peter)
-
-
- They are now on the
- url="http://wiki.postgresql.org/wiki/FAQ">wiki. The
- main FAQ was moved to the wiki some time ago.
-
-
-
-
- Fix
pg_ctl> to not go into an infinite loop if
- postgresql.conf> is empty (Jeff Davis)
-
-
-
-
- Fix several errors in
pg_dump>'s
- --binary-upgrade> mode (Bruce, Tom)
-
-
- pg_dump --binary-upgrade> is used by pg_migrator.
-
-
-
-
- Fix contrib/xml2>'s xslt_process()> to
- properly handle the maximum number of parameters (twenty) (Tom)
-
-
-
-
- Improve robustness of
libpq>'s code to recover
- from errors during COPY FROM STDIN> (Tom)
-
-
-
-
- Avoid including conflicting readline and editline header files
- when both libraries are installed (Zdenek Kotala)
-
-
-
-
- Work around gcc bug that causes floating-point exception>
- instead of division by zero> on some platforms (Tom)
-
-
-
-
- Update time zone data files to
tzdata> release 2009l
- for DST law changes in Bangladesh, Egypt, Mauritius.
-
-
-
-
-
-
-
-
-
-
Release 8.4
-
-
-
Release date:
-
-
-
-
Overview
-
- After many years of development,
PostgreSQL> has
- become feature-complete in many areas. This release shows a
- targeted approach to adding features (e.g., authentication,
- monitoring, space reuse), and adds capabilities defined in the
- later SQL standards. The major areas of enhancement are:
-
-
-
-
-
-
-
- Windowing Functions
-
-
-
-
- Common Table Expressions and Recursive Queries
-
-
-
-
- Default and variadic parameters for functions
-
-
-
-
- Parallel Restore
-
-
-
-
- Column Permissions
-
-
-
-
- Per-database locale settings
-
-
-
-
- Improved hash indexes
-
-
-
-
- Improved join performance for EXISTS> and NOT EXISTS> queries
-
-
-
-
- Easier-to-use Warm Standby
-
-
-
-
- Automatic sizing of the Free Space Map
-
-
-
-
- Visibility Map (greatly reduces vacuum overhead for slowly-changing tables)
-
-
-
-
- Version-aware psql (backslash commands work against older servers)
-
-
-
-
- Support SSL certificates for user authentication
-
-
-
-
- Per-function runtime statistics
-
-
-
-
- Easy editing of functions in psql
-
-
-
-
- New contrib modules: pg_stat_statements, auto_explain, citext, btree_gin
-
-
-
-
-
- The above items are explained in more detail in the sections below.
-
-
-
-
-
-
Migration to Version 8.4
-
- A dump/restore using
pg_dump is
- required for those wishing to migrate data from any previous
- release.
-
-
- Observe the following incompatibilities:
-
-
-
-
General
-
-
-
- Use 64-bit integer datetimes by default (Neil Conway)
-
-
- Previously this was selected by
configure>'s
- --enable-integer-datetimes> option. To retain
- the old behavior, build with --disable-integer-datetimes>.
-
-
-
-
- Remove
ipcclean> utility command (Bruce)
-
-
- The utility only worked on a few platforms. Users should use
- their operating system tools instead.
-
-
-
-
-
-
-
-
-
Server Settings
-
-
-
- Change default setting for
- log_min_messages> to warning> (previously
- it was notice>) to reduce log file volume (Tom)
-
-
-
-
- Change default setting for max_prepared_transactions> to
- zero (previously it was 5) (Tom)
-
-
-
-
- Make debug_print_parse>, debug_print_rewritten>,
- and debug_print_plan>
- output appear at LOG> message level, not
- DEBUG1> as formerly (Tom)
-
-
-
-
- Make debug_pretty_print> default to on> (Tom)
-
-
-
-
- Remove explain_pretty_print> parameter (no longer needed) (Tom)
-
-
-
-
- Make log_temp_files> settable by superusers only, like other
- logging options (Simon Riggs)
-
-
-
-
- Remove automatic appending of the epoch timestamp when no %>
- escapes are present in log_filename> (Robert Haas)
-
-
- This change was made because some users wanted a fixed log filename,
- for use with an external log rotation tool.
-
-
-
-
- Remove log_restartpoints> from recovery.conf>;
- instead use log_checkpoints> (Simon)
-
-
-
-
- Remove krb_realm> and krb_server_hostname>;
- these are now set in pg_hba.conf> instead (Magnus)
-
-
-
-
- There are also significant changes in
- linkend="release-8-4-pg-hba-conf">pg_hba.conf>,
- as described below.
-
-
-
-
-
-
-
-
-
Queries
-
-
-
-
- Change TRUNCATE> and LOCK> to
- apply to child tables of the specified table(s) (Peter)
-
-
- These commands now accept an ONLY> option that prevents
- processing child tables; this option must be used if the old
- behavior is needed.
-
-
-
-
- SELECT DISTINCT> and
- UNION>/INTERSECT>/EXCEPT>
- no longer always produce sorted output (Tom)
-
-
- Previously, these types of queries always removed duplicate rows
- by means of Sort/Unique processing (i.e., sort then remove adjacent
- duplicates). Now they can be implemented by hashing, which will not
- produce sorted output. If an application relied on the output being
- in sorted order, the recommended fix is to add an ORDER BY>
- clause. As a short-term workaround, the previous behavior can be
- restored by disabling enable_hashagg>, but that is a very
- performance-expensive fix. SELECT DISTINCT ON> never uses
- hashing, however, so its behavior is unchanged.
-
-
-
-
- Force child tables to inherit CHECK> constraints from parents
- (Alex Hunsaker, Nikhil Sontakke, Tom)
-
-
- Formerly it was possible to drop such a constraint from a child
- table, allowing rows that violate the constraint to be visible
- when scanning the parent table. This was deemed inconsistent,
- as well as contrary to SQL standard.
-
-
-
-
- Disallow negative LIMIT> or OFFSET>
- values, rather than treating them as zero (Simon)
-
-
-
-
- Disallow LOCK TABLE> outside a transaction block
- (Tom)
-
-
- Such an operation is useless because the lock would be released
- immediately.
-
-
-
-
- Sequences now contain an additional start_value> column
- (Zoltan Boszormenyi)
-
-
- This supports ALTER SEQUENCE ... RESTART>.
-
-
-
-
-
-
-
-
-
-
Functions and Operators
-
-
-
-
- Make numeric> zero raised to a fractional power return
- 0>, rather than throwing an error, and make
- numeric> zero raised to the zero power return 1>,
- rather than error (Bruce)
-
-
- This matches the longstanding float8> behavior.
-
-
-
-
- Allow unary minus of floating-point values to produce minus zero (Tom)
-
-
- The changed behavior is more
IEEE>-standard
- compliant.
-
-
-
-
- Throw an error if an escape character is the last character in
- a LIKE> pattern (i.e., it has nothing to escape) (Tom)
-
-
- Previously, such an escape character was silently ignored,
- thus possibly masking application logic errors.
-
-
-
-
- Remove ~=~> and ~<>~> operators
- formerly used for LIKE> index comparisons (Tom)
-
-
- Pattern indexes now use the regular equality operator.
-
-
-
-
-
xpath()> now passes its arguments to libxml>
- without any changes (Andrew)
-
-
- This means that the XML argument must be a well-formed XML document.
- The previous coding attempted to allow XML fragments, but it did not
- work well.
-
-
-
-
- Make xmlelement()> format attribute values just like
- content values (Peter)
-
-
- Previously, attribute values were formatted according to the
- normal SQL output behavior, which is sometimes at odds with
- XML rules.
-
-
-
-
- Rewrite memory management for
libxml>-using functions
- (Tom)
-
-
- This change should avoid some compatibility problems with use of
-
libxml> in PL/Perl and other add-on code.
-
-
-
-
- Adopt a faster algorithm for hash functions (Kenneth Marshall,
- based on work of Bob Jenkins)
-
-
- Many of the built-in hash functions now deliver different results on
- little-endian and big-endian platforms.
-
-
-
-
-
-
-
Temporal Functions and Operators
-
-
-
-
- DateStyle> no longer controls interval> output
- formatting; instead there is a new variable IntervalStyle>
- (Ron Mayer)
-
-
-
-
- Improve consistency of handling of fractional seconds in
- timestamp> and interval> output (Ron Mayer)
-
-
- This may result in displaying a different number of fractional
- digits than before, or rounding instead of truncating.
-
-
-
-
- Make to_char()>'s localized month/day names depend
- on LC_TIME>, not LC_MESSAGES> (Euler
- Taveira de Oliveira)
-
-
-
-
- Cause to_date()> and to_timestamp()>
- to more consistently report errors for invalid input (Brendan
- Jurd)
-
-
- Previous versions would often ignore or silently misread input
- that did not match the format string. Such cases will now
- result in an error.
-
-
-
-
- Fix to_timestamp()> to not require upper/lower case
- matching for meridian (AM>/PM>) and era
- (BC>/AD>) format designations (Brendan
- Jurd)
-
-
- For example, input value ad> now matches the format
- string AD>.
-
-
-
-
-
-
-
-
-
-
-
-
-
Changes
-
- Below you will find a detailed account of the changes between
-
PostgreSQL 8.4 and the previous major
- release.
-
-
-
-
Performance
-
-
-
- Improve optimizer statistics calculations (Jan Urbanski, Tom)
-
-
- In particular, estimates for full-text-search operators are
- greatly improved.
-
-
-
-
- Allow SELECT DISTINCT> and
- UNION>/INTERSECT>/EXCEPT> to
- use hashing (Tom)
-
-
- This means that these types of queries no longer automatically
- produce sorted output.
-
-
-
-
- Create explicit concepts of semi-joins and anti-joins (Tom)
-
-
- This work formalizes our previous ad-hoc treatment of IN
- (SELECT ...)> clauses, and extends it to EXISTS> and
- NOT EXISTS> clauses. It should result in significantly
- better planning of EXISTS> and NOT EXISTS>
- queries. In general, logically equivalent IN> and
- EXISTS> clauses should now have similar performance,
- whereas previously IN> often won.
-
-
-
-
- Improve optimization of sub-selects beneath outer joins (Tom)
-
-
- Formerly, a sub-select or view could not be optimized very well if it
- appeared within the nullable side of an outer join and contained
- non-strict expressions (for instance, constants) in its result list.
-
-
-
-
- Improve the performance of text_position()> and
- related functions by using Boyer-Moore-Horspool searching (David
- Rowley)
-
-
- This is particularly helpful for long search patterns.
-
-
-
-
- Reduce I/O load of writing the statistics collection file
- by writing the file only when requested (Martin Pihlak)
-
-
-
-
- Improve performance for bulk inserts (Robert Haas, Simon)
-
-
-
-
- Increase the default value of default_statistics_target>
- from 10> to 100> (Greg Sabino Mullane,
- Tom)
-
-
- The maximum value was also increased from 1000> to
- 10000>.
-
-
-
-
- Perform constraint_exclusion> checking by default
- in queries involving inheritance or UNION ALL> (Tom)
-
-
- A new constraint_exclusion> setting,
- partition>, was added to specify this behavior.
-
-
-
-
- Allow I/O read-ahead for bitmap index scans (Greg Stark)
-
-
- The amount of read-ahead is controlled by
- effective_io_concurrency>. This feature is available only
- if the kernel has posix_fadvise()> support.
-
-
-
-
- Inline simple set-returning
SQL> functions in
- FROM> clauses (Richard Rowell)
-
-
-
-
- Improve performance of multi-batch hash joins by providing a special
- case for join key values that are especially common in the outer
- relation (Bryce Cutt, Ramon Lawrence)
-
-
-
-
- Reduce volume of temporary data in multi-batch hash joins
- by suppressing physical tlist> optimization (Michael
- Henderson, Ramon Lawrence)
-
-
-
-
- Avoid waiting for idle-in-transaction sessions during
- CREATE INDEX CONCURRENTLY> (Simon)
-
-
-
-
- Improve performance of shared cache invalidation (Tom)
-
-
-
-
-
-
-
-
-
Server
-
-
-
Settings
-
-
-
-
- Convert many postgresql.conf> settings to enumerated
- values so that pg_settings> can display the valid
- values (Magnus)
-
-
-
-
- Add cursor_tuple_fraction> parameter to control the
- fraction of a cursor's rows that the planner assumes will be
- fetched (Robert Hell)
-
-
-
-
- Allow underscores in the names of custom variable
- classes in postgresql.conf> (Tom)
-
-
-
-
-
-
-
-
-
Authentication and security
-
-
-
- Remove support for the (insecure) crypt> authentication method
- (Magnus)
-
-
- This effectively obsoletes pre-
PostgreSQL> 7.2 client
- libraries, as there is no longer any non-plaintext password method that
- they can use.
-
-
-
-
- Support regular expressions in pg_ident.conf>
- (Magnus)
-
-
-
-
- Allow
Kerberos>/GSSAPI> parameters
- to be changed without restarting the postmaster (Magnus)
-
-
-
-
- Support
SSL> certificate chains in server certificate
- file (Andrew Gierth)
-
-
- Including the full certificate chain makes the client able
- to verify the certificate without having all intermediate CA
- certificates present in the local store, which is often the case for
- commercial CAs.
-
-
-
-
- Report appropriate error message for combination of MD5>
- authentication and db_user_namespace> enabled (Bruce)
-
-
-
-
-
-
-
-
pg_hba.conf>
-
-
-
- Change all authentication options to use name=value>
- syntax (Magnus)
-
-
- This makes incompatible changes to the ldap>,
- pam> and ident> authentication methods. All
- pg_hba.conf> entries with these methods need to be
- rewritten using the new format.
-
-
-
-
- Remove the ident sameuser> option, instead making that
- behavior the default if no usermap is specified (Magnus)
-
-
-
-
- Allow a usermap parameter for all external authentication methods
- (Magnus)
-
-
- Previously a usermap was only supported for ident>
- authentication.
-
-
-
-
- Add clientcert> option to control requesting of a
- client certificate (Magnus)
-
-
- Previously this was controlled by the presence of a root
- certificate file in the server's data directory.
-
-
-
-
- Add cert> authentication method to allow
-
user> authentication via SSL> certificates
- (Magnus)
-
-
- Previously
SSL> certificates could only verify that
- the client had access to a certificate, not authenticate a
- user.
-
-
-
-
- Allow krb5>, gssapi> and sspi>
- realm and krb5> host settings to be specified in
- pg_hba.conf> (Magnus)
-
-
- These override the settings in postgresql.conf>.
-
-
-
-
- Add include_realm> parameter for krb5>,
- gssapi>, and sspi> methods (Magnus)
-
-
- This allows identical usernames from different realms to be
- authenticated as different database users using usermaps.
-
-
-
-
- Parse pg_hba.conf> fully when it is loaded,
- so that errors are reported immediately (Magnus)
-
-
- Previously, most errors in the file wouldn't be detected until clients
- tried to connect, so an erroneous file could render the system
- unusable. With the new behavior, if an error is detected during
- reload then the bad file is rejected and the postmaster continues
- to use its old copy.
-
-
-
-
- Show all parsing errors in pg_hba.conf> instead of
- aborting after the first one (Selena Deckelmann)
-
-
-
-
- Support ident> authentication over Unix-domain sockets
- on
Solaris> (Garick Hamlin)
-
-
-
-
-
-
-
-
-
Continuous Archiving
-
-
-
- Provide an option to pg_start_backup()> to force its
- implied checkpoint to finish as quickly as possible (Tom)
-
-
- The default behavior avoids excess I/O consumption, but that is
- pointless if no concurrent query activity is going on.
-
-
-
-
- Make
pg_stop_backup()> wait for modified WAL>
- files to be archived (Simon)
-
-
- This guarantees that the backup is valid at the time
- pg_stop_backup()> completes.
-
-
-
-
- When archiving is enabled, rotate the last WAL segment at shutdown
- so that all transactions can be archived immediately
- (Guillaume Smet, Heikki)
-
-
-
-
- Delay smart> shutdown while a continuous archiving base backup
- is in progress (Laurenz Albe)
-
-
-
-
- Cancel a continuous archiving base backup if fast> shutdown
- is requested (Laurenz Albe)
-
-
-
-
- Allow recovery.conf> boolean variables to take the
- same range of string values as postgresql.conf>
- boolean variables
- (Bruce)
-
-
-
-
-
-
-
-
-
Monitoring
-
-
-
- Add pg_conf_load_time()> to report when
- the
PostgreSQL> configuration files were last loaded
- (George Gensure)
-
-
-
-
- Add pg_terminate_backend()> to safely terminate a
- backend (the SIGTERM> signal works also) (Tom, Bruce)
-
-
- While it's always been possible to SIGTERM> a single
- backend, this was previously considered unsupported; and testing
- of the case found some bugs that are now fixed.
-
-
-
-
- Add ability to track user-defined functions' call counts and
- runtimes (Martin Pihlak)
-
-
- Function statistics appear in a new system view,
- pg_stat_user_functions>. Tracking is controlled
- by the new parameter track_functions>.
-
-
-
-
- Allow specification of the maximum query string size in
- pg_stat_activity> via new
- track_activity_query_size> parameter (Thomas Lee)
-
-
-
-
- Increase the maximum line length sent to
syslog>, in
- hopes of improving performance (Tom)
-
-
-
-
- Add read-only configuration variables segment_size>,
- wal_block_size>, and wal_segment_size>
- (Bernd Helmle)
-
-
-
-
- When reporting a deadlock, report the text of all queries involved
- in the deadlock to the server log (Itagaki Takahiro)
-
-
-
-
- Add pg_stat_get_activity(pid)> function to return
- information about a specific process id (Magnus)
-
-
-
-
- Allow the location of the server's statistics file to be specified
- via stats_temp_directory> (Magnus)
-
-
- This allows the statistics file to be placed in a
-
RAM>-resident directory to reduce I/O requirements.
- On startup/shutdown, the file is copied to its traditional location
- ($PGDATA/global/>) so it is preserved across restarts.
-
-
-
-
-
-
-
-
-
-
-
Queries
-
-
-
- Add support for WINDOW> functions (Hitoshi Harada)
-
-
-
-
- Add support for WITH> clauses (CTEs), including WITH
- RECURSIVE> (Yoshiyuki Asaba, Tatsuo Ishii, Tom)
-
-
-
-
- Add TABLE> command (Peter)
-
-
- TABLE tablename> is a SQL standard short-hand for
- SELECT * FROM tablename>.
-
-
-
-
- Allow AS> to be optional when specifying a
- SELECT> (or RETURNING>) column output
- label (Hiroshi Saito)
-
-
- This works so long as the column label is not any
-
PostgreSQL> keyword; otherwise AS> is still
- needed.
-
-
-
-
- Support set-returning functions in SELECT> result lists
- even for functions that return their result via a tuplestore (Tom)
-
-
- In particular, this means that functions written in PL/pgSQL
- and other PL languages can now be called this way.
-
-
-
-
- Support set-returning functions in the output of aggregation
- and grouping queries (Tom)
-
-
-
-
- Allow SELECT FOR UPDATE>/SHARE> to work
- on inheritance trees (Tom)
-
-
-
-
- Add infrastructure for
SQL/MED> (Martin Pihlak,
- Peter)
-
-
- There are no remote or external
SQL/MED> capabilities
- yet, but this change provides a standardized and future-proof
- system for managing connection information for modules like
- dblink> and plproxy>.
-
-
-
-
- Invalidate cached plans when referenced schemas, functions, operators,
- or operator classes are modified (Martin Pihlak, Tom)
-
-
- This improves the system's ability to respond to on-the-fly
- DDL changes.
-
-
-
- Allow comparison of composite types and allow arrays of
- anonymous composite types (Tom)
-
-
- This allows constructs such as
- row(1, 1.1) = any (array[row(7, 7.7), row(1, 1.0)])>.
- This is particularly useful in recursive queries.
-
-
-
-
- Add support for Unicode string literal and identifier specifications
- using code points, e.g. U&'d\0061t\+000061'>
- (Peter)
-
-
-
-
- Reject \000> in string literals and COPY> data
- (Tom)
-
-
- Previously, this was accepted but had the effect of terminating
- the string contents.
-
-
-
-
- Improve the parser's ability to report error locations (Tom)
-
-
- An error location is now reported for many semantic errors,
- such as mismatched datatypes, that previously could not be localized.
-
-
-
-
-
-
-
TRUNCATE>
-
-
-
- Support statement-level ON TRUNCATE> triggers (Simon)
-
-
-
-
- Add RESTART>/CONTINUE IDENTITY> options
- for TRUNCATE TABLE>
- (Zoltan Boszormenyi)
-
-
- The start value of a sequence can be changed by ALTER
- SEQUENCE START WITH>.
-
-
-
-
- Allow TRUNCATE tab1, tab1> to succeed (Bruce)
-
-
-
-
- Add a separate TRUNCATE> permission (Robert Haas)
-
-
-
-
-
-
-
-
-
EXPLAIN>
-
-
-
- Make EXPLAIN VERBOSE> show the output columns of each
- plan node (Tom)
-
-
- Previously EXPLAIN VERBOSE> output an internal
- representation of the query plan. (That behavior is now
- available via debug_print_plan>.)
-
-
-
-
- Make EXPLAIN> identify subplans and initplans with
- individual labels (Tom)
-
-
-
-
- Make EXPLAIN> honor debug_print_plan> (Tom)
-
-
-
-
- Allow EXPLAIN> on CREATE TABLE AS> (Peter)
-
-
-
-
-
-
-
-
-
LIMIT>/OFFSET>
-
-
-
- Allow sub-selects in LIMIT> and OFFSET> (Tom)
-
-
-
-
- Add
SQL>-standard syntax for
- LIMIT>/OFFSET> capabilities (Peter)
-
-
- To wit,
- OFFSET num {ROW|ROWS} FETCH {FIRST|NEXT} [num] {ROW|ROWS}
- ONLY>.
-
-
-
-
-
-
-
-
-
-
-
Object Manipulation
-
-
-
- Add support for column-level privileges (Stephen Frost, KaiGai
- Kohei)
-
-
-
-
- Refactor multi-object DROP> operations to reduce the
- need for CASCADE> (Alex Hunsaker)
-
-
- For example, if table B> has a dependency on table
- A>, the command DROP TABLE A, B> no longer
- requires the CASCADE> option.
-
-
-
-
- Fix various problems with concurrent DROP> commands
- by ensuring that locks are taken before we begin to drop dependencies
- of an object (Tom)
-
-
-
-
- Improve reporting of dependencies during DROP>
- commands (Tom)
-
-
-
-
- Add WITH [NO] DATA> clause to CREATE TABLE
- AS>, per the
SQL> standard (Peter, Tom)
-
-
-
-
- Add support for user-defined I/O conversion casts (Heikki)
-
-
-
-
- Allow CREATE AGGREGATE> to use an internal>
- transition datatype (Tom)
-
-
-
-
- Add LIKE> clause to CREATE TYPE> (Tom)
-
-
- This simplifies creation of data types that use the same internal
- representation as an existing type.
-
-
-
-
- Allow specification of the type category and preferred>
- status for user-defined base types (Tom)
-
-
- This allows more control over the coercion behavior of user-defined
- types.
-
-
-
-
- Allow CREATE OR REPLACE VIEW> to add columns to the
- end of a view (Robert Haas)
-
-
-
-
-
-
-
ALTER>
-
-
-
- Add ALTER TYPE RENAME> (Petr Jelinek)
-
-
-
-
- Add ALTER SEQUENCE ... RESTART> (with no parameter) to
- reset a sequence to its initial value (Zoltan Boszormenyi)
-
-
-
-
- Modify the ALTER TABLE> syntax to allow all reasonable
- combinations for tables, indexes, sequences, and views (Tom)
-
-
- This change allows the following new syntaxes:
-
-
-
- ALTER SEQUENCE OWNER TO>
-
-
-
- ALTER VIEW ALTER COLUMN SET/DROP DEFAULT>
-
-
-
- ALTER VIEW OWNER TO>
-
-
-
- ALTER VIEW SET SCHEMA>
-
-
-
-
- There is no actual new functionality here, but formerly
- you had to say ALTER TABLE> to do these things,
- which was confusing.
-
-
-
-
- Add support for the syntax ALTER TABLE ... ALTER COLUMN
- ... SET DATA TYPE> (Peter)
-
-
- This is
SQL>-standard syntax for functionality that
- was already supported.
-
-
-
-
- Make ALTER TABLE SET WITHOUT OIDS> rewrite the table
- to physically remove OID> values (Tom)
-
-
- Also, add ALTER TABLE SET WITH OIDS> to rewrite the
- table to add OID>s.
-
-
-
-
-
-
-
-
-
Database Manipulation
-
-
-
- Improve reporting of
- CREATE>/DROP>/RENAME DATABASE>
- failure when uncommitted prepared transactions are the cause
- (Tom)
-
-
-
-
- Make LC_COLLATE> and LC_CTYPE> into
- per-database settings (Radek Strnad, Heikki)
-
-
- This makes collation similar to encoding, which was always
- configurable per database.
-
-
-
-
- Improve checks that the database encoding, collation
- (LC_COLLATE>), and character classes
- (LC_CTYPE>) match (Heikki, Tom)
-
-
- Note in particular that a new database's encoding and locale
- settings can be changed only when copying from template0>.
- This prevents possibly copying data that doesn't match the settings.
-
-
-
-
- Add ALTER DATABASE SET TABLESPACE> to move a database
- to a new tablespace (Guillaume Lelarge, Bernd Helmle)
-
-
-
-
-
-
-
-
-
-
-
Utility Operations
-
-
-
-
- Add a VERBOSE> option to the CLUSTER> command and
-
-
-
-
- Decrease memory requirements for recording pending trigger
- events (Tom)
-
-
-
-
-
-
-
Indexes
-
-
-
- Dramatically improve the speed of building and accessing hash
- indexes (Tom Raney, Shreya Bhargava)
-
-
- This allows hash indexes to be sometimes faster than btree
- indexes. However, hash indexes are still not crash-safe.
-
-
-
-
- Make hash indexes store only the hash code, not the full value of
- the indexed column (Xiao Meng)
-
-
- This greatly reduces the size of hash indexes for long indexed
- values, improving performance.
-
-
-
-
- Implement fast update option for GIN indexes (Teodor, Oleg)
-
-
- This option greatly improves update speed at a small penalty in search
- speed.
-
-
-
-
- xxx_pattern_ops> indexes can now be used for simple
- equality comparisons, not only for LIKE> (Tom)
-
-
-
-
-
-
-
-
-
Full Text Indexes
-
-
-
- Remove the requirement to use @@@> when doing
-
GIN> weighted lookups on full text indexes (Tom, Teodor)
-
-
- The normal @@> text search operator can be used
- instead.
-
-
-
-
- Add an optimizer selectivity function for @@> text
- search operations (Jan Urbanski)
-
-
-
-
- Allow prefix matching in full text searches (Teodor Sigaev,
- Oleg Bartunov)
-
-
-
-
- Support multi-column
GIN> indexes (Teodor Sigaev)
-
-
-
-
- Improve support for Nepali language and Devanagari alphabet (Teodor)
-
-
-
-
-
-
-
-
-
VACUUM>
-
-
-
- Track free space in separate per-relation fork> files (Heikki)
-
-
- Free space discovered by VACUUM> is now recorded in
- *_fsm> files, rather than in a fixed-sized shared memory
- area. The max_fsm_pages> and max_fsm_relations>
- settings have been removed, greatly simplifying administration of
- free space management.
-
-
-
-
- Add a visibility map to track pages that do not require
- vacuuming (Heikki)
-
-
- This allows VACUUM> to avoid scanning all of
- a table when only a portion of the table needs vacuuming.
- The visibility map is stored in per-relation fork> files.
-
-
-
-
- Add vacuum_freeze_table_age> parameter to control
- when VACUUM> should ignore the visibility map and
- do a full table scan to freeze tuples (Heikki)
-
-
-
-
- Track transaction snapshots more carefully (Alvaro)
-
-
- This improves VACUUM>'s ability to reclaim space
- in the presence of long-running transactions.
-
-
-
-
- Add ability to specify per-relation autovacuum and
TOAST>
- parameters in CREATE TABLE> (Alvaro, Euler Taveira de
- Oliveira)
-
-
- Autovacuum options used to be stored in a system table.
-
-
-
-
- Add
--freeze> option to vacuumdb>
- (Bruce)
-
-
-
-
-
-
-
-
-
-
-
Data Types
-
-
-
- Add a CaseSensitive> option for text search synonym
- dictionaries (Simon)
-
-
-
-
- Improve the precision of NUMERIC> division (Tom)
-
-
-
-
- Add basic arithmetic operators for int2> with int8>
- (Tom)
-
-
- This eliminates the need for explicit casting in some situations.
-
-
-
-
- Allow UUID> input to accept an optional hyphen after
- every fourth digit (Robert Haas)
-
-
-
-
- Allow on>/off> as input for the boolean data type
- (Itagaki Takahiro)
-
-
-
-
- Allow spaces around NaN> in the input string for
- type numeric> (Sam Mason)
-
-
-
-
-
-
-
Temporal Data Types
-
-
-
- Reject year 0 BC> and years 000> and
- 0000> (Tom)
-
-
- Previously these were interpreted as 1 BC>.
- (Note: years 0> and 00> are still assumed to be
- the year 2000.)
-
-
-
-
- Include SGT> (Singapore time) in the default list of
- known time zone abbreviations (Tom)
-
-
-
-
- Support infinity> and -infinity> as
- values of type date> (Tom)
-
-
-
-
- Make parsing of interval> literals more standard-compliant
- (Tom, Ron Mayer)
-
-
- For example, INTERVAL '1' YEAR> now does what it's
- supposed to.
-
-
-
-
- Allow interval> fractional-seconds precision to be specified
- after the
second> keyword, for SQL> standard
- compliance (Tom)
-
-
- Formerly the precision had to be specified after the keyword
- interval>. (For backwards compatibility, this syntax is still
- supported, though deprecated.) Data type definitions will now be
- output using the standard format.
-
-
-
-
- Support the
IS0 8601> interval> syntax (Ron
- Mayer, Kevin Grittner)
-
-
- For example, INTERVAL 'P1Y2M3DT4H5M6.7S'> is now
- supported.
-
-
-
-
- Add IntervalStyle> parameter
- which controls how interval> values are output (Ron Mayer)
-
-
- Valid values are: postgres>, postgres_verbose>,
- sql_standard>, iso_8601>. This setting also
- controls the handling of negative interval> input when only
- some fields have positive/negative designations.
-
-
-
-
- Improve consistency of handling of fractional seconds in
- timestamp> and interval> output (Ron Mayer)
-
-
-
-
-
-
-
-
-
Arrays
-
-
-
- Improve the handling of casts applied to ARRAY[]>
- constructs, such as ARRAY[...]::integer[]>
- (Brendan Jurd)
-
-
- Formerly
PostgreSQL> attempted to determine a data type
- for the ARRAY[]> construct without reference to the ensuing
- cast. This could fail unnecessarily in many cases, in particular when
- the ARRAY[]> construct was empty or contained only
- ambiguous entries such as NULL>. Now the cast is consulted
- to determine the type that the array elements must be.
-
-
-
-
- Make
SQL>-syntax ARRAY> dimensions optional
- to match the
SQL> standard (Peter)
-
-
-
-
- Add array_ndims()> to return the number
- of dimensions of an array (Robert Haas)
-
-
-
-
- Add array_length()> to return the length
- of an array for a specified dimension (Jim Nasby, Robert
- Haas, Peter Eisentraut)
-
-
-
-
- Add aggregate function array_agg()>, which
- returns all aggregated values as a single array (Robert Haas,
- Jeff Davis, Peter)
-
-
-
-
- Add unnest()>, which converts an array to
- individual row values (Tom)
-
-
- This is the opposite of array_agg()>.
-
-
-
-
- Add array_fill()> to create arrays initialized with
- a value (Pavel Stehule)
-
-
-
-
- Add generate_subscripts()> to simplify generating
- the range of an array's subscripts (Pavel Stehule)
-
-
-
-
-
-
-
-
-
Wide-Value Storage (TOAST>)
-
-
-
- Consider
TOAST> compression on values as short as
- 32 bytes (previously 256 bytes) (Greg Stark)
-
-
-
-
- Require 25% minimum space savings before using
TOAST>
- compression (previously 20% for small values and any-savings-at-all
- for large values) (Greg)
-
-
-
-
- Improve
TOAST> heuristics for rows that have a mix of large
- and small toastable fields, so that we prefer to push large values out
- of line and don't compress small values unnecessarily (Greg, Tom)
-
-
-
-
-
-
-
-
-
-
-
Functions
-
-
-
- Document that setseed()> allows values from
- -1> to 1> (not just 0> to
- 1>), and enforce the valid range (Kris Jurka)
-
-
-
-
- Add server-side function lo_import(filename, oid)>
- (Tatsuo)
-
-
-
-
- Add quote_nullable()>, which behaves like
- quote_literal()> but returns the string NULL> for
- a null argument (Brendan Jurd)
-
-
-
-
- Improve full text search headline()> function to
- allow extracting several fragments of text (Sushant Sinha)
-
-
-
-
- Add suppress_redundant_updates_trigger()> trigger
- function to avoid overhead for non-data-changing updates (Andrew)
-
-
-
-
- Add div(numeric, numeric)> to perform numeric>
- division without rounding (Tom)
-
-
-
-
- Add timestamp> and timestamptz> versions of
- generate_series()> (Hitoshi Harada)
-
-
-
-
-
-
-
Object Information Functions
-
-
-
- Implement current_query()> for use by functions
- that need to know the currently running query (Tomas Doran)
-
-
-
-
- Add pg_get_keywords()> to return a list of the
- parser keywords (Dave Page)
-
-
-
-
- Add pg_get_functiondef()> to see a function's
- definition (Abhijit Menon-Sen)
-
-
-
-
- Allow the second argument of pg_get_expr()> to be zero
- when deparsing an expression that does not contain variables (Tom)
-
-
-
-
- Modify pg_relation_size()> to use regclass>
- (Heikki)
-
-
- pg_relation_size(data_type_name)> no longer works.
-
-
-
-
- Add boot_val> and reset_val> columns to
- pg_settings> output (Greg Smith)
-
-
-
-
- Add source file name and line number columns to
- pg_settings> output for variables set in a configuration
- file (Magnus, Alvaro)
-
-
- For security reasons, these columns are only visible to superusers.
-
-
-
-
- Add support for CURRENT_CATALOG>,
- CURRENT_SCHEMA>, SET CATALOG>, SET
- SCHEMA> (Peter)
-
-
- These provide
SQL>-standard syntax for existing features.
-
-
-
-
- Add pg_typeof()> which returns the data type
- of any value (Brendan Jurd)
-
-
-
-
- Make version()> return information about whether
- the server is a 32- or 64-bit binary (Bruce)
-
-
-
-
- Fix the behavior of information schema columns
- is_insertable_into> and is_updatable> to
- be consistent (Peter)
-
-
-
-
- Improve the behavior of information schema
- datetime_precision> columns (Peter)
-
-
- These columns now show zero for date> columns, and 6
- (the default precision) for time>, timestamp>, and
- interval> without a declared precision, rather than showing
- null as formerly.
-
-
-
-
- Convert remaining builtin set-returning functions to use
- OUT> parameters (Jaime Casanova)
-
-
- This makes it possible to call these functions without specifying
- a column list: pg_show_all_settings()>,
- pg_lock_status()>, pg_prepared_xact()>,
- pg_prepared_statement()>, pg_cursor()>
-
-
-
-
- Make pg_*_is_visible()> and
- has_*_privilege()> functions return NULL>
- for invalid OIDs, rather than reporting an error (Tom)
-
-
-
-
- Extend has_*_privilege()> functions to allow inquiring
- about the OR of multiple privileges in one call (Stephen
- Frost, Tom)
-
-
-
-
- Add has_column_privilege()> and
- has_any_column_privilege()> functions (Stephen
- Frost, Tom)
-
-
-
-
-
-
-
-
-
Function Creation
-
-
-
- Support variadic functions (functions with a variable number
- of arguments) (Pavel Stehule)
-
-
- Only trailing arguments can be optional, and they all must be
- of the same data type.
-
-
-
-
- Support default values for function arguments (Pavel Stehule)
-
-
-
-
- Add CREATE FUNCTION ... RETURNS TABLE> clause (Pavel
- Stehule)
-
-
-
-
- Allow
SQL>-language functions to return the output
- of an INSERT>/UPDATE>/DELETE>
- RETURNING> clause (Tom)
-
-
-
-
-
-
-
-
-
PL/pgSQL Server-Side Language
-
-
-
- Support EXECUTE USING> for easier insertion of data
- values into a dynamic query string (Pavel Stehule)
-
-
-
-
- Allow looping over the results of a cursor using a FOR>
- loop (Pavel Stehule)
-
-
-
-
- Support RETURN QUERY EXECUTE> (Pavel
- Stehule)
-
-
-
-
- Improve the RAISE> command (Pavel Stehule)
-
-
-
- Support DETAIL> and HINT> fields
-
-
-
- Support specification of the SQLSTATE> error code
-
-
-
- Support an exception name parameter
-
-
-
- Allow RAISE> without parameters in an exception
- block to re-throw the current error
-
-
-
-
-
-
-
- Allow specification of SQLSTATE> codes
- in EXCEPTION> lists (Pavel Stehule)
-
-
- This is useful for handling custom SQLSTATE> codes.
-
-
-
-
- Support the CASE> statement (Pavel Stehule)
-
-
-
-
- Make RETURN QUERY> set the special FOUND> and
- GET DIAGNOSTICS> ROW_COUNT> variables
- (Pavel Stehule)
-
-
-
-
- Make FETCH> and MOVE> set the
- GET DIAGNOSTICS> ROW_COUNT> variable
- (Andrew Gierth)
-
-
-
-
- Make EXIT> without a label always exit the innermost
- loop (Tom)
-
-
- Formerly, if there were a BEGIN> block more closely nested
- than any loop, it would exit that block instead. The new behavior
- matches Oracle(TM) and is also what was previously stated by our own
- documentation.
-
-
-
-
- Make processing of string literals and nested block comments
- match the main SQL parser's processing (Tom)
-
-
- In particular, the format string in RAISE> now works
- the same as any other string literal, including being subject
- to standard_conforming_strings>. This change also
- fixes other cases in which valid commands would fail when
- standard_conforming_strings> is on.
-
-
-
-
- Avoid memory leakage when the same function is called at varying
- exception-block nesting depths (Tom)
-
-
-
-
-
-
-
-
-
-
-
Client Applications
-
-
-
-
- Fix pg_ctl restart> to preserve command-line arguments
- (Bruce)
-
-
-
-
- Add -w>/--no-password> option that
- prevents password prompting in all utilities that have a
- -W>/--password> option (Peter)
-
-
-
-
- Remove
-q> (quiet) option of createdb>,
-
-
- These options have had no effect since
PostgreSQL>
- 8.3.
-
-
-
-
-
-
-
-
-
- Remove verbose startup banner; now just suggest help>
- (Joshua Drake)
-
-
-
-
- Make help> show common backslash commands (Greg
- Sabino Mullane)
-
-
-
-
- Add \pset format wrapped> mode to wrap output to the
- screen width, or file/pipe output too if \pset columns>
- is set (Bryce Nesbitt)
-
-
-
-
- Allow all supported spellings of boolean values in \pset>,
- rather than just on> and off> (Bruce)
-
-
- Formerly, any string other than off> was silently taken
- to mean
true>. psql> will now complain
- about unrecognized spellings (but still take them as true>).
-
-
-
-
- Use the pager for wide output (Bruce)
-
-
-
-
- Require a space between a one-letter backslash command and its first
- argument (Bernd Helmle)
-
-
- This removes a historical source of ambiguity.
-
-
-
-
- Improve tab completion support for schema-qualified and
- quoted identifiers (Greg Sabino Mullane)
-
-
-
-
- Add optional on>/off> argument for
- \timing> (David Fetter)
-
-
-
-
- Display access control rights on multiple lines (Brendan
- Jurd, Andreas Scherbaum)
-
-
-
-
- Make \l> show database access privileges (Andrew Gilligan)
-
-
-
-
- Make \l+> show database sizes, if permissions
- allow (Andrew Gilligan)
-
-
-
-
- Add the \ef> command to edit function definitions
- (Abhijit Menon-Sen)
-
-
-
-
-
-
-
-
-
-
-
-
- Make \d*> commands that do not have a pattern argument
- show system objects only if the S> modifier is specified
- (Greg Sabino Mullane, Bruce)
-
-
- The former behavior was inconsistent across different variants
- of \d>, and in most cases it provided no easy way to see
- just user objects.
-
-
-
-
- Improve \d*> commands to work with older
-
PostgreSQL> server versions (back to 7.4),
- not only the current server version
- (Guillaume Lelarge)
-
-
-
-
- Make \d> show foreign-key constraints that reference
- the selected table (Kenneth D'Souza)
-
-
-
-
- Make \d> on a sequence show its column values
- (Euler Taveira de Oliveira)
-
-
-
-
- Add column storage type and other relation options to the
- \d+> display (Gregory Stark, Euler Taveira de
- Oliveira)
-
-
-
-
- Show relation size in \dt+> output (Dickson S.
- Guedes)
-
-
-
-
- Show the possible values of enum> types in \dT+>
- (David Fetter)
-
-
-
-
- Allow \dC> to accept a wildcard pattern, which matches
- either datatype involved in the cast (Tom)
-
-
-
-
- Add a function type column to \df>'s output, and add
- options to list only selected types of functions (David Fetter)
-
-
-
-
- Make \df> not hide functions that take or return
- type cstring> (Tom)
-
-
- Previously, such functions were hidden because most of them are
- datatype I/O functions, which were deemed uninteresting. The new
- policy about hiding system functions by default makes this wart
- unnecessary.
-
-
-
-
-
-
-
-
-
-
-
- Add a --no-tablespaces> option to
-
pg_dump>/pg_dumpall>/pg_restore>
- so that dumps can be restored to clusters that have non-matching
- tablespace layouts (Gavin Roy)
-
-
-
-
- Remove -d> and -D> options from
-
pg_dump> and pg_dumpall> (Tom)
-
-
- These options were too frequently confused with the option to
- select a database name in other
PostgreSQL>
- client applications. The functionality is still available,
- but you must now spell out the long option name
- --inserts> or --column-inserts>.
-
-
-
-
- Remove -i>/ --ignore-version> option from
-
pg_dump> and pg_dumpall> (Tom)
-
-
- Use of this option does not throw an error, but it has no
- effect. This option was removed because the version checks
- are necessary for safety.
-
-
-
-
- Disable statement_timeout> during dump and restore
- (Joshua Drake)
-
-
-
-
- Add
pg_dump>/pg_dumpall> option
- --lock-wait-timeout> (David Gould)
-
-
- This allows dumps to fail if unable to acquire a shared lock
- within the specified amount of time.
-
-
-
-
- Reorder
pg_dump> --data-only> output
- to dump tables referenced by foreign keys before
- the referencing tables (Tom)
-
-
- This allows data loads when foreign keys are already present.
- If circular references make a safe ordering impossible, a
- NOTICE> is issued.
-
-
-
-
- Allow
pg_dump>, pg_dumpall>, and
-
pg_restore> to use a specified role (Benedek
- László)
-
-
-
-
- Allow
pg_restore> to use multiple concurrent
- connections to do the restore (Andrew)
-
-
- The number of concurrent connections is controlled by the option
- --jobs>. This is supported only for custom-format archives.
-
-
-
-
-
-
-
-
-
-
-
Programming Tools
-
-
-
-
-
- Allow the OID> to be specified when importing a large
- object, via new function lo_import_with_oid()> (Tatsuo)
-
-
-
-
- Add events> support (Andrew Chernow, Merlin Moncure)
-
-
- This adds the ability to register callbacks to manage private
- data associated with PGconn> and PGresult>
- objects.
-
-
-
-
- Improve error handling to allow the return of multiple
- error messages as multi-line error reports (Magnus)
-
-
-
-
- Make PQexecParams()> and related functions return
- PGRES_EMPTY_QUERY> for an empty query (Tom)
-
-
- They previously returned PGRES_COMMAND_OK>.
-
-
-
-
- Document how to avoid the overhead of WSACleanup()>
- on Windows (Andrew Chernow)
-
-
-
-
- Do not rely on Kerberos tickets to determine the default database
- username (Magnus)
-
-
- Previously, a Kerberos-capable build of libpq would use the
- principal name from any available Kerberos ticket as default
- database username, even if the connection wasn't using Kerberos
- authentication. This was deemed inconsistent and confusing.
- The default username is now determined the same way with or
- without Kerberos. Note however that the database username must still
- match the ticket when Kerberos authentication is used.
-
-
-
-
-
-
-
-
libpq> SSL> (Secure Sockets Layer)
- support
-
-
-
- Fix certificate validation for
SSL> connections
- (Magnus)
-
-
-
libpq> now supports verifying both the certificate
- and the name of the server when making
SSL>
- connections. If a root certificate is not available to use for
- verification,
SSL> connections will fail. The
- sslmode> parameter is used to enable certificate
- verification and set the level of checking.
- The default is still not to do any verification, allowing connections
- to SSL-enabled servers without requiring a root certificate on the
- client.
-
-
-
-
- Support wildcard server certificates (Magnus)
-
-
- If a certificate
CN> starts with *>, it will
- be treated as a wildcard when matching the hostname, allowing the
- use of the same certificate for multiple servers.
-
-
-
-
- Allow the file locations for client certificates to be specified
- (Mark Woodward, Alvaro, Magnus)
-
-
-
-
- Add a PQinitOpenSSL> function to allow greater control
- over OpenSSL/libcrypto initialization (Andrew Chernow)
-
-
-
-
- Make
libpq> unregister its OpenSSL>
- callbacks when no database connections remain open
- (Bruce, Magnus, Russell Smith)
-
-
- This is required for applications that unload the libpq library,
- otherwise invalid
OpenSSL> callbacks will remain.
-
-
-
-
-
-
-
-
-
-
-
- Add localization support for messages (Euler Taveira de
- Oliveira)
-
-
-
-
- ecpg parser is now automatically generated from the server
- parser (Michael)
-
-
- Previously the ecpg parser was hand-maintained.
-
-
-
-
-
-
-
-
-
Server Programming Interface (SPI>)
-
-
-
- Add support for single-use plans with out-of-line
- parameters (Tom)
-
-
-
-
- Add new SPI_OK_REWRITTEN> return code for
- SPI_execute()> (Heikki)
-
-
- This is used when a command is rewritten to another type of
- command.
-
-
-
-
- Remove unnecessary inclusions from executor/spi.h> (Tom)
-
-
- SPI-using modules might need to add some #include>
- lines if they were depending on spi.h> to include
- things for them.
-
-
-
-
-
-
-
-
-
-
-
Build Options
-
-
-
- Update build system to use
Autoconf> 2.61 (Peter)
-
-
-
-
- Require
GNU bison> for source code builds (Peter)
-
-
- This has effectively been required for several years, but now there
- is no infrastructure claiming to support other parser tools.
-
-
-
-
- Add
pg_config> --htmldir> option
- (Peter)
-
-
-
-
- Pass float4> by value inside the server (Zoltan
- Boszormenyi)
-
-
- --disable-float4-byval> to use the old behavior.
- External C functions that use old-style (version 0) call convention
- and pass or return float4> values will be broken by this
- change, so you may need the
configure> option if you
- have such functions and don't want to update them.
-
-
-
-
- Pass float8>, int8>, and related datatypes
- by value inside the server on 64-bit platforms (Zoltan Boszormenyi)
-
-
- --disable-float8-byval> to use the old behavior.
- As above, this change might break old-style external C functions.
-
-
-
-
- Add configure options --with-segsize>,
- --with-blocksize>, --with-wal-blocksize>,
- --with-wal-segsize> (Zdenek Kotala, Tom)
-
-
- This simplifies build-time control over several constants that
- previously could only be changed by editing
- pg_config_manual.h>.
-
-
-
-
- Allow threaded builds on
Solaris> 2.5 (Bruce)
-
-
-
-
- Use the system's
getopt_long()> on Solaris>
- (Zdenek Kotala, Tom)
-
-
- This makes option processing more consistent with what Solaris users
- expect.
-
-
-
-
- Add support for the
Sun Studio> compiler on
-
Linux> (Julius Stroffek)
-
-
-
-
- Append the major version number to the backend
gettext>
- domain, and the soname> major version number to
- libraries'
gettext> domain (Peter)
-
-
- This simplifies parallel installations of multiple versions.
-
-
-
-
- Add support for code coverage testing with
gcov>
- (Michelle Caisse)
-
-
-
-
- Allow out-of-tree builds on
Mingw> and
-
Cygwin> (Richard Evans)
-
-
-
-
- Fix the use of
Mingw> as a cross-compiling source
- platform (Peter)
-
-
-
-
-
-
-
-
-
Source Code
-
-
-
- Support 64-bit time zone data files (Heikki)
-
-
- This adds support for daylight saving time (
DST>)
- calculations beyond the year 2038.
-
-
-
-
- Deprecate use of platform's time_t> data type (Tom)
-
-
- Some platforms have migrated to 64-bit time_t>, some have
- not, and Windows can't make up its mind what it's doing. Define
- pg_time_t> to have the same meaning as time_t>,
- but always be 64 bits (unless the platform has no 64-bit integer type),
- and use that type in all module APIs and on-disk data formats.
-
-
-
-
- Fix bug in handling of the time zone database when cross-compiling
- (Richard Evans)
-
-
-
-
- Link backend object files in one step, rather than in stages
- (Peter)
-
-
-
-
- Improve
gettext> support to allow better translation
- of plurals (Peter)
-
-
-
-
- Add message translation support to the PL languages (Alvaro, Peter)
-
-
-
-
- Add more
DTrace> probes (Robert Lor)
-
-
-
-
- Enable
DTrace> support on Mac OS X
- Leopard> and other non-Solaris platforms (Robert Lor)
-
-
-
-
- Simplify and standardize conversions between C strings and
- text> datums, by providing common functions for the purpose
- (Brendan Jurd, Tom)
-
-
-
-
- Clean up the include/catalog/> header files so that
- frontend programs can include them without including
- postgres.h>
- (Zdenek Kotala)
-
-
-
-
- Make name> char-aligned, and suppress zero-padding of
- name> entries in indexes (Tom)
-
-
-
-
- Recover better if dynamically-loaded code executes exit()>
- (Tom)
-
-
-
-
- Add a hook to let plug-ins monitor the executor (Itagaki
- Takahiro)
-
-
-
-
- Add a hook to allow the planner's statistics lookup behavior to
- be overridden (Simon Riggs)
-
-
-
-
- Add shmem_startup_hook()> for custom shared memory
- requirements (Tom)
-
-
-
-
- Replace the index access method amgetmulti> entry point
- with amgetbitmap>, and extend the API for
- amgettuple> to support run-time determination of
- operator lossiness (Heikki, Tom, Teodor)
-
-
- The API for GIN and GiST opclass consistent> functions
- has been extended as well.
-
-
-
-
- Add support for partial-match searches in
GIN> indexes
- (Teodor Sigaev, Oleg Bartunov)
-
-
-
-
- Replace pg_class> column reltriggers>
- with boolean relhastriggers> (Simon)
-
-
- Also remove unused pg_class> columns
- relukeys>, relfkeys>, and
- relrefs>.
-
-
-
-
- Add a relistemp> column to pg_class>
- to ease identification of temporary tables (Tom)
-
-
-
-
- Move platform
FAQ>s into the main documentation
- (Peter)
-
-
-
-
- Prevent parser input files from being built with any conflicts
- (Peter)
-
-
-
-
- Add support for the KOI8U> (Ukrainian) encoding
- (Peter)
-
-
-
-
- Add Japanese message translations (Japan PostgreSQL Users Group)
-
-
- This used to be maintained as a separate project.
-
-
-
-
- Fix problem when setting LC_MESSAGES> on
-
MSVC>-built systems (Hiroshi Inoue, Hiroshi
- Saito, Magnus)
-
-
-
-
-
-
-
-
-
Contrib
-
-
-
-
- Add contrib/auto_explain> to automatically run
- EXPLAIN> on queries exceeding a specified duration
- (Itagaki Takahiro, Tom)
-
-
-
-
- Add contrib/btree_gin> to allow GIN indexes to
- handle more datatypes (Oleg, Teodor)
-
-
-
-
- Add contrib/citext> to provide a case-insensitive,
- multibyte-aware text data type (David Wheeler)
-
-
-
-
- Add contrib/pg_stat_statements> for server-wide
- tracking of statement execution statistics (Itagaki Takahiro)
-
-
-
-
- Add duration and query mode options to contrib/pgbench>
- (Itagaki Takahiro)
-
-
-
-
- Make contrib/pgbench> use table names
- pgbench_accounts>, pgbench_branches>,
- pgbench_history>, and pgbench_tellers>,
- rather than just accounts>, branches>,
- history>, and tellers> (Tom)
-
-
- This is to reduce the risk of accidentally destroying real data
-
-
-
-
- Fix contrib/pgstattuple> to handle tables and
- indexes with over 2 billion pages (Tatsuhito Kasahara)
-
-
-
-
- In contrib/fuzzystrmatch>, add a version of the
- Levenshtein string-distance function that allows the user to
- specify the costs of insertion, deletion, and substitution
- (Volkan Yazici)
-
-
-
-
- Make contrib/ltree> support multibyte encodings
- (laser)
-
-
-
-
- Enable contrib/dblink> to use connection information
- stored in the SQL/MED catalogs (Joe Conway)
-
-
-
-
- Improve contrib/dblink>'s reporting of errors from
- the remote server (Joe Conway)
-
-
-
-
- Make contrib/dblink> set client_encoding>
- to match the local database's encoding (Joe Conway)
-
-
- This prevents encoding problems when communicating with a remote
- database that uses a different encoding.
-
-
-
-
- Make sure contrib/dblink> uses a password supplied
- by the user, and not accidentally taken from the server's
- .pgpass> file (Joe Conway)
-
-
- This is a minor security enhancement.
-
-
-
-
- Add fsm_page_contents()>
- to contrib/pageinspect> (Heikki)
-
-
-
-
- Modify get_raw_page()> to support free space map
- (*_fsm>) files. Also update
- contrib/pg_freespacemap>.
-
-
-
-
- Add support for multibyte encodings to contrib/pg_trgm>
- (Teodor)
-
-
-
-
- Rewrite contrib/intagg> to use new
- functions array_agg()> and unnest()>
- (Tom)
-
-
-
-
- Make contrib/pg_standby> recover all available WAL before
- failover (Fujii Masao, Simon, Heikki)
-
-
- To make this work safely, you now need to set the new
- recovery_end_command> option in recovery.conf>
- to clean up the trigger file after failover.
pg_standby>
- will no longer remove the trigger file itself.
-
-
-
-
- contrib/pg_standby>'s -l> option is now a no-op,
- because it is unsafe to use a symlink (Simon)
-
-
-
-
-
-
-
-
+++ /dev/null
-
-
-
-
-
Release 9.0.23
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.22.
- For information about new features in the 9.0 major release, see
- .
-
-
- This is expected to be the last
PostgreSQL> release
- in the 9.0.X series. Users are encouraged to update to a newer
- release branch soon.
-
-
-
-
Migration to Version 9.0.23
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.18,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix contrib/pgcrypto> to detect and report
- too-short crypt()> salts (Josh Kupershmidt)
-
-
- Certain invalid salt arguments crashed the server or disclosed a few
- bytes of server memory. We have not ruled out the viability of
- attacks that arrange for presence of confidential information in the
- disclosed bytes, but they seem unlikely. (CVE-2015-5288)
-
-
-
-
- Fix subtransaction cleanup after a portal (cursor) belonging to an
- outer subtransaction fails (Tom Lane, Michael Paquier)
-
-
- A function executed in an outer-subtransaction cursor could cause an
- assertion failure or crash by referencing a relation created within an
- inner subtransaction.
-
-
-
-
- Fix insertion of relations into the relation cache init file>
- (Tom Lane)
-
-
- An oversight in a patch in the most recent minor releases
- caused pg_trigger_tgrelid_tgname_index> to be omitted
- from the init file. Subsequent sessions detected this, then deemed the
- init file to be broken and silently ignored it, resulting in a
- significant degradation in session startup time. In addition to fixing
- the bug, install some guards so that any similar future mistake will be
- more obvious.
-
-
-
-
- Avoid O(N^2) behavior when inserting many tuples into a SPI query
- result (Neil Conway)
-
-
-
-
- Improve LISTEN> startup time when there are many unread
- notifications (Matt Newell)
-
-
-
-
- Disable SSL renegotiation by default (Michael Paquier, Andres Freund)
-
-
- While use of SSL renegotiation is a good idea in theory, we have seen
- too many bugs in practice, both in the underlying OpenSSL library and
- in our usage of it. Renegotiation will be removed entirely in 9.5 and
- later. In the older branches, just change the default value
- of ssl_renegotiation_limit> to zero (disabled).
-
-
-
-
- Lower the minimum values of the *_freeze_max_age> parameters
- (Andres Freund)
-
-
- This is mainly to make tests of related behavior less time-consuming,
- but it may also be of value for installations with limited disk space.
-
-
-
-
- Limit the maximum value of wal_buffers> to 2GB to avoid
- server crashes (Josh Berkus)
-
-
-
-
- Fix rare internal overflow in multiplication of numeric> values
- (Dean Rasheed)
-
-
-
-
- Guard against hard-to-reach stack overflows involving record types,
- range types, json>, jsonb>, tsquery>,
- ltxtquery> and query_int> (Noah Misch)
-
-
-
-
- Fix handling of DOW> and DOY> in datetime input
- (Greg Stark)
-
-
- These tokens aren't meant to be used in datetime values, but previously
- they resulted in opaque internal error messages rather
- than invalid input syntax>.
-
-
-
-
- Add more query-cancel checks to regular expression matching (Tom Lane)
-
-
-
-
- Add recursion depth protections to regular expression, SIMILAR
- TO>, and LIKE> matching (Tom Lane)
-
-
- Suitable search patterns and a low stack depth limit could lead to
- stack-overrun crashes.
-
-
-
-
- Fix potential infinite loop in regular expression execution (Tom Lane)
-
-
- A search pattern that can apparently match a zero-length string, but
- actually doesn't match because of a back reference, could lead to an
- infinite loop.
-
-
-
-
- Fix low-memory failures in regular expression compilation
- (Andreas Seltenreich)
-
-
-
-
- Fix low-probability memory leak during regular expression execution
- (Tom Lane)
-
-
-
-
- Fix rare low-memory failure in lock cleanup during transaction abort
- (Tom Lane)
-
-
-
-
- Fix unexpected out-of-memory situation during sort> errors
- when using tuplestores with small work_mem> settings (Tom
- Lane)
-
-
-
-
- Fix very-low-probability stack overrun in qsort> (Tom Lane)
-
-
-
-
- Fix invalid memory alloc request size> failure in hash joins
- with large work_mem> settings (Tomas Vondra, Tom Lane)
-
-
-
-
- Fix assorted planner bugs (Tom Lane)
-
-
- These mistakes could lead to incorrect query plans that would give wrong
- answers, or to assertion failures in assert-enabled builds, or to odd
- planner errors such as could not devise a query plan for the
- given query>, could not find pathkey item to
- sort>, plan should not reference subplan's variable>,
- or failed to assign all NestLoopParams to plan nodes>.
- Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz
- testing that exposed these problems.
-
-
-
-
- Use fuzzy path cost tiebreaking rule in all supported branches (Tom Lane)
-
-
- This change is meant to avoid platform-specific behavior when
- alternative plan choices have effectively-identical estimated costs.
-
-
-
-
- During postmaster shutdown, ensure that per-socket lock files are
- removed and listen sockets are closed before we remove
- the postmaster.pid> file (Tom Lane)
-
-
- This avoids race-condition failures if an external script attempts to
- start a new postmaster as soon as pg_ctl stop> returns.
-
-
-
-
- Fix postmaster's handling of a startup-process crash during crash
- recovery (Tom Lane)
-
-
- If, during a crash recovery cycle, the startup process crashes without
- having restored database consistency, we'd try to launch a new startup
- process, which typically would just crash again, leading to an infinite
- loop.
-
-
-
-
- Do not print a WARNING> when an autovacuum worker is already
- gone when we attempt to signal it, and reduce log verbosity for such
- signals (Tom Lane)
-
-
-
-
- Prevent autovacuum launcher from sleeping unduly long if the server
- clock is moved backwards a large amount (Álvaro Herrera)
-
-
-
-
- Ensure that cleanup of a GIN index's pending-insertions list is
- interruptable by cancel requests (Jeff Janes)
-
-
-
-
- Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas)
-
-
- Such a page might be left behind after a crash.
-
-
-
-
- Fix off-by-one error that led to otherwise-harmless warnings
- about apparent wraparound> in subtrans/multixact truncation
- (Thomas Munro)
-
-
-
-
- Fix misreporting of CONTINUE> and MOVE> statement
- types in
PL/pgSQL>'s error context messages
- (Pavel Stehule, Tom Lane)
-
-
-
-
- Fix some places in
PL/Tcl> that neglected to check for
- failure of malloc()> calls (Michael Paquier, Álvaro
- Herrera)
-
-
-
-
- Improve
libpq>'s handling of out-of-memory conditions
- (Michael Paquier, Heikki Linnakangas)
-
-
-
-
- Fix memory leaks and missing out-of-memory checks
- in
ecpg> (Michael Paquier)
-
-
-
-
- Fix
psql>'s code for locale-aware formatting of numeric
- output (Tom Lane)
-
-
- The formatting code invoked by \pset numericlocale on>
- did the wrong thing for some uncommon cases such as numbers with an
- exponent but no decimal point. It could also mangle already-localized
- output from the money> data type.
-
-
-
-
- Prevent crash in
psql>'s \c> command when
- there is no current connection (Noah Misch)
-
-
-
-
- Ensure that temporary files created during a
pg_dump>
- run with
tar>-format output are not world-readable (Michael
- Paquier)
-
-
-
-
- Fix
pg_dump> and pg_upgrade> to support
- cases where the postgres> or template1> database
- is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)
-
-
-
-
- Fix
pg_dump> to handle object privileges sanely when
- dumping from a server too old to have a particular privilege type
- (Tom Lane)
-
-
- When dumping functions or procedural languages from pre-7.3
- servers,
pg_dump> would
- produce GRANT>/REVOKE> commands that revoked the
- owner's grantable privileges and instead granted all privileges
- to PUBLIC>. Since the privileges involved are
- just USAGE> and EXECUTE>, this isn't a security
- problem, but it's certainly a surprising representation of the older
- systems' behavior. Fix it to leave the default privilege state alone
- in these cases.
-
-
-
-
- Fix
pg_dump> to dump shell types (Tom Lane)
-
-
- Shell types (that is, not-yet-fully-defined types) aren't useful for
- much, but nonetheless
pg_dump> should dump them.
-
-
-
-
- Fix spinlock assembly code for PPC hardware to be compatible
- with
AIX>'s native assembler (Tom Lane)
-
-
- Building with
gcc> didn't work if gcc>
- had been configured to use the native assembler, which is becoming more
- common.
-
-
-
-
- On
AIX>, test the -qlonglong> compiler option
- rather than just assuming it's safe to use (Noah Misch)
-
-
-
-
- On
AIX>, use -Wl,-brtllib> link option to allow
- symbols to be resolved at runtime (Noah Misch)
-
-
- Perl relies on this ability in 5.8.0 and later.
-
-
-
-
- Avoid use of inline functions when compiling with
- 32-bit
xlc>, due to compiler bugs (Noah Misch)
-
-
-
-
- Use librt> for sched_yield()> when necessary,
- which it is on some Solaris versions (Oskari Saarenmaa)
-
-
-
-
- Fix Windows install.bat> script to handle target directory
- names that contain spaces (Heikki Linnakangas)
-
-
-
-
- Make the numeric form of the
PostgreSQL> version number
- (e.g., 90405>) readily available to extension Makefiles,
- as a variable named VERSION_NUM> (Michael Paquier)
-
-
-
-
- Update time zone data files to
tzdata> release 2015g for
- DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk
- Island, North Korea, Turkey, and Uruguay. There is a new zone name
- America/Fort_Nelson> for the Canadian Northern Rockies.
-
-
-
-
-
-
-
-
-
-
Release 9.0.22
-
-
-
Release date:
-
-
- This release contains a small number of fixes from 9.0.21.
- For information about new features in the 9.0 major release, see
- .
-
-
- The
PostgreSQL> community will stop releasing updates
- for the 9.0.X release series in September 2015.
- Users are encouraged to update to a newer release branch soon.
-
-
-
-
Migration to Version 9.0.22
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.18,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix rare failure to invalidate relation cache init file (Tom Lane)
-
-
- With just the wrong timing of concurrent activity, a VACUUM
- FULL> on a system catalog might fail to update the init file>
- that's used to avoid cache-loading work for new sessions. This would
- result in later sessions being unable to access that catalog at all.
- This is a very ancient bug, but it's so hard to trigger that no
- reproducible case had been seen until recently.
-
-
-
-
- Avoid deadlock between incoming sessions and CREATE/DROP
- DATABASE> (Tom Lane)
-
-
- A new session starting in a database that is the target of
- a DROP DATABASE> command, or is the template for
- a CREATE DATABASE> command, could cause the command to wait
- for five seconds and then fail, even if the new session would have
- exited before that.
-
-
-
-
-
-
-
-
-
-
Release 9.0.21
-
-
-
Release date:
-
-
- This release contains a small number of fixes from 9.0.20.
- For information about new features in the 9.0 major release, see
- .
-
-
- The
PostgreSQL> community will stop releasing updates
- for the 9.0.X release series in September 2015.
- Users are encouraged to update to a newer release branch soon.
-
-
-
-
Migration to Version 9.0.21
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.18,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Avoid failures while fsync>'ing data directory during
- crash restart (Abhijit Menon-Sen, Tom Lane)
-
-
- In the previous minor releases we added a patch to fsync>
- everything in the data directory after a crash. Unfortunately its
- response to any error condition was to fail, thereby preventing the
- server from starting up, even when the problem was quite harmless.
- An example is that an unwritable file in the data directory would
- prevent restart on some platforms; but it is common to make SSL
- certificate files unwritable by the server. Revise this behavior so
- that permissions failures are ignored altogether, and other types of
- failures are logged but do not prevent continuing.
-
-
-
-
- Remove
configure>'s check prohibiting linking to a
- on OpenBSD> (Tom Lane)
-
-
- The failure this restriction was meant to prevent seems to not be a
- problem anymore on current OpenBSD>
- versions.
-
-
-
-
- Allow
libpq> to use TLS protocol versions beyond v1
- (Noah Misch)
-
-
- For a long time,
libpq> was coded so that the only SSL
- protocol it would allow was TLS v1. Now that newer TLS versions are
- becoming popular, allow it to negotiate the highest commonly-supported
- TLS version with the server. (
PostgreSQL> servers were
- already capable of such negotiation, so no change is needed on the
- server side.) This is a back-patch of a change already released in
- 9.4.0.
-
-
-
-
-
-
-
-
-
-
Release 9.0.20
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.19.
- For information about new features in the 9.0 major release, see
- .
-
-
- The
PostgreSQL> community will stop releasing updates
- for the 9.0.X release series in September 2015.
- Users are encouraged to update to a newer release branch soon.
-
-
-
-
Migration to Version 9.0.20
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.18,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Avoid possible crash when client disconnects just before the
- authentication timeout expires (Benkocs Norbert Attila)
-
-
- If the timeout interrupt fired partway through the session shutdown
- sequence, SSL-related state would be freed twice, typically causing a
- crash and hence denial of service to other sessions. Experimentation
- shows that an unauthenticated remote attacker could trigger the bug
- somewhat consistently, hence treat as security issue.
- (CVE-2015-3165)
-
-
-
-
- Improve detection of system-call failures (Noah Misch)
-
-
- Our replacement implementation of snprintf()> failed to
- check for errors reported by the underlying system library calls;
- the main case that might be missed is out-of-memory situations.
- In the worst case this might lead to information exposure, due to our
- code assuming that a buffer had been overwritten when it hadn't been.
- Also, there were a few places in which security-relevant calls of other
- system library functions did not check for failure.
-
-
- It remains possible that some calls of the *printf()>
- family of functions are vulnerable to information disclosure if an
- out-of-memory error occurs at just the wrong time. We judge the risk
- to not be large, but will continue analysis in this area.
- (CVE-2015-3166)
-
-
-
-
- In contrib/pgcrypto>, uniformly report decryption failures
- as Wrong key or corrupt data> (Noah Misch)
-
-
- Previously, some cases of decryption with an incorrect key could report
- other error message texts. It has been shown that such variance in
- error reports can aid attackers in recovering keys from other systems.
- While it's unknown whether pgcrypto>'s specific behaviors
- are likewise exploitable, it seems better to avoid the risk by using a
- one-size-fits-all message.
- (CVE-2015-3167)
-
-
-
-
- Fix incorrect checking of deferred exclusion constraints after a HOT
- update (Tom Lane)
-
-
- If a new row that potentially violates a deferred exclusion constraint
- is HOT-updated (that is, no indexed columns change and the row can be
- stored back onto the same table page) later in the same transaction,
- the exclusion constraint would be reported as violated when the check
- finally occurred, even if the row(s) the new row originally conflicted
- with had been deleted.
-
-
-
-
- Prevent improper reordering of antijoins (NOT EXISTS joins) versus
- other outer joins (Tom Lane)
-
-
- This oversight in the planner has been observed to cause could
- not find RelOptInfo for given relids> errors, but it seems possible
- that sometimes an incorrect query plan might get past that consistency
- check and result in silently-wrong query output.
-
-
-
-
- Fix incorrect matching of subexpressions in outer-join plan nodes
- (Tom Lane)
-
-
- Previously, if textually identical non-strict subexpressions were used
- both above and below an outer join, the planner might try to re-use
- the value computed below the join, which would be incorrect because the
- executor would force the value to NULL in case of an unmatched outer row.
-
-
-
-
- Fix GEQO planner to cope with failure of its join order heuristic
- (Tom Lane)
-
-
- This oversight has been seen to lead to failed to join all
- relations together> errors in queries involving LATERAL>,
- and that might happen in other cases as well.
-
-
-
-
- Fix possible deadlock at startup
- when max_prepared_transactions> is too small
- (Heikki Linnakangas)
-
-
-
-
- Don't archive useless preallocated WAL files after a timeline switch
- (Heikki Linnakangas)
-
-
-
-
- Avoid cannot GetMultiXactIdMembers() during recovery> error
- (Álvaro Herrera)
-
-
-
-
- Recursively fsync()> the data directory after a crash
- (Abhijit Menon-Sen, Robert Haas)
-
-
- This ensures consistency if another crash occurs shortly later. (The
- second crash would have to be a system-level crash, not just a database
- crash, for there to be a problem.)
-
-
-
-
- Fix autovacuum launcher's possible failure to shut down, if an error
- occurs after it receives SIGTERM (Álvaro Herrera)
-
-
-
-
- Cope with unexpected signals in LockBufferForCleanup()>
- (Andres Freund)
-
-
- This oversight could result in spurious errors about multiple
- backends attempting to wait for pincount 1>.
-
-
-
-
- Avoid waiting for WAL flush or synchronous replication during commit of
- a transaction that was read-only so far as the user is concerned
- (Andres Freund)
-
-
- Previously, a delay could occur at commit in transactions that had
- written WAL due to HOT page pruning, leading to undesirable effects
- such as sessions getting stuck at startup if all synchronous replicas
- are down. Sessions have also been observed to get stuck in catchup
- interrupt processing when using synchronous replication; this will fix
- that problem as well.
-
-
-
-
- Fix crash when manipulating hash indexes on temporary tables
- (Heikki Linnakangas)
-
-
-
-
- Fix possible failure during hash index bucket split, if other processes
- are modifying the index concurrently (Tom Lane)
-
-
-
-
- Check for interrupts while analyzing index expressions (Jeff Janes)
-
-
- ANALYZE> executes index expressions many times; if there are
- slow functions in such an expression, it's desirable to be able to
- cancel the ANALYZE> before that loop finishes.
-
-
-
-
- Add the name of the target server to object description strings for
- foreign-server user mappings (Álvaro Herrera)
-
-
-
-
- Recommend setting include_realm> to 1 when using
- Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
-
-
- Without this, identically-named users from different realms cannot be
- distinguished. For the moment this is only a documentation change, but
- it will become the default setting in
PostgreSQL> 9.5.
-
-
-
-
- Remove code for matching IPv4 pg_hba.conf> entries to
- IPv4-in-IPv6 addresses (Tom Lane)
-
-
- This hack was added in 2003 in response to a report that some Linux
- kernels of the time would report IPv4 connections as having
- IPv4-in-IPv6 addresses. However, the logic was accidentally broken in
- 9.0. The lack of any field complaints since then shows that it's not
- needed anymore. Now we have reports that the broken code causes
- crashes on some systems, so let's just remove it rather than fix it.
- (Had we chosen to fix it, that would make for a subtle and potentially
- security-sensitive change in the effective meaning of
- IPv4 pg_hba.conf> entries, which does not seem like a good
- thing to do in minor releases.)
-
-
-
-
- While shutting down service on Windows, periodically send status
- updates to the Service Control Manager to prevent it from killing the
- service too soon; and ensure that
pg_ctl> will wait for
- shutdown (Krystian Bigaj)
-
-
-
-
- Reduce risk of network deadlock when using
libpq>'s
- non-blocking mode (Heikki Linnakangas)
-
-
- When sending large volumes of data, it's important to drain the input
- buffer every so often, in case the server has sent enough response data
- to cause it to block on output. (A typical scenario is that the server
- is sending a stream of NOTICE messages during COPY FROM
- STDIN>.) This worked properly in the normal blocking mode, but not
- so much in non-blocking mode. We've modified
libpq>
- to opportunistically drain input when it can, but a full defense
- against this problem requires application cooperation: the application
- should watch for socket read-ready as well as write-ready conditions,
- and be sure to call PQconsumeInput()> upon read-ready.
-
-
-
-
- Fix array handling in
ecpg> (Michael Meskes)
-
-
-
-
- Fix
psql> to sanely handle URIs and conninfo strings as
- the first parameter to \connect>
- (David Fetter, Andrew Dunstan, Álvaro Herrera)
-
-
- This syntax has been accepted (but undocumented) for a long time, but
- previously some parameters might be taken from the old connection
- instead of the given string, which was agreed to be undesirable.
-
-
-
-
- Suppress incorrect complaints from
psql> on some
- platforms that it failed to write ~/.psql_history> at exit
- (Tom Lane)
-
-
- This misbehavior was caused by a workaround for a bug in very old
- (pre-2006) versions of
libedit>. We fixed it by
- removing the workaround, which will cause a similar failure to appear
- for anyone still using such versions of
libedit>.
- Recommendation: upgrade that library, or use
libreadline>.
-
-
-
-
- Fix
pg_dump>'s rule for deciding which casts are
- system-provided casts that should not be dumped (Tom Lane)
-
-
-
-
- Fix dumping of views that are just VALUES(...)> but have
- column aliases (Tom Lane)
-
-
-
-
- In
pg_upgrade>, force timeline 1 in the new cluster
- (Bruce Momjian)
-
-
- This change prevents upgrade failures caused by bogus complaints about
- missing WAL history files.
-
-
-
-
- In
pg_upgrade>, check for improperly non-connectable
- databases before proceeding
- (Bruce Momjian)
-
-
-
-
- In
pg_upgrade>, quote directory paths
- properly in the generated delete_old_cluster> script
- (Bruce Momjian)
-
-
-
-
- In
pg_upgrade>, preserve database-level freezing info
- properly
- (Bruce Momjian)
-
-
- This oversight could cause missing-clog-file errors for tables within
- the postgres> and template1> databases.
-
-
-
-
- Run
pg_upgrade> and pg_resetxlog> with
- restricted privileges on Windows, so that they don't fail when run by
- an administrator (Muhammad Asif Naeem)
-
-
-
-
- Fix slow sorting algorithm in contrib/intarray> (Tom Lane)
-
-
-
-
- Fix compile failure on Sparc V8 machines (Rob Rowan)
-
-
-
-
- Update time zone data files to
tzdata> release 2015d
- for DST law changes in Egypt, Mongolia, and Palestine, plus historical
- changes in Canada and Chile. Also adopt revised zone abbreviations for
- the America/Adak zone (HST/HDT not HAST/HADT).
-
-
-
-
-
-
-
-
-
-
Release 9.0.19
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.18.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.19
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.18,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix buffer overruns in to_char()>
- (Bruce Momjian)
-
-
- When to_char()> processes a numeric formatting template
- calling for a large number of digits,
PostgreSQL>
- would read past the end of a buffer. When processing a crafted
- timestamp formatting template,
PostgreSQL> would write
- past the end of a buffer. Either case could crash the server.
- We have not ruled out the possibility of attacks that lead to
- privilege escalation, though they seem unlikely.
- (CVE-2015-0241)
-
-
-
-
- Fix buffer overrun in replacement *printf()> functions
- (Tom Lane)
-
-
-
PostgreSQL> includes a replacement implementation
- of printf> and related functions. This code will overrun
- a stack buffer when formatting a floating point number (conversion
- specifiers e>, E>, f>, F>,
- g> or G>) with requested precision greater than
- about 500. This will crash the server, and we have not ruled out the
- possibility of attacks that lead to privilege escalation.
- A database user can trigger such a buffer overrun through
- the to_char()> SQL function. While that is the only
- affected core
PostgreSQL> functionality, extension
- modules that use printf-family functions may be at risk as well.
-
-
- This issue primarily affects
PostgreSQL> on Windows.
-
PostgreSQL> uses the system implementation of these
- functions where adequate, which it is on other modern platforms.
- (CVE-2015-0242)
-
-
-
-
- Fix buffer overruns in contrib/pgcrypto>
- (Marko Tiikkaja, Noah Misch)
-
-
- Errors in memory size tracking within the pgcrypto>
- module permitted stack buffer overruns and improper dependence on the
- contents of uninitialized memory. The buffer overrun cases can
- crash the server, and we have not ruled out the possibility of
- attacks that lead to privilege escalation.
- (CVE-2015-0243)
-
-
-
-
- Fix possible loss of frontend/backend protocol synchronization after
- an error
- (Heikki Linnakangas)
-
-
- If any error occurred while the server was in the middle of reading a
- protocol message from the client, it could lose synchronization and
- incorrectly try to interpret part of the message's data as a new
- protocol message. An attacker able to submit crafted binary data
- within a command parameter might succeed in injecting his own SQL
- commands this way. Statement timeout and query cancellation are the
- most likely sources of errors triggering this scenario. Particularly
- vulnerable are applications that use a timeout and also submit
- arbitrary user-crafted data as binary query parameters. Disabling
- statement timeout will reduce, but not eliminate, the risk of
- exploit. Our thanks to Emil Lenngren for reporting this issue.
- (CVE-2015-0244)
-
-
-
-
- Fix information leak via constraint-violation error messages
- (Stephen Frost)
-
-
- Some server error messages show the values of columns that violate
- a constraint, such as a unique constraint. If the user does not have
- SELECT> privilege on all columns of the table, this could
- mean exposing values that the user should not be able to see. Adjust
- the code so that values are displayed only when they came from the SQL
- command or could be selected by the user.
- (CVE-2014-8161)
-
-
-
-
- Lock down regression testing's temporary installations on Windows
- (Noah Misch)
-
-
- Use SSPI authentication to allow connections only from the OS user
- who launched the test suite. This closes on Windows the same
- vulnerability previously closed on other platforms, namely that other
- users might be able to connect to the test postmaster.
- (CVE-2014-0067)
-
-
-
-
- Avoid possible data corruption if ALTER DATABASE SET
- TABLESPACE> is used to move a database to a new tablespace and then
- shortly later move it back to its original tablespace (Tom Lane)
-
-
-
-
- Avoid corrupting tables when ANALYZE> inside a transaction
- is rolled back (Andres Freund, Tom Lane, Michael Paquier)
-
-
- If the failing transaction had earlier removed the last index, rule, or
- trigger from the table, the table would be left in a corrupted state
- with the relevant pg_class> flags not set though they
- should be.
-
-
-
-
- Fix use-of-already-freed-memory problem in EvalPlanQual processing
- (Tom Lane)
-
-
- In READ COMMITTED> mode, queries that lock or update
- recently-updated rows could crash as a result of this bug.
-
-
-
-
- Fix planning of SELECT FOR UPDATE> when using a partial
- index on a child table (Kyotaro Horiguchi)
-
-
- In READ COMMITTED> mode, SELECT FOR UPDATE> must
- also recheck the partial index's WHERE> condition when
- rechecking a recently-updated row to see if it still satisfies the
- query's WHERE> condition. This requirement was missed if the
- index belonged to an inheritance child table, so that it was possible
- to incorrectly return rows that no longer satisfy the query condition.
-
-
-
-
- Fix corner case wherein SELECT FOR UPDATE> could return a row
- twice, and possibly miss returning other rows (Tom Lane)
-
-
- In READ COMMITTED> mode, a SELECT FOR UPDATE>
- that is scanning an inheritance tree could incorrectly return a row
- from a prior child table instead of the one it should return from a
- later child table.
-
-
-
-
- Reject duplicate column names in the referenced-columns list of
- a FOREIGN KEY> declaration (David Rowley)
-
-
- This restriction is per SQL standard. Previously we did not reject
- the case explicitly, but later on the code would fail with
- bizarre-looking errors.
-
-
-
-
- Fix bugs in raising a numeric> value to a large integral power
- (Tom Lane)
-
-
- The previous code could get a wrong answer, or consume excessive
- amounts of time and memory before realizing that the answer must
- overflow.
-
-
-
-
- In numeric_recv()>, truncate away any fractional digits
- that would be hidden according to the value's dscale> field
- (Tom Lane)
-
-
- A numeric> value's display scale (dscale>) should
- never be less than the number of nonzero fractional digits; but
- apparently there's at least one broken client application that
- transmits binary numeric> values in which that's true.
- This leads to strange behavior since the extra digits are taken into
- account by arithmetic operations even though they aren't printed.
- The least risky fix seems to be to truncate away such hidden>
- digits on receipt, so that the value is indeed what it prints as.
-
-
-
-
- Reject out-of-range numeric timezone specifications (Tom Lane)
-
-
- Simple numeric timezone specifications exceeding +/- 168 hours (one
- week) would be accepted, but could then cause null-pointer dereference
- crashes in certain operations. There's no use-case for such large UTC
- offsets, so reject them.
-
-
-
-
- Fix bugs in tsquery> @>> tsquery>
- operator (Heikki Linnakangas)
-
-
- Two different terms would be considered to match if they had the same
- CRC. Also, if the second operand had more terms than the first, it
- would be assumed not to be contained in the first; which is wrong
- since it might contain duplicate terms.
-
-
-
-
- Improve ispell dictionary's defenses against bad affix files (Tom Lane)
-
-
-
-
- Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
-
-
- The previous coding could crash on an oversize dictionary, so this was
- deemed a back-patchable bug fix rather than a feature addition.
-
-
-
-
- Fix namespace handling in xpath()> (Ali Akbar)
-
-
- Previously, the xml> value resulting from
- an xpath()> call would not have namespace declarations if
- the namespace declarations were attached to an ancestor element in the
- input xml> value, rather than to the specific element being
- returned. Propagate the ancestral declaration so that the result is
- correct when considered in isolation.
-
-
-
-
- Fix planner problems with nested append relations, such as inherited
- tables within UNION ALL> subqueries (Tom Lane)
-
-
-
-
- Fail cleanly when a GiST index tuple doesn't fit on a page, rather
- than going into infinite recursion (Andrew Gierth)
-
-
-
-
- Exempt tables that have per-table cost_limit>
- and/or cost_delay> settings from autovacuum's global cost
- balancing rules (Álvaro Herrera)
-
-
- The previous behavior resulted in basically ignoring these per-table
- settings, which was unintended. Now, a table having such settings
- will be vacuumed using those settings, independently of what is going
- on in other autovacuum workers. This may result in heavier total I/O
- load than before, so such settings should be re-examined for sanity.
-
-
-
-
- Avoid wholesale autovacuuming when autovacuum is nominally off
- (Tom Lane)
-
-
- Even when autovacuum is nominally off, we will still launch autovacuum
- worker processes to vacuum tables that are at risk of XID wraparound.
- However, such a worker process then proceeded to vacuum all tables in
- the target database, if they met the usual thresholds for
- autovacuuming. This is at best pretty unexpected; at worst it delays
- response to the wraparound threat. Fix it so that if autovacuum is
- turned off, workers only> do anti-wraparound vacuums and
- not any other work.
-
-
-
-
- Fix race condition between hot standby queries and replaying a
- full-page image (Heikki Linnakangas)
-
-
- This mistake could result in transient errors in queries being
- executed in hot standby.
-
-
-
-
- Fix several cases where recovery logic improperly ignored WAL records
- for COMMIT/ABORT PREPARED> (Heikki Linnakangas)
-
-
- The most notable oversight was
- that recovery_target_xid> could not be used to stop at
- a two-phase commit.
-
-
-
-
- Avoid creating unnecessary .ready> marker files for
- timeline history files (Fujii Masao)
-
-
-
-
- Fix possible null pointer dereference when an empty prepared statement
- is used and the log_statement> setting is mod>
- or ddl> (Fujii Masao)
-
-
-
-
- Change pgstat wait timeout> warning message to be LOG level,
- and rephrase it to be more understandable (Tom Lane)
-
-
- This message was originally thought to be essentially a can't-happen
- case, but it occurs often enough on our slower buildfarm members to be
- a nuisance. Reduce it to LOG level, and expend a bit more effort on
- the wording: it now reads using stale statistics instead of
- current ones because stats collector is not responding>.
-
-
-
-
- Fix SPARC spinlock implementation to ensure correctness if the CPU is
- being run in a non-TSO coherency mode, as some non-Solaris kernels do
- (Andres Freund)
-
-
-
-
- Warn if OS X's setlocale()> starts an unwanted extra
- thread inside the postmaster (Noah Misch)
-
-
-
-
- Fix processing of repeated dbname> parameters
- in PQconnectdbParams()> (Alex Shulgin)
-
-
- Unexpected behavior ensued if the first occurrence
- of dbname> contained a connection string or URI to be
- expanded.
-
-
-
-
- Ensure that
libpq> reports a suitable error message on
- unexpected socket EOF (Marko Tiikkaja, Tom Lane)
-
-
- Depending on kernel behavior,
libpq> might return an
- empty error string rather than something useful when the server
- unexpectedly closed the socket.
-
-
-
-
- Clear any old error message during PQreset()>
- (Heikki Linnakangas)
-
-
- If PQreset()> is called repeatedly, and the connection
- cannot be re-established, error messages from the failed connection
- attempts kept accumulating in the PGconn>'s error
- string.
-
-
-
-
- Properly handle out-of-memory conditions while parsing connection
- options in
libpq> (Alex Shulgin, Heikki Linnakangas)
-
-
-
-
- Fix array overrun in
ecpg>'s version
- of ParseDateTime()> (Michael Paquier)
-
-
-
-
- In
initdb>, give a clearer error message if a password
- file is specified but is empty (Mats Erik Andersson)
-
-
-
-
- Fix
psql>'s \s> command to work nicely with
- libedit, and add pager support (Stepan Rutz, Tom Lane)
-
-
- When using libedit rather than readline, \s> printed the
- command history in a fairly unreadable encoded format, and on recent
- libedit versions might fail altogether. Fix that by printing the
- history ourselves rather than having the library do it. A pleasant
- side-effect is that the pager is used if appropriate.
-
-
- This patch also fixes a bug that caused newline encoding to be applied
- inconsistently when saving the command history with libedit.
- Multiline history entries written by older
psql>
- versions will be read cleanly with this patch, but perhaps not
- vice versa, depending on the exact libedit versions involved.
-
-
-
-
- Improve consistency of parsing of
psql>'s special
- variables (Tom Lane)
-
-
- Allow variant spellings of on> and off> (such
- as 1>/0>) for ECHO_HIDDEN>
- and ON_ERROR_ROLLBACK>. Report a warning for unrecognized
- values for COMP_KEYWORD_CASE>, ECHO>,
- ECHO_HIDDEN>, HISTCONTROL>,
- ON_ERROR_ROLLBACK>, and VERBOSITY>. Recognize
- all values for all these variables case-insensitively; previously
- there was a mishmash of case-sensitive and case-insensitive behaviors.
-
-
-
-
- Fix
psql>'s expanded-mode display to work
- consistently when using border> = 3
- and linestyle> = ascii> or unicode>
- (Stephen Frost)
-
-
-
-
- Fix possible deadlock during parallel restore of a schema-only dump
- (Robert Haas, Tom Lane)
-
-
-
-
- Fix core dump in pg_dump --binary-upgrade> on zero-column
- composite type (Rushabh Lathia)
-
-
-
-
- Fix block number checking
- in contrib/pageinspect>'s get_raw_page()>
- (Tom Lane)
-
-
- The incorrect checking logic could prevent access to some pages in
- non-main relation forks.
-
-
-
-
- Fix contrib/pgcrypto>'s pgp_sym_decrypt()>
- to not fail on messages whose length is 6 less than a power of 2
- (Marko Tiikkaja)
-
-
-
-
- Handle unexpected query results, especially NULLs, safely in
- contrib/tablefunc>'s connectby()>
- (Michael Paquier)
-
-
- connectby()> previously crashed if it encountered a NULL
- key value. It now prints that row but doesn't recurse further.
-
-
-
-
- Avoid a possible crash in contrib/xml2>'s
- xslt_process()> (Mark Simonetti)
-
-
-
libxslt> seems to have an undocumented dependency on
- the order in which resources are freed; reorder our calls to avoid a
- crash.
-
-
-
-
- Numerous cleanups of warnings from Coverity static code analyzer
- (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
-
-
- These changes are mostly cosmetic but in some cases fix corner-case
- bugs, for example a crash rather than a proper error report after an
- out-of-memory failure. None are believed to represent security
- issues.
-
-
-
-
- Detect incompatible OpenLDAP versions during build (Noah Misch)
-
-
- With OpenLDAP versions 2.4.24 through 2.4.31,
- inclusive,
PostgreSQL> backends can crash at exit.
- Raise a warning during
configure> based on the
- compile-time OpenLDAP version number, and test the crashing scenario
- in the contrib/dblink> regression test.
-
-
-
-
- In non-MSVC Windows builds, ensure libpq.dll> is installed
- with execute permissions (Noah Misch)
-
-
-
-
- Make
pg_regress> remove any temporary installation it
- created upon successful exit (Tom Lane)
-
-
- This results in a very substantial reduction in disk space usage
- during make check-world>, since that sequence involves
- creation of numerous temporary installations.
-
-
-
-
- Support time zone abbreviations that change UTC offset from time to
- time (Tom Lane)
-
-
- Previously,
PostgreSQL> assumed that the UTC offset
- associated with a time zone abbreviation (such as EST>)
- never changes in the usage of any particular locale. However this
- assumption fails in the real world, so introduce the ability for a
- zone abbreviation to represent a UTC offset that sometimes changes.
- Update the zone abbreviation definition files to make use of this
- feature in timezone locales that have changed the UTC offset of their
- abbreviations since 1970 (according to the IANA timezone database).
- In such timezones,
PostgreSQL> will now associate the
- correct UTC offset with the abbreviation depending on the given date.
-
-
-
-
- Update time zone abbreviations lists (Tom Lane)
-
-
- Add CST (China Standard Time) to our lists.
- Remove references to ADT as Arabia Daylight Time>, an
- abbreviation that's been out of use since 2007; therefore, claiming
- there is a conflict with Atlantic Daylight Time> doesn't seem
- especially helpful.
- Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
- (Fiji); we didn't even have them on the proper side of the date line.
-
-
-
-
- Update time zone data files to
tzdata> release 2015a.
-
-
- The IANA timezone database has adopted abbreviations of the form
- Ax>ST /Ax>DT
- for all Australian time zones, reflecting what they believe to be
- current majority practice Down Under. These names do not conflict
- with usage elsewhere (other than ACST for Acre Summer Time, which has
- been in disuse since 1994). Accordingly, adopt these names into
- our Default> timezone abbreviation set.
- The Australia> abbreviation set now contains only CST, EAST,
- EST, SAST, SAT, and WST, all of which are thought to be mostly
- historical usage. Note that SAST has also been changed to be South
- Africa Standard Time in the Default> abbreviation set.
-
-
- Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
- (Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were
- DST law changes in Chile, Mexico, the Turks & Caicos Islands
- (America/Grand_Turk), and Fiji. There is a new zone
- Pacific/Bougainville for portions of Papua New Guinea. Also, numerous
- corrections for historical (pre-1970) time zone data.
-
-
-
-
-
-
-
-
-
-
Release 9.0.18
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.17.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.18
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, this release corrects an index corruption problem in some GiST
- indexes. See the first changelog entry below to find out whether your
- installation has been affected and what steps you should take if so.
-
-
- Also, if you are upgrading from a version earlier than 9.0.15,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Correctly initialize padding bytes in contrib/btree_gist>
- indexes on bit> columns (Heikki Linnakangas)
-
-
- This error could result in incorrect query results due to values that
- should compare equal not being seen as equal.
- Users with GiST indexes on bit> or bit varying>
- columns should REINDEX> those indexes after installing this
- update.
-
-
-
-
- Protect against torn pages when deleting GIN list pages (Heikki
- Linnakangas)
-
-
- This fix prevents possible index corruption if a system crash occurs
- while the page update is being written to disk.
-
-
-
-
- Don't clear the right-link of a GiST index page while replaying
- updates from WAL (Heikki Linnakangas)
-
-
- This error could lead to transiently wrong answers from GiST index
- scans performed in Hot Standby.
-
-
-
-
- Fix possibly-incorrect cache invalidation during nested calls
- to ReceiveSharedInvalidMessages> (Andres Freund)
-
-
-
-
- Don't assume a subquery's output is unique if there's a set-returning
- function in its targetlist (David Rowley)
-
-
- This oversight could lead to misoptimization of constructs
- like WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
- BY y).
-
-
-
-
- Fix failure to detoast fields in composite elements of structured
- types (Tom Lane)
-
-
- This corrects cases where TOAST pointers could be copied into other
- tables without being dereferenced. If the original data is later
- deleted, it would lead to errors like missing chunk number 0
- for toast value ...> when the now-dangling pointer is used.
-
-
-
-
- Fix record type has not been registered> failures with
- whole-row references to the output of Append plan nodes (Tom Lane)
-
-
-
-
- Fix possible crash when invoking a user-defined function while
- rewinding a cursor (Tom Lane)
-
-
-
-
- Fix query-lifespan memory leak while evaluating the arguments for a
- function in FROM> (Tom Lane)
-
-
-
-
- Fix session-lifespan memory leaks in regular-expression processing
- (Tom Lane, Arthur O'Dwyer, Greg Stark)
-
-
-
-
- Fix data encoding error in hungarian.stop> (Tom Lane)
-
-
-
-
- Fix liveness checks for rows that were inserted in the current
- transaction and then deleted by a now-rolled-back subtransaction
- (Andres Freund)
-
-
- This could cause problems (at least spurious warnings, and at worst an
- infinite loop) if CREATE INDEX> or CLUSTER> were
- done later in the same transaction.
-
-
-
-
- Clear pg_stat_activity>.xact_start>
- during PREPARE TRANSACTION> (Andres Freund)
-
-
- After the PREPARE>, the originating session is no longer in
- a transaction, so it should not continue to display a transaction
- start time.
-
-
-
-
- Fix REASSIGN OWNED> to not fail for text search objects
- (Álvaro Herrera)
-
-
-
-
- Block signals during postmaster startup (Tom Lane)
-
-
- This ensures that the postmaster will properly clean up after itself
- if, for example, it receives SIGINT> while still
- starting up.
-
-
-
-
- Secure Unix-domain sockets of temporary postmasters started during
- make check> (Noah Misch)
-
-
- Any local user able to access the socket file could connect as the
- server's bootstrap superuser, then proceed to execute arbitrary code as
- the operating-system user running the test, as we previously noted in
- CVE-2014-0067. This change defends against that risk by placing the
- server's socket in a temporary, mode 0700 subdirectory
- of /tmp>. The hazard remains however on platforms where
- Unix sockets are not supported, notably Windows, because then the
- temporary postmaster must accept local TCP connections.
-
-
- A useful side effect of this change is to simplify
- make check> testing in builds that
- override DEFAULT_PGSOCKET_DIR>. Popular non-default values
- like /var/run/postgresql> are often not writable by the
- build user, requiring workarounds that will no longer be necessary.
-
-
-
-
- Fix tablespace creation WAL replay to work on Windows (MauMau)
-
-
-
-
- Fix detection of socket creation failures on Windows (Bruce Momjian)
-
-
-
-
- On Windows, allow new sessions to absorb values of PGC_BACKEND
- parameters (such as ) from the
- configuration file (Amit Kapila)
-
-
- Previously, if such a parameter were changed in the file post-startup,
- the change would have no effect.
-
-
-
-
- Properly quote executable path names on Windows (Nikhil Deshpande)
-
-
- This oversight could cause
initdb>
- and
pg_upgrade> to fail on Windows, if the installation
- path contained both spaces and @> signs.
-
-
-
-
- Fix linking of
libpython> on OS X (Tom Lane)
-
-
- The method we previously used can fail with the Python library
- supplied by Xcode 5.0 and later.
-
-
-
-
- Avoid buffer bloat in
libpq> when the server
- consistently sends data faster than the client can absorb it
- (Shin-ichi Morita, Tom Lane)
-
-
-
libpq> could be coerced into enlarging its input buffer
- until it runs out of memory (which would be reported misleadingly
- as lost synchronization with server>). Under ordinary
- circumstances it's quite far-fetched that data could be continuously
- transmitted more quickly than the recv()> loop can
- absorb it, but this has been observed when the client is artificially
- slowed by scheduler constraints.
-
-
-
-
- Ensure that LDAP lookup attempts in
libpq> time out as
- intended (Laurenz Albe)
-
-
-
-
- Fix
ecpg> to do the right thing when an array
- of char *> is the target for a FETCH statement returning more
- than one row, as well as some other array-handling fixes
- (Ashutosh Bapat)
-
-
-
-
- Fix
pg_restore>'s processing of old-style large object
- comments (Tom Lane)
-
-
- A direct-to-database restore from an archive file generated by a
- pre-9.0 version of
pg_dump> would usually fail if the
- archive contained more than a few comments for large objects.
-
-
-
-
- In contrib/pgcrypto> functions, ensure sensitive
- information is cleared from stack variables before returning
- (Marko Kreen)
-
-
-
-
- In contrib/uuid-ossp>, cache the state of the OSSP UUID
- library across calls (Tom Lane)
-
-
- This improves the efficiency of UUID generation and reduces the amount
- of entropy drawn from /dev/urandom>, on platforms that
- have that.
-
-
-
-
- Update time zone data files to
tzdata> release 2014e
- for DST law changes in Crimea, Egypt, and Morocco.
-
-
-
-
-
-
-
-
-
-
Release 9.0.17
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.16.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.17
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.15,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Restore GIN metapages unconditionally to avoid torn-page risk
- (Heikki Linnakangas)
-
-
- Although this oversight could theoretically result in a corrupted
- index, it is unlikely to have caused any problems in practice, since
- the active part of a GIN metapage is smaller than a standard 512-byte
- disk sector.
-
-
-
-
- Avoid race condition in checking transaction commit status during
- receipt of a NOTIFY> message (Marko Tiikkaja)
-
-
- This prevents a scenario wherein a sufficiently fast client might
- respond to a notification before database updates made by the
- notifier have become visible to the recipient.
-
-
-
-
- Allow regular-expression operators to be terminated early by query
- cancel requests (Tom Lane)
-
-
- This prevents scenarios wherein a pathological regular expression
- could lock up a server process uninterruptibly for a long time.
-
-
-
-
- Remove incorrect code that tried to allow OVERLAPS> with
- single-element row arguments (Joshua Yanovski)
-
-
- This code never worked correctly, and since the case is neither
- specified by the SQL standard nor documented, it seemed better to
- remove it than fix it.
-
-
-
-
- Avoid getting more than AccessShareLock> when de-parsing a
- rule or view (Dean Rasheed)
-
-
- This oversight resulted in
pg_dump> unexpectedly
- acquiring RowExclusiveLock> locks on tables mentioned as
- the targets of INSERT>/UPDATE>/DELETE>
- commands in rules. While usually harmless, that could interfere with
- concurrent transactions that tried to acquire, for example,
- ShareLock> on those tables.
-
-
-
-
- Improve performance of index endpoint probes during planning (Tom Lane)
-
-
- This change fixes a significant performance problem that occurred
- when there were many not-yet-committed rows at the end of the index,
- which is a common situation for indexes on sequentially-assigned
- values such as timestamps or sequence-generated identifiers.
-
-
-
-
- Fix test to see if hot standby connections can be allowed immediately
- after a crash (Heikki Linnakangas)
-
-
-
-
- Prevent interrupts while reporting non-ERROR> messages
- (Tom Lane)
-
-
- This guards against rare server-process freezeups due to recursive
- entry to syslog()>, and perhaps other related problems.
-
-
-
-
- Prevent intermittent could not reserve shared memory region>
- failures on recent Windows versions (MauMau)
-
-
-
-
- Update time zone data files to
tzdata> release 2014a
- for DST law changes in Fiji and Turkey, plus historical changes in
- Israel and Ukraine.
-
-
-
-
-
-
-
-
-
-
Release 9.0.16
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.15.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.16
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.15,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Shore up GRANT ... WITH ADMIN OPTION> restrictions
- (Noah Misch)
-
-
- Granting a role without ADMIN OPTION> is supposed to
- prevent the grantee from adding or removing members from the granted
- role, but this restriction was easily bypassed by doing SET
- ROLE> first. The security impact is mostly that a role member can
- revoke the access of others, contrary to the wishes of his grantor.
- Unapproved role member additions are a lesser concern, since an
- uncooperative role member could provide most of his rights to others
- anyway by creating views or SECURITY DEFINER> functions.
- (CVE-2014-0060)
-
-
-
-
- Prevent privilege escalation via manual calls to PL validator
- functions (Andres Freund)
-
-
- The primary role of PL validator functions is to be called implicitly
- during CREATE FUNCTION>, but they are also normal SQL
- functions that a user can call explicitly. Calling a validator on
- a function actually written in some other language was not checked
- for and could be exploited for privilege-escalation purposes.
- The fix involves adding a call to a privilege-checking function in
- each validator function. Non-core procedural languages will also
- need to make this change to their own validator functions, if any.
- (CVE-2014-0061)
-
-
-
-
- Avoid multiple name lookups during table and index DDL
- (Robert Haas, Andres Freund)
-
-
- If the name lookups come to different conclusions due to concurrent
- activity, we might perform some parts of the DDL on a different table
- than other parts. At least in the case of CREATE INDEX>,
- this can be used to cause the permissions checks to be performed
- against a different table than the index creation, allowing for a
- privilege escalation attack.
- (CVE-2014-0062)
-
-
-
-
- Prevent buffer overrun with long datetime strings (Noah Misch)
-
-
- The MAXDATELEN> constant was too small for the longest
- possible value of type interval>, allowing a buffer overrun
- in interval_out()>. Although the datetime input
- functions were more careful about avoiding buffer overrun, the limit
- was short enough to cause them to reject some valid inputs, such as
- input containing a very long timezone name. The
ecpg>
- library contained these vulnerabilities along with some of its own.
- (CVE-2014-0063)
-
-
-
-
- Prevent buffer overrun due to integer overflow in size calculations
- (Noah Misch, Heikki Linnakangas)
-
-
- Several functions, mostly type input functions, calculated an
- allocation size without checking for overflow. If overflow did
- occur, a too-small buffer would be allocated and then written past.
- (CVE-2014-0064)
-
-
-
-
- Prevent overruns of fixed-size buffers
- (Peter Eisentraut, Jozef Mlich)
-
-
- Use strlcpy()> and related functions to provide a clear
- guarantee that fixed-size buffers are not overrun. Unlike the
- preceding items, it is unclear whether these cases really represent
- live issues, since in most cases there appear to be previous
- constraints on the size of the input string. Nonetheless it seems
- prudent to silence all Coverity warnings of this type.
- (CVE-2014-0065)
-
-
-
-
- Avoid crashing if crypt()> returns NULL (Honza Horak,
- Bruce Momjian)
-
-
- There are relatively few scenarios in which crypt()>
- could return NULL, but contrib/chkpass> would crash
- if it did. One practical case in which this could be an issue is
- if
libc> is configured to refuse to execute unapproved
- hashing algorithms (e.g., FIPS mode>).
- (CVE-2014-0066)
-
-
-
-
- Document risks of make check> in the regression testing
- instructions (Noah Misch, Tom Lane)
-
-
- Since the temporary server started by make check>
- uses trust> authentication, another user on the same machine
- could connect to it as database superuser, and then potentially
- exploit the privileges of the operating-system user who started the
- tests. A future release will probably incorporate changes in the
- testing procedure to prevent this risk, but some public discussion is
- needed first. So for the moment, just warn people against using
- make check> when there are untrusted users on the
- same machine.
- (CVE-2014-0067)
-
-
-
-
- Fix possible mis-replay of WAL records when some segments of a
- relation aren't full size (Greg Stark, Tom Lane)
-
-
- The WAL update could be applied to the wrong page, potentially many
- pages past where it should have been. Aside from corrupting data,
- this error has been observed to result in significant bloat>
- of standby servers compared to their masters, due to updates being
- applied far beyond where the end-of-file should have been. This
- failure mode does not appear to be a significant risk during crash
- recovery, only when initially synchronizing a standby created from a
- base backup taken from a quickly-changing master.
-
-
-
-
- Fix bug in determining when recovery has reached consistency
- (Tomonari Katsumata, Heikki Linnakangas)
-
-
- In some cases WAL replay would mistakenly conclude that the database
- was already consistent at the start of replay, thus possibly allowing
- hot-standby queries before the database was really consistent. Other
- symptoms such as PANIC: WAL contains references to invalid
- pages> were also possible.
-
-
-
-
- Fix improper locking of btree index pages while replaying
- a VACUUM> operation in hot-standby mode (Andres Freund,
- Heikki Linnakangas, Tom Lane)
-
-
- This error could result in PANIC: WAL contains references to
- invalid pages> failures.
-
-
-
-
- Ensure that insertions into non-leaf GIN index pages write a full-page
- WAL record when appropriate (Heikki Linnakangas)
-
-
- The previous coding risked index corruption in the event of a
- partial-page write during a system crash.
-
-
-
-
- Fix race conditions during server process exit (Robert Haas)
-
-
- Ensure that signal handlers don't attempt to use the
- process's MyProc> pointer after it's no longer valid.
-
-
-
-
- Fix unsafe references to errno> within error reporting
- logic (Christian Kruse)
-
-
- This would typically lead to odd behaviors such as missing or
- inappropriate HINT> fields.
-
-
-
-
- Fix possible crashes from using ereport()> too early
- during server startup (Tom Lane)
-
-
- The principal case we've seen in the field is a crash if the server
- is started in a directory it doesn't have permission to read.
-
-
-
-
- Clear retry flags properly in OpenSSL socket write
- function (Alexander Kukushkin)
-
-
- This omission could result in a server lockup after unexpected loss
- of an SSL-encrypted connection.
-
-
-
-
- Fix length checking for Unicode identifiers (U&"...">
- syntax) containing escapes (Tom Lane)
-
-
- A spurious truncation warning would be printed for such identifiers
- if the escaped form of the identifier was too long, but the
- identifier actually didn't need truncation after de-escaping.
-
-
-
-
- Allow keywords that are type names to be used in lists of roles
- (Stephen Frost)
-
-
- A previous patch allowed such keywords to be used without quoting
- in places such as role identifiers; but it missed cases where a
- list of role identifiers was permitted, such as DROP ROLE>.
-
-
-
-
- Fix possible crash due to invalid plan for nested sub-selects, such
- as WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)>
- (Tom Lane)
-
-
-
-
- Ensure that ANALYZE> creates statistics for a table column
- even when all the values in it are too wide> (Tom Lane)
-
-
- ANALYZE> intentionally omits very wide values from its
- histogram and most-common-values calculations, but it neglected to do
- something sane in the case that all the sampled entries are too wide.
-
-
-
-
- In ALTER TABLE ... SET TABLESPACE>, allow the database's
- default tablespace to be used without a permissions check
- (Stephen Frost)
-
-
- CREATE TABLE> has always allowed such usage,
- but ALTER TABLE> didn't get the memo.
-
-
-
-
- Fix cannot accept a set> error when some arms of
- a CASE> return a set and others don't (Tom Lane)
-
-
-
-
- Fix checks for all-zero client addresses in pgstat functions (Kevin
- Grittner)
-
-
-
-
- Fix possible misclassification of multibyte characters by the text
- search parser (Tom Lane)
-
-
- Non-ASCII characters could be misclassified when using C locale with
- a multibyte encoding. On Cygwin, non-C locales could fail as well.
-
-
-
-
- Fix possible misbehavior in plainto_tsquery()>
- (Heikki Linnakangas)
-
-
- Use memmove()> not memcpy()> for copying
- overlapping memory regions. There have been no field reports of
- this actually causing trouble, but it's certainly risky.
-
-
-
-
- Accept SHIFT_JIS> as an encoding name for locale checking
- purposes (Tatsuo Ishii)
-
-
-
-
- Fix misbehavior of PQhost()> on Windows (Fujii Masao)
-
-
- It should return localhost> if no host has been specified.
-
-
-
-
- Improve error handling in
libpq> and psql>
- for failures during COPY TO STDOUT/FROM STDIN> (Tom Lane)
-
-
- In particular this fixes an infinite loop that could occur in 9.2 and
- up if the server connection was lost during COPY FROM
- STDIN>. Variants of that scenario might be possible in older
- versions, or with other client applications.
-
-
-
-
- Fix misaligned descriptors in
ecpg> (MauMau)
-
-
-
-
- In
ecpg>, handle lack of a hostname in the connection
- parameters properly (Michael Meskes)
-
-
-
-
- Fix performance regression in contrib/dblink> connection
- startup (Joe Conway)
-
-
- Avoid an unnecessary round trip when client and server encodings match.
-
-
-
-
- In contrib/isn>, fix incorrect calculation of the check
- digit for ISMN values (Fabien Coelho)
-
-
-
-
- Ensure client-code-only installation procedure works as documented
- (Peter Eisentraut)
-
-
-
-
- In Mingw and Cygwin builds, install the
libpq> DLL
- in the bin> directory (Andrew Dunstan)
-
-
- This duplicates what the MSVC build has long done. It should fix
- problems with programs like
psql> failing to start
- because they can't find the DLL.
-
-
-
-
- Avoid using the deprecated dllwrap> tool in Cygwin builds
- (Marco Atzeri)
-
-
-
-
- Don't generate plain-text HISTORY>
- and src/test/regress/README> files anymore (Tom Lane)
-
-
- These text files duplicated the main HTML and PDF documentation
- formats. The trouble involved in maintaining them greatly outweighs
- the likely audience for plain-text format. Distribution tarballs
- will still contain files by these names, but they'll just be stubs
- directing the reader to consult the main documentation.
- The plain-text INSTALL> file will still be maintained, as
- there is arguably a use-case for that.
-
-
-
-
- Update time zone data files to
tzdata> release 2013i
- for DST law changes in Jordan and historical changes in Cuba.
-
-
- In addition, the zones Asia/Riyadh87>,
- Asia/Riyadh88>, and Asia/Riyadh89> have been
- removed, as they are no longer maintained by IANA, and never
- represented actual civil timekeeping practice.
-
-
-
-
-
-
-
-
-
-
Release 9.0.15
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.14.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.15
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, this release corrects a number of potential data corruption
- issues. See the first two changelog entries below to find out whether
- your installation has been affected and what steps you can take if so.
-
-
- Also, if you are upgrading from a version earlier than 9.0.13,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix VACUUM>'s tests to see whether it can
- update relfrozenxid> (Andres Freund)
-
-
- In some cases VACUUM> (either manual or autovacuum) could
- incorrectly advance a table's relfrozenxid> value,
- allowing tuples to escape freezing, causing those rows to become
- invisible once 2^31 transactions have elapsed. The probability of
- data loss is fairly low since multiple incorrect advancements would
- need to happen before actual loss occurs, but it's not zero. Users
- upgrading from releases 9.0.4 or 8.4.8 or earlier are not affected, but
- all later versions contain the bug.
-
-
- The issue can be ameliorated by, after upgrading, vacuuming all tables
- in all databases while having
- linkend="guc-vacuum-freeze-table-age">vacuum_freeze_table_age>
- set to zero. This will fix any latent corruption but will not be able
- to fix all pre-existing data errors. However, an installation can be
- presumed safe after performing this vacuuming if it has executed fewer
- than 2^31 update transactions in its lifetime (check this with
- SELECT txid_current() < 2^31>).
-
-
-
-
- Fix initialization of pg_clog> and pg_subtrans>
- during hot standby startup (Andres Freund, Heikki Linnakangas)
-
-
- This bug can cause data loss on standby servers at the moment they
- start to accept hot-standby queries, by marking committed transactions
- as uncommitted. The likelihood of such corruption is small unless, at
- the time of standby startup, the primary server has executed many
- updating transactions since its last checkpoint. Symptoms include
- missing rows, rows that should have been deleted being still visible,
- and obsolete versions of updated rows being still visible alongside
- their newer versions.
-
-
- This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
- Standby servers that have only been running earlier releases are not
- at risk. It's recommended that standby servers that have ever run any
- of the buggy releases be re-cloned from the primary (e.g., with a new
- base backup) after upgrading.
-
-
-
-
- Truncate pg_multixact> contents during WAL replay
- (Andres Freund)
-
-
- This avoids ever-increasing disk space consumption in standby servers.
-
-
-
-
- Fix race condition in GIN index posting tree page deletion (Heikki
- Linnakangas)
-
-
- This could lead to transient wrong answers or query failures.
-
-
-
-
- Avoid flattening a subquery whose SELECT> list contains a
- volatile function wrapped inside a sub-SELECT> (Tom Lane)
-
-
- This avoids unexpected results due to extra evaluations of the
- volatile function.
-
-
-
-
- Fix planner's processing of non-simple-variable subquery outputs
- nested within outer joins (Tom Lane)
-
-
- This error could lead to incorrect plans for queries involving
- multiple levels of subqueries within JOIN> syntax.
-
-
-
-
- Fix premature deletion of temporary files (Andres Freund)
-
-
-
-
- Fix possible read past end of memory in rule printing (Peter Eisentraut)
-
-
-
-
- Fix array slicing of int2vector> and oidvector> values
- (Tom Lane)
-
-
- Expressions of this kind are now implicitly promoted to
- regular int2> or oid> arrays.
-
-
-
-
- Fix incorrect behaviors when using a SQL-standard, simple GMT offset
- timezone (Tom Lane)
-
-
- In some cases, the system would use the simple GMT offset value when
- it should have used the regular timezone setting that had prevailed
- before the simple offset was selected. This change also causes
- the timeofday> function to honor the simple GMT offset
- zone.
-
-
-
-
- Prevent possible misbehavior when logging translations of Windows
- error codes (Tom Lane)
-
-
-
-
- Properly quote generated command lines in
pg_ctl>
- (Naoya Anzai and Tom Lane)
-
-
- This fix applies only to Windows.
-
-
-
-
- Fix
pg_dumpall> to work when a source database
- sets
- linkend="guc-default-transaction-read-only">default_transaction_read_only>
- via ALTER DATABASE SET> (Kevin Grittner)
-
-
- Previously, the generated script would fail during restore.
-
-
-
-
- Fix
ecpg>'s processing of lists of variables
- declared varchar> (Zoltán Böszörményi)
-
-
-
-
- Make contrib/lo> defend against incorrect trigger definitions
- (Marc Cousin)
-
-
-
-
- Update time zone data files to
tzdata> release 2013h
- for DST law changes in Argentina, Brazil, Jordan, Libya,
- Liechtenstein, Morocco, and Palestine. Also, new timezone
- abbreviations WIB, WIT, WITA for Indonesia.
-
-
-
-
-
-
-
-
-
-
Release 9.0.14
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.13.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.14
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.13,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Prevent corruption of multi-byte characters when attempting to
- case-fold identifiers (Andrew Dunstan)
-
-
-
PostgreSQL> case-folds non-ASCII characters only
- when using a single-byte server encoding.
-
-
-
-
- Fix checkpoint memory leak in background writer when wal_level =
- hot_standby> (Naoya Anzai)
-
-
-
-
- Fix memory leak caused by lo_open() failure
- (Heikki Linnakangas)
-
-
-
-
- Fix memory overcommit bug when work_mem> is using more
- than 24GB of memory (Stephen Frost)
-
-
-
-
- Fix deadlock bug in libpq when using SSL (Stephen Frost)
-
-
-
-
- Fix possible SSL state corruption in threaded libpq applications
- (Nick Phillips, Stephen Frost)
-
-
-
-
- Properly compute row estimates for boolean columns containing many NULL
- values (Andrew Gierth)
-
-
- Previously tests like col IS NOT TRUE> and col IS
- NOT FALSE> did not properly factor in NULL values when estimating
- plan costs.
-
-
-
-
- Prevent pushing down WHERE> clauses into unsafe
- UNION/INTERSECT> subqueries (Tom Lane)
-
-
- Subqueries of a UNION> or INTERSECT> that
- contain set-returning functions or volatile functions in their
- SELECT> lists could be improperly optimized, leading to
- run-time errors or incorrect query results.
-
-
-
-
- Fix rare case of failed to locate grouping columns>
- planner failure (Tom Lane)
-
-
-
-
- Improve view dumping code's handling of dropped columns in referenced
- tables (Tom Lane)
-
-
-
-
- Properly record index comments created using UNIQUE>
- and PRIMARY KEY> syntax (Andres Freund)
-
-
- This fixes a parallel
pg_restore> failure.
-
-
-
-
- Fix REINDEX TABLE> and REINDEX DATABASE>
- to properly revalidate constraints and mark invalidated indexes as
- valid (Noah Misch)
-
-
- REINDEX INDEX> has always worked properly.
-
-
-
-
- Fix possible deadlock during concurrent CREATE INDEX
- CONCURRENTLY> operations (Tom Lane)
-
-
-
-
- Fix regexp_matches()> handling of zero-length matches
- (Jeevan Chalke)
-
-
- Previously, zero-length matches like '^' could return too many matches.
-
-
-
-
- Fix crash for overly-complex regular expressions (Heikki Linnakangas)
-
-
-
-
- Fix regular expression match failures for back references combined with
- non-greedy quantifiers (Jeevan Chalke)
-
-
-
-
- Prevent CREATE FUNCTION> from checking SET>
- variables unless function body checking is enabled (Tom Lane)
-
-
-
-
- Allow ALTER DEFAULT PRIVILEGES> to operate on schemas
- without requiring CREATE permission (Tom Lane)
-
-
-
-
- Loosen restriction on keywords used in queries (Tom Lane)
-
-
- Specifically, lessen keyword restrictions for role names, language
- names, EXPLAIN> and COPY> options, and
- SET> values. This allows COPY ... (FORMAT
- BINARY)> to work as expected; previously BINARY> needed
- to be quoted.
-
-
-
-
- Fix pgp_pub_decrypt()> so it works for secret keys with
- passwords (Marko Kreen)
-
-
-
-
- Remove rare inaccurate warning during vacuum of index-less tables
- (Heikki Linnakangas)
-
-
-
-
- Ensure that VACUUM ANALYZE> still runs the ANALYZE phase
- if its attempt to truncate the file is cancelled due to lock conflicts
- (Kevin Grittner)
-
-
-
-
- Avoid possible failure when performing transaction control commands (e.g
- ROLLBACK) in prepared queries (Tom Lane)
-
-
-
-
- Ensure that floating-point data input accepts standard spellings
- of infinity> on all platforms (Tom Lane)
-
-
- The C99 standard says that allowable spellings are inf>,
- +inf>, -inf>, infinity>,
- +infinity>, and -infinity>. Make sure we
- recognize these even if the platform's strtod> function
- doesn't.
-
-
-
-
- Expand ability to compare rows to records and arrays (Rafal Rzepecki,
- Tom Lane)
-
-
-
-
- Update time zone data files to
tzdata> release 2013d
- for DST law changes in Israel, Morocco, Palestine, and Paraguay.
- Also, historical zone data corrections for Macquarie Island.
-
-
-
-
-
-
-
-
-
-
Release 9.0.13
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.12.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.13
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, this release corrects several errors in management of GiST
- indexes. After installing this update, it is advisable to
- REINDEX> any GiST indexes that meet one or more of the
- conditions described below.
-
-
- Also, if you are upgrading from a version earlier than 9.0.6,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix insecure parsing of server command-line switches (Mitsumasa
- Kondo, Kyotaro Horiguchi)
-
-
- A connection request containing a database name that begins with
- ->
could be crafted to damage or destroy
- files within the server's data directory, even if the request is
- eventually rejected. (CVE-2013-1899)
-
-
-
-
- Reset OpenSSL randomness state in each postmaster child process
- (Marko Kreen)
-
-
- This avoids a scenario wherein random numbers generated by
- contrib/pgcrypto> functions might be relatively easy for
- another database user to guess. The risk is only significant when
- the postmaster is configured with ssl> = on>
- but most connections don't use SSL encryption. (CVE-2013-1900)
-
-
-
-
- Fix GiST indexes to not use fuzzy> geometric comparisons when
- it's not appropriate to do so (Alexander Korotkov)
-
-
- The core geometric types perform comparisons using fuzzy>
- equality, but gist_box_same> must do exact comparisons,
- else GiST indexes using it might become inconsistent. After installing
- this update, users should REINDEX> any GiST indexes on
- box>, polygon>, circle>, or point>
- columns, since all of these use gist_box_same>.
-
-
-
-
- Fix erroneous range-union and penalty logic in GiST indexes that use
- contrib/btree_gist> for variable-width data types, that is
- text>, bytea>, bit>, and numeric>
- columns (Tom Lane)
-
-
- These errors could result in inconsistent indexes in which some keys
- that are present would not be found by searches, and also in useless
- index bloat. Users are advised to REINDEX> such indexes
- after installing this update.
-
-
-
-
- Fix bugs in GiST page splitting code for multi-column indexes
- (Tom Lane)
-
-
- These errors could result in inconsistent indexes in which some keys
- that are present would not be found by searches, and also in indexes
- that are unnecessarily inefficient to search. Users are advised to
- REINDEX> multi-column GiST indexes after installing this
- update.
-
-
-
-
- Fix gist_point_consistent>
- to handle fuzziness consistently (Alexander Korotkov)
-
-
- Index scans on GiST indexes on point> columns would sometimes
- yield results different from a sequential scan, because
- gist_point_consistent> disagreed with the underlying
- operator code about whether to do comparisons exactly or fuzzily.
-
-
-
-
- Fix buffer leak in WAL replay (Heikki Linnakangas)
-
-
- This bug could result in incorrect local pin count> errors
- during replay, making recovery impossible.
-
-
-
-
- Fix race condition in DELETE RETURNING> (Tom Lane)
-
-
- Under the right circumstances, DELETE RETURNING> could
- attempt to fetch data from a shared buffer that the current process
- no longer has any pin on. If some other process changed the buffer
- meanwhile, this would lead to garbage RETURNING> output, or
- even a crash.
-
-
-
-
- Fix infinite-loop risk in regular expression compilation (Tom Lane,
- Don Porter)
-
-
-
-
- Fix potential null-pointer dereference in regular expression compilation
- (Tom Lane)
-
-
-
-
- Fix to_char()> to use ASCII-only case-folding rules where
- appropriate (Tom Lane)
-
-
- This fixes misbehavior of some template patterns that should be
- locale-independent, but mishandled I>
and
- i>
in Turkish locales.
-
-
-
-
- Fix unwanted rejection of timestamp 1999-12-31 24:00:00>
- (Tom Lane)
-
-
-
-
- Fix logic error when a single transaction does UNLISTEN>
- then LISTEN> (Tom Lane)
-
-
- The session wound up not listening for notify events at all, though it
- surely should listen in this case.
-
-
-
-
- Remove useless picksplit doesn't support secondary split> log
- messages (Josh Hansen, Tom Lane)
-
-
- This message seems to have been added in expectation of code that was
- never written, and probably never will be, since GiST's default
- handling of secondary splits is actually pretty good. So stop nagging
- end users about it.
-
-
-
-
- Fix possible failure to send a session's last few transaction
- commit/abort counts to the statistics collector (Tom Lane)
-
-
-
-
- Eliminate memory leaks in PL/Perl's spi_prepare()> function
- (Alex Hunsaker, Tom Lane)
-
-
-
-
- Fix
pg_dumpall> to handle database names containing
- =>
correctly (Heikki Linnakangas)
-
-
-
-
- Avoid crash in
pg_dump> when an incorrect connection
- string is given (Heikki Linnakangas)
-
-
-
-
- Ignore invalid indexes in
pg_dump> and
-
pg_upgrade> (Michael Paquier, Bruce Momjian)
-
-
- Dumping invalid indexes can cause problems at restore time, for example
- if the reason the index creation failed was because it tried to enforce
- a uniqueness condition not satisfied by the table's data. Also, if the
- index creation is in fact still in progress, it seems reasonable to
- consider it to be an uncommitted DDL change, which
-
pg_dump> wouldn't be expected to dump anyway.
-
pg_upgrade> now also skips invalid indexes rather than
- failing.
-
-
-
-
- Fix contrib/pg_trgm>'s similarity()> function
- to return zero for trigram-less strings (Tom Lane)
-
-
- Previously it returned NaN> due to internal division by zero.
-
-
-
-
- Update time zone data files to
tzdata> release 2013b
- for DST law changes in Chile, Haiti, Morocco, Paraguay, and some
- Russian areas. Also, historical zone data corrections for numerous
- places.
-
-
- Also, update the time zone abbreviation files for recent changes in
- Russia and elsewhere: CHOT>, GET>,
- IRKT>, KGT>, KRAT>, MAGT>,
- MAWT>, MSK>, NOVT>, OMST>,
- TKT>, VLAT>, WST>, YAKT>,
- YEKT> now follow their current meanings, and
- VOLT> (Europe/Volgograd) and MIST>
- (Antarctica/Macquarie) are added to the default abbreviations list.
-
-
-
-
-
-
-
-
-
-
Release 9.0.12
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.11.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.12
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.6,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Prevent execution of enum_recv> from SQL (Tom Lane)
-
-
- The function was misdeclared, allowing a simple SQL command to crash the
- server. In principle an attacker might be able to use it to examine the
- contents of server memory. Our thanks to Sumit Soni (via Secunia SVCRP)
- for reporting this issue. (CVE-2013-0255)
-
-
-
-
- Fix multiple problems in detection of when a consistent database
- state has been reached during WAL replay (Fujii Masao, Heikki
- Linnakangas, Simon Riggs, Andres Freund)
-
-
-
-
- Update minimum recovery point when truncating a relation file (Heikki
- Linnakangas)
-
-
- Once data has been discarded, it's no longer safe to stop recovery at
- an earlier point in the timeline.
-
-
-
-
- Fix missing cancellations in hot standby mode (Noah Misch, Simon Riggs)
-
-
- The need to cancel conflicting hot-standby queries would sometimes be
- missed, allowing those queries to see inconsistent data.
-
-
-
-
- Fix SQL grammar to allow subscripting or field selection from a
- sub-SELECT result (Tom Lane)
-
-
-
-
- Fix performance problems with autovacuum truncation in busy workloads
- (Jan Wieck)
-
-
- Truncation of empty pages at the end of a table requires exclusive
- lock, but autovacuum was coded to fail (and release the table lock)
- when there are conflicting lock requests. Under load, it is easily
- possible that truncation would never occur, resulting in table bloat.
- Fix by performing a partial truncation, releasing the lock, then
- attempting to re-acquire the lock and continue. This fix also greatly
- reduces the average time before autovacuum releases the lock after a
- conflicting request arrives.
-
-
-
-
- Protect against race conditions when scanning
- pg_tablespace> (Stephen Frost, Tom Lane)
-
-
- CREATE DATABASE> and DROP DATABASE> could
- misbehave if there were concurrent updates of
- pg_tablespace> entries.
-
-
-
-
- Prevent DROP OWNED> from trying to drop whole databases or
- tablespaces (Álvaro Herrera)
-
-
- For safety, ownership of these objects must be reassigned, not dropped.
-
-
-
-
- Fix error in
- linkend="guc-vacuum-freeze-table-age">vacuum_freeze_table_age>
- implementation (Andres Freund)
-
-
- In installations that have existed for more than
- linkend="guc-vacuum-freeze-min-age">vacuum_freeze_min_age>
- transactions, this mistake prevented autovacuum from using partial-table
- scans, so that a full-table scan would always happen instead.
-
-
-
-
- Prevent misbehavior when a RowExpr> or XmlExpr>
- is parse-analyzed twice (Andres Freund, Tom Lane)
-
-
- This mistake could be user-visible in contexts such as
- CREATE TABLE LIKE INCLUDING INDEXES>.
-
-
-
-
- Improve defenses against integer overflow in hashtable sizing
- calculations (Jeff Davis)
-
-
-
-
- Reject out-of-range dates in to_date()> (Hitoshi Harada)
-
-
-
-
- Ensure that non-ASCII prompt strings are translated to the correct
- code page on Windows (Alexander Law, Noah Misch)
-
-
- This bug affected
psql> and some other client programs.
-
-
-
-
- Fix possible crash in
psql>'s \?> command
- when not connected to a database (Meng Qingzhong)
-
-
-
-
- Fix
pg_upgrade> to deal with invalid indexes safely
- (Bruce Momjian)
-
-
-
-
- Fix one-byte buffer overrun in
libpq>'s
- PQprintTuples> (Xi Wang)
-
-
- This ancient function is not used anywhere by
-
PostgreSQL> itself, but it might still be used by some
- client code.
-
-
-
-
- Make
ecpglib> use translated messages properly
- (Chen Huajun)
-
-
-
-
- Properly install
ecpg_compat> and
-
pgtypes> libraries on MSVC (Jiang Guiqing)
-
-
-
-
- Include our version of isinf()> in
-
libecpg> if it's not provided by the system
- (Jiang Guiqing)
-
-
-
-
- Rearrange configure's tests for supplied functions so it is not
- fooled by bogus exports from libedit/libreadline (Christoph Berg)
-
-
-
-
- Ensure Windows build number increases over time (Magnus Hagander)
-
-
-
-
- Make
pgxs> build executables with the right
- .exe> suffix when cross-compiling for Windows
- (Zoltan Boszormenyi)
-
-
-
-
- Add new timezone abbreviation FET> (Tom Lane)
-
-
- This is now used in some eastern-European time zones.
-
-
-
-
-
-
-
-
-
-
Release 9.0.11
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.10.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.11
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.6,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix multiple bugs associated with CREATE INDEX
- CONCURRENTLY> (Andres Freund, Tom Lane)
-
-
- Fix CREATE INDEX CONCURRENTLY> to use
- in-place updates when changing the state of an index's
- pg_index> row. This prevents race conditions that could
- cause concurrent sessions to miss updating the target index, thus
- resulting in corrupt concurrently-created indexes.
-
-
- Also, fix various other operations to ensure that they ignore
- invalid indexes resulting from a failed CREATE INDEX
- CONCURRENTLY> command. The most important of these is
- VACUUM>, because an auto-vacuum could easily be launched
- on the table before corrective action can be taken to fix or remove
- the invalid index.
-
-
-
-
- Fix buffer locking during WAL replay (Tom Lane)
-
-
- The WAL replay code was insufficiently careful about locking buffers
- when replaying WAL records that affect more than one page. This could
- result in hot standby queries transiently seeing inconsistent states,
- resulting in wrong answers or unexpected failures.
-
-
-
-
- Fix an error in WAL generation logic for GIN indexes (Tom Lane)
-
-
- This could result in index corruption, if a torn-page failure occurred.
-
-
-
-
- Properly remove startup process's virtual XID lock when promoting a
- hot standby server to normal running (Simon Riggs)
-
-
- This oversight could prevent subsequent execution of certain
- operations such as CREATE INDEX CONCURRENTLY>.
-
-
-
-
- Avoid bogus out-of-sequence timeline ID> errors in standby
- mode (Heikki Linnakangas)
-
-
-
-
- Prevent the postmaster from launching new child processes after it's
- received a shutdown signal (Tom Lane)
-
-
- This mistake could result in shutdown taking longer than it should, or
- even never completing at all without additional user action.
-
-
-
-
- Avoid corruption of internal hash tables when out of memory
- (Hitoshi Harada)
-
-
-
-
- Fix planning of non-strict equivalence clauses above outer joins
- (Tom Lane)
-
-
- The planner could derive incorrect constraints from a clause equating
- a non-strict construct to something else, for example
- WHERE COALESCE(foo, 0) = 0>
- when foo> is coming from the nullable side of an outer join.
-
-
-
-
- Improve planner's ability to prove exclusion constraints from
- equivalence classes (Tom Lane)
-
-
-
-
- Fix partial-row matching in hashed subplans to handle cross-type cases
- correctly (Tom Lane)
-
-
- This affects multicolumn NOT IN> subplans, such as
- WHERE (a, b) NOT IN (SELECT x, y FROM ...)>
- when for instance b> and y> are int4>
- and int8> respectively. This mistake led to wrong answers
- or crashes depending on the specific datatypes involved.
-
-
-
-
- Acquire buffer lock when re-fetching the old tuple for an
- AFTER ROW UPDATE/DELETE> trigger (Andres Freund)
-
-
- In very unusual circumstances, this oversight could result in passing
- incorrect data to the precheck logic for a foreign-key enforcement
- trigger. That could result in a crash, or in an incorrect decision
- about whether to fire the trigger.
-
-
-
-
- Fix ALTER COLUMN TYPE> to handle inherited check
- constraints properly (Pavan Deolasee)
-
-
- This worked correctly in pre-8.4 releases, and now works correctly
- in 8.4 and later.
-
-
-
-
- Fix REASSIGN OWNED> to handle grants on tablespaces
- (Álvaro Herrera)
-
-
-
-
- Ignore incorrect pg_attribute> entries for system
- columns for views (Tom Lane)
-
-
- Views do not have any system columns. However, we forgot to
- remove such entries when converting a table to a view. That's fixed
- properly for 9.3 and later, but in previous branches we need to defend
- against existing mis-converted views.
-
-
-
-
- Fix rule printing to dump INSERT INTO table>
- DEFAULT VALUES correctly (Tom Lane)
-
-
-
-
- Guard against stack overflow when there are too many
- UNION>/INTERSECT>/EXCEPT> clauses
- in a query (Tom Lane)
-
-
-
-
- Prevent platform-dependent failures when dividing the minimum possible
- integer value by -1 (Xi Wang, Tom Lane)
-
-
-
-
- Fix possible access past end of string in date parsing
- (Hitoshi Harada)
-
-
-
-
- Fix failure to advance XID epoch if XID wraparound happens during a
- checkpoint and wal_level> is hot_standby>
- (Tom Lane, Andres Freund)
-
-
- While this mistake had no particular impact on
-
PostgreSQL itself, it was bad for
- applications that rely on txid_current()> and related
- functions: the TXID value would appear to go backwards.
-
-
-
-
- Produce an understandable error message if the length of the path name
- for a Unix-domain socket exceeds the platform-specific limit
- (Tom Lane, Andrew Dunstan)
-
-
- Formerly, this would result in something quite unhelpful, such as
- Non-recoverable failure in name resolution>.
-
-
-
-
- Fix memory leaks when sending composite column values to the client
- (Tom Lane)
-
-
-
-
- Make
pg_ctl> more robust about reading the
- postmaster.pid> file (Heikki Linnakangas)
-
-
- Fix race conditions and possible file descriptor leakage.
-
-
-
-
- Fix possible crash in
psql> if incorrectly-encoded data
- is presented and the client_encoding> setting is a
- client-only encoding, such as SJIS (Jiang Guiqing)
-
-
-
-
- Fix bugs in the restore.sql> script emitted by
-
pg_dump> in tar> output format (Tom Lane)
-
-
- The script would fail outright on tables whose names include
- upper-case characters. Also, make the script capable of restoring
- data in --inserts> mode as well as the regular COPY mode.
-
-
-
-
- Fix
pg_restore> to accept POSIX-conformant
- tar> files (Brian Weaver, Tom Lane)
-
-
- The original coding of
pg_dump>'s tar>
- output mode produced files that are not fully conformant with the
- POSIX standard. This has been corrected for version 9.3. This
- patch updates previous branches so that they will accept both the
- incorrect and the corrected formats, in hopes of avoiding
- compatibility problems when 9.3 comes out.
-
-
-
-
- Fix
pg_resetxlog> to locate postmaster.pid>
- correctly when given a relative path to the data directory (Tom Lane)
-
-
- This mistake could lead to
pg_resetxlog> not noticing
- that there is an active postmaster using the data directory.
-
-
-
-
- Fix
libpq>'s lo_import()> and
- lo_export()> functions to report file I/O errors properly
- (Tom Lane)
-
-
-
-
- Fix
ecpg>'s processing of nested structure pointer
- variables (Muhammad Usama)
-
-
-
-
- Fix
ecpg>'s ecpg_get_data> function to
- handle arrays properly (Michael Meskes)
-
-
-
-
- Make contrib/pageinspect>'s btree page inspection
- functions take buffer locks while examining pages (Tom Lane)
-
-
-
-
- Fix
pgxs> support for building loadable modules on AIX
- (Tom Lane)
-
-
- Building modules outside the original source tree didn't work on AIX.
-
-
-
-
- Update time zone data files to
tzdata> release 2012j
- for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
- Samoa, and portions of Brazil.
-
-
-
-
-
-
-
-
-
-
Release 9.0.10
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.9.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.10
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.6,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix planner's assignment of executor parameters, and fix executor's
- rescan logic for CTE plan nodes (Tom Lane)
-
-
- These errors could result in wrong answers from queries that scan the
- same WITH> subquery multiple times.
-
-
-
-
- Improve page-splitting decisions in GiST indexes (Alexander Korotkov,
- Robert Haas, Tom Lane)
-
-
- Multi-column GiST indexes might suffer unexpected bloat due to this
- error.
-
-
-
-
- Fix cascading privilege revoke to stop if privileges are still held
- (Tom Lane)
-
-
- If we revoke a grant option from some role X>, but
- X> still holds that option via a grant from someone
- else, we should not recursively revoke the corresponding privilege
- from role(s) Y> that X> had granted it
- to.
-
-
-
-
- Improve error messages for Hot Standby misconfiguration errors
- (Gurjeet Singh)
-
-
-
-
- Fix handling of SIGFPE> when PL/Perl is in use (Andres Freund)
-
-
- Perl resets the process's SIGFPE> handler to
- SIG_IGN>, which could result in crashes later on. Restore
- the normal Postgres signal handler after initializing PL/Perl.
-
-
-
-
- Prevent PL/Perl from crashing if a recursive PL/Perl function is
- redefined while being executed (Tom Lane)
-
-
-
-
- Work around possible misoptimization in PL/Perl (Tom Lane)
-
-
- Some Linux distributions contain an incorrect version of
- pthread.h> that results in incorrect compiled code in
- PL/Perl, leading to crashes if a PL/Perl function calls another one
- that throws an error.
-
-
-
-
- Fix
pg_upgrade>'s handling of line endings on Windows
- (Andrew Dunstan)
-
-
- Previously,
pg_upgrade> might add or remove carriage
- returns in places such as function bodies.
-
-
-
-
- On Windows, make
pg_upgrade> use backslash path
- separators in the scripts it emits (Andrew Dunstan)
-
-
-
-
- Update time zone data files to
tzdata> release 2012f
- for DST law changes in Fiji
-
-
-
-
-
-
-
-
-
-
Release 9.0.9
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.8.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.9
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.6,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Prevent access to external files/URLs via XML entity references
- (Noah Misch, Tom Lane)
-
-
- xml_parse()> would attempt to fetch external files or
- URLs as needed to resolve DTD and entity references in an XML value,
- thus allowing unprivileged database users to attempt to fetch data
- with the privileges of the database server. While the external data
- wouldn't get returned directly to the user, portions of it could be
- exposed in error messages if the data didn't parse as valid XML; and
- in any case the mere ability to check existence of a file might be
- useful to an attacker. (CVE-2012-3489)
-
-
-
-
- Prevent access to external files/URLs via contrib/xml2>'s
- xslt_process()> (Peter Eisentraut)
-
-
-
libxslt> offers the ability to read and write both
- files and URLs through stylesheet commands, thus allowing
- unprivileged database users to both read and write data with the
- privileges of the database server. Disable that through proper use
- of
libxslt>'s security options. (CVE-2012-3488)
-
-
- Also, remove xslt_process()>'s ability to fetch documents
- and stylesheets from external files/URLs. While this was a
- documented feature>, it was long regarded as a bad idea.
- The fix for CVE-2012-3489 broke that capability, and rather than
- expend effort on trying to fix it, we're just going to summarily
- remove it.
-
-
-
-
- Prevent too-early recycling of btree index pages (Noah Misch)
-
-
- When we allowed read-only transactions to skip assigning XIDs, we
- introduced the possibility that a deleted btree page could be
- recycled while a read-only transaction was still in flight to it.
- This would result in incorrect index search results. The probability
- of such an error occurring in the field seems very low because of the
- timing requirements, but nonetheless it should be fixed.
-
-
-
-
- Fix crash-safety bug with newly-created-or-reset sequences (Tom Lane)
-
-
- If ALTER SEQUENCE> was executed on a freshly created or
- reset sequence, and then precisely one nextval()> call
- was made on it, and then the server crashed, WAL replay would restore
- the sequence to a state in which it appeared that no
- nextval()> had been done, thus allowing the first
- sequence value to be returned again by the next
- nextval()> call. In particular this could manifest for
- serial> columns, since creation of a serial column's sequence
- includes an ALTER SEQUENCE OWNED BY> step.
-
-
-
-
- Fix txid_current()> to report the correct epoch when not
- in hot standby (Heikki Linnakangas)
-
-
- This fixes a regression introduced in the previous minor release.
-
-
-
-
- Fix bug in startup of Hot Standby when a master transaction has many
- subtransactions (Andres Freund)
-
-
- This mistake led to failures reported as out-of-order XID
- insertion in KnownAssignedXids>.
-
-
-
-
- Ensure the backup_label> file is fsync'd after
- pg_start_backup()> (Dave Kerr)
-
-
-
-
- Fix timeout handling in walsender processes (Tom Lane)
-
-
- WAL sender background processes neglected to establish a
- SIGALRM> handler, meaning they would wait forever in
- some corner cases where a timeout ought to happen.
-
-
-
-
- Back-patch 9.1 improvement to compress the fsync request queue
- (Robert Haas)
-
-
- This improves performance during checkpoints. The 9.1 change
- has now seen enough field testing to seem safe to back-patch.
-
-
-
-
- Fix LISTEN>/NOTIFY> to cope better with I/O
- problems, such as out of disk space (Tom Lane)
-
-
- After a write failure, all subsequent attempts to send more
- NOTIFY> messages would fail with messages like
- Could not read from file "pg_notify/nnnn>" at
- offset nnnnn>: Success.
-
-
-
-
- Only allow autovacuum to be auto-canceled by a directly blocked
- process (Tom Lane)
-
-
- The original coding could allow inconsistent behavior in some cases;
- in particular, an autovacuum could get canceled after less than
- deadlock_timeout> grace period.
-
-
-
-
- Improve logging of autovacuum cancels (Robert Haas)
-
-
-
-
- Fix log collector so that log_truncate_on_rotation> works
- during the very first log rotation after server start (Tom Lane)
-
-
-
-
- Fix WITH> attached to a nested set operation
- (UNION>/INTERSECT>/EXCEPT>)
- (Tom Lane)
-
-
-
-
- Ensure that a whole-row reference to a subquery doesn't include any
- extra GROUP BY> or ORDER BY> columns (Tom Lane)
-
-
-
-
- Disallow copying whole-row references in CHECK>
- constraints and index definitions during CREATE TABLE>
- (Tom Lane)
-
-
- This situation can arise in CREATE TABLE> with
- LIKE> or INHERITS>. The copied whole-row
- variable was incorrectly labeled with the row type of the original
- table not the new one. Rejecting the case seems reasonable for
- LIKE>, since the row types might well diverge later. For
- INHERITS> we should ideally allow it, with an implicit
- coercion to the parent table's row type; but that will require more
- work than seems safe to back-patch.
-
-
-
-
- Fix memory leak in ARRAY(SELECT ...)> subqueries (Heikki
- Linnakangas, Tom Lane)
-
-
-
-
- Fix extraction of common prefixes from regular expressions (Tom Lane)
-
-
- The code could get confused by quantified parenthesized
- subexpressions, such as ^(foo)?bar>. This would lead to
- incorrect index optimization of searches for such patterns.
-
-
-
-
- Fix bugs with parsing signed
- hh>:>mm> and
- hh>:>mm>:>ss>
- fields in interval> constants (Amit Kapila, Tom Lane)
-
-
-
-
- Use Postgres' encoding conversion functions, not Python's, when
- converting a Python Unicode string to the server encoding in
- PL/Python (Jan Urbanski)
-
-
- This avoids some corner-case problems, notably that Python doesn't
- support all the encodings Postgres does. A notable functional change
- is that if the server encoding is SQL_ASCII, you will get the UTF-8
- representation of the string; formerly, any non-ASCII characters in
- the string would result in an error.
-
-
-
-
- Fix mapping of PostgreSQL encodings to Python encodings in PL/Python
- (Jan Urbanski)
-
-
-
-
- Report errors properly in contrib/xml2>'s
- xslt_process()> (Tom Lane)
-
-
-
-
- Update time zone data files to
tzdata> release 2012e
- for DST law changes in Morocco and Tokelau
-
-
-
-
-
-
-
-
-
-
Release 9.0.8
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.7.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.8
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.6,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix incorrect password transformation in
- contrib/pgcrypto>'s DES crypt()> function
- (Solar Designer)
-
-
- If a password string contained the byte value 0x80>, the
- remainder of the password was ignored, causing the password to be much
- weaker than it appeared. With this fix, the rest of the string is
- properly included in the DES hash. Any stored password values that are
- affected by this bug will thus no longer match, so the stored values may
- need to be updated. (CVE-2012-2143)
-
-
-
-
- Ignore SECURITY DEFINER> and SET> attributes for
- a procedural language's call handler (Tom Lane)
-
-
- Applying such attributes to a call handler could crash the server.
- (CVE-2012-2655)
-
-
-
-
- Allow numeric timezone offsets in timestamp> input to be up to
- 16 hours away from UTC (Tom Lane)
-
-
- Some historical time zones have offsets larger than 15 hours, the
- previous limit. This could result in dumped data values being rejected
- during reload.
-
-
-
-
- Fix timestamp conversion to cope when the given time is exactly the
- last DST transition time for the current timezone (Tom Lane)
-
-
- This oversight has been there a long time, but was not noticed
- previously because most DST-using zones are presumed to have an
- indefinite sequence of future DST transitions.
-
-
-
-
- Fix text> to name> and char> to name>
- casts to perform string truncation correctly in multibyte encodings
- (Karl Schnaitter)
-
-
-
-
- Fix memory copying bug in to_tsquery()> (Heikki Linnakangas)
-
-
-
-
- Ensure txid_current()> reports the correct epoch when
- executed in hot standby (Simon Riggs)
-
-
-
-
- Fix planner's handling of outer PlaceHolderVars within subqueries (Tom
- Lane)
-
-
- This bug concerns sub-SELECTs that reference variables coming from the
- nullable side of an outer join of the surrounding query.
- In 9.1, queries affected by this bug would fail with ERROR:
- Upper-level PlaceHolderVar found where not expected>. But in 9.0 and
- 8.4, you'd silently get possibly-wrong answers, since the value
- transmitted into the subquery wouldn't go to null when it should.
-
-
-
-
- Fix slow session startup when pg_attribute> is very large
- (Tom Lane)
-
-
- If pg_attribute> exceeds one-fourth of
- shared_buffers>, cache rebuilding code that is sometimes
- needed during session start would trigger the synchronized-scan logic,
- causing it to take many times longer than normal. The problem was
- particularly acute if many new sessions were starting at once.
-
-
-
-
- Ensure sequential scans check for query cancel reasonably often (Merlin
- Moncure)
-
-
- A scan encountering many consecutive pages that contain no live tuples
- would not respond to interrupts meanwhile.
-
-
-
-
- Ensure the Windows implementation of PGSemaphoreLock()>
- clears ImmediateInterruptOK> before returning (Tom Lane)
-
-
- This oversight meant that a query-cancel interrupt received later
- in the same query could be accepted at an unsafe time, with
- unpredictable but not good consequences.
-
-
-
-
- Show whole-row variables safely when printing views or rules
- (Abbas Butt, Tom Lane)
-
-
- Corner cases involving ambiguous names (that is, the name could be
- either a table or column name of the query) were printed in an
- ambiguous way, risking that the view or rule would be interpreted
- differently after dump and reload. Avoid the ambiguous case by
- attaching a no-op cast.
-
-
-
-
- Fix COPY FROM> to properly handle null marker strings that
- correspond to invalid encoding (Tom Lane)
-
-
- A null marker string such as E'\\0'> should work, and did
- work in the past, but the case got broken in 8.4.
-
-
-
-
- Ensure autovacuum worker processes perform stack depth checking
- properly (Heikki Linnakangas)
-
-
- Previously, infinite recursion in a function invoked by
- auto-ANALYZE> could crash worker processes.
-
-
-
-
- Fix logging collector to not lose log coherency under high load (Andrew
- Dunstan)
-
-
- The collector previously could fail to reassemble large messages if it
- got too busy.
-
-
-
-
- Fix logging collector to ensure it will restart file rotation
- after receiving SIGHUP> (Tom Lane)
-
-
-
-
- Fix WAL replay logic for GIN indexes to not fail if the index was
- subsequently dropped (Tom Lane)
-
-
-
-
- Fix memory leak in PL/pgSQL's RETURN NEXT> command (Joe
- Conway)
-
-
-
-
- Fix PL/pgSQL's GET DIAGNOSTICS> command when the target
- is the function's first variable (Tom Lane)
-
-
-
-
- Fix potential access off the end of memory in
psql>'s
- expanded display (\x>) mode (Peter Eisentraut)
-
-
-
-
- Fix several performance problems in
pg_dump> when
- the database contains many objects (Jeff Janes, Tom Lane)
-
-
-
pg_dump> could get very slow if the database contained
- many schemas, or if many objects are in dependency loops, or if there
- are many owned sequences.
-
-
-
-
- Fix
pg_upgrade> for the case that a database stored in a
- non-default tablespace contains a table in the cluster's default
- tablespace (Bruce Momjian)
-
-
-
-
- In
ecpg>, fix rare memory leaks and possible overwrite
- of one byte after the sqlca_t> structure (Peter Eisentraut)
-
-
-
-
- Fix contrib/dblink>'s dblink_exec()> to not leak
- temporary database connections upon error (Tom Lane)
-
-
-
-
- Fix contrib/dblink> to report the correct connection name in
- error messages (Kyotaro Horiguchi)
-
-
-
-
- Fix contrib/vacuumlo> to use multiple transactions when
- dropping many large objects (Tim Lewis, Robert Haas, Tom Lane)
-
-
- This change avoids exceeding max_locks_per_transaction> when
- many objects need to be dropped. The behavior can be adjusted with the
- new -l> (limit) option.
-
-
-
-
- Update time zone data files to
tzdata> release 2012c
- for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland
- Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands;
- also historical corrections for Canada.
-
-
-
-
-
-
-
-
-
-
Release 9.0.7
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.6.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.7
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.6,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Require execute permission on the trigger function for
- CREATE TRIGGER> (Robert Haas)
-
-
- This missing check could allow another user to execute a trigger
- function with forged input data, by installing it on a table he owns.
- This is only of significance for trigger functions marked
- SECURITY DEFINER>, since otherwise trigger functions run
- as the table owner anyway. (CVE-2012-0866)
-
-
-
-
- Remove arbitrary limitation on length of common name in SSL
- certificates (Heikki Linnakangas)
-
-
- Both
libpq> and the server truncated the common name
- extracted from an SSL certificate at 32 bytes. Normally this would
- cause nothing worse than an unexpected verification failure, but there
- are some rather-implausible scenarios in which it might allow one
- certificate holder to impersonate another. The victim would have to
- have a common name exactly 32 bytes long, and the attacker would have
- to persuade a trusted CA to issue a certificate in which the common
- name has that string as a prefix. Impersonating a server would also
- require some additional exploit to redirect client connections.
- (CVE-2012-0867)
-
-
-
-
- Convert newlines to spaces in names written in
pg_dump>
- comments (Robert Haas)
-
-
-
pg_dump> was incautious about sanitizing object names
- that are emitted within SQL comments in its output script. A name
- containing a newline would at least render the script syntactically
- incorrect. Maliciously crafted object names could present a SQL
- injection risk when the script is reloaded. (CVE-2012-0868)
-
-
-
-
- Fix btree index corruption from insertions concurrent with vacuuming
- (Tom Lane)
-
-
- An index page split caused by an insertion could sometimes cause a
- concurrently-running VACUUM> to miss removing index entries
- that it should remove. After the corresponding table rows are removed,
- the dangling index entries would cause errors (such as could not
- read block N in file ...>) or worse, silently wrong query results
- after unrelated rows are re-inserted at the now-free table locations.
- This bug has been present since release 8.2, but occurs so infrequently
- that it was not diagnosed until now. If you have reason to suspect
- that it has happened in your database, reindexing the affected index
- will fix things.
-
-
-
-
- Fix transient zeroing of shared buffers during WAL replay (Tom Lane)
-
-
- The replay logic would sometimes zero and refill a shared buffer, so
- that the contents were transiently invalid. In hot standby mode this
- can result in a query that's executing in parallel seeing garbage data.
- Various symptoms could result from that, but the most common one seems
- to be invalid memory alloc request size>.
-
-
-
-
- Fix postmaster to attempt restart after a hot-standby crash (Tom Lane)
-
-
- A logic error caused the postmaster to terminate, rather than attempt
- to restart the cluster, if any backend process crashed while operating
- in hot standby mode.
-
-
-
-
- Fix CLUSTER>/VACUUM FULL> handling of toast
- values owned by recently-updated rows (Tom Lane)
-
-
- This oversight could lead to duplicate key value violates unique
- constraint> errors being reported against the toast table's index
- during one of these commands.
-
-
-
-
- Update per-column permissions, not only per-table permissions, when
- changing table owner (Tom Lane)
-
-
- Failure to do this meant that any previously granted column permissions
- were still shown as having been granted by the old owner. This meant
- that neither the new owner nor a superuser could revoke the
- now-untraceable-to-table-owner permissions.
-
-
-
-
- Support foreign data wrappers and foreign servers in
- REASSIGN OWNED> (Alvaro Herrera)
-
-
- This command failed with unexpected classid> errors if
- it needed to change the ownership of any such objects.
-
-
-
-
- Allow non-existent values for some settings in ALTER
- USER/DATABASE SET> (Heikki Linnakangas)
-
-
- Allow default_text_search_config>,
- default_tablespace>, and temp_tablespaces> to be
- set to names that are not known. This is because they might be known
- in another database where the setting is intended to be used, or for the
- tablespace cases because the tablespace might not be created yet. The
- same issue was previously recognized for search_path>, and
- these settings now act like that one.
-
-
-
-
- Avoid crashing when we have problems deleting table files post-commit
- (Tom Lane)
-
-
- Dropping a table should lead to deleting the underlying disk files only
- after the transaction commits. In event of failure then (for instance,
- because of wrong file permissions) the code is supposed to just emit a
- warning message and go on, since it's too late to abort the
- transaction. This logic got broken as of release 8.4, causing such
- situations to result in a PANIC and an unrestartable database.
-
-
-
-
- Recover from errors occurring during WAL replay of DROP
- TABLESPACE> (Tom Lane)
-
-
- Replay will attempt to remove the tablespace's directories, but there
- are various reasons why this might fail (for example, incorrect
- ownership or permissions on those directories). Formerly the replay
- code would panic, rendering the database unrestartable without manual
- intervention. It seems better to log the problem and continue, since
- the only consequence of failure to remove the directories is some
- wasted disk space.
-
-
-
-
- Fix race condition in logging AccessExclusiveLocks for hot standby
- (Simon Riggs)
-
-
- Sometimes a lock would be logged as being held by transaction
- zero>. This is at least known to produce assertion failures on
- slave servers, and might be the cause of more serious problems.
-
-
-
-
- Track the OID counter correctly during WAL replay, even when it wraps
- around (Tom Lane)
-
-
- Previously the OID counter would remain stuck at a high value until the
- system exited replay mode. The practical consequences of that are
- usually nil, but there are scenarios wherein a standby server that's
- been promoted to master might take a long time to advance the OID
- counter to a reasonable value once values are needed.
-
-
-
-
- Prevent emitting misleading consistent recovery state reached>
- log message at the beginning of crash recovery (Heikki Linnakangas)
-
-
-
-
- Fix initial value of
- pg_stat_replication>.replay_location>
- (Fujii Masao)
-
-
- Previously, the value shown would be wrong until at least one WAL
- record had been replayed.
-
-
-
-
- Fix regular expression back-references with *> attached
- (Tom Lane)
-
-
- Rather than enforcing an exact string match, the code would effectively
- accept any string that satisfies the pattern sub-expression referenced
- by the back-reference symbol.
-
-
- A similar problem still afflicts back-references that are embedded in a
- larger quantified expression, rather than being the immediate subject
- of the quantifier. This will be addressed in a future
-
-
-
-
- Fix recently-introduced memory leak in processing of
- inet>/cidr> values (Heikki Linnakangas)
-
-
- A patch in the December 2011 releases of
PostgreSQL>
- caused memory leakage in these operations, which could be significant
- in scenarios such as building a btree index on such a column.
-
-
-
-
- Fix dangling pointer after CREATE TABLE AS>/SELECT
- INTO> in a SQL-language function (Tom Lane)
-
-
- In most cases this only led to an assertion failure in assert-enabled
- builds, but worse consequences seem possible.
-
-
-
-
- Avoid double close of file handle in syslogger on Windows (MauMau)
-
-
- Ordinarily this error was invisible, but it would cause an exception
- when running on a debug version of Windows.
-
-
-
-
- Fix I/O-conversion-related memory leaks in plpgsql
- (Andres Freund, Jan Urbanski, Tom Lane)
-
-
- Certain operations would leak memory until the end of the current
- function.
-
-
-
-
- Improve
pg_dump>'s handling of inherited table columns
- (Tom Lane)
-
-
-
pg_dump> mishandled situations where a child column has
- a different default expression than its parent column. If the default
- is textually identical to the parent's default, but not actually the
- same (for instance, because of schema search path differences) it would
- not be recognized as different, so that after dump and restore the
- child would be allowed to inherit the parent's default. Child columns
- that are NOT NULL> where their parent is not could also be
- restored subtly incorrectly.
-
-
-
-
- Fix
pg_restore>'s direct-to-database mode for
- INSERT-style table data (Tom Lane)
-
-
- Direct-to-database restores from archive files made with
- --inserts> or --column-inserts> options fail when
- using
pg_restore> from a release dated September or
- December 2011, as a result of an oversight in a fix for another
- problem. The archive file itself is not at fault, and text-mode
- output is okay.
-
-
-
-
- Allow
pg_upgrade> to process tables containing
- regclass> columns (Bruce Momjian)
-
-
- Since
pg_upgrade> now takes care to preserve
- pg_class> OIDs, there was no longer any reason for this
- restriction.
-
-
-
-
- Make
libpq> ignore ENOTDIR> errors
- when looking for an SSL client certificate file
- (Magnus Hagander)
-
-
- This allows SSL connections to be established, though without a
- certificate, even when the user's home directory is set to something
- like /dev/null>.
-
-
-
-
- Fix some more field alignment issues in
ecpg>'s SQLDA area
- (Zoltan Boszormenyi)
-
-
-
-
- Allow
AT> option in ecpg>
- DEALLOCATE> statements (Michael Meskes)
-
-
- The infrastructure to support this has been there for awhile, but
- through an oversight there was still an error check rejecting the case.
-
-
-
-
- Do not use the variable name when defining a varchar structure in ecpg
- (Michael Meskes)
-
-
-
-
- Fix contrib/auto_explain>'s JSON output mode to produce
- valid JSON (Andrew Dunstan)
-
-
- The output used brackets at the top level, when it should have used
- braces.
-
-
-
-
- Fix error in contrib/intarray>'s int[] &
- int[]> operator (Guillaume Lelarge)
-
-
- If the smallest integer the two input arrays have in common is 1,
- and there are smaller values in either array, then 1 would be
- incorrectly omitted from the result.
-
-
-
-
- Fix error detection in contrib/pgcrypto>'s
- encrypt_iv()> and decrypt_iv()>
- (Marko Kreen)
-
-
- These functions failed to report certain types of invalid-input errors,
- and would instead return random garbage values for incorrect input.
-
-
-
-
- Fix one-byte buffer overrun in contrib/test_parser>
- (Paul Guyot)
-
-
- The code would try to read one more byte than it should, which would
- crash in corner cases.
- Since contrib/test_parser> is only example code, this is
- not a security issue in itself, but bad example code is still bad.
-
-
-
-
- Use __sync_lock_test_and_set()> for spinlocks on ARM, if
- available (Martin Pitt)
-
-
- This function replaces our previous use of the SWPB>
- instruction, which is deprecated and not available on ARMv6 and later.
- Reports suggest that the old code doesn't fail in an obvious way on
- recent ARM boards, but simply doesn't interlock concurrent accesses,
- leading to bizarre failures in multiprocess operation.
-
-
-
-
- Use -fexcess-precision=standard> option when building with
- gcc versions that accept it (Andrew Dunstan)
-
-
- This prevents assorted scenarios wherein recent versions of gcc will
- produce creative results.
-
-
-
-
- Allow use of threaded Python on FreeBSD (Chris Rees)
-
-
- Our configure script previously believed that this combination wouldn't
- work; but FreeBSD fixed the problem, so remove that error check.
-
-
-
-
-
-
-
-
-
-
Release 9.0.6
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.5.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.6
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, a longstanding error was discovered in the definition of the
- information_schema.referential_constraints> view. If you
- rely on correct results from that view, you should replace its
- definition as explained in the first changelog item below.
-
-
- Also, if you are upgrading from a version earlier than 9.0.4,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix bugs in information_schema.referential_constraints> view
- (Tom Lane)
-
-
- This view was being insufficiently careful about matching the
- foreign-key constraint to the depended-on primary or unique key
- constraint. That could result in failure to show a foreign key
- constraint at all, or showing it multiple times, or claiming that it
- depends on a different constraint than the one it really does.
-
-
- Since the view definition is installed by
initdb>,
- merely upgrading will not fix the problem. If you need to fix this
- in an existing installation, you can (as a superuser) drop the
- information_schema> schema then re-create it by sourcing
- SHAREDIR>/information_schema.sql .
- (Run pg_config --sharedir> if you're uncertain where
- SHAREDIR> is.) This must be repeated in each database
- to be fixed.
-
-
-
-
- Fix possible crash during UPDATE> or DELETE> that
- joins to the output of a scalar-returning function (Tom Lane)
-
-
- A crash could only occur if the target row had been concurrently
- updated, so this problem surfaced only intermittently.
-
-
-
-
- Fix incorrect replay of WAL records for GIN index updates
- (Tom Lane)
-
-
- This could result in transiently failing to find index entries after
- a crash, or on a hot-standby server. The problem would be repaired
- by the next VACUUM> of the index, however.
-
-
-
-
- Fix TOAST-related data corruption during CREATE TABLE dest AS
- SELECT * FROM src> or INSERT INTO dest SELECT * FROM src>
- (Tom Lane)
-
-
- If a table has been modified by ALTER TABLE ADD COLUMN>,
- attempts to copy its data verbatim to another table could produce
- corrupt results in certain corner cases.
- The problem can only manifest in this precise form in 8.4 and later,
- but we patched earlier versions as well in case there are other code
- paths that could trigger the same bug.
-
-
-
-
- Fix possible failures during hot standby startup (Simon Riggs)
-
-
-
-
- Start hot standby faster when initial snapshot is incomplete
- (Simon Riggs)
-
-
-
-
- Fix race condition during toast table access from stale syscache entries
- (Tom Lane)
-
-
- The typical symptom was transient errors like missing chunk
- number 0 for toast value NNNNN in pg_toast_2619>, where the cited
- toast table would always belong to a system catalog.
-
-
-
-
- Track dependencies of functions on items used in parameter default
- expressions (Tom Lane)
-
-
- Previously, a referenced object could be dropped without having dropped
- or modified the function, leading to misbehavior when the function was
- used. Note that merely installing this update will not fix the missing
- dependency entries; to do that, you'd need to CREATE OR
- REPLACE> each such function afterwards. If you have functions whose
- defaults depend on non-built-in objects, doing so is recommended.
-
-
-
-
- Allow inlining of set-returning SQL functions with multiple OUT
- parameters (Tom Lane)
-
-
-
-
- Don't trust deferred-unique indexes for join removal (Tom Lane and Marti
- Raudsepp)
-
-
- A deferred uniqueness constraint might not hold intra-transaction,
- so assuming that it does could give incorrect query results.
-
-
-
-
- Make DatumGetInetP()> unpack inet datums that have a 1-byte
- header, and add a new macro, DatumGetInetPP()>, that does
- not (Heikki Linnakangas)
-
-
- This change affects no core code, but might prevent crashes in add-on
- code that expects DatumGetInetP()> to produce an unpacked
- datum as per usual convention.
-
-
-
-
- Improve locale support in money> type's input and output
- (Tom Lane)
-
-
- Aside from not supporting all standard
- lc_monetary>
- formatting options, the input and output functions were inconsistent,
- meaning there were locales in which dumped money> values could
- not be re-read.
-
-
-
-
- Don't let
- linkend="guc-transform-null-equals">transform_null_equals>
- affect CASE foo WHEN NULL ...> constructs
- (Heikki Linnakangas)
-
-
- transform_null_equals> is only supposed to affect
- foo = NULL> expressions written directly by the user, not
- equality checks generated internally by this form of CASE>.
-
-
-
-
- Change foreign-key trigger creation order to better support
- self-referential foreign keys (Tom Lane)
-
-
- For a cascading foreign key that references its own table, a row update
- will fire both the ON UPDATE> trigger and the
- CHECK> trigger as one event. The ON UPDATE>
- trigger must execute first, else the CHECK> will check a
- non-final state of the row and possibly throw an inappropriate error.
- However, the firing order of these triggers is determined by their
- names, which generally sort in creation order since the triggers have
- auto-generated names following the convention
- RI_ConstraintTrigger_NNNN>. A proper fix would require
- modifying that convention, which we will do in 9.2, but it seems risky
- to change it in existing releases. So this patch just changes the
- creation order of the triggers. Users encountering this type of error
- should drop and re-create the foreign key constraint to get its
- triggers into the right order.
-
-
-
-
- Avoid floating-point underflow while tracking buffer allocation rate
- (Greg Matthews)
-
-
- While harmless in itself, on certain platforms this would result in
- annoying kernel log messages.
-
-
-
-
- Preserve configuration file name and line number values when starting
- child processes under Windows (Tom Lane)
-
-
- Formerly, these would not be displayed correctly in the
- pg_settings> view.
-
-
-
-
- Fix incorrect field alignment in
ecpg>'s SQLDA area
- (Zoltan Boszormenyi)
-
-
-
-
- Preserve blank lines within commands in
psql>'s command
- history (Robert Haas)
-
-
- The former behavior could cause problems if an empty line was removed
- from within a string literal, for example.
-
-
-
-
- Fix
pg_dump> to dump user-defined casts between
- auto-generated types, such as table rowtypes (Tom Lane)
-
-
-
-
- Assorted fixes for
pg_upgrade> (Bruce Momjian)
-
-
- Handle exclusion constraints correctly, avoid failures on Windows,
- don't complain about mismatched toast table names in 8.4 databases.
-
-
-
-
- Use the preferred version of
xsubpp> to build PL/Perl,
- not necessarily the operating system's main copy
- (David Wheeler and Alex Hunsaker)
-
-
-
-
- Fix incorrect coding in contrib/dict_int> and
- contrib/dict_xsyn> (Tom Lane)
-
-
- Some functions incorrectly assumed that memory returned by
- palloc()> is guaranteed zeroed.
-
-
-
-
- Fix assorted errors in contrib/unaccent>'s configuration
- file parsing (Tom Lane)
-
-
-
-
- Honor query cancel interrupts promptly in pgstatindex()>
- (Robert Haas)
-
-
-
-
- Fix incorrect quoting of log file name in Mac OS X start script
- (Sidar Lopez)
-
-
-
-
- Ensure VPATH builds properly install all server header files
- (Peter Eisentraut)
-
-
-
-
- Shorten file names reported in verbose error messages (Peter Eisentraut)
-
-
- Regular builds have always reported just the name of the C file
- containing the error message call, but VPATH builds formerly
- reported an absolute path name.
-
-
-
-
- Fix interpretation of Windows timezone names for Central America
- (Tom Lane)
-
-
- Map Central America Standard Time> to CST6>, not
- CST6CDT>, because DST is generally not observed anywhere in
- Central America.
-
-
-
-
- Update time zone data files to
tzdata> release 2011n
- for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
- also historical corrections for Alaska and British East Africa.
-
-
-
-
-
-
-
-
-
-
Release 9.0.5
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.4.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.5
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if you are upgrading from a version earlier than 9.0.4,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix catalog cache invalidation after a VACUUM FULL> or
- CLUSTER> on a system catalog (Tom Lane)
-
-
- In some cases the relocation of a system catalog row to another place
- would not be recognized by concurrent server processes, allowing catalog
- corruption to occur if they then tried to update that row. The
- worst-case outcome could be as bad as complete loss of a table.
-
-
-
-
- Fix incorrect order of operations during sinval reset processing,
- and ensure that TOAST OIDs are preserved in system catalogs (Tom
- Lane)
-
-
- These mistakes could lead to transient failures after a VACUUM
- FULL> or CLUSTER> on a system catalog.
-
-
-
-
- Fix bugs in indexing of in-doubt HOT-updated tuples (Tom Lane)
-
-
- These bugs could result in index corruption after reindexing a system
- catalog. They are not believed to affect user indexes.
-
-
-
-
- Fix multiple bugs in GiST index page split processing (Heikki
- Linnakangas)
-
-
- The probability of occurrence was low, but these could lead to index
- corruption.
-
-
-
-
- Fix possible buffer overrun in tsvector_concat()>
- (Tom Lane)
-
-
- The function could underestimate the amount of memory needed for its
- result, leading to server crashes.
-
-
-
-
- Fix crash in xml_recv> when processing a
- standalone> parameter (Tom Lane)
-
-
-
-
- Make pg_options_to_table> return NULL for an option with no
- value (Tom Lane)
-
-
- Previously such cases would result in a server crash.
-
-
-
-
- Avoid possibly accessing off the end of memory in ANALYZE>
- and in SJIS-2004 encoding conversion (Noah Misch)
-
-
- This fixes some very-low-probability server crash scenarios.
-
-
-
-
- Protect pg_stat_reset_shared()> against NULL input (Magnus
- Hagander)
-
-
-
-
- Fix possible failure when a recovery conflict deadlock is detected
- within a sub-transaction (Tom Lane)
-
-
-
-
- Avoid spurious conflicts while recycling btree index pages during hot
- standby (Noah Misch, Simon Riggs)
-
-
-
-
- Shut down WAL receiver if it's still running at end of recovery (Heikki
- Linnakangas)
-
-
- The postmaster formerly panicked in this situation, but it's actually a
- legitimate case.
-
-
-
-
- Fix race condition in relcache init file invalidation (Tom Lane)
-
-
- There was a window wherein a new backend process could read a stale init
- file but miss the inval messages that would tell it the data is stale.
- The result would be bizarre failures in catalog accesses, typically
- could not read block 0 in file ...> later during startup.
-
-
-
-
- Fix memory leak at end of a GiST index scan (Tom Lane)
-
-
- Commands that perform many separate GiST index scans, such as
- verification of a new GiST-based exclusion constraint on a table
- already containing many rows, could transiently require large amounts of
- memory due to this leak.
-
-
-
-
- Fix memory leak when encoding conversion has to be done on incoming
- command strings and LISTEN> is active (Tom Lane)
-
-
-
-
- Fix incorrect memory accounting (leading to possible memory bloat) in
- tuplestores supporting holdable cursors and plpgsql's RETURN
- NEXT> command (Tom Lane)
-
-
-
-
- Fix trigger WHEN> conditions when both BEFORE> and
- AFTER> triggers exist (Tom Lane)
-
-
- Evaluation of WHEN> conditions for AFTER ROW
- UPDATE> triggers could crash if there had been a BEFORE
- ROW> trigger fired for the same update.
-
-
-
-
- Fix performance problem when constructing a large, lossy bitmap
- (Tom Lane)
-
-
-
-
- Fix join selectivity estimation for unique columns (Tom Lane)
-
-
- This fixes an erroneous planner heuristic that could lead to poor
- estimates of the result size of a join.
-
-
-
-
- Fix nested PlaceHolderVar expressions that appear only in sub-select
- target lists (Tom Lane)
-
-
- This mistake could result in outputs of an outer join incorrectly
- appearing as NULL.
-
-
-
-
- Allow the planner to assume that empty parent tables really are empty
- (Tom Lane)
-
-
- Normally an empty table is assumed to have a certain minimum size for
- planning purposes; but this heuristic seems to do more harm than good
- for the parent table of an inheritance hierarchy, which often is
- permanently empty.
-
-
-
-
- Allow nested EXISTS> queries to be optimized properly (Tom
- Lane)
-
-
-
-
- Fix array- and path-creating functions to ensure padding bytes are
- zeroes (Tom Lane)
-
-
- This avoids some situations where the planner will think that
- semantically-equal constants are not equal, resulting in poor
- optimization.
-
-
-
-
- Fix EXPLAIN> to handle gating Result nodes within
- inner-indexscan subplans (Tom Lane)
-
-
- The usual symptom of this oversight was bogus varno> errors.
-
-
-
-
- Fix btree preprocessing of indexedcol> IS
- NULL> conditions (Dean Rasheed)
-
-
- Such a condition is unsatisfiable if combined with any other type of
- btree-indexable condition on the same index column. The case was
- handled incorrectly in 9.0.0 and later, leading to query output where
- there should be none.
-
-
-
-
- Work around gcc 4.6.0 bug that breaks WAL replay (Tom Lane)
-
-
- This could lead to loss of committed transactions after a server crash.
-
-
-
-
- Fix dump bug for VALUES> in a view (Tom Lane)
-
-
-
-
- Disallow SELECT FOR UPDATE/SHARE> on sequences (Tom Lane)
-
-
- This operation doesn't work as expected and can lead to failures.
-
-
-
-
- Fix VACUUM> so that it always updates
- pg_class>.reltuples>/relpages> (Tom
- Lane)
-
-
- This fixes some scenarios where autovacuum could make increasingly poor
- decisions about when to vacuum tables.
-
-
-
-
- Defend against integer overflow when computing size of a hash table (Tom
- Lane)
-
-
-
-
- Fix cases where CLUSTER> might attempt to access
- already-removed TOAST data (Tom Lane)
-
-
-
-
- Fix premature timeout failures during initial authentication transaction
- (Tom Lane)
-
-
-
-
- Fix portability bugs in use of credentials control messages for
- peer> authentication (Tom Lane)
-
-
-
-
- Fix SSPI login when multiple roundtrips are required (Ahmed Shinwari,
- Magnus Hagander)
-
-
- The typical symptom of this problem was The function requested is
- not supported> errors during SSPI login.
-
-
-
-
- Fix failure when adding a new variable of a custom variable class to
- postgresql.conf> (Tom Lane)
-
-
-
-
- Throw an error if pg_hba.conf> contains hostssl>
- but SSL is disabled (Tom Lane)
-
-
- This was concluded to be more user-friendly than the previous behavior
- of silently ignoring such lines.
-
-
-
-
- Fix failure when DROP OWNED BY> attempts to remove default
- privileges on sequences (Shigeru Hanada)
-
-
-
-
- Fix typo in pg_srand48> seed initialization (Andres Freund)
-
-
- This led to failure to use all bits of the provided seed. This function
- is not used on most platforms (only those without srandom>),
- and the potential security exposure from a less-random-than-expected
- seed seems minimal in any case.
-
-
-
-
- Avoid integer overflow when the sum of LIMIT> and
- OFFSET> values exceeds 2^63 (Heikki Linnakangas)
-
-
-
-
- Add overflow checks to int4> and int8> versions of
- generate_series()> (Robert Haas)
-
-
-
-
- Fix trailing-zero removal in to_char()> (Marti Raudsepp)
-
-
- In a format with FM> and no digit positions
- after the decimal point, zeroes to the left of the decimal point could
- be removed incorrectly.
-
-
-
-
- Fix pg_size_pretty()> to avoid overflow for inputs close to
- 2^63 (Tom Lane)
-
-
-
-
- Weaken plpgsql's check for typmod matching in record values (Tom Lane)
-
-
- An overly enthusiastic check could lead to discarding length modifiers
- that should have been kept.
-
-
-
-
- Correctly handle quotes in locale names during
initdb>
- (Heikki Linnakangas)
-
-
- The case can arise with some Windows locales, such as People's
- Republic of China>.
-
-
-
-
- In
pg_upgrade>, avoid dumping orphaned temporary tables
- (Bruce Momjian)
-
-
- This prevents situations wherein table OID assignments could get out of
- sync between old and new installations.
-
-
-
-
- Fix
pg_upgrade> to preserve toast tables' relfrozenxids
- during an upgrade from 8.3 (Bruce Momjian)
-
-
- Failure to do this could lead to pg_clog> files being
- removed too soon after the upgrade.
-
-
-
-
- In
pg_upgrade>, fix the -l> (log) option to
- work on Windows (Bruce Momjian)
-
-
-
-
- In
pg_ctl>, support silent mode for service registrations
- on Windows (MauMau)
-
-
-
-
- Fix
psql>'s counting of script file line numbers during
- COPY> from a different file (Tom Lane)
-
-
-
-
- Fix
pg_restore>'s direct-to-database mode for
- standard_conforming_strings> (Tom Lane)
-
-
-
pg_restore> could emit incorrect commands when restoring
- directly to a database server from an archive file that had been made
- with standard_conforming_strings> set to on>.
-
-
-
-
- Be more user-friendly about unsupported cases for parallel
-
-
- This change ensures that such cases are detected and reported before
- any restore actions have been taken.
-
-
-
-
- Fix write-past-buffer-end and memory leak in
libpq>'s
- LDAP service lookup code (Albe Laurenz)
-
-
-
-
- In
libpq>, avoid failures when using nonblocking I/O
- and an SSL connection (Martin Pihlak, Tom Lane)
-
-
-
-
- Improve libpq's handling of failures during connection startup
- (Tom Lane)
-
-
- In particular, the response to a server report of fork()>
- failure during SSL connection startup is now saner.
-
-
-
-
- Improve
libpq>'s error reporting for SSL failures (Tom
- Lane)
-
-
-
-
- Fix PQsetvalue()> to avoid possible crash when adding a new
- tuple to a PGresult> originally obtained from a server
- query (Andrew Chernow)
-
-
-
-
- Make
ecpglib> write double> values with 15 digits
- precision (Akira Kurosawa)
-
-
-
-
- In
ecpglib>, be sure LC_NUMERIC> setting is
- restored after an error (Michael Meskes)
-
-
-
-
- Apply upstream fix for blowfish signed-character bug (CVE-2011-2483)
- (Tom Lane)
-
-
- contrib/pg_crypto>'s blowfish encryption code could give
- wrong results on platforms where char is signed (which is most),
- leading to encrypted passwords being weaker than they should be.
-
-
-
-
- Fix memory leak in contrib/seg> (Heikki Linnakangas)
-
-
-
-
- Fix pgstatindex()> to give consistent results for empty
- indexes (Tom Lane)
-
-
-
-
- Allow building with perl 5.14 (Alex Hunsaker)
-
-
-
-
- Fix assorted issues with build and install file paths containing spaces
- (Tom Lane)
-
-
-
-
- Update time zone data files to
tzdata> release 2011i
- for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan.
-
-
-
-
-
-
-
-
-
-
Release 9.0.4
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.3.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.4
-
- A dump/restore is not required for those running 9.0.X.
-
-
- However, if your installation was upgraded from a previous major
- release by running
pg_upgrade>, you should take
- action to prevent possible data loss due to a now-fixed bug in
-
pg_upgrade>. The recommended solution is to run
- VACUUM FREEZE> on all TOAST tables.
- More information is available at
- url="http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix">
- http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix.
-
-
-
-
-
-
Changes
-
-
-
-
- Fix
pg_upgrade>'s handling of TOAST tables
- (Bruce Momjian)
-
-
- The pg_class>.relfrozenxid> value for
- TOAST tables was not correctly copied into the new installation
- during
pg_upgrade>. This could later result in
- pg_clog> files being discarded while they were still
- needed to validate tuples in the TOAST tables, leading to
- could not access status of transaction> failures.
-
-
- This error poses a significant risk of data loss for installations
- that have been upgraded with
pg_upgrade>. This patch
- corrects the problem for future uses of
pg_upgrade>,
- but does not in itself cure the issue in installations that have been
- processed with a buggy version of
pg_upgrade>.
-
-
-
-
- Suppress incorrect PD_ALL_VISIBLE flag was incorrectly set>
- warning (Heikki Linnakangas)
-
-
- VACUUM> would sometimes issue this warning in cases that
- are actually valid.
-
-
-
-
- Use better SQLSTATE error codes for hot standby conflict cases
- (Tatsuo Ishii and Simon Riggs)
-
-
- All retryable conflict errors now have an error code that indicates
- that a retry is possible. Also, session closure due to the database
- being dropped on the master is now reported as
- ERRCODE_DATABASE_DROPPED>, rather than
- ERRCODE_ADMIN_SHUTDOWN>, so that connection poolers can
- handle the situation correctly.
-
-
-
-
- Prevent intermittent hang in interactions of startup process with
- bgwriter process (Simon Riggs)
-
-
- This affected recovery in non-hot-standby cases.
-
-
-
-
- Disallow including a composite type in itself (Tom Lane)
-
-
- This prevents scenarios wherein the server could recurse infinitely
- while processing the composite type. While there are some possible
- uses for such a structure, they don't seem compelling enough to
- justify the effort required to make sure it always works safely.
-
-
-
-
- Avoid potential deadlock during catalog cache initialization
- (Nikhil Sontakke)
-
-
- In some cases the cache loading code would acquire share lock on a
- system index before locking the index's catalog. This could deadlock
- against processes trying to acquire exclusive locks in the other,
- more standard order.
-
-
-
-
- Fix dangling-pointer problem in BEFORE ROW UPDATE> trigger
- handling when there was a concurrent update to the target tuple
- (Tom Lane)
-
-
- This bug has been observed to result in intermittent cannot
- extract system attribute from virtual tuple> failures while trying to
- do UPDATE RETURNING ctid>. There is a very small probability
- of more serious errors, such as generating incorrect index entries for
- the updated tuple.
-
-
-
-
- Disallow DROP TABLE> when there are pending deferred trigger
- events for the table (Tom Lane)
-
-
- Formerly the DROP> would go through, leading to
- could not open relation with OID nnn> errors when the
- triggers were eventually fired.
-
-
-
-
- Allow replication> as a user name in
- pg_hba.conf> (Andrew Dunstan)
-
-
- replication> is special in the database name column, but it
- was mistakenly also treated as special in the user name column.
-
-
-
-
- Prevent crash triggered by constant-false WHERE conditions during
- GEQO optimization (Tom Lane)
-
-
-
-
- Improve planner's handling of semi-join and anti-join cases
- (Tom Lane)
-
-
-
-
- Fix handling of SELECT FOR UPDATE> in a sub-SELECT
- (Tom Lane)
-
-
- This bug typically led to cannot extract system attribute from
- virtual tuple> errors.
-
-
-
-
- Fix selectivity estimation for text search to account for NULLs
- (Jesper Krogh)
-
-
-
-
- Fix get_actual_variable_range() to support hypothetical indexes
- injected by an index adviser plugin (Gurjeet Singh)
-
-
-
-
- Fix PL/Python memory leak involving array slices (Daniel Popowich)
-
-
-
-
- Allow
libpq>'s SSL initialization to succeed when
- user's home directory is unavailable (Tom Lane)
-
-
- If the SSL mode is such that a root certificate file is not required,
- there is no need to fail. This change restores the behavior to what
- it was in pre-9.0 releases.
-
-
-
-
- Fix
libpq> to return a useful error message for errors
- detected in conninfo_array_parse> (Joseph Adams)
-
-
- A typo caused the library to return NULL, rather than the
- PGconn> structure containing the error message, to the
- application.
-
-
-
-
- Fix
ecpg> preprocessor's handling of float constants
- (Heikki Linnakangas)
-
-
-
-
- Fix parallel
pg_restore> to handle comments on
- POST_DATA items correctly (Arnd Hannemann)
-
-
-
-
- Fix
pg_restore> to cope with long lines (over 1KB) in
- TOC files (Tom Lane)
-
-
-
-
- Put in more safeguards against crashing due to division-by-zero
- with overly enthusiastic compiler optimization (Aurelien Jarno)
-
-
-
-
- Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane)
-
-
- There was a hard-wired assumption that this system function was not
- available on MIPS hardware on these systems. Use a compile-time test
- instead, since more recent versions have it.
-
-
-
-
- Fix compilation failures on HP-UX (Heikki Linnakangas)
-
-
-
-
- Avoid crash when trying to write to the Windows console very early
- in process startup (Rushabh Lathia)
-
-
-
-
- Support building with MinGW 64 bit compiler for Windows
- (Andrew Dunstan)
-
-
-
-
- Fix version-incompatibility problem with
libintl> on
- Windows (Hiroshi Inoue)
-
-
-
-
- Fix usage of
xcopy> in Windows build scripts to
- work correctly under Windows 7 (Andrew Dunstan)
-
-
- This affects the build scripts only, not installation or usage.
-
-
-
-
- Fix path separator used by
pg_regress> on Cygwin
- (Andrew Dunstan)
-
-
-
-
- Update time zone data files to
tzdata> release 2011f
- for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa,
- and Turkey; also historical corrections for South Australia, Alaska,
- and Hawaii.
-
-
-
-
-
-
-
-
-
-
Release 9.0.3
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.2.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.3
-
- A dump/restore is not required for those running 9.0.X.
-
-
-
-
-
-
Changes
-
-
-
-
- Before exiting
walreceiver>, ensure all the received WAL
- is fsync'd to disk (Heikki Linnakangas)
-
-
- Otherwise the standby server could replay some un-synced WAL, conceivably
- leading to data corruption if the system crashes just at that point.
-
-
-
-
- Avoid excess fsync activity in
walreceiver>
- (Heikki Linnakangas)
-
-
-
-
- Make ALTER TABLE> revalidate uniqueness and exclusion
- constraints when needed (Noah Misch)
-
-
- This was broken in 9.0 by a change that was intended to suppress
- revalidation during VACUUM FULL> and CLUSTER>,
- but unintentionally affected ALTER TABLE> as well.
-
-
-
-
- Fix EvalPlanQual for UPDATE> of an inheritance tree in which
- the tables are not all alike (Tom Lane)
-
-
- Any variation in the table row types (including dropped columns present
- in only some child tables) would confuse the EvalPlanQual code, leading
- to misbehavior or even crashes. Since EvalPlanQual is only executed
- during concurrent updates to the same row, the problem was only seen
- intermittently.
-
-
-
-
- Avoid failures when EXPLAIN> tries to display a simple-form
- CASE> expression (Tom Lane)
-
-
- If the CASE>'s test expression was a constant, the planner
- could simplify the CASE> into a form that confused the
- expression-display code, resulting in unexpected CASE WHEN
- clause> errors.
-
-
-
-
- Fix assignment to an array slice that is before the existing range
- of subscripts (Tom Lane)
-
-
- If there was a gap between the newly added subscripts and the first
- pre-existing subscript, the code miscalculated how many entries needed
- to be copied from the old array's null bitmap, potentially leading to
- data corruption or crash.
-
-
-
-
- Avoid unexpected conversion overflow in planner for very distant date
- values (Tom Lane)
-
-
- The date> type supports a wider range of dates than can be
- represented by the timestamp> types, but the planner assumed it
- could always convert a date to timestamp with impunity.
-
-
-
-
- Fix PL/Python crash when an array contains null entries (Alex Hunsaker)
-
-
-
-
- Remove
ecpg>'s fixed length limit for constants defining
- an array dimension (Michael Meskes)
-
-
-
-
- Fix erroneous parsing of tsquery> values containing
- ... & !(subexpression) | ... (Tom Lane)
-
-
- Queries containing this combination of operators were not executed
- correctly. The same error existed in contrib/intarray>'s
- query_int> type and contrib/ltree>'s
- ltxtquery> type.
-
-
-
-
- Fix buffer overrun in contrib/intarray>'s input function
- for the query_int> type (Apple)
-
-
- This bug is a security risk since the function's return address could
- be overwritten. Thanks to Apple Inc's security team for reporting this
- issue and supplying the fix. (CVE-2010-4015)
-
-
-
-
- Fix bug in contrib/seg>'s GiST picksplit algorithm
- (Alexander Korotkov)
-
-
- This could result in considerable inefficiency, though not actually
- incorrect answers, in a GiST index on a seg> column.
- If you have such an index, consider REINDEX>ing it after
- installing this update. (This is identical to the bug that was fixed in
- contrib/cube> in the previous update.)
-
-
-
-
-
-
-
-
-
-
Release 9.0.2
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.1.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.2
-
- A dump/restore is not required for those running 9.0.X.
-
-
-
-
-
-
Changes
-
-
-
-
- Force the default
- wal_sync_method>
- to be fdatasync> on Linux (Tom Lane, Marti Raudsepp)
-
-
- The default on Linux has actually been fdatasync> for many
- years, but recent kernel changes caused
PostgreSQL> to
- choose open_datasync> instead. This choice did not result
- in any performance improvement, and caused outright failures on
- certain filesystems, notably ext4> with the
- data=journal> mount option.
-
-
-
-
- Fix too many KnownAssignedXids> error during Hot Standby
- replay (Heikki Linnakangas)
-
-
-
-
- Fix race condition in lock acquisition during Hot Standby (Simon Riggs)
-
-
-
-
- Avoid unnecessary conflicts during Hot Standby (Simon Riggs)
-
-
- This fixes some cases where replay was considered to conflict with
- standby queries (causing delay of replay or possibly cancellation of
- the queries), but there was no real conflict.
-
-
-
-
- Fix assorted bugs in WAL replay logic for GIN indexes (Tom Lane)
-
-
- This could result in bad buffer id: 0> failures or
- corruption of index contents during replication.
-
-
-
-
- Fix recovery from base backup when the starting checkpoint WAL record
- is not in the same WAL segment as its redo point (Jeff Davis)
-
-
-
-
- Fix corner-case bug when streaming replication is enabled immediately
- after creating the master database cluster (Heikki Linnakangas)
-
-
-
-
- Fix persistent slowdown of autovacuum workers when multiple workers
- remain active for a long time (Tom Lane)
-
-
- The effective vacuum_cost_limit> for an autovacuum worker
- could drop to nearly zero if it processed enough tables, causing it
- to run extremely slowly.
-
-
-
-
- Fix long-term memory leak in autovacuum launcher (Alvaro Herrera)
-
-
-
-
- Avoid failure when trying to report an impending transaction
- wraparound condition from outside a transaction (Tom Lane)
-
-
- This oversight prevented recovery after transaction wraparound got
- too close, because database startup processing would fail.
-
-
-
-
- Add support for detecting register-stack overrun on IA64>
- (Tom Lane)
-
-
- The IA64> architecture has two hardware stacks. Full
- prevention of stack-overrun failures requires checking both.
-
-
-
-
- Add a check for stack overflow in copyObject()> (Tom Lane)
-
-
- Certain code paths could crash due to stack overflow given a
- sufficiently complex query.
-
-
-
-
- Fix detection of page splits in temporary GiST indexes (Heikki
- Linnakangas)
-
-
- It is possible to have a concurrent> page split in a
- temporary index, if for example there is an open cursor scanning the
- index when an insertion is done. GiST failed to detect this case and
- hence could deliver wrong results when execution of the cursor
- continued.
-
-
-
-
- Fix error checking during early connection processing (Tom Lane)
-
-
- The check for too many child processes was skipped in some cases,
- possibly leading to postmaster crash when attempting to add the new
- child process to fixed-size arrays.
-
-
-
-
- Improve efficiency of window functions (Tom Lane)
-
-
- Certain cases where a large number of tuples needed to be read in
- advance, but work_mem> was large enough to allow them all
- to be held in memory, were unexpectedly slow.
- percent_rank()>, cume_dist()> and
- ntile()> in particular were subject to this problem.
-
-
-
-
- Avoid memory leakage while ANALYZE>'ing complex index
- expressions (Tom Lane)
-
-
-
-
- Ensure an index that uses a whole-row Var still depends on its table
- (Tom Lane)
-
-
- An index declared like create index i on t (foo(t.*))>
- would not automatically get dropped when its table was dropped.
-
-
-
-
- Add missing support in DROP OWNED BY> for removing foreign
- data wrapper/server privileges belonging to a user (Heikki Linnakangas)
-
-
-
-
- Do not inline> a SQL function with multiple OUT>
- parameters (Tom Lane)
-
-
- This avoids a possible crash due to loss of information about the
- expected result rowtype.
-
-
-
-
- Fix crash when inline-ing a set-returning function whose argument list
- contains a reference to an inline-able user function (Tom Lane)
-
-
-
-
- Behave correctly if ORDER BY>, LIMIT>,
- FOR UPDATE>, or WITH> is attached to the
- VALUES> part of INSERT ... VALUES> (Tom Lane)
-
-
-
-
- Make the OFF> keyword unreserved (Heikki Linnakangas)
-
-
- This prevents problems with using off> as a variable name in
-
PL/pgSQL>. That worked before 9.0, but was now broken
- because
PL/pgSQL> now treats all core reserved words
- as reserved.
-
-
-
-
- Fix constant-folding of COALESCE()> expressions (Tom Lane)
-
-
- The planner would sometimes attempt to evaluate sub-expressions that
- in fact could never be reached, possibly leading to unexpected errors.
-
-
-
-
- Fix could not find pathkey item to sort> planner failure
- with comparison of whole-row Vars (Tom Lane)
-
-
-
-
- Fix postmaster crash when connection acceptance
- (accept()> or one of the calls made immediately after it)
- fails, and the postmaster was compiled with GSSAPI support (Alexander
- Chernikov)
-
-
-
-
- Retry after receiving an invalid response packet from a RADIUS
- authentication server (Magnus Hagander)
-
-
- This fixes a low-risk potential denial of service condition.
-
-
-
-
- Fix missed unlink of temporary files when log_temp_files>
- is active (Tom Lane)
-
-
- If an error occurred while attempting to emit the log message, the
- unlink was not done, resulting in accumulation of temp files.
-
-
-
-
- Add print functionality for InhRelation> nodes (Tom Lane)
-
-
- This avoids a failure when debug_print_parse> is enabled
- and certain types of query are executed.
-
-
-
-
- Fix incorrect calculation of distance from a point to a horizontal
- line segment (Tom Lane)
-
-
- This bug affected several different geometric distance-measurement
- operators.
-
-
-
-
- Fix incorrect calculation of transaction status in
-
ecpg> (Itagaki Takahiro)
-
-
-
-
- Fix errors in
psql>'s Unicode-escape support (Tom Lane)
-
-
-
-
- Speed up parallel
pg_restore> when the archive
- contains many large objects (blobs) (Tom Lane)
-
-
-
-
- Fix
PL/pgSQL>'s handling of simple>
- expressions to not fail in recursion or error-recovery cases (Tom Lane)
-
-
-
-
- Fix
PL/pgSQL>'s error reporting for no-such-column
- cases (Tom Lane)
-
-
- As of 9.0, it would sometimes report missing FROM-clause entry
- for table foo> when record foo has no field bar> would be
- more appropriate.
-
-
-
-
- Fix
PL/Python> to honor typmod (i.e., length or
- precision restrictions) when assigning to tuple fields (Tom Lane)
-
-
- This fixes a regression from 8.4.
-
-
-
-
- Fix
PL/Python>'s handling of set-returning functions
- (Jan Urbanski)
-
-
- Attempts to call SPI functions within the iterator generating a set
- result would fail.
-
-
-
-
- Fix bug in contrib/cube>'s GiST picksplit algorithm
- (Alexander Korotkov)
-
-
- This could result in considerable inefficiency, though not actually
- incorrect answers, in a GiST index on a cube> column.
- If you have such an index, consider REINDEX>ing it after
- installing this update.
-
-
-
-
- Don't emit identifier will be truncated> notices in
- contrib/dblink> except when creating new connections
- (Itagaki Takahiro)
-
-
-
-
- Fix potential coredump on missing public key in
- contrib/pgcrypto> (Marti Raudsepp)
-
-
-
-
- Fix buffer overrun in contrib/pg_upgrade> (Hernan Gonzalez)
-
-
-
-
- Fix memory leak in contrib/xml2>'s XPath query functions
- (Tom Lane)
-
-
-
-
- Update time zone data files to
tzdata> release 2010o
- for DST law changes in Fiji and Samoa;
- also historical corrections for Hong Kong.
-
-
-
-
-
-
-
-
-
-
Release 9.0.1
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.0.0.
- For information about new features in the 9.0 major release, see
- .
-
-
-
-
Migration to Version 9.0.1
-
- A dump/restore is not required for those running 9.0.X.
-
-
-
-
-
-
Changes
-
-
-
-
- Use a separate interpreter for each calling SQL userid in PL/Perl and
- PL/Tcl (Tom Lane)
-
-
- This change prevents security problems that can be caused by subverting
- Perl or Tcl code that will be executed later in the same session under
- another SQL user identity (for example, within a SECURITY
- DEFINER> function). Most scripting languages offer numerous ways that
- that might be done, such as redefining standard functions or operators
- called by the target function. Without this change, any SQL user with
- Perl or Tcl language usage rights can do essentially anything with the
- SQL privileges of the target function's owner.
-
-
- The cost of this change is that intentional communication among Perl
- and Tcl functions becomes more difficult. To provide an escape hatch,
- PL/PerlU and PL/TclU functions continue to use only one interpreter
- per session. This is not considered a security issue since all such
- functions execute at the trust level of a database superuser already.
-
-
- It is likely that third-party procedural languages that claim to offer
- trusted execution have similar security issues. We advise contacting
- the authors of any PL you are depending on for security-critical
- purposes.
-
-
- Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
-
-
-
-
- Improve pg_get_expr()> security fix so that the function
- can still be used on the output of a sub-select (Tom Lane)
-
-
-
-
- Fix incorrect placement of placeholder evaluation (Tom Lane)
-
-
- This bug could result in query outputs being non-null when they
- should be null, in cases where the inner side of an outer join
- is a sub-select with non-strict expressions in its output list.
-
-
-
-
- Fix join removal's handling of placeholder expressions (Tom Lane)
-
-
-
-
- Fix possible duplicate scans of UNION ALL> member relations
- (Tom Lane)
-
-
-
-
- Prevent infinite loop in ProcessIncomingNotify() after unlistening
- (Jeff Davis)
-
-
-
-
- Prevent show_session_authorization() from crashing within autovacuum
- processes (Tom Lane)
-
-
-
-
- Re-allow input of Julian dates prior to 0001-01-01 AD (Tom Lane)
-
-
- Input such as 'J100000'::date> worked before 8.4,
- but was unintentionally broken by added error-checking.
-
-
-
-
- Make psql recognize DISCARD ALL> as a command that should
- not be encased in a transaction block in autocommit-off mode
- (Itagaki Takahiro)
-
-
-
-
- Update build infrastructure and documentation to reflect the source code
- repository's move from CVS to Git (Magnus Hagander and others)
-
-
-
-
-
-
-
-
-
-
Release 9.0
-
-
-
Release date:
-
-
-
-
Overview
-
- This release of
-
PostgreSQL> adds features that have been requested
- for years, such as easy-to-use replication, a mass permission-changing
- facility, and anonymous code blocks. While past major releases have
- been conservative in their scope, this release shows a
- bold new desire to provide facilities that new and existing
- users of
PostgreSQL> will embrace. This has all
- been done with few incompatibilities. Major enhancements include:
-
-
-
-
-
-
-
-
- Built-in replication based on log shipping. This advance consists of
- two features: Streaming Replication, allowing continuous archive
- (
WAL>) files to be streamed over a network connection to a
- standby server, and Hot Standby, allowing continuous archive standby
- servers to execute read-only queries. The net effect is to support a
- single master with multiple read-only slave servers.
-
-
-
-
- Easier database object permissions management.
- linkend="SQL-GRANT">GRANT>/REVOKE IN
- SCHEMA> supports mass permissions changes on existing objects,
- while ALTER DEFAULT
- PRIVILEGES> allows control of privileges for objects created in
- the future. Large objects (BLOBs) now support permissions management as
- well.
-
-
-
-
- Broadly enhanced stored procedure support.
- The DO> statement supports
- ad-hoc or anonymous> code blocks.
- Functions can now be called using named parameters.
- PL/pgSQL is now installed by default, and
-
PL/Perl and
- linkend="plpython">PL/Python have been enhanced in several ways,
- including support for Python3.
-
-
-
-
- Full support for 64-bit
-
-
-
-
- More advanced reporting queries, including additional windowing options
- (PRECEDING> and FOLLOWING>) and the ability to
- control the order in which values are fed to aggregate functions.
-
-
-
-
- New trigger features, including
- SQL-standard-compliant
- linkend="SQL-CREATETRIGGER">per-column triggers and
- conditional trigger execution.
-
-
-
-
- Deferrable
- unique constraints. Mass updates to unique keys are now possible
- without trickery.
-
-
-
-
- Exclusion constraints.
- These provide a generalized version of unique constraints, allowing
- enforcement of complex conditions.
-
-
-
-
- New and enhanced security features, including RADIUS authentication,
- LDAP authentication improvements, and a new contrib module
- passwordcheck>
- for testing password strength.
-
-
-
-
- New high-performance implementation of the
-
LISTEN>/
- linkend="SQL-NOTIFY">NOTIFY> feature.
- Pending events are now stored in a memory-based queue rather than
- a table. Also, a payload> string can be sent with each
- event, rather than transmitting just an event name as before.
-
-
-
-
- New implementation of
- VACUUM FULL>.
- This command now rewrites the entire table and indexes, rather than
- moving individual rows to compact space. It is substantially faster
- in most cases, and no longer results in index bloat.
-
-
-
-
- New contrib module
- pg_upgrade>
- to support in-place upgrades from 8.3 or 8.4 to 9.0.
-
-
-
-
- Multiple performance enhancements for specific types of queries,
- including elimination of unnecessary joins. This helps optimize some
- automatically-generated queries, such as those produced by
- object-relational mappers (ORMs).
-
-
-
-
- EXPLAIN> enhancements.
- The output is now available in JSON, XML, or YAML format, and includes
- buffer utilization and other data not previously available.
-
-
-
-
- hstore> improvements,
- including new functions and greater data capacity.
-
-
-
-
-
- The above items are explained in more detail in the sections below.
-
-
-
-
-
-
-
Migration to Version 9.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.0 contains a number of changes that selectively break backwards
- compatibility in order to support new features and code quality
- improvements. In particular, users who make extensive use of PL/pgSQL,
- Point-In-Time Recovery (PITR), or Warm Standby should test their
- applications because of slight user-visible changes in those areas.
- Observe the following incompatibilities:
-
-
-
-
Server Settings
-
-
-
-
- Remove server parameter add_missing_from>, which was
- defaulted to off for many years (Tom Lane)
-
-
-
-
- Remove server parameter regex_flavor>, which
- was defaulted to
- linkend="posix-syntax-details">advanced>
- for many years (Tom Lane)
-
-
-
-
- archive_mode>
- now only affects
- linkend="guc-archive-command">archive_command>;
- a new setting,
- linkend="guc-wal-level">wal_level>, affects
- the contents of the write-ahead log (Heikki Linnakangas)
-
-
-
-
- log_temp_files>
- now uses default file size units of kilobytes (Robert Haas)
-
-
-
-
-
-
-
-
-
Queries
-
-
-
-
- When querying a parent table,
- do not do any separate permission checks on child tables
- scanned as part of the query (Peter Eisentraut)
-
-
- The SQL standard specifies this behavior, and it is also much more
- convenient in practice than the former behavior of checking permissions
- on each child as well as the parent.
-
-
-
-
-
-
-
-
-
Data Types
-
-
-
-
- bytea> output now
- appears in hex format by default (Peter Eisentraut)
-
-
- The server parameter
- linkend="guc-bytea-output">bytea_output> can be
- used to select the traditional output format if needed for
- compatibility.
-
-
-
-
- Array input now considers only plain ASCII whitespace characters
- to be potentially ignorable; it will never ignore non-ASCII characters,
- even if they are whitespace according to some locales (Tom Lane)
-
-
- This avoids some corner cases where array values could be interpreted
- differently depending on the server's locale settings.
-
-
-
-
- Improve standards compliance of
- linkend="functions-similarto-regexp">SIMILAR TO>
- patterns and SQL-style substring()> patterns (Tom Lane)
-
-
- This includes treating ?> and {...}> as
- pattern metacharacters, while they were simple literal characters
- before; that corresponds to new features added in SQL:2008.
- Also, ^> and $> are now treated as simple
- literal characters; formerly they were treated as metacharacters,
- as if the pattern were following POSIX rather than SQL rules.
- Also, in SQL-standard substring()>, use of parentheses
- for nesting no longer interferes with capturing of a substring.
- Also, processing of bracket expressions (character classes) is
- now more standards-compliant.
-
-
-
-
- Reject negative length values in 3-parameter
- linkend="functions-string-sql">substring()>
- for bit strings, per the SQL standard (Tom Lane)
-
-
-
-
- Make date_trunc> truncate rather than round when reducing
- precision of fractional seconds (Tom Lane)
-
-
- The code always acted this way for integer-based dates/times.
- Now float-based dates/times behave similarly.
-
-
-
-
-
-
-
-
-
Object Renaming
-
-
-
-
- Tighten enforcement of column name consistency during RENAME>
- when a child table inherits the same column from multiple unrelated
- parents (KaiGai Kohei)
-
-
-
-
- No longer automatically rename indexes and index columns when the
- underlying table columns are renamed (Tom Lane)
-
-
- Administrators can still rename such indexes and columns manually.
- This change will require an update of the JDBC driver, and possibly other
- drivers, so that unique indexes are correctly recognized after a rename.
-
-
-
-
- CREATE OR REPLACE FUNCTION can no longer change
- the declared names of function parameters (Pavel Stehule)
-
-
- In order to avoid creating ambiguity in named-parameter calls, it is
- no longer allowed to change the aliases for input parameters
- in the declaration of an existing function (although names can still
- be assigned to previously unnamed parameters). You now have to
- DROP and recreate the function to do that.
-
-
-
-
-
-
-
-
-
PL/pgSQL
-
-
-
-
- PL/pgSQL now throws an error if a variable name conflicts with a
- column name used in a query (Tom Lane)
-
-
- The former behavior was to bind ambiguous names to PL/pgSQL variables
- in preference to query columns, which often resulted in surprising
- misbehavior. Throwing an error allows easy detection of ambiguous
- situations. Although it's recommended that functions encountering this
- type of error be modified to remove the conflict, the old behavior can
- be restored if necessary via the configuration parameter
- linkend="plpgsql-var-subst">plpgsql.variable_conflict>,
- or via the per-function option #variable_conflict>.
-
-
-
-
- PL/pgSQL no longer allows variable names that match certain SQL
- reserved words (Tom Lane)
-
-
- This is a consequence of aligning the PL/pgSQL parser to match the
- core SQL parser more closely. If necessary,
- variable names can be double-quoted to avoid this restriction.
-
-
-
-
- PL/pgSQL now requires columns of composite results to match the
- expected type modifier as well as base type (Pavel Stehule, Tom Lane)
-
-
- For example, if a column of the result type is declared as
- NUMERIC(30,2)>, it is no longer acceptable to return a
- NUMERIC> of some other precision in that column. Previous
- versions neglected to check the type modifier and would thus allow
- result rows that didn't actually conform to the declared restrictions.
-
-
-
-
- PL/pgSQL now treats selection into composite fields more consistently
- (Tom Lane)
-
-
- Formerly, a statement like
- SELECT ... INTO rec>.fld> FROM ...
- was treated as a scalar assignment even if the record field
- fld> was of composite type. Now it is treated as a
- record assignment, the same as when the INTO> target is a
- regular variable of composite type. So the values to be assigned to the
- field's subfields should be written as separate columns of the
- SELECT> list, not as a ROW(...)> construct as in
- previous versions.
-
-
- If you need to do this in a way that will work in both 9.0 and previous
- releases, you can write something like
- rec>.fld> := ROW(...) FROM ... .
-
-
-
-
- Remove PL/pgSQL's RENAME> declaration (Tom Lane)
-
-
- Instead of
RENAME>, use
- linkend="plpgsql-declaration-alias">ALIAS>,
- which can now create an alias for any variable, not only dollar sign
- parameter names (such as $1>) as before.
-
-
-
-
-
-
-
-
Other Incompatibilities
-
-
-
-
- Deprecate use of =>> as an operator name (Robert Haas)
-
-
- Future versions of
PostgreSQL> will probably reject
- this operator name entirely, in order to support the SQL-standard
- notation for named function parameters. For the moment, it is
- still allowed, but a warning is emitted when such an operator is
- defined.
-
-
-
-
- Remove support for platforms that don't have a working 64-bit
- integer data type (Tom Lane)
-
-
- It is believed all still-supported platforms have working 64-bit
- integer data types.
-
-
-
-
-
-
-
-
-
Changes
- Version 9.0 has an unprecedented number of new major features,
- and over 200 enhancements, improvements, new commands,
- new functions, and other changes.
-
-
-
-
Server
-
-
-
Continuous Archiving and Streaming Replication
-
- PostgreSQL's existing standby-server capability has been expanded both to
- support read-only queries on standby servers and to greatly reduce
- the lag between master and standby servers. For many users, this
- will be a useful and low-administration form of replication, either
- for high availability or for horizontal scalability.
-
-
-
-
- Allow a standby server to accept read-only queries
- (Simon Riggs, Heikki Linnakangas)
-
-
- This feature is called Hot Standby. There are new
- postgresql.conf> and recovery.conf>
- settings to control this feature, as well as extensive
- documentation.
-
-
-
-
- Allow write-ahead log (
WAL>) data to be streamed to a
- standby server (Fujii Masao, Heikki Linnakangas)
-
-
- This feature is called Streaming Replication.
- Previously
WAL> data could be sent to standby servers only
- in units of entire
WAL> files (normally 16 megabytes each).
- Streaming Replication eliminates this inefficiency and allows updates
- on the master to be propagated to standby servers with very little
- delay. There are new postgresql.conf> and
- recovery.conf> settings to control this feature, as well as
- extensive documentation.
-
-
-
-
- Add
- linkend="functions-recovery-info-table">pg_last_xlog_receive_location()>
- and pg_last_xlog_replay_location()>, which
- can be used to monitor standby server
WAL>
- activity (Simon Riggs, Fujii Masao, Heikki Linnakangas)
-
-
-
-
-
-
-
-
-
Performance
-
-
-
-
- Allow per-tablespace values to be set for sequential and random page
- cost estimates (seq_page_cost>/random_page_cost>)
- via ALTER TABLESPACE
- ... SET/RESET> (Robert Haas)
-
-
-
-
- Improve performance and reliability of EvalPlanQual rechecks in join
- queries (Tom Lane)
-
-
- UPDATE>, DELETE>, and SELECT FOR
- UPDATE/SHARE> queries that involve joins will now behave much better
- when encountering freshly-updated rows.
-
-
-
-
- Improve performance of
- linkend="SQL-TRUNCATE">TRUNCATE> when
- the table was created or truncated earlier in the same transaction
- (Tom Lane)
-
-
-
-
- Improve performance of finding inheritance child tables (Tom Lane)
-
-
-
-
-
-
-
-
-
Optimizer
-
-
-
-
- Remove unnecessary outer
- joins (Robert Haas)
-
-
- Outer joins where the inner side is unique and not referenced above
- the join are unnecessary and are therefore now removed. This will
- accelerate many automatically generated queries, such as those created
- by object-relational mappers (ORMs).
-
-
-
-
- Allow IS NOT NULL> restrictions to use indexes (Tom Lane)
-
-
- This is particularly useful for finding
- MAX()>/MIN()> values in indexes that
- contain many null values.
-
-
-
-
- Improve the optimizer's choices about when to use materialize nodes,
- and when to use sorting versus hashing for DISTINCT>
- (Tom Lane)
-
-
-
-
- Improve the optimizer's equivalence detection for expressions involving
- boolean> <>> operators (Tom Lane)
-
-
-
-
-
-
-
GEQO
-
-
-
-
- Use the same random seed every time GEQO plans a query (Andres
- Freund)
-
-
- While the Genetic Query Optimizer (GEQO) still selects
- random plans, it now always selects the same random plans for identical
- queries, thus giving more consistent performance. You can modify
- linkend="guc-geqo-seed">geqo_seed> to experiment with
- alternative plans.
-
-
-
-
- Improve GEQO plan selection (Tom Lane)
-
-
- This avoids the rare error failed to make a valid plan>,
- and should also improve planning speed.
-
-
-
-
-
-
-
-
-
Optimizer Statistics
-
-
-
-
- Improve ANALYZE>
- to support inheritance-tree statistics (Tom Lane)
-
-
- This is particularly useful for partitioned tables. However,
- autovacuum does not yet automatically re-analyze parent tables
- when child tables change.
-
-
-
-
- Improve autovacuum's
- detection of when re-analyze is necessary (Tom Lane)
-
-
-
-
- Improve optimizer's estimation for greater/less-than comparisons
- (Tom Lane)
-
-
- When looking up statistics for greater/less-than comparisons,
- if the comparison value is in the first or last histogram bucket,
- use an index (if available) to fetch the current actual column
- minimum or maximum. This greatly improves the accuracy of estimates
- for comparison values near the ends of the data range, particularly
- if the range is constantly changing due to addition of new data.
-
-
-
-
- Allow setting of number-of-distinct-values statistics using
- linkend="SQL-ALTERTABLE">ALTER TABLE>
- (Robert Haas)
-
-
- This allows users to override the estimated number or percentage of
- distinct values for a column. This statistic is normally computed by
- ANALYZE>, but the estimate can be poor, especially on tables
- with very large numbers of rows.
-
-
-
-
-
-
-
-
-
Authentication
-
-
-
-
- Add support for
- linkend="auth-radius">
RADIUS> (Remote
- Authentication Dial In User Service) authentication
- (Magnus Hagander)
-
-
-
-
- (Lightweight Directory Access Protocol) authentication
- to operate in search/bind> mode
- (Robert Fleming, Magnus Hagander)
-
-
- This allows the user to be looked up first, then the system uses
- the
DN> (Distinguished Name) returned for that user.
-
-
-
-
- Add
- linkend="auth-pg-hba-conf">samehost>
- and samenet> designations to
- pg_hba.conf> (Stef Walter)
-
-
- These match the server's
IP> address and subnet address
- respectively.
-
-
-
-
- Pass trusted SSL root certificate names to the client so the client
- can return an appropriate client certificate (Craig Ringer)
-
-
-
-
-
-
-
-
-
Monitoring
-
-
-
-
- Add the ability for clients to set an
- linkend="libpq-connect-application-name">application
- name, which is displayed in
- pg_stat_activity> (Dave Page)
-
-
- This allows administrators to characterize database traffic
- and troubleshoot problems by source application.
-
-
-
-
- Add a SQLSTATE option (
%e>) to
- linkend="guc-log-line-prefix">log_line_prefix>
- (Guillaume Smet)
-
-
- This allows users to compile statistics on errors and messages
- by error code number.
-
-
-
-
-
- Write to the Windows event log in
UTF16> encoding
- (Itagaki Takahiro)
-
-
- Now there is true multilingual support for PostgreSQL log messages
- on Windows.
-
-
-
-
-
-
-
-
-
Statistics Counters
-
-
-
-
- Add
- linkend="monitoring-stats-funcs-table">pg_stat_reset_shared('bgwriter')>
- to reset the cluster-wide shared statistics for the
- background writer (Greg Smith)
-
-
-
-
- Add
- linkend="monitoring-stats-funcs-table">pg_stat_reset_single_table_counters()>
- and pg_stat_reset_single_function_counters()>
- to allow resetting the statistics counters for individual
- tables and functions (Magnus Hagander)
-
-
-
-
-
-
-
-
-
Server Settings
-
-
-
-
- Allow setting of configuration parameters based on
- linkend="sql-alterrole">database/role combinations
- (Alvaro Herrera)
-
-
- Previously only per-database and per-role settings were possible,
- not combinations. All role and database settings are now stored
- in the new pg_db_role_setting> system catalog. A new
-
psql> command \drds> shows these settings.
- The legacy system views pg_roles>,
- pg_shadow>, and pg_user>
- do not show combination settings, and therefore no longer
- completely represent the configuration for a user or database.
-
-
-
-
- Add server parameter
- linkend="guc-bonjour">bonjour>, which
- controls whether a Bonjour-enabled server advertises
- itself via
Bonjour> (Tom Lane)
-
-
- The default is off, meaning it does not advertise. This allows
- packagers to distribute Bonjour-enabled builds without worrying
- that individual users might not want the feature.
-
-
-
-
- Add server parameter
- linkend="guc-enable-material">enable_material>, which
- controls the use of materialize nodes in the optimizer
- (Robert Haas)
-
-
- The default is on. When off, the optimizer will not add
- materialize nodes purely for performance reasons, though they
- will still be used when necessary for correctness.
-
-
-
-
- Change server parameter
- linkend="guc-log-temp-files">log_temp_files> to
- use default file size units of kilobytes (Robert Haas)
-
-
- Previously this setting was interpreted in bytes if no units were
- specified.
-
-
-
-
- Log changes of parameter values when postgresql.conf> is
- reloaded (Peter Eisentraut)
-
-
- This lets administrators and security staff audit changes of database
- settings, and is also very convenient for checking the effects of
- postgresql.conf> edits.
-
-
-
-
- Properly enforce superuser permissions for custom server parameters
- (Tom Lane)
-
-
- Non-superusers can no longer issue ALTER
- ROLE>/DATABASE SET> for parameters that are not currently
- known to the server. This allows the server to correctly check that
- superuser-only parameters are only set by superusers. Previously,
- the SET> would be allowed and then ignored at session start,
- making superuser-only custom parameters much less useful than they
- should be.
-
-
-
-
-
-
-
-
-
-
-
Queries
-
-
-
-
- Perform SELECT
- FOR UPDATE>/SHARE> processing after
- applying LIMIT>, so the number of rows returned
- is always predictable (Tom Lane)
-
-
- Previously, changes made by concurrent transactions could cause a
- SELECT FOR UPDATE> to unexpectedly return fewer rows than
- specified by its LIMIT>. FOR UPDATE> in combination
- with ORDER BY> can still produce surprising results, but that
- can be corrected by placing FOR UPDATE> in a subquery.
-
-
-
-
- Allow mixing of traditional and SQL-standard
- linkend="SQL-LIMIT">LIMIT>/OFFSET>
- syntax (Tom Lane)
-
-
-
-
- Extend the supported frame options in
- linkend="SQL-WINDOW">window functions (Hitoshi
- Harada)
-
-
- Frames can now start with CURRENT ROW>, and the ROWS
- n> PRECEDING>/FOLLOWING> options are now
- supported.
-
-
-
-
- Make SELECT INTO> and CREATE TABLE AS> return
- row counts to the client in their command tags
- (Boszormenyi Zoltan)
-
-
- This can save an entire round-trip to the client, allowing result counts
- and pagination to be calculated without an additional
- COUNT query.
-
-
-
-
-
-
-
Unicode Strings
-
-
-
-
- Support Unicode surrogate pairs (dual 16-bit representation) in
-
- linkend="sql-syntax-strings-uescape">U&>
- strings and identifiers (Peter Eisentraut)
-
-
-
-
- Support Unicode escapes in
- linkend="sql-syntax-strings-escape">E'...'>
- strings (Marko Kreen)
-
-
-
-
-
-
-
-
-
-
-
Object Manipulation
-
-
-
-
- Speed up CREATE
- DATABASE> by deferring flushes to disk (Andres
- Freund, Greg Stark)
-
-
-
-
- Allow comments on
- columns of tables, views, and composite types only, not other
- relation types such as indexes and
TOAST> tables (Tom Lane)
-
-
-
-
- Allow the creation of
- linkend="SQL-CREATETYPE-enum">enumerated types containing
- no values (Bruce Momjian)
-
-
-
-
- Let values of columns having storage type MAIN> remain on
- the main heap page unless the row cannot fit on a page (Kevin Grittner)
-
-
- Previously
MAIN> values were forced out to TOAST>
- tables until the row size was less than one-quarter of the page size.
-
-
-
-
-
-
-
ALTER TABLE>
-
-
-
-
- Implement IF EXISTS> for ALTER TABLE DROP COLUMN>
- and ALTER TABLE DROP CONSTRAINT > (Andres Freund)
-
-
-
-
- Allow ALTER TABLE> commands that rewrite tables to skip
-
WAL> logging (Itagaki Takahiro)
-
-
- Such operations either produce a new copy of the table or are rolled
- back, so
WAL> archiving can be skipped, unless running in
- continuous archiving mode. This reduces I/O overhead and improves
- performance.
-
-
-
-
- Fix failure of ALTER TABLE table> ADD COLUMN
- col> serial when done by non-owner of table
- (Tom Lane)
-
-
-
-
-
-
-
-
-
CREATE TABLE>
-
-
-
-
- Add support for copying COMMENTS> and STORAGE>
- settings in CREATE TABLE ... LIKE> commands
- (Itagaki Takahiro)
-
-
-
-
- Add a shortcut for copying all properties in CREATE
- TABLE ... LIKE> commands (Itagaki Takahiro)
-
-
-
-
- Add the SQL-standard
- CREATE TABLE ... OF type> command
- (Peter Eisentraut)
-
-
- This allows creation of a table that matches an existing composite
- type. Additional constraints and defaults can be specified in the
- command.
-
-
-
-
-
-
-
-
-
Constraints
-
-
-
-
- Add deferrable
- unique constraints (Dean Rasheed)
-
-
- This allows mass updates, such as
- UPDATE tab SET col = col + 1>,
- to work reliably
- on columns that have unique indexes or are marked as primary keys.
- If the constraint is specified as DEFERRABLE> it will be
- checked at the end of the statement, rather than after each row is
- updated. The constraint check can also be deferred until the end of the
- current transaction, allowing such updates to be spread over multiple
- SQL commands.
-
-
-
-
- Add
- exclusion constraints
- (Jeff Davis)
-
-
- Exclusion constraints generalize uniqueness constraints by allowing
- arbitrary comparison operators, not just equality. They are created
- with the CREATE
- TABLE CONSTRAINT ... EXCLUDE> clause.
- The most common use of exclusion constraints is to specify that column
- entries must not overlap, rather than simply not be equal. This is
- useful for time periods and other ranges, as well as arrays.
- This feature enhances checking of data integrity for many
- calendaring, time-management, and scientific applications.
-
-
-
-
- Improve uniqueness-constraint violation error messages to
- report the values causing the failure (Itagaki Takahiro)
-
-
- For example, a uniqueness constraint violation might now report
- Key (x)=(2) already exists>.
-
-
-
-
-
-
-
-
-
Object Permissions
-
-
-
-
- Add the ability to make mass permission changes across a whole
- schema using the new
- linkend="SQL-GRANT">GRANT>/REVOKE
- IN SCHEMA> clause (Petr Jelinek)
-
-
- This simplifies management of object permissions
- and makes it easier to utilize database roles for application
- data security.
-
-
-
-
- Add ALTER
- DEFAULT PRIVILEGES> command to control privileges
- of objects created later (Petr Jelinek)
-
-
- This greatly simplifies the assignment of object privileges in a
- complex database application. Default privileges can be set for
- tables, views, sequences, and functions. Defaults may be assigned on a
- per-schema basis, or database-wide.
-
-
-
-
- Add the ability to control large object (BLOB) permissions with
- GRANT>/REVOKE> (KaiGai Kohei)
-
-
- Formerly, any database user could read or modify any large object.
- Read and write permissions can now be granted and revoked per
- large object, and the ownership of large objects is tracked.
-
-
-
-
-
-
-
-
-
-
-
Utility Operations
-
-
-
-
- Make
LISTEN>/
- linkend="SQL-NOTIFY">NOTIFY> store pending events
- in a memory queue, rather than in a system table (Joachim
- Wieland)
-
-
- This substantially improves performance, while retaining the existing
- features of transactional support and guaranteed delivery.
-
-
-
-
- Allow NOTIFY>
- to pass an optional payload> string to listeners
- (Joachim Wieland)
-
-
- This greatly improves the usefulness of
- LISTEN>/NOTIFY> as a
- general-purpose event queue system.
-
-
-
-
- Allow CLUSTER>
- on all per-database system catalogs (Tom Lane)
-
-
- Shared catalogs still cannot be clustered.
-
-
-
-
-
-
-
COPY>
-
-
-
-
- Accept COPY ... CSV FORCE QUOTE *>
- (Itagaki Takahiro)
-
-
- Now *> can be used as shorthand for all columns>
- in the FORCE QUOTE> clause.
-
-
-
-
- Add new COPY> syntax that allows options to be
- specified inside parentheses (Robert Haas, Emmanuel Cecchet)
-
-
- This allows greater flexibility for future COPY> options.
- The old syntax is still supported, but only for pre-existing options.
-
-
-
-
-
-
-
-
-
EXPLAIN>
-
-
-
-
- Allow
EXPLAIN> to output in XML>,
-
JSON>, or YAML> format (Robert Haas, Greg
- Sabino Mullane)
-
-
- The new output formats are easily machine-readable, supporting the
- development of new tools for analysis of EXPLAIN> output.
-
-
-
-
- Add new BUFFERS> option to report query
- buffer usage during EXPLAIN ANALYZE> (Itagaki Takahiro)
-
-
- This allows better query profiling for individual queries.
- Buffer usage is no longer reported in the output for
- linkend="runtime-config-statistics-monitor">log_statement_stats
- and related settings.
-
-
-
-
- Add hash usage information to EXPLAIN> output (Robert
- Haas)
-
-
-
-
- Add new EXPLAIN> syntax that allows options to be
- specified inside parentheses (Robert Haas)
-
-
- This allows greater flexibility for future EXPLAIN> options.
- The old syntax is still supported, but only for pre-existing options.
-
-
-
-
-
-
-
-
-
VACUUM>
-
-
-
-
- Change VACUUM FULL> to rewrite the entire table and
- rebuild its indexes, rather than moving individual rows around to
- compact space (Itagaki Takahiro, Tom Lane)
-
-
- The previous method was usually slower and caused index bloat.
- Note that the new method will use more disk space transiently
- during VACUUM FULL>; potentially as much as twice
- the space normally occupied by the table and its indexes.
-
-
-
-
-
- Add new VACUUM> syntax that allows options to be
- specified inside parentheses (Itagaki Takahiro)
-
-
- This allows greater flexibility for future VACUUM> options.
- The old syntax is still supported, but only for pre-existing options.
-
-
-
-
-
-
-
-
-
Indexes
-
-
-
-
- Allow an index to be named automatically by omitting the index name in
- CREATE INDEX>
- (Tom Lane)
-
-
-
-
- By default, multicolumn indexes are now named after all their columns;
- and index expression columns are now named based on their expressions
- (Tom Lane)
-
-
-
-
- Reindexing shared system catalogs is now fully transactional
- and crash-safe (Tom Lane)
-
-
- Formerly, reindexing a shared index was only allowed in standalone
- mode, and a crash during the operation could leave the index in
- worse condition than it was before.
-
-
-
-
- Add
point_ops> operator class for GiST>
- (Teodor Sigaev)
-
-
- This feature permits
GiST> indexing of point>
- columns. The index can be used for several types of queries
- such as point> <@> polygon>
- (point is in polygon). This should make many
-
PostGIS> queries faster.
-
-
-
-
- Use red-black binary trees for
GIN> index creation
- (Teodor Sigaev)
-
-
- Red-black trees are self-balancing. This avoids slowdowns in
- cases where the input is in nonrandom order.
-
-
-
-
-
-
-
-
-
-
-
-
Data Types
-
-
-
-
- Allow bytea> values
- to be written in hex notation (Peter Eisentraut)
-
-
- The server parameter
- linkend="guc-bytea-output">bytea_output> controls
- whether hex or traditional format is used for bytea>
- output. Libpq's PQescapeByteaConn()> function automatically
- uses the hex format when connected to
PostgreSQL> 9.0
- or newer servers. However, pre-9.0 libpq versions will not
- correctly process hex format from newer servers.
-
-
- The new hex format will be directly compatible with more applications
- that use binary data, allowing them to store and retrieve it without
- extra conversion. It is also significantly faster to read and write
- than the traditional format.
-
-
-
-
- Allow server parameter
- linkend="guc-extra-float-digits">extra_float_digits
- to be increased to 3> (Tom Lane)
-
-
- The previous maximum extra_float_digits> setting was
- 2>. There are cases where 3 digits are needed to dump and
- restore
float4> values exactly. pg_dump> will
- now use the setting of 3 when dumping from a server that allows it.
-
-
-
-
- Tighten input checking for int2vector> values (Caleb
- Welton)
-
-
-
-
-
-
-
Full Text Search
-
-
-
-
- Add prefix support in synonym> dictionaries
- (Teodor Sigaev)
-
-
-
-
- Add filtering> dictionaries (Teodor Sigaev)
-
-
- Filtering dictionaries allow tokens to be modified then passed to
- subsequent dictionaries.
-
-
-
-
- Allow underscores in email-address tokens (Teodor Sigaev)
-
-
-
-
- Use more standards-compliant rules for parsing
URL> tokens
- (Tom Lane)
-
-
-
-
-
-
-
-
-
-
-
Functions
-
-
-
-
- Allow function calls to supply parameter names and match them to named
- parameters in the function definition (Pavel Stehule)
-
-
- For example, if a function is defined to take parameters a>
- and b>, it can be called with func(a := 7, b
- := 12)> or func(b := 12, a := 7)>.
-
-
-
-
- Support locale-specific
- linkend="functions-posix-regexp">regular expression
- processing with
UTF-8> server encoding (Tom Lane)
-
-
- Locale-specific regular expression functionality includes
- case-insensitive matching and locale-specific character classes.
- Previously, these features worked correctly for non-
ASCII>
- characters only if the database used a single-byte server encoding (such
- as LATIN1). They will still misbehave in multi-byte encodings other
-
-
-
-
- Add support for scientific notation in
- linkend="functions-formatting">to_char()>
- (EEEE>
- specification)
- (Pavel Stehule, Brendan Jurd)
-
-
-
-
- Make
to_char()> honor
- linkend="functions-formatting-datetimemod-table">FM>
- (fill mode) in Y>, YY>, and
- YYY> specifications (Bruce Momjian, Tom Lane)
-
-
- It was already honored by YYYY>.
-
-
-
-
- Fix to_char()> to output localized numeric and monetary
- strings in the correct encoding on
Windows>
- (Hiroshi Inoue, Itagaki Takahiro, Bruce Momjian)
-
-
-
-
- Correct calculations of
- linkend="functions-geometry-op-table">overlaps
- and contains
operations for polygons (Teodor Sigaev)
-
-
- The polygon &&> (overlaps) operator formerly just
- checked to see if the two polygons' bounding boxes overlapped. It now
- does a more correct check. The polygon @>> and
- <@> (contains/contained by) operators formerly checked
- to see if one polygon's vertexes were all contained in the other;
- this can wrongly report true> for some non-convex polygons.
- Now they check that all line segments of one polygon are contained in
- the other.
-
-
-
-
-
-
-
Aggregates
-
-
-
-
- Allow aggregate functions to use
- linkend="syntax-aggregates">ORDER BY> (Andrew Gierth)
-
-
- For example, this is now supported: array_agg(a ORDER BY
- b)>. This is useful with aggregates for which the order of input
- values is significant, and eliminates the need to use a nonstandard
- subquery to determine the ordering.
-
-
-
-
- Multi-argument aggregate functions can now use DISTINCT>
- (Andrew Gierth)
-
-
-
-
- Add the
- linkend="functions-aggregate-table">string_agg()>
- aggregate function to combine values into a single
- string (Pavel Stehule)
-
-
-
-
- Aggregate functions that are called with DISTINCT> are
- now passed NULL values if the aggregate transition function is
- not marked as STRICT> (Andrew Gierth)
-
-
- For example, agg(DISTINCT x)> might pass a NULL x>
- value to agg()>. This is more consistent with the behavior
- in non-DISTINCT> cases.
-
-
-
-
-
-
-
-
-
Bit Strings
-
-
-
-
- Add
- linkend="functions-binarystring-other">get_bit()>
- and set_bit()> functions for bit>
- strings, mirroring those for bytea> (Leonardo
- F)
-
-
-
-
- Implement
- linkend="functions-string-sql">OVERLAY()>
- (replace) for bit> strings and bytea>
- (Leonardo F)
-
-
-
-
-
-
-
-
-
Object Information Functions
-
-
-
-
- Add
- linkend="functions-admin-dbsize">pg_table_size()>
- and pg_indexes_size()> to provide a more
- user-friendly interface to the pg_relation_size()>
- function (Bernd Helmle)
-
-
-
-
- Add
- linkend="functions-info-access-table">has_sequence_privilege()>
- for sequence permission checking (Abhijit Menon-Sen)
-
-
-
-
- Update the information_schema
- views to conform to SQL:2008
- (Peter Eisentraut)
-
-
-
-
- Make the information_schema> views correctly display maximum
- octet lengths for char> and varchar> columns (Peter
- Eisentraut)
-
-
-
-
- Speed up information_schema> privilege views
- (Joachim Wieland)
-
-
-
-
-
-
-
-
-
Function and Trigger Creation
-
-
-
-
- Support execution of anonymous code blocks using the
- linkend="SQL-DO">DO> statement
- (Petr Jelinek, Joshua Tolley, Hannu Valtonen)
-
-
- This allows execution of server-side code without the need to create
- and delete a temporary function definition. Code can be executed in
- any language for which the user has permissions to define a function.
-
-
-
-
- Implement SQL-standard-compliant
- linkend="SQL-CREATETRIGGER">per-column triggers
- (Itagaki Takahiro)
-
-
- Such triggers are fired only when the specified column(s) are affected
- by the query, e.g. appear in an UPDATE>'s SET>
- list.
-
-
-
-
- Add the
WHEN> clause to
- linkend="SQL-CREATETRIGGER">CREATE TRIGGER>
- to allow control over whether a trigger is fired (Itagaki
- Takahiro)
-
-
- While the same type of check can always be performed inside the
- trigger, doing it in an external WHEN> clause can have
- performance benefits.
-
-
-
-
-
-
-
-
-
-
-
Server-Side Languages
-
-
-
-
- Add the
OR REPLACE> clause to
- linkend="SQL-CREATELANGUAGE">CREATE LANGUAGE>
- (Tom Lane)
-
-
- This is helpful to optionally install a language if it does not
- already exist, and is particularly helpful now that PL/pgSQL is
- installed by default.
-
-
-
-
-
-
-
PL/pgSQL Server-Side
- Language
-
-
-
-
- Install PL/pgSQL by default (Bruce Momjian)
-
-
- The language can still be removed from a particular database if the
- administrator has security or performance concerns about making it
- available.
-
-
-
-
- Improve handling of cases where PL/pgSQL variable names conflict with
- identifiers used in queries within a function
- (Tom Lane)
-
-
- The default behavior is now to throw an error when there is a conflict,
- so as to avoid surprising behaviors. This can be modified, via the
- configuration parameter
- linkend="plpgsql-var-subst">plpgsql.variable_conflict>
- or the per-function option #variable_conflict>, to allow
- either the variable or the query-supplied column to be used. In any
- case PL/pgSQL will no longer attempt to substitute variables in places
- where they would not be syntactically valid.
-
-
-
-
- Make PL/pgSQL use the main lexer, rather than its own version
- (Tom Lane)
-
-
- This ensures accurate tracking of the main system's behavior for details
- such as string escaping. Some user-visible details, such as the set
- of keywords considered reserved in PL/pgSQL, have changed in
- consequence.
-
-
-
-
- Avoid throwing an unnecessary error for an invalid record reference
- (Tom Lane)
-
-
- An error is now thrown only if the reference is actually fetched,
- rather than whenever the enclosing expression is reached. For
- example, many people have tried to do this in triggers:
-if TG_OP = 'INSERT' and NEW.col1 = ... then
-
- This will now actually work as expected.
-
-
-
-
- Improve PL/pgSQL's ability to handle row types with dropped columns
- (Pavel Stehule)
-
-
-
-
- Allow input parameters to be assigned values within
- PL/pgSQL functions (Steve Prentice)
-
-
- Formerly, input parameters were treated as being declared
- CONST>, so the function's code could not change their
- values. This restriction has been removed to simplify
- porting of functions from other DBMSes that do not impose the
- equivalent restriction. An input parameter now acts like a local
- variable initialized to the passed-in value.
-
-
-
-
- Improve error location reporting in PL/pgSQL (Tom Lane)
-
-
-
-
- Add count> and ALL> options to MOVE
- FORWARD>/BACKWARD> in PL/pgSQL (Pavel Stehule)
-
-
-
-
- Allow PL/pgSQL's WHERE CURRENT OF> to use a cursor
- variable (Tom Lane)
-
-
-
-
- Allow PL/pgSQL's OPEN cursor> FOR EXECUTE> to
- use parameters (Pavel Stehule, Itagaki Takahiro)
-
-
- This is accomplished with a new USING> clause.
-
-
-
-
-
-
-
-
-
PL/Perl Server-Side Language
-
-
-
-
- Add new PL/Perl functions:
- linkend="plperl-utility-functions">quote_literal()>,
- quote_nullable()>, quote_ident()>,
- encode_bytea()>, decode_bytea()>,
- looks_like_number()>,
- encode_array_literal()>,
- encode_array_constructor()> (Tim Bunce)
-
-
-
-
- Add server parameter
- linkend="guc-plperl-on-init">plperl.on_init> to
- specify a PL/Perl initialization function (Tim
- Bunce)
-
-
-
- linkend="guc-plperl-on-plperl-init">plperl.on_plperl_init>
- and
- linkend="guc-plperl-on-plperl-init">plperl.on_plperlu_init>
- are also available for initialization that is specific to the trusted
- or untrusted language respectively.
-
-
-
-
- Support END> blocks in PL/Perl (Tim Bunce)
-
-
- END> blocks do not currently allow database access.
-
-
-
-
- Allow use strict> in PL/Perl (Tim Bunce)
-
-
- Perl strict> checks can also be globally enabled with the
- new server parameter
- linkend="guc-plperl-use-strict">plperl.use_strict>.
-
-
-
-
- Allow require> in PL/Perl (Tim Bunce)
-
-
- This basically tests to see if the module is loaded, and if not,
- generates an error. It will not allow loading of modules that
- the administrator has not preloaded via the initialization parameters.
-
-
-
-
- Allow use feature> in PL/Perl if Perl version 5.10 or
- later is used (Tim Bunce)
-
-
-
-
- Verify that PL/Perl return values are valid in the server encoding
- (Andrew Dunstan)
-
-
-
-
-
-
-
-
-
PL/Python Server-Side Language
-
-
-
-
- Add Unicode support in PL/Python (Peter Eisentraut)
-
-
- Strings are automatically converted from/to the server encoding as
- necessary.
-
-
-
-
- Improve bytea> support in PL/Python (Caleb Welton)
-
-
- Bytea> values passed into PL/Python are now represented as
- binary, rather than the PostgreSQL bytea> text format.
- Bytea> values containing null bytes are now also output
- properly from PL/Python. Passing of boolean, integer, and float
- values was also improved.
-
-
-
-
- Support arrays as parameters and
- return values in PL/Python (Peter Eisentraut)
-
-
-
-
- Improve mapping of SQL domains to Python types (Peter Eisentraut)
-
-
-
-
- Add
Python> 3 support to PL/Python (Peter Eisentraut)
-
-
- The new server-side language is called
- linkend="plpython-python23">plpython3u>. This
- cannot be used in the same session with the
-
Python> 2 server-side language.
-
-
-
-
- Improve error location and exception reporting in PL/Python (Peter Eisentraut)
-
-
-
-
-
-
-
-
-
-
-
Client Applications
-
-
-
-
- Add an
--analyze-only> option to
- linkend="APP-VACUUMDB">vacuumdb>, to analyze without
- vacuuming (Bruce Momjian)
-
-
-
-
-
-
-
-
-
-
- Add support for quoting/escaping the values of
psql>
- variables as SQL strings or
- identifiers (Pavel Stehule, Robert Haas)
-
-
- For example, :'var'> will produce the value of
- var> quoted and properly escaped as a literal string, while
- :"var"> will produce its value quoted and escaped as an
- identifier.
-
-
-
-
- Ignore a leading UTF-8-encoded Unicode byte-order marker in
- script files read by
psql> (Itagaki Takahiro)
-
-
- This is enabled when the client encoding is
UTF-8>.
- It improves compatibility with certain editors, mostly on Windows,
- that insist on inserting such markers.
-
-
-
-
- Fix
psql --file -> to properly honor
- linkend="R1-APP-PSQL-3">--single-transaction>
- (Bruce Momjian)
-
-
-
-
- Avoid overwriting of
psql>'s command-line history when
- two
psql> sessions are run concurrently (Tom Lane)
-
-
-
-
- Improve
psql>'s tab completion support (Itagaki
- Takahiro)
-
-
-
-
- Show \timing> output when it is enabled, regardless of
- quiet> mode (Peter Eisentraut)
-
-
-
-
-
-
-
-
-
-
- Improve display of wrapped columns in
psql> (Roger
- Leigh)
-
-
- This behavior is now the default.
- The previous formatting is available by using \pset linestyle
- old-ascii>.
-
-
-
-
- Allow
psql> to use fancy Unicode line-drawing
- characters via \pset linestyle unicode> (Roger Leigh)
-
-
-
-
-
-
-
-
-
psql>
- linkend="APP-PSQL-meta-commands">\d>
- Commands
-
-
-
-
- Make \d> show child tables that inherit from the specified
- parent (Damien Clochard)
-
-
- \d> shows only the number of child tables, while
- \d+> shows the names of all child tables.
-
-
-
-
- Show definitions of index columns in \d index_name>
- (Khee Chin)
-
-
- The definition is useful for expression indexes.
-
-
-
-
- Show a view's defining query only in
- \d+>, not in \d> (Peter Eisentraut)
-
-
- Always including the query was deemed overly verbose.
-
-
-
-
-
-
-
-
-
-
-
-
-
- Make
pg_dump>/pg_restore>
- --clean>
- also remove large objects (Itagaki Takahiro)
-
-
-
-
- Fix
pg_dump> to properly dump large objects when
- standard_conforming_strings> is enabled (Tom Lane)
-
-
- The previous coding could fail when dumping to an archive file
- and then generating script output from
pg_restore>.
-
-
-
-
-
pg_restore> now emits large-object data in hex format
- when generating script output (Tom Lane)
-
-
- This could cause compatibility problems if the script is then
- loaded into a pre-9.0 server. To work around that, restore
- directly to the server, instead.
-
-
-
-
- Allow
pg_dump> to dump comments attached to columns
- of composite types (Taro Minowa (Higepon))
-
-
-
-
- Make
pg_dump>
- linkend="pg-dump-options">--verbose>
- output the
pg_dump> and server versions
- in text output mode (Jim Cox, Tom Lane)
-
-
- These were already provided in custom output mode.
-
-
-
-
-
pg_restore> now complains if any command-line arguments
- remain after the switches and optional file name (Tom Lane)
-
-
- Previously, it silently ignored any such arguments.
-
-
-
-
-
-
-
-
-
- linkend="app-pg-ctl">
pg_ctl>
-
-
-
-
- Allow
pg_ctl> to be used safely to start the
-
postmaster> during a system reboot (Tom Lane)
-
-
- Previously,
pg_ctl>'s parent process could have been
- mistakenly identified as a running
postmaster> based on
- a stale
postmaster> lock file, resulting in a transient
- failure to start the database.
-
-
-
-
- Give
pg_ctl> the ability to initialize the database
- (by invoking
initdb>) (Zdenek Kotala)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Add new
libpq> functions
-
- linkend="libpq-connect">PQconnectdbParams()>
- and PQconnectStartParams()> (Guillaume
- Lelarge)
-
-
- These functions are similar to PQconnectdb()> and
- PQconnectStart()> except that they accept a null-terminated
- array of connection options, rather than requiring all options to
- be provided in a single string.
-
-
-
-
- Add
libpq> functions
- linkend="libpq-exec-escape-string">PQescapeLiteral()>
- and PQescapeIdentifier()> (Robert Haas)
-
-
- These functions return appropriately quoted and escaped SQL string
- literals and identifiers. The caller is not required to pre-allocate
- the string result, as is required by PQescapeStringConn()>.
-
-
-
-
- Add support for a per-user service file (
- linkend="libpq-pgservice">.pg_service.conf>),
- which is checked before the site-wide service file
- (Peter Eisentraut)
-
-
-
-
- Properly report an error if the specified
libpq> service
- cannot be found (Peter Eisentraut)
-
-
-
-
- Add TCP keepalive settings
- in libpq (Tollef Fog Heen, Fujii Masao, Robert Haas)
-
-
- Keepalive settings were already supported on the server end of
- TCP connections.
-
-
-
-
- Avoid extra system calls to block and unblock SIGPIPE>
- in
libpq>, on platforms that offer alternative methods
- (Jeremy Kerr)
-
-
-
-
- When a .pgpass>-supplied
- password fails, mention where the password came from in the error
- message (Bruce Momjian)
-
-
-
-
- Load all SSL certificates given in the client certificate file
- (Tom Lane)
-
-
- This improves support for indirectly-signed SSL certificates.
-
-
-
-
-
-
-
-
-
-
-
-
- (SQL Descriptor Area) support to
ecpg>
- (Boszormenyi Zoltan)
-
-
-
-
- Add the DESCRIBE>
- [
OUTPUT> ] statement to ecpg>
- (Boszormenyi Zoltan)
-
-
-
-
- Add an ECPGtransactionStatus
- function to return the current transaction status (Bernd Helmle)
-
-
-
-
- Add the
string> data type in ecpg>
- Informix-compatibility mode (Boszormenyi Zoltan)
-
-
-
-
- Allow
ecpg> to use new> and old>
- variable names without restriction (Michael Meskes)
-
-
-
-
- Allow
ecpg> to use variable names in
- free()> (Michael Meskes)
-
-
-
-
- Make ecpg_dynamic_type()> return zero for non-SQL3 data
- types (Michael Meskes)
-
-
- Previously it returned the negative of the data type OID.
- This could be confused with valid type OIDs, however.
-
-
-
-
- Support long long> types on platforms that already have 64-bit
- long> (Michael Meskes)
-
-
-
-
-
-
-
-
-
-
- Add out-of-scope cursor support in
ecpg>'s native mode
- (Boszormenyi Zoltan)
-
-
- This allows DECLARE> to use variables that are not in
- scope when OPEN> is called. This facility already existed
- in
ecpg>'s Informix-compatibility mode.
-
-
-
-
- Allow dynamic cursor names in
ecpg> (Boszormenyi Zoltan)
-
-
-
-
- Allow
ecpg> to use noise words FROM> and
- IN> in FETCH> and MOVE> (Boszormenyi
- Zoltan)
-
-
-
-
-
-
-
-
-
-
-
-
-
Build Options
-
-
-
-
- Enable client thread safety by default (Bruce Momjian)
-
-
- The thread-safety option can be disabled with
- linkend="configure">configure>
- --disable-thread-safety>.
-
-
-
-
- Add support for controlling the Linux out-of-memory killer
- (Alex Hunsaker, Tom Lane)
-
-
- Now that /proc/self/oom_adj> allows disabling
- of the
Linux> out-of-memory (OOM>)
- killer, it's recommendable to disable OOM kills for the postmaster.
- It may then be desirable to re-enable OOM kills for the postmaster's
- child processes. The new compile-time option
- linkend="linux-memory-overcommit">LINUX_OOM_ADJ>
- allows the killer to be reactivated for child processes.
-
-
-
-
-
-
-
Makefiles
-
-
-
-
- New
Makefile> targets
- linkend="build">world>,
- install-world>, and installcheck-world>
- (Andrew Dunstan)
-
-
- These are similar to the existing all>, install>,
- and installcheck> targets, but they also build the
-
HTML> documentation, build and test contrib>,
- and test server-side languages and
ecpg>.
-
-
-
-
- Add data and documentation installation location control to
-
PGXS> Makefiles (Mark Cave-Ayland)
-
-
-
-
- Add Makefile rules to build the
PostgreSQL> documentation
- as a single
HTML> file or as a single plain-text file
- (Peter Eisentraut, Bruce Momjian)
-
-
-
-
-
-
-
-
-
Windows
-
-
-
-
- Support compiling on
- linkend="install-windows">64-bit
-
Windows> and running in 64-bit
- mode (Tsutomu Yamada, Magnus Hagander)
-
-
- This allows for large shared memory sizes on
Windows>.
-
-
-
-
- Support server builds using
- linkend="install-windows-full">
Visual Studio
- 2008> (Magnus Hagander)
-
-
-
-
-
-
-
-
-
-
-
Source Code
-
-
-
-
- Distribute prebuilt documentation in a subdirectory tree, rather than
- as tar archive files inside the distribution tarball
- (Peter Eisentraut)
-
-
- For example, the prebuilt
HTML> documentation is now in
- doc/src/sgml/html/>; the manual pages are packaged
- similarly.
-
-
-
-
- Make the server's lexer reentrant (Tom Lane)
-
-
- This was needed for use of the lexer by PL/pgSQL.
-
-
-
-
- Improve speed of memory allocation (Tom Lane, Greg Stark)
-
-
-
-
- User-defined constraint triggers now have entries in
- pg_constraint> as well as pg_trigger>
- (Tom Lane)
-
-
- Because of this change,
- pg_constraint>.pgconstrname> is now
- redundant and has been removed.
-
-
-
-
- Add system catalog columns
- pg_constraint>.conindid> and
- pg_trigger>.tgconstrindid>
- to better document the use of indexes for constraint
- enforcement (Tom Lane)
-
-
-
-
- Allow multiple conditions to be communicated to backends using a single
- operating system signal (Fujii Masao)
-
-
- This allows new features to be added without a platform-specific
- constraint on the number of signal conditions.
-
-
-
-
- Improve source code test coverage, including contrib>, PL/Python,
- and PL/Perl (Peter Eisentraut, Andrew Dunstan)
-
-
-
-
- Remove the use of flat files for system table bootstrapping
- (Tom Lane, Alvaro Herrera)
-
-
- This improves performance when using many roles or
- databases, and eliminates some possible failure conditions.
-
-
-
-
- Automatically generate the initial contents of
- pg_attribute> for bootstrapped> catalogs
- (John Naylor)
-
-
- This greatly simplifies changes to these catalogs.
-
-
-
-
- Split the processing of
- INSERT>/UPDATE>/DELETE> operations out
- of execMain.c> (Marko Tiikkaja)
-
-
- Updates are now executed in a separate ModifyTable node. This change is
- necessary infrastructure for future improvements.
-
-
-
-
- Simplify translation of
psql>'s SQL help text
- (Peter Eisentraut)
-
-
-
-
- Reduce the lengths of some file names so that all file paths in the
- distribution tarball are less than 100 characters (Tom Lane)
-
-
- Some decompression programs have problems with longer file paths.
-
-
-
-
- Add a new
- linkend="errcodes-table">ERRCODE_INVALID_PASSWORD>
- SQLSTATE> error code (Bruce Momjian)
-
-
-
-
- With authors' permissions, remove the few remaining personal source code
- copyright notices (Bruce Momjian)
-
-
- The personal copyright notices were insignificant but the community
- occasionally had to answer questions about them.
-
-
-
-
- Add new documentation section
- about running
PostgreSQL> in non-durable mode
- to improve performance (Bruce Momjian)
-
-
-
-
- Restructure the
HTML> documentation
- Makefile> rules to make their dependency checks work
- correctly, avoiding unnecessary rebuilds (Peter Eisentraut)
-
-
-
-
- Use
DocBook> XSL> stylesheets for man page
- building, rather than
Docbook2X> (Peter Eisentraut)
-
-
- This changes the set of tools needed to build the man pages.
-
-
-
-
- Improve PL/Perl code structure (Tim Bunce)
-
-
-
-
- Improve error context reports in PL/Perl (Alexey Klyukin)
-
-
-
-
-
-
-
New Build Requirements
-
- Note that these requirements do not apply when building from a
- distribution tarball, since tarballs include the files that these
- programs are used to build.
-
-
-
-
- Require
Autoconf> 2.63 to build
-
configure> (Peter Eisentraut)
-
-
-
-
- Require
Flex> 2.5.31 or later to build
- from a
CVS> checkout (Tom Lane)
-
-
-
-
- Require
Perl> version 5.8 or later to build
- from a
CVS> checkout (John Naylor, Andrew Dunstan)
-
-
-
-
-
-
-
-
-
Portability
-
-
-
-
- Use a more modern
API> for Bonjour> (Tom Lane)
-
-
- Bonjour support now requires
OS X> 10.3 or later.
- The older API has been deprecated by Apple.
-
-
-
-
- Add spinlock support for the
SuperH>
- architecture (Nobuhiro Iwamatsu)
-
-
-
-
- Allow non-
GCC> compilers to use inline functions if
- they support them (Kurt Harriman)
-
-
-
-
- Remove support for platforms that don't have a working 64-bit
- integer data type (Tom Lane)
-
-
-
-
- Restructure use of LDFLAGS> to be more consistent
- across platforms (Tom Lane)
-
-
- LDFLAGS> is now used for linking both executables and shared
- libraries, and we add on LDFLAGS_EX> when linking
- executables, or LDFLAGS_SL> when linking shared libraries.
-
-
-
-
-
-
-
-
-
Server Programming
-
-
-
-
- Make backend header files safe to include in
C++>
- (Kurt Harriman, Peter Eisentraut)
-
-
- These changes remove keyword conflicts that previously made
-
C++> usage difficult in backend code. However, there
- are still other complexities when using
C++> for backend
- functions. extern "C" { }> is still necessary in
- appropriate places, and memory management and error handling are
- still problematic.
-
-
-
-
- Add
- linkend="xaggr">AggCheckCallContext()>
- for use in detecting if a
C> function is
- being called as an aggregate (Hitoshi Harada)
-
-
-
-
- Change calling convention for SearchSysCache()> and related
- functions to avoid hard-wiring the maximum number of cache keys
- (Robert Haas)
-
-
- Existing calls will still work for the moment, but can be expected to
- break in 9.1 or later if not converted to the new style.
-
-
-
-
- Require calls of fastgetattr()> and
- heap_getattr()> backend macros to provide a non-NULL fourth
- argument (Robert Haas)
-
-
-
-
- Custom typanalyze functions should no longer rely on
- VacAttrStats>.attr> to determine the type
- of data they will be passed (Tom Lane)
-
-
- This was changed to allow collection of statistics on index columns
- for which the storage type is different from the underlying column
- data type. There are new fields that tell the actual datatype being
- analyzed.
-
-
-
-
-
-
-
-
-
Server Hooks
-
-
-
-
- Add parser hooks for processing ColumnRef and ParamRef nodes
- (Tom Lane)
-
-
-
-
- Add a ProcessUtility hook so loadable modules can control utility
- commands (Itagaki Takahiro)
-
-
-
-
-
-
-
-
-
Binary Upgrade Support
-
-
-
-
- Add contrib/pg_upgrade>
- to support in-place upgrades (Bruce Momjian)
-
-
- This avoids the requirement of dumping/reloading the database when
- upgrading to a new major release of PostgreSQL, thus reducing downtime
- by orders of magnitude. It supports upgrades to 9.0
- from PostgreSQL 8.3 and 8.4.
-
-
-
-
- Add support for preserving relation
- linkend="catalog-pg-class">relfilenode> values
- during binary upgrades (Bruce Momjian)
-
-
-
-
- Add support for preserving pg_type>
- and pg_enum> OIDs during binary upgrades
- (Bruce Momjian)
-
-
-
-
- Move data files within tablespaces into
-
PostgreSQL>-version-specific subdirectories
- (Bruce Momjian)
-
-
- This simplifies binary upgrades.
-
-
-
-
-
-
-
-
-
-
-
Contrib
-
-
-
-
- Add multithreading option (
-j>) to
- linkend="pgbench">contrib/pgbench>
- (Itagaki Takahiro)
-
-
- This allows multiple
CPU>s to be used by pgbench,
- reducing the risk of pgbench itself becoming the test bottleneck.
-
-
-
-
- Add \shell> and \setshell> meta
- commands to
- linkend="pgbench">contrib/pgbench>
- (Michael Paquier)
-
-
-
-
- New features for
- linkend="dict-xsyn">contrib/dict_xsyn>
- (Sergey Karpov)
-
-
- The new options are matchorig>, matchsynonyms>,
- and keepsynonyms>.
-
-
-
-
- Add full text dictionary
- linkend="unaccent">contrib/unaccent>
- (Teodor Sigaev)
-
-
- This filtering dictionary removes accents from letters, which
- makes full-text searches over multiple languages much easier.
-
-
-
-
- Add
- linkend="CONTRIB-DBLINK-GET-NOTIFY">dblink_get_notify()>
- to contrib/dblink> (Marcus Kempe)
-
-
- This allows asynchronous notifications in
dblink>.
-
-
-
-
- Improve contrib/dblink>'s handling of dropped columns
- (Tom Lane)
-
-
- This affects
- linkend="CONTRIB-DBLINK-BUILD-SQL-INSERT">dblink_build_sql_insert()>
- and related functions. These functions now number columns according
- to logical not physical column numbers.
-
-
-
-
- Greatly increase
- linkend="hstore">contrib/hstore>'s data
- length limit, and add B-tree and hash support so GROUP
- BY> and DISTINCT> operations are possible on
- hstore> columns (Andrew Gierth)
-
-
- New functions and operators were also added. These improvements
- make hstore> a full-function key-value store embedded in
-
-
-
-
- Add
- linkend="passwordcheck">contrib/passwordcheck>
- to support site-specific password strength policies (Laurenz
- Albe)
-
-
- The source code of this module should be modified to implement
- site-specific password policies.
-
-
-
-
- Add
- linkend="pgarchivecleanup">contrib/pg_archivecleanup>
- tool (Simon Riggs)
-
-
- This is designed to be used in the
- archive_cleanup_command
- server parameter, to remove no-longer-needed archive files.
-
-
-
-
- Add query text to
- linkend="auto-explain">contrib/auto_explain>
- output (Andrew Dunstan)
-
-
-
-
- Add buffer access counters to
- linkend="pgstatstatements">contrib/pg_stat_statements>
- (Itagaki Takahiro)
-
-
-
-
- Update
- linkend="server-start">contrib/start-scripts/linux>
- to use /proc/self/oom_adj> to disable the
- out-of-memory (
OOM>) killer (Alex
- Hunsaker, Tom Lane)
-
-
-
-
-
-
-
-
+++ /dev/null
-
-
-
-
-
Release 9.1.24
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.23.
- For information about new features in the 9.1 major release, see
- .
-
-
- This is expected to be the last
PostgreSQL> release
- in the 9.1.X series. Users are encouraged to update to a newer
- release branch soon.
-
-
-
-
Migration to Version 9.1.24
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.16,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix EvalPlanQual rechecks involving CTE scans (Tom Lane)
-
-
- The recheck would always see the CTE as returning no rows, typically
- leading to failure to update rows that were recently updated.
-
-
-
-
- Fix improper repetition of previous results from hashed aggregation in
- a subquery (Andrew Gierth)
-
-
- The test to see if we can reuse a previously-computed hash table of
- the aggregate state values neglected the possibility of an outer query
- reference appearing in an aggregate argument expression. A change in
- the value of such a reference should lead to recalculating the hash
- table, but did not.
-
-
-
-
- Fix timeout length when VACUUM> is waiting for exclusive
- table lock so that it can truncate the table (Simon Riggs)
-
-
- The timeout was meant to be 50 milliseconds, but it was actually only
- 50 microseconds, causing VACUUM> to give up on truncation
- much more easily than intended. Set it to the intended value.
-
-
-
-
- Remove artificial restrictions on the values accepted
- by numeric_in()> and numeric_recv()>
- (Tom Lane)
-
-
- We allow numeric values up to the limit of the storage format (more
- than 1e100000>), so it seems fairly pointless
- that numeric_in()> rejected scientific-notation exponents
- above 1000. Likewise, it was silly for numeric_recv()> to
- reject more than 1000 digits in an input value.
-
-
-
-
- Avoid very-low-probability data corruption due to testing tuple
- visibility without holding buffer lock (Thomas Munro, Peter Geoghegan,
- Tom Lane)
-
-
-
-
- Fix file descriptor leakage when truncating a temporary relation of
- more than 1GB (Andres Freund)
-
-
-
-
- Disallow starting a standalone backend with standby_mode>
- turned on (Michael Paquier)
-
-
- This can't do anything useful, since there will be no WAL receiver
- process to fetch more WAL data; and it could result in misbehavior
- in code that wasn't designed with this situation in mind.
-
-
-
-
- Don't try to share SSL contexts across multiple connections
- in
libpq> (Heikki Linnakangas)
-
-
- This led to assorted corner-case bugs, particularly when trying to use
- different SSL parameters for different connections.
-
-
-
-
- Avoid corner-case memory leak in
libpq> (Tom Lane)
-
-
- The reported problem involved leaking an error report
- during PQreset()>, but there might be related cases.
-
-
-
-
- Make
ecpg>'s --help> and --version>
- options work consistently with our other executables (Haribabu Kommi)
-
-
-
-
- Fix contrib/intarray/bench/bench.pl> to print the results
- of the EXPLAIN> it does when given the -e> option
- (Daniel Gustafsson)
-
-
-
-
- Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane)
-
-
- If a dynamic time zone abbreviation does not match any entry in the
- referenced time zone, treat it as equivalent to the time zone name.
- This avoids unexpected failures when IANA removes abbreviations from
- their time zone database, as they did in
tzdata>
- release 2016f and seem likely to do again in the future. The
- consequences were not limited to not recognizing the individual
- abbreviation; any mismatch caused
- the pg_timezone_abbrevs> view to fail altogether.
-
-
-
-
- Update time zone data files to
tzdata> release 2016h
- for DST law changes in Palestine and Turkey, plus historical
- corrections for Turkey and some regions of Russia.
- Switch to numeric abbreviations for some time zones in Antarctica,
- the former Soviet Union, and Sri Lanka.
-
-
- The IANA time zone database previously provided textual abbreviations
- for all time zones, sometimes making up abbreviations that have little
- or no currency among the local population. They are in process of
- reversing that policy in favor of using numeric UTC offsets in zones
- where there is no evidence of real-world use of an English
- abbreviation. At least for the time being,
PostgreSQL>
- will continue to accept such removed abbreviations for timestamp input.
- But they will not be shown in the pg_timezone_names>
- view nor used for output.
-
-
- In this update, AMT> is no longer shown as being in use to
- mean Armenia Time. Therefore, we have changed the Default>
- abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
-
-
-
-
-
-
-
-
-
-
Release 9.1.23
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.22.
- For information about new features in the 9.1 major release, see
- .
-
-
- The
PostgreSQL> community will stop releasing updates
- for the 9.1.X release series in September 2016.
- Users are encouraged to update to a newer release branch soon.
-
-
-
-
Migration to Version 9.1.23
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.16,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix possible mis-evaluation of
- nested CASE>-WHEN> expressions (Heikki
- Linnakangas, Michael Paquier, Tom Lane)
-
-
- A CASE> expression appearing within the test value
- subexpression of another CASE> could become confused about
- whether its own test value was null or not. Also, inlining of a SQL
- function implementing the equality operator used by
- a CASE> expression could result in passing the wrong test
- value to functions called within a CASE> expression in the
- SQL function's body. If the test values were of different data
- types, a crash might result; moreover such situations could be abused
- to allow disclosure of portions of server memory. (CVE-2016-5423)
-
-
-
-
- Fix client programs' handling of special characters in database and
- role names (Noah Misch, Nathan Bossart, Michael Paquier)
-
-
- Numerous places in
vacuumdb> and other client programs
- could become confused by database and role names containing double
- quotes or backslashes. Tighten up quoting rules to make that safe.
- Also, ensure that when a conninfo string is used as a database name
- parameter to these programs, it is correctly treated as such throughout.
-
-
- Fix handling of paired double quotes
- and \password> commands to match the documentation.
-
-
- Introduce a new -reuse-previous> option
- in
psql>'s \connect> command to allow
- explicit control of whether to re-use connection parameters from a
- previous connection. (Without this, the choice is based on whether
- the database name looks like a conninfo string, as before.) This
- allows secure handling of database names containing special
- characters in
pg_dumpall> scripts.
-
-
-
pg_dumpall> now refuses to deal with database and role
- names containing carriage returns or newlines, as it seems impractical
- to quote those characters safely on Windows. In future we may reject
- such names on the server side, but that step has not been taken yet.
-
-
- These are considered security fixes because crafted object names
- containing special characters could have been used to execute
- commands with superuser privileges the next time a superuser
- executes
pg_dumpall> or other routine maintenance
- operations. (CVE-2016-5424)
-
-
-
-
- Fix corner-case misbehaviors for IS NULL>/IS NOT
- NULL> applied to nested composite values (Andrew Gierth, Tom Lane)
-
-
- The SQL standard specifies that IS NULL> should return
- TRUE for a row of all null values (thus ROW(NULL,NULL) IS
- NULL> yields TRUE), but this is not meant to apply recursively
- (thus ROW(NULL, ROW(NULL,NULL)) IS NULL> yields FALSE).
- The core executor got this right, but certain planner optimizations
- treated the test as recursive (thus producing TRUE in both cases),
- and contrib/postgres_fdw> could produce remote queries
- that misbehaved similarly.
-
-
-
-
- Make the inet> and cidr> data types properly reject
- IPv6 addresses with too many colon-separated fields (Tom Lane)
-
-
-
-
- Prevent crash in close_ps()>
- (the point> ##> lseg> operator)
- for NaN input coordinates (Tom Lane)
-
-
- Make it return NULL instead of crashing.
-
-
-
-
- Fix several one-byte buffer over-reads in to_number()>
- (Peter Eisentraut)
-
-
- In several cases the to_number()> function would read one
- more character than it should from the input string. There is a
- small chance of a crash, if the input happens to be adjacent to the
- end of memory.
-
-
-
-
- Avoid unsafe intermediate state during expensive paths
- through heap_update()> (Masahiko Sawada, Andres Freund)
-
-
- Previously, these cases locked the target tuple (by setting its XMAX)
- but did not WAL-log that action, thus risking data integrity problems
- if the page were spilled to disk and then a database crash occurred
- before the tuple update could be completed.
-
-
-
-
- Avoid consuming a transaction ID during VACUUM>
- (Alexander Korotkov)
-
-
- Some cases in VACUUM> unnecessarily caused an XID to be
- assigned to the current transaction. Normally this is negligible,
- but if one is up against the XID wraparound limit, consuming more
- XIDs during anti-wraparound vacuums is a very bad thing.
-
-
-
-
- Avoid canceling hot-standby queries during VACUUM FREEZE>
- (Simon Riggs, Álvaro Herrera)
-
-
- VACUUM FREEZE> on an otherwise-idle master server could
- result in unnecessary cancellations of queries on its standby
- servers.
-
-
-
-
- When a manual ANALYZE> specifies a column list, don't
- reset the table's changes_since_analyze> counter
- (Tom Lane)
-
-
- If we're only analyzing some columns, we should not prevent routine
- auto-analyze from happening for the other columns.
-
-
-
-
- Fix ANALYZE>'s overestimation of n_distinct>
- for a unique or nearly-unique column with many null entries (Tom
- Lane)
-
-
- The nulls could get counted as though they were themselves distinct
- values, leading to serious planner misestimates in some types of
- queries.
-
-
-
-
- Prevent autovacuum from starting multiple workers for the same shared
- catalog (Álvaro Herrera)
-
-
- Normally this isn't much of a problem because the vacuum doesn't take
- long anyway; but in the case of a severely bloated catalog, it could
- result in all but one worker uselessly waiting instead of doing
- useful work on other tables.
-
-
-
-
- Fix contrib/btree_gin> to handle the smallest
- possible bigint> value correctly (Peter Eisentraut)
-
-
-
-
- Teach libpq to correctly decode server version from future servers
- (Peter Eisentraut)
-
-
- It's planned to switch to two-part instead of three-part server
- version numbers for releases after 9.6. Make sure
- that PQserverVersion()> returns the correct value for
- such cases.
-
-
-
-
- Fix
ecpg>'s code for unsigned long long>
- array elements (Michael Meskes)
-
-
-
-
- Make
pg_basebackup> accept -Z 0> as
- specifying no compression (Fujii Masao)
-
-
-
-
-
- Revert to the old heuristic timeout for pg_ctl start -w>
- (Tom Lane)
-
-
- The new method adopted as of release 9.1.20 does not work
- when silent_mode> is enabled, so go back to the old way.
-
-
-
-
- Fix makefiles' rule for building AIX shared libraries to be safe for
- parallel make (Noah Misch)
-
-
-
-
- Fix TAP tests and MSVC scripts to work when build directory's path
- name contains spaces (Michael Paquier, Kyotaro Horiguchi)
-
-
-
-
- Make regression tests safe for Danish and Welsh locales (Jeff Janes,
- Tom Lane)
-
-
- Change some test data that triggered the unusual sorting rules of
- these locales.
-
-
-
-
- Update our copy of the timezone code to match
- IANA's
tzcode> release 2016c (Tom Lane)
-
-
- This is needed to cope with anticipated future changes in the time
- zone data files. It also fixes some corner-case bugs in coping with
- unusual time zones.
-
-
-
-
- Update time zone data files to
tzdata> release 2016f
- for DST law changes in Kemerovo and Novosibirsk, plus historical
- corrections for Azerbaijan, Belarus, and Morocco.
-
-
-
-
-
-
-
-
-
-
Release 9.1.22
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.21.
- For information about new features in the 9.1 major release, see
- .
-
-
- The
PostgreSQL> community will stop releasing updates
- for the 9.1.X release series in September 2016.
- Users are encouraged to update to a newer release branch soon.
-
-
-
-
Migration to Version 9.1.22
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.16,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Clear the OpenSSL error queue before OpenSSL calls, rather than
- assuming it's clear already; and make sure we leave it clear
- afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
-
-
- This change prevents problems when there are multiple connections
- using OpenSSL within a single process and not all the code involved
- follows the same rules for when to clear the error queue.
- Failures have been reported specifically when a client application
- uses SSL connections in
libpq> concurrently with
- SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL.
- It's possible for similar problems to arise within the server as well,
- if an extension module establishes an outgoing SSL connection.
-
-
-
-
- Fix failed to build any N>-way joins
- planner error with a full join enclosed in the right-hand side of a
- left join (Tom Lane)
-
-
-
-
- Fix possible misbehavior of TH>, th>,
- and Y,YYY> format codes in to_timestamp()>
- (Tom Lane)
-
-
- These could advance off the end of the input string, causing subsequent
- format codes to read garbage.
-
-
-
-
- Fix dumping of rules and views in which the array>
- argument of a value> operator>
- ANY (array>) construct is a sub-SELECT
- (Tom Lane)
-
-
-
-
- Make
pg_regress> use a startup timeout from the
- PGCTLTIMEOUT> environment variable, if that's set (Tom Lane)
-
-
- This is for consistency with a behavior recently added
- to
pg_ctl>; it eases automated testing on slow machines.
-
-
-
-
- Fix
pg_upgrade> to correctly restore extension
- membership for operator families containing only one operator class
- (Tom Lane)
-
-
- In such a case, the operator family was restored into the new database,
- but it was no longer marked as part of the extension. This had no
- immediate ill effects, but would cause later
pg_dump>
- runs to emit output that would cause (harmless) errors on restore.
-
-
-
-
- Rename internal function strtoi()>
- to strtoint()> to avoid conflict with a NetBSD library
- function (Thomas Munro)
-
-
-
-
- Fix reporting of errors from bind()>
- and listen()> system calls on Windows (Tom Lane)
-
-
-
-
- Reduce verbosity of compiler output when building with Microsoft Visual
- Studio (Christian Ullrich)
-
-
-
-
- Avoid possibly-unsafe use of Windows' FormatMessage()>
- function (Christian Ullrich)
-
-
- Use the FORMAT_MESSAGE_IGNORE_INSERTS> flag where
- appropriate. No live bug is known to exist here, but it seems like a
- good idea to be careful.
-
-
-
-
- Update time zone data files to
tzdata> release 2016d
- for DST law changes in Russia and Venezuela. There are new zone
- names Europe/Kirov> and Asia/Tomsk> to reflect
- the fact that these regions now have different time zone histories from
- adjacent regions.
-
-
-
-
-
-
-
-
-
-
Release 9.1.21
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.20.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.21
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.16,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix incorrect handling of NULL index entries in
- indexed ROW()> comparisons (Tom Lane)
-
-
- An index search using a row comparison such as ROW(a, b) >
- ROW('x', 'y')> would stop upon reaching a NULL entry in
- the b> column, ignoring the fact that there might be
- non-NULL b> values associated with later values
- of a>.
-
-
-
-
- Avoid unlikely data-loss scenarios due to renaming files without
- adequate fsync()> calls before and after (Michael Paquier,
- Tomas Vondra, Andres Freund)
-
-
-
-
- Correctly handle cases where pg_subtrans> is close to XID
- wraparound during server startup (Jeff Janes)
-
-
-
-
- Fix corner-case crash due to trying to free localeconv()>
- output strings more than once (Tom Lane)
-
-
-
-
- Fix parsing of affix files for ispell> dictionaries
- (Tom Lane)
-
-
- The code could go wrong if the affix file contained any characters
- whose byte length changes during case-folding, for
- example I> in Turkish UTF8 locales.
-
-
-
-
- Avoid use of sscanf()> to parse ispell>
- dictionary files (Artur Zakirov)
-
-
- This dodges a portability problem on FreeBSD-derived platforms
- (including macOS).
-
-
-
-
- Avoid a crash on old Windows versions (before 7SP1/2008R2SP1) with an
- AVX2-capable CPU and a Postgres build done with Visual Studio 2013
- (Christian Ullrich)
-
-
- This is a workaround for a bug in Visual Studio 2013's runtime
- library, which Microsoft have stated they will not fix in that
- version.
-
-
-
-
- Fix
psql>'s tab completion logic to handle multibyte
- characters properly (Kyotaro Horiguchi, Robert Haas)
-
-
-
-
- Fix
psql>'s tab completion for
- SECURITY LABEL> (Tom Lane)
-
-
- Pressing TAB after SECURITY LABEL> might cause a crash
- or offering of inappropriate keywords.
-
-
-
-
- Make
pg_ctl> accept a wait timeout from the
- PGCTLTIMEOUT> environment variable, if none is specified on
- the command line (Noah Misch)
-
-
- This eases testing of slower buildfarm members by allowing them
- to globally specify a longer-than-normal timeout for postmaster
- startup and shutdown.
-
-
-
-
- Fix incorrect test for Windows service status
- in
pg_ctl> (Manuel Mathar)
-
-
- The previous set of minor releases attempted to
- fix
pg_ctl> to properly determine whether to send log
- messages to Window's Event Log, but got the test backwards.
-
-
-
-
- Fix
pgbench> to correctly handle the combination
- of -C> and -M prepared> options (Tom Lane)
-
-
-
-
- In PL/Perl, properly translate empty Postgres arrays into empty Perl
- arrays (Alex Hunsaker)
-
-
-
-
- Make PL/Python cope with function names that aren't valid Python
- identifiers (Jim Nasby)
-
-
-
-
- Fix multiple mistakes in the statistics returned
- by contrib/pgstattuple>'s pgstatindex()>
- function (Tom Lane)
-
-
-
-
- Remove dependency on psed> in MSVC builds, since it's no
- longer provided by core Perl (Michael Paquier, Andrew Dunstan)
-
-
-
-
- Update time zone data files to
tzdata> release 2016c
- for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia
- (Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus
- historical corrections for Lithuania, Moldova, and Russia
- (Kaliningrad, Samara, Volgograd).
-
-
-
-
-
-
-
-
-
-
Release 9.1.20
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.19.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.20
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.16,
- see .
-
-
-
-
-
-
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)
-
-
-
-
- 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.
-
-
-
-
- In SERIALIZABLE> transaction isolation mode, serialization
- anomalies could be missed due to race conditions during insertions
- (Kevin Grittner, Thomas Munro)
-
-
-
-
- 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.
-
-
-
-
- Fix possible misinitialization of unlogged relations at the end of
- crash recovery (Andres Freund, Michael Paquier)
-
-
-
-
- Fix ALTER COLUMN TYPE> to reconstruct inherited check
- constraints properly (Tom Lane)
-
-
-
-
- Fix REASSIGN OWNED> to change ownership of composite types
- properly (Álvaro Herrera)
-
-
-
-
- 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)
-
-
-
-
- Fix REASSIGN OWNED> to ignore foreign user mappings,
- rather than fail (Álvaro Herrera)
-
-
-
-
- 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)
-
-
-
-
- Make planner cope with hypothetical GIN indexes suggested by an index
- advisor plug-in (Julien Rouhaud)
-
-
-
-
- Fix dumping of whole-row Vars in ROW()>
- and VALUES()> lists (Tom Lane)
-
-
-
-
- Fix possible internal overflow in numeric> division
- (Dean Rasheed)
-
-
-
-
- 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.
-
-
-
-
- Conversion of regular expressions to indexscan bounds could produce
- incorrect bounds from regexps containing lookahead constraints
- (Tom Lane)
-
-
-
-
- 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.
-
-
-
-
- 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.
-
-
-
-
- Improve performance of regular-expression compiler (Tom Lane)
-
-
-
-
- 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.
-
-
-
-
- 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.
-
-
-
-
- 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.
-
-
-
-
- Avoid leaking a token handle during SSPI authentication
- (Christian Ullrich)
-
-
-
-
- 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.
-
-
-
-
- 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)
-
-
-
-
- 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)
-
-
-
-
- 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.
-
-
-
-
- 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.
-
-
-
-
- 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)
-
-
-
-
- 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.
-
-
-
-
- Fix assorted corner-case bugs in
pg_dump>'s processing
- of extension member objects (Tom Lane)
-
-
-
-
- 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)
-
-
-
-
- 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.
-
-
-
-
- Fix
pg_upgrade>'s file-copying code to handle errors
- properly on Windows (Bruce Momjian)
-
-
-
-
- Install guards in
pgbench> against corner-case overflow
- conditions during evaluation of script-specified division or modulo
- operators (Fabien Coelho, Michael Paquier)
-
-
-
-
- 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.
-
-
-
-
- Improve
libpq>'s handling of out-of-memory situations
- (Michael Paquier, Amit Kapila, Heikki Linnakangas)
-
-
-
-
- Fix order of arguments
- in
ecpg>-generated typedef> statements
- (Michael Meskes)
-
-
-
-
- Use %g> not %f> format
- in
ecpg>'s PGTYPESnumeric_from_double()>
- (Tom Lane)
-
-
-
-
- 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.
-
-
-
-
- Ensure that contrib/pgcrypto>'s crypt()>
- function can be interrupted by query cancel (Andreas Karlsson)
-
-
-
-
- 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.
-
-
-
-
- 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.
-
-
-
-
- Ensure that dynloader.h> is included in the installed
- header files in MSVC builds (Bruce Momjian, Michael Paquier)
-
-
-
-
- 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.
-
-
-
-
- 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.
-
-
-
-
-
-
-
-
-
-
Release 9.1.19
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.18.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.19
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.16,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix contrib/pgcrypto> to detect and report
- too-short crypt()> salts (Josh Kupershmidt)
-
-
- Certain invalid salt arguments crashed the server or disclosed a few
- bytes of server memory. We have not ruled out the viability of
- attacks that arrange for presence of confidential information in the
- disclosed bytes, but they seem unlikely. (CVE-2015-5288)
-
-
-
-
- Fix subtransaction cleanup after a portal (cursor) belonging to an
- outer subtransaction fails (Tom Lane, Michael Paquier)
-
-
- A function executed in an outer-subtransaction cursor could cause an
- assertion failure or crash by referencing a relation created within an
- inner subtransaction.
-
-
-
-
- Fix insertion of relations into the relation cache init file>
- (Tom Lane)
-
-
- An oversight in a patch in the most recent minor releases
- caused pg_trigger_tgrelid_tgname_index> to be omitted
- from the init file. Subsequent sessions detected this, then deemed the
- init file to be broken and silently ignored it, resulting in a
- significant degradation in session startup time. In addition to fixing
- the bug, install some guards so that any similar future mistake will be
- more obvious.
-
-
-
-
- Avoid O(N^2) behavior when inserting many tuples into a SPI query
- result (Neil Conway)
-
-
-
-
- Improve LISTEN> startup time when there are many unread
- notifications (Matt Newell)
-
-
-
-
- Back-patch 9.3-era addition of per-resource-owner lock caches
- (Jeff Janes)
-
-
- This substantially improves performance when
pg_dump>
- tries to dump a large number of tables.
-
-
-
-
- Disable SSL renegotiation by default (Michael Paquier, Andres Freund)
-
-
- While use of SSL renegotiation is a good idea in theory, we have seen
- too many bugs in practice, both in the underlying OpenSSL library and
- in our usage of it. Renegotiation will be removed entirely in 9.5 and
- later. In the older branches, just change the default value
- of ssl_renegotiation_limit> to zero (disabled).
-
-
-
-
- Lower the minimum values of the *_freeze_max_age> parameters
- (Andres Freund)
-
-
- This is mainly to make tests of related behavior less time-consuming,
- but it may also be of value for installations with limited disk space.
-
-
-
-
- Limit the maximum value of wal_buffers> to 2GB to avoid
- server crashes (Josh Berkus)
-
-
-
-
- Fix rare internal overflow in multiplication of numeric> values
- (Dean Rasheed)
-
-
-
-
- Guard against hard-to-reach stack overflows involving record types,
- range types, json>, jsonb>, tsquery>,
- ltxtquery> and query_int> (Noah Misch)
-
-
-
-
- Fix handling of DOW> and DOY> in datetime input
- (Greg Stark)
-
-
- These tokens aren't meant to be used in datetime values, but previously
- they resulted in opaque internal error messages rather
- than invalid input syntax>.
-
-
-
-
- Add more query-cancel checks to regular expression matching (Tom Lane)
-
-
-
-
- Add recursion depth protections to regular expression, SIMILAR
- TO>, and LIKE> matching (Tom Lane)
-
-
- Suitable search patterns and a low stack depth limit could lead to
- stack-overrun crashes.
-
-
-
-
- Fix potential infinite loop in regular expression execution (Tom Lane)
-
-
- A search pattern that can apparently match a zero-length string, but
- actually doesn't match because of a back reference, could lead to an
- infinite loop.
-
-
-
-
- Fix low-memory failures in regular expression compilation
- (Andreas Seltenreich)
-
-
-
-
- Fix low-probability memory leak during regular expression execution
- (Tom Lane)
-
-
-
-
- Fix rare low-memory failure in lock cleanup during transaction abort
- (Tom Lane)
-
-
-
-
- Fix unexpected out-of-memory situation during sort> errors
- when using tuplestores with small work_mem> settings (Tom
- Lane)
-
-
-
-
- Fix very-low-probability stack overrun in qsort> (Tom Lane)
-
-
-
-
- Fix invalid memory alloc request size> failure in hash joins
- with large work_mem> settings (Tomas Vondra, Tom Lane)
-
-
-
-
- Fix assorted planner bugs (Tom Lane)
-
-
- These mistakes could lead to incorrect query plans that would give wrong
- answers, or to assertion failures in assert-enabled builds, or to odd
- planner errors such as could not devise a query plan for the
- given query>, could not find pathkey item to
- sort>, plan should not reference subplan's variable>,
- or failed to assign all NestLoopParams to plan nodes>.
- Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz
- testing that exposed these problems.
-
-
-
-
-
-
- Use fuzzy path cost tiebreaking rule in all supported branches (Tom Lane)
-
-
- This change is meant to avoid platform-specific behavior when
- alternative plan choices have effectively-identical estimated costs.
-
-
-
-
- Ensure standby promotion trigger files are removed at postmaster
- startup (Michael Paquier, Fujii Masao)
-
-
- This prevents unwanted promotion from occurring if these files appear
- in a database backup that is used to initialize a new standby server.
-
-
-
-
- During postmaster shutdown, ensure that per-socket lock files are
- removed and listen sockets are closed before we remove
- the postmaster.pid> file (Tom Lane)
-
-
- This avoids race-condition failures if an external script attempts to
- start a new postmaster as soon as pg_ctl stop> returns.
-
-
-
-
- Fix postmaster's handling of a startup-process crash during crash
- recovery (Tom Lane)
-
-
- If, during a crash recovery cycle, the startup process crashes without
- having restored database consistency, we'd try to launch a new startup
- process, which typically would just crash again, leading to an infinite
- loop.
-
-
-
-
- Do not print a WARNING> when an autovacuum worker is already
- gone when we attempt to signal it, and reduce log verbosity for such
- signals (Tom Lane)
-
-
-
-
- Prevent autovacuum launcher from sleeping unduly long if the server
- clock is moved backwards a large amount (Álvaro Herrera)
-
-
-
-
- Ensure that cleanup of a GIN index's pending-insertions list is
- interruptable by cancel requests (Jeff Janes)
-
-
-
-
- Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas)
-
-
- Such a page might be left behind after a crash.
-
-
-
-
- Fix off-by-one error that led to otherwise-harmless warnings
- about apparent wraparound> in subtrans/multixact truncation
- (Thomas Munro)
-
-
-
-
- Fix misreporting of CONTINUE> and MOVE> statement
- types in
PL/pgSQL>'s error context messages
- (Pavel Stehule, Tom Lane)
-
-
-
-
- Fix
PL/Perl> to handle non-ASCII> error
- message texts correctly (Alex Hunsaker)
-
-
-
-
- Fix
PL/Python> crash when returning the string
- representation of a record> result (Tom Lane)
-
-
-
-
- Fix some places in
PL/Tcl> that neglected to check for
- failure of malloc()> calls (Michael Paquier, Álvaro
- Herrera)
-
-
-
-
- In contrib/isn>, fix output of ISBN-13 numbers that begin
- with 979 (Fabien Coelho)
-
-
- EANs beginning with 979 (but not 9790) are considered ISBNs, but they
- must be printed in the new 13-digit format, not the 10-digit format.
-
-
-
-
- Improve
libpq>'s handling of out-of-memory conditions
- (Michael Paquier, Heikki Linnakangas)
-
-
-
-
- Fix memory leaks and missing out-of-memory checks
- in
ecpg> (Michael Paquier)
-
-
-
-
- Fix
psql>'s code for locale-aware formatting of numeric
- output (Tom Lane)
-
-
- The formatting code invoked by \pset numericlocale on>
- did the wrong thing for some uncommon cases such as numbers with an
- exponent but no decimal point. It could also mangle already-localized
- output from the money> data type.
-
-
-
-
- Prevent crash in
psql>'s \c> command when
- there is no current connection (Noah Misch)
-
-
-
-
- Fix selection of default
zlib> compression level
- in
pg_dump>'s directory output format (Andrew Dunstan)
-
-
-
-
- Ensure that temporary files created during a
pg_dump>
- run with
tar>-format output are not world-readable (Michael
- Paquier)
-
-
-
-
- Fix
pg_dump> and pg_upgrade> to support
- cases where the postgres> or template1> database
- is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)
-
-
-
-
- Fix
pg_dump> to handle object privileges sanely when
- dumping from a server too old to have a particular privilege type
- (Tom Lane)
-
-
- When dumping functions or procedural languages from pre-7.3
- servers,
pg_dump> would
- produce GRANT>/REVOKE> commands that revoked the
- owner's grantable privileges and instead granted all privileges
- to PUBLIC>. Since the privileges involved are
- just USAGE> and EXECUTE>, this isn't a security
- problem, but it's certainly a surprising representation of the older
- systems' behavior. Fix it to leave the default privilege state alone
- in these cases.
-
-
-
-
- Fix
pg_dump> to dump shell types (Tom Lane)
-
-
- Shell types (that is, not-yet-fully-defined types) aren't useful for
- much, but nonetheless
pg_dump> should dump them.
-
-
-
-
- Fix assorted minor memory leaks in
pg_dump> and other
- client-side programs (Michael Paquier)
-
-
-
-
- Fix spinlock assembly code for PPC hardware to be compatible
- with
AIX>'s native assembler (Tom Lane)
-
-
- Building with
gcc> didn't work if gcc>
- had been configured to use the native assembler, which is becoming more
- common.
-
-
-
-
- On
AIX>, test the -qlonglong> compiler option
- rather than just assuming it's safe to use (Noah Misch)
-
-
-
-
- On
AIX>, use -Wl,-brtllib> link option to allow
- symbols to be resolved at runtime (Noah Misch)
-
-
- Perl relies on this ability in 5.8.0 and later.
-
-
-
-
- Avoid use of inline functions when compiling with
- 32-bit
xlc>, due to compiler bugs (Noah Misch)
-
-
-
-
- Use librt> for sched_yield()> when necessary,
- which it is on some Solaris versions (Oskari Saarenmaa)
-
-
-
-
- Fix Windows install.bat> script to handle target directory
- names that contain spaces (Heikki Linnakangas)
-
-
-
-
- Make the numeric form of the
PostgreSQL> version number
- (e.g., 90405>) readily available to extension Makefiles,
- as a variable named VERSION_NUM> (Michael Paquier)
-
-
-
-
- Update time zone data files to
tzdata> release 2015g for
- DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk
- Island, North Korea, Turkey, and Uruguay. There is a new zone name
- America/Fort_Nelson> for the Canadian Northern Rockies.
-
-
-
-
-
-
-
-
-
-
Release 9.1.18
-
-
-
Release date:
-
-
- This release contains a small number of fixes from 9.1.17.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.18
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.16,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix rare failure to invalidate relation cache init file (Tom Lane)
-
-
- With just the wrong timing of concurrent activity, a VACUUM
- FULL> on a system catalog might fail to update the init file>
- that's used to avoid cache-loading work for new sessions. This would
- result in later sessions being unable to access that catalog at all.
- This is a very ancient bug, but it's so hard to trigger that no
- reproducible case had been seen until recently.
-
-
-
-
- Avoid deadlock between incoming sessions and CREATE/DROP
- DATABASE> (Tom Lane)
-
-
- A new session starting in a database that is the target of
- a DROP DATABASE> command, or is the template for
- a CREATE DATABASE> command, could cause the command to wait
- for five seconds and then fail, even if the new session would have
- exited before that.
-
-
-
-
-
-
-
-
-
-
Release 9.1.17
-
-
-
Release date:
-
-
- This release contains a small number of fixes from 9.1.16.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.17
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.16,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Avoid failures while fsync>'ing data directory during
- crash restart (Abhijit Menon-Sen, Tom Lane)
-
-
- In the previous minor releases we added a patch to fsync>
- everything in the data directory after a crash. Unfortunately its
- response to any error condition was to fail, thereby preventing the
- server from starting up, even when the problem was quite harmless.
- An example is that an unwritable file in the data directory would
- prevent restart on some platforms; but it is common to make SSL
- certificate files unwritable by the server. Revise this behavior so
- that permissions failures are ignored altogether, and other types of
- failures are logged but do not prevent continuing.
-
-
-
-
- Remove
configure>'s check prohibiting linking to a
- on OpenBSD> (Tom Lane)
-
-
- The failure this restriction was meant to prevent seems to not be a
- problem anymore on current OpenBSD>
- versions.
-
-
-
-
- Allow
libpq> to use TLS protocol versions beyond v1
- (Noah Misch)
-
-
- For a long time,
libpq> was coded so that the only SSL
- protocol it would allow was TLS v1. Now that newer TLS versions are
- becoming popular, allow it to negotiate the highest commonly-supported
- TLS version with the server. (
PostgreSQL> servers were
- already capable of such negotiation, so no change is needed on the
- server side.) This is a back-patch of a change already released in
- 9.4.0.
-
-
-
-
-
-
-
-
-
-
Release 9.1.16
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.15.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.16
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you use contrib/citext>'s
- regexp_matches()> functions, see the changelog entry below
- about that.
-
-
- Also, if you are upgrading from a version earlier than 9.1.14,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Avoid possible crash when client disconnects just before the
- authentication timeout expires (Benkocs Norbert Attila)
-
-
- If the timeout interrupt fired partway through the session shutdown
- sequence, SSL-related state would be freed twice, typically causing a
- crash and hence denial of service to other sessions. Experimentation
- shows that an unauthenticated remote attacker could trigger the bug
- somewhat consistently, hence treat as security issue.
- (CVE-2015-3165)
-
-
-
-
- Improve detection of system-call failures (Noah Misch)
-
-
- Our replacement implementation of snprintf()> failed to
- check for errors reported by the underlying system library calls;
- the main case that might be missed is out-of-memory situations.
- In the worst case this might lead to information exposure, due to our
- code assuming that a buffer had been overwritten when it hadn't been.
- Also, there were a few places in which security-relevant calls of other
- system library functions did not check for failure.
-
-
- It remains possible that some calls of the *printf()>
- family of functions are vulnerable to information disclosure if an
- out-of-memory error occurs at just the wrong time. We judge the risk
- to not be large, but will continue analysis in this area.
- (CVE-2015-3166)
-
-
-
-
- In contrib/pgcrypto>, uniformly report decryption failures
- as Wrong key or corrupt data> (Noah Misch)
-
-
- Previously, some cases of decryption with an incorrect key could report
- other error message texts. It has been shown that such variance in
- error reports can aid attackers in recovering keys from other systems.
- While it's unknown whether pgcrypto>'s specific behaviors
- are likewise exploitable, it seems better to avoid the risk by using a
- one-size-fits-all message.
- (CVE-2015-3167)
-
-
-
-
- Fix incorrect declaration of contrib/citext>'s
- regexp_matches()> functions (Tom Lane)
-
-
- These functions should return setof text[]>, like the core
- functions they are wrappers for; but they were incorrectly declared as
- returning just text[]>. This mistake had two results: first,
- if there was no match you got a scalar null result, whereas what you
- should get is an empty set (zero rows). Second, the g> flag
- was effectively ignored, since you would get only one result array even
- if there were multiple matches.
-
-
- While the latter behavior is clearly a bug, there might be applications
- depending on the former behavior; therefore the function declarations
- will not be changed by default until
PostgreSQL> 9.5.
- In pre-9.5 branches, the old behavior exists in version 1.0 of
- the citext> extension, while we have provided corrected
- declarations in version 1.1 (which is not> installed by
- default). To adopt the fix in pre-9.5 branches, execute
- ALTER EXTENSION citext UPDATE TO '1.1'> in each database in
- which citext> is installed. (You can also update>
- back to 1.0 if you need to undo that.) Be aware that either update
- direction will require dropping and recreating any views or rules that
- use citext>'s regexp_matches()> functions.
-
-
-
-
- Fix incorrect checking of deferred exclusion constraints after a HOT
- update (Tom Lane)
-
-
- If a new row that potentially violates a deferred exclusion constraint
- is HOT-updated (that is, no indexed columns change and the row can be
- stored back onto the same table page) later in the same transaction,
- the exclusion constraint would be reported as violated when the check
- finally occurred, even if the row(s) the new row originally conflicted
- with had been deleted.
-
-
-
-
- Prevent improper reordering of antijoins (NOT EXISTS joins) versus
- other outer joins (Tom Lane)
-
-
- This oversight in the planner has been observed to cause could
- not find RelOptInfo for given relids> errors, but it seems possible
- that sometimes an incorrect query plan might get past that consistency
- check and result in silently-wrong query output.
-
-
-
-
- Fix incorrect matching of subexpressions in outer-join plan nodes
- (Tom Lane)
-
-
- Previously, if textually identical non-strict subexpressions were used
- both above and below an outer join, the planner might try to re-use
- the value computed below the join, which would be incorrect because the
- executor would force the value to NULL in case of an unmatched outer row.
-
-
-
-
- Fix GEQO planner to cope with failure of its join order heuristic
- (Tom Lane)
-
-
- This oversight has been seen to lead to failed to join all
- relations together> errors in queries involving LATERAL>,
- and that might happen in other cases as well.
-
-
-
-
- Fix possible deadlock at startup
- when max_prepared_transactions> is too small
- (Heikki Linnakangas)
-
-
-
-
- Don't archive useless preallocated WAL files after a timeline switch
- (Heikki Linnakangas)
-
-
-
-
- Avoid cannot GetMultiXactIdMembers() during recovery> error
- (Álvaro Herrera)
-
-
-
-
- Recursively fsync()> the data directory after a crash
- (Abhijit Menon-Sen, Robert Haas)
-
-
- This ensures consistency if another crash occurs shortly later. (The
- second crash would have to be a system-level crash, not just a database
- crash, for there to be a problem.)
-
-
-
-
- Fix autovacuum launcher's possible failure to shut down, if an error
- occurs after it receives SIGTERM (Álvaro Herrera)
-
-
-
-
- Cope with unexpected signals in LockBufferForCleanup()>
- (Andres Freund)
-
-
- This oversight could result in spurious errors about multiple
- backends attempting to wait for pincount 1>.
-
-
-
-
- Avoid waiting for WAL flush or synchronous replication during commit of
- a transaction that was read-only so far as the user is concerned
- (Andres Freund)
-
-
- Previously, a delay could occur at commit in transactions that had
- written WAL due to HOT page pruning, leading to undesirable effects
- such as sessions getting stuck at startup if all synchronous replicas
- are down. Sessions have also been observed to get stuck in catchup
- interrupt processing when using synchronous replication; this will fix
- that problem as well.
-
-
-
-
- Fix crash when manipulating hash indexes on temporary tables
- (Heikki Linnakangas)
-
-
-
-
- Fix possible failure during hash index bucket split, if other processes
- are modifying the index concurrently (Tom Lane)
-
-
-
-
- Check for interrupts while analyzing index expressions (Jeff Janes)
-
-
- ANALYZE> executes index expressions many times; if there are
- slow functions in such an expression, it's desirable to be able to
- cancel the ANALYZE> before that loop finishes.
-
-
-
-
- Ensure tableoid> of a foreign table is reported
- correctly when a READ COMMITTED> recheck occurs after
- locking rows in SELECT FOR UPDATE>, UPDATE>,
- or DELETE> (Etsuro Fujita)
-
-
-
-
- Add the name of the target server to object description strings for
- foreign-server user mappings (Álvaro Herrera)
-
-
-
-
- Recommend setting include_realm> to 1 when using
- Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
-
-
- Without this, identically-named users from different realms cannot be
- distinguished. For the moment this is only a documentation change, but
- it will become the default setting in
PostgreSQL> 9.5.
-
-
-
-
- Remove code for matching IPv4 pg_hba.conf> entries to
- IPv4-in-IPv6 addresses (Tom Lane)
-
-
- This hack was added in 2003 in response to a report that some Linux
- kernels of the time would report IPv4 connections as having
- IPv4-in-IPv6 addresses. However, the logic was accidentally broken in
- 9.0. The lack of any field complaints since then shows that it's not
- needed anymore. Now we have reports that the broken code causes
- crashes on some systems, so let's just remove it rather than fix it.
- (Had we chosen to fix it, that would make for a subtle and potentially
- security-sensitive change in the effective meaning of
- IPv4 pg_hba.conf> entries, which does not seem like a good
- thing to do in minor releases.)
-
-
-
-
- Report WAL flush, not insert, position in IDENTIFY_SYSTEM>
- replication command (Heikki Linnakangas)
-
-
- This avoids a possible startup failure
-
-
-
-
- While shutting down service on Windows, periodically send status
- updates to the Service Control Manager to prevent it from killing the
- service too soon; and ensure that
pg_ctl> will wait for
- shutdown (Krystian Bigaj)
-
-
-
-
- Reduce risk of network deadlock when using
libpq>'s
- non-blocking mode (Heikki Linnakangas)
-
-
- When sending large volumes of data, it's important to drain the input
- buffer every so often, in case the server has sent enough response data
- to cause it to block on output. (A typical scenario is that the server
- is sending a stream of NOTICE messages during COPY FROM
- STDIN>.) This worked properly in the normal blocking mode, but not
- so much in non-blocking mode. We've modified
libpq>
- to opportunistically drain input when it can, but a full defense
- against this problem requires application cooperation: the application
- should watch for socket read-ready as well as write-ready conditions,
- and be sure to call PQconsumeInput()> upon read-ready.
-
-
-
-
- Fix array handling in
ecpg> (Michael Meskes)
-
-
-
-
- Fix
psql> to sanely handle URIs and conninfo strings as
- the first parameter to \connect>
- (David Fetter, Andrew Dunstan, Álvaro Herrera)
-
-
- This syntax has been accepted (but undocumented) for a long time, but
- previously some parameters might be taken from the old connection
- instead of the given string, which was agreed to be undesirable.
-
-
-
-
- Suppress incorrect complaints from
psql> on some
- platforms that it failed to write ~/.psql_history> at exit
- (Tom Lane)
-
-
- This misbehavior was caused by a workaround for a bug in very old
- (pre-2006) versions of
libedit>. We fixed it by
- removing the workaround, which will cause a similar failure to appear
- for anyone still using such versions of
libedit>.
- Recommendation: upgrade that library, or use
libreadline>.
-
-
-
-
- Fix
pg_dump>'s rule for deciding which casts are
- system-provided casts that should not be dumped (Tom Lane)
-
-
-
-
- In
pg_dump>, fix failure to honor -Z>
- compression level option together with -Fd>
- (Michael Paquier)
-
-
-
-
- Make
pg_dump> consider foreign key relationships
- between extension configuration tables while choosing dump order
- (Gilles Darold, Michael Paquier, Stephen Frost)
-
-
- This oversight could result in producing dumps that fail to reload
- because foreign key constraints are transiently violated.
-
-
-
-
- Fix dumping of views that are just VALUES(...)> but have
- column aliases (Tom Lane)
-
-
-
-
- In
pg_upgrade>, force timeline 1 in the new cluster
- (Bruce Momjian)
-
-
- This change prevents upgrade failures caused by bogus complaints about
- missing WAL history files.
-
-
-
-
- In
pg_upgrade>, check for improperly non-connectable
- databases before proceeding
- (Bruce Momjian)
-
-
-
-
- In
pg_upgrade>, quote directory paths
- properly in the generated delete_old_cluster> script
- (Bruce Momjian)
-
-
-
-
- In
pg_upgrade>, preserve database-level freezing info
- properly
- (Bruce Momjian)
-
-
- This oversight could cause missing-clog-file errors for tables within
- the postgres> and template1> databases.
-
-
-
-
- Run
pg_upgrade> and pg_resetxlog> with
- restricted privileges on Windows, so that they don't fail when run by
- an administrator (Muhammad Asif Naeem)
-
-
-
-
- Improve handling of readdir()> failures when scanning
- directories in
initdb> and pg_basebackup>
- (Marco Nenciarini)
-
-
-
-
- Fix slow sorting algorithm in contrib/intarray> (Tom Lane)
-
-
-
-
- Fix compile failure on Sparc V8 machines (Rob Rowan)
-
-
-
-
- Update time zone data files to
tzdata> release 2015d
- for DST law changes in Egypt, Mongolia, and Palestine, plus historical
- changes in Canada and Chile. Also adopt revised zone abbreviations for
- the America/Adak zone (HST/HDT not HAST/HADT).
-
-
-
-
-
-
-
-
-
-
Release 9.1.15
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.14.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.15
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.14,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix buffer overruns in to_char()>
- (Bruce Momjian)
-
-
- When to_char()> processes a numeric formatting template
- calling for a large number of digits,
PostgreSQL>
- would read past the end of a buffer. When processing a crafted
- timestamp formatting template,
PostgreSQL> would write
- past the end of a buffer. Either case could crash the server.
- We have not ruled out the possibility of attacks that lead to
- privilege escalation, though they seem unlikely.
- (CVE-2015-0241)
-
-
-
-
- Fix buffer overrun in replacement *printf()> functions
- (Tom Lane)
-
-
-
PostgreSQL> includes a replacement implementation
- of printf> and related functions. This code will overrun
- a stack buffer when formatting a floating point number (conversion
- specifiers e>, E>, f>, F>,
- g> or G>) with requested precision greater than
- about 500. This will crash the server, and we have not ruled out the
- possibility of attacks that lead to privilege escalation.
- A database user can trigger such a buffer overrun through
- the to_char()> SQL function. While that is the only
- affected core
PostgreSQL> functionality, extension
- modules that use printf-family functions may be at risk as well.
-
-
- This issue primarily affects
PostgreSQL> on Windows.
-
PostgreSQL> uses the system implementation of these
- functions where adequate, which it is on other modern platforms.
- (CVE-2015-0242)
-
-
-
-
- Fix buffer overruns in contrib/pgcrypto>
- (Marko Tiikkaja, Noah Misch)
-
-
- Errors in memory size tracking within the pgcrypto>
- module permitted stack buffer overruns and improper dependence on the
- contents of uninitialized memory. The buffer overrun cases can
- crash the server, and we have not ruled out the possibility of
- attacks that lead to privilege escalation.
- (CVE-2015-0243)
-
-
-
-
- Fix possible loss of frontend/backend protocol synchronization after
- an error
- (Heikki Linnakangas)
-
-
- If any error occurred while the server was in the middle of reading a
- protocol message from the client, it could lose synchronization and
- incorrectly try to interpret part of the message's data as a new
- protocol message. An attacker able to submit crafted binary data
- within a command parameter might succeed in injecting his own SQL
- commands this way. Statement timeout and query cancellation are the
- most likely sources of errors triggering this scenario. Particularly
- vulnerable are applications that use a timeout and also submit
- arbitrary user-crafted data as binary query parameters. Disabling
- statement timeout will reduce, but not eliminate, the risk of
- exploit. Our thanks to Emil Lenngren for reporting this issue.
- (CVE-2015-0244)
-
-
-
-
- Fix information leak via constraint-violation error messages
- (Stephen Frost)
-
-
- Some server error messages show the values of columns that violate
- a constraint, such as a unique constraint. If the user does not have
- SELECT> privilege on all columns of the table, this could
- mean exposing values that the user should not be able to see. Adjust
- the code so that values are displayed only when they came from the SQL
- command or could be selected by the user.
- (CVE-2014-8161)
-
-
-
-
- Lock down regression testing's temporary installations on Windows
- (Noah Misch)
-
-
- Use SSPI authentication to allow connections only from the OS user
- who launched the test suite. This closes on Windows the same
- vulnerability previously closed on other platforms, namely that other
- users might be able to connect to the test postmaster.
- (CVE-2014-0067)
-
-
-
-
- Avoid possible data corruption if ALTER DATABASE SET
- TABLESPACE> is used to move a database to a new tablespace and then
- shortly later move it back to its original tablespace (Tom Lane)
-
-
-
-
- Avoid corrupting tables when ANALYZE> inside a transaction
- is rolled back (Andres Freund, Tom Lane, Michael Paquier)
-
-
- If the failing transaction had earlier removed the last index, rule, or
- trigger from the table, the table would be left in a corrupted state
- with the relevant pg_class> flags not set though they
- should be.
-
-
-
-
- Ensure that unlogged tables are copied correctly
- during CREATE DATABASE> or ALTER DATABASE SET
- TABLESPACE> (Pavan Deolasee, Andres Freund)
-
-
-
-
- Fix DROP>'s dependency searching to correctly handle the
- case where a table column is recursively visited before its table
- (Petr Jelinek, Tom Lane)
-
-
- This case is only known to arise when an extension creates both a
- datatype and a table using that datatype. The faulty code might
- refuse a DROP EXTENSION> unless CASCADE> is
- specified, which should not be required.
-
-
-
-
- Fix use-of-already-freed-memory problem in EvalPlanQual processing
- (Tom Lane)
-
-
- In READ COMMITTED> mode, queries that lock or update
- recently-updated rows could crash as a result of this bug.
-
-
-
-
- Fix planning of SELECT FOR UPDATE> when using a partial
- index on a child table (Kyotaro Horiguchi)
-
-
- In READ COMMITTED> mode, SELECT FOR UPDATE> must
- also recheck the partial index's WHERE> condition when
- rechecking a recently-updated row to see if it still satisfies the
- query's WHERE> condition. This requirement was missed if the
- index belonged to an inheritance child table, so that it was possible
- to incorrectly return rows that no longer satisfy the query condition.
-
-
-
-
- Fix corner case wherein SELECT FOR UPDATE> could return a row
- twice, and possibly miss returning other rows (Tom Lane)
-
-
- In READ COMMITTED> mode, a SELECT FOR UPDATE>
- that is scanning an inheritance tree could incorrectly return a row
- from a prior child table instead of the one it should return from a
- later child table.
-
-
-
-
- Reject duplicate column names in the referenced-columns list of
- a FOREIGN KEY> declaration (David Rowley)
-
-
- This restriction is per SQL standard. Previously we did not reject
- the case explicitly, but later on the code would fail with
- bizarre-looking errors.
-
-
-
-
- Fix bugs in raising a numeric> value to a large integral power
- (Tom Lane)
-
-
- The previous code could get a wrong answer, or consume excessive
- amounts of time and memory before realizing that the answer must
- overflow.
-
-
-
-
- In numeric_recv()>, truncate away any fractional digits
- that would be hidden according to the value's dscale> field
- (Tom Lane)
-
-
- A numeric> value's display scale (dscale>) should
- never be less than the number of nonzero fractional digits; but
- apparently there's at least one broken client application that
- transmits binary numeric> values in which that's true.
- This leads to strange behavior since the extra digits are taken into
- account by arithmetic operations even though they aren't printed.
- The least risky fix seems to be to truncate away such hidden>
- digits on receipt, so that the value is indeed what it prints as.
-
-
-
-
- Reject out-of-range numeric timezone specifications (Tom Lane)
-
-
- Simple numeric timezone specifications exceeding +/- 168 hours (one
- week) would be accepted, but could then cause null-pointer dereference
- crashes in certain operations. There's no use-case for such large UTC
- offsets, so reject them.
-
-
-
-
- Fix bugs in tsquery> @>> tsquery>
- operator (Heikki Linnakangas)
-
-
- Two different terms would be considered to match if they had the same
- CRC. Also, if the second operand had more terms than the first, it
- would be assumed not to be contained in the first; which is wrong
- since it might contain duplicate terms.
-
-
-
-
- Improve ispell dictionary's defenses against bad affix files (Tom Lane)
-
-
-
-
- Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
-
-
- The previous coding could crash on an oversize dictionary, so this was
- deemed a back-patchable bug fix rather than a feature addition.
-
-
-
-
- Fix namespace handling in xpath()> (Ali Akbar)
-
-
- Previously, the xml> value resulting from
- an xpath()> call would not have namespace declarations if
- the namespace declarations were attached to an ancestor element in the
- input xml> value, rather than to the specific element being
- returned. Propagate the ancestral declaration so that the result is
- correct when considered in isolation.
-
-
-
-
- Fix planner problems with nested append relations, such as inherited
- tables within UNION ALL> subqueries (Tom Lane)
-
-
-
-
- Fail cleanly when a GiST index tuple doesn't fit on a page, rather
- than going into infinite recursion (Andrew Gierth)
-
-
-
-
- Exempt tables that have per-table cost_limit>
- and/or cost_delay> settings from autovacuum's global cost
- balancing rules (Álvaro Herrera)
-
-
- The previous behavior resulted in basically ignoring these per-table
- settings, which was unintended. Now, a table having such settings
- will be vacuumed using those settings, independently of what is going
- on in other autovacuum workers. This may result in heavier total I/O
- load than before, so such settings should be re-examined for sanity.
-
-
-
-
- Avoid wholesale autovacuuming when autovacuum is nominally off
- (Tom Lane)
-
-
- Even when autovacuum is nominally off, we will still launch autovacuum
- worker processes to vacuum tables that are at risk of XID wraparound.
- However, such a worker process then proceeded to vacuum all tables in
- the target database, if they met the usual thresholds for
- autovacuuming. This is at best pretty unexpected; at worst it delays
- response to the wraparound threat. Fix it so that if autovacuum is
- turned off, workers only> do anti-wraparound vacuums and
- not any other work.
-
-
-
-
- During crash recovery, ensure that unlogged relations are rewritten as
- empty and are synced to disk before recovery is considered complete
- (Abhijit Menon-Sen, Andres Freund)
-
-
- This prevents scenarios in which unlogged relations might contain
- garbage data following database crash recovery.
-
-
-
-
- Fix race condition between hot standby queries and replaying a
- full-page image (Heikki Linnakangas)
-
-
- This mistake could result in transient errors in queries being
- executed in hot standby.
-
-
-
-
- Fix several cases where recovery logic improperly ignored WAL records
- for COMMIT/ABORT PREPARED> (Heikki Linnakangas)
-
-
- The most notable oversight was
- that recovery_target_xid> could not be used to stop at
- a two-phase commit.
-
-
-
-
- Avoid creating unnecessary .ready> marker files for
- timeline history files (Fujii Masao)
-
-
-
-
- Fix possible null pointer dereference when an empty prepared statement
- is used and the log_statement> setting is mod>
- or ddl> (Fujii Masao)
-
-
-
-
- Change pgstat wait timeout> warning message to be LOG level,
- and rephrase it to be more understandable (Tom Lane)
-
-
- This message was originally thought to be essentially a can't-happen
- case, but it occurs often enough on our slower buildfarm members to be
- a nuisance. Reduce it to LOG level, and expend a bit more effort on
- the wording: it now reads using stale statistics instead of
- current ones because stats collector is not responding>.
-
-
-
-
- Fix SPARC spinlock implementation to ensure correctness if the CPU is
- being run in a non-TSO coherency mode, as some non-Solaris kernels do
- (Andres Freund)
-
-
-
-
- Warn if macOS's setlocale()> starts an unwanted extra
- thread inside the postmaster (Noah Misch)
-
-
-
-
- Fix processing of repeated dbname> parameters
- in PQconnectdbParams()> (Alex Shulgin)
-
-
- Unexpected behavior ensued if the first occurrence
- of dbname> contained a connection string or URI to be
- expanded.
-
-
-
-
- Ensure that
libpq> reports a suitable error message on
- unexpected socket EOF (Marko Tiikkaja, Tom Lane)
-
-
- Depending on kernel behavior,
libpq> might return an
- empty error string rather than something useful when the server
- unexpectedly closed the socket.
-
-
-
-
- Clear any old error message during PQreset()>
- (Heikki Linnakangas)
-
-
- If PQreset()> is called repeatedly, and the connection
- cannot be re-established, error messages from the failed connection
- attempts kept accumulating in the PGconn>'s error
- string.
-
-
-
-
- Properly handle out-of-memory conditions while parsing connection
- options in
libpq> (Alex Shulgin, Heikki Linnakangas)
-
-
-
-
- Fix array overrun in
ecpg>'s version
- of ParseDateTime()> (Michael Paquier)
-
-
-
-
- In
initdb>, give a clearer error message if a password
- file is specified but is empty (Mats Erik Andersson)
-
-
-
-
- Fix
psql>'s \s> command to work nicely with
- libedit, and add pager support (Stepan Rutz, Tom Lane)
-
-
- When using libedit rather than readline, \s> printed the
- command history in a fairly unreadable encoded format, and on recent
- libedit versions might fail altogether. Fix that by printing the
- history ourselves rather than having the library do it. A pleasant
- side-effect is that the pager is used if appropriate.
-
-
- This patch also fixes a bug that caused newline encoding to be applied
- inconsistently when saving the command history with libedit.
- Multiline history entries written by older
psql>
- versions will be read cleanly with this patch, but perhaps not
- vice versa, depending on the exact libedit versions involved.
-
-
-
-
- Improve consistency of parsing of
psql>'s special
- variables (Tom Lane)
-
-
- Allow variant spellings of on> and off> (such
- as 1>/0>) for ECHO_HIDDEN>
- and ON_ERROR_ROLLBACK>. Report a warning for unrecognized
- values for COMP_KEYWORD_CASE>, ECHO>,
- ECHO_HIDDEN>, HISTCONTROL>,
- ON_ERROR_ROLLBACK>, and VERBOSITY>. Recognize
- all values for all these variables case-insensitively; previously
- there was a mishmash of case-sensitive and case-insensitive behaviors.
-
-
-
-
- Fix
psql>'s expanded-mode display to work
- consistently when using border> = 3
- and linestyle> = ascii> or unicode>
- (Stephen Frost)
-
-
-
-
- Improve performance of
pg_dump> when the database
- contains many instances of multiple dependency paths between the same
- two objects (Tom Lane)
-
-
-
-
- Fix possible deadlock during parallel restore of a schema-only dump
- (Robert Haas, Tom Lane)
-
-
-
-
- Fix core dump in pg_dump --binary-upgrade> on zero-column
- composite type (Rushabh Lathia)
-
-
-
-
- Prevent WAL files created by pg_basebackup -x/-X> from
- being archived again when the standby is promoted (Andres Freund)
-
-
-
-
- Fix upgrade-from-unpackaged script for contrib/citext>
- (Tom Lane)
-
-
-
-
- Fix block number checking
- in contrib/pageinspect>'s get_raw_page()>
- (Tom Lane)
-
-
- The incorrect checking logic could prevent access to some pages in
- non-main relation forks.
-
-
-
-
- Fix contrib/pgcrypto>'s pgp_sym_decrypt()>
- to not fail on messages whose length is 6 less than a power of 2
- (Marko Tiikkaja)
-
-
-
-
- Fix file descriptor leak in contrib/pg_test_fsync>
- (Jeff Janes)
-
-
- This could cause failure to remove temporary files on Windows.
-
-
-
-
- Handle unexpected query results, especially NULLs, safely in
- contrib/tablefunc>'s connectby()>
- (Michael Paquier)
-
-
- connectby()> previously crashed if it encountered a NULL
- key value. It now prints that row but doesn't recurse further.
-
-
-
-
- Avoid a possible crash in contrib/xml2>'s
- xslt_process()> (Mark Simonetti)
-
-
-
libxslt> seems to have an undocumented dependency on
- the order in which resources are freed; reorder our calls to avoid a
- crash.
-
-
-
-
- Mark some contrib> I/O functions with correct volatility
- properties (Tom Lane)
-
-
- The previous over-conservative marking was immaterial in normal use,
- but could cause optimization problems or rejection of valid index
- expression definitions. Since the consequences are not large, we've
- just adjusted the function definitions in the extension modules'
- scripts, without changing version numbers.
-
-
-
-
- Numerous cleanups of warnings from Coverity static code analyzer
- (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
-
-
- These changes are mostly cosmetic but in some cases fix corner-case
- bugs, for example a crash rather than a proper error report after an
- out-of-memory failure. None are believed to represent security
- issues.
-
-
-
-
- Detect incompatible OpenLDAP versions during build (Noah Misch)
-
-
- With OpenLDAP versions 2.4.24 through 2.4.31,
- inclusive,
PostgreSQL> backends can crash at exit.
- Raise a warning during
configure> based on the
- compile-time OpenLDAP version number, and test the crashing scenario
- in the contrib/dblink> regression test.
-
-
-
-
- In non-MSVC Windows builds, ensure libpq.dll> is installed
- with execute permissions (Noah Misch)
-
-
-
-
- Make
pg_regress> remove any temporary installation it
- created upon successful exit (Tom Lane)
-
-
- This results in a very substantial reduction in disk space usage
- during make check-world>, since that sequence involves
- creation of numerous temporary installations.
-
-
-
-
- Support time zone abbreviations that change UTC offset from time to
- time (Tom Lane)
-
-
- Previously,
PostgreSQL> assumed that the UTC offset
- associated with a time zone abbreviation (such as EST>)
- never changes in the usage of any particular locale. However this
- assumption fails in the real world, so introduce the ability for a
- zone abbreviation to represent a UTC offset that sometimes changes.
- Update the zone abbreviation definition files to make use of this
- feature in timezone locales that have changed the UTC offset of their
- abbreviations since 1970 (according to the IANA timezone database).
- In such timezones,
PostgreSQL> will now associate the
- correct UTC offset with the abbreviation depending on the given date.
-
-
-
-
- Update time zone abbreviations lists (Tom Lane)
-
-
- Add CST (China Standard Time) to our lists.
- Remove references to ADT as Arabia Daylight Time>, an
- abbreviation that's been out of use since 2007; therefore, claiming
- there is a conflict with Atlantic Daylight Time> doesn't seem
- especially helpful.
- Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
- (Fiji); we didn't even have them on the proper side of the date line.
-
-
-
-
- Update time zone data files to
tzdata> release 2015a.
-
-
- The IANA timezone database has adopted abbreviations of the form
- Ax>ST /Ax>DT
- for all Australian time zones, reflecting what they believe to be
- current majority practice Down Under. These names do not conflict
- with usage elsewhere (other than ACST for Acre Summer Time, which has
- been in disuse since 1994). Accordingly, adopt these names into
- our Default> timezone abbreviation set.
- The Australia> abbreviation set now contains only CST, EAST,
- EST, SAST, SAT, and WST, all of which are thought to be mostly
- historical usage. Note that SAST has also been changed to be South
- Africa Standard Time in the Default> abbreviation set.
-
-
- Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
- (Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were
- DST law changes in Chile, Mexico, the Turks & Caicos Islands
- (America/Grand_Turk), and Fiji. There is a new zone
- Pacific/Bougainville for portions of Papua New Guinea. Also, numerous
- corrections for historical (pre-1970) time zone data.
-
-
-
-
-
-
-
-
-
-
Release 9.1.14
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.13.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.14
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, this release corrects an index corruption problem in some GiST
- indexes. See the first changelog entry below to find out whether your
- installation has been affected and what steps you should take if so.
-
-
- Also, if you are upgrading from a version earlier than 9.1.11,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Correctly initialize padding bytes in contrib/btree_gist>
- indexes on bit> columns (Heikki Linnakangas)
-
-
- This error could result in incorrect query results due to values that
- should compare equal not being seen as equal.
- Users with GiST indexes on bit> or bit varying>
- columns should REINDEX> those indexes after installing this
- update.
-
-
-
-
- Protect against torn pages when deleting GIN list pages (Heikki
- Linnakangas)
-
-
- This fix prevents possible index corruption if a system crash occurs
- while the page update is being written to disk.
-
-
-
-
- Don't clear the right-link of a GiST index page while replaying
- updates from WAL (Heikki Linnakangas)
-
-
- This error could lead to transiently wrong answers from GiST index
- scans performed in Hot Standby.
-
-
-
-
- Fix feedback status when is
- turned off on-the-fly (Simon Riggs)
-
-
-
-
- Fix possibly-incorrect cache invalidation during nested calls
- to ReceiveSharedInvalidMessages> (Andres Freund)
-
-
-
-
- Fix could not find pathkey item to sort> planner failures
- with UNION ALL> over subqueries reading from tables with
- inheritance children (Tom Lane)
-
-
-
-
- Don't assume a subquery's output is unique if there's a set-returning
- function in its targetlist (David Rowley)
-
-
- This oversight could lead to misoptimization of constructs
- like WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
- BY y).
-
-
-
-
- Fix failure to detoast fields in composite elements of structured
- types (Tom Lane)
-
-
- This corrects cases where TOAST pointers could be copied into other
- tables without being dereferenced. If the original data is later
- deleted, it would lead to errors like missing chunk number 0
- for toast value ...> when the now-dangling pointer is used.
-
-
-
-
- Fix record type has not been registered> failures with
- whole-row references to the output of Append plan nodes (Tom Lane)
-
-
-
-
- Fix possible crash when invoking a user-defined function while
- rewinding a cursor (Tom Lane)
-
-
-
-
- Fix query-lifespan memory leak while evaluating the arguments for a
- function in FROM> (Tom Lane)
-
-
-
-
- Fix session-lifespan memory leaks in regular-expression processing
- (Tom Lane, Arthur O'Dwyer, Greg Stark)
-
-
-
-
- Fix data encoding error in hungarian.stop> (Tom Lane)
-
-
-
-
- Prevent foreign tables from being created with OIDS
- when is true
- (Etsuro Fujita)
-
-
-
-
- Fix liveness checks for rows that were inserted in the current
- transaction and then deleted by a now-rolled-back subtransaction
- (Andres Freund)
-
-
- This could cause problems (at least spurious warnings, and at worst an
- infinite loop) if CREATE INDEX> or CLUSTER> were
- done later in the same transaction.
-
-
-
-
- Clear pg_stat_activity>.xact_start>
- during PREPARE TRANSACTION> (Andres Freund)
-
-
- After the PREPARE>, the originating session is no longer in
- a transaction, so it should not continue to display a transaction
- start time.
-
-
-
-
- Fix REASSIGN OWNED> to not fail for text search objects
- (Álvaro Herrera)
-
-
-
-
- Block signals during postmaster startup (Tom Lane)
-
-
- This ensures that the postmaster will properly clean up after itself
- if, for example, it receives SIGINT> while still
- starting up.
-
-
-
-
- Fix client host name lookup when processing pg_hba.conf>
- entries that specify host names instead of IP addresses (Tom Lane)
-
-
- Ensure that reverse-DNS lookup failures are reported, instead of just
- silently not matching such entries. Also ensure that we make only
- one reverse-DNS lookup attempt per connection, not one per host name
- entry, which is what previously happened if the lookup attempts failed.
-
-
-
-
- Secure Unix-domain sockets of temporary postmasters started during
- make check> (Noah Misch)
-
-
- Any local user able to access the socket file could connect as the
- server's bootstrap superuser, then proceed to execute arbitrary code as
- the operating-system user running the test, as we previously noted in
- CVE-2014-0067. This change defends against that risk by placing the
- server's socket in a temporary, mode 0700 subdirectory
- of /tmp>. The hazard remains however on platforms where
- Unix sockets are not supported, notably Windows, because then the
- temporary postmaster must accept local TCP connections.
-
-
- A useful side effect of this change is to simplify
- make check> testing in builds that
- override DEFAULT_PGSOCKET_DIR>. Popular non-default values
- like /var/run/postgresql> are often not writable by the
- build user, requiring workarounds that will no longer be necessary.
-
-
-
-
- Fix tablespace creation WAL replay to work on Windows (MauMau)
-
-
-
-
- Fix detection of socket creation failures on Windows (Bruce Momjian)
-
-
-
-
- On Windows, allow new sessions to absorb values of PGC_BACKEND
- parameters (such as ) from the
- configuration file (Amit Kapila)
-
-
- Previously, if such a parameter were changed in the file post-startup,
- the change would have no effect.
-
-
-
-
- Properly quote executable path names on Windows (Nikhil Deshpande)
-
-
- This oversight could cause
initdb>
- and
pg_upgrade> to fail on Windows, if the installation
- path contained both spaces and @> signs.
-
-
-
-
- Fix linking of
libpython> on macOS (Tom Lane)
-
-
- The method we previously used can fail with the Python library
- supplied by Xcode 5.0 and later.
-
-
-
-
- Avoid buffer bloat in
libpq> when the server
- consistently sends data faster than the client can absorb it
- (Shin-ichi Morita, Tom Lane)
-
-
-
libpq> could be coerced into enlarging its input buffer
- until it runs out of memory (which would be reported misleadingly
- as lost synchronization with server>). Under ordinary
- circumstances it's quite far-fetched that data could be continuously
- transmitted more quickly than the recv()> loop can
- absorb it, but this has been observed when the client is artificially
- slowed by scheduler constraints.
-
-
-
-
- Ensure that LDAP lookup attempts in
libpq> time out as
- intended (Laurenz Albe)
-
-
-
-
- Fix
ecpg> to do the right thing when an array
- of char *> is the target for a FETCH statement returning more
- than one row, as well as some other array-handling fixes
- (Ashutosh Bapat)
-
-
-
-
- Fix
pg_restore>'s processing of old-style large object
- comments (Tom Lane)
-
-
- A direct-to-database restore from an archive file generated by a
- pre-9.0 version of
pg_dump> would usually fail if the
- archive contained more than a few comments for large objects.
-
-
-
-
- In contrib/pgcrypto> functions, ensure sensitive
- information is cleared from stack variables before returning
- (Marko Kreen)
-
-
-
-
- In contrib/uuid-ossp>, cache the state of the OSSP UUID
- library across calls (Tom Lane)
-
-
- This improves the efficiency of UUID generation and reduces the amount
- of entropy drawn from /dev/urandom>, on platforms that
- have that.
-
-
-
-
- Update time zone data files to
tzdata> release 2014e
- for DST law changes in Crimea, Egypt, and Morocco.
-
-
-
-
-
-
-
-
-
-
Release 9.1.13
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.12.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.13
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.11,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Restore GIN metapages unconditionally to avoid torn-page risk
- (Heikki Linnakangas)
-
-
- Although this oversight could theoretically result in a corrupted
- index, it is unlikely to have caused any problems in practice, since
- the active part of a GIN metapage is smaller than a standard 512-byte
- disk sector.
-
-
-
-
- Avoid race condition in checking transaction commit status during
- receipt of a NOTIFY> message (Marko Tiikkaja)
-
-
- This prevents a scenario wherein a sufficiently fast client might
- respond to a notification before database updates made by the
- notifier have become visible to the recipient.
-
-
-
-
- Allow regular-expression operators to be terminated early by query
- cancel requests (Tom Lane)
-
-
- This prevents scenarios wherein a pathological regular expression
- could lock up a server process uninterruptibly for a long time.
-
-
-
-
- Remove incorrect code that tried to allow OVERLAPS> with
- single-element row arguments (Joshua Yanovski)
-
-
- This code never worked correctly, and since the case is neither
- specified by the SQL standard nor documented, it seemed better to
- remove it than fix it.
-
-
-
-
- Avoid getting more than AccessShareLock> when de-parsing a
- rule or view (Dean Rasheed)
-
-
- This oversight resulted in
pg_dump> unexpectedly
- acquiring RowExclusiveLock> locks on tables mentioned as
- the targets of INSERT>/UPDATE>/DELETE>
- commands in rules. While usually harmless, that could interfere with
- concurrent transactions that tried to acquire, for example,
- ShareLock> on those tables.
-
-
-
-
- Improve performance of index endpoint probes during planning (Tom Lane)
-
-
- This change fixes a significant performance problem that occurred
- when there were many not-yet-committed rows at the end of the index,
- which is a common situation for indexes on sequentially-assigned
- values such as timestamps or sequence-generated identifiers.
-
-
-
-
- Fix
walsender>'s failure to shut down cleanly when client
- is
pg_receivexlog> (Fujii Masao)
-
-
-
-
- Fix test to see if hot standby connections can be allowed immediately
- after a crash (Heikki Linnakangas)
-
-
-
-
- Prevent interrupts while reporting non-ERROR> messages
- (Tom Lane)
-
-
- This guards against rare server-process freezeups due to recursive
- entry to syslog()>, and perhaps other related problems.
-
-
-
-
- Fix memory leak in PL/Perl when returning a composite result, including
- multiple-OUT-parameter cases (Alex Hunsaker)
-
-
-
-
- Prevent intermittent could not reserve shared memory region>
- failures on recent Windows versions (MauMau)
-
-
-
-
- Update time zone data files to
tzdata> release 2014a
- for DST law changes in Fiji and Turkey, plus historical changes in
- Israel and Ukraine.
-
-
-
-
-
-
-
-
-
-
Release 9.1.12
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.11.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.12
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.11,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Shore up GRANT ... WITH ADMIN OPTION> restrictions
- (Noah Misch)
-
-
- Granting a role without ADMIN OPTION> is supposed to
- prevent the grantee from adding or removing members from the granted
- role, but this restriction was easily bypassed by doing SET
- ROLE> first. The security impact is mostly that a role member can
- revoke the access of others, contrary to the wishes of his grantor.
- Unapproved role member additions are a lesser concern, since an
- uncooperative role member could provide most of his rights to others
- anyway by creating views or SECURITY DEFINER> functions.
- (CVE-2014-0060)
-
-
-
-
- Prevent privilege escalation via manual calls to PL validator
- functions (Andres Freund)
-
-
- The primary role of PL validator functions is to be called implicitly
- during CREATE FUNCTION>, but they are also normal SQL
- functions that a user can call explicitly. Calling a validator on
- a function actually written in some other language was not checked
- for and could be exploited for privilege-escalation purposes.
- The fix involves adding a call to a privilege-checking function in
- each validator function. Non-core procedural languages will also
- need to make this change to their own validator functions, if any.
- (CVE-2014-0061)
-
-
-
-
- Avoid multiple name lookups during table and index DDL
- (Robert Haas, Andres Freund)
-
-
- If the name lookups come to different conclusions due to concurrent
- activity, we might perform some parts of the DDL on a different table
- than other parts. At least in the case of CREATE INDEX>,
- this can be used to cause the permissions checks to be performed
- against a different table than the index creation, allowing for a
- privilege escalation attack.
- (CVE-2014-0062)
-
-
-
-
- Prevent buffer overrun with long datetime strings (Noah Misch)
-
-
- The MAXDATELEN> constant was too small for the longest
- possible value of type interval>, allowing a buffer overrun
- in interval_out()>. Although the datetime input
- functions were more careful about avoiding buffer overrun, the limit
- was short enough to cause them to reject some valid inputs, such as
- input containing a very long timezone name. The
ecpg>
- library contained these vulnerabilities along with some of its own.
- (CVE-2014-0063)
-
-
-
-
- Prevent buffer overrun due to integer overflow in size calculations
- (Noah Misch, Heikki Linnakangas)
-
-
- Several functions, mostly type input functions, calculated an
- allocation size without checking for overflow. If overflow did
- occur, a too-small buffer would be allocated and then written past.
- (CVE-2014-0064)
-
-
-
-
- Prevent overruns of fixed-size buffers
- (Peter Eisentraut, Jozef Mlich)
-
-
- Use strlcpy()> and related functions to provide a clear
- guarantee that fixed-size buffers are not overrun. Unlike the
- preceding items, it is unclear whether these cases really represent
- live issues, since in most cases there appear to be previous
- constraints on the size of the input string. Nonetheless it seems
- prudent to silence all Coverity warnings of this type.
- (CVE-2014-0065)
-
-
-
-
- Avoid crashing if crypt()> returns NULL (Honza Horak,
- Bruce Momjian)
-
-
- There are relatively few scenarios in which crypt()>
- could return NULL, but contrib/chkpass> would crash
- if it did. One practical case in which this could be an issue is
- if
libc> is configured to refuse to execute unapproved
- hashing algorithms (e.g., FIPS mode>).
- (CVE-2014-0066)
-
-
-
-
- Document risks of make check> in the regression testing
- instructions (Noah Misch, Tom Lane)
-
-
- Since the temporary server started by make check>
- uses trust> authentication, another user on the same machine
- could connect to it as database superuser, and then potentially
- exploit the privileges of the operating-system user who started the
- tests. A future release will probably incorporate changes in the
- testing procedure to prevent this risk, but some public discussion is
- needed first. So for the moment, just warn people against using
- make check> when there are untrusted users on the
- same machine.
- (CVE-2014-0067)
-
-
-
-
- Fix possible mis-replay of WAL records when some segments of a
- relation aren't full size (Greg Stark, Tom Lane)
-
-
- The WAL update could be applied to the wrong page, potentially many
- pages past where it should have been. Aside from corrupting data,
- this error has been observed to result in significant bloat>
- of standby servers compared to their masters, due to updates being
- applied far beyond where the end-of-file should have been. This
- failure mode does not appear to be a significant risk during crash
- recovery, only when initially synchronizing a standby created from a
- base backup taken from a quickly-changing master.
-
-
-
-
- Fix bug in determining when recovery has reached consistency
- (Tomonari Katsumata, Heikki Linnakangas)
-
-
- In some cases WAL replay would mistakenly conclude that the database
- was already consistent at the start of replay, thus possibly allowing
- hot-standby queries before the database was really consistent. Other
- symptoms such as PANIC: WAL contains references to invalid
- pages> were also possible.
-
-
-
-
- Fix improper locking of btree index pages while replaying
- a VACUUM> operation in hot-standby mode (Andres Freund,
- Heikki Linnakangas, Tom Lane)
-
-
- This error could result in PANIC: WAL contains references to
- invalid pages> failures.
-
-
-
-
- Ensure that insertions into non-leaf GIN index pages write a full-page
- WAL record when appropriate (Heikki Linnakangas)
-
-
- The previous coding risked index corruption in the event of a
- partial-page write during a system crash.
-
-
-
-
- When pause_at_recovery_target>
- and recovery_target_inclusive> are both set, ensure the
- target record is applied before pausing, not after (Heikki
- Linnakangas)
-
-
-
-
- Fix race conditions during server process exit (Robert Haas)
-
-
- Ensure that signal handlers don't attempt to use the
- process's MyProc> pointer after it's no longer valid.
-
-
-
-
- Fix race conditions in walsender shutdown logic and walreceiver
- SIGHUP signal handler (Tom Lane)
-
-
-
-
- Fix unsafe references to errno> within error reporting
- logic (Christian Kruse)
-
-
- This would typically lead to odd behaviors such as missing or
- inappropriate HINT> fields.
-
-
-
-
- Fix possible crashes from using ereport()> too early
- during server startup (Tom Lane)
-
-
- The principal case we've seen in the field is a crash if the server
- is started in a directory it doesn't have permission to read.
-
-
-
-
- Clear retry flags properly in OpenSSL socket write
- function (Alexander Kukushkin)
-
-
- This omission could result in a server lockup after unexpected loss
- of an SSL-encrypted connection.
-
-
-
-
- Fix length checking for Unicode identifiers (U&"...">
- syntax) containing escapes (Tom Lane)
-
-
- A spurious truncation warning would be printed for such identifiers
- if the escaped form of the identifier was too long, but the
- identifier actually didn't need truncation after de-escaping.
-
-
-
-
- Allow keywords that are type names to be used in lists of roles
- (Stephen Frost)
-
-
- A previous patch allowed such keywords to be used without quoting
- in places such as role identifiers; but it missed cases where a
- list of role identifiers was permitted, such as DROP ROLE>.
-
-
-
-
- Fix parser crash for EXISTS(SELECT * FROM
- zero_column_table) (Tom Lane)
-
-
-
-
- Fix possible crash due to invalid plan for nested sub-selects, such
- as WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)>
- (Tom Lane)
-
-
-
-
- Ensure that ANALYZE> creates statistics for a table column
- even when all the values in it are too wide> (Tom Lane)
-
-
- ANALYZE> intentionally omits very wide values from its
- histogram and most-common-values calculations, but it neglected to do
- something sane in the case that all the sampled entries are too wide.
-
-
-
-
- In ALTER TABLE ... SET TABLESPACE>, allow the database's
- default tablespace to be used without a permissions check
- (Stephen Frost)
-
-
- CREATE TABLE> has always allowed such usage,
- but ALTER TABLE> didn't get the memo.
-
-
-
-
- Fix cannot accept a set> error when some arms of
- a CASE> return a set and others don't (Tom Lane)
-
-
-
-
- Fix checks for all-zero client addresses in pgstat functions (Kevin
- Grittner)
-
-
-
-
- Fix possible misclassification of multibyte characters by the text
- search parser (Tom Lane)
-
-
- Non-ASCII characters could be misclassified when using C locale with
- a multibyte encoding. On Cygwin, non-C locales could fail as well.
-
-
-
-
- Fix possible misbehavior in plainto_tsquery()>
- (Heikki Linnakangas)
-
-
- Use memmove()> not memcpy()> for copying
- overlapping memory regions. There have been no field reports of
- this actually causing trouble, but it's certainly risky.
-
-
-
-
- Fix placement of permissions checks in pg_start_backup()>
- and pg_stop_backup()> (Andres Freund, Magnus Hagander)
-
-
- The previous coding might attempt to do catalog access when it
- shouldn't.
-
-
-
-
- Accept SHIFT_JIS> as an encoding name for locale checking
- purposes (Tatsuo Ishii)
-
-
-
-
- Fix misbehavior of PQhost()> on Windows (Fujii Masao)
-
-
- It should return localhost> if no host has been specified.
-
-
-
-
- Improve error handling in
libpq> and psql>
- for failures during COPY TO STDOUT/FROM STDIN> (Tom Lane)
-
-
- In particular this fixes an infinite loop that could occur in 9.2 and
- up if the server connection was lost during COPY FROM
- STDIN>. Variants of that scenario might be possible in older
- versions, or with other client applications.
-
-
-
-
- Fix possible incorrect printing of filenames
- in
pg_basebackup>'s verbose mode (Magnus Hagander)
-
-
-
-
- Avoid including tablespaces inside PGDATA twice in base backups
- (Dimitri Fontaine, Magnus Hagander)
-
-
-
-
- Fix misaligned descriptors in
ecpg> (MauMau)
-
-
-
-
- In
ecpg>, handle lack of a hostname in the connection
- parameters properly (Michael Meskes)
-
-
-
-
- Fix performance regression in contrib/dblink> connection
- startup (Joe Conway)
-
-
- Avoid an unnecessary round trip when client and server encodings match.
-
-
-
-
- In contrib/isn>, fix incorrect calculation of the check
- digit for ISMN values (Fabien Coelho)
-
-
-
-
- Ensure client-code-only installation procedure works as documented
- (Peter Eisentraut)
-
-
-
-
- In Mingw and Cygwin builds, install the
libpq> DLL
- in the bin> directory (Andrew Dunstan)
-
-
- This duplicates what the MSVC build has long done. It should fix
- problems with programs like
psql> failing to start
- because they can't find the DLL.
-
-
-
-
- Avoid using the deprecated dllwrap> tool in Cygwin builds
- (Marco Atzeri)
-
-
-
-
- Don't generate plain-text HISTORY>
- and src/test/regress/README> files anymore (Tom Lane)
-
-
- These text files duplicated the main HTML and PDF documentation
- formats. The trouble involved in maintaining them greatly outweighs
- the likely audience for plain-text format. Distribution tarballs
- will still contain files by these names, but they'll just be stubs
- directing the reader to consult the main documentation.
- The plain-text INSTALL> file will still be maintained, as
- there is arguably a use-case for that.
-
-
-
-
- Update time zone data files to
tzdata> release 2013i
- for DST law changes in Jordan and historical changes in Cuba.
-
-
- In addition, the zones Asia/Riyadh87>,
- Asia/Riyadh88>, and Asia/Riyadh89> have been
- removed, as they are no longer maintained by IANA, and never
- represented actual civil timekeeping practice.
-
-
-
-
-
-
-
-
-
-
Release 9.1.11
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.10.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.11
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, this release corrects a number of potential data corruption
- issues. See the first two changelog entries below to find out whether
- your installation has been affected and what steps you can take if so.
-
-
- Also, if you are upgrading from a version earlier than 9.1.9,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix VACUUM>'s tests to see whether it can
- update relfrozenxid> (Andres Freund)
-
-
- In some cases VACUUM> (either manual or autovacuum) could
- incorrectly advance a table's relfrozenxid> value,
- allowing tuples to escape freezing, causing those rows to become
- invisible once 2^31 transactions have elapsed. The probability of
- data loss is fairly low since multiple incorrect advancements would
- need to happen before actual loss occurs, but it's not zero. Users
- upgrading from releases 9.0.4 or 8.4.8 or earlier are not affected, but
- all later versions contain the bug.
-
-
- The issue can be ameliorated by, after upgrading, vacuuming all tables
- in all databases while having
- linkend="guc-vacuum-freeze-table-age">vacuum_freeze_table_age>
- set to zero. This will fix any latent corruption but will not be able
- to fix all pre-existing data errors. However, an installation can be
- presumed safe after performing this vacuuming if it has executed fewer
- than 2^31 update transactions in its lifetime (check this with
- SELECT txid_current() < 2^31>).
-
-
-
-
- Fix initialization of pg_clog> and pg_subtrans>
- during hot standby startup (Andres Freund, Heikki Linnakangas)
-
-
- This bug can cause data loss on standby servers at the moment they
- start to accept hot-standby queries, by marking committed transactions
- as uncommitted. The likelihood of such corruption is small unless, at
- the time of standby startup, the primary server has executed many
- updating transactions since its last checkpoint. Symptoms include
- missing rows, rows that should have been deleted being still visible,
- and obsolete versions of updated rows being still visible alongside
- their newer versions.
-
-
- This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
- Standby servers that have only been running earlier releases are not
- at risk. It's recommended that standby servers that have ever run any
- of the buggy releases be re-cloned from the primary (e.g., with a new
- base backup) after upgrading.
-
-
-
-
- Truncate pg_multixact> contents during WAL replay
- (Andres Freund)
-
-
- This avoids ever-increasing disk space consumption in standby servers.
-
-
-
-
- Fix race condition in GIN index posting tree page deletion (Heikki
- Linnakangas)
-
-
- This could lead to transient wrong answers or query failures.
-
-
-
-
- Avoid flattening a subquery whose SELECT> list contains a
- volatile function wrapped inside a sub-SELECT> (Tom Lane)
-
-
- This avoids unexpected results due to extra evaluations of the
- volatile function.
-
-
-
-
- Fix planner's processing of non-simple-variable subquery outputs
- nested within outer joins (Tom Lane)
-
-
- This error could lead to incorrect plans for queries involving
- multiple levels of subqueries within JOIN> syntax.
-
-
-
-
- Fix incorrect generation of optimized MIN()/MAX() plans for
- inheritance trees (Tom Lane)
-
-
- The planner could fail in cases where the MIN()/MAX() argument was an
- expression rather than a simple variable.
-
-
-
-
- Fix premature deletion of temporary files (Andres Freund)
-
-
-
-
- Fix possible read past end of memory in rule printing (Peter Eisentraut)
-
-
-
-
- Fix array slicing of int2vector> and oidvector> values
- (Tom Lane)
-
-
- Expressions of this kind are now implicitly promoted to
- regular int2> or oid> arrays.
-
-
-
-
- Fix incorrect behaviors when using a SQL-standard, simple GMT offset
- timezone (Tom Lane)
-
-
- In some cases, the system would use the simple GMT offset value when
- it should have used the regular timezone setting that had prevailed
- before the simple offset was selected. This change also causes
- the timeofday> function to honor the simple GMT offset
- zone.
-
-
-
-
- Prevent possible misbehavior when logging translations of Windows
- error codes (Tom Lane)
-
-
-
-
- Properly quote generated command lines in
pg_ctl>
- (Naoya Anzai and Tom Lane)
-
-
- This fix applies only to Windows.
-
-
-
-
- Fix
pg_dumpall> to work when a source database
- sets
- linkend="guc-default-transaction-read-only">default_transaction_read_only>
- via ALTER DATABASE SET> (Kevin Grittner)
-
-
- Previously, the generated script would fail during restore.
-
-
-
-
- Make
ecpg> search for quoted cursor names
- case-sensitively (Zoltán Böszörményi)
-
-
-
-
- Fix
ecpg>'s processing of lists of variables
- declared varchar> (Zoltán Böszörményi)
-
-
-
-
- Make contrib/lo> defend against incorrect trigger definitions
- (Marc Cousin)
-
-
-
-
- Update time zone data files to
tzdata> release 2013h
- for DST law changes in Argentina, Brazil, Jordan, Libya,
- Liechtenstein, Morocco, and Palestine. Also, new timezone
- abbreviations WIB, WIT, WITA for Indonesia.
-
-
-
-
-
-
-
-
-
-
Release 9.1.10
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.9.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.10
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.9,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Prevent corruption of multi-byte characters when attempting to
- case-fold identifiers (Andrew Dunstan)
-
-
-
PostgreSQL> case-folds non-ASCII characters only
- when using a single-byte server encoding.
-
-
-
-
- Fix checkpoint memory leak in background writer when wal_level =
- hot_standby> (Naoya Anzai)
-
-
-
-
- Fix memory leak caused by lo_open() failure
- (Heikki Linnakangas)
-
-
-
-
- Fix memory overcommit bug when work_mem> is using more
- than 24GB of memory (Stephen Frost)
-
-
-
-
- Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
-
-
-
-
- Fix deadlock bug in libpq when using SSL (Stephen Frost)
-
-
-
-
- Fix possible SSL state corruption in threaded libpq applications
- (Nick Phillips, Stephen Frost)
-
-
-
-
- Properly compute row estimates for boolean columns containing many NULL
- values (Andrew Gierth)
-
-
- Previously tests like col IS NOT TRUE> and col IS
- NOT FALSE> did not properly factor in NULL values when estimating
- plan costs.
-
-
-
-
- Prevent pushing down WHERE> clauses into unsafe
- UNION/INTERSECT> subqueries (Tom Lane)
-
-
- Subqueries of a UNION> or INTERSECT> that
- contain set-returning functions or volatile functions in their
- SELECT> lists could be improperly optimized, leading to
- run-time errors or incorrect query results.
-
-
-
-
- Fix rare case of failed to locate grouping columns>
- planner failure (Tom Lane)
-
-
-
-
- Fix
pg_dump> of foreign tables with dropped columns (Andrew Dunstan)
-
-
- Previously such cases could cause a
pg_upgrade> error.
-
-
-
-
- Reorder
pg_dump> processing of extension-related
- rules and event triggers (Joe Conway)
-
-
-
-
- Force dumping of extension tables if specified by pg_dump
- -t> or -n> (Joe Conway)
-
-
-
-
- Improve view dumping code's handling of dropped columns in referenced
- tables (Tom Lane)
-
-
-
-
- Fix pg_restore -l> with the directory archive to display
- the correct format name (Fujii Masao)
-
-
-
-
- Properly record index comments created using UNIQUE>
- and PRIMARY KEY> syntax (Andres Freund)
-
-
- This fixes a parallel
pg_restore> failure.
-
-
-
-
- Properly guarantee transmission of WAL files before clean switchover
- (Fujii Masao)
-
-
- Previously, the streaming replication connection might close before all
- WAL files had been replayed on the standby.
-
-
-
-
- Fix WAL segment timeline handling during recovery (Mitsumasa Kondo,
- Heikki Linnakangas)
-
-
- WAL file recycling during standby recovery could lead to premature
- recovery completion, resulting in data loss.
-
-
-
-
- Fix REINDEX TABLE> and REINDEX DATABASE>
- to properly revalidate constraints and mark invalidated indexes as
- valid (Noah Misch)
-
-
- REINDEX INDEX> has always worked properly.
-
-
-
-
- Fix possible deadlock during concurrent CREATE INDEX
- CONCURRENTLY> operations (Tom Lane)
-
-
-
-
- Fix regexp_matches()> handling of zero-length matches
- (Jeevan Chalke)
-
-
- Previously, zero-length matches like '^' could return too many matches.
-
-
-
-
- Fix crash for overly-complex regular expressions (Heikki Linnakangas)
-
-
-
-
- Fix regular expression match failures for back references combined with
- non-greedy quantifiers (Jeevan Chalke)
-
-
-
-
- Prevent CREATE FUNCTION> from checking SET>
- variables unless function body checking is enabled (Tom Lane)
-
-
-
-
- Allow ALTER DEFAULT PRIVILEGES> to operate on schemas
- without requiring CREATE permission (Tom Lane)
-
-
-
-
- Loosen restriction on keywords used in queries (Tom Lane)
-
-
- Specifically, lessen keyword restrictions for role names, language
- names, EXPLAIN> and COPY> options, and
- SET> values. This allows COPY ... (FORMAT
- BINARY)> to work as expected; previously BINARY> needed
- to be quoted.
-
-
-
-
- Fix pgp_pub_decrypt()> so it works for secret keys with
- passwords (Marko Kreen)
-
-
-
-
- Make
pg_upgrade> use pg_dump
- --quote-all-identifiers> to avoid problems with keyword changes
- between releases (Tom Lane)
-
-
-
-
- Remove rare inaccurate warning during vacuum of index-less tables
- (Heikki Linnakangas)
-
-
-
-
- Ensure that VACUUM ANALYZE> still runs the ANALYZE phase
- if its attempt to truncate the file is cancelled due to lock conflicts
- (Kevin Grittner)
-
-
-
-
- Avoid possible failure when performing transaction control commands (e.g
- ROLLBACK>) in prepared queries (Tom Lane)
-
-
-
-
- Ensure that floating-point data input accepts standard spellings
- of infinity> on all platforms (Tom Lane)
-
-
- The C99 standard says that allowable spellings are inf>,
- +inf>, -inf>, infinity>,
- +infinity>, and -infinity>. Make sure we
- recognize these even if the platform's strtod> function
- doesn't.
-
-
-
-
- Expand ability to compare rows to records and arrays (Rafal Rzepecki,
- Tom Lane)
-
-
-
-
- Update time zone data files to
tzdata> release 2013d
- for DST law changes in Israel, Morocco, Palestine, and Paraguay.
- Also, historical zone data corrections for Macquarie Island.
-
-
-
-
-
-
-
-
-
-
Release 9.1.9
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.8.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.9
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, this release corrects several errors in management of GiST
- indexes. After installing this update, it is advisable to
- REINDEX> any GiST indexes that meet one or more of the
- conditions described below.
-
-
- Also, if you are upgrading from a version earlier than 9.1.6,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix insecure parsing of server command-line switches (Mitsumasa
- Kondo, Kyotaro Horiguchi)
-
-
- A connection request containing a database name that begins with
- ->
could be crafted to damage or destroy
- files within the server's data directory, even if the request is
- eventually rejected. (CVE-2013-1899)
-
-
-
-
- Reset OpenSSL randomness state in each postmaster child process
- (Marko Kreen)
-
-
- This avoids a scenario wherein random numbers generated by
- contrib/pgcrypto> functions might be relatively easy for
- another database user to guess. The risk is only significant when
- the postmaster is configured with ssl> = on>
- but most connections don't use SSL encryption. (CVE-2013-1900)
-
-
-
-
- Make REPLICATION privilege checks test current user not authenticated
- user (Noah Misch)
-
-
- An unprivileged database user could exploit this mistake to call
- pg_start_backup()> or pg_stop_backup()>,
- thus possibly interfering with creation of routine backups.
- (CVE-2013-1901)
-
-
-
-
- Fix GiST indexes to not use fuzzy> geometric comparisons when
- it's not appropriate to do so (Alexander Korotkov)
-
-
- The core geometric types perform comparisons using fuzzy>
- equality, but gist_box_same> must do exact comparisons,
- else GiST indexes using it might become inconsistent. After installing
- this update, users should REINDEX> any GiST indexes on
- box>, polygon>, circle>, or point>
- columns, since all of these use gist_box_same>.
-
-
-
-
- Fix erroneous range-union and penalty logic in GiST indexes that use
- contrib/btree_gist> for variable-width data types, that is
- text>, bytea>, bit>, and numeric>
- columns (Tom Lane)
-
-
- These errors could result in inconsistent indexes in which some keys
- that are present would not be found by searches, and also in useless
- index bloat. Users are advised to REINDEX> such indexes
- after installing this update.
-
-
-
-
- Fix bugs in GiST page splitting code for multi-column indexes
- (Tom Lane)
-
-
- These errors could result in inconsistent indexes in which some keys
- that are present would not be found by searches, and also in indexes
- that are unnecessarily inefficient to search. Users are advised to
- REINDEX> multi-column GiST indexes after installing this
- update.
-
-
-
-
- Fix gist_point_consistent>
- to handle fuzziness consistently (Alexander Korotkov)
-
-
- Index scans on GiST indexes on point> columns would sometimes
- yield results different from a sequential scan, because
- gist_point_consistent> disagreed with the underlying
- operator code about whether to do comparisons exactly or fuzzily.
-
-
-
-
- Fix buffer leak in WAL replay (Heikki Linnakangas)
-
-
- This bug could result in incorrect local pin count> errors
- during replay, making recovery impossible.
-
-
-
-
- Fix race condition in DELETE RETURNING> (Tom Lane)
-
-
- Under the right circumstances, DELETE RETURNING> could
- attempt to fetch data from a shared buffer that the current process
- no longer has any pin on. If some other process changed the buffer
- meanwhile, this would lead to garbage RETURNING> output, or
- even a crash.
-
-
-
-
- Fix infinite-loop risk in regular expression compilation (Tom Lane,
- Don Porter)
-
-
-
-
- Fix potential null-pointer dereference in regular expression compilation
- (Tom Lane)
-
-
-
-
- Fix to_char()> to use ASCII-only case-folding rules where
- appropriate (Tom Lane)
-
-
- This fixes misbehavior of some template patterns that should be
- locale-independent, but mishandled I>
and
- i>
in Turkish locales.
-
-
-
-
- Fix unwanted rejection of timestamp 1999-12-31 24:00:00>
- (Tom Lane)
-
-
-
-
- Fix logic error when a single transaction does UNLISTEN>
- then LISTEN> (Tom Lane)
-
-
- The session wound up not listening for notify events at all, though it
- surely should listen in this case.
-
-
-
-
- Fix possible planner crash after columns have been added to a view
- that's depended on by another view (Tom Lane)
-
-
-
-
- Remove useless picksplit doesn't support secondary split> log
- messages (Josh Hansen, Tom Lane)
-
-
- This message seems to have been added in expectation of code that was
- never written, and probably never will be, since GiST's default
- handling of secondary splits is actually pretty good. So stop nagging
- end users about it.
-
-
-
-
- Fix possible failure to send a session's last few transaction
- commit/abort counts to the statistics collector (Tom Lane)
-
-
-
-
- Eliminate memory leaks in PL/Perl's spi_prepare()> function
- (Alex Hunsaker, Tom Lane)
-
-
-
-
- Fix
pg_dumpall> to handle database names containing
- =>
correctly (Heikki Linnakangas)
-
-
-
-
- Avoid crash in
pg_dump> when an incorrect connection
- string is given (Heikki Linnakangas)
-
-
-
-
- Ignore invalid indexes in
pg_dump> and
-
pg_upgrade> (Michael Paquier, Bruce Momjian)
-
-
- Dumping invalid indexes can cause problems at restore time, for example
- if the reason the index creation failed was because it tried to enforce
- a uniqueness condition not satisfied by the table's data. Also, if the
- index creation is in fact still in progress, it seems reasonable to
- consider it to be an uncommitted DDL change, which
-
pg_dump> wouldn't be expected to dump anyway.
-
pg_upgrade> now also skips invalid indexes rather than
- failing.
-
-
-
-
- In
pg_basebackup>, include only the current server
- version's subdirectory when backing up a tablespace (Heikki
- Linnakangas)
-
-
-
-
- Add a server version check in
pg_basebackup> and
-
pg_receivexlog>, so they fail cleanly with version
- combinations that won't work (Heikki Linnakangas)
-
-
-
-
- Fix contrib/pg_trgm>'s similarity()> function
- to return zero for trigram-less strings (Tom Lane)
-
-
- Previously it returned NaN> due to internal division by zero.
-
-
-
-
- Update time zone data files to
tzdata> release 2013b
- for DST law changes in Chile, Haiti, Morocco, Paraguay, and some
- Russian areas. Also, historical zone data corrections for numerous
- places.
-
-
- Also, update the time zone abbreviation files for recent changes in
- Russia and elsewhere: CHOT>, GET>,
- IRKT>, KGT>, KRAT>, MAGT>,
- MAWT>, MSK>, NOVT>, OMST>,
- TKT>, VLAT>, WST>, YAKT>,
- YEKT> now follow their current meanings, and
- VOLT> (Europe/Volgograd) and MIST>
- (Antarctica/Macquarie) are added to the default abbreviations list.
-
-
-
-
-
-
-
-
-
-
Release 9.1.8
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.7.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.8
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.6,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Prevent execution of enum_recv> from SQL (Tom Lane)
-
-
- The function was misdeclared, allowing a simple SQL command to crash the
- server. In principle an attacker might be able to use it to examine the
- contents of server memory. Our thanks to Sumit Soni (via Secunia SVCRP)
- for reporting this issue. (CVE-2013-0255)
-
-
-
-
- Fix multiple problems in detection of when a consistent database
- state has been reached during WAL replay (Fujii Masao, Heikki
- Linnakangas, Simon Riggs, Andres Freund)
-
-
-
-
- Update minimum recovery point when truncating a relation file (Heikki
- Linnakangas)
-
-
- Once data has been discarded, it's no longer safe to stop recovery at
- an earlier point in the timeline.
-
-
-
-
- Fix recycling of WAL segments after changing recovery target timeline
- (Heikki Linnakangas)
-
-
-
-
- Fix missing cancellations in hot standby mode (Noah Misch, Simon Riggs)
-
-
- The need to cancel conflicting hot-standby queries would sometimes be
- missed, allowing those queries to see inconsistent data.
-
-
-
-
- Prevent recovery pause feature from pausing before users can connect
- (Tom Lane)
-
-
-
-
- Fix SQL grammar to allow subscripting or field selection from a
- sub-SELECT result (Tom Lane)
-
-
-
-
- Fix performance problems with autovacuum truncation in busy workloads
- (Jan Wieck)
-
-
- Truncation of empty pages at the end of a table requires exclusive
- lock, but autovacuum was coded to fail (and release the table lock)
- when there are conflicting lock requests. Under load, it is easily
- possible that truncation would never occur, resulting in table bloat.
- Fix by performing a partial truncation, releasing the lock, then
- attempting to re-acquire the lock and continue. This fix also greatly
- reduces the average time before autovacuum releases the lock after a
- conflicting request arrives.
-
-
-
-
- Protect against race conditions when scanning
- pg_tablespace> (Stephen Frost, Tom Lane)
-
-
- CREATE DATABASE> and DROP DATABASE> could
- misbehave if there were concurrent updates of
- pg_tablespace> entries.
-
-
-
-
- Prevent DROP OWNED> from trying to drop whole databases or
- tablespaces (Álvaro Herrera)
-
-
- For safety, ownership of these objects must be reassigned, not dropped.
-
-
-
-
- Fix error in
- linkend="guc-vacuum-freeze-table-age">vacuum_freeze_table_age>
- implementation (Andres Freund)
-
-
- In installations that have existed for more than
- linkend="guc-vacuum-freeze-min-age">vacuum_freeze_min_age>
- transactions, this mistake prevented autovacuum from using partial-table
- scans, so that a full-table scan would always happen instead.
-
-
-
-
- Prevent misbehavior when a RowExpr> or XmlExpr>
- is parse-analyzed twice (Andres Freund, Tom Lane)
-
-
- This mistake could be user-visible in contexts such as
- CREATE TABLE LIKE INCLUDING INDEXES>.
-
-
-
-
- Improve defenses against integer overflow in hashtable sizing
- calculations (Jeff Davis)
-
-
-
-
- Fix failure to ignore leftover temporary tables after a server crash
- (Tom Lane)
-
-
-
-
- Reject out-of-range dates in to_date()> (Hitoshi Harada)
-
-
-
-
- Fix pg_extension_config_dump()> to handle
- extension-update cases properly (Tom Lane)
-
-
- This function will now replace any existing entry for the target
- table, making it usable in extension update scripts.
-
-
-
-
- Fix PL/Python's handling of functions used as triggers on multiple
- tables (Andres Freund)
-
-
-
-
- Ensure that non-ASCII prompt strings are translated to the correct
- code page on Windows (Alexander Law, Noah Misch)
-
-
- This bug affected
psql> and some other client programs.
-
-
-
-
- Fix possible crash in
psql>'s \?> command
- when not connected to a database (Meng Qingzhong)
-
-
-
-
- Fix possible error if a relation file is removed while
-
pg_basebackup> is running (Heikki Linnakangas)
-
-
-
-
- Make
pg_dump> exclude data of unlogged tables when
- running on a hot-standby server (Magnus Hagander)
-
-
- This would fail anyway because the data is not available on the standby
- server, so it seems most convenient to assume
- --no-unlogged-table-data> automatically.
-
-
-
-
- Fix
pg_upgrade> to deal with invalid indexes safely
- (Bruce Momjian)
-
-
-
-
- Fix one-byte buffer overrun in
libpq>'s
- PQprintTuples> (Xi Wang)
-
-
- This ancient function is not used anywhere by
-
PostgreSQL> itself, but it might still be used by some
- client code.
-
-
-
-
- Make
ecpglib> use translated messages properly
- (Chen Huajun)
-
-
-
-
- Properly install
ecpg_compat> and
-
pgtypes> libraries on MSVC (Jiang Guiqing)
-
-
-
-
- Include our version of isinf()> in
-
libecpg> if it's not provided by the system
- (Jiang Guiqing)
-
-
-
-
- Rearrange configure's tests for supplied functions so it is not
- fooled by bogus exports from libedit/libreadline (Christoph Berg)
-
-
-
-
- Ensure Windows build number increases over time (Magnus Hagander)
-
-
-
-
- Make
pgxs> build executables with the right
- .exe> suffix when cross-compiling for Windows
- (Zoltan Boszormenyi)
-
-
-
-
- Add new timezone abbreviation FET> (Tom Lane)
-
-
- This is now used in some eastern-European time zones.
-
-
-
-
-
-
-
-
-
-
Release 9.1.7
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.6.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.7
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.6,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix multiple bugs associated with CREATE INDEX
- CONCURRENTLY> (Andres Freund, Tom Lane)
-
-
- Fix CREATE INDEX CONCURRENTLY> to use
- in-place updates when changing the state of an index's
- pg_index> row. This prevents race conditions that could
- cause concurrent sessions to miss updating the target index, thus
- resulting in corrupt concurrently-created indexes.
-
-
- Also, fix various other operations to ensure that they ignore
- invalid indexes resulting from a failed CREATE INDEX
- CONCURRENTLY> command. The most important of these is
- VACUUM>, because an auto-vacuum could easily be launched
- on the table before corrective action can be taken to fix or remove
- the invalid index.
-
-
-
-
- Fix buffer locking during WAL replay (Tom Lane)
-
-
- The WAL replay code was insufficiently careful about locking buffers
- when replaying WAL records that affect more than one page. This could
- result in hot standby queries transiently seeing inconsistent states,
- resulting in wrong answers or unexpected failures.
-
-
-
-
- Fix an error in WAL generation logic for GIN indexes (Tom Lane)
-
-
- This could result in index corruption, if a torn-page failure occurred.
-
-
-
-
- Properly remove startup process's virtual XID lock when promoting a
- hot standby server to normal running (Simon Riggs)
-
-
- This oversight could prevent subsequent execution of certain
- operations such as CREATE INDEX CONCURRENTLY>.
-
-
-
-
- Avoid bogus out-of-sequence timeline ID> errors in standby
- mode (Heikki Linnakangas)
-
-
-
-
- Prevent the postmaster from launching new child processes after it's
- received a shutdown signal (Tom Lane)
-
-
- This mistake could result in shutdown taking longer than it should, or
- even never completing at all without additional user action.
-
-
-
-
- Avoid corruption of internal hash tables when out of memory
- (Hitoshi Harada)
-
-
-
-
- Prevent file descriptors for dropped tables from being held open past
- transaction end (Tom Lane)
-
-
- This should reduce problems with long-since-dropped tables continuing
- to occupy disk space.
-
-
-
-
- Prevent database-wide crash and restart when a new child process is
- unable to create a pipe for its latch (Tom Lane)
-
-
- Although the new process must fail, there is no good reason to force a
- database-wide restart, so avoid that. This improves robustness when
- the kernel is nearly out of file descriptors.
-
-
-
-
- Fix planning of non-strict equivalence clauses above outer joins
- (Tom Lane)
-
-
- The planner could derive incorrect constraints from a clause equating
- a non-strict construct to something else, for example
- WHERE COALESCE(foo, 0) = 0>
- when foo> is coming from the nullable side of an outer join.
-
-
-
-
- Fix SELECT DISTINCT> with index-optimized
- MIN>/MAX> on an inheritance tree (Tom Lane)
-
-
- The planner would fail with failed to re-find MinMaxAggInfo
- record> given this combination of factors.
-
-
-
-
- Improve planner's ability to prove exclusion constraints from
- equivalence classes (Tom Lane)
-
-
-
-
- Fix partial-row matching in hashed subplans to handle cross-type cases
- correctly (Tom Lane)
-
-
- This affects multicolumn NOT IN> subplans, such as
- WHERE (a, b) NOT IN (SELECT x, y FROM ...)>
- when for instance b> and y> are int4>
- and int8> respectively. This mistake led to wrong answers
- or crashes depending on the specific datatypes involved.
-
-
-
-
- Acquire buffer lock when re-fetching the old tuple for an
- AFTER ROW UPDATE/DELETE> trigger (Andres Freund)
-
-
- In very unusual circumstances, this oversight could result in passing
- incorrect data to a trigger WHEN> condition, or to the
- precheck logic for a foreign-key enforcement trigger. That could
- result in a crash, or in an incorrect decision about whether to
- fire the trigger.
-
-
-
-
- Fix ALTER COLUMN TYPE> to handle inherited check
- constraints properly (Pavan Deolasee)
-
-
- This worked correctly in pre-8.4 releases, and now works correctly
- in 8.4 and later.
-
-
-
-
- Fix ALTER EXTENSION SET SCHEMA>'s failure to move some
- subsidiary objects into the new schema (Álvaro Herrera, Dimitri
- Fontaine)
-
-
-
-
- Fix REASSIGN OWNED> to handle grants on tablespaces
- (Álvaro Herrera)
-
-
-
-
- Ignore incorrect pg_attribute> entries for system
- columns for views (Tom Lane)
-
-
- Views do not have any system columns. However, we forgot to
- remove such entries when converting a table to a view. That's fixed
- properly for 9.3 and later, but in previous branches we need to defend
- against existing mis-converted views.
-
-
-
-
- Fix rule printing to dump INSERT INTO table>
- DEFAULT VALUES correctly (Tom Lane)
-
-
-
-
- Guard against stack overflow when there are too many
- UNION>/INTERSECT>/EXCEPT> clauses
- in a query (Tom Lane)
-
-
-
-
- Prevent platform-dependent failures when dividing the minimum possible
- integer value by -1 (Xi Wang, Tom Lane)
-
-
-
-
- Fix possible access past end of string in date parsing
- (Hitoshi Harada)
-
-
-
-
- Fix failure to advance XID epoch if XID wraparound happens during a
- checkpoint and wal_level> is hot_standby>
- (Tom Lane, Andres Freund)
-
-
- While this mistake had no particular impact on
-
PostgreSQL itself, it was bad for
- applications that rely on txid_current()> and related
- functions: the TXID value would appear to go backwards.
-
-
-
-
- Fix display of
- pg_stat_replication>.sync_state> at a
- page boundary (Kyotaro Horiguchi)
-
-
-
-
- Produce an understandable error message if the length of the path name
- for a Unix-domain socket exceeds the platform-specific limit
- (Tom Lane, Andrew Dunstan)
-
-
- Formerly, this would result in something quite unhelpful, such as
- Non-recoverable failure in name resolution>.
-
-
-
-
- Fix memory leaks when sending composite column values to the client
- (Tom Lane)
-
-
-
-
- Make
pg_ctl> more robust about reading the
- postmaster.pid> file (Heikki Linnakangas)
-
-
- Fix race conditions and possible file descriptor leakage.
-
-
-
-
- Fix possible crash in
psql> if incorrectly-encoded data
- is presented and the client_encoding> setting is a
- client-only encoding, such as SJIS (Jiang Guiqing)
-
-
-
-
- Make
pg_dump> dump SEQUENCE SET> items in
- the data not pre-data section of the archive (Tom Lane)
-
-
- This change fixes dumping of sequences that are marked as extension
- configuration tables.
-
-
-
-
- Fix bugs in the restore.sql> script emitted by
-
pg_dump> in tar> output format (Tom Lane)
-
-
- The script would fail outright on tables whose names include
- upper-case characters. Also, make the script capable of restoring
- data in --inserts> mode as well as the regular COPY mode.
-
-
-
-
- Fix
pg_restore> to accept POSIX-conformant
- tar> files (Brian Weaver, Tom Lane)
-
-
- The original coding of
pg_dump>'s tar>
- output mode produced files that are not fully conformant with the
- POSIX standard. This has been corrected for version 9.3. This
- patch updates previous branches so that they will accept both the
- incorrect and the corrected formats, in hopes of avoiding
- compatibility problems when 9.3 comes out.
-
-
-
-
- Fix
tar> files emitted by pg_basebackup> to
- be POSIX conformant (Brian Weaver, Tom Lane)
-
-
-
-
- Fix
pg_resetxlog> to locate postmaster.pid>
- correctly when given a relative path to the data directory (Tom Lane)
-
-
- This mistake could lead to
pg_resetxlog> not noticing
- that there is an active postmaster using the data directory.
-
-
-
-
- Fix
libpq>'s lo_import()> and
- lo_export()> functions to report file I/O errors properly
- (Tom Lane)
-
-
-
-
- Fix
ecpg>'s processing of nested structure pointer
- variables (Muhammad Usama)
-
-
-
-
- Fix
ecpg>'s ecpg_get_data> function to
- handle arrays properly (Michael Meskes)
-
-
-
-
- Make contrib/pageinspect>'s btree page inspection
- functions take buffer locks while examining pages (Tom Lane)
-
-
-
-
- Ensure that make install> for an extension creates the
- extension> installation directory (Cédric Villemain)
-
-
- Previously, this step was missed if MODULEDIR> was set in
- the extension's Makefile.
-
-
-
-
- Fix
pgxs> support for building loadable modules on AIX
- (Tom Lane)
-
-
- Building modules outside the original source tree didn't work on AIX.
-
-
-
-
- Update time zone data files to
tzdata> release 2012j
- for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
- Samoa, and portions of Brazil.
-
-
-
-
-
-
-
-
-
-
Release 9.1.6
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.5.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.6
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, you may need to perform REINDEX> operations to
- recover from the effects of the data corruption bug described in the
- first changelog item below.
-
-
- Also, if you are upgrading from a version earlier than 9.1.4,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix persistence marking of shared buffers during WAL replay
- (Jeff Davis)
-
-
- This mistake can result in buffers not being written out during
- checkpoints, resulting in data corruption if the server later crashes
- without ever having written those buffers. Corruption can occur on
- any server following crash recovery, but it is significantly more
- likely to occur on standby slave servers since those perform much
- more WAL replay. There is a low probability of corruption of btree
- and GIN indexes. There is a much higher probability of corruption of
- table visibility maps>. Fortunately, visibility maps are
- non-critical data in 9.1, so the worst consequence of such corruption
- in 9.1 installations is transient inefficiency of vacuuming. Table
- data proper cannot be corrupted by this bug.
-
-
- While no index corruption due to this bug is known to have occurred
- in the field, as a precautionary measure it is recommended that
- production installations REINDEX> all btree and GIN
- indexes at a convenient time after upgrading to 9.1.6.
-
-
- Also, if you intend to do an in-place upgrade to 9.2.X, before doing
- so it is recommended to perform a VACUUM> of all tables
- while having
- linkend="guc-vacuum-freeze-table-age">vacuum_freeze_table_age>
- set to zero. This will ensure that any lingering wrong data in the
- visibility maps is corrected before 9.2.X can depend on it.
- linkend="guc-vacuum-cost-delay">vacuum_cost_delay>
- can be adjusted to reduce the performance impact of vacuuming, while
- causing it to take longer to finish.
-
-
-
-
- Fix planner's assignment of executor parameters, and fix executor's
- rescan logic for CTE plan nodes (Tom Lane)
-
-
- These errors could result in wrong answers from queries that scan the
- same WITH> subquery multiple times.
-
-
-
-
- Fix misbehavior when
- linkend="guc-default-transaction-isolation">default_transaction_isolation>
- is set to serializable> (Kevin Grittner, Tom Lane, Heikki
- Linnakangas)
-
-
- Symptoms include crashes at process start on Windows, and crashes in
- hot standby operation.
-
-
-
-
- Improve selectivity estimation for text search queries involving
- prefixes, i.e. word>:*> patterns (Tom Lane)
-
-
-
-
- Improve page-splitting decisions in GiST indexes (Alexander Korotkov,
- Robert Haas, Tom Lane)
-
-
- Multi-column GiST indexes might suffer unexpected bloat due to this
- error.
-
-
-
-
- Fix cascading privilege revoke to stop if privileges are still held
- (Tom Lane)
-
-
- If we revoke a grant option from some role X>, but
- X> still holds that option via a grant from someone
- else, we should not recursively revoke the corresponding privilege
- from role(s) Y> that X> had granted it
- to.
-
-
-
-
- Disallow extensions from containing the schema they are assigned to
- (Thom Brown)
-
-
- This situation creates circular dependencies that confuse
-
pg_dump> and probably other things. It's confusing
- for humans too, so disallow it.
-
-
-
-
- Improve error messages for Hot Standby misconfiguration errors
- (Gurjeet Singh)
-
-
-
-
- Make
configure> probe for mbstowcs_l> (Tom
- Lane)
-
-
- This fixes build failures on some versions of AIX.
-
-
-
-
- Fix handling of SIGFPE> when PL/Perl is in use (Andres Freund)
-
-
- Perl resets the process's SIGFPE> handler to
- SIG_IGN>, which could result in crashes later on. Restore
- the normal Postgres signal handler after initializing PL/Perl.
-
-
-
-
- Prevent PL/Perl from crashing if a recursive PL/Perl function is
- redefined while being executed (Tom Lane)
-
-
-
-
- Work around possible misoptimization in PL/Perl (Tom Lane)
-
-
- Some Linux distributions contain an incorrect version of
- pthread.h> that results in incorrect compiled code in
- PL/Perl, leading to crashes if a PL/Perl function calls another one
- that throws an error.
-
-
-
-
- Fix bugs in contrib/pg_trgm>'s LIKE> pattern
- analysis code (Fujii Masao)
-
-
- LIKE> queries using a trigram index could produce wrong
- results if the pattern contained LIKE> escape characters.
-
-
-
-
- Fix
pg_upgrade>'s handling of line endings on Windows
- (Andrew Dunstan)
-
-
- Previously,
pg_upgrade> might add or remove carriage
- returns in places such as function bodies.
-
-
-
-
- On Windows, make
pg_upgrade> use backslash path
- separators in the scripts it emits (Andrew Dunstan)
-
-
-
-
- Remove unnecessary dependency on
pg_config> from
-
pg_upgrade> (Peter Eisentraut)
-
-
-
-
- Update time zone data files to
tzdata> release 2012f
- for DST law changes in Fiji
-
-
-
-
-
-
-
-
-
-
Release 9.1.5
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.4.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.5
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.4,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Prevent access to external files/URLs via XML entity references
- (Noah Misch, Tom Lane)
-
-
- xml_parse()> would attempt to fetch external files or
- URLs as needed to resolve DTD and entity references in an XML value,
- thus allowing unprivileged database users to attempt to fetch data
- with the privileges of the database server. While the external data
- wouldn't get returned directly to the user, portions of it could be
- exposed in error messages if the data didn't parse as valid XML; and
- in any case the mere ability to check existence of a file might be
- useful to an attacker. (CVE-2012-3489)
-
-
-
-
- Prevent access to external files/URLs via contrib/xml2>'s
- xslt_process()> (Peter Eisentraut)
-
-
-
libxslt> offers the ability to read and write both
- files and URLs through stylesheet commands, thus allowing
- unprivileged database users to both read and write data with the
- privileges of the database server. Disable that through proper use
- of
libxslt>'s security options. (CVE-2012-3488)
-
-
- Also, remove xslt_process()>'s ability to fetch documents
- and stylesheets from external files/URLs. While this was a
- documented feature>, it was long regarded as a bad idea.
- The fix for CVE-2012-3489 broke that capability, and rather than
- expend effort on trying to fix it, we're just going to summarily
- remove it.
-
-
-
-
- Prevent too-early recycling of btree index pages (Noah Misch)
-
-
- When we allowed read-only transactions to skip assigning XIDs, we
- introduced the possibility that a deleted btree page could be
- recycled while a read-only transaction was still in flight to it.
- This would result in incorrect index search results. The probability
- of such an error occurring in the field seems very low because of the
- timing requirements, but nonetheless it should be fixed.
-
-
-
-
- Fix crash-safety bug with newly-created-or-reset sequences (Tom Lane)
-
-
- If ALTER SEQUENCE> was executed on a freshly created or
- reset sequence, and then precisely one nextval()> call
- was made on it, and then the server crashed, WAL replay would restore
- the sequence to a state in which it appeared that no
- nextval()> had been done, thus allowing the first
- sequence value to be returned again by the next
- nextval()> call. In particular this could manifest for
- serial> columns, since creation of a serial column's sequence
- includes an ALTER SEQUENCE OWNED BY> step.
-
-
-
-
- Fix race condition in enum>-type value comparisons (Robert
- Haas, Tom Lane)
-
-
- Comparisons could fail when encountering an enum value added since
- the current query started.
-
-
-
-
- Fix txid_current()> to report the correct epoch when not
- in hot standby (Heikki Linnakangas)
-
-
- This fixes a regression introduced in the previous minor release.
-
-
-
-
- Prevent selection of unsuitable replication connections as
- the synchronous standby (Fujii Masao)
-
-
- The master might improperly choose pseudo-servers such as
-
pg_receivexlog> or pg_basebackup>
- as the synchronous standby, and then wait indefinitely for them.
-
-
-
-
- Fix bug in startup of Hot Standby when a master transaction has many
- subtransactions (Andres Freund)
-
-
- This mistake led to failures reported as out-of-order XID
- insertion in KnownAssignedXids>.
-
-
-
-
- Ensure the backup_label> file is fsync'd after
- pg_start_backup()> (Dave Kerr)
-
-
-
-
- Fix timeout handling in walsender processes (Tom Lane)
-
-
- WAL sender background processes neglected to establish a
- SIGALRM> handler, meaning they would wait forever in
- some corner cases where a timeout ought to happen.
-
-
-
-
- Wake walsenders after each background flush by walwriter (Andres
- Freund, Simon Riggs)
-
-
- This greatly reduces replication delay when the workload contains
- only asynchronously-committed transactions.
-
-
-
-
- Fix LISTEN>/NOTIFY> to cope better with I/O
- problems, such as out of disk space (Tom Lane)
-
-
- After a write failure, all subsequent attempts to send more
- NOTIFY> messages would fail with messages like
- Could not read from file "pg_notify/nnnn>" at
- offset nnnnn>: Success.
-
-
-
-
- Only allow autovacuum to be auto-canceled by a directly blocked
- process (Tom Lane)
-
-
- The original coding could allow inconsistent behavior in some cases;
- in particular, an autovacuum could get canceled after less than
- deadlock_timeout> grace period.
-
-
-
-
- Improve logging of autovacuum cancels (Robert Haas)
-
-
-
-
- Fix log collector so that log_truncate_on_rotation> works
- during the very first log rotation after server start (Tom Lane)
-
-
-
-
- Fix WITH> attached to a nested set operation
- (UNION>/INTERSECT>/EXCEPT>)
- (Tom Lane)
-
-
-
-
- Ensure that a whole-row reference to a subquery doesn't include any
- extra GROUP BY> or ORDER BY> columns (Tom Lane)
-
-
-
-
- Fix dependencies generated during ALTER TABLE ... ADD
- CONSTRAINT USING INDEX> (Tom Lane)
-
-
- This command left behind a redundant pg_depend> entry
- for the index, which could confuse later operations, notably
- ALTER TABLE ... ALTER COLUMN TYPE> on one of the indexed
- columns.
-
-
-
-
- Fix REASSIGN OWNED> to work on extensions (Alvaro Herrera)
-
-
-
-
- Disallow copying whole-row references in CHECK>
- constraints and index definitions during CREATE TABLE>
- (Tom Lane)
-
-
- This situation can arise in CREATE TABLE> with
- LIKE> or INHERITS>. The copied whole-row
- variable was incorrectly labeled with the row type of the original
- table not the new one. Rejecting the case seems reasonable for
- LIKE>, since the row types might well diverge later. For
- INHERITS> we should ideally allow it, with an implicit
- coercion to the parent table's row type; but that will require more
- work than seems safe to back-patch.
-
-
-
-
- Fix memory leak in ARRAY(SELECT ...)> subqueries (Heikki
- Linnakangas, Tom Lane)
-
-
-
-
- Fix planner to pass correct collation to operator selectivity
- estimators (Tom Lane)
-
-
- This was not previously required by any core selectivity estimation
- function, but third-party code might need it.
-
-
-
-
- Fix extraction of common prefixes from regular expressions (Tom Lane)
-
-
- The code could get confused by quantified parenthesized
- subexpressions, such as ^(foo)?bar>. This would lead to
- incorrect index optimization of searches for such patterns.
-
-
-
-
- Fix bugs with parsing signed
- hh>:>mm> and
- hh>:>mm>:>ss>
- fields in interval> constants (Amit Kapila, Tom Lane)
-
-
-
-
- Fix
pg_dump> to better handle views containing partial
- GROUP BY> lists (Tom Lane)
-
-
- A view that lists only a primary key column in GROUP BY>,
- but uses other table columns as if they were grouped, gets marked as
- depending on the primary key. Improper handling of such primary key
- dependencies in
pg_dump> resulted in poorly-ordered
- dumps, which at best would be inefficient to restore and at worst
- could result in outright failure of a parallel
-
-
-
-
- In PL/Perl, avoid setting UTF8 flag when in SQL_ASCII encoding
- (Alex Hunsaker, Kyotaro Horiguchi, Alvaro Herrera)
-
-
-
-
- Use Postgres' encoding conversion functions, not Python's, when
- converting a Python Unicode string to the server encoding in
- PL/Python (Jan Urbanski)
-
-
- This avoids some corner-case problems, notably that Python doesn't
- support all the encodings Postgres does. A notable functional change
- is that if the server encoding is SQL_ASCII, you will get the UTF-8
- representation of the string; formerly, any non-ASCII characters in
- the string would result in an error.
-
-
-
-
- Fix mapping of PostgreSQL encodings to Python encodings in PL/Python
- (Jan Urbanski)
-
-
-
-
- Report errors properly in contrib/xml2>'s
- xslt_process()> (Tom Lane)
-
-
-
-
- Update time zone data files to
tzdata> release 2012e
- for DST law changes in Morocco and Tokelau
-
-
-
-
-
-
-
-
-
-
Release 9.1.4
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.3.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.4
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you use the citext> data type, and you upgraded
- from a previous major release by running
pg_upgrade>,
- you should run CREATE EXTENSION citext FROM unpackaged>
- to avoid collation-related failures in citext> operations.
- The same is necessary if you restore a dump from a pre-9.1 database
- that contains an instance of the citext> data type.
- If you've already run the CREATE EXTENSION> command before
- upgrading to 9.1.4, you will instead need to do manual catalog updates
- as explained in the third changelog item below.
-
-
- Also, if you are upgrading from a version earlier than 9.1.2,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Fix incorrect password transformation in
- contrib/pgcrypto>'s DES crypt()> function
- (Solar Designer)
-
-
- If a password string contained the byte value 0x80>, the
- remainder of the password was ignored, causing the password to be much
- weaker than it appeared. With this fix, the rest of the string is
- properly included in the DES hash. Any stored password values that are
- affected by this bug will thus no longer match, so the stored values may
- need to be updated. (CVE-2012-2143)
-
-
-
-
- Ignore SECURITY DEFINER> and SET> attributes for
- a procedural language's call handler (Tom Lane)
-
-
- Applying such attributes to a call handler could crash the server.
- (CVE-2012-2655)
-
-
-
-
- Make contrib/citext>'s upgrade script fix collations of
- citext> arrays and domains over citext>
- (Tom Lane)
-
-
- Release 9.1.2 provided a fix for collations of citext> columns
- and indexes in databases upgraded or reloaded from pre-9.1
- installations, but that fix was incomplete: it neglected to handle arrays
- and domains over citext>. This release extends the module's
- upgrade script to handle these cases. As before, if you have already
- run the upgrade script, you'll need to run the collation update
- commands by hand instead. See the 9.1.2 release notes for more
- information about doing this.
-
-
-
-
- Allow numeric timezone offsets in timestamp> input to be up to
- 16 hours away from UTC (Tom Lane)
-
-
- Some historical time zones have offsets larger than 15 hours, the
- previous limit. This could result in dumped data values being rejected
- during reload.
-
-
-
-
- Fix timestamp conversion to cope when the given time is exactly the
- last DST transition time for the current timezone (Tom Lane)
-
-
- This oversight has been there a long time, but was not noticed
- previously because most DST-using zones are presumed to have an
- indefinite sequence of future DST transitions.
-
-
-
-
- Fix text> to name> and char> to name>
- casts to perform string truncation correctly in multibyte encodings
- (Karl Schnaitter)
-
-
-
-
- Fix memory copying bug in to_tsquery()> (Heikki Linnakangas)
-
-
-
-
- Ensure txid_current()> reports the correct epoch when
- executed in hot standby (Simon Riggs)
-
-
-
-
- Fix planner's handling of outer PlaceHolderVars within subqueries (Tom
- Lane)
-
-
- This bug concerns sub-SELECTs that reference variables coming from the
- nullable side of an outer join of the surrounding query.
- In 9.1, queries affected by this bug would fail with ERROR:
- Upper-level PlaceHolderVar found where not expected>. But in 9.0 and
- 8.4, you'd silently get possibly-wrong answers, since the value
- transmitted into the subquery wouldn't go to null when it should.
-
-
-
-
- Fix planning of UNION ALL> subqueries with output columns
- that are not simple variables (Tom Lane)
-
-
- Planning of such cases got noticeably worse in 9.1 as a result of a
- misguided fix for MergeAppend child's targetlist doesn't match
- MergeAppend> errors. Revert that fix and do it another way.
-
-
-
-
- Fix slow session startup when pg_attribute> is very large
- (Tom Lane)
-
-
- If pg_attribute> exceeds one-fourth of
- shared_buffers>, cache rebuilding code that is sometimes
- needed during session start would trigger the synchronized-scan logic,
- causing it to take many times longer than normal. The problem was
- particularly acute if many new sessions were starting at once.
-
-
-
-
- Ensure sequential scans check for query cancel reasonably often (Merlin
- Moncure)
-
-
- A scan encountering many consecutive pages that contain no live tuples
- would not respond to interrupts meanwhile.
-
-
-
-
- Ensure the Windows implementation of PGSemaphoreLock()>
- clears ImmediateInterruptOK> before returning (Tom Lane)
-
-
- This oversight meant that a query-cancel interrupt received later
- in the same query could be accepted at an unsafe time, with
- unpredictable but not good consequences.
-
-
-
-
- Show whole-row variables safely when printing views or rules
- (Abbas Butt, Tom Lane)
-
-
- Corner cases involving ambiguous names (that is, the name could be
- either a table or column name of the query) were printed in an
- ambiguous way, risking that the view or rule would be interpreted
- differently after dump and reload. Avoid the ambiguous case by
- attaching a no-op cast.
-
-
-
-
- Fix COPY FROM> to properly handle null marker strings that
- correspond to invalid encoding (Tom Lane)
-
-
- A null marker string such as E'\\0'> should work, and did
- work in the past, but the case got broken in 8.4.
-
-
-
-
- Fix EXPLAIN VERBOSE> for writable CTEs containing
- RETURNING> clauses (Tom Lane)
-
-
-
-
- Fix PREPARE TRANSACTION> to work correctly in the presence
- of advisory locks (Tom Lane)
-
-
- Historically, PREPARE TRANSACTION> has simply ignored any
- session-level advisory locks the session holds, but this case was
- accidentally broken in 9.1.
-
-
-
-
- Fix truncation of unlogged tables (Robert Haas)
-
-
-
-
- Ignore missing schemas during non-interactive assignments of
- search_path> (Tom Lane)
-
-
- This re-aligns 9.1's behavior with that of older branches. Previously
- 9.1 would throw an error for nonexistent schemas mentioned in
- search_path> settings obtained from places such as
- ALTER DATABASE SET>.
-
-
-
-
- Fix bugs with temporary or transient tables used in extension scripts
- (Tom Lane)
-
-
- This includes cases such as a rewriting ALTER TABLE> within
- an extension update script, since that uses a transient table behind
- the scenes.
-
-
-
-
- Ensure autovacuum worker processes perform stack depth checking
- properly (Heikki Linnakangas)
-
-
- Previously, infinite recursion in a function invoked by
- auto-ANALYZE> could crash worker processes.
-
-
-
-
- Fix logging collector to not lose log coherency under high load (Andrew
- Dunstan)
-
-
- The collector previously could fail to reassemble large messages if it
- got too busy.
-
-
-
-
- Fix logging collector to ensure it will restart file rotation
- after receiving SIGHUP> (Tom Lane)
-
-
-
-
- Fix too many LWLocks taken> failure in GiST indexes (Heikki
- Linnakangas)
-
-
-
-
- Fix WAL replay logic for GIN indexes to not fail if the index was
- subsequently dropped (Tom Lane)
-
-
-
-
- Correctly detect SSI conflicts of prepared transactions after a crash
- (Dan Ports)
-
-
-
-
- Avoid synchronous replication delay when committing a transaction that
- only modified temporary tables (Heikki Linnakangas)
-
-
- In such a case the transaction's commit record need not be flushed to
- standby servers, but some of the code didn't know that and waited for
- it to happen anyway.
-
-
-
-
- Fix error handling in
pg_basebackup>
- (Thomas Ogrisegg, Fujii Masao)
-
-
-
-
- Fix
walsender> to not go into a busy loop if connection
- is terminated (Fujii Masao)
-
-
-
-
- Fix memory leak in PL/pgSQL's RETURN NEXT> command (Joe
- Conway)
-
-
-
-
- Fix PL/pgSQL's GET DIAGNOSTICS> command when the target
- is the function's first variable (Tom Lane)
-
-
-
-
- Ensure that PL/Perl package-qualifies the _TD> variable
- (Alex Hunsaker)
-
-
- This bug caused trigger invocations to fail when they are nested
- within a function invocation that changes the current package.
-
-
-
-
- Fix PL/Python functions returning composite types to accept a string
- for their result value (Jan Urbanski)
-
-
- This case was accidentally broken by the 9.1 additions to allow a
- composite result value to be supplied in other formats, such as
- dictionaries.
-
-
-
-
- Fix potential access off the end of memory in
psql>'s
- expanded display (\x>) mode (Peter Eisentraut)
-
-
-
-
- Fix several performance problems in
pg_dump> when
- the database contains many objects (Jeff Janes, Tom Lane)
-
-
-
pg_dump> could get very slow if the database contained
- many schemas, or if many objects are in dependency loops, or if there
- are many owned sequences.
-
-
-
-
- Fix memory and file descriptor leaks in
pg_restore>
- when reading a directory-format archive (Peter Eisentraut)
-
-
-
-
- Fix
pg_upgrade> for the case that a database stored in a
- non-default tablespace contains a table in the cluster's default
- tablespace (Bruce Momjian)
-
-
-
-
- In
ecpg>, fix rare memory leaks and possible overwrite
- of one byte after the sqlca_t> structure (Peter Eisentraut)
-
-
-
-
- Fix contrib/dblink>'s dblink_exec()> to not leak
- temporary database connections upon error (Tom Lane)
-
-
-
-
- Fix contrib/dblink> to report the correct connection name in
- error messages (Kyotaro Horiguchi)
-
-
-
-
- Fix contrib/vacuumlo> to use multiple transactions when
- dropping many large objects (Tim Lewis, Robert Haas, Tom Lane)
-
-
- This change avoids exceeding max_locks_per_transaction> when
- many objects need to be dropped. The behavior can be adjusted with the
- new -l> (limit) option.
-
-
-
-
- Update time zone data files to
tzdata> release 2012c
- for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland
- Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands;
- also historical corrections for Canada.
-
-
-
-
-
-
-
-
-
-
Release 9.1.3
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.2.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.3
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, if you are upgrading from a version earlier than 9.1.2,
- see .
-
-
-
-
-
-
Changes
-
-
-
-
- Require execute permission on the trigger function for
- CREATE TRIGGER> (Robert Haas)
-
-
- This missing check could allow another user to execute a trigger
- function with forged input data, by installing it on a table he owns.
- This is only of significance for trigger functions marked
- SECURITY DEFINER>, since otherwise trigger functions run
- as the table owner anyway. (CVE-2012-0866)
-
-
-
-
- Remove arbitrary limitation on length of common name in SSL
- certificates (Heikki Linnakangas)
-
-
- Both
libpq> and the server truncated the common name
- extracted from an SSL certificate at 32 bytes. Normally this would
- cause nothing worse than an unexpected verification failure, but there
- are some rather-implausible scenarios in which it might allow one
- certificate holder to impersonate another. The victim would have to
- have a common name exactly 32 bytes long, and the attacker would have
- to persuade a trusted CA to issue a certificate in which the common
- name has that string as a prefix. Impersonating a server would also
- require some additional exploit to redirect client connections.
- (CVE-2012-0867)
-
-
-
-
- Convert newlines to spaces in names written in
pg_dump>
- comments (Robert Haas)
-
-
-
pg_dump> was incautious about sanitizing object names
- that are emitted within SQL comments in its output script. A name
- containing a newline would at least render the script syntactically
- incorrect. Maliciously crafted object names could present a SQL
- injection risk when the script is reloaded. (CVE-2012-0868)
-
-
-
-
- Fix btree index corruption from insertions concurrent with vacuuming
- (Tom Lane)
-
-
- An index page split caused by an insertion could sometimes cause a
- concurrently-running VACUUM> to miss removing index entries
- that it should remove. After the corresponding table rows are removed,
- the dangling index entries would cause errors (such as could not
- read block N in file ...>) or worse, silently wrong query results
- after unrelated rows are re-inserted at the now-free table locations.
- This bug has been present since release 8.2, but occurs so infrequently
- that it was not diagnosed until now. If you have reason to suspect
- that it has happened in your database, reindexing the affected index
- will fix things.
-
-
-
-
- Fix transient zeroing of shared buffers during WAL replay (Tom Lane)
-
-
- The replay logic would sometimes zero and refill a shared buffer, so
- that the contents were transiently invalid. In hot standby mode this
- can result in a query that's executing in parallel seeing garbage data.
- Various symptoms could result from that, but the most common one seems
- to be invalid memory alloc request size>.
-
-
-
-
- Fix handling of data-modifying WITH> subplans in
- READ COMMITTED> rechecking (Tom Lane)
-
-
- A WITH> clause containing
- INSERT>/UPDATE>/DELETE> would crash
- if the parent UPDATE> or DELETE> command needed
- to be re-evaluated at one or more rows due to concurrent updates
- in READ COMMITTED> mode.
-
-
-
-
- Fix corner case in SSI transaction cleanup
- (Dan Ports)
-
-
- When finishing up a read-write serializable transaction,
- a crash could occur if all remaining active serializable transactions
- are read-only.
-
-
-
-
- Fix postmaster to attempt restart after a hot-standby crash (Tom Lane)
-
-
- A logic error caused the postmaster to terminate, rather than attempt
- to restart the cluster, if any backend process crashed while operating
- in hot standby mode.
-
-
-
-
- Fix CLUSTER>/VACUUM FULL> handling of toast
- values owned by recently-updated rows (Tom Lane)
-
-
- This oversight could lead to duplicate key value violates unique
- constraint> errors being reported against the toast table's index
- during one of these commands.
-
-
-
-
- Update per-column permissions, not only per-table permissions, when
- changing table owner (Tom Lane)
-
-
- Failure to do this meant that any previously granted column permissions
- were still shown as having been granted by the old owner. This meant
- that neither the new owner nor a superuser could revoke the
- now-untraceable-to-table-owner permissions.
-
-
-
-
- Support foreign data wrappers and foreign servers in
- REASSIGN OWNED> (Alvaro Herrera)
-
-
- This command failed with unexpected classid> errors if
- it needed to change the ownership of any such objects.
-
-
-
-
- Allow non-existent values for some settings in ALTER
- USER/DATABASE SET> (Heikki Linnakangas)
-
-
- Allow default_text_search_config>,
- default_tablespace>, and temp_tablespaces> to be
- set to names that are not known. This is because they might be known
- in another database where the setting is intended to be used, or for the
- tablespace cases because the tablespace might not be created yet. The
- same issue was previously recognized for search_path>, and
- these settings now act like that one.
-
-
-
-
- Fix unsupported node type> error caused by COLLATE>
- in an INSERT> expression (Tom Lane)
-
-
-
-
- Avoid crashing when we have problems deleting table files post-commit
- (Tom Lane)
-
-
- Dropping a table should lead to deleting the underlying disk files only
- after the transaction commits. In event of failure then (for instance,
- because of wrong file permissions) the code is supposed to just emit a
- warning message and go on, since it's too late to abort the
- transaction. This logic got broken as of release 8.4, causing such
- situations to result in a PANIC and an unrestartable database.
-
-
-
-
- Recover from errors occurring during WAL replay of DROP
- TABLESPACE> (Tom Lane)
-
-
- Replay will attempt to remove the tablespace's directories, but there
- are various reasons why this might fail (for example, incorrect
- ownership or permissions on those directories). Formerly the replay
- code would panic, rendering the database unrestartable without manual
- intervention. It seems better to log the problem and continue, since
- the only consequence of failure to remove the directories is some
- wasted disk space.
-
-
-
-
- Fix race condition in logging AccessExclusiveLocks for hot standby
- (Simon Riggs)
-
-
- Sometimes a lock would be logged as being held by transaction
- zero>. This is at least known to produce assertion failures on
- slave servers, and might be the cause of more serious problems.
-
-
-
-
- Track the OID counter correctly during WAL replay, even when it wraps
- around (Tom Lane)
-
-
- Previously the OID counter would remain stuck at a high value until the
- system exited replay mode. The practical consequences of that are
- usually nil, but there are scenarios wherein a standby server that's
- been promoted to master might take a long time to advance the OID
- counter to a reasonable value once values are needed.
-
-
-
-
- Prevent emitting misleading consistent recovery state reached>
- log message at the beginning of crash recovery (Heikki Linnakangas)
-
-
-
-
- Fix initial value of
- pg_stat_replication>.replay_location>
- (Fujii Masao)
-
-
- Previously, the value shown would be wrong until at least one WAL
- record had been replayed.
-
-
-
-
- Fix regular expression back-references with *> attached
- (Tom Lane)
-
-
- Rather than enforcing an exact string match, the code would effectively
- accept any string that satisfies the pattern sub-expression referenced
- by the back-reference symbol.
-
-
- A similar problem still afflicts back-references that are embedded in a
- larger quantified expression, rather than being the immediate subject
- of the quantifier. This will be addressed in a future
-
-
-
-
- Fix recently-introduced memory leak in processing of
- inet>/cidr> values (Heikki Linnakangas)
-
-
- A patch in the December 2011 releases of
PostgreSQL>
- caused memory leakage in these operations, which could be significant
- in scenarios such as building a btree index on such a column.
-
-
-
-
- Fix planner's ability to push down index-expression restrictions
- through UNION ALL> (Tom Lane)
-
-
- This type of optimization was inadvertently disabled by a fix for
- another problem in 9.1.2.
-
-
-
-
- Fix planning of WITH> clauses referenced in
- UPDATE>/DELETE> on an inherited table
- (Tom Lane)
-
-
- This bug led to could not find plan for CTE> failures.
-
-
-
-
- Fix GIN cost estimation to handle column IN (...)>
- index conditions (Marti Raudsepp)
-
-
- This oversight would usually lead to crashes if such a condition could
- be used with a GIN index.
-
-
-
-
- Prevent assertion failure when exiting a session with an open, failed
- transaction (Tom Lane)
-
-
- This bug has no impact on normal builds with asserts not enabled.
-
-
-
-
- Fix dangling pointer after CREATE TABLE AS>/SELECT
- INTO> in a SQL-language function (Tom Lane)
-
-
- In most cases this only led to an assertion failure in assert-enabled
- builds, but worse consequences seem possible.
-
-
-
-
- Avoid double close of file handle in syslogger on Windows (MauMau)
-
-
- Ordinarily this error was invisible, but it would cause an exception
- when running on a debug version of Windows.
-
-
-
-
- Fix I/O-conversion-related memory leaks in plpgsql
- (Andres Freund, Jan Urbanski, Tom Lane)
-
-
- Certain operations would leak memory until the end of the current
- function.
-
-
-
-
- Work around bug in perl's SvPVutf8() function (Andrew Dunstan)
-
-
- This function crashes when handed a typeglob or certain read-only
- objects such as $^V>. Make plperl avoid passing those to
- it.
-
-
-
-
- In
pg_dump>, don't dump contents of an extension's
- configuration tables if the extension itself is not being dumped
- (Tom Lane)
-
-
-
-
- Improve
pg_dump>'s handling of inherited table columns
- (Tom Lane)
-
-
-
pg_dump> mishandled situations where a child column has
- a different default expression than its parent column. If the default
- is textually identical to the parent's default, but not actually the
- same (for instance, because of schema search path differences) it would
- not be recognized as different, so that after dump and restore the
- child would be allowed to inherit the parent's default. Child columns
- that are NOT NULL> where their parent is not could also be
- restored subtly incorrectly.
-
-
-
-
- Fix
pg_restore>'s direct-to-database mode for
- INSERT-style table data (Tom Lane)
-
-
- Direct-to-database restores from archive files made with
- --inserts> or --column-inserts> options fail when
- using
pg_restore> from a release dated September or
- December 2011, as a result of an oversight in a fix for another
- problem. The archive file itself is not at fault, and text-mode
- output is okay.
-
-
-
-
- Teach
pg_upgrade> to handle renaming of
-
plpython>'s shared library (Bruce Momjian)
-
-
- Upgrading a pre-9.1 database that included plpython would fail because
- of this oversight.
-
-
-
-
- Allow
pg_upgrade> to process tables containing
- regclass> columns (Bruce Momjian)
-
-
- Since
pg_upgrade> now takes care to preserve
- pg_class> OIDs, there was no longer any reason for this
- restriction.
-
-
-
-
- Make
libpq> ignore ENOTDIR> errors
- when looking for an SSL client certificate file
- (Magnus Hagander)
-
-
- This allows SSL connections to be established, though without a
- certificate, even when the user's home directory is set to something
- like /dev/null>.
-
-
-
-
- Fix some more field alignment issues in
ecpg>'s SQLDA area
- (Zoltan Boszormenyi)
-
-
-
-
- Allow
AT> option in ecpg>
- DEALLOCATE> statements (Michael Meskes)
-
-
- The infrastructure to support this has been there for awhile, but
- through an oversight there was still an error check rejecting the case.
-
-
-
-
- Do not use the variable name when defining a varchar structure in ecpg
- (Michael Meskes)
-
-
-
-
- Fix contrib/auto_explain>'s JSON output mode to produce
- valid JSON (Andrew Dunstan)
-
-
- The output used brackets at the top level, when it should have used
- braces.
-
-
-
-
- Fix error in contrib/intarray>'s int[] &
- int[]> operator (Guillaume Lelarge)
-
-
- If the smallest integer the two input arrays have in common is 1,
- and there are smaller values in either array, then 1 would be
- incorrectly omitted from the result.
-
-
-
-
- Fix error detection in contrib/pgcrypto>'s
- encrypt_iv()> and decrypt_iv()>
- (Marko Kreen)
-
-
- These functions failed to report certain types of invalid-input errors,
- and would instead return random garbage values for incorrect input.
-
-
-
-
- Fix one-byte buffer overrun in contrib/test_parser>
- (Paul Guyot)
-
-
- The code would try to read one more byte than it should, which would
- crash in corner cases.
- Since contrib/test_parser> is only example code, this is
- not a security issue in itself, but bad example code is still bad.
-
-
-
-
- Use __sync_lock_test_and_set()> for spinlocks on ARM, if
- available (Martin Pitt)
-
-
- This function replaces our previous use of the SWPB>
- instruction, which is deprecated and not available on ARMv6 and later.
- Reports suggest that the old code doesn't fail in an obvious way on
- recent ARM boards, but simply doesn't interlock concurrent accesses,
- leading to bizarre failures in multiprocess operation.
-
-
-
-
- Use -fexcess-precision=standard> option when building with
- gcc versions that accept it (Andrew Dunstan)
-
-
- This prevents assorted scenarios wherein recent versions of gcc will
- produce creative results.
-
-
-
-
- Allow use of threaded Python on FreeBSD (Chris Rees)
-
-
- Our configure script previously believed that this combination wouldn't
- work; but FreeBSD fixed the problem, so remove that error check.
-
-
-
-
- Allow MinGW builds to use standardly-named OpenSSL libraries
- (Tomasz Ostrowski)
-
-
-
-
-
-
-
-
-
-
Release 9.1.2
-
-
-
Release date:
-
-
- This release contains a variety of fixes from 9.1.1.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.2
-
- A dump/restore is not required for those running 9.1.X.
-
-
- However, a longstanding error was discovered in the definition of the
- information_schema.referential_constraints> view. If you
- rely on correct results from that view, you should replace its
- definition as explained in the first changelog item below.
-
-
- Also, if you use the citext> data type, and you upgraded
- from a previous major release by running
pg_upgrade>,
- you should run CREATE EXTENSION citext FROM unpackaged>
- to avoid collation-related failures in citext> operations.
- The same is necessary if you restore a dump from a pre-9.1 database
- that contains an instance of the citext> data type.
- If you've already run the CREATE EXTENSION> command before
- upgrading to 9.1.2, you will instead need to do manual catalog updates
- as explained in the second changelog item.
-
-
-
-
-
-
Changes
-
-
-
-
- Fix bugs in information_schema.referential_constraints> view
- (Tom Lane)
-
-
- This view was being insufficiently careful about matching the
- foreign-key constraint to the depended-on primary or unique key
- constraint. That could result in failure to show a foreign key
- constraint at all, or showing it multiple times, or claiming that it
- depends on a different constraint than the one it really does.
-
-
- Since the view definition is installed by
initdb>,
- merely upgrading will not fix the problem. If you need to fix this
- in an existing installation, you can (as a superuser) drop the
- information_schema> schema then re-create it by sourcing
- SHAREDIR>/information_schema.sql .
- (Run pg_config --sharedir> if you're uncertain where
- SHAREDIR> is.) This must be repeated in each database
- to be fixed.
-
-
-
-
- Make contrib/citext>'s upgrade script fix collations of
- citext> columns and indexes (Tom Lane)
-
-
- Existing citext> columns and indexes aren't correctly marked as
- being of a collatable data type during
pg_upgrade> from
- a pre-9.1 server, or when a pre-9.1 dump containing the citext>
- type is loaded into a 9.1 server.
- That leads to operations on these columns failing with errors
- such as could not determine which collation to use for string
- comparison>. This change allows them to be fixed by the same
- script that upgrades the citext> module into a proper 9.1
- extension during CREATE EXTENSION citext FROM unpackaged>.
-
-
- If you have a previously-upgraded database that is suffering from this
- problem, and you already ran the CREATE EXTENSION> command,
- you can manually run (as superuser) the UPDATE> commands
- found at the end of
- SHAREDIR>/extension/citext--unpackaged--1.0.sql .
- (Run pg_config --sharedir> if you're uncertain where
- SHAREDIR> is.)
- There is no harm in doing this again if unsure.
-
-
-
-
- Fix possible crash during UPDATE> or DELETE> that
- joins to the output of a scalar-returning function (Tom Lane)
-
-
- A crash could only occur if the target row had been concurrently
- updated, so this problem surfaced only intermittently.
-
-
-
-
- Fix incorrect replay of WAL records for GIN index updates
- (Tom Lane)
-
-
- This could result in transiently failing to find index entries after
- a crash, or on a hot-standby server. The problem would be repaired
- by the next VACUUM> of the index, however.
-
-
-
-
- Fix TOAST-related data corruption during CREATE TABLE dest AS
- SELECT * FROM src> or INSERT INTO dest SELECT * FROM src>
- (Tom Lane)
-
-
- If a table has been modified by ALTER TABLE ADD COLUMN>,
- attempts to copy its data verbatim to another table could produce
- corrupt results in certain corner cases.
- The problem can only manifest in this precise form in 8.4 and later,
- but we patched earlier versions as well in case there are other code
- paths that could trigger the same bug.
-
-
-
-
- Fix possible failures during hot standby startup (Simon Riggs)
-
-
-
-
- Start hot standby faster when initial snapshot is incomplete
- (Simon Riggs)
-
-
-
-
- Fix race condition during toast table access from stale syscache entries
- (Tom Lane)
-
-
- The typical symptom was transient errors like missing chunk
- number 0 for toast value NNNNN in pg_toast_2619>, where the cited
- toast table would always belong to a system catalog.
-
-
-
-
- Track dependencies of functions on items used in parameter default
- expressions (Tom Lane)
-
-
- Previously, a referenced object could be dropped without having dropped
- or modified the function, leading to misbehavior when the function was
- used. Note that merely installing this update will not fix the missing
- dependency entries; to do that, you'd need to CREATE OR
- REPLACE> each such function afterwards. If you have functions whose
- defaults depend on non-built-in objects, doing so is recommended.
-
-
-
-
- Fix incorrect management of placeholder variables in nestloop joins
- (Tom Lane)
-
-
- This bug is known to lead to variable not found in subplan target
- list> planner errors, and could possibly result in wrong query output
- when outer joins are involved.
-
-
-
-
- Fix window functions that sort by expressions involving aggregates
- (Tom Lane)
-
-
- Previously these could fail with could not find pathkey item to
- sort> planner errors.
-
-
-
-
- Fix MergeAppend child's targetlist doesn't match MergeAppend>
- planner errors (Tom Lane)
-
-
-
-
- Fix index matching for operators with both collatable and noncollatable
- inputs (Tom Lane)
-
-
- In 9.1.0, an indexable operator that has a non-collatable left-hand
- input type and a collatable right-hand input type would not be
- recognized as matching the left-hand column's index. An example is
- the hstore> ?> text> operator.
-
-
-
-
- Allow inlining of set-returning SQL functions with multiple OUT
- parameters (Tom Lane)
-
-
-
-
- Don't trust deferred-unique indexes for join removal (Tom Lane and Marti
- Raudsepp)
-
-
- A deferred uniqueness constraint might not hold intra-transaction,
- so assuming that it does could give incorrect query results.
-
-
-
-
- Make DatumGetInetP()> unpack inet datums that have a 1-byte
- header, and add a new macro, DatumGetInetPP()>, that does
- not (Heikki Linnakangas)
-
-
- This change affects no core code, but might prevent crashes in add-on
- code that expects DatumGetInetP()> to produce an unpacked
- datum as per usual convention.
-
-
-
-
- Improve locale support in money> type's input and output
- (Tom Lane)
-
-
- Aside from not supporting all standard
- lc_monetary>
- formatting options, the input and output functions were inconsistent,
- meaning there were locales in which dumped money> values could
- not be re-read.
-
-
-
-
- Don't let
- linkend="guc-transform-null-equals">transform_null_equals>
- affect CASE foo WHEN NULL ...> constructs
- (Heikki Linnakangas)
-
-
- transform_null_equals> is only supposed to affect
- foo = NULL> expressions written directly by the user, not
- equality checks generated internally by this form of CASE>.
-
-
-
-
- Change foreign-key trigger creation order to better support
- self-referential foreign keys (Tom Lane)
-
-
- For a cascading foreign key that references its own table, a row update
- will fire both the ON UPDATE> trigger and the
- CHECK> trigger as one event. The ON UPDATE>
- trigger must execute first, else the CHECK> will check a
- non-final state of the row and possibly throw an inappropriate error.
- However, the firing order of these triggers is determined by their
- names, which generally sort in creation order since the triggers have
- auto-generated names following the convention
- RI_ConstraintTrigger_NNNN>. A proper fix would require
- modifying that convention, which we will do in 9.2, but it seems risky
- to change it in existing releases. So this patch just changes the
- creation order of the triggers. Users encountering this type of error
- should drop and re-create the foreign key constraint to get its
- triggers into the right order.
-
-
-
-
- Fix IF EXISTS> to work correctly in DROP OPERATOR
- FAMILY> (Robert Haas)
-
-
-
-
- Disallow dropping of an extension from within its own script
- (Tom Lane)
-
-
- This prevents odd behavior in case of incorrect management of extension
- dependencies.
-
-
-
-
- Don't mark auto-generated types as extension members (Robert Haas)
-
-
- Relation rowtypes and automatically-generated array types do not need to
- have their own extension membership entries in pg_depend>,
- and creating such entries complicates matters for extension upgrades.
-
-
-
-
- Cope with invalid pre-existing search_path> settings during
- CREATE EXTENSION> (Tom Lane)
-
-
-
-
- Avoid floating-point underflow while tracking buffer allocation rate
- (Greg Matthews)
-
-
- While harmless in itself, on certain platforms this would result in
- annoying kernel log messages.
-
-
-
-
- Prevent autovacuum transactions from running in serializable mode
- (Tom Lane)
-
-
- Autovacuum formerly used the cluster-wide default transaction isolation
- level, but there is no need for it to use anything higher than READ
- COMMITTED, and using SERIALIZABLE could result in unnecessary delays
- for other processes.
-
-
-
-
- Ensure walsender processes respond promptly to SIGTERM>
- (Magnus Hagander)
-
-
-
-
- Exclude postmaster.opts> from base backups
- (Magnus Hagander)
-
-
-
-
- Preserve configuration file name and line number values when starting
- child processes under Windows (Tom Lane)
-
-
- Formerly, these would not be displayed correctly in the
- pg_settings> view.
-
-
-
-
- Fix incorrect field alignment in
ecpg>'s SQLDA area
- (Zoltan Boszormenyi)
-
-
-
-
- Preserve blank lines within commands in
psql>'s command
- history (Robert Haas)
-
-
- The former behavior could cause problems if an empty line was removed
- from within a string literal, for example.
-
-
-
-
- Avoid platform-specific infinite loop in
pg_dump>
- (Steve Singer)
-
-
-
-
- Fix compression of plain-text output format in
pg_dump>
- (Adrian Klaver and Tom Lane)
-
-
-
pg_dump> has historically understood -Z> with
- no -F> switch to mean that it should emit a gzip-compressed
- version of its plain text output. Restore that behavior.
-
-
-
-
- Fix
pg_dump> to dump user-defined casts between
- auto-generated types, such as table rowtypes (Tom Lane)
-
-
-
-
- Fix missed quoting of foreign server names in
pg_dump>
- (Tom Lane)
-
-
-
-
- Assorted fixes for
pg_upgrade> (Bruce Momjian)
-
-
- Handle exclusion constraints correctly, avoid failures on Windows,
- don't complain about mismatched toast table names in 8.4 databases.
-
-
-
-
- In PL/pgSQL, allow foreign tables to define row types
- (Alexander Soudakov)
-
-
-
-
- Fix up conversions of PL/Perl functions' results
- (Alex Hunsaker and Tom Lane)
-
-
- Restore the pre-9.1 behavior that PL/Perl functions returning
- void> ignore the result value of their last Perl statement;
- 9.1.0 would throw an error if that statement returned a reference.
- Also, make sure it works to return a string value for a composite type,
- so long as the string meets the type's input format.
- In addition, throw errors for attempts to return Perl arrays or hashes
- when the function's declared result type is not an array or composite
- type, respectively. (Pre-9.1 versions rather uselessly returned
- strings like ARRAY(0x221a9a0)> or
- HASH(0x221aa90)> in such cases.)
-
-
-
-
- Ensure PL/Perl strings are always correctly UTF8-encoded
- (Amit Khandekar and Alex Hunsaker)
-
-
-
-
- Use the preferred version of
xsubpp> to build PL/Perl,
- not necessarily the operating system's main copy
- (David Wheeler and Alex Hunsaker)
-
-
-
-
- Correctly propagate SQLSTATE in PL/Python exceptions
- (Mika Eloranta and Jan Urbanski)
-
-
-
-
- Do not install PL/Python extension files for Python major versions
- other than the one built against (Peter Eisentraut)
-
-
-
-
- Change all the contrib> extension script files to report
- a useful error message if they are fed to
psql>
- (Andrew Dunstan and Tom Lane)
-
-
- This should help teach people about the new method of using
- CREATE EXTENSION> to load these files. In most cases,
- sourcing the scripts directly would fail anyway, but with
- harder-to-interpret messages.
-
-
-
-
- Fix incorrect coding in contrib/dict_int> and
- contrib/dict_xsyn> (Tom Lane)
-
-
- Some functions incorrectly assumed that memory returned by
- palloc()> is guaranteed zeroed.
-
-
-
-
- Remove contrib/sepgsql> tests from the regular regression
- test mechanism (Tom Lane)
-
-
- Since these tests require root privileges for setup, they're impractical
- to run automatically. Switch over to a manual approach instead, and
- provide a testing script to help with that.
-
-
-
-
- Fix assorted errors in contrib/unaccent>'s configuration
- file parsing (Tom Lane)
-
-
-
-
- Honor query cancel interrupts promptly in pgstatindex()>
- (Robert Haas)
-
-
-
-
- Fix incorrect quoting of log file name in macOS start script
- (Sidar Lopez)
-
-
-
-
- Revert unintentional enabling of WAL_DEBUG> (Robert Haas)
-
-
- Fortunately, as debugging tools go, this one is pretty cheap;
- but it's not intended to be enabled by default, so revert.
-
-
-
-
- Ensure VPATH builds properly install all server header files
- (Peter Eisentraut)
-
-
-
-
- Shorten file names reported in verbose error messages (Peter Eisentraut)
-
-
- Regular builds have always reported just the name of the C file
- containing the error message call, but VPATH builds formerly
- reported an absolute path name.
-
-
-
-
- Fix interpretation of Windows timezone names for Central America
- (Tom Lane)
-
-
- Map Central America Standard Time> to CST6>, not
- CST6CDT>, because DST is generally not observed anywhere in
- Central America.
-
-
-
-
- Update time zone data files to
tzdata> release 2011n
- for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
- also historical corrections for Alaska and British East Africa.
-
-
-
-
-
-
-
-
-
-
Release 9.1.1
-
-
-
Release date:
-
-
- This release contains a small number of fixes from 9.1.0.
- For information about new features in the 9.1 major release, see
- .
-
-
-
-
Migration to Version 9.1.1
-
- A dump/restore is not required for those running 9.1.X.
-
-
-
-
-
-
Changes
-
-
-
-
- Make pg_options_to_table> return NULL for an option with no
- value (Tom Lane)
-
-
- Previously such cases would result in a server crash.
-
-
-
-
- Fix memory leak at end of a GiST index scan (Tom Lane)
-
-
- Commands that perform many separate GiST index scans, such as
- verification of a new GiST-based exclusion constraint on a table
- already containing many rows, could transiently require large amounts of
- memory due to this leak.
-
-
-
-
- Fix explicit reference to pg_temp> schema in CREATE
- TEMPORARY TABLE> (Robert Haas)
-
-
- This used to be allowed, but failed in 9.1.0.
-
-
-
-
-
-
-
-
-
-
Release 9.1
-
-
-
Release date:
-
-
-
-
Overview
-
- This release shows
PostgreSQL> moving beyond the
- traditional relational-database feature set with new, ground-breaking
- functionality that is unique to
PostgreSQL>.
- The streaming replication feature introduced in release 9.0 is
- significantly enhanced by adding a synchronous-replication option,
- streaming backups, and monitoring improvements.
- Major enhancements include:
-
-
-
-
-
-
-
- Allow synchronous
- replication
-
-
-
-
- Add support for foreign
- tables
-
-
-
-
- Add per-column
- linkend="collation">collation support
-
-
-
-
- Add extensions which
- simplify packaging of additions to
PostgreSQL>
-
-
-
-
- Add a true
- linkend="xact-serializable">serializable isolation level
-
-
-
-
- Support unlogged tables using the UNLOGGED>
- option in CREATE
- TABLE>
-
-
-
-
- Allow data-modification commands
- (INSERT>/UPDATE>/DELETE>) in
- WITH> clauses
-
-
-
-
- Add nearest-neighbor (order-by-operator) searching to
- linkend="GiST">
GiST> indexes
-
-
-
-
- Add a SECURITY
- LABEL> command and support for
-
SELinux> permissions control
-
-
-
-
- Update the PL/Python server-side
- language
-
-
-
-
-
- The above items are explained in more detail in the sections below.
-
-
-
-
-
-
-
Migration to Version 9.1
-
- 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.1 contains a number of changes that may affect compatibility
- with previous releases. Observe the following incompatibilities:
-
-
-
-
Strings
-
-
-
-
- Change the default value of
- linkend="guc-standard-conforming-strings">standard_conforming_strings>
- to on (Robert Haas)
-
-
- By default, backslashes are now ordinary characters in string literals,
- not escape characters. This change removes a long-standing
- incompatibility with the SQL standard.
- linkend="guc-escape-string-warning">escape_string_warning>
- has produced warnings about this usage for years. E''>
- strings are the proper way to embed backslash escapes in strings and are
- unaffected by this change.
-
-
-
- This change can break applications that are not expecting it and
- do their own string escaping according to the old rules. The
- consequences could be as severe as introducing SQL-injection security
- holes. Be sure to test applications that are exposed to untrusted
- input, to ensure that they correctly handle single quotes and
- backslashes in text strings.
-
-
-
-
-
-
-
-
-
-
Casting
-
-
-
-
- Disallow function-style and attribute-style data type casts for
- composite types (Tom Lane)
-
-
- For example, disallow
- composite_value>.text and
- text(composite_value>) .
- Unintentional uses of this syntax have frequently resulted in bug
- reports; although it was not a bug, it seems better to go back to
- rejecting such expressions.
- The CAST> and ::> syntaxes are still available
- for use when a cast of an entire composite value is actually intended.
-
-
-
-
- Tighten casting checks for domains based on arrays (Tom Lane)
-
-
- When a domain is based on an array type, it is allowed to look
- through> the domain type to access the array elements, including
- subscripting the domain value to fetch or assign an element.
- Assignment to an element of such a domain value, for instance via
- UPDATE ... SET domaincol[5] = ...>, will now result in
- rechecking the domain type's constraints, whereas before the checks
- were skipped.
-
-
-
-
-
-
-
-
-
Arrays
-
-
-
-
- Change
- linkend="array-functions-table">string_to_array()>
- to return an empty array for a zero-length string (Pavel
- Stehule)
-
-
- Previously this returned a null value.
-
-
-
-
- Change
- linkend="array-functions-table">string_to_array()>
- so a NULL> separator splits the string into characters
- (Pavel Stehule)
-
-
- Previously this returned a null value.
-
-
-
-
-
-
-
-
-
Object Modification
-
-
-
-
- Fix improper checks for before/after triggers (Tom Lane)
-
-
- Triggers can now be fired in three cases: BEFORE>,
- AFTER>, or INSTEAD OF> some action.
- Trigger function authors should verify that their logic behaves
- sanely in all three cases.
-
-
-
-
- Require superuser or CREATEROLE> permissions in order to
- set comments on roles (Tom Lane)
-
-
-
-
-
-
-
-
-
Server Settings
-
-
-
-
- Change
- linkend="functions-recovery-info-table">pg_last_xlog_receive_location()>
- so it never moves backwards (Fujii Masao)
-
-
- Previously, the value of pg_last_xlog_receive_location()>
- could move backward when streaming replication is restarted.
-
-
-
-
- Have logging of replication connections honor
- linkend="guc-log-connections">log_connections>
- (Magnus Hagander)
-
-
- Previously, replication connections were always logged.
-
-
-
-
-
-
-
-
-
PL/pgSQL Server-Side Language
-
-
-
-
- Change PL/pgSQL's RAISE> command without parameters
- to be catchable by the attached exception block (Piyush Newe)
-
-
- Previously RAISE> in a code block was always scoped to
- an attached exception block, so it was uncatchable at the same
- scope.
-
-
-
-
- Adjust PL/pgSQL's error line numbering code to be consistent
- with other PLs (Pavel Stehule)
-
-
- Previously, PL/pgSQL would ignore (not count) an empty line at the
- start of the function body. Since this was inconsistent with all
- other languages, the special case was removed.
-
-
-
-
- Make PL/pgSQL complain about conflicting IN and OUT parameter names
- (Tom Lane)
-
-
- Formerly, the collision was not detected, and the name would just
- silently refer to only the OUT parameter.
-
-
-
-
- Type modifiers of PL/pgSQL variables are now visible to the SQL parser
- (Tom Lane)
-
-
- A type modifier (such as a varchar length limit) attached to a PL/pgSQL
- variable was formerly enforced during assignments, but was ignored for
- all other purposes. Such variables will now behave more like table
- columns declared with the same modifier. This is not expected to make
- any visible difference in most cases, but it could result in subtle
- changes for some SQL commands issued by PL/pgSQL functions.
-
-
-
-
-
-
-
-
-
Contrib
-
-
-
-
- All contrib modules are now installed with
- linkend="SQL-CREATEEXTENSION">CREATE EXTENSION>
- rather than by manually invoking their SQL scripts
- (Dimitri Fontaine, Tom Lane)
-
-
- To update an existing database containing the 9.0 version of a contrib
- module, use CREATE EXTENSION ... FROM unpackaged
- to wrap the existing contrib module's objects into an extension. When
- updating from a pre-9.0 version, drop the contrib module's objects
- using its old uninstall script, then use CREATE EXTENSION>.
-
-
-
-
-
-
-
-
-
Other Incompatibilities
-
-
-
-
- Make
- linkend="monitoring-stats-funcs-table">pg_stat_reset()>
- reset all database-level statistics (Tomas Vondra)
-
-
- Some pg_stat_database> counters were not being reset.
-
-
-
-
- Fix some
- linkend="infoschema-triggers">information_schema.triggers>
- column names to match the new SQL-standard names (Dean Rasheed)
-
-
-
-
- Treat
ECPG> cursor names as case-insensitive
- (Zoltan Boszormenyi)
-
-
-
-
-
-
-
-
-
-
Changes
-
- Below you will find a detailed account of the changes between
-
PostgreSQL 9.1 and the previous major
- release.
-
-
-
-
Server
-
-
-
Performance
-
-
-
-
- Support unlogged tables using the UNLOGGED>
- option in CREATE
- TABLE> (Robert Haas)
-
-
- Such tables provide better update performance than regular tables,
- but are not crash-safe: their contents are automatically cleared in
- case of a server crash. Their contents do not propagate to
- replication slaves, either.
-
-
-
-
- Allow FULL OUTER JOIN to be implemented as a
- hash join, and allow either side of a LEFT OUTER JOIN>
- or RIGHT OUTER JOIN> to be hashed (Tom Lane)
-
-
- Previously FULL OUTER JOIN could only be
- implemented as a merge join, and LEFT OUTER JOIN
- and RIGHT OUTER JOIN could hash only the nullable
- side of the join. These changes provide additional query optimization
- possibilities.
-
-
-
-
- Merge duplicate fsync requests (Robert Haas, Greg Smith)
-
-
- This greatly improves performance under heavy write loads.
-
-
-
-
- Improve performance of
- linkend="guc-commit-siblings">commit_siblings>
- (Greg Smith)
-
-
- This allows the use of commit_siblings with
- less overhead.
-
-
-
-
- Reduce the memory requirement for large ispell dictionaries
- (Pavel Stehule, Tom Lane)
-
-
-
-
- Avoid leaving data files open after blind writes>
- (Alvaro Herrera)
-
-
- This fixes scenarios in which backends might hold files open long
- after they were deleted, preventing the kernel from reclaiming
- disk space.
-
-
-
-
-
-
-
-
-
Optimizer
-
-
-
-
- Allow inheritance table scans to return meaningfully-sorted
- results (Greg Stark, Hans-Jurgen Schonig, Robert Haas, Tom Lane)
-
-
- This allows better optimization of queries that use ORDER
- BY>, LIMIT>, or MIN>/MAX> with
- inherited tables.
-
-
-
-
- Improve GIN index scan cost estimation (Teodor Sigaev)
-
-
-
-
- Improve cost estimation for aggregates and window functions (Tom Lane)
-
-
-
-
-
-
-
-
-
Authentication
-
-
-
-
- Support host names and host suffixes
- (e.g.
.example.com>) in
- linkend="auth-pg-hba-conf">pg_hba.conf>
- (Peter Eisentraut)
-
-
- Previously only host
IP> addresses and CIDR>
- values were supported.
-
-
-
-
- Support the key word
all> in the host column of
- linkend="auth-pg-hba-conf">pg_hba.conf>
- (Peter Eisentraut)
-
-
- Previously people used 0.0.0.0/0> or