~ubuntu-branches/ubuntu/lucid/postgresql-8.4/lucid-proposed

« 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: 2009-09-06 14:11:13 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20090906141113-qf5f3hkw7n036jfy
Tags: 8.4.1-1
* Urgency medium due to security fix.
* New upstream security/bug fix release:
  - Disallow "RESET ROLE" and "RESET SESSION AUTHORIZATION" inside
    security-definer functions. This covers a case that was missed in the
    previous patch that disallowed "SET ROLE" and "SET SESSION
    AUTHORIZATION" inside security-definer functions. [CVE-2007-6600]
  - Fix WAL page header initialization at the end of archive recovery.
    This could lead to failure to process the WAL in a subsequent archive
    recovery.
  - Fix "cannot make new WAL entries during recovery" error.
  - Fix problem that could make expired rows visible after a crash.
    This bug involved a page status bit potentially not being set
    correctly after a server crash.
  - Make "LOAD" of an already-loaded loadable module into a no-op.
    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.
    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. 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. 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 locale handling with plperl. 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.
  - Ensure that a "fast shutdown" request will forcibly terminate open
    sessions, even if a "smart shutdown" was already in progress.
  - Avoid memory leak for array_agg() in GROUP BY queries.
  - Treat to_char(..., 'TH') as an uppercase ordinal suffix with
    'HH'/'HH12'.  It was previously handled as 'th'.
  - Include the fractional part in the result of EXTRACT(second) and
    EXTRACT(milliseconds) for time and time with time zone inputs.
    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.
  - Improve performance when processing toasted values in index scans.
    This is particularly useful for PostGIS.
  - Fix a typo that disabled commit_delay.
  - Output early-startup messages to "postmaster.log" if the server is
    started in silent mode. Previously such error messages were discarded,
    leading to difficulty in debugging.
  - Remove translated FAQs. They are now on the 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.
  - Fix several errors in pg_dump's --binary-upgrade mode. pg_dump
    --binary-upgrade is used by pg_migrator.
  - Fix "contrib/xml2"'s xslt_process() to properly handle the maximum
    number of parameters (twenty).
  - Improve robustness of libpq's code to recover from errors during
    "COPY FROM STDIN".
  - Avoid including conflicting readline and editline header files when
    both libraries are installed.
  - Work around gcc bug that causes "floating-point exception" instead
    of "division by zero" on some platforms.
* debian/control: Bump Standards-Version to 3.8.3 (no changes necessary).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!-- $PostgreSQL: pgsql/doc/src/sgml/release-8.4.sgml,v 1.12 2009/06/26 22:23:17 tgl Exp $ -->
 
1
<!-- $PostgreSQL: pgsql/doc/src/sgml/release-8.4.sgml,v 1.12.2.3 2009/09/03 22:13:58 tgl Exp $ -->
2
2
<!-- See header comment in release.sgml about typical markup -->
3
3
 
 
4
 <sect1 id="release-8-4-1">
 
5
  <title>Release 8.4.1</title>
 
6
 
 
7
  <note>
 
8
  <title>Release date</title>
 
9
  <simpara>2009-09-09</simpara>
 
10
  </note>
 
11
 
 
12
  <para>
 
13
   This release contains a variety of fixes from 8.4.
 
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.1</title>
 
20
 
 
21
   <para>
 
22
    A dump/restore is not required for those running 8.4.X.
 
23
   </para>
 
24
 
 
25
  </sect2>
 
26
 
 
27
  <sect2>
 
28
   <title>Changes</title>
 
29
 
 
30
   <itemizedlist>
 
31
 
 
32
    <listitem>
 
33
     <para>
 
34
      Fix WAL page header initialization at the end of archive recovery
 
35
      (Heikki)
 
36
     </para>
 
37
 
 
38
     <para>
 
39
      This could lead to failure to process the WAL in a subsequent
 
40
      archive recovery.
 
41
     </para>
 
42
    </listitem>
 
43
 
 
44
    <listitem>
 
45
     <para>
 
46
      Fix <quote>cannot make new WAL entries during recovery</> error (Tom)
 
47
     </para>
 
48
    </listitem>
 
49
 
 
50
    <listitem>
 
51
     <para>
 
52
      Fix problem that could make expired rows visible after a crash (Tom)
 
53
     </para>
 
54
 
 
55
     <para>
 
56
      This bug involved a page status bit potentially not being set
 
57
      correctly after a server crash.
 
58
     </para>
 
59
    </listitem>
 
60
 
 
61
    <listitem>
 
62
     <para>
 
63
      Disallow <command>RESET ROLE</> and <command>RESET SESSION
 
64
      AUTHORIZATION</> inside security-definer functions (Tom, Heikki)
 
65
     </para>
 
66
 
 
67
     <para>
 
68
      This covers a case that was missed in the previous patch that
 
69
      disallowed <command>SET ROLE</> and <command>SET SESSION
 
70
      AUTHORIZATION</> inside security-definer functions.
 
71
      (See CVE-2007-6600)
 
72
     </para>
 
73
    </listitem>
 
74
 
 
75
    <listitem>
 
76
     <para>
 
77
      Make <command>LOAD</> of an already-loaded loadable module
 
78
      into a no-op (Tom)
 
79
     </para>
 
80
 
 
81
     <para>
 
82
      Formerly, <command>LOAD</> would attempt to unload and re-load the
 
83
      module, but this is unsafe and not all that useful.
 
84
     </para>
 
85
    </listitem>
 
86
 
 
87
    <listitem>
 
88
     <para>
 
89
      Make window function <literal>PARTITION BY</> and <literal>ORDER BY</>
 
90
      items always be interpreted as simple expressions (Tom)
 
91
     </para>
 
92
 
 
93
     <para>
 
94
      In 8.4.0 these lists were parsed following the rules used for
 
95
      top-level <literal>GROUP BY</> and <literal>ORDER BY</> lists.
 
96
      But this was not correct per the SQL standard, and it led to possible
 
97
      circularity.
 
98
     </para>
 
99
    </listitem>
 
100
 
 
101
    <listitem>
 
102
     <para>
 
103
      Fix several errors in planning of semi-joins (Tom)
 
104
     </para>
 
105
 
 
106
     <para>
 
107
      These led to wrong query results in some cases where <literal>IN</>
 
108
      or <literal>EXISTS</> was used together with another join.
 
109
     </para>
 
110
    </listitem>
 
111
 
 
112
    <listitem>
 
113
     <para>
 
114
      Fix handling of whole-row references to subqueries that are within
 
115
      an outer join (Tom)
 
116
     </para>
 
117
 
 
118
     <para>
 
119
      An example is
 
120
      <literal>SELECT COUNT(ss.*) FROM ... LEFT JOIN (SELECT ...) ss ON ...</>.
 
121
      Here, <literal>ss.*</> would be treated as <literal>ROW(NULL,NULL,...)</>
 
122
      for null-extended join rows, which is not the same as a simple NULL.
 
123
      Now it is treated as a simple NULL.
 
124
     </para>
 
125
    </listitem>
 
126
 
 
127
    <listitem>
 
128
     <para>
 
129
      Fix Windows shared-memory allocation code (Tsutomu Yamada, Magnus)
 
130
     </para>
 
131
 
 
132
     <para>
 
133
      This bug led to the often-reported <quote>could not reattach
 
134
      to shared memory</> error message.
 
135
     </para>
 
136
    </listitem>
 
137
 
 
138
    <listitem>
 
139
     <para>
 
140
      Fix locale handling with plperl (Heikki)
 
141
     </para>
 
142
 
 
143
     <para>
 
144
      This bug could cause the server's locale setting to change when a
 
145
      plperl function is called, leading to data corruption.
 
146
     </para>
 
147
    </listitem>
 
148
 
 
149
    <listitem>
 
150
     <para>
 
151
      Fix handling of reloptions to ensure setting one option doesn't
 
152
      force default values for others (Itagaki Takahiro)
 
153
     </para>
 
154
    </listitem>
 
155
 
 
156
    <listitem>
 
157
     <para>
 
158
      Ensure that a <quote>fast shutdown</> request will forcibly terminate
 
159
      open sessions, even if a <quote>smart shutdown</> was already in progress
 
160
      (Fujii Masao)
 
161
     </para>
 
162
    </listitem>
 
163
 
 
164
    <listitem>
 
165
     <para>
 
166
      Avoid memory leak for <function>array_agg()</> in <literal>GROUP BY</>
 
167
      queries (Tom)
 
168
     </para>
 
169
    </listitem>
 
170
 
 
171
    <listitem>
 
172
     <para>
 
173
      Treat <function>to_char(..., 'TH')</> as an uppercase ordinal
 
174
      suffix with <literal>'HH'</>/<literal>'HH12'</> (Heikki)
 
175
     </para>
 
176
 
 
177
     <para>
 
178
      It was previously handled as <literal>'th'</> (lowercase).
 
179
     </para>
 
180
    </listitem>
 
181
 
 
182
    <listitem>
 
183
     <para>
 
184
      Include the fractional part in the result of
 
185
      <function>EXTRACT(second)</> and
 
186
      <function>EXTRACT(milliseconds)</> for
 
187
      <type>time</> and <type>time with time zone</> inputs (Tom)
 
188
     </para>
 
189
 
 
190
     <para>
 
191
      This has always worked for floating-point datetime configurations,
 
192
      but was broken in the integer datetime code.
 
193
     </para>
 
194
    </listitem>
 
195
 
 
196
    <listitem>
 
197
     <para>
 
198
      Fix overflow for <literal>INTERVAL '<replaceable>x</> ms'</literal>
 
199
      when <replaceable>x</> is more than 2 million and integer
 
200
      datetimes are in use (Alex Hunsaker)
 
201
     </para>
 
202
    </listitem>
 
203
 
 
204
    <listitem>
 
205
     <para>
 
206
      Improve performance when processing toasted values in index scans (Tom)
 
207
     </para>
 
208
 
 
209
     <para>
 
210
      This is particularly useful for <ulink
 
211
      url="http://postgis.refractions.net/">PostGIS</ulink>.
 
212
     </para>
 
213
    </listitem>
 
214
 
 
215
    <listitem>
 
216
     <para>
 
217
      Fix a typo that disabled <varname>commit_delay</> (Jeff Janes)
 
218
     </para>
 
219
    </listitem>
 
220
 
 
221
    <listitem>
 
222
     <para>
 
223
      Output early-startup messages to <filename>postmaster.log</> if the
 
224
      server is started in silent mode (Tom)
 
225
     </para>
 
226
 
 
227
     <para>
 
228
      Previously such error messages were discarded, leading to
 
229
      difficulty in debugging.
 
230
     </para>
 
231
    </listitem>
 
232
 
 
233
    <listitem>
 
234
     <para>
 
235
      Remove translated FAQs (Peter)
 
236
     </para>
 
237
 
 
238
     <para>
 
239
      They are now on the <ulink
 
240
      url="http://wiki.postgresql.org/wiki/FAQ">wiki</ulink>.  The
 
241
      main FAQ was moved to the wiki some time ago.
 
242
     </para>
 
243
    </listitem>
 
244
 
 
245
    <listitem>
 
246
     <para>
 
247
      Fix <application>pg_ctl</> to not go into an infinite loop if
 
248
      <filename>postgresql.conf</> is empty (Jeff Davis)
 
249
     </para>
 
250
    </listitem>
 
251
 
 
252
    <listitem>
 
253
     <para>
 
254
      Fix several errors in <application>pg_dump</>'s
 
255
      <literal>--binary-upgrade</> mode (Bruce, Tom)
 
256
     </para>
 
257
 
 
258
     <para>
 
259
      <literal>pg_dump --binary-upgrade</> is used by pg_migrator.
 
260
     </para>
 
261
    </listitem>
 
262
 
 
263
    <listitem>
 
264
     <para>
 
265
      Fix <filename>contrib/xml2</>'s <function>xslt_process()</> to
 
266
      properly handle the maximum number of parameters (twenty) (Tom)
 
267
     </para>
 
268
    </listitem>
 
269
 
 
270
    <listitem>
 
271
     <para>
 
272
      Improve robustness of <application>libpq</>'s code to recover
 
273
      from errors during <command>COPY FROM STDIN</> (Tom)
 
274
     </para>
 
275
    </listitem>
 
276
 
 
277
    <listitem>
 
278
     <para>
 
279
      Avoid including conflicting readline and editline header files
 
280
      when both libraries are installed (Zdenek Kotala)
 
281
     </para>
 
282
    </listitem>
 
283
 
 
284
    <listitem>
 
285
     <para>
 
286
      Work around gcc bug that causes <quote>floating-point exception</>
 
287
      instead of <quote>division by zero</> on some platforms (Tom)
 
288
     </para>
 
289
    </listitem>
 
290
 
 
291
    <listitem>
 
292
     <para>
 
293
      Update time zone data files to <application>tzdata</> release 2009l
 
294
      for DST law changes in Bangladesh, Egypt, Mauritius.
 
295
     </para>
 
296
    </listitem>
 
297
 
 
298
   </itemizedlist>
 
299
 
 
300
  </sect2>
 
301
 </sect1>
 
302
 
4
303
 <sect1 id="release-8-4">
5
304
  <title>Release 8.4</title>
6
305