1
1
<!-- doc/src/sgml/release-9.0.sgml -->
2
2
<!-- See header comment in release.sgml about typical markup -->
4
<sect1 id="release-9-0-12">
5
<title>Release 9.0.12</title>
8
<title>Release Date</title>
9
<simpara>2013-02-07</simpara>
13
This release contains a variety of fixes from 9.0.11.
14
For information about new features in the 9.0 major release, see
15
<xref linkend="release-9-0">.
19
<title>Migration to Version 9.0.12</title>
22
A dump/restore is not required for those running 9.0.X.
26
However, if you are upgrading from a version earlier than 9.0.6,
27
see the release notes for 9.0.6.
33
<title>Changes</title>
39
Prevent execution of <function>enum_recv</> from SQL (Tom Lane)
43
The function was misdeclared, allowing a simple SQL command to crash the
44
server. In principle an attacker might be able to use it to examine the
45
contents of server memory. Our thanks to Sumit Soni (via Secunia SVCRP)
46
for reporting this issue. (CVE-2013-0255)
52
Fix multiple problems in detection of when a consistent database
53
state has been reached during WAL replay (Fujii Masao, Heikki
54
Linnakangas, Simon Riggs, Andres Freund)
60
Update minimum recovery point when truncating a relation file (Heikki
65
Once data has been discarded, it's no longer safe to stop recovery at
66
an earlier point in the timeline.
72
Fix missing cancellations in hot standby mode (Noah Misch, Simon Riggs)
76
The need to cancel conflicting hot-standby queries would sometimes be
77
missed, allowing those queries to see inconsistent data.
83
Fix SQL grammar to allow subscripting or field selection from a
84
sub-SELECT result (Tom Lane)
90
Fix performance problems with autovacuum truncation in busy workloads
95
Truncation of empty pages at the end of a table requires exclusive
96
lock, but autovacuum was coded to fail (and release the table lock)
97
when there are conflicting lock requests. Under load, it is easily
98
possible that truncation would never occur, resulting in table bloat.
99
Fix by performing a partial truncation, releasing the lock, then
100
attempting to re-acquire the lock and continue. This fix also greatly
101
reduces the average time before autovacuum releases the lock after a
102
conflicting request arrives.
108
Protect against race conditions when scanning
109
<structname>pg_tablespace</> (Stephen Frost, Tom Lane)
113
<command>CREATE DATABASE</> and <command>DROP DATABASE</> could
114
misbehave if there were concurrent updates of
115
<structname>pg_tablespace</> entries.
121
Prevent <command>DROP OWNED</> from trying to drop whole databases or
122
tablespaces (Álvaro Herrera)
126
For safety, ownership of these objects must be reassigned, not dropped.
133
linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
134
implementation (Andres Freund)
138
The main consequence of this mistake is that lowering <link
139
linkend="guc-vacuum-freeze-min-age"><varname>vacuum_freeze_min_age</></link>
140
would cause full-table vacuuming scans to occur much more frequently
147
Prevent misbehavior when a <symbol>RowExpr</> or <symbol>XmlExpr</>
148
is parse-analyzed twice (Andres Freund, Tom Lane)
152
This mistake could be user-visible in contexts such as
153
<literal>CREATE TABLE LIKE INCLUDING INDEXES</>.
159
Improve defenses against integer overflow in hashtable sizing
160
calculations (Jeff Davis)
166
Reject out-of-range dates in <function>to_date()</> (Hitoshi Harada)
172
Ensure that non-ASCII prompt strings are translated to the correct
173
code page on Windows (Alexander Law, Noah Misch)
177
This bug affected <application>psql</> and some other client programs.
183
Fix possible crash in <application>psql</>'s <command>\?</> command
184
when not connected to a database (Meng Qingzhong)
190
Fix <application>pg_upgrade</> to deal with invalid indexes safely
197
Fix one-byte buffer overrun in <application>libpq</>'s
198
<function>PQprintTuples</> (Xi Wang)
202
This ancient function is not used anywhere by
203
<productname>PostgreSQL</> itself, but it might still be used by some
210
Make <application>ecpglib</> use translated messages properly
217
Properly install <application>ecpg_compat</> and
218
<application>pgtypes</> libraries on MSVC (Jiang Guiqing)
224
Include our version of <function>isinf()</> in
225
<application>libecpg</> if it's not provided by the system
232
Rearrange configure's tests for supplied functions so it is not
233
fooled by bogus exports from libedit/libreadline (Christoph Berg)
239
Ensure Windows build number increases over time (Magnus Hagander)
245
Make <application>pgxs</> build executables with the right
246
<literal>.exe</> suffix when cross-compiling for Windows
253
Add new timezone abbreviation <literal>FET</> (Tom Lane)
257
This is now used in some eastern-European time zones.
266
<sect1 id="release-9-0-11">
267
<title>Release 9.0.11</title>
270
<title>Release Date</title>
271
<simpara>2012-12-06</simpara>
275
This release contains a variety of fixes from 9.0.10.
276
For information about new features in the 9.0 major release, see
277
<xref linkend="release-9-0">.
281
<title>Migration to Version 9.0.11</title>
284
A dump/restore is not required for those running 9.0.X.
288
However, if you are upgrading from a version earlier than 9.0.6,
289
see the release notes for 9.0.6.
295
<title>Changes</title>
301
Fix multiple bugs associated with <command>CREATE INDEX
302
CONCURRENTLY</> (Andres Freund, Tom Lane)
306
Fix <command>CREATE INDEX CONCURRENTLY</> to use
307
in-place updates when changing the state of an index's
308
<structname>pg_index</> row. This prevents race conditions that could
309
cause concurrent sessions to miss updating the target index, thus
310
resulting in corrupt concurrently-created indexes.
314
Also, fix various other operations to ensure that they ignore
315
invalid indexes resulting from a failed <command>CREATE INDEX
316
CONCURRENTLY</> command. The most important of these is
317
<command>VACUUM</>, because an auto-vacuum could easily be launched
318
on the table before corrective action can be taken to fix or remove
325
Fix buffer locking during WAL replay (Tom Lane)
329
The WAL replay code was insufficiently careful about locking buffers
330
when replaying WAL records that affect more than one page. This could
331
result in hot standby queries transiently seeing inconsistent states,
332
resulting in wrong answers or unexpected failures.
338
Fix an error in WAL generation logic for GIN indexes (Tom Lane)
342
This could result in index corruption, if a torn-page failure occurred.
348
Properly remove startup process's virtual XID lock when promoting a
349
hot standby server to normal running (Simon Riggs)
353
This oversight could prevent subsequent execution of certain
354
operations such as <command>CREATE INDEX CONCURRENTLY</>.
360
Avoid bogus <quote>out-of-sequence timeline ID</> errors in standby
361
mode (Heikki Linnakangas)
367
Prevent the postmaster from launching new child processes after it's
368
received a shutdown signal (Tom Lane)
372
This mistake could result in shutdown taking longer than it should, or
373
even never completing at all without additional user action.
379
Avoid corruption of internal hash tables when out of memory
386
Fix planning of non-strict equivalence clauses above outer joins
391
The planner could derive incorrect constraints from a clause equating
392
a non-strict construct to something else, for example
393
<literal>WHERE COALESCE(foo, 0) = 0</>
394
when <literal>foo</> is coming from the nullable side of an outer join.
400
Improve planner's ability to prove exclusion constraints from
401
equivalence classes (Tom Lane)
407
Fix partial-row matching in hashed subplans to handle cross-type cases
412
This affects multicolumn <literal>NOT IN</> subplans, such as
413
<literal>WHERE (a, b) NOT IN (SELECT x, y FROM ...)</>
414
when for instance <literal>b</> and <literal>y</> are <type>int4</>
415
and <type>int8</> respectively. This mistake led to wrong answers
416
or crashes depending on the specific datatypes involved.
422
Acquire buffer lock when re-fetching the old tuple for an
423
<literal>AFTER ROW UPDATE/DELETE</> trigger (Andres Freund)
427
In very unusual circumstances, this oversight could result in passing
428
incorrect data to the precheck logic for a foreign-key enforcement
429
trigger. That could result in a crash, or in an incorrect decision
430
about whether to fire the trigger.
436
Fix <command>ALTER COLUMN TYPE</> to handle inherited check
437
constraints properly (Pavan Deolasee)
441
This worked correctly in pre-8.4 releases, and now works correctly
448
Fix <command>REASSIGN OWNED</> to handle grants on tablespaces
449
(Álvaro Herrera)
455
Ignore incorrect <structname>pg_attribute</> entries for system
456
columns for views (Tom Lane)
460
Views do not have any system columns. However, we forgot to
461
remove such entries when converting a table to a view. That's fixed
462
properly for 9.3 and later, but in previous branches we need to defend
463
against existing mis-converted views.
469
Fix rule printing to dump <literal>INSERT INTO <replaceable>table</>
470
DEFAULT VALUES</literal> correctly (Tom Lane)
476
Guard against stack overflow when there are too many
477
<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> clauses
478
in a query (Tom Lane)
484
Prevent platform-dependent failures when dividing the minimum possible
485
integer value by -1 (Xi Wang, Tom Lane)
491
Fix possible access past end of string in date parsing
498
Fix failure to advance XID epoch if XID wraparound happens during a
499
checkpoint and <varname>wal_level</> is <literal>hot_standby</>
500
(Tom Lane, Andres Freund)
504
While this mistake had no particular impact on
505
<productname>PostgreSQL</productname> itself, it was bad for
506
applications that rely on <function>txid_current()</> and related
507
functions: the TXID value would appear to go backwards.
513
Produce an understandable error message if the length of the path name
514
for a Unix-domain socket exceeds the platform-specific limit
515
(Tom Lane, Andrew Dunstan)
519
Formerly, this would result in something quite unhelpful, such as
520
<quote>Non-recoverable failure in name resolution</>.
526
Fix memory leaks when sending composite column values to the client
533
Make <application>pg_ctl</> more robust about reading the
534
<filename>postmaster.pid</> file (Heikki Linnakangas)
538
Fix race conditions and possible file descriptor leakage.
544
Fix possible crash in <application>psql</> if incorrectly-encoded data
545
is presented and the <varname>client_encoding</> setting is a
546
client-only encoding, such as SJIS (Jiang Guiqing)
552
Fix bugs in the <filename>restore.sql</> script emitted by
553
<application>pg_dump</> in <literal>tar</> output format (Tom Lane)
557
The script would fail outright on tables whose names include
558
upper-case characters. Also, make the script capable of restoring
559
data in <option>--inserts</> mode as well as the regular COPY mode.
565
Fix <application>pg_restore</> to accept POSIX-conformant
566
<literal>tar</> files (Brian Weaver, Tom Lane)
570
The original coding of <application>pg_dump</>'s <literal>tar</>
571
output mode produced files that are not fully conformant with the
572
POSIX standard. This has been corrected for version 9.3. This
573
patch updates previous branches so that they will accept both the
574
incorrect and the corrected formats, in hopes of avoiding
575
compatibility problems when 9.3 comes out.
581
Fix <application>pg_resetxlog</> to locate <filename>postmaster.pid</>
582
correctly when given a relative path to the data directory (Tom Lane)
586
This mistake could lead to <application>pg_resetxlog</> not noticing
587
that there is an active postmaster using the data directory.
593
Fix <application>libpq</>'s <function>lo_import()</> and
594
<function>lo_export()</> functions to report file I/O errors properly
601
Fix <application>ecpg</>'s processing of nested structure pointer
602
variables (Muhammad Usama)
608
Fix <application>ecpg</>'s <function>ecpg_get_data</> function to
609
handle arrays properly (Michael Meskes)
615
Make <filename>contrib/pageinspect</>'s btree page inspection
616
functions take buffer locks while examining pages (Tom Lane)
622
Fix <application>pgxs</> support for building loadable modules on AIX
627
Building modules outside the original source tree didn't work on AIX.
633
Update time zone data files to <application>tzdata</> release 2012j
634
for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
635
Samoa, and portions of Brazil.
644
<sect1 id="release-9-0-10">
645
<title>Release 9.0.10</title>
648
<title>Release Date</title>
649
<simpara>2012-09-24</simpara>
653
This release contains a variety of fixes from 9.0.9.
654
For information about new features in the 9.0 major release, see
655
<xref linkend="release-9-0">.
659
<title>Migration to Version 9.0.10</title>
662
A dump/restore is not required for those running 9.0.X.
666
However, if you are upgrading from a version earlier than 9.0.6,
667
see the release notes for 9.0.6.
673
<title>Changes</title>
679
Fix planner's assignment of executor parameters, and fix executor's
680
rescan logic for CTE plan nodes (Tom Lane)
684
These errors could result in wrong answers from queries that scan the
685
same <literal>WITH</> subquery multiple times.
691
Improve page-splitting decisions in GiST indexes (Alexander Korotkov,
692
Robert Haas, Tom Lane)
696
Multi-column GiST indexes might suffer unexpected bloat due to this
703
Fix cascading privilege revoke to stop if privileges are still held
708
If we revoke a grant option from some role <replaceable>X</>, but
709
<replaceable>X</> still holds that option via a grant from someone
710
else, we should not recursively revoke the corresponding privilege
711
from role(s) <replaceable>Y</> that <replaceable>X</> had granted it
718
Improve error messages for Hot Standby misconfiguration errors
725
Fix handling of <literal>SIGFPE</> when PL/Perl is in use (Andres Freund)
729
Perl resets the process's <literal>SIGFPE</> handler to
730
<literal>SIG_IGN</>, which could result in crashes later on. Restore
731
the normal Postgres signal handler after initializing PL/Perl.
737
Prevent PL/Perl from crashing if a recursive PL/Perl function is
738
redefined while being executed (Tom Lane)
744
Work around possible misoptimization in PL/Perl (Tom Lane)
748
Some Linux distributions contain an incorrect version of
749
<filename>pthread.h</> that results in incorrect compiled code in
750
PL/Perl, leading to crashes if a PL/Perl function calls another one
751
that throws an error.
757
Fix <application>pg_upgrade</>'s handling of line endings on Windows
762
Previously, <application>pg_upgrade</> might add or remove carriage
763
returns in places such as function bodies.
769
On Windows, make <application>pg_upgrade</> use backslash path
770
separators in the scripts it emits (Andrew Dunstan)
776
Update time zone data files to <application>tzdata</> release 2012f
777
for DST law changes in Fiji
4
786
<sect1 id="release-9-0-9">
5
787
<title>Release 9.0.9</title>