~ubuntu-branches/ubuntu/hardy/postgresql-8.4/hardy-backports

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-01-03 08:57:10 UTC
  • mfrom: (5.3.10 sid)
  • Revision ID: james.westby@ubuntu.com-20110103085710-v9u121v7u7oq8qca
Tags: 8.4.6-1~hardy1
Automated backport upload; no source changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!-- $PostgreSQL: pgsql/doc/src/sgml/release-8.1.sgml,v 1.1.8.6 2010/05/13 21:27:07 tgl Exp $ -->
 
1
<!-- doc/src/sgml/release-8.1.sgml -->
2
2
<!-- See header comment in release.sgml about typical markup -->
3
3
 
 
4
 <sect1 id="release-8-1-23">
 
5
  <title>Release 8.1.23</title>
 
6
 
 
7
  <note>
 
8
  <title>Release date</title>
 
9
  <simpara>2010-12-16</simpara>
 
10
  </note>
 
11
 
 
12
  <para>
 
13
   This release contains a variety of fixes from 8.1.22.
 
14
   For information about new features in the 8.1 major release, see
 
15
   <xref linkend="release-8-1">.
 
16
  </para>
 
17
 
 
18
  <para>
 
19
   This is expected to be the last <productname>PostgreSQL</> release
 
20
   in the 8.1.X series.  Users are encouraged to update to a newer
 
21
   release branch soon.
 
22
  </para>
 
23
 
 
24
  <sect2>
 
25
   <title>Migration to Version 8.1.23</title>
 
26
 
 
27
   <para>
 
28
    A dump/restore is not required for those running 8.1.X.
 
29
    However, if you are upgrading from a version earlier than 8.1.18,
 
30
    see the release notes for 8.1.18.
 
31
   </para>
 
32
 
 
33
  </sect2>
 
34
 
 
35
  <sect2>
 
36
   <title>Changes</title>
 
37
 
 
38
   <itemizedlist>
 
39
 
 
40
    <listitem>
 
41
     <para>
 
42
      Force the default
 
43
      <link linkend="guc-wal-sync-method"><varname>wal_sync_method</></link>
 
44
      to be <literal>fdatasync</> on Linux (Tom Lane, Marti Raudsepp)
 
45
     </para>
 
46
 
 
47
     <para>
 
48
      The default on Linux has actually been <literal>fdatasync</> for many
 
49
      years, but recent kernel changes caused <productname>PostgreSQL</> to
 
50
      choose <literal>open_datasync</> instead.  This choice did not result
 
51
      in any performance improvement, and caused outright failures on
 
52
      certain filesystems, notably <literal>ext4</> with the
 
53
      <literal>data=journal</> mount option.
 
54
     </para>
 
55
    </listitem>
 
56
 
 
57
    <listitem>
 
58
     <para>
 
59
      Fix recovery from base backup when the starting checkpoint WAL record
 
60
      is not in the same WAL segment as its redo point (Jeff Davis)
 
61
     </para>
 
62
    </listitem>
 
63
 
 
64
    <listitem>
 
65
     <para>
 
66
      Add support for detecting register-stack overrun on <literal>IA64</>
 
67
      (Tom Lane)
 
68
     </para>
 
69
 
 
70
     <para>
 
71
      The <literal>IA64</> architecture has two hardware stacks.  Full
 
72
      prevention of stack-overrun failures requires checking both.
 
73
     </para>
 
74
    </listitem>
 
75
 
 
76
    <listitem>
 
77
     <para>
 
78
      Add a check for stack overflow in <function>copyObject()</> (Tom Lane)
 
79
     </para>
 
80
 
 
81
     <para>
 
82
      Certain code paths could crash due to stack overflow given a
 
83
      sufficiently complex query.
 
84
     </para>
 
85
    </listitem>
 
86
 
 
87
    <listitem>
 
88
     <para>
 
89
      Fix detection of page splits in temporary GiST indexes (Heikki
 
90
      Linnakangas)
 
91
     </para>
 
92
 
 
93
     <para>
 
94
      It is possible to have a <quote>concurrent</> page split in a
 
95
      temporary index, if for example there is an open cursor scanning the
 
96
      index when an insertion is done.  GiST failed to detect this case and
 
97
      hence could deliver wrong results when execution of the cursor
 
98
      continued.
 
99
     </para>
 
100
    </listitem>
 
101
 
 
102
    <listitem>
 
103
     <para>
 
104
      Avoid memory leakage while <command>ANALYZE</>'ing complex index
 
105
      expressions (Tom Lane)
 
106
     </para>
 
107
    </listitem>
 
108
 
 
109
    <listitem>
 
110
     <para>
 
111
      Ensure an index that uses a whole-row Var still depends on its table
 
112
      (Tom Lane)
 
113
     </para>
 
114
 
 
115
     <para>
 
116
      An index declared like <literal>create index i on t (foo(t.*))</>
 
117
      would not automatically get dropped when its table was dropped.
 
118
     </para>
 
119
    </listitem>
 
120
 
 
121
    <listitem>
 
122
     <para>
 
123
      Do not <quote>inline</> a SQL function with multiple <literal>OUT</>
 
124
      parameters (Tom Lane)
 
125
     </para>
 
126
 
 
127
     <para>
 
128
      This avoids a possible crash due to loss of information about the
 
129
      expected result rowtype.
 
130
     </para>
 
131
    </listitem>
 
132
 
 
133
    <listitem>
 
134
     <para>
 
135
      Fix constant-folding of <literal>COALESCE()</> expressions (Tom Lane)
 
136
     </para>
 
137
 
 
138
     <para>
 
139
      The planner would sometimes attempt to evaluate sub-expressions that
 
140
      in fact could never be reached, possibly leading to unexpected errors.
 
141
     </para>
 
142
    </listitem>
 
143
 
 
144
    <listitem>
 
145
     <para>
 
146
      Add print functionality for <structname>InhRelation</> nodes (Tom Lane)
 
147
     </para>
 
148
 
 
149
     <para>
 
150
      This avoids a failure when <varname>debug_print_parse</> is enabled
 
151
      and certain types of query are executed.
 
152
     </para>
 
153
    </listitem>
 
154
 
 
155
    <listitem>
 
156
     <para>
 
157
      Fix incorrect calculation of distance from a point to a horizontal
 
158
      line segment (Tom Lane)
 
159
     </para>
 
160
 
 
161
     <para>
 
162
      This bug affected several different geometric distance-measurement
 
163
      operators.
 
164
     </para>
 
165
    </listitem>
 
166
 
 
167
    <listitem>
 
168
     <para>
 
169
      Fix <application>PL/pgSQL</>'s handling of <quote>simple</>
 
170
      expressions to not fail in recursion or error-recovery cases (Tom Lane)
 
171
     </para>
 
172
    </listitem>
 
173
 
 
174
    <listitem>
 
175
     <para>
 
176
      Fix bug in <filename>contrib/cube</>'s GiST picksplit algorithm
 
177
      (Alexander Korotkov)
 
178
     </para>
 
179
 
 
180
     <para>
 
181
      This could result in considerable inefficiency, though not actually
 
182
      incorrect answers, in a GiST index on a <type>cube</> column.
 
183
      If you have such an index, consider <command>REINDEX</>ing it after
 
184
      installing this update.
 
185
     </para>
 
186
    </listitem>
 
187
 
 
188
    <listitem>
 
189
     <para>
 
190
      Don't emit <quote>identifier will be truncated</> notices in
 
191
      <filename>contrib/dblink</> except when creating new connections
 
192
      (Itagaki Takahiro)
 
193
     </para>
 
194
    </listitem>
 
195
 
 
196
    <listitem>
 
197
     <para>
 
198
      Fix potential coredump on missing public key in
 
199
      <filename>contrib/pgcrypto</> (Marti Raudsepp)
 
200
     </para>
 
201
    </listitem>
 
202
 
 
203
    <listitem>
 
204
     <para>
 
205
      Fix memory leak in <filename>contrib/xml2</>'s XPath query functions
 
206
      (Tom Lane)
 
207
     </para>
 
208
    </listitem>
 
209
 
 
210
    <listitem>
 
211
     <para>
 
212
      Update time zone data files to <application>tzdata</> release 2010o
 
213
      for DST law changes in Fiji and Samoa;
 
214
      also historical corrections for Hong Kong.
 
215
     </para>
 
216
    </listitem>
 
217
 
 
218
   </itemizedlist>
 
219
 
 
220
  </sect2>
 
221
 </sect1>
 
222
 
 
223
 <sect1 id="release-8-1-22">
 
224
  <title>Release 8.1.22</title>
 
225
 
 
226
  <note>
 
227
  <title>Release date</title>
 
228
  <simpara>2010-10-04</simpara>
 
229
  </note>
 
230
 
 
231
  <para>
 
232
   This release contains a variety of fixes from 8.1.21.
 
233
   For information about new features in the 8.1 major release, see
 
234
   <xref linkend="release-8-1">.
 
235
  </para>
 
236
 
 
237
  <para>
 
238
   The <productname>PostgreSQL</> community will stop releasing updates
 
239
   for the 8.1.X release series in November 2010.
 
240
   Users are encouraged to update to a newer release branch soon.
 
241
  </para>
 
242
 
 
243
  <sect2>
 
244
   <title>Migration to Version 8.1.22</title>
 
245
 
 
246
   <para>
 
247
    A dump/restore is not required for those running 8.1.X.
 
248
    However, if you are upgrading from a version earlier than 8.1.18,
 
249
    see the release notes for 8.1.18.
 
250
   </para>
 
251
 
 
252
  </sect2>
 
253
 
 
254
  <sect2>
 
255
   <title>Changes</title>
 
256
 
 
257
   <itemizedlist>
 
258
 
 
259
    <listitem>
 
260
     <para>
 
261
      Use a separate interpreter for each calling SQL userid in PL/Perl and
 
262
      PL/Tcl (Tom Lane)
 
263
     </para>
 
264
 
 
265
     <para>
 
266
      This change prevents security problems that can be caused by subverting
 
267
      Perl or Tcl code that will be executed later in the same session under
 
268
      another SQL user identity (for example, within a <literal>SECURITY
 
269
      DEFINER</> function).  Most scripting languages offer numerous ways that
 
270
      that might be done, such as redefining standard functions or operators
 
271
      called by the target function.  Without this change, any SQL user with
 
272
      Perl or Tcl language usage rights can do essentially anything with the
 
273
      SQL privileges of the target function's owner.
 
274
     </para>
 
275
 
 
276
     <para>
 
277
      The cost of this change is that intentional communication among Perl
 
278
      and Tcl functions becomes more difficult.  To provide an escape hatch,
 
279
      PL/PerlU and PL/TclU functions continue to use only one interpreter
 
280
      per session.  This is not considered a security issue since all such
 
281
      functions execute at the trust level of a database superuser already.
 
282
     </para>
 
283
 
 
284
     <para>
 
285
      It is likely that third-party procedural languages that claim to offer
 
286
      trusted execution have similar security issues.  We advise contacting
 
287
      the authors of any PL you are depending on for security-critical
 
288
      purposes.
 
289
     </para>
 
290
 
 
291
     <para>
 
292
      Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
 
293
     </para>
 
294
    </listitem>
 
295
 
 
296
    <listitem>
 
297
     <para>
 
298
      Prevent possible crashes in <function>pg_get_expr()</> by disallowing
 
299
      it from being called with an argument that is not one of the system
 
300
      catalog columns it's intended to be used with
 
301
      (Heikki Linnakangas, Tom Lane)
 
302
     </para>
 
303
    </listitem>
 
304
 
 
305
    <listitem>
 
306
     <para>
 
307
      Fix <quote>cannot handle unplanned sub-select</quote> error (Tom Lane)
 
308
     </para>
 
309
 
 
310
     <para>
 
311
      This occurred when a sub-select contains a join alias reference that
 
312
      expands into an expression containing another sub-select.
 
313
     </para>
 
314
    </listitem>
 
315
 
 
316
    <listitem>
 
317
     <para>
 
318
      Prevent show_session_authorization() from crashing within autovacuum
 
319
      processes (Tom Lane)
 
320
     </para>
 
321
    </listitem>
 
322
 
 
323
    <listitem>
 
324
     <para>
 
325
      Defend against functions returning setof record where not all the
 
326
      returned rows are actually of the same rowtype (Tom Lane)
 
327
     </para>
 
328
    </listitem>
 
329
 
 
330
    <listitem>
 
331
     <para>
 
332
      Fix possible failure when hashing a pass-by-reference function result
 
333
      (Tao Ma, Tom Lane)
 
334
     </para>
 
335
    </listitem>
 
336
 
 
337
    <listitem>
 
338
     <para>
 
339
      Take care to fsync the contents of lockfiles (both
 
340
      <filename>postmaster.pid</> and the socket lockfile) while writing them
 
341
      (Tom Lane)
 
342
     </para>
 
343
 
 
344
     <para>
 
345
      This omission could result in corrupted lockfile contents if the
 
346
      machine crashes shortly after postmaster start.  That could in turn
 
347
      prevent subsequent attempts to start the postmaster from succeeding,
 
348
      until the lockfile is manually removed.
 
349
     </para>
 
350
    </listitem>
 
351
 
 
352
    <listitem>
 
353
     <para>
 
354
      Avoid recursion while assigning XIDs to heavily-nested
 
355
      subtransactions (Andres Freund, Robert Haas)
 
356
     </para>
 
357
 
 
358
     <para>
 
359
      The original coding could result in a crash if there was limited
 
360
      stack space.
 
361
     </para>
 
362
    </listitem>
 
363
 
 
364
    <listitem>
 
365
     <para>
 
366
      Fix <varname>log_line_prefix</>'s <literal>%i</> escape,
 
367
      which could produce junk early in backend startup (Tom Lane)
 
368
     </para>
 
369
    </listitem>
 
370
 
 
371
    <listitem>
 
372
     <para>
 
373
      Fix possible data corruption in <command>ALTER TABLE ... SET
 
374
      TABLESPACE</> when archiving is enabled (Jeff Davis)
 
375
     </para>
 
376
    </listitem>
 
377
 
 
378
    <listitem>
 
379
     <para>
 
380
      Allow <command>CREATE DATABASE</> and <command>ALTER DATABASE ... SET
 
381
      TABLESPACE</> to be interrupted by query-cancel (Guillaume Lelarge)
 
382
     </para>
 
383
    </listitem>
 
384
 
 
385
    <listitem>
 
386
     <para>
 
387
      In PL/Python, defend against null pointer results from
 
388
      <function>PyCObject_AsVoidPtr</> and <function>PyCObject_FromVoidPtr</>
 
389
      (Peter Eisentraut)
 
390
     </para>
 
391
    </listitem>
 
392
 
 
393
    <listitem>
 
394
     <para>
 
395
      Improve <filename>contrib/dblink</>'s handling of tables containing
 
396
      dropped columns (Tom Lane)
 
397
     </para>
 
398
    </listitem>
 
399
 
 
400
    <listitem>
 
401
     <para>
 
402
      Fix connection leak after <quote>duplicate connection name</quote>
 
403
      errors in <filename>contrib/dblink</> (Itagaki Takahiro)
 
404
     </para>
 
405
    </listitem>
 
406
 
 
407
    <listitem>
 
408
     <para>
 
409
      Fix <filename>contrib/dblink</> to handle connection names longer than
 
410
      62 bytes correctly (Itagaki Takahiro)
 
411
     </para>
 
412
    </listitem>
 
413
 
 
414
    <listitem>
 
415
     <para>
 
416
      Update build infrastructure and documentation to reflect the source code
 
417
      repository's move from CVS to Git (Magnus Hagander and others)
 
418
     </para>
 
419
    </listitem>
 
420
 
 
421
    <listitem>
 
422
     <para>
 
423
      Update time zone data files to <application>tzdata</> release 2010l
 
424
      for DST law changes in Egypt and Palestine; also historical corrections
 
425
      for Finland.
 
426
     </para>
 
427
 
 
428
     <para>
 
429
      This change also adds new names for two Micronesian timezones:
 
430
      Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred
 
431
      abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over
 
432
      Pacific/Ponape.
 
433
     </para>
 
434
    </listitem>
 
435
 
 
436
   </itemizedlist>
 
437
 
 
438
  </sect2>
 
439
 </sect1>
 
440
 
4
441
 <sect1 id="release-8-1-21">
5
442
  <title>Release 8.1.21</title>
6
443
 
1212
1649
 
1213
1650
    <listitem>
1214
1651
     <para>
1215
 
      Fix PL/PgSQL to not fail when a <literal>FOR</> loop's target variable
 
1652
      Fix PL/pgSQL to not fail when a <literal>FOR</> loop's target variable
1216
1653
      is a record containing composite-type fields (Tom)
1217
1654
     </para>
1218
1655
    </listitem>
4040
4477
       Previously, only a predefined list of time zone names were
4041
4478
       supported by <command>AT TIME ZONE</>. Now any supported time
4042
4479
       zone name can be used, e.g.:
4043
 
       <programlisting>
4044
 
        SELECT CURRENT_TIMESTAMP AT TIME ZONE 'Europe/London';
4045
 
       </programlisting>
 
4480
<programlisting>
 
4481
SELECT CURRENT_TIMESTAMP AT TIME ZONE 'Europe/London';
 
4482
</programlisting>
4046
4483
       In the above query, the time zone used is adjusted based on the
4047
4484
       daylight saving time rules that were in effect on the supplied
4048
4485
       date.
4116
4553
       the next day even if a daylight saving time adjustment occurs
4117
4554
       between, whereas adding <literal>24 hours</> will give a different
4118
4555
       local time when this happens.  For example, under US DST rules:
4119
 
       <programlisting>
4120
 
        '2005-04-03 00:00:00-05' + '1 day' = '2005-04-04 00:00:00-04'
4121
 
        '2005-04-03 00:00:00-05' + '24 hours' = '2005-04-04 01:00:00-04'
4122
 
       </programlisting>
 
4556
<programlisting>
 
4557
'2005-04-03 00:00:00-05' + '1 day' = '2005-04-04 00:00:00-04'
 
4558
'2005-04-03 00:00:00-05' + '24 hours' = '2005-04-04 01:00:00-04'
 
4559
</programlisting>
4123
4560
      </para>
4124
4561
     </listitem>
4125
4562
 
4343
4780
 
4344
4781
     <listitem>
4345
4782
      <para>
4346
 
       Allow SQL and PL/PgSQL functions to use <command>OUT</> and
 
4783
       Allow SQL and PL/pgSQL functions to use <command>OUT</> and
4347
4784
       <command>INOUT</> parameters (Tom)
4348
4785
      </para>
4349
4786
      <para>
4378
4815
   </sect3>
4379
4816
 
4380
4817
   <sect3>
4381
 
    <title>PL/PgSQL Server-Side Language Changes</title>
 
4818
    <title>PL/pgSQL Server-Side Language Changes</title>
4382
4819
    <itemizedlist>
4383
4820
 
4384
4821
     <listitem>
4385
4822
      <para>
4386
 
       Overhaul the memory management of PL/PgSQL functions (Neil)
 
4823
       Overhaul the memory management of PL/pgSQL functions (Neil)
4387
4824
      </para>
4388
4825
      <para>
4389
4826
       The parsetree of each function is now stored in a separate
4426
4863
     <listitem>
4427
4864
      <para>
4428
4865
       Add support for an optional <command>INTO</> clause to
4429
 
       PL/PgSQL's <command>EXECUTE</> statement (Pavel Stehule, Neil)
 
4866
       PL/pgSQL's <command>EXECUTE</> statement (Pavel Stehule, Neil)
4430
4867
      </para>
4431
4868
     </listitem>
4432
4869