~ubuntu-branches/ubuntu/saucy/postgresql-8.4/saucy

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2011-12-02 14:46:33 UTC
  • mfrom: (13.1.8 sid)
  • Revision ID: package-import@ubuntu.com-20111202144633-azdcoyqh7sduwr15
Tags: 8.4.10-1
* New upstream bug fix release:
  - Fix bugs in information_schema.referential_constraints view.
    This view was being insufficiently careful about matching the
    foreign-key constraint to the depended-on primary or unique key
    constraint. That could result in failure to show a foreign key
    constraint at all, or showing it multiple times, or claiming that
    it depends on a different constraint than the one it really does.
    Since the view definition is installed by initdb, merely upgrading
    will not fix the problem. If you need to fix this in an existing
    installation, you can (as a superuser) drop the information_schema
    schema then re-create it by sourcing
    "SHAREDIR/information_schema.sql". (Run pg_config --sharedir if
    you're uncertain where "SHAREDIR" is.) This must be repeated in
    each database to be fixed.
  - Fix incorrect replay of WAL records for GIN index updates.
    This could result in transiently failing to find index entries
    after a crash, or on a hot-standby server. The problem would be
    repaired by the next "VACUUM" of the index, however.
  - Fix TOAST-related data corruption during CREATE TABLE dest AS
    SELECT - FROM src or INSERT INTO dest SELECT * FROM src.
    If a table has been modified by "ALTER TABLE ADD COLUMN", attempts
    to copy its data verbatim to another table could produce corrupt
    results in certain corner cases. The problem can only manifest in
    this precise form in 8.4 and later, but we patched earlier versions
    as well in case there are other code paths that could trigger the
    same bug.
  - Fix race condition during toast table access from stale syscache
    entries.
  - Track dependencies of functions on items used in parameter default
    expressions. Previously, a referenced object could be dropped without
    having dropped or modified the function, leading to misbehavior when the
    function was used. Note that merely installing this update will not fix
    the missing dependency entries; to do that, you'd need to "CREATE OR
    REPLACE" each such function afterwards. If you have functions whose
    defaults depend on non-built-in objects, doing so is recommended.
  - Allow inlining of set-returning SQL functions with multiple OUT
    parameters.
  - Make DatumGetInetP() unpack inet datums that have a 1-byte header,
    and add a new macro, DatumGetInetPP(), that does not.
  - Improve locale support in money type's input and output.
    Aside from not supporting all standard lc_monetary formatting
    options, the input and output functions were inconsistent, meaning
    there were locales in which dumped money values could not be
    re-read.
  - Don't let transform_null_equals affect CASE foo WHEN NULL ...
    constructs. transform_null_equals is only supposed to affect foo = NULL
    expressions written directly by the user, not equality checks
    generated internally by this form of CASE.
  - Change foreign-key trigger creation order to better support
    self-referential foreign keys. For a cascading foreign key that
    references its own table, a row update will fire both the ON UPDATE
    trigger and the CHECK trigger as one event. The ON UPDATE trigger must
    execute first, else the CHECK will check a non-final state of the row
    and possibly throw an inappropriate error. However, the firing order of
    these triggers is determined by their names, which generally sort in
    creation order since the triggers have auto-generated names following
    the convention "RI_ConstraintTrigger_NNNN". A proper fix would require
    modifying that convention, which we will do in 9.2, but it seems risky
    to change it in existing releases. So this patch just changes the
    creation order of the triggers. Users encountering this type of error
    should drop and re-create the foreign key constraint to get its triggers
    into the right order.
  - Avoid floating-point underflow while tracking buffer allocation
    rate.
  - Preserve blank lines within commands in psql's command history.
    The former behavior could cause problems if an empty line was
    removed from within a string literal, for example.
  - Fix pg_dump to dump user-defined casts between auto-generated
    types, such as table rowtypes.
  - Use the preferred version of xsubpp to build PL/Perl, not
    necessarily the operating system's main copy.
  - Fix incorrect coding in "contrib/dict_int" and "contrib/dict_xsyn".
  - Honor query cancel interrupts promptly in pgstatindex().
  - Ensure VPATH builds properly install all server header files.
  - Shorten file names reported in verbose error messages.
    Regular builds have always reported just the name of the C file
    containing the error message call, but VPATH builds formerly
    reported an absolute path name.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<!-- doc/src/sgml/release-8.3.sgml -->
2
2
<!-- See header comment in release.sgml about typical markup -->
3
3
 
 
4
 <sect1 id="release-8-3-17">
 
5
  <title>Release 8.3.17</title>
 
6
 
 
7
  <note>
 
8
  <title>Release Date</title>
 
9
  <simpara>2011-12-05</simpara>
 
10
  </note>
 
11
 
 
12
  <para>
 
13
   This release contains a variety of fixes from 8.3.16.
 
14
   For information about new features in the 8.3 major release, see
 
15
   <xref linkend="release-8-3">.
 
16
  </para>
 
17
 
 
18
  <sect2>
 
19
   <title>Migration to Version 8.3.17</title>
 
20
 
 
21
   <para>
 
22
    A dump/restore is not required for those running 8.3.X.
 
23
   </para>
 
24
 
 
25
   <para>
 
26
    However, a longstanding error was discovered in the definition of the
 
27
    <literal>information_schema.referential_constraints</> view.  If you
 
28
    rely on correct results from that view, you should replace its
 
29
    definition as explained in the first changelog item below.
 
30
   </para>
 
31
 
 
32
   <para>
 
33
    Also, if you are upgrading from a version earlier than 8.3.8,
 
34
    see the release notes for 8.3.8.
 
35
   </para>
 
36
 
 
37
  </sect2>
 
38
 
 
39
  <sect2>
 
40
   <title>Changes</title>
 
41
 
 
42
   <itemizedlist>
 
43
 
 
44
    <listitem>
 
45
     <para>
 
46
      Fix bugs in <literal>information_schema.referential_constraints</> view
 
47
      (Tom Lane)
 
48
     </para>
 
49
 
 
50
     <para>
 
51
      This view was being insufficiently careful about matching the
 
52
      foreign-key constraint to the depended-on primary or unique key
 
53
      constraint.  That could result in failure to show a foreign key
 
54
      constraint at all, or showing it multiple times, or claiming that it
 
55
      depends on a different constraint than the one it really does.
 
56
     </para>
 
57
 
 
58
     <para>
 
59
      Since the view definition is installed by <application>initdb</>,
 
60
      merely upgrading will not fix the problem.  If you need to fix this
 
61
      in an existing installation, you can (as a superuser) drop the
 
62
      <literal>information_schema</> schema then re-create it by sourcing
 
63
      <filename><replaceable>SHAREDIR</>/information_schema.sql</filename>.
 
64
      (Run <literal>pg_config --sharedir</> if you're uncertain where
 
65
      <replaceable>SHAREDIR</> is.)  This must be repeated in each database
 
66
      to be fixed.
 
67
     </para>
 
68
    </listitem>
 
69
 
 
70
    <listitem>
 
71
     <para>
 
72
      Fix TOAST-related data corruption during <literal>CREATE TABLE dest AS
 
73
      SELECT * FROM src</> or <literal>INSERT INTO dest SELECT * FROM src</>
 
74
      (Tom Lane)
 
75
     </para>
 
76
 
 
77
     <para>
 
78
      If a table has been modified by <command>ALTER TABLE ADD COLUMN</>,
 
79
      attempts to copy its data verbatim to another table could produce
 
80
      corrupt results in certain corner cases.
 
81
      The problem can only manifest in this precise form in 8.4 and later,
 
82
      but we patched earlier versions as well in case there are other code
 
83
      paths that could trigger the same bug.
 
84
     </para>
 
85
    </listitem>
 
86
 
 
87
    <listitem>
 
88
     <para>
 
89
      Fix race condition during toast table access from stale syscache entries
 
90
      (Tom Lane)
 
91
     </para>
 
92
 
 
93
     <para>
 
94
      The typical symptom was transient errors like <quote>missing chunk
 
95
      number 0 for toast value NNNNN in pg_toast_2619</>, where the cited
 
96
      toast table would always belong to a system catalog.
 
97
     </para>
 
98
    </listitem>
 
99
 
 
100
    <listitem>
 
101
     <para>
 
102
      Make <function>DatumGetInetP()</> unpack inet datums that have a 1-byte
 
103
      header, and add a new macro, <function>DatumGetInetPP()</>, that does
 
104
      not (Heikki Linnakangas)
 
105
     </para>
 
106
 
 
107
     <para>
 
108
      This change affects no core code, but might prevent crashes in add-on
 
109
      code that expects <function>DatumGetInetP()</> to produce an unpacked
 
110
      datum as per usual convention.
 
111
     </para>
 
112
    </listitem>
 
113
 
 
114
    <listitem>
 
115
     <para>
 
116
      Improve locale support in <type>money</> type's input and output
 
117
      (Tom Lane)
 
118
     </para>
 
119
 
 
120
     <para>
 
121
      Aside from not supporting all standard
 
122
      <link linkend="guc-lc-monetary"><varname>lc_monetary</></link>
 
123
      formatting options, the input and output functions were inconsistent,
 
124
      meaning there were locales in which dumped <type>money</> values could
 
125
      not be re-read.
 
126
     </para>
 
127
    </listitem>
 
128
 
 
129
    <listitem>
 
130
     <para>
 
131
      Don't let <link
 
132
      linkend="guc-transform-null-equals"><varname>transform_null_equals</></link>
 
133
      affect <literal>CASE foo WHEN NULL ...</> constructs
 
134
      (Heikki Linnakangas)
 
135
     </para>
 
136
 
 
137
     <para>
 
138
      <varname>transform_null_equals</> is only supposed to affect
 
139
      <literal>foo = NULL</> expressions written directly by the user, not
 
140
      equality checks generated internally by this form of <literal>CASE</>.
 
141
     </para>
 
142
    </listitem>
 
143
 
 
144
    <listitem>
 
145
     <para>
 
146
      Change foreign-key trigger creation order to better support
 
147
      self-referential foreign keys (Tom Lane)
 
148
     </para>
 
149
 
 
150
     <para>
 
151
      For a cascading foreign key that references its own table, a row update
 
152
      will fire both the <literal>ON UPDATE</> trigger and the
 
153
      <literal>CHECK</> trigger as one event.  The <literal>ON UPDATE</>
 
154
      trigger must execute first, else the <literal>CHECK</> will check a
 
155
      non-final state of the row and possibly throw an inappropriate error.
 
156
      However, the firing order of these triggers is determined by their
 
157
      names, which generally sort in creation order since the triggers have
 
158
      auto-generated names following the convention
 
159
      <quote>RI_ConstraintTrigger_NNNN</>.  A proper fix would require
 
160
      modifying that convention, which we will do in 9.2, but it seems risky
 
161
      to change it in existing releases.  So this patch just changes the
 
162
      creation order of the triggers.  Users encountering this type of error
 
163
      should drop and re-create the foreign key constraint to get its
 
164
      triggers into the right order.
 
165
     </para>
 
166
    </listitem>
 
167
 
 
168
    <listitem>
 
169
     <para>
 
170
      Avoid floating-point underflow while tracking buffer allocation rate
 
171
      (Greg Matthews)
 
172
     </para>
 
173
 
 
174
     <para>
 
175
      While harmless in itself, on certain platforms this would result in
 
176
      annoying kernel log messages.
 
177
     </para>
 
178
    </listitem>
 
179
 
 
180
    <listitem>
 
181
     <para>
 
182
      Preserve blank lines within commands in <application>psql</>'s command
 
183
      history (Robert Haas)
 
184
     </para>
 
185
 
 
186
     <para>
 
187
      The former behavior could cause problems if an empty line was removed
 
188
      from within a string literal, for example.
 
189
     </para>
 
190
    </listitem>
 
191
 
 
192
    <listitem>
 
193
     <para>
 
194
      Fix <application>pg_dump</> to dump user-defined casts between
 
195
      auto-generated types, such as table rowtypes (Tom Lane)
 
196
     </para>
 
197
    </listitem>
 
198
 
 
199
    <listitem>
 
200
     <para>
 
201
      Use the preferred version of <application>xsubpp</> to build PL/Perl,
 
202
      not necessarily the operating system's main copy
 
203
      (David Wheeler and Alex Hunsaker)
 
204
     </para>
 
205
    </listitem>
 
206
 
 
207
    <listitem>
 
208
     <para>
 
209
      Fix incorrect coding in <filename>contrib/dict_int</> and
 
210
      <filename>contrib/dict_xsyn</> (Tom Lane)
 
211
     </para>
 
212
 
 
213
     <para>
 
214
      Some functions incorrectly assumed that memory returned by
 
215
      <function>palloc()</> is guaranteed zeroed.
 
216
     </para>
 
217
    </listitem>
 
218
 
 
219
    <listitem>
 
220
     <para>
 
221
      Honor query cancel interrupts promptly in <function>pgstatindex()</>
 
222
      (Robert Haas)
 
223
     </para>
 
224
    </listitem>
 
225
 
 
226
    <listitem>
 
227
     <para>
 
228
      Ensure VPATH builds properly install all server header files
 
229
      (Peter Eisentraut)
 
230
     </para>
 
231
    </listitem>
 
232
 
 
233
    <listitem>
 
234
     <para>
 
235
      Shorten file names reported in verbose error messages (Peter Eisentraut)
 
236
     </para>
 
237
 
 
238
     <para>
 
239
      Regular builds have always reported just the name of the C file
 
240
      containing the error message call, but VPATH builds formerly
 
241
      reported an absolute path name.
 
242
     </para>
 
243
    </listitem>
 
244
 
 
245
    <listitem>
 
246
     <para>
 
247
      Fix interpretation of Windows timezone names for Central America
 
248
      (Tom Lane)
 
249
     </para>
 
250
 
 
251
     <para>
 
252
      Map <quote>Central America Standard Time</> to <literal>CST6</>, not
 
253
      <literal>CST6CDT</>, because DST is generally not observed anywhere in
 
254
      Central America.
 
255
     </para>
 
256
    </listitem>
 
257
 
 
258
    <listitem>
 
259
     <para>
 
260
      Update time zone data files to <application>tzdata</> release 2011n
 
261
      for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
 
262
      also historical corrections for Alaska and British East Africa.
 
263
     </para>
 
264
    </listitem>
 
265
 
 
266
   </itemizedlist>
 
267
 
 
268
  </sect2>
 
269
 </sect1>
 
270
 
4
271
 <sect1 id="release-8-3-16">
5
272
  <title>Release 8.3.16</title>
6
273