~ubuntu-branches/ubuntu/utopic/postgresql-9.4/utopic-security

« back to all changes in this revision

Viewing changes to doc/src/sgml/html/release-9-4-1.html

  • Committer: Package Import Robot
  • Author(s): Martin Pitt, CVE-2014-8161
  • Date: 2015-02-06 12:31:46 UTC
  • mfrom: (1.1.5) (7.1.2 utopic-proposed)
  • Revision ID: package-import@ubuntu.com-20150206123146-vtmf30jbkm7w16p8
Tags: 9.4.1-0ubuntu0.14.10
* New upstream security/bug fix release (LP: #1418928)
  - Fix buffer overruns in to_char() [CVE-2015-0241]
  - Fix buffer overruns in contrib/pgcrypto [CVE-2015-0243]
  - Fix possible loss of frontend/backend protocol synchronization after an
    error [CVE-2015-0244]
  - Fix information leak via constraint-violation error messages
    [CVE-2014-8161]
  - See release notes for details about other fixes:
    http://www.postgresql.org/about/news/1569/

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
2
<HTML
 
3
><HEAD
 
4
><TITLE
 
5
>Release 9.4.1</TITLE
 
6
><META
 
7
NAME="GENERATOR"
 
8
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 
9
REV="MADE"
 
10
HREF="mailto:pgsql-docs@postgresql.org"><LINK
 
11
REL="HOME"
 
12
TITLE="PostgreSQL 9.4.1 Documentation"
 
13
HREF="index.html"><LINK
 
14
REL="UP"
 
15
TITLE="Release Notes"
 
16
HREF="release.html"><LINK
 
17
REL="PREVIOUS"
 
18
TITLE="Release Notes"
 
19
HREF="release.html"><LINK
 
20
REL="NEXT"
 
21
TITLE="Release 9.4"
 
22
HREF="release-9-4.html"><LINK
 
23
REL="STYLESHEET"
 
24
TYPE="text/css"
 
25
HREF="stylesheet.css"><META
 
26
HTTP-EQUIV="Content-Type"
 
27
CONTENT="text/html; charset=ISO-8859-1"><META
 
28
NAME="creation"
 
29
CONTENT="2015-02-02T20:51:01"></HEAD
 
30
><BODY
 
31
CLASS="SECT1"
 
32
><DIV
 
33
CLASS="NAVHEADER"
 
34
><TABLE
 
35
SUMMARY="Header navigation table"
 
36
WIDTH="100%"
 
37
BORDER="0"
 
38
CELLPADDING="0"
 
39
CELLSPACING="0"
 
40
><TR
 
41
><TH
 
42
COLSPAN="4"
 
43
ALIGN="center"
 
44
VALIGN="bottom"
 
45
><A
 
46
HREF="index.html"
 
47
>PostgreSQL 9.4.1 Documentation</A
 
48
></TH
 
49
></TR
 
50
><TR
 
51
><TD
 
52
WIDTH="10%"
 
53
ALIGN="left"
 
54
VALIGN="top"
 
55
><A
 
56
TITLE="Release Notes"
 
57
HREF="release.html"
 
58
ACCESSKEY="P"
 
59
>Prev</A
 
60
></TD
 
61
><TD
 
62
WIDTH="10%"
 
63
ALIGN="left"
 
64
VALIGN="top"
 
65
><A
 
66
HREF="release.html"
 
67
ACCESSKEY="U"
 
68
>Up</A
 
69
></TD
 
70
><TD
 
71
WIDTH="60%"
 
72
ALIGN="center"
 
73
VALIGN="bottom"
 
74
>Appendix E. Release Notes</TD
 
75
><TD
 
76
WIDTH="20%"
 
77
ALIGN="right"
 
78
VALIGN="top"
 
79
><A
 
80
TITLE="Release 9.4"
 
81
HREF="release-9-4.html"
 
82
ACCESSKEY="N"
 
83
>Next</A
 
84
></TD
 
85
></TR
 
86
></TABLE
 
87
><HR
 
88
ALIGN="LEFT"
 
89
WIDTH="100%"></DIV
 
90
><DIV
 
91
CLASS="SECT1"
 
92
><H1
 
93
CLASS="SECT1"
 
94
><A
 
95
NAME="RELEASE-9-4-1"
 
96
>E.1. Release 9.4.1</A
 
97
></H1
 
98
><DIV
 
99
CLASS="NOTE"
 
100
><BLOCKQUOTE
 
101
CLASS="NOTE"
 
102
><P
 
103
><B
 
104
>Release Date: </B
 
105
>2015-02-05</P
 
106
></BLOCKQUOTE
 
107
></DIV
 
108
><P
 
109
>   This release contains a variety of fixes from 9.4.0.
 
110
   For information about new features in the 9.4 major release, see
 
111
   <A
 
112
HREF="release-9-4.html"
 
113
>Section E.2</A
 
114
>.
 
115
  </P
 
116
><DIV
 
117
CLASS="SECT2"
 
118
><H2
 
119
CLASS="SECT2"
 
120
><A
 
121
NAME="AEN118826"
 
122
>E.1.1. Migration to Version 9.4.1</A
 
123
></H2
 
124
><P
 
125
>    A dump/restore is not required for those running 9.4.X.
 
126
   </P
 
127
><P
 
128
>    However, if you are a Windows user and are using the <SPAN
 
129
CLASS="QUOTE"
 
130
>"Norwegian
 
131
    (Bokm&aring;l)"</SPAN
 
132
> locale, manual action is needed after the upgrade to
 
133
    replace any <SPAN
 
134
CLASS="QUOTE"
 
135
>"Norwegian (Bokm&aring;l)_Norway"</SPAN
 
136
>
 
137
    or <SPAN
 
138
CLASS="QUOTE"
 
139
>"norwegian-bokmal"</SPAN
 
140
> locale names stored
 
141
    in <SPAN
 
142
CLASS="PRODUCTNAME"
 
143
>PostgreSQL</SPAN
 
144
> system catalogs with the plain-ASCII
 
145
    alias <SPAN
 
146
CLASS="QUOTE"
 
147
>"Norwegian_Norway"</SPAN
 
148
>.  For details see
 
149
    <A
 
150
HREF="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"
 
151
TARGET="_top"
 
152
>http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale</A
 
153
>
 
154
   </P
 
155
></DIV
 
156
><DIV
 
157
CLASS="SECT2"
 
158
><H2
 
159
CLASS="SECT2"
 
160
><A
 
161
NAME="AEN118836"
 
162
>E.1.2. Changes</A
 
163
></H2
 
164
><P
 
165
></P
 
166
><UL
 
167
><LI
 
168
><P
 
169
>      Fix buffer overruns in <CODE
 
170
CLASS="FUNCTION"
 
171
>to_char()</CODE
 
172
>
 
173
      (Bruce Momjian)
 
174
     </P
 
175
><P
 
176
>      When <CODE
 
177
CLASS="FUNCTION"
 
178
>to_char()</CODE
 
179
> processes a numeric formatting template
 
180
      calling for a large number of digits, <SPAN
 
181
CLASS="PRODUCTNAME"
 
182
>PostgreSQL</SPAN
 
183
>
 
184
      would read past the end of a buffer.  When processing a crafted
 
185
      timestamp formatting template, <SPAN
 
186
CLASS="PRODUCTNAME"
 
187
>PostgreSQL</SPAN
 
188
> would write
 
189
      past the end of a buffer.  Either case could crash the server.
 
190
      We have not ruled out the possibility of attacks that lead to
 
191
      privilege escalation, though they seem unlikely.
 
192
      (CVE-2015-0241)
 
193
     </P
 
194
></LI
 
195
><LI
 
196
><P
 
197
>      Fix buffer overrun in replacement <CODE
 
198
CLASS="FUNCTION"
 
199
>*printf()</CODE
 
200
> functions
 
201
      (Tom Lane)
 
202
     </P
 
203
><P
 
204
>      <SPAN
 
205
CLASS="PRODUCTNAME"
 
206
>PostgreSQL</SPAN
 
207
> includes a replacement implementation
 
208
      of <CODE
 
209
CLASS="FUNCTION"
 
210
>printf</CODE
 
211
> and related functions.  This code will overrun
 
212
      a stack buffer when formatting a floating point number (conversion
 
213
      specifiers <TT
 
214
CLASS="LITERAL"
 
215
>e</TT
 
216
>, <TT
 
217
CLASS="LITERAL"
 
218
>E</TT
 
219
>, <TT
 
220
CLASS="LITERAL"
 
221
>f</TT
 
222
>, <TT
 
223
CLASS="LITERAL"
 
224
>F</TT
 
225
>,
 
226
      <TT
 
227
CLASS="LITERAL"
 
228
>g</TT
 
229
> or <TT
 
230
CLASS="LITERAL"
 
231
>G</TT
 
232
>) with requested precision greater than
 
233
      about 500.  This will crash the server, and we have not ruled out the
 
234
      possibility of attacks that lead to privilege escalation.
 
235
      A database user can trigger such a buffer overrun through
 
236
      the <CODE
 
237
CLASS="FUNCTION"
 
238
>to_char()</CODE
 
239
> SQL function.  While that is the only
 
240
      affected core <SPAN
 
241
CLASS="PRODUCTNAME"
 
242
>PostgreSQL</SPAN
 
243
> functionality, extension
 
244
      modules that use printf-family functions may be at risk as well.
 
245
     </P
 
246
><P
 
247
>      This issue primarily affects <SPAN
 
248
CLASS="PRODUCTNAME"
 
249
>PostgreSQL</SPAN
 
250
> on Windows.
 
251
      <SPAN
 
252
CLASS="PRODUCTNAME"
 
253
>PostgreSQL</SPAN
 
254
> uses the system implementation of these
 
255
      functions where adequate, which it is on other modern platforms.
 
256
      (CVE-2015-0242)
 
257
     </P
 
258
></LI
 
259
><LI
 
260
><P
 
261
>      Fix buffer overruns in <TT
 
262
CLASS="FILENAME"
 
263
>contrib/pgcrypto</TT
 
264
>
 
265
      (Marko Tiikkaja, Noah Misch)
 
266
     </P
 
267
><P
 
268
>      Errors in memory size tracking within the <TT
 
269
CLASS="FILENAME"
 
270
>pgcrypto</TT
 
271
>
 
272
      module permitted stack buffer overruns and improper dependence on the
 
273
      contents of uninitialized memory.  The buffer overrun cases can
 
274
      crash the server, and we have not ruled out the possibility of
 
275
      attacks that lead to privilege escalation.
 
276
      (CVE-2015-0243)
 
277
     </P
 
278
></LI
 
279
><LI
 
280
><P
 
281
>      Fix possible loss of frontend/backend protocol synchronization after
 
282
      an error
 
283
      (Heikki Linnakangas)
 
284
     </P
 
285
><P
 
286
>      If any error occurred while the server was in the middle of reading a
 
287
      protocol message from the client, it could lose synchronization and
 
288
      incorrectly try to interpret part of the message's data as a new
 
289
      protocol message.  An attacker able to submit crafted binary data
 
290
      within a command parameter might succeed in injecting his own SQL
 
291
      commands this way.  Statement timeout and query cancellation are the
 
292
      most likely sources of errors triggering this scenario.  Particularly
 
293
      vulnerable are applications that use a timeout and also submit
 
294
      arbitrary user-crafted data as binary query parameters.  Disabling
 
295
      statement timeout will reduce, but not eliminate, the risk of
 
296
      exploit.  Our thanks to Emil Lenngren for reporting this issue.
 
297
      (CVE-2015-0244)
 
298
     </P
 
299
></LI
 
300
><LI
 
301
><P
 
302
>      Fix information leak via constraint-violation error messages
 
303
      (Stephen Frost)
 
304
     </P
 
305
><P
 
306
>      Some server error messages show the values of columns that violate
 
307
      a constraint, such as a unique constraint.  If the user does not have
 
308
      <TT
 
309
CLASS="LITERAL"
 
310
>SELECT</TT
 
311
> privilege on all columns of the table, this could
 
312
      mean exposing values that the user should not be able to see.  Adjust
 
313
      the code so that values are displayed only when they came from the SQL
 
314
      command or could be selected by the user.
 
315
      (CVE-2014-8161)
 
316
     </P
 
317
></LI
 
318
><LI
 
319
><P
 
320
>      Lock down regression testing's temporary installations on Windows
 
321
      (Noah Misch)
 
322
     </P
 
323
><P
 
324
>      Use SSPI authentication to allow connections only from the OS user
 
325
      who launched the test suite.  This closes on Windows the same
 
326
      vulnerability previously closed on other platforms, namely that other
 
327
      users might be able to connect to the test postmaster.
 
328
      (CVE-2014-0067)
 
329
     </P
 
330
></LI
 
331
><LI
 
332
><P
 
333
>      Cope with the Windows locale named <SPAN
 
334
CLASS="QUOTE"
 
335
>"Norwegian (Bokm&aring;l)"</SPAN
 
336
>
 
337
      (Heikki Linnakangas)
 
338
     </P
 
339
><P
 
340
>      Non-ASCII locale names are problematic since it's not clear what
 
341
      encoding they should be represented in.  Map the troublesome locale
 
342
      name to a plain-ASCII alias, <SPAN
 
343
CLASS="QUOTE"
 
344
>"Norwegian_Norway"</SPAN
 
345
>.
 
346
     </P
 
347
><P
 
348
>      9.4.0 mapped the troublesome name to <SPAN
 
349
CLASS="QUOTE"
 
350
>"norwegian-bokmal"</SPAN
 
351
>,
 
352
      but that turns out not to work on all Windows configurations.
 
353
      <SPAN
 
354
CLASS="QUOTE"
 
355
>"Norwegian_Norway"</SPAN
 
356
> is now recommended instead.
 
357
     </P
 
358
></LI
 
359
><LI
 
360
><P
 
361
>      Fix use-of-already-freed-memory problem in EvalPlanQual processing
 
362
      (Tom Lane)
 
363
     </P
 
364
><P
 
365
>      In <TT
 
366
CLASS="LITERAL"
 
367
>READ COMMITTED</TT
 
368
> mode, queries that lock or update
 
369
      recently-updated rows could crash as a result of this bug.
 
370
     </P
 
371
></LI
 
372
><LI
 
373
><P
 
374
>      Avoid possible deadlock while trying to acquire tuple locks
 
375
      in EvalPlanQual processing (&Aacute;lvaro Herrera, Mark Kirkwood)
 
376
     </P
 
377
></LI
 
378
><LI
 
379
><P
 
380
>      Fix failure to wait when a transaction tries to acquire a <TT
 
381
CLASS="LITERAL"
 
382
>FOR
 
383
      NO KEY EXCLUSIVE</TT
 
384
> tuple lock, while multiple other transactions
 
385
      currently hold <TT
 
386
CLASS="LITERAL"
 
387
>FOR SHARE</TT
 
388
> locks (&Aacute;lvaro Herrera)
 
389
     </P
 
390
></LI
 
391
><LI
 
392
><P
 
393
>      Improve performance of <TT
 
394
CLASS="COMMAND"
 
395
>EXPLAIN</TT
 
396
> with large range tables
 
397
      (Tom Lane)
 
398
     </P
 
399
></LI
 
400
><LI
 
401
><P
 
402
>      Fix <TT
 
403
CLASS="TYPE"
 
404
>jsonb</TT
 
405
> Unicode escape processing, and in consequence
 
406
      disallow <TT
 
407
CLASS="LITERAL"
 
408
>\u0000</TT
 
409
> (Tom Lane)
 
410
     </P
 
411
><P
 
412
>      Previously, the JSON Unicode escape <TT
 
413
CLASS="LITERAL"
 
414
>\u0000</TT
 
415
> was accepted
 
416
      and was stored as those six characters; but that is indistinguishable
 
417
      from what is stored for the input <TT
 
418
CLASS="LITERAL"
 
419
>\\u0000</TT
 
420
>, resulting in
 
421
      ambiguity.  Moreover, in cases where de-escaped textual output is
 
422
      expected, such as the <TT
 
423
CLASS="LITERAL"
 
424
>-&gt;&gt;</TT
 
425
> operator, the sequence was
 
426
      printed as <TT
 
427
CLASS="LITERAL"
 
428
>\u0000</TT
 
429
>, which does not meet the expectation
 
430
      that JSON escaping would be removed.  (Consistent behavior would
 
431
      require emitting a zero byte, but <SPAN
 
432
CLASS="PRODUCTNAME"
 
433
>PostgreSQL</SPAN
 
434
> does not
 
435
      support zero bytes embedded in text strings.)  9.4.0 included an
 
436
      ill-advised attempt to improve this situation by adjusting JSON output
 
437
      conversion rules; but of course that could not fix the fundamental
 
438
      ambiguity, and it turned out to break other usages of Unicode escape
 
439
      sequences.  Revert that, and to avoid the core problem,
 
440
      reject <TT
 
441
CLASS="LITERAL"
 
442
>\u0000</TT
 
443
> in <TT
 
444
CLASS="TYPE"
 
445
>jsonb</TT
 
446
> input.
 
447
     </P
 
448
><P
 
449
>      If a <TT
 
450
CLASS="TYPE"
 
451
>jsonb</TT
 
452
> column contains a <TT
 
453
CLASS="LITERAL"
 
454
>\u0000</TT
 
455
> value stored
 
456
      with 9.4.0, it will henceforth read out as though it
 
457
      were <TT
 
458
CLASS="LITERAL"
 
459
>\\u0000</TT
 
460
>, which is the other valid interpretation of
 
461
      the data stored by 9.4.0 for this case.
 
462
     </P
 
463
><P
 
464
>      The <TT
 
465
CLASS="TYPE"
 
466
>json</TT
 
467
> type did not have the storage-ambiguity problem, but
 
468
      it did have the problem of inconsistent de-escaped textual output.
 
469
      Therefore <TT
 
470
CLASS="LITERAL"
 
471
>\u0000</TT
 
472
> will now also be rejected
 
473
      in <TT
 
474
CLASS="TYPE"
 
475
>json</TT
 
476
> values when conversion to de-escaped form is
 
477
      required.  This change does not break the ability to
 
478
      store <TT
 
479
CLASS="LITERAL"
 
480
>\u0000</TT
 
481
> in <TT
 
482
CLASS="TYPE"
 
483
>json</TT
 
484
> columns so long as no
 
485
      processing is done on the values.  This is exactly parallel to the
 
486
      cases in which non-ASCII Unicode escapes are allowed when the database
 
487
      encoding is not UTF8.
 
488
     </P
 
489
></LI
 
490
><LI
 
491
><P
 
492
>      Fix namespace handling in <CODE
 
493
CLASS="FUNCTION"
 
494
>xpath()</CODE
 
495
> (Ali Akbar)
 
496
     </P
 
497
><P
 
498
>      Previously, the <TT
 
499
CLASS="TYPE"
 
500
>xml</TT
 
501
> value resulting from
 
502
      an <CODE
 
503
CLASS="FUNCTION"
 
504
>xpath()</CODE
 
505
> call would not have namespace declarations if
 
506
      the namespace declarations were attached to an ancestor element in the
 
507
      input <TT
 
508
CLASS="TYPE"
 
509
>xml</TT
 
510
> value, rather than to the specific element being
 
511
      returned.  Propagate the ancestral declaration so that the result is
 
512
      correct when considered in isolation.
 
513
     </P
 
514
></LI
 
515
><LI
 
516
><P
 
517
>      Fix assorted oversights in range-operator selectivity estimation
 
518
      (Emre Hasegeli)
 
519
     </P
 
520
><P
 
521
>      This patch fixes corner-case <SPAN
 
522
CLASS="QUOTE"
 
523
>"unexpected operator NNNN"</SPAN
 
524
> planner
 
525
      errors, and improves the selectivity estimates for some other cases.
 
526
     </P
 
527
></LI
 
528
><LI
 
529
><P
 
530
>      Revert unintended reduction in maximum size of a GIN index item
 
531
      (Heikki Linnakangas)
 
532
     </P
 
533
><P
 
534
>      9.4.0 could fail with <SPAN
 
535
CLASS="QUOTE"
 
536
>"index row size exceeds maximum"</SPAN
 
537
> errors
 
538
      for data that previous versions would accept.
 
539
     </P
 
540
></LI
 
541
><LI
 
542
><P
 
543
>      Fix query-duration memory leak during repeated GIN index rescans
 
544
      (Heikki Linnakangas)
 
545
     </P
 
546
></LI
 
547
><LI
 
548
><P
 
549
>      Fix possible crash when using
 
550
      nonzero <TT
 
551
CLASS="VARNAME"
 
552
>gin_fuzzy_search_limit</TT
 
553
> (Heikki Linnakangas)
 
554
     </P
 
555
></LI
 
556
><LI
 
557
><P
 
558
>      Assorted fixes for logical decoding (Andres Freund)
 
559
     </P
 
560
></LI
 
561
><LI
 
562
><P
 
563
>      Fix incorrect replay of WAL parameter change records that report
 
564
      changes in the <TT
 
565
CLASS="VARNAME"
 
566
>wal_log_hints</TT
 
567
> setting (Petr Jalinek)
 
568
     </P
 
569
></LI
 
570
><LI
 
571
><P
 
572
>      Change <SPAN
 
573
CLASS="QUOTE"
 
574
>"pgstat wait timeout"</SPAN
 
575
> warning message to be LOG level,
 
576
      and rephrase it to be more understandable (Tom Lane)
 
577
     </P
 
578
><P
 
579
>      This message was originally thought to be essentially a can't-happen
 
580
      case, but it occurs often enough on our slower buildfarm members to be
 
581
      a nuisance.  Reduce it to LOG level, and expend a bit more effort on
 
582
      the wording: it now reads <SPAN
 
583
CLASS="QUOTE"
 
584
>"using stale statistics instead of
 
585
      current ones because stats collector is not responding"</SPAN
 
586
>.
 
587
     </P
 
588
></LI
 
589
><LI
 
590
><P
 
591
>      Warn if OS X's <CODE
 
592
CLASS="FUNCTION"
 
593
>setlocale()</CODE
 
594
> starts an unwanted extra
 
595
      thread inside the postmaster (Noah Misch)
 
596
     </P
 
597
></LI
 
598
><LI
 
599
><P
 
600
>      Fix <SPAN
 
601
CLASS="APPLICATION"
 
602
>libpq</SPAN
 
603
>'s behavior when <TT
 
604
CLASS="FILENAME"
 
605
>/etc/passwd</TT
 
606
>
 
607
      isn't readable (Tom Lane)
 
608
     </P
 
609
><P
 
610
>      While doing <CODE
 
611
CLASS="FUNCTION"
 
612
>PQsetdbLogin()</CODE
 
613
>, <SPAN
 
614
CLASS="APPLICATION"
 
615
>libpq</SPAN
 
616
>
 
617
      attempts to ascertain the user's operating system name, which on most
 
618
      Unix platforms involves reading <TT
 
619
CLASS="FILENAME"
 
620
>/etc/passwd</TT
 
621
>.  As of 9.4,
 
622
      failure to do that was treated as a hard error.  Restore the previous
 
623
      behavior, which was to fail only if the application does not provide a
 
624
      database role name to connect as.  This supports operation in chroot
 
625
      environments that lack an <TT
 
626
CLASS="FILENAME"
 
627
>/etc/passwd</TT
 
628
> file.
 
629
     </P
 
630
></LI
 
631
><LI
 
632
><P
 
633
>      Improve consistency of parsing of <SPAN
 
634
CLASS="APPLICATION"
 
635
>psql</SPAN
 
636
>'s special
 
637
      variables (Tom Lane)
 
638
     </P
 
639
><P
 
640
>      Allow variant spellings of <TT
 
641
CLASS="LITERAL"
 
642
>on</TT
 
643
> and <TT
 
644
CLASS="LITERAL"
 
645
>off</TT
 
646
> (such
 
647
      as <TT
 
648
CLASS="LITERAL"
 
649
>1</TT
 
650
>/<TT
 
651
CLASS="LITERAL"
 
652
>0</TT
 
653
>) for <TT
 
654
CLASS="LITERAL"
 
655
>ECHO_HIDDEN</TT
 
656
>
 
657
      and <TT
 
658
CLASS="LITERAL"
 
659
>ON_ERROR_ROLLBACK</TT
 
660
>.  Report a warning for unrecognized
 
661
      values for <TT
 
662
CLASS="LITERAL"
 
663
>COMP_KEYWORD_CASE</TT
 
664
>, <TT
 
665
CLASS="LITERAL"
 
666
>ECHO</TT
 
667
>,
 
668
      <TT
 
669
CLASS="LITERAL"
 
670
>ECHO_HIDDEN</TT
 
671
>, <TT
 
672
CLASS="LITERAL"
 
673
>HISTCONTROL</TT
 
674
>,
 
675
      <TT
 
676
CLASS="LITERAL"
 
677
>ON_ERROR_ROLLBACK</TT
 
678
>, and <TT
 
679
CLASS="LITERAL"
 
680
>VERBOSITY</TT
 
681
>.  Recognize
 
682
      all values for all these variables case-insensitively; previously
 
683
      there was a mishmash of case-sensitive and case-insensitive behaviors.
 
684
     </P
 
685
></LI
 
686
><LI
 
687
><P
 
688
>      Fix <SPAN
 
689
CLASS="APPLICATION"
 
690
>pg_dump</SPAN
 
691
> to handle comments on event triggers
 
692
      without failing (Tom Lane)
 
693
     </P
 
694
></LI
 
695
><LI
 
696
><P
 
697
>      Allow parallel <SPAN
 
698
CLASS="APPLICATION"
 
699
>pg_dump</SPAN
 
700
> to
 
701
      use <TT
 
702
CLASS="OPTION"
 
703
>--serializable-deferrable</TT
 
704
> (Kevin Grittner)
 
705
     </P
 
706
></LI
 
707
><LI
 
708
><P
 
709
>      Prevent WAL files created by <TT
 
710
CLASS="LITERAL"
 
711
>pg_basebackup -x/-X</TT
 
712
> from
 
713
      being archived again when the standby is promoted (Andres Freund)
 
714
     </P
 
715
></LI
 
716
><LI
 
717
><P
 
718
>      Handle unexpected query results, especially NULLs, safely in
 
719
      <TT
 
720
CLASS="FILENAME"
 
721
>contrib/tablefunc</TT
 
722
>'s <CODE
 
723
CLASS="FUNCTION"
 
724
>connectby()</CODE
 
725
>
 
726
      (Michael Paquier)
 
727
     </P
 
728
><P
 
729
>      <CODE
 
730
CLASS="FUNCTION"
 
731
>connectby()</CODE
 
732
> previously crashed if it encountered a NULL
 
733
      key value.  It now prints that row but doesn't recurse further.
 
734
     </P
 
735
></LI
 
736
><LI
 
737
><P
 
738
>      Numerous cleanups of warnings from Coverity static code analyzer
 
739
      (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
 
740
     </P
 
741
><P
 
742
>      These changes are mostly cosmetic but in some cases fix corner-case
 
743
      bugs, for example a crash rather than a proper error report after an
 
744
      out-of-memory failure.  None are believed to represent security
 
745
      issues.
 
746
     </P
 
747
></LI
 
748
><LI
 
749
><P
 
750
>      Allow <TT
 
751
CLASS="VARNAME"
 
752
>CFLAGS</TT
 
753
> from <SPAN
 
754
CLASS="APPLICATION"
 
755
>configure</SPAN
 
756
>'s environment
 
757
      to override automatically-supplied <TT
 
758
CLASS="VARNAME"
 
759
>CFLAGS</TT
 
760
> (Tom Lane)
 
761
     </P
 
762
><P
 
763
>      Previously, <SPAN
 
764
CLASS="APPLICATION"
 
765
>configure</SPAN
 
766
> would add any switches that it
 
767
      chose of its own accord to the end of the
 
768
      user-specified <TT
 
769
CLASS="VARNAME"
 
770
>CFLAGS</TT
 
771
> string.  Since most compilers
 
772
      process switches left-to-right, this meant that configure's choices
 
773
      would override the user-specified flags in case of conflicts.  That
 
774
      should work the other way around, so adjust the logic to put the
 
775
      user's string at the end not the beginning.
 
776
     </P
 
777
></LI
 
778
><LI
 
779
><P
 
780
>      Make <SPAN
 
781
CLASS="APPLICATION"
 
782
>pg_regress</SPAN
 
783
> remove any temporary installation it
 
784
      created upon successful exit (Tom Lane)
 
785
     </P
 
786
><P
 
787
>      This results in a very substantial reduction in disk space usage
 
788
      during <TT
 
789
CLASS="LITERAL"
 
790
>make check-world</TT
 
791
>, since that sequence involves
 
792
      creation of numerous temporary installations.
 
793
     </P
 
794
></LI
 
795
><LI
 
796
><P
 
797
>      Add CST (China Standard Time) to our lists of timezone abbreviations
 
798
      (Tom Lane)
 
799
     </P
 
800
></LI
 
801
><LI
 
802
><P
 
803
>      Update time zone data files to <SPAN
 
804
CLASS="APPLICATION"
 
805
>tzdata</SPAN
 
806
> release 2015a
 
807
      for DST law changes in Chile and Mexico, plus historical changes in
 
808
      Iceland.
 
809
     </P
 
810
></LI
 
811
></UL
 
812
></DIV
 
813
></DIV
 
814
><DIV
 
815
CLASS="NAVFOOTER"
 
816
><HR
 
817
ALIGN="LEFT"
 
818
WIDTH="100%"><TABLE
 
819
SUMMARY="Footer navigation table"
 
820
WIDTH="100%"
 
821
BORDER="0"
 
822
CELLPADDING="0"
 
823
CELLSPACING="0"
 
824
><TR
 
825
><TD
 
826
WIDTH="33%"
 
827
ALIGN="left"
 
828
VALIGN="top"
 
829
><A
 
830
HREF="release.html"
 
831
ACCESSKEY="P"
 
832
>Prev</A
 
833
></TD
 
834
><TD
 
835
WIDTH="34%"
 
836
ALIGN="center"
 
837
VALIGN="top"
 
838
><A
 
839
HREF="index.html"
 
840
ACCESSKEY="H"
 
841
>Home</A
 
842
></TD
 
843
><TD
 
844
WIDTH="33%"
 
845
ALIGN="right"
 
846
VALIGN="top"
 
847
><A
 
848
HREF="release-9-4.html"
 
849
ACCESSKEY="N"
 
850
>Next</A
 
851
></TD
 
852
></TR
 
853
><TR
 
854
><TD
 
855
WIDTH="33%"
 
856
ALIGN="left"
 
857
VALIGN="top"
 
858
>Release Notes</TD
 
859
><TD
 
860
WIDTH="34%"
 
861
ALIGN="center"
 
862
VALIGN="top"
 
863
><A
 
864
HREF="release.html"
 
865
ACCESSKEY="U"
 
866
>Up</A
 
867
></TD
 
868
><TD
 
869
WIDTH="33%"
 
870
ALIGN="right"
 
871
VALIGN="top"
 
872
>Release 9.4</TD
 
873
></TR
 
874
></TABLE
 
875
></DIV
 
876
></BODY
 
877
></HTML
 
878
>
 
 
b'\\ No newline at end of file'