~ubuntu-branches/ubuntu/oneiric/postgresql-9.1/oneiric-security

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-06-14 09:53:29 UTC
  • mto: (6.1.1 sid) (10.1.1 oneiric-proposed) (1.2.1)
  • mto: This revision was merged to the branch mainline in revision 5.
  • Revision ID: james.westby@ubuntu.com-20110614095329-71gfhjywyp2c27au
Tags: upstream-9.1~beta2
ImportĀ upstreamĀ versionĀ 9.1~beta2

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
REV="MADE"
10
10
HREF="mailto:pgsql-docs@postgresql.org"><LINK
11
11
REL="HOME"
12
 
TITLE="PostgreSQL 9.1beta1 Documentation"
 
12
TITLE="PostgreSQL 9.1beta2 Documentation"
13
13
HREF="index.html"><LINK
14
14
REL="UP"
15
15
TITLE="Release Notes"
26
26
HTTP-EQUIV="Content-Type"
27
27
CONTENT="text/html; charset=ISO-8859-1"><META
28
28
NAME="creation"
29
 
CONTENT="2011-04-27T21:20:33"></HEAD
 
29
CONTENT="2011-06-09T23:44:43"></HEAD
30
30
><BODY
31
31
CLASS="SECT1"
32
32
><DIV
44
44
VALIGN="bottom"
45
45
><A
46
46
HREF="index.html"
47
 
>PostgreSQL 9.1beta1 Documentation</A
 
47
>PostgreSQL 9.1beta2 Documentation</A
48
48
></TH
49
49
></TR
50
50
><TR
115
115
></BLOCKQUOTE
116
116
></DIV
117
117
><P
118
 
>CURRENT AS OF 2011-03-15</P
 
118
>CURRENT AS OF 2011-06-09</P
119
119
><DIV
120
120
CLASS="SECT2"
121
121
><H2
122
122
CLASS="SECT2"
123
123
><A
124
 
NAME="AEN106291"
 
124
NAME="AEN106311"
125
125
>E.1.1. Overview</A
126
126
></H2
127
127
><P
143
143
><H2
144
144
CLASS="SECT2"
145
145
><A
146
 
NAME="AEN106297"
 
146
NAME="AEN106317"
147
147
>E.1.2. Migration to Version 9.1</A
148
148
></H2
149
149
><P
167
167
><H3
168
168
CLASS="SECT3"
169
169
><A
170
 
NAME="AEN106303"
 
170
NAME="AEN106323"
171
171
>E.1.2.1. Strings</A
172
172
></H3
173
173
><P
185
185
       to on (Robert Haas)
186
186
      </P
187
187
><P
188
 
>       This removes a long-standing incompatibility with the SQL
189
 
       standard;  <A
 
188
>       By default, backslashes are now ordinary characters in string literals,
 
189
       not escape characters.  This change removes a long-standing
 
190
       incompatibility with the SQL standard.  <A
190
191
HREF="runtime-config-compatible.html#GUC-ESCAPE-STRING-WARNING"
191
192
><TT
192
193
CLASS="VARNAME"
197
198
CLASS="LITERAL"
198
199
>E''</TT
199
200
>
200
 
       strings are the proper way to embed escapes in strings and are
 
201
       strings are the proper way to embed backslash escapes in strings and are
201
202
       unaffected by this change.
202
203
      </P
203
204
></LI
208
209
><H3
209
210
CLASS="SECT3"
210
211
><A
211
 
NAME="AEN106314"
 
212
NAME="AEN106334"
212
213
>E.1.2.2. Casting</A
213
214
></H3
214
215
><P
239
240
></TT
240
241
>)</TT
241
242
>.
 
243
       Unintentional uses of this syntax have frequently resulted in bug
 
244
       reports; although it was not a bug, it seems better to go back to
 
245
       rejecting such expressions.
242
246
       The <TT
243
247
CLASS="LITERAL"
244
248
>CAST</TT
268
272
       rechecking the domain type's constraints, whereas before the checks
269
273
       were skipped.
270
274
      </P
271
 
><P
272
 
>       Also, such a domain type is no longer allowed to match an
273
 
       <TT
274
 
CLASS="TYPE"
275
 
>anyarray</TT
276
 
> parameter of a polymorphic function, except by
277
 
       explicitly downcasting it to the base array type.
278
 
      </P
279
275
></LI
280
276
></UL
281
277
></DIV
284
280
><H3
285
281
CLASS="SECT3"
286
282
><A
287
 
NAME="AEN106333"
 
283
NAME="AEN106351"
288
284
>E.1.2.3. Arrays</A
289
285
></H3
290
286
><P
303
299
       Stehule)
304
300
      </P
305
301
><P
306
 
>       Previously this returned <TT
307
 
CLASS="LITERAL"
308
 
>NULL</TT
309
 
>.
 
302
>       Previously this returned a null value.
310
303
      </P
311
304
></LI
312
305
><LI
325
318
       (Pavel Stehule)
326
319
      </P
327
320
><P
328
 
>       Previously this returned <TT
329
 
CLASS="LITERAL"
330
 
>NULL</TT
331
 
>.
 
321
>       Previously this returned a null value.
332
322
      </P
333
323
></LI
334
324
></UL
338
328
><H3
339
329
CLASS="SECT3"
340
330
><A
341
 
NAME="AEN106349"
 
331
NAME="AEN106365"
342
332
>E.1.2.4. Object Modification</A
343
333
></H3
344
334
><P
349
339
>       Fix improper checks for before/after triggers (Tom Lane)
350
340
      </P
351
341
><P
352
 
>       Triggers can now be fired in three cases: BEFORE, AFTER, or INSTEAD OF
353
 
       some action.  Trigger function authors should verify that their logic
354
 
       behaves sanely in all three cases.
 
342
>       Triggers can now be fired in three cases: <TT
 
343
CLASS="LITERAL"
 
344
>BEFORE</TT
 
345
>,
 
346
       <TT
 
347
CLASS="LITERAL"
 
348
>AFTER</TT
 
349
>, or <TT
 
350
CLASS="LITERAL"
 
351
>INSTEAD OF</TT
 
352
> some action.
 
353
       Trigger function authors should verify that their logic behaves
 
354
       sanely in all three cases.
355
355
      </P
356
356
></LI
357
357
><LI
370
370
><H3
371
371
CLASS="SECT3"
372
372
><A
373
 
NAME="AEN106358"
 
373
NAME="AEN106377"
374
374
>E.1.2.5. Server Settings</A
375
375
></H3
376
376
><P
417
417
><H3
418
418
CLASS="SECT3"
419
419
><A
420
 
NAME="AEN106372"
 
420
NAME="AEN106391"
421
421
>E.1.2.6. <A
422
422
HREF="plpgsql.html"
423
423
>PL/pgSQL</A
445
445
></LI
446
446
><LI
447
447
><P
448
 
>       Adjust PL/pgSQL's error line reporting code to be consistent
 
448
>       Adjust PL/pgSQL's error line numbering code to be consistent
449
449
       with other PLs (Pavel Stehule)
450
450
      </P
451
451
><P
454
454
       other languages, the special case was removed.
455
455
      </P
456
456
></LI
 
457
><LI
 
458
><P
 
459
>       Make PL/pgSQL complain about conflicting IN and OUT parameter names
 
460
       (Tom Lane)
 
461
      </P
 
462
><P
 
463
>       Formerly, the collision was not detected, and the name would just
 
464
       silently refer to only the OUT parameter.
 
465
      </P
 
466
></LI
 
467
><LI
 
468
><P
 
469
>       Type modifiers of PL/pgSQL variables are now visible to the SQL parser
 
470
       (Tom Lane)
 
471
      </P
 
472
><P
 
473
>       A type modifier (such as a varchar length limit) attached to a PL/pgSQL
 
474
       variable was formerly enforced during assignments, but was ignored for
 
475
       all other purposes.  Such variables will now behave more like table
 
476
       columns declared with the same modifier.  This is not expected to make
 
477
       any visible difference in most cases, but it could result in subtle
 
478
       changes for some SQL commands issued by PL/pgSQL functions.
 
479
      </P
 
480
></LI
457
481
></UL
458
482
></DIV
459
483
><DIV
461
485
><H3
462
486
CLASS="SECT3"
463
487
><A
464
 
NAME="AEN106384"
 
488
NAME="AEN106409"
465
489
>E.1.2.7. Other Incompatibilities</A
466
490
></H3
467
491
><P
469
493
><UL
470
494
><LI
471
495
><P
472
 
>       Have <A
 
496
>       Make <A
473
497
HREF="monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE"
474
498
><CODE
475
499
CLASS="FUNCTION"
513
537
><H2
514
538
CLASS="SECT2"
515
539
><A
516
 
NAME="AEN106400"
 
540
NAME="AEN106425"
517
541
>E.1.3. Changes</A
518
542
></H2
519
543
><P
524
548
><H3
525
549
CLASS="SECT3"
526
550
><A
527
 
NAME="AEN106403"
 
551
NAME="AEN106428"
528
552
>E.1.3.1. Server</A
529
553
></H3
530
554
><DIV
532
556
><H4
533
557
CLASS="SECT4"
534
558
><A
535
 
NAME="AEN106405"
 
559
NAME="AEN106430"
536
560
>E.1.3.1.1. Performance</A
537
561
></H4
538
562
><P
540
564
><UL
541
565
><LI
542
566
><P
543
 
>        Allow unlogged tables using <A
 
567
>        Support unlogged tables using the <A
544
568
HREF="sql-createtable.html#SQL-CREATETABLE-DESCRIPTION"
545
569
><TT
546
570
CLASS="LITERAL"
547
571
>UNLOGGED</TT
548
572
></A
549
573
>
550
 
        during <A
 
574
        option in <A
551
575
HREF="sql-createtable.html"
552
576
><TT
553
577
CLASS="COMMAND"
557
581
> (Robert Haas)
558
582
       </P
559
583
><P
560
 
>        These tables are optimized for performance but are cleared in
561
 
        case of a server crash.
 
584
>        Such tables provide better update performance than regular tables,
 
585
        but are not crash-safe: their contents are automatically cleared in
 
586
        case of a server crash.  Their contents do not propagate to
 
587
        replication slaves, either.
562
588
       </P
563
589
></LI
564
590
><LI
611
637
        (Greg Smith)
612
638
       </P
613
639
><P
614
 
>        This allows the use of commit_siblings with less overhead.
 
640
>        This allows the use of <TT
 
641
CLASS="VARNAME"
 
642
>commit_siblings</TT
 
643
> with
 
644
        less overhead.
615
645
       </P
616
646
></LI
617
647
><LI
627
657
><H4
628
658
CLASS="SECT4"
629
659
><A
630
 
NAME="AEN106433"
 
660
NAME="AEN106459"
631
661
>E.1.3.1.2. Optimizer</A
632
662
></H4
633
663
><P
635
665
><UL
636
666
><LI
637
667
><P
638
 
>        Allow inheritance table queries to return meaningfully-sorted
639
 
        results (Greg Stark, Hans-Jurgen Schonig, Robert Haas, Tom
640
 
        Lane)
 
668
>        Allow inheritance table scans to return meaningfully-sorted
 
669
        results (Greg Stark, Hans-Jurgen Schonig, Robert Haas, Tom Lane)
641
670
       </P
642
671
><P
643
 
>        This allows optimization of <TT
 
672
>        This allows better optimization of queries that use <TT
644
673
CLASS="LITERAL"
645
 
>ORDER BY</TT
646
 
> and
647
 
        <TT
 
674
>ORDER
 
675
        BY</TT
 
676
>, <TT
648
677
CLASS="LITERAL"
649
678
>LIMIT</TT
650
 
> clauses in inheritance table queries.
651
 
       </P
652
 
></LI
653
 
><LI
654
 
><P
655
 
>         Allow optimizations of <TT
 
679
>, or <TT
656
680
CLASS="LITERAL"
657
681
>MIN</TT
658
682
>/<TT
659
683
CLASS="LITERAL"
660
684
>MAX</TT
661
 
> for
662
 
         inheritance table queries (Tom Lane)
663
 
       </P
664
 
></LI
665
 
><LI
666
 
><P
667
 
>        Support hashing array values (Tom Lane)
668
 
       </P
669
 
><P
670
 
>        This provides additional query optimization possibilities.
 
685
> with
 
686
        inherited tables.
671
687
       </P
672
688
></LI
673
689
><LI
675
691
>         Improve GIN index scan cost estimation (Teodor Sigaev)
676
692
       </P
677
693
></LI
 
694
><LI
 
695
><P
 
696
>        Improve cost estimation for aggregates and window functions (Tom Lane)
 
697
       </P
 
698
></LI
678
699
></UL
679
700
></DIV
680
701
><DIV
682
703
><H4
683
704
CLASS="SECT4"
684
705
><A
685
 
NAME="AEN106450"
 
706
NAME="AEN106473"
686
707
>E.1.3.1.3. Authentication</A
687
708
></H4
688
709
><P
690
711
><UL
691
712
><LI
692
713
><P
693
 
>        Support host names and host suffixes (e.g. .example.com) in
694
 
        <A
 
714
>        Support host names and host suffixes
 
715
        (e.g. <TT
 
716
CLASS="LITERAL"
 
717
>.example.com</TT
 
718
>) in <A
695
719
HREF="auth-pg-hba-conf.html"
696
720
><TT
697
721
CLASS="FILENAME"
713
737
></LI
714
738
><LI
715
739
><P
716
 
>        Support the keyword <TT
 
740
>        Support the key word <TT
717
741
CLASS="LITERAL"
718
742
>all</TT
719
743
> in the host column of <A
738
762
></LI
739
763
><LI
740
764
><P
 
765
>        Reject <TT
 
766
CLASS="LITERAL"
 
767
>local</TT
 
768
> lines in <A
 
769
HREF="auth-pg-hba-conf.html"
 
770
><TT
 
771
CLASS="FILENAME"
 
772
>pg_hba.conf</TT
 
773
></A
 
774
>
 
775
        on platforms that don't support Unix-socket connections
 
776
        (Magnus Hagander)
 
777
       </P
 
778
><P
 
779
>        Formerly, such lines were silently ignored, which could be surprising.
 
780
        This makes the behavior more like other unsupported cases.
 
781
       </P
 
782
></LI
 
783
><LI
 
784
><P
741
785
>        Allow <A
742
786
HREF="auth-methods.html#GSSAPI-AUTH"
743
787
><ACRONYM
764
808
> authentication with Windows servers.
765
809
       </P
766
810
></LI
 
811
><LI
 
812
><P
 
813
>        <A
 
814
HREF="auth-methods.html#AUTH-IDENT"
 
815
><TT
 
816
CLASS="LITERAL"
 
817
>ident</TT
 
818
></A
 
819
>
 
820
        authentication over local sockets is now known as
 
821
        <A
 
822
HREF="auth-methods.html#AUTH-PEER"
 
823
><TT
 
824
CLASS="LITERAL"
 
825
>peer</TT
 
826
></A
 
827
>
 
828
        (Magnus Hagander)
 
829
       </P
 
830
><P
 
831
>        The old term is still accepted for backward compatibility.
 
832
       </P
 
833
></LI
 
834
><LI
 
835
><P
 
836
>        Rewrite <A
 
837
HREF="auth-methods.html#AUTH-PEER"
 
838
><ACRONYM
 
839
CLASS="ACRONYM"
 
840
>peer</ACRONYM
 
841
></A
 
842
>
 
843
        authentication to avoid use of credential control messages (Tom Lane)
 
844
       </P
 
845
><P
 
846
>        This change makes the peer authentication code simpler and
 
847
        better-performing.  However, it requires the platform to provide the
 
848
        <CODE
 
849
CLASS="FUNCTION"
 
850
>getpeereid</CODE
 
851
> function or an equivalent socket operation.
 
852
        So far as is known, the only platform for which peer authentication
 
853
        worked before and now will not is pre-5.0 NetBSD.
 
854
       </P
 
855
></LI
767
856
></UL
768
857
></DIV
769
858
><DIV
771
860
><H4
772
861
CLASS="SECT4"
773
862
><A
774
 
NAME="AEN106477"
 
863
NAME="AEN106520"
775
864
>E.1.3.1.4. Monitoring</A
776
865
></H4
777
866
><P
806
895
></A
807
896
>
808
897
         which controls the permissions on log files created by the
809
 
         logging_collector (Martin Pihlak)
 
898
         logging collector (Martin Pihlak)
810
899
       </P
811
900
></LI
812
901
></UL
816
905
><H4
817
906
CLASS="SECT4"
818
907
><A
819
 
NAME="AEN106490"
 
908
NAME="AEN106533"
820
909
>E.1.3.1.5. Statistical Views</A
821
910
></H4
822
911
><P
824
913
><UL
825
914
><LI
826
915
><P
827
 
>        Add client_hostname field to <A
 
916
>        Add <TT
 
917
CLASS="STRUCTFIELD"
 
918
>client_hostname</TT
 
919
> column to <A
828
920
HREF="monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE"
829
921
><TT
830
922
CLASS="STRUCTNAME"
874
966
></LI
875
967
><LI
876
968
><P
877
 
>        Add buffers_backend_fsync field to <A
 
969
>        Add <TT
 
970
CLASS="STRUCTFIELD"
 
971
>buffers_backend_fsync</TT
 
972
> column to <A
878
973
HREF="monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE"
879
974
><TT
880
975
CLASS="STRUCTNAME"
884
979
        (Greg Smith)
885
980
       </P
886
981
><P
887
 
>        This new field counts the number of times a backend fsyncs a
 
982
>        This new column counts the number of times a backend fsyncs a
888
983
        buffer.
889
984
       </P
890
985
></LI
895
990
><H4
896
991
CLASS="SECT4"
897
992
><A
898
 
NAME="AEN106514"
 
993
NAME="AEN106559"
899
994
>E.1.3.1.6. Server Settings</A
900
995
></H4
901
996
><P
913
1008
        Smith)
914
1009
       </P
915
1010
><P
916
 
>        wal_buffers is now auto-tuned by default based on the size of
917
 
        shared_buffers.
 
1011
>        <TT
 
1012
CLASS="VARNAME"
 
1013
>wal_buffers</TT
 
1014
> is now auto-tuned by default based on
 
1015
        the size of <TT
 
1016
CLASS="VARNAME"
 
1017
>shared_buffers</TT
 
1018
>.
918
1019
       </P
919
1020
></LI
920
1021
><LI
956
1057
><H3
957
1058
CLASS="SECT3"
958
1059
><A
959
 
NAME="AEN106531"
 
1060
NAME="AEN106578"
960
1061
>E.1.3.2. Replication and Recovery</A
961
1062
></H3
962
1063
><DIV
964
1065
><H4
965
1066
CLASS="SECT4"
966
1067
><A
967
 
NAME="AEN106533"
 
1068
NAME="AEN106580"
968
1069
>E.1.3.2.1. Streaming Replication and Continuous Archiving</A
969
1070
></H4
970
1071
><P
1010
1111
      </P
1011
1112
><P
1012
1113
>       This avoids the requirement of manually transferring a file
1013
 
       system backup when creating a standby server.
 
1114
       system backup when setting up a standby server.
 
1115
      </P
 
1116
></LI
 
1117
><LI
 
1118
><P
 
1119
>       Add
 
1120
       <A
 
1121
HREF="runtime-config-wal.html#GUC-REPLICATION-TIMEOUT"
 
1122
><TT
 
1123
CLASS="VARNAME"
 
1124
>replication_timeout</TT
 
1125
></A
 
1126
>
 
1127
       setting (Fujii Masao, Heikki Linnakangas)
 
1128
      </P
 
1129
><P
 
1130
>       Replication connections that are idle for more than the
 
1131
       <TT
 
1132
CLASS="VARNAME"
 
1133
>replication_timeout</TT
 
1134
> interval will be terminated
 
1135
       automatically.  Formerly, a failed connection was typically not
 
1136
       detected until the TCP timeout elapsed, which is inconveniently
 
1137
       long in many situations.
1014
1138
      </P
1015
1139
></LI
1016
1140
><LI
1035
1159
       for roles (Magnus Hagander)
1036
1160
      </P
1037
1161
><P
1038
 
>       This is a read-only permission used for streaming replication
1039
 
       and allows non-superusers to initiate replication connections.
 
1162
>       This is a read-only permission used for streaming replication.
 
1163
       It allows a non-superuser role to be used for replication connections.
1040
1164
       Previously only superusers could initiate replication
1041
 
       connections;  superusers have this permission by default.
1042
 
      </P
1043
 
></LI
1044
 
><LI
1045
 
><P
1046
 
>       <A
1047
 
HREF="auth-methods.html#AUTH-IDENT"
1048
 
><TT
1049
 
CLASS="LITERAL"
1050
 
>ident</TT
1051
 
></A
1052
 
>
1053
 
       authentication over local sockets is now known as
1054
 
       <A
1055
 
HREF="auth-methods.html#AUTH-PEER"
1056
 
><TT
1057
 
CLASS="LITERAL"
1058
 
>peer</TT
1059
 
></A
1060
 
>
1061
 
       (Magnus Hagander)
1062
 
      </P
1063
 
><P
1064
 
>       The old term is still accepted for backward compatibility.
 
1165
       connections; superusers still have this permission by default.
1065
1166
      </P
1066
1167
></LI
1067
1168
></UL
1071
1172
><H4
1072
1173
CLASS="SECT4"
1073
1174
><A
1074
 
NAME="AEN106562"
 
1175
NAME="AEN106608"
1075
1176
>E.1.3.2.2. Replication Monitoring</A
1076
1177
></H4
1077
1178
><P
1108
1209
        (Fujii Masao)
1109
1210
       </P
1110
1211
><P
1111
 
>        This returns the time on the primary that generated the most
 
1212
>        This returns the time at which the primary generated the most
1112
1213
        recent commit or abort record applied on the standby.
1113
1214
       </P
1114
1215
></LI
1119
1220
><H4
1120
1221
CLASS="SECT4"
1121
1222
><A
1122
 
NAME="AEN106576"
 
1223
NAME="AEN106622"
1123
1224
>E.1.3.2.3. Hot Standby</A
1124
1225
></H4
1125
1226
><P
1127
1228
><UL
1128
1229
><LI
1129
1230
><P
1130
 
>       Add variable <A
 
1231
>       Add configuration parameter <A
1131
1232
HREF="runtime-config-wal.html#GUC-HOT-STANDBY-FEEDBACK"
1132
1233
><TT
1133
1234
CLASS="VARNAME"
1222
1323
><H4
1223
1324
CLASS="SECT4"
1224
1325
><A
1225
 
NAME="AEN106607"
 
1326
NAME="AEN106653"
1226
1327
>E.1.3.2.4. Recovery Control</A
1227
1328
></H4
1228
1329
><P
1272
1373
        to pause recovery at target (Simon Riggs)
1273
1374
       </P
1274
1375
><P
1275
 
>        This allows a recovery server to be queried to check if the
1276
 
        recovery point is the one desired.
 
1376
>        This allows a recovery server to be queried to check whether
 
1377
        the recovery point is the one desired.
1277
1378
       </P
1278
1379
></LI
1279
1380
><LI
1299
1400
CLASS="VARNAME"
1300
1401
>recovery_target_name</TT
1301
1402
></A
1302
 
>
 
1403
>.
1303
1404
       </P
1304
1405
></LI
1305
1406
><LI
1321
1422
>restart_after_crash</TT
1322
1423
></A
1323
1424
>
1324
 
        which disables server restart after a backend crash (Robert
1325
 
        Haas)
 
1425
        setting which disables automatic server restart after a backend
 
1426
        crash (Robert Haas)
1326
1427
       </P
1327
1428
><P
1328
1429
>        This allows external cluster management software to take control
1356
1457
><H3
1357
1458
CLASS="SECT3"
1358
1459
><A
1359
 
NAME="AEN106647"
 
1460
NAME="AEN106693"
1360
1461
>E.1.3.3. Queries</A
1361
1462
></H3
1362
1463
><P
1366
1467
><P
1367
1468
>        Add a true <A
1368
1469
HREF="transaction-iso.html#XACT-SERIALIZABLE"
1369
 
><TT
1370
 
CLASS="LITERAL"
1371
 
>serializable</TT
1372
 
></A
 
1470
>serializable</A
1373
1471
> isolation
1374
1472
        level (Kevin Grittner, Dan Ports)
1375
1473
       </P
1462
1560
></LI
1463
1561
><LI
1464
1562
><P
1465
 
>        Allow use of the keyword <TT
 
1563
>        Allow use of the key word <TT
1466
1564
CLASS="LITERAL"
1467
1565
>DISTINCT</TT
1468
1566
> in <A
1485
1583
CLASS="LITERAL"
1486
1584
>DISTINCT</TT
1487
1585
> is the default behavior so use of this
1488
 
        keyword is redundant, but the SQL standard allows it.
 
1586
        key word is redundant, but the SQL standard allows it.
1489
1587
       </P
1490
1588
></LI
1491
1589
><LI
1514
1612
><H4
1515
1613
CLASS="SECT4"
1516
1614
><A
1517
 
NAME="AEN106694"
 
1615
NAME="AEN106739"
1518
1616
>E.1.3.3.1. Strings</A
1519
1617
></H4
1520
1618
><P
1545
1643
><H3
1546
1644
CLASS="SECT3"
1547
1645
><A
1548
 
NAME="AEN106702"
 
1646
NAME="AEN106747"
1549
1647
>E.1.3.4. Object Manipulation</A
1550
1648
></H3
1551
1649
><P
1553
1651
><UL
1554
1652
><LI
1555
1653
><P
 
1654
>        Add <A
 
1655
HREF="extend-extensions.html"
 
1656
>extensions</A
 
1657
> which
 
1658
        simplify packaging of additions to <SPAN
 
1659
CLASS="PRODUCTNAME"
 
1660
>PostgreSQL</SPAN
 
1661
>
 
1662
        (Dimitri Fontaine, Tom Lane)
 
1663
       </P
 
1664
><P
 
1665
>        Extensions are controlled by the new <A
 
1666
HREF="sql-createextension.html"
 
1667
><TT
 
1668
CLASS="COMMAND"
 
1669
>CREATE</TT
 
1670
></A
 
1671
>/<A
 
1672
HREF="sql-alterextension.html"
 
1673
><TT
 
1674
CLASS="COMMAND"
 
1675
>ALTER</TT
 
1676
></A
 
1677
>/<A
 
1678
HREF="sql-dropextension.html"
 
1679
><TT
 
1680
CLASS="COMMAND"
 
1681
>DROP EXTENSION</TT
 
1682
></A
 
1683
>
 
1684
        commands.  This replaces ad-hoc methods of grouping objects that
 
1685
        are added to a <SPAN
 
1686
CLASS="PRODUCTNAME"
 
1687
>PostgreSQL</SPAN
 
1688
> installation.
 
1689
       </P
 
1690
></LI
 
1691
><LI
 
1692
><P
1556
1693
>        Add support for <A
1557
1694
HREF="sql-createforeigntable.html"
1558
1695
>foreign
1603
1740
><H4
1604
1741
CLASS="SECT4"
1605
1742
><A
1606
 
NAME="AEN106719"
 
1743
NAME="AEN106776"
1607
1744
>E.1.3.4.1. <TT
1608
1745
CLASS="COMMAND"
1609
1746
>ALTER</TT
1649
1786
></LI
1650
1787
><LI
1651
1788
><P
 
1789
>        Support <TT
 
1790
CLASS="LITERAL"
 
1791
>ALTER TABLE <TT
 
1792
CLASS="REPLACEABLE"
 
1793
><I
 
1794
>name</I
 
1795
></TT
 
1796
> {OF | NOT OF}
 
1797
        <TT
 
1798
CLASS="REPLACEABLE"
 
1799
><I
 
1800
>type</I
 
1801
></TT
 
1802
></TT
 
1803
>
 
1804
        (Noah Misch)
 
1805
       </P
 
1806
><P
 
1807
>        This syntax allows a standalone table to be made into a typed table,
 
1808
        or a typed table to be made standalone.
 
1809
       </P
 
1810
></LI
 
1811
><LI
 
1812
><P
1652
1813
>        Add support for more object types in <TT
1653
1814
CLASS="COMMAND"
1654
1815
>ALTER ... SET
1657
1818
       </P
1658
1819
><P
1659
1820
>        This command is now supported for conversions, operators, operator
1660
 
        classes, operator families, text search configurations, and text search
 
1821
        classes, operator families, text search configurations, text search
1661
1822
        dictionaries, text search parsers, and text search templates.
1662
1823
       </P
1663
1824
></LI
1668
1829
><H4
1669
1830
CLASS="SECT4"
1670
1831
><A
1671
 
NAME="AEN106738"
 
1832
NAME="AEN106801"
1672
1833
>E.1.3.4.2. <A
1673
1834
HREF="sql-createtable.html"
1674
1835
><TT
1690
1851
        (Gurjeet Singh)
1691
1852
       </P
1692
1853
><P
1693
 
>        This allows a primary key or unique constraint to be added using an
 
1854
>        This allows a primary key or unique constraint to be defined using an
1694
1855
        existing unique index, including a concurrently created unique index.
1695
1856
       </P
1696
1857
></LI
1711
1872
CLASS="LITERAL"
1712
1873
>VALIDATED</TT
1713
1874
> and validation
1714
 
        checks performed. Together these allow you to add a Foreign Key
 
1875
        checks performed. Together these allow you to add a foreign key
1715
1876
        with minimal impact on read and write operations.
1716
1877
       </P
1717
1878
></LI
1728
1889
        appropriate cases (Noah Misch, Robert Haas)
1729
1890
       </P
1730
1891
><P
1731
 
>        For example, converting a varchar column to text no longer
1732
 
        requires a rewrite of the table.  However, increasing the length
1733
 
        constraint on a varchar column still requires a table rewrite.
 
1892
>        For example, converting a <TT
 
1893
CLASS="TYPE"
 
1894
>varchar</TT
 
1895
> column to
 
1896
        <TT
 
1897
CLASS="TYPE"
 
1898
>text</TT
 
1899
> no longer requires a rewrite of the table.
 
1900
        However, increasing the length constraint on a
 
1901
        <TT
 
1902
CLASS="TYPE"
 
1903
>varchar</TT
 
1904
> column still requires a table rewrite.
1734
1905
       </P
1735
1906
></LI
1736
1907
><LI
1751
1922
></LI
1752
1923
><LI
1753
1924
><P
1754
 
>        Fix possible "tuple concurrently updated" error when two server
1755
 
        backends attempted to add an inheritance parent to the same
1756
 
        table at the same time (Robert Haas)
 
1925
>        Fix possible <SPAN
 
1926
CLASS="QUOTE"
 
1927
>"tuple concurrently updated"</SPAN
 
1928
> error
 
1929
        when two backends attempted to add an inheritance
 
1930
        child to the same table at the same time (Robert Haas)
1757
1931
       </P
1758
1932
><P
1759
1933
>        <A
1774
1948
><H4
1775
1949
CLASS="SECT4"
1776
1950
><A
1777
 
NAME="AEN106768"
 
1951
NAME="AEN106835"
1778
1952
>E.1.3.4.3. Object Permissions</A
1779
1953
></H4
1780
1954
><P
1803
1977
><H3
1804
1978
CLASS="SECT3"
1805
1979
><A
1806
 
NAME="AEN106776"
 
1980
NAME="AEN106843"
1807
1981
>E.1.3.5. Utility Operations</A
1808
1982
></H3
1809
1983
><P
1846
2020
><H4
1847
2021
CLASS="SECT4"
1848
2022
><A
1849
 
NAME="AEN106788"
 
2023
NAME="AEN106855"
1850
2024
>E.1.3.5.1. <A
1851
2025
HREF="sql-copy.html"
1852
2026
><TT
1902
2076
><H4
1903
2077
CLASS="SECT4"
1904
2078
><A
1905
 
NAME="AEN106805"
 
2079
NAME="AEN106872"
1906
2080
>E.1.3.5.2. <A
1907
2081
HREF="sql-explain.html"
1908
2082
><TT
1920
2094
CLASS="COMMAND"
1921
2095
>EXPLAIN VERBOSE</TT
1922
2096
> show the function call expression
1923
 
        in a FunctionScan node (Tom Lane)
 
2097
        in a <TT
 
2098
CLASS="LITERAL"
 
2099
>FunctionScan</TT
 
2100
> node (Tom Lane)
1924
2101
       </P
1925
2102
></LI
1926
2103
></UL
1930
2107
><H4
1931
2108
CLASS="SECT4"
1932
2109
><A
1933
 
NAME="AEN106813"
 
2110
NAME="AEN106881"
1934
2111
>E.1.3.5.3. <A
1935
2112
HREF="sql-vacuum.html"
1936
2113
><TT
1987
2164
><H4
1988
2165
CLASS="SECT4"
1989
2166
><A
1990
 
NAME="AEN106830"
 
2167
NAME="AEN106898"
1991
2168
>E.1.3.5.4. <A
1992
2169
HREF="sql-cluster.html"
1993
2170
><TT
2015
2192
><H4
2016
2193
CLASS="SECT4"
2017
2194
><A
2018
 
NAME="AEN106838"
 
2195
NAME="AEN106906"
2019
2196
>E.1.3.5.5. Indexes</A
2020
2197
></H4
2021
2198
><P
2109
2286
><H3
2110
2287
CLASS="SECT3"
2111
2288
><A
2112
 
NAME="AEN106866"
 
2289
NAME="AEN106934"
2113
2290
>E.1.3.6. Data Types</A
2114
2291
></H3
2115
2292
><P
2121
2298
CLASS="TYPE"
2122
2299
>numeric</TT
2123
2300
> to use a more compact, two-byte header
2124
 
       in many cases (Robert Haas)
 
2301
       in common cases (Robert Haas)
2125
2302
      </P
2126
2303
><P
2127
2304
>       Previously all <TT
2159
2336
>       This avoids unnecessary overflows, and may also be more accurate.
2160
2337
      </P
2161
2338
></LI
 
2339
><LI
 
2340
><P
 
2341
>       Support hashing array values (Tom Lane)
 
2342
      </P
 
2343
><P
 
2344
>       This provides additional query optimization possibilities.
 
2345
      </P
 
2346
></LI
 
2347
><LI
 
2348
><P
 
2349
>       Don't treat a composite type as sortable unless all its column types
 
2350
       are sortable (Tom Lane)
 
2351
      </P
 
2352
><P
 
2353
>       This avoids possible <SPAN
 
2354
CLASS="QUOTE"
 
2355
>"could not identify a comparison function"</SPAN
 
2356
>
 
2357
       failures at runtime, if it is possible to implement the query without
 
2358
       sorting.  Also, <TT
 
2359
CLASS="COMMAND"
 
2360
>ANALYZE</TT
 
2361
> won't try to use inappropriate
 
2362
       statistics-gathering methods for columns of such composite types.
 
2363
      </P
 
2364
></LI
2162
2365
></UL
2163
2366
><DIV
2164
2367
CLASS="SECT4"
2165
2368
><H4
2166
2369
CLASS="SECT4"
2167
2370
><A
2168
 
NAME="AEN106884"
 
2371
NAME="AEN106960"
2169
2372
>E.1.3.6.1. Casting</A
2170
2373
></H4
2171
2374
><P
2185
2388
></LI
2186
2389
><LI
2187
2390
><P
 
2391
>       Add support for casting from <TT
 
2392
CLASS="TYPE"
 
2393
>int4</TT
 
2394
> and <TT
 
2395
CLASS="TYPE"
 
2396
>int8</TT
 
2397
>
 
2398
       to <TT
 
2399
CLASS="TYPE"
 
2400
>numeric</TT
 
2401
> (Joey Adams)
 
2402
      </P
 
2403
></LI
 
2404
><LI
 
2405
><P
2188
2406
>        Allow casting a table's row type to the table's supertype if
2189
2407
        it's a typed table (Peter Eisentraut)
2190
2408
       </P
2200
2418
><H4
2201
2419
CLASS="SECT4"
2202
2420
><A
2203
 
NAME="AEN106894"
 
2421
NAME="AEN106975"
2204
2422
>E.1.3.6.2. <A
2205
2423
HREF="functions-xml.html"
2206
2424
><ACRONYM
2233
2451
        functions (Mike Fowler)
2234
2452
       </P
2235
2453
><P
2236
 
>        These are used for xpath matching.
 
2454
>        These are used for XPath matching.
2237
2455
       </P
2238
2456
></LI
2239
2457
><LI
2284
2502
><H3
2285
2503
CLASS="SECT3"
2286
2504
><A
2287
 
NAME="AEN106919"
 
2505
NAME="AEN107000"
2288
2506
>E.1.3.7. Functions</A
2289
2507
></H3
2290
2508
><P
2393
2611
>string_to_array()</CODE
2394
2612
></A
2395
2613
>
2396
 
         for <TT
2397
 
CLASS="LITERAL"
2398
 
>NULL</TT
2399
 
> processing control (Pavel Stehule)
 
2614
         for null value processing control (Pavel Stehule)
2400
2615
       </P
2401
2616
></LI
2402
2617
></UL
2405
2620
><H4
2406
2621
CLASS="SECT4"
2407
2622
><A
2408
 
NAME="AEN106956"
 
2623
NAME="AEN107036"
2409
2624
>E.1.3.7.1. Object Information Functions</A
2410
2625
></H4
2411
2626
><P
2423
2638
        function (Alvaro Herrera)
2424
2639
       </P
2425
2640
><P
2426
 
>        This function is used to obtain a human-readable string describing an
2427
 
        object, based on the <A
 
2641
>        This function is used to obtain a human-readable string describing
 
2642
        an object, based on the <A
2428
2643
HREF="catalog-pg-class.html"
2429
2644
><TT
2430
2645
CLASS="STRUCTNAME"
2431
2646
>pg_class</TT
2432
2647
></A
2433
 
> OID, object OID, and sub-object OID.  It can be used to
2434
 
        help interpret the contents of <A
 
2648
>
 
2649
        OID, object OID, and sub-object ID.  It can be used to help
 
2650
        interpret the contents of <A
2435
2651
HREF="catalog-pg-depend.html"
2436
2652
><TT
2437
2653
CLASS="STRUCTNAME"
2445
2661
>         Update comments for built-in operators and their underlying
2446
2662
         functions (Tom Lane)
2447
2663
       </P
 
2664
><P
 
2665
>        Functions that are meant to be used via an associated operator
 
2666
        are now commented as such.
 
2667
       </P
2448
2668
></LI
2449
2669
><LI
2450
2670
><P
2475
2695
></LI
2476
2696
><LI
2477
2697
><P
2478
 
>        Add fields to the <A
 
2698
>        Add columns to the <A
2479
2699
HREF="infoschema-sequences.html"
2480
2700
><TT
2481
2701
CLASS="STRUCTNAME"
2485
2705
        system view (Peter Eisentraut)
2486
2706
       </P
2487
2707
><P
2488
 
>        Previously, though the view existed, all of these view fields
2489
 
        were unimplemented.
 
2708
>        Previously, though the view existed, the columns about the
 
2709
        sequence parameters were unimplemented.
2490
2710
       </P
2491
2711
></LI
2492
2712
><LI
2514
2734
><H4
2515
2735
CLASS="SECT4"
2516
2736
><A
2517
 
NAME="AEN106989"
 
2737
NAME="AEN107070"
2518
2738
>E.1.3.7.2. Function and Trigger Creation</A
2519
2739
></H4
2520
2740
><P
2522
2742
><UL
2523
2743
><LI
2524
2744
><P
2525
 
>        Allow <A
 
2745
>        Support <A
2526
2746
HREF="sql-createtrigger.html"
2527
2747
><TT
2528
2748
CLASS="LITERAL"
2572
2792
><H3
2573
2793
CLASS="SECT3"
2574
2794
><A
2575
 
NAME="AEN107006"
 
2795
NAME="AEN107087"
2576
2796
>E.1.3.8. Server-Side Languages</A
2577
2797
></H3
2578
2798
><DIV
2580
2800
><H4
2581
2801
CLASS="SECT4"
2582
2802
><A
2583
 
NAME="AEN107008"
 
2803
NAME="AEN107089"
2584
2804
>E.1.3.8.1. <A
2585
2805
HREF="plpgsql.html"
2586
2806
>PL/pgSQL</A
2634
2854
><H4
2635
2855
CLASS="SECT4"
2636
2856
><A
2637
 
NAME="AEN107023"
 
2857
NAME="AEN107104"
2638
2858
>E.1.3.8.2. <A
2639
2859
HREF="plperl.html"
2640
2860
>PL/Perl</A
2681
2901
><H4
2682
2902
CLASS="SECT4"
2683
2903
><A
2684
 
NAME="AEN107037"
 
2904
NAME="AEN107118"
2685
2905
>E.1.3.8.3. <A
2686
2906
HREF="plpython.html"
2687
2907
>PL/Python</A
2755
2975
></LI
2756
2976
><LI
2757
2977
><P
 
2978
>         Add traceback information to PL/Python errors (Jan Urbanski)
 
2979
       </P
 
2980
></LI
 
2981
><LI
 
2982
><P
2758
2983
>         Report PL/Python errors from iterators with <TT
2759
2984
CLASS="LITERAL"
2760
2985
>PLy_elog</TT
2764
2989
></LI
2765
2990
><LI
2766
2991
><P
2767
 
>        <CODE
2768
 
CLASS="FUNCTION"
2769
 
>plpy.Fatal</CODE
2770
 
> now raises <TT
2771
 
CLASS="LITERAL"
2772
 
>FATAL</TT
2773
 
>, rather
2774
 
        than <TT
2775
 
CLASS="LITERAL"
2776
 
>ERROR</TT
2777
 
> (Jan Urbanski)
2778
 
       </P
2779
 
><P
2780
 
>        The old behavior was incorrect.
2781
 
       </P
2782
 
></LI
2783
 
><LI
2784
 
><P
2785
 
>        Overhaul of PL/Python (Jan Urbanski)
2786
 
       </P
2787
 
><P
2788
 
>        This includes exception support for Python 3.  **More detail?
 
2992
>        Fix exception handling with Python 3 (Jan Urbanski)
 
2993
       </P
 
2994
><P
 
2995
>        Exception classes were previously not available in
 
2996
        <TT
 
2997
CLASS="LITERAL"
 
2998
>plpy</TT
 
2999
> under Python 3.
2789
3000
       </P
2790
3001
></LI
2791
3002
></UL
2796
3007
><H3
2797
3008
CLASS="SECT3"
2798
3009
><A
2799
 
NAME="AEN107074"
 
3010
NAME="AEN107152"
2800
3011
>E.1.3.9. Client Applications</A
2801
3012
></H3
2802
3013
><P
2828
3039
><H4
2829
3040
CLASS="SECT4"
2830
3041
><A
2831
 
NAME="AEN107083"
 
3042
NAME="AEN107161"
2832
3043
>E.1.3.9.1. <A
2833
3044
HREF="app-psql.html"
2834
3045
><SPAN
2842
3053
><UL
2843
3054
><LI
2844
3055
><P
2845
 
>         Add the <TT
 
3056
>         Add <SPAN
 
3057
CLASS="APPLICATION"
 
3058
>psql</SPAN
 
3059
> command <TT
2846
3060
CLASS="LITERAL"
2847
3061
>\conninfo</TT
2848
 
> command to <SPAN
2849
 
CLASS="APPLICATION"
2850
 
>psql</SPAN
2851
 
>,
 
3062
>
2852
3063
         to show current connection information (David Christensen)
2853
3064
       </P
2854
3065
></LI
2878
3089
></LI
2879
3090
><LI
2880
3091
><P
2881
 
>        Add system table <TT
 
3092
>        Add <TT
2882
3093
CLASS="OPTION"
2883
3094
>S</TT
2884
 
> option to <SPAN
 
3095
> (<SPAN
 
3096
CLASS="QUOTE"
 
3097
>"system"</SPAN
 
3098
>) option to <SPAN
2885
3099
CLASS="APPLICATION"
2886
3100
>psql</SPAN
2887
 
>
 
3101
>'s
2888
3102
        <TT
2889
3103
CLASS="LITERAL"
2890
3104
>\dn</TT
2891
 
> (schemas) (Tom Lane)
 
3105
> (list schemas) command (Tom Lane)
2892
3106
       </P
2893
3107
><P
2894
3108
>        <TT
2917
3131
        cursor in the editor (Pavel Stehule)
2918
3132
       </P
2919
3133
><P
2920
 
>        This is passed to the editor using the
 
3134
>        This is passed to the editor according to the
2921
3135
        <TT
2922
3136
CLASS="ENVAR"
2923
3137
>EDITOR_LINENUMBER_SWITCH</TT
2924
 
> environment variable.
 
3138
> psql variable.
2925
3139
       </P
2926
3140
></LI
2927
3141
><LI
2942
3156
></LI
2943
3157
><LI
2944
3158
><P
2945
 
>        Make <SPAN
2946
 
CLASS="APPLICATION"
2947
 
>psql</SPAN
 
3159
>        Make <TT
 
3160
CLASS="LITERAL"
 
3161
>\d</TT
2948
3162
> distinguish between unique
2949
 
        indices and unique constraints (Josh Kupershmidt)
 
3163
        indexes and unique constraints (Josh Kupershmidt)
 
3164
       </P
 
3165
></LI
 
3166
><LI
 
3167
><P
 
3168
>        Make <TT
 
3169
CLASS="LITERAL"
 
3170
>\dt+</TT
 
3171
> report <CODE
 
3172
CLASS="FUNCTION"
 
3173
>pg_table_size</CODE
 
3174
>
 
3175
        instead of <CODE
 
3176
CLASS="FUNCTION"
 
3177
>pg_relation_size</CODE
 
3178
> when talking to 9.0 or
 
3179
        later servers (Bernd Helmle)
 
3180
       </P
 
3181
><P
 
3182
>        This is a more useful measure of table size, but note that it is
 
3183
        not identical to what was previously reported in the same display.
2950
3184
       </P
2951
3185
></LI
2952
3186
><LI
2962
3196
><H4
2963
3197
CLASS="SECT4"
2964
3198
><A
2965
 
NAME="AEN107125"
 
3199
NAME="AEN107210"
2966
3200
>E.1.3.9.2. <A
2967
3201
HREF="app-pgdump.html"
2968
3202
><SPAN
3026
3260
><H4
3027
3261
CLASS="SECT4"
3028
3262
><A
3029
 
NAME="AEN107144"
 
3263
NAME="AEN107229"
3030
3264
>E.1.3.9.3. <A
3031
3265
HREF="app-pg-ctl.html"
3032
3266
><SPAN
3060
3294
>        Improve <SPAN
3061
3295
CLASS="APPLICATION"
3062
3296
>pg_ctl</SPAN
 
3297
> start's <SPAN
 
3298
CLASS="QUOTE"
 
3299
>"wait"</SPAN
3063
3300
>
3064
 
        start's "wait" (<TT
 
3301
        (<TT
3065
3302
CLASS="OPTION"
3066
3303
>-w</TT
3067
 
>) mode to handle non-standard
3068
 
        port numbers, non-standard Unix-domain socket locations,
3069
 
        permission problems, and stale postmaster lock files (Bruce
3070
 
        Momjian)
 
3304
>) option (Bruce Momjian, Tom Lane)
 
3305
       </P
 
3306
><P
 
3307
>        The wait mode is now significantly more robust.  It will not get
 
3308
        confused by non-default postmaster port numbers, non-default
 
3309
        Unix-domain socket locations, permission problems, or stale
 
3310
        postmaster lock files.
3071
3311
       </P
3072
3312
></LI
3073
3313
><LI
3090
3330
><H3
3091
3331
CLASS="SECT3"
3092
3332
><A
3093
 
NAME="AEN107162"
 
3333
NAME="AEN107249"
3094
3334
>E.1.3.10. <SPAN
3095
3335
CLASS="APPLICATION"
3096
3336
>Development Tools</SPAN
3101
3341
><H4
3102
3342
CLASS="SECT4"
3103
3343
><A
3104
 
NAME="AEN107165"
 
3344
NAME="AEN107252"
3105
3345
>E.1.3.10.1. <A
3106
3346
HREF="libpq.html"
3107
3347
><SPAN
3155
3395
></LI
3156
3396
><LI
3157
3397
><P
3158
 
>        Allow libpq database clients to use Unix-domain sockets to
 
3398
>        Allow libpq database clients to
3159
3399
        check the user name of the server process using <A
3160
3400
HREF="libpq-connect.html#LIBPQ-CONNECT-REQUIREPEER"
3161
3401
><TT
3163
3403
>requirepeer</TT
3164
3404
></A
3165
3405
>
 
3406
        when connecting via Unix-domain sockets
3166
3407
        (Peter Eisentraut)
3167
3408
       </P
3168
3409
><P
3169
3410
>        <SPAN
3170
3411
CLASS="PRODUCTNAME"
3171
3412
>PostgreSQL</SPAN
3172
 
> already allowed servers to determine
3173
 
        the client user name via Unix-domain sockets.
 
3413
> already allowed servers to check
 
3414
        the client user name when connecting via Unix-domain sockets.
3174
3415
       </P
3175
3416
></LI
3176
3417
><LI
3192
3433
        to libpq (Bruce Momjian, Tom Lane)
3193
3434
       </P
3194
3435
><P
3195
 
>        The allow detection of the server's status without creating
3196
 
        a new session.
 
3436
>        These functions allow detection of the server's status without
 
3437
        trying to open a new session.
3197
3438
       </P
3198
3439
></LI
3199
3440
></UL
3203
3444
><H4
3204
3445
CLASS="SECT4"
3205
3446
><A
3206
 
NAME="AEN107195"
 
3447
NAME="AEN107282"
3207
3448
>E.1.3.10.2. <A
3208
3449
HREF="ecpg.html"
3209
3450
><SPAN
3217
3458
><UL
3218
3459
><LI
3219
3460
><P
3220
 
>         Allow ecpg to accept dynamic cursor names even in
 
3461
>         Allow ECPG to accept dynamic cursor names even in
3221
3462
         <TT
3222
3463
CLASS="LITERAL"
3223
3464
>WHERE CURRENT OF</TT
3232
3473
><H3
3233
3474
CLASS="SECT3"
3234
3475
><A
3235
 
NAME="AEN107203"
 
3476
NAME="AEN107290"
3236
3477
>E.1.3.11. Build Options</A
3237
3478
></H3
3238
3479
><P
3240
3481
><UL
3241
3482
><LI
3242
3483
><P
3243
 
>        Add <A
3244
 
HREF="extend-extensions.html#EXTENSION"
3245
 
>extensions</A
3246
 
> which simplify
3247
 
        packaging of additions to <SPAN
3248
 
CLASS="PRODUCTNAME"
3249
 
>PostgreSQL</SPAN
3250
 
> (Dimitri
3251
 
        Fontaine, Tom Lane)
 
3484
>        Use <TT
 
3485
CLASS="LITERAL"
 
3486
>+Olibmerrno</TT
 
3487
> compile flag with HP-UX C compilers
 
3488
        that accept it (Ibrar Ahmed)
3252
3489
       </P
3253
3490
><P
3254
 
>        This is controlled by the new <A
3255
 
HREF="sql-createextension.html"
3256
 
><TT
3257
 
CLASS="COMMAND"
3258
 
>CREATE</TT
3259
 
></A
3260
 
>/<A
3261
 
HREF="sql-alterextension.html"
3262
 
><TT
3263
 
CLASS="COMMAND"
3264
 
>ALTER</TT
3265
 
></A
3266
 
>/<A
3267
 
HREF="sql-dropextension.html"
3268
 
><TT
3269
 
CLASS="COMMAND"
3270
 
>DROP EXTENSION </TT
3271
 
></A
3272
 
>
3273
 
        command;  this replaces a more manual method of adding features
3274
 
        to <SPAN
3275
 
CLASS="PRODUCTNAME"
3276
 
>PostgreSQL</SPAN
3277
 
>.
 
3491
>        This avoids possible misbehavior of math library calls on recent
 
3492
        HP platforms.
3278
3493
       </P
3279
3494
></LI
3280
3495
></UL
3283
3498
><H4
3284
3499
CLASS="SECT4"
3285
3500
><A
3286
 
NAME="AEN107218"
 
3501
NAME="AEN107297"
3287
3502
>E.1.3.11.1. Makefiles</A
3288
3503
></H4
3289
3504
><P
3294
3509
>        Improved parallel make support (Peter Eisentraut)
3295
3510
       </P
3296
3511
><P
3297
 
>        This allows for faster compiles.  Also, make <TT
3298
 
CLASS="OPTION"
3299
 
>-k</TT
 
3512
>        This allows for faster compiles.  Also, <TT
 
3513
CLASS="LITERAL"
 
3514
>make -k</TT
3300
3515
>
3301
 
        and make <TT
3302
 
CLASS="OPTION"
3303
 
>-q</TT
3304
 
> now work properly in a parallel build.
 
3516
        now works more consistently.
3305
3517
       </P
3306
3518
></LI
3307
3519
><LI
3322
3534
>        This is necessary because of the parallel-make improvements.
3323
3535
       </P
3324
3536
></LI
 
3537
><LI
 
3538
><P
 
3539
>        Add <TT
 
3540
CLASS="LITERAL"
 
3541
>make maintainer-check</TT
 
3542
> target
 
3543
        (Peter Eisentraut)
 
3544
       </P
 
3545
><P
 
3546
>        This target performs various source code checks that are not
 
3547
        appropriate for either the build or the regression tests.  Currently:
 
3548
        duplicate_oids, SGML syntax and tabs check, NLS syntax check.
 
3549
       </P
 
3550
></LI
 
3551
><LI
 
3552
><P
 
3553
>        Support <TT
 
3554
CLASS="LITERAL"
 
3555
>make check</TT
 
3556
> in <TT
 
3557
CLASS="FILENAME"
 
3558
>contrib</TT
 
3559
>
 
3560
        (Peter Eisentraut)
 
3561
       </P
 
3562
><P
 
3563
>        Formerly only <TT
 
3564
CLASS="LITERAL"
 
3565
>make installcheck</TT
 
3566
> worked, but now
 
3567
        there is support for testing in a temporary installation.
 
3568
        The top-level <TT
 
3569
CLASS="LITERAL"
 
3570
>make check-world</TT
 
3571
> target now includes
 
3572
        testing <TT
 
3573
CLASS="FILENAME"
 
3574
>contrib</TT
 
3575
> this way.
 
3576
       </P
 
3577
></LI
3325
3578
></UL
3326
3579
></DIV
3327
3580
><DIV
3329
3582
><H4
3330
3583
CLASS="SECT4"
3331
3584
><A
3332
 
NAME="AEN107232"
 
3585
NAME="AEN107322"
3333
3586
>E.1.3.11.2. Windows</A
3334
3587
></H4
3335
3588
><P
3365
3618
></LI
3366
3619
><LI
3367
3620
><P
3368
 
>        Enable building with the Mingw64 compiler (Andrew Dunstan)
 
3621
>        Enable building with the MinGW64 compiler (Andrew Dunstan)
3369
3622
       </P
3370
3623
><P
3371
3624
>        This allows building 64-bit Windows binaries even on non-Windows
3372
 
        platforms with cross-compiling.
 
3625
        platforms via cross-compiling.
3373
3626
       </P
3374
3627
></LI
3375
3628
></UL
3380
3633
><H3
3381
3634
CLASS="SECT3"
3382
3635
><A
3383
 
NAME="AEN107247"
 
3636
NAME="AEN107337"
3384
3637
>E.1.3.12. Source Code</A
3385
3638
></H3
3386
3639
><P
3388
3641
><UL
3389
3642
><LI
3390
3643
><P
 
3644
>        Revise the API for GUC variable assign hooks (Tom Lane)
 
3645
       </P
 
3646
><P
 
3647
>        The previous functions of assign hooks are now split between check
 
3648
        hooks and assign hooks, where the former can fail but the latter
 
3649
        shouldn't.  This change will impact add-on modules that define custom
 
3650
        GUC parameters.
 
3651
       </P
 
3652
></LI
 
3653
><LI
 
3654
><P
3391
3655
>         Add latches to the source code to wait for events (Heikki
3392
3656
         Linnakangas)
3393
3657
       </P
3400
3664
></LI
3401
3665
><LI
3402
3666
><P
3403
 
>         Add missing get_{object}_oid() functions, for consistency
 
3667
>         Add missing <CODE
 
3668
CLASS="FUNCTION"
 
3669
>get_<TT
 
3670
CLASS="REPLACEABLE"
 
3671
><I
 
3672
>object</I
 
3673
></TT
 
3674
>_oid()</CODE
 
3675
> functions, for consistency
3404
3676
         (Robert Haas)
3405
3677
       </P
3406
3678
></LI
3408
3680
><P
3409
3681
>         Improve ability to use C++ compilers for <A
3410
3682
HREF="xfunc-c.html"
3411
 
>backend compiles</A
 
3683
>compiling add-on modules</A
3412
3684
> by removing
3413
 
         conflicting keywords (Tom Lane)
 
3685
         conflicting key words (Tom Lane)
3414
3686
       </P
3415
3687
></LI
3416
3688
><LI
3483
3755
><H4
3484
3756
CLASS="SECT4"
3485
3757
><A
3486
 
NAME="AEN107280"
 
3758
NAME="AEN107375"
3487
3759
>E.1.3.12.1. Server Hooks</A
3488
3760
></H4
3489
3761
><P
3514
3786
><H3
3515
3787
CLASS="SECT3"
3516
3788
><A
3517
 
NAME="AEN107289"
 
3789
NAME="AEN107384"
3518
3790
>E.1.3.13. Contrib</A
3519
3791
></H3
3520
3792
><P
3524
3796
><P
3525
3797
>       Modify <TT
3526
3798
CLASS="FILENAME"
3527
 
>/contrib</TT
 
3799
>contrib</TT
3528
3800
> modules and stored procedure
3529
3801
       languages to install via the new <A
3530
 
HREF="extend-extensions.html#EXTENSION"
 
3802
HREF="extend-extensions.html"
3531
3803
>extension</A
3532
3804
> mechanism (Tom Lane,
3533
3805
       Dimitri Fontaine)
3534
3806
      </P
3535
 
><P
3536
 
>       This replaces a more manual method of installation.
3537
 
      </P
3538
3807
></LI
3539
3808
><LI
3540
3809
><P
3587
3856
></LI
3588
3857
><LI
3589
3858
><P
3590
 
>        Allow <A
 
3859
>        Fix <A
3591
3860
HREF="fuzzystrmatch.html"
3592
3861
><TT
3593
3862
CLASS="FILENAME"
3597
3866
        <CODE
3598
3867
CLASS="FUNCTION"
3599
3868
>levenshtein()</CODE
3600
 
> function handle multi-byte characters
 
3869
> function to handle multibyte characters
3601
3870
        (Alexander Korotkov)
3602
3871
      </P
3603
3872
></LI
3652
3921
>contrib/intarray</TT
3653
3922
></A
3654
3923
>
3655
 
       to work properly on multi-dimensional arrays (Tom Lane)
 
3924
       to work properly on multidimensional arrays (Tom Lane)
3656
3925
      </P
3657
3926
></LI
3658
3927
><LI
3739
4008
><H4
3740
4009
CLASS="SECT4"
3741
4010
><A
3742
 
NAME="AEN107357"
 
4011
NAME="AEN107451"
3743
4012
>E.1.3.13.1. Security</A
3744
4013
></H4
3745
4014
><P
3806
4075
><H4
3807
4076
CLASS="SECT4"
3808
4077
><A
3809
 
NAME="AEN107377"
 
4078
NAME="AEN107471"
3810
4079
>E.1.3.13.2. Performance</A
3811
4080
></H4
3812
4081
><P
3889
4158
><H4
3890
4159
CLASS="SECT4"
3891
4160
><A
3892
 
NAME="AEN107403"
 
4161
NAME="AEN107497"
3893
4162
>E.1.3.13.3. Fsync Testing</A
3894
4163
></H4
3895
4164
><P
3957
4226
><H3
3958
4227
CLASS="SECT3"
3959
4228
><A
3960
 
NAME="AEN107424"
 
4229
NAME="AEN107518"
3961
4230
>E.1.3.14. Documentation</A
3962
4231
></H3
3963
4232
><P
4008
4277
       (Josh Berkus)
4009
4278
      </P
4010
4279
><P
4011
 
>       This parameter shows table storage options.
 
4280
>       This function shows table storage options in a readable form.
4012
4281
      </P
4013
4282
></LI
4014
4283
><LI
4015
4284
><P
4016
 
>       Document that it is possible to access all composite fields
4017
 
       using <A
 
4285
>       Document that it is possible to access all composite type
 
4286
       fields using <A
4018
4287
HREF="sql-expressions.html#FIELD-SELECTION"
4019
4288
><TT
4020
4289
CLASS="LITERAL"
4021
 
>(compositeval).*
4022
 
       syntax</TT
 
4290
>(compositeval).*</TT
4023
4291
></A
4024
 
> (Peter Eisentraut)
 
4292
>
 
4293
       syntax (Peter Eisentraut)
4025
4294
      </P
4026
4295
></LI
4027
4296
><LI