~ubuntu-branches/ubuntu/quantal/postgresql-9.1/quantal-proposed

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2011-12-02 14:39:18 UTC
  • mfrom: (12.1.1 sid)
  • Revision ID: package-import@ubuntu.com-20111202143918-1ftj0oo87w0y8m8d
* 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.
  - Make "contrib/citext"'s upgrade script fix collations of citext
    columns and indexes.
    Existing citext columns and indexes aren't correctly marked as
    being of a collatable data type during pg_upgrade from a pre-9.1
    server. That leads to operations on them failing with errors such
    as "could not determine which collation to use for string
    comparison". This change allows them to be fixed by the same script
    that upgrades the citext module into a proper 9.1 extension during
    CREATE EXTENSION citext FROM unpackaged.
    If you have a previously-upgraded database that is suffering from
    this problem, and you already ran the "CREATE EXTENSION" command,
    you can manually run (as superuser) the "UPDATE" commands found at
    the end of "SHAREDIR/extension/citext--unpackaged--1.0.sql". (Run
    pg_config --sharedir if you're uncertain where "SHAREDIR" is.)
  - Fix possible crash during "UPDATE" or "DELETE" that joins to the
    output of a scalar-returning function.
  - Fix incorrect replay of WAL records for GIN index updates.
  - Fix TOAST-related data corruption during CREATE TABLE dest AS
    SELECT - FROM src or INSERT INTO dest SELECT * FROM src.
  - Fix possible failures during hot standby startup.
  - Start hot standby faster when initial snapshot is incomplete.
  - Fix race condition during toast table access from stale syscache
    entries. The typical symptom was transient errors like "missing chunk
    number 0 for toast value NNNNN in pg_toast_2619", where the cited toast
    table would always belong to a system catalog.
  - 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.
  - Fix incorrect management of placeholder variables in nestloop joins.
    This bug is known to lead to "variable not found in subplan target
    list" planner errors, and could possibly result in wrong query
    output when outer joins are involved.
  - Fix window functions that sort by expressions involving aggregates.
  - Fix "MergeAppend child's targetlist doesn't match MergeAppend"
    planner errors.
  - Fix index matching for operators with both collatable and
    noncollatable inputs. In 9.1.0, an indexable operator that has a
    non-collatable left-hand input type and a collatable right-hand input
    type would not be recognized as matching the left-hand column's index.
    An example is the hstore ? text operator.
  - Allow inlining of set-returning SQL functions with multiple OUT
    parameters.
  - Don't trust deferred-unique indexes for join removal.
  - 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.
  - Fix IF EXISTS to work correctly in "DROP OPERATOR FAMILY".
  - Disallow dropping of an extension from within its own script.
  - Don't mark auto-generated types as extension members.
  - Cope with invalid pre-existing search_path settings during "CREATE
    EXTENSION".
  - Avoid floating-point underflow while tracking buffer allocation
    rate.
  - Prevent autovacuum transactions from running in serializable mode.
    Autovacuum formerly used the cluster-wide default transaction
    isolation level, but there is no need for it to use anything higher
    than READ COMMITTED, and using SERIALIZABLE could result in
    unnecessary delays for other processes.
  - Ensure walsender processes respond promptly to SIGTERM.
  - Exclude "postmaster.opts" from base backups.
  - Fix incorrect field alignment in ecpg's SQLDA area.
  - 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.
  - Avoid platform-specific infinite loop in pg_dump.
  - Fix compression of plain-text output format in pg_dump.
    pg_dump has historically understood -Z with no -F switch to mean
    that it should emit a gzip-compressed version of its plain text
    output. Restore that behavior.
  - Fix pg_dump to dump user-defined casts between auto-generated
    types, such as table rowtypes.
  - Fix missed quoting of foreign server names in pg_dump.
  - Assorted fixes for pg_upgrade. Handle exclusion constraints correctly,
    avoid failures on Windows, don't complain about mismatched toast table
    names in 8.4 databases.
  - In PL/pgSQL, allow foreign tables to define row types.
  - Fix up conversions of PL/Perl functions' results.
    Restore the pre-9.1 behavior that PL/Perl functions returning void
    ignore the result value of their last Perl statement; 9.1.0 would
    throw an error if that statement returned a reference. Also, make
    sure it works to return a string value for a composite type, so
    long as the string meets the type's input format. In addition,
    throw errors for attempts to return Perl arrays or hashes when the
    function's declared result type is not an array or composite type,
    respectively. (Pre-9.1 versions rather uselessly returned strings
    like ARRAY(0x221a9a0) or HASH(0x221aa90) in such cases.)
  - Ensure PL/Perl strings are always correctly UTF8-encoded.
  - Use the preferred version of xsubpp to build PL/Perl, not
    necessarily the operating system's main copy.
  - Correctly propagate SQLSTATE in PL/Python exceptions.
  - Do not install PL/Python extension files for Python major versions
    other than the one built against.
  - Change all the "contrib" extension script files to report a useful
    error message if they are fed to psql. This should help teach people
    about the new method of using "CREATE EXTENSION" to load these files.
    In most cases, sourcing the scripts directly would fail anyway, but
    with harder-to-interpret messages.
  - Fix incorrect coding in "contrib/dict_int" and "contrib/dict_xsyn".
  - Remove "contrib/sepgsql" tests from the regular regression test
    mechanism. Since these tests require root privileges for setup, they're
    impractical to run automatically. Switch over to a manual approach
    instead, and provide a testing script to help with that.
  - Fix assorted errors in "contrib/unaccent"'s configuration file
    parsing.
  - Honor query cancel interrupts promptly in pgstatindex().
  - Revert unintentional enabling of WAL_DEBUG. Fortunately, as debugging
    tools go, this one is pretty cheap; but it's not intended to be enabled
    by default, so revert.
  - 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.
* debian/rules: Fix build failure for binary-indep-only builds.
  (Closes: #646079)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<!-- doc/src/sgml/release-9.1.sgml -->
2
2
<!-- See header comment in release.sgml about typical markup -->
3
3
 
 
4
 <sect1 id="release-9-1-2">
 
5
  <title>Release 9.1.2</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 9.1.1.
 
14
   For information about new features in the 9.1 major release, see
 
15
   <xref linkend="release-9-1">.
 
16
  </para>
 
17
 
 
18
  <sect2>
 
19
   <title>Migration to Version 9.1.2</title>
 
20
 
 
21
   <para>
 
22
    A dump/restore is not required for those running 9.1.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 your installation was upgraded from a previous major release
 
34
    by running <application>pg_upgrade</>, and it contains table columns of
 
35
    the <type>citext</> data type, you should run <literal>CREATE EXTENSION
 
36
    citext FROM unpackaged</>.  If you've already done that before
 
37
    upgrading to 9.1.2, you will instead need to do manual catalog updates
 
38
    as explained in the second changelog item.
 
39
   </para>
 
40
 
 
41
  </sect2>
 
42
 
 
43
  <sect2>
 
44
   <title>Changes</title>
 
45
 
 
46
   <itemizedlist>
 
47
 
 
48
    <listitem>
 
49
     <para>
 
50
      Fix bugs in <literal>information_schema.referential_constraints</> view
 
51
      (Tom Lane)
 
52
     </para>
 
53
 
 
54
     <para>
 
55
      This view was being insufficiently careful about matching the
 
56
      foreign-key constraint to the depended-on primary or unique key
 
57
      constraint.  That could result in failure to show a foreign key
 
58
      constraint at all, or showing it multiple times, or claiming that it
 
59
      depends on a different constraint than the one it really does.
 
60
     </para>
 
61
 
 
62
     <para>
 
63
      Since the view definition is installed by <application>initdb</>,
 
64
      merely upgrading will not fix the problem.  If you need to fix this
 
65
      in an existing installation, you can (as a superuser) drop the
 
66
      <literal>information_schema</> schema then re-create it by sourcing
 
67
      <filename><replaceable>SHAREDIR</>/information_schema.sql</filename>.
 
68
      (Run <literal>pg_config --sharedir</> if you're uncertain where
 
69
      <replaceable>SHAREDIR</> is.)  This must be repeated in each database
 
70
      to be fixed.
 
71
     </para>
 
72
    </listitem>
 
73
 
 
74
    <listitem>
 
75
     <para>
 
76
      Make <filename>contrib/citext</>'s upgrade script fix collations of
 
77
      <type>citext</> columns and indexes (Tom Lane)
 
78
     </para>
 
79
 
 
80
     <para>
 
81
      Existing <type>citext</> columns and indexes aren't correctly marked as
 
82
      being of a collatable data type during <application>pg_upgrade</> from
 
83
      a pre-9.1 server.  That leads to operations on them failing with errors
 
84
      such as <quote>could not determine which collation to use for string
 
85
      comparison</>.  This change allows them to be fixed by the same
 
86
      script that upgrades the <type>citext</> module into a proper 9.1
 
87
      extension during <literal>CREATE EXTENSION citext FROM unpackaged</>.
 
88
     </para>
 
89
 
 
90
     <para>
 
91
      If you have a previously-upgraded database that is suffering from this
 
92
      problem, and you already ran the <command>CREATE EXTENSION</> command,
 
93
      you can manually run (as superuser) the <command>UPDATE</> commands
 
94
      found at the end of
 
95
      <filename><replaceable>SHAREDIR</>/extension/citext--unpackaged--1.0.sql</filename>.
 
96
      (Run <literal>pg_config --sharedir</> if you're uncertain where
 
97
      <replaceable>SHAREDIR</> is.)
 
98
     </para>
 
99
    </listitem>
 
100
 
 
101
    <listitem>
 
102
     <para>
 
103
      Fix possible crash during <command>UPDATE</> or <command>DELETE</> that
 
104
      joins to the output of a scalar-returning function (Tom Lane)
 
105
     </para>
 
106
 
 
107
     <para>
 
108
      A crash could only occur if the target row had been concurrently
 
109
      updated, so this problem surfaced only intermittently.
 
110
     </para>
 
111
    </listitem>
 
112
 
 
113
    <listitem>
 
114
     <para>
 
115
      Fix incorrect replay of WAL records for GIN index updates
 
116
      (Tom Lane)
 
117
     </para>
 
118
 
 
119
     <para>
 
120
      This could result in transiently failing to find index entries after
 
121
      a crash, or on a hot-standby server.  The problem would be repaired
 
122
      by the next <command>VACUUM</> of the index, however.
 
123
     </para>
 
124
    </listitem>
 
125
 
 
126
    <listitem>
 
127
     <para>
 
128
      Fix TOAST-related data corruption during <literal>CREATE TABLE dest AS
 
129
      SELECT * FROM src</> or <literal>INSERT INTO dest SELECT * FROM src</>
 
130
      (Tom Lane)
 
131
     </para>
 
132
 
 
133
     <para>
 
134
      If a table has been modified by <command>ALTER TABLE ADD COLUMN</>,
 
135
      attempts to copy its data verbatim to another table could produce
 
136
      corrupt results in certain corner cases.
 
137
      The problem can only manifest in this precise form in 8.4 and later,
 
138
      but we patched earlier versions as well in case there are other code
 
139
      paths that could trigger the same bug.
 
140
     </para>
 
141
    </listitem>
 
142
 
 
143
    <listitem>
 
144
     <para>
 
145
      Fix possible failures during hot standby startup (Simon Riggs)
 
146
     </para>
 
147
    </listitem>
 
148
 
 
149
    <listitem>
 
150
     <para>
 
151
      Start hot standby faster when initial snapshot is incomplete
 
152
      (Simon Riggs)
 
153
     </para>
 
154
    </listitem>
 
155
 
 
156
    <listitem>
 
157
     <para>
 
158
      Fix race condition during toast table access from stale syscache entries
 
159
      (Tom Lane)
 
160
     </para>
 
161
 
 
162
     <para>
 
163
      The typical symptom was transient errors like <quote>missing chunk
 
164
      number 0 for toast value NNNNN in pg_toast_2619</>, where the cited
 
165
      toast table would always belong to a system catalog.
 
166
     </para>
 
167
    </listitem>
 
168
 
 
169
    <listitem>
 
170
     <para>
 
171
      Track dependencies of functions on items used in parameter default
 
172
      expressions (Tom Lane)
 
173
     </para>
 
174
 
 
175
     <para>
 
176
      Previously, a referenced object could be dropped without having dropped
 
177
      or modified the function, leading to misbehavior when the function was
 
178
      used.  Note that merely installing this update will not fix the missing
 
179
      dependency entries; to do that, you'd need to <command>CREATE OR
 
180
      REPLACE</> each such function afterwards.  If you have functions whose
 
181
      defaults depend on non-built-in objects, doing so is recommended.
 
182
     </para>
 
183
    </listitem>
 
184
 
 
185
    <listitem>
 
186
     <para>
 
187
      Fix incorrect management of placeholder variables in nestloop joins
 
188
      (Tom Lane)
 
189
     </para>
 
190
 
 
191
     <para>
 
192
      This bug is known to lead to <quote>variable not found in subplan target
 
193
      list</> planner errors, and could possibly result in wrong query output
 
194
      when outer joins are involved.
 
195
     </para>
 
196
    </listitem>
 
197
 
 
198
    <listitem>
 
199
     <para>
 
200
      Fix window functions that sort by expressions involving aggregates
 
201
      (Tom Lane)
 
202
     </para>
 
203
 
 
204
     <para>
 
205
      Previously these could fail with <quote>could not find pathkey item to
 
206
      sort</> planner errors.
 
207
     </para>
 
208
    </listitem>
 
209
 
 
210
    <listitem>
 
211
     <para>
 
212
      Fix <quote>MergeAppend child's targetlist doesn't match MergeAppend</>
 
213
      planner errors (Tom Lane)
 
214
     </para>
 
215
    </listitem>
 
216
 
 
217
    <listitem>
 
218
     <para>
 
219
      Fix index matching for operators with both collatable and noncollatable
 
220
      inputs (Tom Lane)
 
221
     </para>
 
222
 
 
223
     <para>
 
224
      In 9.1.0, an indexable operator that has a non-collatable left-hand
 
225
      input type and a collatable right-hand input type would not be
 
226
      recognized as matching the left-hand column's index.  An example is
 
227
      the <type>hstore</> <literal>?</> <type>text</> operator.
 
228
     </para>
 
229
    </listitem>
 
230
 
 
231
    <listitem>
 
232
     <para>
 
233
      Allow inlining of set-returning SQL functions with multiple OUT
 
234
      parameters (Tom Lane)
 
235
     </para>
 
236
    </listitem>
 
237
 
 
238
    <listitem>
 
239
     <para>
 
240
      Don't trust deferred-unique indexes for join removal (Tom Lane and Marti
 
241
      Raudsepp)
 
242
     </para>
 
243
 
 
244
     <para>
 
245
      A deferred uniqueness constraint might not hold intra-transaction,
 
246
      so assuming that it does could give incorrect query results.
 
247
     </para>
 
248
    </listitem>
 
249
 
 
250
    <listitem>
 
251
     <para>
 
252
      Make <function>DatumGetInetP()</> unpack inet datums that have a 1-byte
 
253
      header, and add a new macro, <function>DatumGetInetPP()</>, that does
 
254
      not (Heikki Linnakangas)
 
255
     </para>
 
256
 
 
257
     <para>
 
258
      This change affects no core code, but might prevent crashes in add-on
 
259
      code that expects <function>DatumGetInetP()</> to produce an unpacked
 
260
      datum as per usual convention.
 
261
     </para>
 
262
    </listitem>
 
263
 
 
264
    <listitem>
 
265
     <para>
 
266
      Improve locale support in <type>money</> type's input and output
 
267
      (Tom Lane)
 
268
     </para>
 
269
 
 
270
     <para>
 
271
      Aside from not supporting all standard
 
272
      <link linkend="guc-lc-monetary"><varname>lc_monetary</></link>
 
273
      formatting options, the input and output functions were inconsistent,
 
274
      meaning there were locales in which dumped <type>money</> values could
 
275
      not be re-read.
 
276
     </para>
 
277
    </listitem>
 
278
 
 
279
    <listitem>
 
280
     <para>
 
281
      Don't let <link
 
282
      linkend="guc-transform-null-equals"><varname>transform_null_equals</></link>
 
283
      affect <literal>CASE foo WHEN NULL ...</> constructs
 
284
      (Heikki Linnakangas)
 
285
     </para>
 
286
 
 
287
     <para>
 
288
      <varname>transform_null_equals</> is only supposed to affect
 
289
      <literal>foo = NULL</> expressions written directly by the user, not
 
290
      equality checks generated internally by this form of <literal>CASE</>.
 
291
     </para>
 
292
    </listitem>
 
293
 
 
294
    <listitem>
 
295
     <para>
 
296
      Change foreign-key trigger creation order to better support
 
297
      self-referential foreign keys (Tom Lane)
 
298
     </para>
 
299
 
 
300
     <para>
 
301
      For a cascading foreign key that references its own table, a row update
 
302
      will fire both the <literal>ON UPDATE</> trigger and the
 
303
      <literal>CHECK</> trigger as one event.  The <literal>ON UPDATE</>
 
304
      trigger must execute first, else the <literal>CHECK</> will check a
 
305
      non-final state of the row and possibly throw an inappropriate error.
 
306
      However, the firing order of these triggers is determined by their
 
307
      names, which generally sort in creation order since the triggers have
 
308
      auto-generated names following the convention
 
309
      <quote>RI_ConstraintTrigger_NNNN</>.  A proper fix would require
 
310
      modifying that convention, which we will do in 9.2, but it seems risky
 
311
      to change it in existing releases.  So this patch just changes the
 
312
      creation order of the triggers.  Users encountering this type of error
 
313
      should drop and re-create the foreign key constraint to get its
 
314
      triggers into the right order.
 
315
     </para>
 
316
    </listitem>
 
317
 
 
318
    <listitem>
 
319
     <para>
 
320
      Fix <literal>IF EXISTS</> to work correctly in <command>DROP OPERATOR
 
321
      FAMILY</> (Robert Haas)
 
322
     </para>
 
323
    </listitem>
 
324
 
 
325
    <listitem>
 
326
     <para>
 
327
      Disallow dropping of an extension from within its own script
 
328
      (Tom Lane)
 
329
     </para>
 
330
 
 
331
     <para>
 
332
      This prevents odd behavior in case of incorrect management of extension
 
333
      dependencies.
 
334
     </para>
 
335
    </listitem>
 
336
 
 
337
    <listitem>
 
338
     <para>
 
339
      Don't mark auto-generated types as extension members (Robert Haas)
 
340
     </para>
 
341
 
 
342
     <para>
 
343
      Relation rowtypes and automatically-generated array types do not need to
 
344
      have their own extension membership entries in <structname>pg_depend</>,
 
345
      and creating such entries complicates matters for extension upgrades.
 
346
     </para>
 
347
    </listitem>
 
348
 
 
349
    <listitem>
 
350
     <para>
 
351
      Cope with invalid pre-existing <varname>search_path</> settings during
 
352
      <command>CREATE EXTENSION</> (Tom Lane)
 
353
     </para>
 
354
    </listitem>
 
355
 
 
356
    <listitem>
 
357
     <para>
 
358
      Avoid floating-point underflow while tracking buffer allocation rate
 
359
      (Greg Matthews)
 
360
     </para>
 
361
 
 
362
     <para>
 
363
      While harmless in itself, on certain platforms this would result in
 
364
      annoying kernel log messages.
 
365
     </para>
 
366
    </listitem>
 
367
 
 
368
    <listitem>
 
369
     <para>
 
370
      Prevent autovacuum transactions from running in serializable mode
 
371
      (Tom Lane)
 
372
     </para>
 
373
 
 
374
     <para>
 
375
      Autovacuum formerly used the cluster-wide default transaction isolation
 
376
      level, but there is no need for it to use anything higher than READ
 
377
      COMMITTED, and using SERIALIZABLE could result in unnecessary delays
 
378
      for other processes.
 
379
     </para>
 
380
    </listitem>
 
381
 
 
382
    <listitem>
 
383
     <para>
 
384
      Ensure walsender processes respond promptly to <systemitem>SIGTERM</>
 
385
      (Magnus Hagander)
 
386
     </para>
 
387
    </listitem>
 
388
 
 
389
    <listitem>
 
390
     <para>
 
391
      Exclude <filename>postmaster.opts</> from base backups
 
392
      (Magnus Hagander)
 
393
     </para>
 
394
    </listitem>
 
395
 
 
396
    <listitem>
 
397
     <para>
 
398
      Preserve configuration file name and line number values when starting
 
399
      child processes under Windows (Tom Lane)
 
400
     </para>
 
401
 
 
402
     <para>
 
403
      Formerly, these would not be displayed correctly in the
 
404
      <structname>pg_settings</> view.
 
405
     </para>
 
406
    </listitem>
 
407
 
 
408
    <listitem>
 
409
     <para>
 
410
      Fix incorrect field alignment in <application>ecpg</>'s SQLDA area
 
411
      (Zoltan Boszormenyi)
 
412
     </para>
 
413
    </listitem>
 
414
 
 
415
    <listitem>
 
416
     <para>
 
417
      Preserve blank lines within commands in <application>psql</>'s command
 
418
      history (Robert Haas)
 
419
     </para>
 
420
 
 
421
     <para>
 
422
      The former behavior could cause problems if an empty line was removed
 
423
      from within a string literal, for example.
 
424
     </para>
 
425
    </listitem>
 
426
 
 
427
    <listitem>
 
428
     <para>
 
429
      Avoid platform-specific infinite loop in <application>pg_dump</>
 
430
      (Steve Singer)
 
431
     </para>
 
432
    </listitem>
 
433
 
 
434
    <listitem>
 
435
     <para>
 
436
      Fix compression of plain-text output format in <application>pg_dump</>
 
437
      (Adrian Klaver and Tom Lane)
 
438
     </para>
 
439
 
 
440
     <para>
 
441
      <application>pg_dump</> has historically understood <literal>-Z</> with
 
442
      no <literal>-F</> switch to mean that it should emit a gzip-compressed
 
443
      version of its plain text output.  Restore that behavior.
 
444
     </para>
 
445
    </listitem>
 
446
 
 
447
    <listitem>
 
448
     <para>
 
449
      Fix <application>pg_dump</> to dump user-defined casts between
 
450
      auto-generated types, such as table rowtypes (Tom Lane)
 
451
     </para>
 
452
    </listitem>
 
453
 
 
454
    <listitem>
 
455
     <para>
 
456
      Fix missed quoting of foreign server names in <application>pg_dump</>
 
457
      (Tom Lane)
 
458
     </para>
 
459
    </listitem>
 
460
 
 
461
    <listitem>
 
462
     <para>
 
463
      Assorted fixes for <application>pg_upgrade</> (Bruce Momjian)
 
464
     </para>
 
465
 
 
466
     <para>
 
467
      Handle exclusion constraints correctly, avoid failures on Windows,
 
468
      don't complain about mismatched toast table names in 8.4 databases.
 
469
     </para>
 
470
    </listitem>
 
471
 
 
472
    <listitem>
 
473
     <para>
 
474
      In PL/pgSQL, allow foreign tables to define row types
 
475
      (Alexander Soudakov)
 
476
     </para>
 
477
    </listitem>
 
478
 
 
479
    <listitem>
 
480
     <para>
 
481
      Fix up conversions of PL/Perl functions' results
 
482
      (Alex Hunsaker and Tom Lane)
 
483
     </para>
 
484
 
 
485
     <para>
 
486
      Restore the pre-9.1 behavior that PL/Perl functions returning
 
487
      <type>void</> ignore the result value of their last Perl statement;
 
488
      9.1.0 would throw an error if that statement returned a reference.
 
489
      Also, make sure it works to return a string value for a composite type,
 
490
      so long as the string meets the type's input format.
 
491
      In addition, throw errors for attempts to return Perl arrays or hashes
 
492
      when the function's declared result type is not an array or composite
 
493
      type, respectively.  (Pre-9.1 versions rather uselessly returned
 
494
      strings like <literal>ARRAY(0x221a9a0)</> or
 
495
      <literal>HASH(0x221aa90)</> in such cases.)
 
496
     </para>
 
497
    </listitem>
 
498
 
 
499
    <listitem>
 
500
     <para>
 
501
      Ensure PL/Perl strings are always correctly UTF8-encoded
 
502
      (Amit Khandekar and Alex Hunsaker)
 
503
     </para>
 
504
    </listitem>
 
505
 
 
506
    <listitem>
 
507
     <para>
 
508
      Use the preferred version of <application>xsubpp</> to build PL/Perl,
 
509
      not necessarily the operating system's main copy
 
510
      (David Wheeler and Alex Hunsaker)
 
511
     </para>
 
512
    </listitem>
 
513
 
 
514
    <listitem>
 
515
     <para>
 
516
      Correctly propagate SQLSTATE in PL/Python exceptions
 
517
      (Mika Eloranta and Jan Urbanski)
 
518
     </para>
 
519
    </listitem>
 
520
 
 
521
    <listitem>
 
522
     <para>
 
523
      Do not install PL/Python extension files for Python major versions
 
524
      other than the one built against (Peter Eisentraut)
 
525
     </para>
 
526
    </listitem>
 
527
 
 
528
    <listitem>
 
529
     <para>
 
530
      Change all the <filename>contrib</> extension script files to report
 
531
      a useful error message if they are fed to <application>psql</>
 
532
      (Andrew Dunstan and Tom Lane)
 
533
     </para>
 
534
 
 
535
     <para>
 
536
      This should help teach people about the new method of using
 
537
      <command>CREATE EXTENSION</> to load these files.  In most cases,
 
538
      sourcing the scripts directly would fail anyway, but with
 
539
      harder-to-interpret messages.
 
540
     </para>
 
541
    </listitem>
 
542
 
 
543
    <listitem>
 
544
     <para>
 
545
      Fix incorrect coding in <filename>contrib/dict_int</> and
 
546
      <filename>contrib/dict_xsyn</> (Tom Lane)
 
547
     </para>
 
548
 
 
549
     <para>
 
550
      Some functions incorrectly assumed that memory returned by
 
551
      <function>palloc()</> is guaranteed zeroed.
 
552
     </para>
 
553
    </listitem>
 
554
 
 
555
    <listitem>
 
556
     <para>
 
557
      Remove <filename>contrib/sepgsql</> tests from the regular regression
 
558
      test mechanism (Tom Lane)
 
559
     </para>
 
560
 
 
561
     <para>
 
562
      Since these tests require root privileges for setup, they're impractical
 
563
      to run automatically.  Switch over to a manual approach instead, and
 
564
      provide a testing script to help with that.
 
565
     </para>
 
566
    </listitem>
 
567
 
 
568
    <listitem>
 
569
     <para>
 
570
      Fix assorted errors in <filename>contrib/unaccent</>'s configuration
 
571
      file parsing (Tom Lane)
 
572
     </para>
 
573
    </listitem>
 
574
 
 
575
    <listitem>
 
576
     <para>
 
577
      Honor query cancel interrupts promptly in <function>pgstatindex()</>
 
578
      (Robert Haas)
 
579
     </para>
 
580
    </listitem>
 
581
 
 
582
    <listitem>
 
583
     <para>
 
584
      Fix incorrect quoting of log file name in Mac OS X start script
 
585
      (Sidar Lopez)
 
586
     </para>
 
587
    </listitem>
 
588
 
 
589
    <listitem>
 
590
     <para>
 
591
      Revert unintentional enabling of <literal>WAL_DEBUG</> (Robert Haas)
 
592
     </para>
 
593
 
 
594
     <para>
 
595
      Fortunately, as debugging tools go, this one is pretty cheap;
 
596
      but it's not intended to be enabled by default, so revert.
 
597
     </para>
 
598
    </listitem>
 
599
 
 
600
    <listitem>
 
601
     <para>
 
602
      Ensure VPATH builds properly install all server header files
 
603
      (Peter Eisentraut)
 
604
     </para>
 
605
    </listitem>
 
606
 
 
607
    <listitem>
 
608
     <para>
 
609
      Shorten file names reported in verbose error messages (Peter Eisentraut)
 
610
     </para>
 
611
 
 
612
     <para>
 
613
      Regular builds have always reported just the name of the C file
 
614
      containing the error message call, but VPATH builds formerly
 
615
      reported an absolute path name.
 
616
     </para>
 
617
    </listitem>
 
618
 
 
619
    <listitem>
 
620
     <para>
 
621
      Fix interpretation of Windows timezone names for Central America
 
622
      (Tom Lane)
 
623
     </para>
 
624
 
 
625
     <para>
 
626
      Map <quote>Central America Standard Time</> to <literal>CST6</>, not
 
627
      <literal>CST6CDT</>, because DST is generally not observed anywhere in
 
628
      Central America.
 
629
     </para>
 
630
    </listitem>
 
631
 
 
632
    <listitem>
 
633
     <para>
 
634
      Update time zone data files to <application>tzdata</> release 2011n
 
635
      for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
 
636
      also historical corrections for Alaska and British East Africa.
 
637
     </para>
 
638
    </listitem>
 
639
 
 
640
   </itemizedlist>
 
641
 
 
642
  </sect2>
 
643
 </sect1>
 
644
 
4
645
 <sect1 id="release-9-1-1">
5
646
  <title>Release 9.1.1</title>
6
647