~ubuntu-branches/ubuntu/karmic/postgresql-8.4/karmic-security

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-02-01 22:30:52 UTC
  • mfrom: (0.1.7 upstream) (8.1.3 karmic-proposed)
  • Revision ID: james.westby@ubuntu.com-20110201223052-ikezaq42g6c3yv2e
Tags: 8.4.7-0ubuntu0.9.10
* New upstream security/bug fix release: (LP: #711318)
  - Fix buffer overrun in "contrib/intarray"'s input function for the
    query_int type.
    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)
  - Avoid failures when "EXPLAIN" tries to display a simple-form CASE
    expression.
    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.
    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.
    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.
    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) | ... .
    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 bug in "contrib/seg"'s GiST picksplit algorithm.
    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.)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<!-- doc/src/sgml/release-8.4.sgml -->
2
2
<!-- See header comment in release.sgml about typical markup -->
3
3
 
 
4
 <sect1 id="release-8-4-7">
 
5
  <title>Release 8.4.7</title>
 
6
 
 
7
  <note>
 
8
  <title>Release date</title>
 
9
  <simpara>2011-01-31</simpara>
 
10
  </note>
 
11
 
 
12
  <para>
 
13
   This release contains a variety of fixes from 8.4.6.
 
14
   For information about new features in the 8.4 major release, see
 
15
   <xref linkend="release-8-4">.
 
16
  </para>
 
17
 
 
18
  <sect2>
 
19
   <title>Migration to Version 8.4.7</title>
 
20
 
 
21
   <para>
 
22
    A dump/restore is not required for those running 8.4.X.
 
23
    However, if you are upgrading from a version earlier than 8.4.2,
 
24
    see the release notes for 8.4.2.
 
25
   </para>
 
26
 
 
27
  </sect2>
 
28
 
 
29
  <sect2>
 
30
   <title>Changes</title>
 
31
 
 
32
   <itemizedlist>
 
33
 
 
34
    <listitem>
 
35
     <para>
 
36
      Avoid failures when <command>EXPLAIN</> tries to display a simple-form
 
37
      <literal>CASE</> expression (Tom Lane)
 
38
     </para>
 
39
 
 
40
     <para>
 
41
      If the <literal>CASE</>'s test expression was a constant, the planner
 
42
      could simplify the <literal>CASE</> into a form that confused the
 
43
      expression-display code, resulting in <quote>unexpected CASE WHEN
 
44
      clause</> errors.
 
45
     </para>
 
46
    </listitem>
 
47
 
 
48
    <listitem>
 
49
     <para>
 
50
      Fix assignment to an array slice that is before the existing range
 
51
      of subscripts (Tom Lane)
 
52
     </para>
 
53
 
 
54
     <para>
 
55
      If there was a gap between the newly added subscripts and the first
 
56
      pre-existing subscript, the code miscalculated how many entries needed
 
57
      to be copied from the old array's null bitmap, potentially leading to
 
58
      data corruption or crash.
 
59
     </para>
 
60
    </listitem>
 
61
 
 
62
    <listitem>
 
63
     <para>
 
64
      Avoid unexpected conversion overflow in planner for very distant date
 
65
      values (Tom Lane)
 
66
     </para>
 
67
 
 
68
     <para>
 
69
      The <type>date</> type supports a wider range of dates than can be
 
70
      represented by the <type>timestamp</> types, but the planner assumed it
 
71
      could always convert a date to timestamp with impunity.
 
72
     </para>
 
73
    </listitem>
 
74
 
 
75
    <listitem>
 
76
     <para>
 
77
      Fix <application>pg_restore</>'s text output for large objects (BLOBs)
 
78
      when <varname>standard_conforming_strings</> is on (Tom Lane)
 
79
     </para>
 
80
 
 
81
     <para>
 
82
      Although restoring directly to a database worked correctly, string
 
83
      escaping was incorrect if <application>pg_restore</> was asked for
 
84
      SQL text output and <varname>standard_conforming_strings</> had been
 
85
      enabled in the source database.
 
86
     </para>
 
87
    </listitem>
 
88
 
 
89
    <listitem>
 
90
     <para>
 
91
      Fix erroneous parsing of <type>tsquery</> values containing
 
92
      <literal>... &amp; !(subexpression) | ...</literal> (Tom Lane)
 
93
     </para>
 
94
 
 
95
     <para>
 
96
      Queries containing this combination of operators were not executed
 
97
      correctly.  The same error existed in <filename>contrib/intarray</>'s
 
98
      <type>query_int</> type and <filename>contrib/ltree</>'s
 
99
      <type>ltxtquery</> type.
 
100
     </para>
 
101
    </listitem>
 
102
 
 
103
    <listitem>
 
104
     <para>
 
105
      Fix buffer overrun in <filename>contrib/intarray</>'s input function
 
106
      for the <type>query_int</> type (Apple)
 
107
     </para>
 
108
 
 
109
     <para>
 
110
      This bug is a security risk since the function's return address could
 
111
      be overwritten.  Thanks to Apple Inc's security team for reporting this
 
112
      issue and supplying the fix.  (CVE-2010-4015)
 
113
     </para>
 
114
    </listitem>
 
115
 
 
116
    <listitem>
 
117
     <para>
 
118
      Fix bug in <filename>contrib/seg</>'s GiST picksplit algorithm
 
119
      (Alexander Korotkov)
 
120
     </para>
 
121
 
 
122
     <para>
 
123
      This could result in considerable inefficiency, though not actually
 
124
      incorrect answers, in a GiST index on a <type>seg</> column.
 
125
      If you have such an index, consider <command>REINDEX</>ing it after
 
126
      installing this update.  (This is identical to the bug that was fixed in
 
127
      <filename>contrib/cube</> in the previous update.)
 
128
     </para>
 
129
    </listitem>
 
130
 
 
131
   </itemizedlist>
 
132
 
 
133
  </sect2>
 
134
 </sect1>
 
135
 
 
136
 <sect1 id="release-8-4-6">
 
137
  <title>Release 8.4.6</title>
 
138
 
 
139
  <note>
 
140
  <title>Release date</title>
 
141
  <simpara>2010-12-16</simpara>
 
142
  </note>
 
143
 
 
144
  <para>
 
145
   This release contains a variety of fixes from 8.4.5.
 
146
   For information about new features in the 8.4 major release, see
 
147
   <xref linkend="release-8-4">.
 
148
  </para>
 
149
 
 
150
  <sect2>
 
151
   <title>Migration to Version 8.4.6</title>
 
152
 
 
153
   <para>
 
154
    A dump/restore is not required for those running 8.4.X.
 
155
    However, if you are upgrading from a version earlier than 8.4.2,
 
156
    see the release notes for 8.4.2.
 
157
   </para>
 
158
 
 
159
  </sect2>
 
160
 
 
161
  <sect2>
 
162
   <title>Changes</title>
 
163
 
 
164
   <itemizedlist>
 
165
 
 
166
    <listitem>
 
167
     <para>
 
168
      Force the default
 
169
      <link linkend="guc-wal-sync-method"><varname>wal_sync_method</></link>
 
170
      to be <literal>fdatasync</> on Linux (Tom Lane, Marti Raudsepp)
 
171
     </para>
 
172
 
 
173
     <para>
 
174
      The default on Linux has actually been <literal>fdatasync</> for many
 
175
      years, but recent kernel changes caused <productname>PostgreSQL</> to
 
176
      choose <literal>open_datasync</> instead.  This choice did not result
 
177
      in any performance improvement, and caused outright failures on
 
178
      certain filesystems, notably <literal>ext4</> with the
 
179
      <literal>data=journal</> mount option.
 
180
     </para>
 
181
    </listitem>
 
182
 
 
183
    <listitem>
 
184
     <para>
 
185
      Fix assorted bugs in WAL replay logic for GIN indexes (Tom Lane)
 
186
     </para>
 
187
 
 
188
     <para>
 
189
      This could result in <quote>bad buffer id: 0</> failures or
 
190
      corruption of index contents during replication.
 
191
     </para>
 
192
    </listitem>
 
193
 
 
194
    <listitem>
 
195
     <para>
 
196
      Fix recovery from base backup when the starting checkpoint WAL record
 
197
      is not in the same WAL segment as its redo point (Jeff Davis)
 
198
     </para>
 
199
    </listitem>
 
200
 
 
201
    <listitem>
 
202
     <para>
 
203
      Fix persistent slowdown of autovacuum workers when multiple workers
 
204
      remain active for a long time (Tom Lane)
 
205
     </para>
 
206
 
 
207
     <para>
 
208
      The effective <varname>vacuum_cost_limit</> for an autovacuum worker
 
209
      could drop to nearly zero if it processed enough tables, causing it
 
210
      to run extremely slowly.
 
211
     </para>
 
212
    </listitem>
 
213
 
 
214
    <listitem>
 
215
     <para>
 
216
      Add support for detecting register-stack overrun on <literal>IA64</>
 
217
      (Tom Lane)
 
218
     </para>
 
219
 
 
220
     <para>
 
221
      The <literal>IA64</> architecture has two hardware stacks.  Full
 
222
      prevention of stack-overrun failures requires checking both.
 
223
     </para>
 
224
    </listitem>
 
225
 
 
226
    <listitem>
 
227
     <para>
 
228
      Add a check for stack overflow in <function>copyObject()</> (Tom Lane)
 
229
     </para>
 
230
 
 
231
     <para>
 
232
      Certain code paths could crash due to stack overflow given a
 
233
      sufficiently complex query.
 
234
     </para>
 
235
    </listitem>
 
236
 
 
237
    <listitem>
 
238
     <para>
 
239
      Fix detection of page splits in temporary GiST indexes (Heikki
 
240
      Linnakangas)
 
241
     </para>
 
242
 
 
243
     <para>
 
244
      It is possible to have a <quote>concurrent</> page split in a
 
245
      temporary index, if for example there is an open cursor scanning the
 
246
      index when an insertion is done.  GiST failed to detect this case and
 
247
      hence could deliver wrong results when execution of the cursor
 
248
      continued.
 
249
     </para>
 
250
    </listitem>
 
251
 
 
252
    <listitem>
 
253
     <para>
 
254
      Fix error checking during early connection processing (Tom Lane)
 
255
     </para>
 
256
 
 
257
     <para>
 
258
      The check for too many child processes was skipped in some cases,
 
259
      possibly leading to postmaster crash when attempting to add the new
 
260
      child process to fixed-size arrays.
 
261
     </para>
 
262
    </listitem>
 
263
 
 
264
    <listitem>
 
265
     <para>
 
266
      Improve efficiency of window functions (Tom Lane)
 
267
     </para>
 
268
 
 
269
     <para>
 
270
      Certain cases where a large number of tuples needed to be read in
 
271
      advance, but <varname>work_mem</> was large enough to allow them all
 
272
      to be held in memory, were unexpectedly slow.
 
273
      <function>percent_rank()</>, <function>cume_dist()</> and
 
274
      <function>ntile()</> in particular were subject to this problem.
 
275
     </para>
 
276
    </listitem>
 
277
 
 
278
    <listitem>
 
279
     <para>
 
280
      Avoid memory leakage while <command>ANALYZE</>'ing complex index
 
281
      expressions (Tom Lane)
 
282
     </para>
 
283
    </listitem>
 
284
 
 
285
    <listitem>
 
286
     <para>
 
287
      Ensure an index that uses a whole-row Var still depends on its table
 
288
      (Tom Lane)
 
289
     </para>
 
290
 
 
291
     <para>
 
292
      An index declared like <literal>create index i on t (foo(t.*))</>
 
293
      would not automatically get dropped when its table was dropped.
 
294
     </para>
 
295
    </listitem>
 
296
 
 
297
    <listitem>
 
298
     <para>
 
299
      Do not <quote>inline</> a SQL function with multiple <literal>OUT</>
 
300
      parameters (Tom Lane)
 
301
     </para>
 
302
 
 
303
     <para>
 
304
      This avoids a possible crash due to loss of information about the
 
305
      expected result rowtype.
 
306
     </para>
 
307
    </listitem>
 
308
 
 
309
    <listitem>
 
310
     <para>
 
311
      Behave correctly if <literal>ORDER BY</>, <literal>LIMIT</>,
 
312
      <literal>FOR UPDATE</>, or <literal>WITH</> is attached to the
 
313
      <literal>VALUES</> part of <literal>INSERT ... VALUES</> (Tom Lane)
 
314
     </para>
 
315
    </listitem>
 
316
 
 
317
    <listitem>
 
318
     <para>
 
319
      Fix constant-folding of <literal>COALESCE()</> expressions (Tom Lane)
 
320
     </para>
 
321
 
 
322
     <para>
 
323
      The planner would sometimes attempt to evaluate sub-expressions that
 
324
      in fact could never be reached, possibly leading to unexpected errors.
 
325
     </para>
 
326
    </listitem>
 
327
 
 
328
    <listitem>
 
329
     <para>
 
330
      Fix postmaster crash when connection acceptance
 
331
      (<function>accept()</> or one of the calls made immediately after it)
 
332
      fails, and the postmaster was compiled with GSSAPI support (Alexander
 
333
      Chernikov)
 
334
     </para>
 
335
    </listitem>
 
336
 
 
337
    <listitem>
 
338
     <para>
 
339
      Fix missed unlink of temporary files when <varname>log_temp_files</>
 
340
      is active (Tom Lane)
 
341
     </para>
 
342
 
 
343
     <para>
 
344
      If an error occurred while attempting to emit the log message, the
 
345
      unlink was not done, resulting in accumulation of temp files.
 
346
     </para>
 
347
    </listitem>
 
348
 
 
349
    <listitem>
 
350
     <para>
 
351
      Add print functionality for <structname>InhRelation</> nodes (Tom Lane)
 
352
     </para>
 
353
 
 
354
     <para>
 
355
      This avoids a failure when <varname>debug_print_parse</> is enabled
 
356
      and certain types of query are executed.
 
357
     </para>
 
358
    </listitem>
 
359
 
 
360
    <listitem>
 
361
     <para>
 
362
      Fix incorrect calculation of distance from a point to a horizontal
 
363
      line segment (Tom Lane)
 
364
     </para>
 
365
 
 
366
     <para>
 
367
      This bug affected several different geometric distance-measurement
 
368
      operators.
 
369
     </para>
 
370
    </listitem>
 
371
 
 
372
    <listitem>
 
373
     <para>
 
374
      Fix incorrect calculation of transaction status in
 
375
      <application>ecpg</> (Itagaki Takahiro)
 
376
     </para>
 
377
    </listitem>
 
378
 
 
379
    <listitem>
 
380
     <para>
 
381
      Fix <application>PL/pgSQL</>'s handling of <quote>simple</>
 
382
      expressions to not fail in recursion or error-recovery cases (Tom Lane)
 
383
     </para>
 
384
    </listitem>
 
385
 
 
386
    <listitem>
 
387
     <para>
 
388
      Fix <application>PL/Python</>'s handling of set-returning functions
 
389
      (Jan Urbanski)
 
390
     </para>
 
391
 
 
392
     <para>
 
393
      Attempts to call SPI functions within the iterator generating a set
 
394
      result would fail.
 
395
     </para>
 
396
    </listitem>
 
397
 
 
398
    <listitem>
 
399
     <para>
 
400
      Fix bug in <filename>contrib/cube</>'s GiST picksplit algorithm
 
401
      (Alexander Korotkov)
 
402
     </para>
 
403
 
 
404
     <para>
 
405
      This could result in considerable inefficiency, though not actually
 
406
      incorrect answers, in a GiST index on a <type>cube</> column.
 
407
      If you have such an index, consider <command>REINDEX</>ing it after
 
408
      installing this update.
 
409
     </para>
 
410
    </listitem>
 
411
 
 
412
    <listitem>
 
413
     <para>
 
414
      Don't emit <quote>identifier will be truncated</> notices in
 
415
      <filename>contrib/dblink</> except when creating new connections
 
416
      (Itagaki Takahiro)
 
417
     </para>
 
418
    </listitem>
 
419
 
 
420
    <listitem>
 
421
     <para>
 
422
      Fix potential coredump on missing public key in
 
423
      <filename>contrib/pgcrypto</> (Marti Raudsepp)
 
424
     </para>
 
425
    </listitem>
 
426
 
 
427
    <listitem>
 
428
     <para>
 
429
      Fix memory leak in <filename>contrib/xml2</>'s XPath query functions
 
430
      (Tom Lane)
 
431
     </para>
 
432
    </listitem>
 
433
 
 
434
    <listitem>
 
435
     <para>
 
436
      Update time zone data files to <application>tzdata</> release 2010o
 
437
      for DST law changes in Fiji and Samoa;
 
438
      also historical corrections for Hong Kong.
 
439
     </para>
 
440
    </listitem>
 
441
 
 
442
   </itemizedlist>
 
443
 
 
444
  </sect2>
 
445
 </sect1>
 
446
 
4
447
 <sect1 id="release-8-4-5">
5
448
  <title>Release 8.4.5</title>
6
449