~ubuntu-branches/ubuntu/oneiric/postgresql-9.1/oneiric-security

« back to all changes in this revision

Viewing changes to doc/src/sgml/release-9.0.sgml

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2013-02-05 18:13:52 UTC
  • mfrom: (1.1.10) (10.1.5 oneiric-proposed)
  • Revision ID: package-import@ubuntu.com-20130205181352-3kw4f94ilqklzm7c
Tags: 9.1.8-0ubuntu11.10
* New upstream security/bug fix release: (LP: #1116336)
  - Prevent execution of enum_recv from SQL
    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)
  - See HISTORY/changelog.gz for the other bug fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<!-- doc/src/sgml/release-9.0.sgml -->
2
2
<!-- See header comment in release.sgml about typical markup -->
3
3
 
 
4
 <sect1 id="release-9-0-12">
 
5
  <title>Release 9.0.12</title>
 
6
 
 
7
  <note>
 
8
  <title>Release Date</title>
 
9
  <simpara>2013-02-07</simpara>
 
10
  </note>
 
11
 
 
12
  <para>
 
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">.
 
16
  </para>
 
17
 
 
18
  <sect2>
 
19
   <title>Migration to Version 9.0.12</title>
 
20
 
 
21
   <para>
 
22
    A dump/restore is not required for those running 9.0.X.
 
23
   </para>
 
24
 
 
25
   <para>
 
26
    However, if you are upgrading from a version earlier than 9.0.6,
 
27
    see the release notes for 9.0.6.
 
28
   </para>
 
29
 
 
30
  </sect2>
 
31
 
 
32
  <sect2>
 
33
   <title>Changes</title>
 
34
 
 
35
   <itemizedlist>
 
36
 
 
37
    <listitem>
 
38
     <para>
 
39
      Prevent execution of <function>enum_recv</> from SQL (Tom Lane)
 
40
     </para>
 
41
 
 
42
     <para>
 
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)
 
47
     </para>
 
48
    </listitem>
 
49
 
 
50
    <listitem>
 
51
     <para>
 
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)
 
55
     </para>
 
56
    </listitem>
 
57
 
 
58
    <listitem>
 
59
     <para>
 
60
      Update minimum recovery point when truncating a relation file (Heikki
 
61
      Linnakangas)
 
62
     </para>
 
63
 
 
64
     <para>
 
65
      Once data has been discarded, it's no longer safe to stop recovery at
 
66
      an earlier point in the timeline.
 
67
     </para>
 
68
    </listitem>
 
69
 
 
70
    <listitem>
 
71
     <para>
 
72
      Fix missing cancellations in hot standby mode (Noah Misch, Simon Riggs)
 
73
     </para>
 
74
 
 
75
     <para>
 
76
      The need to cancel conflicting hot-standby queries would sometimes be
 
77
      missed, allowing those queries to see inconsistent data.
 
78
     </para>
 
79
    </listitem>
 
80
 
 
81
    <listitem>
 
82
     <para>
 
83
      Fix SQL grammar to allow subscripting or field selection from a
 
84
      sub-SELECT result (Tom Lane)
 
85
     </para>
 
86
    </listitem>
 
87
 
 
88
    <listitem>
 
89
     <para>
 
90
      Fix performance problems with autovacuum truncation in busy workloads
 
91
      (Jan Wieck)
 
92
     </para>
 
93
 
 
94
     <para>
 
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.
 
103
     </para>
 
104
    </listitem>
 
105
 
 
106
    <listitem>
 
107
     <para>
 
108
      Protect against race conditions when scanning
 
109
      <structname>pg_tablespace</> (Stephen Frost, Tom Lane)
 
110
     </para>
 
111
 
 
112
     <para>
 
113
      <command>CREATE DATABASE</> and <command>DROP DATABASE</> could
 
114
      misbehave if there were concurrent updates of
 
115
      <structname>pg_tablespace</> entries.
 
116
     </para>
 
117
    </listitem>
 
118
 
 
119
    <listitem>
 
120
     <para>
 
121
      Prevent <command>DROP OWNED</> from trying to drop whole databases or
 
122
      tablespaces (&Aacute;lvaro Herrera)
 
123
     </para>
 
124
 
 
125
     <para>
 
126
      For safety, ownership of these objects must be reassigned, not dropped.
 
127
     </para>
 
128
    </listitem>
 
129
 
 
130
    <listitem>
 
131
     <para>
 
132
      Fix error in <link
 
133
      linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
 
134
      implementation (Andres Freund)
 
135
     </para>
 
136
 
 
137
     <para>
 
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
 
141
      than intended.
 
142
     </para>
 
143
    </listitem>
 
144
 
 
145
    <listitem>
 
146
     <para>
 
147
      Prevent misbehavior when a <symbol>RowExpr</> or <symbol>XmlExpr</>
 
148
      is parse-analyzed twice (Andres Freund, Tom Lane)
 
149
     </para>
 
150
 
 
151
     <para>
 
152
      This mistake could be user-visible in contexts such as
 
153
      <literal>CREATE TABLE LIKE INCLUDING INDEXES</>.
 
154
     </para>
 
155
    </listitem>
 
156
 
 
157
    <listitem>
 
158
     <para>
 
159
      Improve defenses against integer overflow in hashtable sizing
 
160
      calculations (Jeff Davis)
 
161
     </para>
 
162
    </listitem>
 
163
 
 
164
    <listitem>
 
165
     <para>
 
166
      Reject out-of-range dates in <function>to_date()</> (Hitoshi Harada)
 
167
     </para>
 
168
    </listitem>
 
169
 
 
170
    <listitem>
 
171
     <para>
 
172
      Ensure that non-ASCII prompt strings are translated to the correct
 
173
      code page on Windows (Alexander Law, Noah Misch)
 
174
     </para>
 
175
 
 
176
     <para>
 
177
      This bug affected <application>psql</> and some other client programs.
 
178
     </para>
 
179
    </listitem>
 
180
 
 
181
    <listitem>
 
182
     <para>
 
183
      Fix possible crash in <application>psql</>'s <command>\?</> command
 
184
      when not connected to a database (Meng Qingzhong)
 
185
     </para>
 
186
    </listitem>
 
187
 
 
188
    <listitem>
 
189
     <para>
 
190
      Fix <application>pg_upgrade</> to deal with invalid indexes safely
 
191
      (Bruce Momjian)
 
192
     </para>
 
193
    </listitem>
 
194
 
 
195
    <listitem>
 
196
     <para>
 
197
      Fix one-byte buffer overrun in <application>libpq</>'s
 
198
      <function>PQprintTuples</> (Xi Wang)
 
199
     </para>
 
200
 
 
201
     <para>
 
202
      This ancient function is not used anywhere by
 
203
      <productname>PostgreSQL</> itself, but it might still be used by some
 
204
      client code.
 
205
     </para>
 
206
    </listitem>
 
207
 
 
208
    <listitem>
 
209
     <para>
 
210
      Make <application>ecpglib</> use translated messages properly
 
211
      (Chen Huajun)
 
212
     </para>
 
213
    </listitem>
 
214
 
 
215
    <listitem>
 
216
     <para>
 
217
      Properly install <application>ecpg_compat</> and
 
218
      <application>pgtypes</> libraries on MSVC (Jiang Guiqing)
 
219
     </para>
 
220
    </listitem>
 
221
 
 
222
    <listitem>
 
223
     <para>
 
224
      Include our version of <function>isinf()</> in
 
225
      <application>libecpg</> if it's not provided by the system
 
226
      (Jiang Guiqing)
 
227
     </para>
 
228
    </listitem>
 
229
 
 
230
    <listitem>
 
231
     <para>
 
232
      Rearrange configure's tests for supplied functions so it is not
 
233
      fooled by bogus exports from libedit/libreadline (Christoph Berg)
 
234
     </para>
 
235
    </listitem>
 
236
 
 
237
    <listitem>
 
238
     <para>
 
239
      Ensure Windows build number increases over time (Magnus Hagander)
 
240
     </para>
 
241
    </listitem>
 
242
 
 
243
    <listitem>
 
244
     <para>
 
245
      Make <application>pgxs</> build executables with the right
 
246
      <literal>.exe</> suffix when cross-compiling for Windows
 
247
      (Zoltan Boszormenyi)
 
248
     </para>
 
249
    </listitem>
 
250
 
 
251
    <listitem>
 
252
     <para>
 
253
      Add new timezone abbreviation <literal>FET</> (Tom Lane)
 
254
     </para>
 
255
 
 
256
     <para>
 
257
      This is now used in some eastern-European time zones.
 
258
     </para>
 
259
    </listitem>
 
260
 
 
261
   </itemizedlist>
 
262
 
 
263
  </sect2>
 
264
 </sect1>
 
265
 
 
266
 <sect1 id="release-9-0-11">
 
267
  <title>Release 9.0.11</title>
 
268
 
 
269
  <note>
 
270
  <title>Release Date</title>
 
271
  <simpara>2012-12-06</simpara>
 
272
  </note>
 
273
 
 
274
  <para>
 
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">.
 
278
  </para>
 
279
 
 
280
  <sect2>
 
281
   <title>Migration to Version 9.0.11</title>
 
282
 
 
283
   <para>
 
284
    A dump/restore is not required for those running 9.0.X.
 
285
   </para>
 
286
 
 
287
   <para>
 
288
    However, if you are upgrading from a version earlier than 9.0.6,
 
289
    see the release notes for 9.0.6.
 
290
   </para>
 
291
 
 
292
  </sect2>
 
293
 
 
294
  <sect2>
 
295
   <title>Changes</title>
 
296
 
 
297
   <itemizedlist>
 
298
 
 
299
    <listitem>
 
300
     <para>
 
301
      Fix multiple bugs associated with <command>CREATE INDEX
 
302
      CONCURRENTLY</> (Andres Freund, Tom Lane)
 
303
     </para>
 
304
 
 
305
     <para>
 
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.
 
311
     </para>
 
312
 
 
313
     <para>
 
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
 
319
      the invalid index.
 
320
     </para>
 
321
    </listitem>
 
322
 
 
323
    <listitem>
 
324
     <para>
 
325
      Fix buffer locking during WAL replay (Tom Lane)
 
326
     </para>
 
327
 
 
328
     <para>
 
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.
 
333
     </para>
 
334
    </listitem>
 
335
 
 
336
    <listitem>
 
337
     <para>
 
338
      Fix an error in WAL generation logic for GIN indexes (Tom Lane)
 
339
     </para>
 
340
 
 
341
     <para>
 
342
      This could result in index corruption, if a torn-page failure occurred.
 
343
     </para>
 
344
    </listitem>
 
345
 
 
346
    <listitem>
 
347
     <para>
 
348
      Properly remove startup process's virtual XID lock when promoting a
 
349
      hot standby server to normal running (Simon Riggs)
 
350
     </para>
 
351
 
 
352
     <para>
 
353
      This oversight could prevent subsequent execution of certain
 
354
      operations such as <command>CREATE INDEX CONCURRENTLY</>.
 
355
     </para>
 
356
    </listitem>
 
357
 
 
358
    <listitem>
 
359
     <para>
 
360
      Avoid bogus <quote>out-of-sequence timeline ID</> errors in standby
 
361
      mode (Heikki Linnakangas)
 
362
     </para>
 
363
    </listitem>
 
364
 
 
365
    <listitem>
 
366
     <para>
 
367
      Prevent the postmaster from launching new child processes after it's
 
368
      received a shutdown signal (Tom Lane)
 
369
     </para>
 
370
 
 
371
     <para>
 
372
      This mistake could result in shutdown taking longer than it should, or
 
373
      even never completing at all without additional user action.
 
374
     </para>
 
375
    </listitem>
 
376
 
 
377
    <listitem>
 
378
     <para>
 
379
      Avoid corruption of internal hash tables when out of memory
 
380
      (Hitoshi Harada)
 
381
     </para>
 
382
    </listitem>
 
383
 
 
384
    <listitem>
 
385
     <para>
 
386
      Fix planning of non-strict equivalence clauses above outer joins
 
387
      (Tom Lane)
 
388
     </para>
 
389
 
 
390
     <para>
 
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.
 
395
     </para>
 
396
    </listitem>
 
397
 
 
398
    <listitem>
 
399
     <para>
 
400
      Improve planner's ability to prove exclusion constraints from
 
401
      equivalence classes (Tom Lane)
 
402
     </para>
 
403
    </listitem>
 
404
 
 
405
    <listitem>
 
406
     <para>
 
407
      Fix partial-row matching in hashed subplans to handle cross-type cases
 
408
      correctly (Tom Lane)
 
409
     </para>
 
410
 
 
411
     <para>
 
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.
 
417
     </para>
 
418
    </listitem>
 
419
 
 
420
    <listitem>
 
421
     <para>
 
422
      Acquire buffer lock when re-fetching the old tuple for an
 
423
      <literal>AFTER ROW UPDATE/DELETE</> trigger (Andres Freund)
 
424
     </para>
 
425
 
 
426
     <para>
 
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.
 
431
     </para>
 
432
    </listitem>
 
433
 
 
434
    <listitem>
 
435
     <para>
 
436
      Fix <command>ALTER COLUMN TYPE</> to handle inherited check
 
437
      constraints properly (Pavan Deolasee)
 
438
     </para>
 
439
 
 
440
     <para>
 
441
      This worked correctly in pre-8.4 releases, and now works correctly
 
442
      in 8.4 and later.
 
443
     </para>
 
444
    </listitem>
 
445
 
 
446
    <listitem>
 
447
     <para>
 
448
      Fix <command>REASSIGN OWNED</> to handle grants on tablespaces
 
449
      (&Aacute;lvaro Herrera)
 
450
     </para>
 
451
    </listitem>
 
452
 
 
453
    <listitem>
 
454
     <para>
 
455
      Ignore incorrect <structname>pg_attribute</> entries for system
 
456
      columns for views (Tom Lane)
 
457
     </para>
 
458
 
 
459
     <para>
 
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.
 
464
     </para>
 
465
    </listitem>
 
466
 
 
467
    <listitem>
 
468
     <para>
 
469
      Fix rule printing to dump <literal>INSERT INTO <replaceable>table</>
 
470
      DEFAULT VALUES</literal> correctly (Tom Lane)
 
471
     </para>
 
472
    </listitem>
 
473
 
 
474
    <listitem>
 
475
     <para>
 
476
      Guard against stack overflow when there are too many
 
477
      <literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> clauses
 
478
      in a query (Tom Lane)
 
479
     </para>
 
480
    </listitem>
 
481
 
 
482
    <listitem>
 
483
     <para>
 
484
      Prevent platform-dependent failures when dividing the minimum possible
 
485
      integer value by -1 (Xi Wang, Tom Lane)
 
486
     </para>
 
487
    </listitem>
 
488
 
 
489
    <listitem>
 
490
     <para>
 
491
      Fix possible access past end of string in date parsing
 
492
      (Hitoshi Harada)
 
493
     </para>
 
494
    </listitem>
 
495
 
 
496
    <listitem>
 
497
     <para>
 
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)
 
501
     </para>
 
502
 
 
503
     <para>
 
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.
 
508
     </para>
 
509
    </listitem>
 
510
 
 
511
    <listitem>
 
512
     <para>
 
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)
 
516
     </para>
 
517
 
 
518
     <para>
 
519
      Formerly, this would result in something quite unhelpful, such as
 
520
      <quote>Non-recoverable failure in name resolution</>.
 
521
     </para>
 
522
    </listitem>
 
523
 
 
524
    <listitem>
 
525
     <para>
 
526
      Fix memory leaks when sending composite column values to the client
 
527
      (Tom Lane)
 
528
     </para>
 
529
    </listitem>
 
530
 
 
531
    <listitem>
 
532
     <para>
 
533
      Make <application>pg_ctl</> more robust about reading the
 
534
      <filename>postmaster.pid</> file (Heikki Linnakangas)
 
535
     </para>
 
536
 
 
537
     <para>
 
538
      Fix race conditions and possible file descriptor leakage.
 
539
     </para>
 
540
    </listitem>
 
541
 
 
542
    <listitem>
 
543
     <para>
 
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)
 
547
     </para>
 
548
    </listitem>
 
549
 
 
550
    <listitem>
 
551
     <para>
 
552
      Fix bugs in the <filename>restore.sql</> script emitted by
 
553
      <application>pg_dump</> in <literal>tar</> output format (Tom Lane)
 
554
     </para>
 
555
 
 
556
     <para>
 
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.
 
560
     </para>
 
561
    </listitem>
 
562
 
 
563
    <listitem>
 
564
     <para>
 
565
      Fix <application>pg_restore</> to accept POSIX-conformant
 
566
      <literal>tar</> files (Brian Weaver, Tom Lane)
 
567
     </para>
 
568
 
 
569
     <para>
 
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.
 
576
     </para>
 
577
    </listitem>
 
578
 
 
579
    <listitem>
 
580
     <para>
 
581
      Fix <application>pg_resetxlog</> to locate <filename>postmaster.pid</>
 
582
      correctly when given a relative path to the data directory (Tom Lane)
 
583
     </para>
 
584
 
 
585
     <para>
 
586
      This mistake could lead to <application>pg_resetxlog</> not noticing
 
587
      that there is an active postmaster using the data directory.
 
588
     </para>
 
589
    </listitem>
 
590
 
 
591
    <listitem>
 
592
     <para>
 
593
      Fix <application>libpq</>'s <function>lo_import()</> and
 
594
      <function>lo_export()</> functions to report file I/O errors properly
 
595
      (Tom Lane)
 
596
     </para>
 
597
    </listitem>
 
598
 
 
599
    <listitem>
 
600
     <para>
 
601
      Fix <application>ecpg</>'s processing of nested structure pointer
 
602
      variables (Muhammad Usama)
 
603
     </para>
 
604
    </listitem>
 
605
 
 
606
    <listitem>
 
607
     <para>
 
608
      Fix <application>ecpg</>'s <function>ecpg_get_data</> function to
 
609
      handle arrays properly (Michael Meskes)
 
610
     </para>
 
611
    </listitem>
 
612
 
 
613
    <listitem>
 
614
     <para>
 
615
      Make <filename>contrib/pageinspect</>'s btree page inspection
 
616
      functions take buffer locks while examining pages (Tom Lane)
 
617
     </para>
 
618
    </listitem>
 
619
 
 
620
    <listitem>
 
621
     <para>
 
622
      Fix <application>pgxs</> support for building loadable modules on AIX
 
623
      (Tom Lane)
 
624
     </para>
 
625
 
 
626
     <para>
 
627
      Building modules outside the original source tree didn't work on AIX.
 
628
     </para>
 
629
    </listitem>
 
630
 
 
631
    <listitem>
 
632
     <para>
 
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.
 
636
     </para>
 
637
    </listitem>
 
638
 
 
639
   </itemizedlist>
 
640
 
 
641
  </sect2>
 
642
 </sect1>
 
643
 
 
644
 <sect1 id="release-9-0-10">
 
645
  <title>Release 9.0.10</title>
 
646
 
 
647
  <note>
 
648
  <title>Release Date</title>
 
649
  <simpara>2012-09-24</simpara>
 
650
  </note>
 
651
 
 
652
  <para>
 
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">.
 
656
  </para>
 
657
 
 
658
  <sect2>
 
659
   <title>Migration to Version 9.0.10</title>
 
660
 
 
661
   <para>
 
662
    A dump/restore is not required for those running 9.0.X.
 
663
   </para>
 
664
 
 
665
   <para>
 
666
    However, if you are upgrading from a version earlier than 9.0.6,
 
667
    see the release notes for 9.0.6.
 
668
   </para>
 
669
 
 
670
  </sect2>
 
671
 
 
672
  <sect2>
 
673
   <title>Changes</title>
 
674
 
 
675
   <itemizedlist>
 
676
 
 
677
    <listitem>
 
678
     <para>
 
679
      Fix planner's assignment of executor parameters, and fix executor's
 
680
      rescan logic for CTE plan nodes (Tom Lane)
 
681
     </para>
 
682
 
 
683
     <para>
 
684
      These errors could result in wrong answers from queries that scan the
 
685
      same <literal>WITH</> subquery multiple times.
 
686
     </para>
 
687
    </listitem>
 
688
 
 
689
    <listitem>
 
690
     <para>
 
691
      Improve page-splitting decisions in GiST indexes (Alexander Korotkov,
 
692
      Robert Haas, Tom Lane)
 
693
     </para>
 
694
 
 
695
     <para>
 
696
      Multi-column GiST indexes might suffer unexpected bloat due to this
 
697
      error.
 
698
     </para>
 
699
    </listitem>
 
700
 
 
701
    <listitem>
 
702
     <para>
 
703
      Fix cascading privilege revoke to stop if privileges are still held
 
704
      (Tom Lane)
 
705
     </para>
 
706
 
 
707
     <para>
 
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
 
712
      to.
 
713
     </para>
 
714
    </listitem>
 
715
 
 
716
    <listitem>
 
717
     <para>
 
718
      Improve error messages for Hot Standby misconfiguration errors
 
719
      (Gurjeet Singh)
 
720
     </para>
 
721
    </listitem>
 
722
 
 
723
    <listitem>
 
724
     <para>
 
725
      Fix handling of <literal>SIGFPE</> when PL/Perl is in use (Andres Freund)
 
726
     </para>
 
727
 
 
728
     <para>
 
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.
 
732
     </para>
 
733
    </listitem>
 
734
 
 
735
    <listitem>
 
736
     <para>
 
737
      Prevent PL/Perl from crashing if a recursive PL/Perl function is
 
738
      redefined while being executed (Tom Lane)
 
739
     </para>
 
740
    </listitem>
 
741
 
 
742
    <listitem>
 
743
     <para>
 
744
      Work around possible misoptimization in PL/Perl (Tom Lane)
 
745
     </para>
 
746
 
 
747
     <para>
 
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.
 
752
     </para>
 
753
    </listitem>
 
754
 
 
755
    <listitem>
 
756
     <para>
 
757
      Fix <application>pg_upgrade</>'s handling of line endings on Windows
 
758
      (Andrew Dunstan)
 
759
     </para>
 
760
 
 
761
     <para>
 
762
      Previously, <application>pg_upgrade</> might add or remove carriage
 
763
      returns in places such as function bodies.
 
764
     </para>
 
765
    </listitem>
 
766
 
 
767
    <listitem>
 
768
     <para>
 
769
      On Windows, make <application>pg_upgrade</> use backslash path
 
770
      separators in the scripts it emits (Andrew Dunstan)
 
771
     </para>
 
772
    </listitem>
 
773
 
 
774
    <listitem>
 
775
     <para>
 
776
      Update time zone data files to <application>tzdata</> release 2012f
 
777
      for DST law changes in Fiji
 
778
     </para>
 
779
    </listitem>
 
780
 
 
781
   </itemizedlist>
 
782
 
 
783
  </sect2>
 
784
 </sect1>
 
785
 
4
786
 <sect1 id="release-9-0-9">
5
787
  <title>Release 9.0.9</title>
6
788