release-14.zh.md 53.3 KB
Newer Older
李少辉-开发者's avatar
李少辉-开发者 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228
## E.3. Release 14

[E.3.1. Overview](release-14.html#id-1.11.6.7.3)[E.3.2. Migration to Version 14](release-14.html#id-1.11.6.7.4)[E.3.3. Changes](release-14.html#id-1.11.6.7.5)[E.3.4. Acknowledgments](release-14.html#RELEASE-14-ACKNOWLEDGEMENTS)

**Release date:**2021-09-30

### E.3.1. Overview

PostgreSQL 14 contains many new features and enhancements, including:

-   Stored procedures can now return data via`OUT`parameters.

-   The SQL-standard`SEARCH`and`CYCLE`options for common table expressions have been implemented.

-   Subscripting can now be applied to any data type for which it is a useful notation, not only arrays. In this release, the`jsonb`and`hstore`types have gained subscripting operators.

-   Range types have been extended by adding multiranges, allowing representation of noncontiguous data ranges.

-   Numerous performance improvements have been made for parallel queries, heavily-concurrent workloads, partitioned tables, logical replication, and vacuuming.

-   B-tree index updates are managed more efficiently, reducing index bloat.

-   `VACUUM`automatically becomes more aggressive, and skips inessential cleanup, if the database starts to approach a transaction ID wraparound condition.

-   Extended statistics can now be collected on expressions, allowing better planning results for complex queries.

-   libpq now has the ability to pipeline multiple queries, which can boost throughput over high-latency connections.

    The above items and other new features of PostgreSQL 14 are explained in more detail in the sections below.

### E.3.2. Migration to Version 14

A dump/restore using[pg_dumpall](app-pg-dumpall.html)or use of[pg_upgrade](pgupgrade.html)or logical replication is required for those wishing to migrate data from any previous release. See[Section 19.6](upgrading.html)for general information on migrating to new major releases.

Version 14 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

-   User-defined objects that reference certain built-in array functions along with their argument types must be recreated (Tom Lane)

    Specifically,[`array_append()`](functions-array.html),`array_prepend()`,`array_cat()`,`array_position()`,`array_positions()`,`array_remove()`,`array_replace()`, and[`width_bucket()`](functions-math.html)用来拿`任意数组`论据,但现在采取`任何兼容数组`.因此,用户定义的对象(如引用这些数组函数签名的聚合和运算符)必须在升级之前删除,并在升级完成后重新创建。

-   删除不推荐使用的包含操作符`@``~`用于内置[几何数据类型](functions-geometry.html)和贡献模块[立方体](cube.html),[hstore](hstore.html),[数组内](intarray.html), 和[](seg.html)(贾斯汀·普里兹比)

    更一致的命名`<@`和`@>`已经推荐了很多年。

-   使固定[`to_tsquery()`](functions-textsearch.html)`websearch_to_tsquery()`正确解析包含丢弃标记的查询文本 (Alexander Korotkov)

    某些丢弃的标记,如下划线,导致这些函数的输出产生不正确的 tsquery 输出,例如,两者`websearch_to_tsquery('"pg_class pg"')`和`to_tsquery('pg_class <-> pg')`用来输出`('pg' & 'class') <-> 'pg'`,但现在都输出`'pg' <-> '类' <-> 'pg'`.

-   使固定[`websearch_to_tsquery()`](functions-textsearch.html)正确解析引号中的多个相邻丢弃标记 (Alexander Korotkov)

    以前,包含多个相邻丢弃标记的引用文本被视为多个标记,导致不正确的 tsquery 输出,例如,`websearch_to_tsquery('"aaa: bbb"')`用来输出`'aaa' <2> 'bbb'`,但现在输出`'aaa' <-> 'bbb'`.

-   改变[`提炼()`](functions-datetime.html)返回类型`数字`代替`浮动8`(彼得·艾森特劳特)

    这避免了某些用法中的精度损失问题。旧的行为仍然可以通过使用旧的底层函数来获得`日期部分()`.

    还,`摘录(日期)`现在对不属于`日期`数据类型。

-   改变[`var_samp()`](functions-aggregate.html)`stddev_samp()`当输入为单个 NaN 值时,使用数字参数返回 NULL (Tom Lane)

    之前`钠`被退回。

-   返回 false 为[`has_column_privilege()`](functions-info.html)使用属性号时检查不存在或删除的列 (Joe Conway)

    以前,此类属性编号会返回无效列错误。

-   修复无限处理[窗口函数](sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS)范围(汤姆·莱恩)

    以前的窗框子句如`'inf' 前面和 'inf' 下面`返回不正确的结果。

-   删除阶乘运算符`!``!!`, 以及函数`numeric_fac()`(马克·迪尔格)

    这[`阶乘()`](functions-math.html)功能仍受支持。

-   不允许`阶乘()`负数 (Peter Eisentraut)

    以前此类案例返回 1。

-   删除对[后缀](sql-createoperator.html)(右一元)运算符(Mark Dilger)

    皮克\_转储和 pg\_如果 postfix 运算符被转储,升级将发出警告。

-   允许`\D``\W`匹配换行符的简写[正则表达式](functions-matching.html#FUNCTIONS-POSIX-REGEXP)换行敏感模式 (Tom Lane)

    以前它们在此模式下不匹配换行符,但这与其他常见正则表达式引擎的行为不一致。`[^[:数字:]]`要么`[^[:word:]]`可用于获取旧行为。

-   匹配正则表达式时忽略约束[反向引用](functions-matching.html#POSIX-ESCAPE-SEQUENCES)(汤姆·莱恩)

    例如,在`(^\d+).*\1`, 这`^`约束应该在字符串的开头应用,但不是在匹配时`\1`.

-   不允许`\w`作为正则表达式字符类中的范围开始或结束 (Tom Lane)

    这以前是允许的,但产生了意想不到的结果。

-   要求[自定义服务器参数](runtime-config-custom.html)名称仅使用在不带引号的 SQL 标识符中有效的字符 (Tom Lane)

-   更改默认值[密码\_加密](runtime-config-connection.html#GUC-PASSWORD-ENCRYPTION)服务器参数为`scram-sha-256`(彼得·艾森特劳特)

    以前是`md5`.除非更改此服务器设置或以 MD5 格式指定密码,否则所有新密码都将存储为 SHA256。此外,遗留的(和未记录的)类似布尔值的值是以前的同义词`md5`不再被接受。

-   删除服务器参数`vacuum_cleanup_index_scale_factor`(彼得·吉根)

    从 PostgreSQL 版本 13.3 开始,此设置被忽略。

-   删除服务器参数`operator_precedence_warning`(汤姆·莱恩)

    此设置用于警告应用程序有关 PostgreSQL 9.5 更改。

-   大修规范`客户证书`[`pg_hba.conf`](auth-pg-hba-conf.html)(堀口京太郎)

    价值观`1`/`0`/`不验证`不再支持;只有字符串`验证-ca`和`验证完整`可以使用。还有,不允许`验证-ca`如果启用了证书身份验证,因为证书需要`验证完整`检查。

-   删除对[SSL](runtime-config-connection.html#RUNTIME-CONFIG-CONNECTION-SSL)压缩(丹尼尔·古斯塔夫森、迈克尔·帕奎尔)

    这在以前的 PostgreSQL 版本中已经默认禁用,大多数现代 OpenSSL 和 TLS 版本不再支持它。

-   删除服务器和[](libpq.html)支持版本 2[有线协议](protocol.html)(海基·林纳坎加斯)

    这是最后一次在 PostgreSQL 7.3(2002 年发布)中用作默认值。

-   不允许在[`创建/删除语言`](sql-createlanguage.html)命令(彼得·艾森特劳特)

-   除掉[复合类型](xfunc-sql.html#XFUNC-SQL-COMPOSITE-FUNCTIONS)以前为序列和吐司表创建的 (Tom Lane)

-   处理双引号[心电图](ecpg.html)SQL 命令字符串正确 (Tom Lane)

    之前`'abc''定义'`被传递到服务器作为`'abc'定义'`, 和`“ABC”“定义”`被通过了`“ABC”定义`,导致语法错误。

-   防止收容操作员(`<@``@>`) 为了[数组内](intarray.html)从使用 GiST 索引 (Tom Lane)

    以前需要完整的 GiST 索引扫描,所以只需避免这种情况并扫描堆,这样会更快。应删除为此目的创建的索引。

-   删除贡献程序 pg_standby (Justin Pryzby)

-   Prevent[tablefunc](tablefunc.html)'s function`normal_rand()`from accepting negative values (Ashutosh Bapat)

    Negative values produced undesirable results.

### E.3.3. Changes

Below you will find a detailed account of the changes between PostgreSQL 14 and the previous major release.

#### E.3.3.1. Server

-   Add predefined roles[`pg_read_all_data`](predefined-roles.html)and`pg_write_all_data`(Stephen Frost)

    These non-login roles can be used to give read or write permission to all tables, views, and sequences.

-   Add predefined role[`pg_database_owner`](predefined-roles.html)that contains only the current database's owner (Noah Misch)

    This is especially useful in template databases.

-   Remove temporary files after backend crashes (Euler Taveira)

    Previously, such files were retained for debugging purposes. If necessary, deletion can be disabled with the new server parameter[remove_temp_files_after\_碰撞](runtime-config-developer.html#GUC-REMOVE-TEMP-FILES-AFTER-CRASH).

-   如果客户端断开连接,则允许取消长时间运行的查询 (Sergey Cherkashin, Thomas Munro)

    服务器参数[客户\_联系\_查看\_间隔](runtime-config-connection.html#GUC-CLIENT-CONNECTION-CHECK-INTERVAL)允许控制是否检查内部查询的连接丢失。(这在 Linux 和一些其他操作系统上受支持。)

-   添加一个可选的超时参数到[`pg_terminate_backend()`](functions-admin.html#FUNCTIONS-ADMIN-SIGNAL)(马格努斯·哈根德)

-   允许始终将宽元组添加到几乎为空的堆页面(John Naylor,Floris van Nee)

    以前插入的元组会超过页面的[填充因子](sql-createtable.html)而是添加到新页面。

-   在 SSL 连接数据包中添加服务器名称指示 (SNI) (Peter Eisentraut)

    这可以通过关闭客户端连接选项来禁用[`sslsni`](libpq-connect.html#LIBPQ-PARAMKEYWORDS).

##### E.3.3.1.1。[吸尘](routine-vacuuming.html)

-   当可移动索引条目的数量微不足道时,允许清理以跳过索引清理(Masahiko Sawada,Peter Geoghegan)

    真空参数[`INDEX_CLEANUP`](sql-vacuum.html)有一个新的默认值`汽车`启用此优化。

-   允许真空更急切地将已删除的 btree 页面添加到可用空间映射 (Peter Geoghegan)

    以前,vacuum 只能将页面添加到被之前的vacuum 标记为已删除的可用空间映射中。

-   允许真空回收未使用的尾随堆行指针使用的空间 (Matthias van de Meent, Peter Geoghegan)

-   允许真空在最小锁定索引操作期间更积极地删除死行 (Álvaro Herrera)

    具体来说,`并发创建索引`和`同时重新索引`不再限制其他关系的死排移除。

-   加快清理具有许多关系的数据库(Tatsuhito Kasahara)

-   减少默认值[真空\_成本\_页\_错过](runtime-config-resource.html#GUC-VACUUM-COST-PAGE-MISS)更好地反映当前的硬件能力 (Peter Geoghegan)

-   添加跳过 TOAST 表清理的功能 (Nathan Bossart)

    [`真空`](sql-vacuum.html)现在有一个`PROCESS_TOAST`可以设置为 false 以禁用 TOAST 处理的选项,以及[真空数据库](app-vacuumdb.html)有一个`--no-process-toast`选项。

-[`复制冻结`](sql-copy.html)适当更新页面可见性位(Anastasia Lubennikova、Pavan Deolasee、Jeff Janes)

-   如果表靠近 xid 或 multixact 环绕,则使真空操作更加激进(Masahiko Sawada,Peter Geoghegan)

    这是由[真空\_故障保护\_年龄](runtime-config-client.html#GUC-VACUUM-FAILSAFE-AGE)和[真空\_多方位\_故障保护\_年龄](runtime-config-client.html#GUC-VACUUM-MULTIXACT-FAILSAFE-AGE).

-   在事务 id 和多事务环绕之前增加警告时间和硬限制 (Noah Misch)

    这应该会减少在未发出有关环绕的警告的情况下发生故障的可能性。

-   将每个索引信息添加到[自动真空记录输出](runtime-config-logging.html#GUC-LOG-AUTOVACUUM-MIN-DURATION)(泽田正彦)

##### E.3.3.1.2。[分区](ddl-partitioning.html)

-   提高具有许多分区的分区表的更新和删除性能(Amit Langote,Tom Lane)

    这种变化极大地减少了规划器在这种情况下的开销,并且还允许对分区表的更新/删除使用执行时分区修剪。

-   允许分区[分离的](sql-altertable.html)in a non-blocking manner (Álvaro Herrera)

    The syntax is`ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY`, and`FINALIZE`.

-   Ignore`COLLATE`clauses in partition boundary values (Tom Lane)

    Previously any such clause had to match the collation of the partition key; but it's more consistent to consider that it's automatically coerced to the collation of the partition key.

##### E.3.3.1.3. Indexes

-   Allow btree index additions to[remove expired index entries](btree-implementation.html#BTREE-DELETION)to prevent page splits (Peter Geoghegan)

    This is particularly helpful for reducing index bloat on tables whose indexed columns are frequently updated.

-   Allow[BRIN](brin.html)indexes to record multiple min/max values per range (Tomas Vondra)

    This is useful if there are groups of values in each page range.

-   Allow BRIN indexes to use bloom filters (Tomas Vondra)

    This allows BRIN indexes to be used effectively with data that is not well-localized in the heap.

-   Allow some[GiST](gist.html)indexes to be built by presorting the data (Andrey Borodin)

    Presorting happens automatically and allows for faster index creation and smaller indexes.

-   Allow[SP-GiST](spgist.html)indexes to contain`INCLUDE`'d columns (Pavel Borisov)

##### E.3.3.1.4. Optimizer

-   Allow hash lookup for`IN`clauses with many constants (James Coleman, David Rowley)

    Previously the code always sequentially scanned the list of values.

-   Increase the number of places[extended statistics](planner-stats.html#PLANNER-STATS-EXTENDED)can be used for`OR`clause estimation (Tomas Vondra, Dean Rasheed)

-   Allow extended statistics on expressions (Tomas Vondra)

    This allows statistics on a group of expressions and columns, rather than only columns like previously. System view[`pg_stats_ext_exprs`](view-pg-stats-ext-exprs.html)reports such statistics.

-   Allow efficient heap scanning of a range of[`TIDs`](datatype-oid.html#DATATYPE-OID-TABLE)(Edmund Horner, David Rowley)

    Previously a sequential scan was required for non-equality`TID`specifications.

-   Fix[`EXPLAIN CREATE TABLE AS`](sql-explain.html)and`EXPLAIN CREATE MATERIALIZED VIEW`to honor`IF NOT EXISTS`(Bharath Rupireddy)

    Previously, if the object already existed,`EXPLAIN`would fail.

##### E.3.3.1.5. General Performance

-   Improve the speed of computing MVCC[visibility snapshots](mvcc.html)on systems with many CPUs and high session counts (Andres Freund)

    This also improves performance when there are many idle sessions.

-   Add executor method to memoize results from the inner side of a nested-loop join (David Rowley)

    This is useful if only a small percentage of rows is checked on the inner side. It can be disabled via server parameter[enable_memoize](runtime-config-query.html#GUC-ENABLE-MEMOIZE).

-   Allow[window functions](functions-window.html)to perform incremental sorts (David Rowley)

-   Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley)

    This was done by allocating blocks in groups to[parallel workers](runtime-config-resource.html#GUC-MAX-PARALLEL-WORKERS).

-   Allow a query referencing multiple[foreign tables](sql-createforeigntable.html)to perform foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita)

    [postgres_fdw](postgres-fdw.html)supports this type of scan if`async_capable`is set.

-   Allow[analyze](routine-vacuuming.html#VACUUM-FOR-STATISTICS)to do page prefetching (Stephen Frost)

    This is controlled by[maintenance_io_concurrency](runtime-config-resource.html#GUC-MAINTENANCE-IO-CONCURRENCY).

-   Improve performance of[regular expression](functions-matching.html#FUNCTIONS-POSIX-REGEXP)searches (Tom Lane)

-   Dramatically improve Unicode normalization performance (John Naylor)

    This speeds[`normalize()`](functions-string.html)and`IS NORMALIZED`.

-   Add ability to use[LZ4 compression](sql-createtable.html)on TOAST data (Dilip Kumar)

    This can be set at the column level, or set as a default via server parameter[default_toast_compression](runtime-config-client.html#GUC-DEFAULT-TOAST-COMPRESSION). The server must be compiled with[`--with-lz4`](install-procedure.html#CONFIGURE-OPTIONS-FEATURES)to support this feature. The default setting is still pglz.

##### E.3.3.1.6. Monitoring

-   If server parameter[计算\_询问\_id](runtime-config-statistics.html#GUC-COMPUTE-QUERY-ID)启用,显示查询ID[`pg_stat_activity`](monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW),[`详细解释`](sql-explain.html),[csv日志](runtime-config-logging.html),并且可选地在[日志\_线\_字首](runtime-config-logging.html#GUC-LOG-LINE-PREFIX)(朱利安·鲁豪)

    还将显示由扩展程序计算的查询 ID。

-   改进日志记录[自动真空](routine-vacuuming.html#AUTOVACUUM)和自动分析(Stephen Frost,Jakub Wartak)

    这会报告自动清空和自动分析的 I/O 时序,如果[追踪\_io\_定时](runtime-config-statistics.html#GUC-TRACK-IO-TIMING)已启用。此外,报告缓冲区读取率和脏率以进行自动分析。

-   将有关客户端提供的原始用户名的信息添加到[log_connections](runtime-config-logging.html#GUC-LOG-CONNECTIONS)(Jacob Champion)

##### E.3.3.1.7. System Views

-   Add system view[`pg_stat_progress_copy`](progress-reporting.html#COPY-PROGRESS-REPORTING)to report`COPY`progress (Josef Šimánek, Matthias van de Meent)

-   Add system view[`pg_stat_wal`](monitoring-stats.html#MONITORING-PG-STAT-WAL-VIEW)to report WAL activity (Masahiro Ikeda)

-   Add system view[`pg_stat_replication_slots`](monitoring-stats.html#MONITORING-PG-STAT-REPLICATION-SLOTS-VIEW)to report replication slot activity (Masahiko Sawada, Amit Kapila, Vignesh C)

    The function[`pg_stat_reset_replication_slot()`](monitoring-stats.html#MONITORING-STATS-FUNCTIONS)resets slot statistics.

-   Add system view[`pg_backend_memory_contexts`](view-pg-backend-memory-contexts.html)to report session memory usage (Atsushi Torikoshi, Fujii Masao)

-   Add function[`pg_log_backend_memory_contexts()`](functions-admin.html#FUNCTIONS-ADMIN-SIGNAL)to output the memory contexts of arbitrary backends (Atsushi Torikoshi)

-   Add session statistics to the[`pg_stat_database`](monitoring-stats.html#MONITORING-PG-STAT-DATABASE-VIEW)system view (Laurenz Albe)

-   Add columns to[`pg_prepared_statements`](view-pg-prepared-statements.html)to report generic and custom plan counts (Atsushi Torikoshi, Kyotaro Horiguchi)

-   Add lock wait start time to[`pg_locks`](view-pg-locks.html)(Atsushi Torikoshi)

-   Make the archiver process visible in`pg_stat_activity`(Kyotaro Horiguchi)

-   Add wait event[`WalReceiverExit`](monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW)to report WAL receiver exit wait time (Fujii Masao)

-   Implement information schema view[`routine_column_usage`](infoschema-routine-column-usage.html)to track columns referenced by function and procedure default expressions (Peter Eisentraut)

##### E.3.3.1.8. Authentication

-   Allow an SSL certificate's distinguished name (DN) to be matched for client certificate authentication (Andrew Dunstan)

    The new[`pg_hba.conf`](auth-pg-hba-conf.html)option`clientname=DN`allows comparison with certificate attributes beyond the`CN`and can be combined with ident maps.

-   Allow`pg_hba.conf`and[`pg_ident.conf`](auth-username-maps.html)records to span multiple lines (Fabien Coelho)

    A backslash at the end of a line allows record contents to be continued on the next line.

-   Allow the specification of a certificate revocation list (CRL) directory (Kyotaro Horiguchi)

    This is controlled by server parameter[ssl_crl_dir](runtime-config-connection.html#GUC-SSL-CRL-DIR)and libpq connection option[sslcrldir](libpq-connect.html#LIBPQ-CONNECT-SSLCRLDIR). Previously only single CRL files could be specified.

-   Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart)

##### E.3.3.1.9. Server Configuration

-   Add server parameter[idle_session_timeout](runtime-config-client.html#GUC-IDLE-SESSION-TIMEOUT)to close idle sessions (Li Japin)

    This is similar to[idle_in_transaction_session_timeout](runtime-config-client.html#GUC-IDLE-IN-TRANSACTION-SESSION-TIMEOUT).

-   Change[checkpoint\_完成\_目标](runtime-config-wal.html#GUC-CHECKPOINT-COMPLETION-TARGET)默认为 0.9(斯蒂芬弗罗斯特)

    之前的默认值为 0.5。

-   允许`%P`[日志\_线\_字首](runtime-config-logging.html#GUC-LOG-LINE-PREFIX)报告并行工作人员的并行组长的 PID (Justin Pryzby)

-   允许[unix\_插座\_目录](runtime-config-connection.html#GUC-UNIX-SOCKET-DIRECTORIES)将路径指定为单独的、逗号分隔的引号字符串 (Ian Lawrence Barwick)

    以前,所有路径都必须在单引号字符串中。

-   允许动态共享内存的启动分配 (Thomas Munro)

    这是由[分钟\_动态的\_共享\_记忆力](runtime-config-resource.html#GUC-MIN-DYNAMIC-SHARED-MEMORY).这样可以更多地使用大型页面。

-   添加服务器参数[巨大的\_页\_大小](runtime-config-resource.html#GUC-HUGE-PAGE-SIZE)控制Linux上使用的巨大页面的大小(Odin Ugedal)

#### E.3.3.2。流式复制和恢复

-   允许备用服务器通过[pg\_重绕](app-pgrewind.html)(Heikki Linnakangas)

-   允许[恢复\_命令](runtime-config-wal.html#GUC-RESTORE-COMMAND)服务器重新加载期间要更改的设置(Sergei Kornilov)

    你也可以设置`恢复命令`到空字符串并重新加载,以强制恢复仅从[`普格沃尔`](storage-file-layout.html)目录

-   添加服务器参数[日志\_恢复\_冲突\_等待](runtime-config-logging.html#GUC-LOG-RECOVERY-CONFLICT-WAITS)报告恢复冲突等待时间长(Bertrand Drouvot,Masahiko Sawada)

-   如果主服务器更改其参数以防止在备用服务器上重播,则暂停热备用服务器上的恢复 (Peter Eisentraut)

    以前备用服务器会立即关闭。

-   添加功能[`pg_get_wal_replay_pause_state()`](functions-admin.html#FUNCTIONS-RECOVERY-CONTROL)报告恢复状态 (Dilip Kumar)

    它提供了比[`pg_is_wal_replay_paused()`](functions-admin.html#FUNCTIONS-RECOVERY-CONTROL),它仍然存在。

-   添加新的只读服务器参数[在\_热的\_支持](runtime-config-preset.html#GUC-IN-HOT-STANDBY)(哈里巴布·科米、格雷格·南卡罗、汤姆·莱恩)

    这允许客户端轻松检测它们是否连接到热备用服务器。

-   在具有大量共享缓冲区的集群上恢复期间快速截断小表 (Kirk Jamison)

-   在 Linux 上的崩溃恢复开始时允许文件系统同步 (Thomas Munro)

    默认情况下,PostgreSQL 在崩溃恢复开始时打开并 fsync 数据库集群中的每个数据文件。新设定,[恢复\_在里面\_同步\_方法](runtime-config-error-handling.html#GUC-RECOVERY-INIT-SYNC-METHOD)`=同步文件`,而是同步集群使用的每个文件系统。这允许在具有许多数据库文件的系统上更快地恢复。

-   添加功能[`pg_xact_commit_timestamp_origin()`](functions-info.html)返回指定事务的提交时间戳和复制源(Movead Li)

-   将复制源添加到返回的记录中[`pg_last_committed_xact()`](functions-info.html)(移动李)

-   允许复制[原点函数](functions-admin.html#FUNCTIONS-REPLICATION)使用标准功能权限控件进行控制 (Martín Marqués)

    以前这些功能只能由超级用户执行,这仍然是默认设置。

##### E.3.3.2.1。[逻辑复制](logical-replication.html)

-   允许逻辑复制向订阅者传输长时间的正在进行的事务(Dilip Kumar、Amit Kapila、Ajin Cherian、Tomas Vondra、Nikhil Sontakke、Stas Kelvich)

    以前的交易超过[合乎逻辑的\_解码\_工作\_内存](runtime-config-resource.html#GUC-LOGICAL-DECODING-WORK-MEM)被写入磁盘直到事务完成。

-   增强逻辑复制 API 以允许流式处理大型正在进行的事务(Tomas Vondra、Dilip Kumar、Amit Kapila)

    输出函数以[`溪流`](logicaldecoding-output-plugin.html#LOGICALDECODING-OUTPUT-PLUGIN-STREAM-START).测试\_解码也支持这些。

-   在逻辑复制中的表同步期间允许多个事务 (Peter Smith, Amit Kapila, Takamichi Osumi)

-   立即 WAL-log 子事务和顶级`XID`协会(Tomas Vondra、Dilip Kumar、Amit Kapila)

    这对于逻辑解码很有用。

-   增强逻辑解码 API 以处理两阶段提交(Ajin Cherian、Amit Kapila、Nikhil Sontakke、Stas Kelvich)

    这是通过控制[`pg_create_logical_replication_slot()`](functions-admin.html#FUNCTIONS-REPLICATION).

-   使用逻辑复制时,在命令完成期间将缓存失效消息添加到 WAL (Dilip Kumar, Tomas Vondra, Amit Kapila)

    这允许进行中事务的逻辑流式传输。禁用逻辑复制时,仅在事务完成时生成失效消息。

-   允许逻辑解码以更有效地处理缓存失效消息 (Dilip Kumar)

    这允许[逻辑解码](logicaldecoding.html)在存在大量 DDL 的情况下高效工作。

-   允许控制是否将逻辑解码消息发送到复制流 (David Pirotte, Euler Taveira)

-   允许逻辑复制订阅使用二进制传输模式 (Dave Cramer)

    这比文本模式更快,但稍微不那么健壮。

-   允许通过 xid 过滤逻辑解码 (Markus Wanner)

#### E.3.3.3。[`选择`](sql-select.html),[`插入`](sql-insert.html)

-   减少不能用作列标签的关键字数量`作为`(马克·迪尔格)

    现在受限关键字减少了 90%。

-   允许指定别名`加入``使用`子句(彼得·艾森特劳特)

    别名是通过编写创建的`作为`之后`使用`条款。它可以用作合并的表限定`使用`列。

-   允许`清楚的`要添加到`通过...分组`删除重复的`分组集`组合(维克恐惧)

    例如,`按多维数据集 (a,b)、多维数据集 (b,c) 分组`将生成重复的分组组合`清楚的`.

-   妥善处理`默认`多行条目`价值观`列出在`插入`(院长拉希德)

    这种情况通常会引发错误。

-   添加SQL标准`搜索``周期`条款[通用表表达式](queries-with.html)(彼得·艾森特)

    同样的结果也可以使用现有的语法来实现,但要方便得多。

-   允许在`哪里`条款`关于冲突`符合资格(汤姆·莱恩)

    但是,只能引用目标表。

#### E.3.3.4。实用程序命令

-   允许[`刷新物化视图`](sql-refreshmaterializedview.html)使用平行度(Bharath Rupireddy)

-   允许[`重新索引`](sql-reindex.html)更改新索引的表空间(Alexey Kondratov、Michael Paquier、Justin Pryzby)

    这是通过指定`表空间`条款A.`--表空间`选项也被添加到[reindexdb](app-reindexdb.html)来控制这一切。

-   允许`重新索引`处理分区关系的所有子表或索引 (Justin Pryzby, Michael Paquier)

-   允许使用索引命令`同时`避免使用等待其他操作完成`同时`(阿尔瓦罗·埃雷拉)

-   提高性能[`复制自`](sql-copy.html)二进制模式 (Bharath Rupireddy, Amit Langote)

-   为 SQL 定义的函数保留 SQL 标准语法[查看定义](sql-createview.html)(汤姆·莱恩)

    以前,调用 SQL 标准函数,例如[`提炼()`](functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT)以简单的函数调用语法显示。现在在显示视图或规则时保留原始语法。

-   添加 SQL 标准子句`授予者`[`授予`](sql-grant.html)[`撤销`](sql-revoke.html)(彼得·艾森特劳特)

-   添加`或更换`选项[`创建触发器`](sql-createtrigger.html)(大隅高道)

    这允许有条件地替换预先存在的触发器。

-   允许[`截短`](sql-truncate.html)在外国桌子上操作(Kazutaka Onishi,Kohei KaiGai)

    这[postgres_fdw](postgres-fdw.html)模块现在也支持这个。

-   允许更轻松地将出版物添加到订阅中和从订阅中删除 (Japin Li)

    新语法是[`更改订阅...添加/删除发布`](sql-altersubscription.html).这避免了必须指定所有发布来添加/删除条目。

-   将主键、唯一约束和外键添加到[系统目录](catalogs.html)(彼得·艾森特劳特)

    这些更改有助于 GUI 工具分析系统目录。现有的目录唯一索引现在已关联`独特`要么`首要的关键`约束。外键关系实际上并没有作为约束存储或实现,而是可以从函数中获取用于显示[皮克\_得到\_目录\_外国的\_键()](functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE).

-   允许[`目前角色`](functions-info.html)every place`CURRENT_USER`is accepted (Peter Eisentraut)

#### E.3.3.5. Data Types

-   Allow extensions and built-in data types to implement[subscripting](sql-altertype.html)(Dmitry Dolgov)

    Previously subscript handling was hard-coded into the server, so that subscripting could only be applied to array types. This change allows subscript notation to be used to extract or assign portions of a value of any type for which the concept makes sense.

-   Allow subscripting of[`JSONB`](datatype-json.html)(Dmitry Dolgov)

    `JSONB`subscripting can be used to extract and assign to portions of`JSONB`documents.

-   Add support for[multirange data types](rangetypes.html)(Paul Jungwirth, Alexander Korotkov)

    These are like range data types, but they allow the specification of multiple, ordered, non-overlapping ranges. An associated multirange type is automatically created for every range type.

-   Add support for the[stemming](textsearch-dictionaries.html#TEXTSEARCH-SNOWBALL-DICTIONARY)of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish (Peter Eisentraut)

-   Allow[tsearch data files](textsearch-intro.html#TEXTSEARCH-INTRO-CONFIGURATIONS)to have unlimited line lengths (Tom Lane)

    The previous limit was 4K bytes. Also remove function`t_readline()`.

-   Add support for`Infinity`and`-Infinity`values in the[numeric data type](datatype-numeric.html)(Tom Lane)

    Floating-point data types already supported these.

-   Add[point operators](functions-geometry.html) `<<|`and`|>>`representing strictly above/below tests (Emre Hasegeli)

    Previously these were called`>^`and`<^`, but that naming is inconsistent with other geometric data types. The old names remain available, but may someday be removed.

-   Add operators to add and subtract[`LSN`](datatype-pg-lsn.html)and numeric (byte) values (Fujii Masao)

-   Allow[binary data transfer](protocol-overview.html#PROTOCOL-FORMAT-CODES)to be more forgiving of array and record`OID`mismatches (Tom Lane)

-   Create composite array types for system catalogs (Wenjing Zeng)

    User-defined relations have long had composite types associated with them, and also array types over those composite types. System catalogs now do as well. This change also fixes an inconsistency that creating a user-defined table in single-user mode would fail to create a composite array type.

#### E.3.3.6. Functions

-   Allow SQL-language[functions](sql-createfunction.html)[程序](sql-createprocedure.html)使用 SQL 标准函数体 (Peter Eisentraut)

    以前只支持字符串文字函数体。使用 SQL 标准语法编写函数或过程时,会立即解析主体并存储为解析树。这允许更好地跟踪函数依赖关系,并且可以具有安全优势。

-   允许[程序](sql-createprocedure.html)拥有`出去`参数(彼得·艾森特劳特)

-   允许一些数组函数对混合的兼容数据类型进行操作 (Tom Lane)

    功能[`array_append()`](functions-array.html),`array_prepend()`,`数组猫()`,`数组位置()`,`数组位置()`,`array_remove()`,`数组替换()`, 和[`宽度_桶()`](functions-math.html)现在采取`任何兼容数组`代替`任意数组`论据。这使他们对参数类型的精确匹配不那么挑剔。

-   添加 SQL 标准[`修剪数组()`](functions-array.html)功能(Vik Fearing)

    这可以通过数组切片完成,但不太容易。

-   添加`拜茶`等价物[`ltrim()`](functions-binarystring.html)`rtrim()`(乔尔·雅各布森)

-   支持负索引[`拆分部分()`](functions-string.html)(尼基尔·贝内施)

    负值从最后一个字段开始并向后计数。

-   添加[`string_to_table()`](functions-string.html)在分隔符上拆分字符串的函数 (Pavel Stehule)

    这类似于[`regexp_split_to_table()`](functions-string.html)功能。

-   添加[`unistr()`](functions-string.html)允许将 Unicode 字符指定为字符串中的反斜杠十六进制转义的函数 (Pavel Stehule)

    这类似于如何在文字字符串中指定 Unicode。

-   添加[`位异或()`](functions-aggregate.html)XOR 聚合函数 (Alexey Bashtanov)

-   添加功能[`位计数()`](functions-binarystring.html)返回在位或字节串中设置的位数 (David Fetter)

-   添加[`date_bin()`](functions-datetime.html#FUNCTIONS-DATETIME-BIN)函数(约翰·奈勒)

    此函数“分箱”输入时间戳,将它们分组为与指定原点对齐的统一长度的间隔。

-   允许[`make_timestamp()`](functions-datetime.html)/`make_timestamptz()`接受负数年(彼得·艾森特劳特)

    负值被解释为`公元前`年。

-   添加更新的正则表达式[`子串()`](functions-string.html)语法(彼得·艾森特劳特)

    新的 SQL 标准语法是`SUBSTRING(文本类似模式 ESCAPE 转义字符)`.以前的标准语法是`SUBSTRING(转义字符的文本来自模式)`,它仍然被 PostgreSQL 接受。

-   允许补充字符类转义[\\D](functions-matching.html#POSIX-ESCAPE-SEQUENCES),`\S`, 和`\W`在正则表达式括号内 (Tom Lane)

-   添加[`[[:单词:]]`](functions-matching.html#POSIX-BRACKET-EXPRESSIONS)作为正则表达式字符类,相当于`\w`(汤姆·莱恩)

-   允许为默认值提供更灵活的数据类型[`带领()`](functions-window.html)`落后()`窗函数(Vik Fearing)

-   使非零[浮点值](datatype-numeric.html#DATATYPE-FLOAT)除以无穷大归零(堀口京太郎)

    以前此类操作会产生下溢错误。

-   用零返回 NaN 对 NaN 进行浮点除法 (Tom Lane)

    以前这会返回错误。

-   原因[`exp()`](functions-math.html)`力量()`负无穷指数返回零 (Tom Lane)

    以前它们经常返回下溢错误。

-   提高涉及无穷大的几何计算的准确性 (Tom Lane)

-   尽可能将内置类型强制功能标记为防漏 (Tom Lane)

    这允许在安全敏感的情况下更多地使用需要类型转换的函数。

-   改变[`pg_describe_object()`](functions-info.html), `pg_identify_object()`, 和`pg_identify_object_as_address()`to always report helpful error messages for non-existent objects (Michael Paquier)

#### E.3.3.7.[PL/pgSQL](plpgsql.html)

-   Improve PL/pgSQL's[expression](plpgsql-expressions.html)and[assignment](plpgsql-statements.html#PLPGSQL-STATEMENTS-ASSIGNMENT)parsing (Tom Lane)

    This change allows assignment to array slices and nested record fields.

-   Allow plpgsql's[`RETURN QUERY`](plpgsql-control-structures.html)to execute its query using parallelism (Tom Lane)

-   Improve performance of repeated[CALL](plpgsql-transactions.html)s within plpgsql procedures (Pavel Stehule, Tom Lane)

#### E.3.3.8. Client Interfaces

-   Add[pipeline](libpq-pipeline-mode.html#LIBPQ-PIPELINE-SENDING)mode to libpq (Craig Ringer, Matthieu Garrigues, Álvaro Herrera)

    This allows multiple queries to be sent, only waiting for completion when a specific synchronization message is sent.

-   Enhance libpq's[`target_session_attrs`](libpq-connect.html#LIBPQ-PARAMKEYWORDS)parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane)

    The new options are`read-only`,`primary`,`standby`, and`prefer-standby`.

-   Improve the output format of libpq's[`PQtrace()`](libpq-control.html)(Aya Iwata, Álvaro Herrera)

-   Allow an ECPG SQL identifier to be linked to a specific connection (Hayato Kuroda)

    This is done via[`DECLARE ... STATEMENT`](ecpg-sql-declare-statement.html).

#### E.3.3.9. Client Applications

-   Allow[vacuumdb](app-vacuumdb.html)to skip index cleanup and truncation (Nathan Bossart)

    The options are`--no-index-cleanup`and`--no-truncate`.

-   Allow[pg_dump](app-pgdump.html)to dump only certain extensions (Guillaume Lelarge)

    This is controlled by option`--extension`.

-   Add[pgbench](pgbench.html) `permute()`随机打乱值的函数(Fabien Coelho、Hironobu Suzuki、Dean Rasheed)

-   在 pgbench 测量的重新连接开销中包括断开时间`-C`(永田勇吾)

-   允许多个详细选项规范(`-v`) 以增加日志记录的详细程度 (Tom Lane)

    此行为由[皮克\_倾倒](app-pgdump.html), [皮克\_饺子](app-pg-dumpall.html), 和[皮克\_恢复](app-pgrestore.html).

##### E.3.3.9.1。[psql](app-psql.html)

-   允许 psql 的`\df``\做`指定函数和运算符参数类型的命令(Greg Sabino Mullane,Tom Lane)

    这有助于减少为重载名称打印的匹配数。

-   将访问方法列添加到 psql 的`\d[i|m|t]+`output (Georgios Kokolatos)

-   Allow psql's`\dt`and`\di`to show TOAST tables and their indexes (Justin Pryzby)

-   Add psql command`\dX`to list extended statistics objects (Tatsuro Yamada)

-   Fix psql's`\dT`to understand array syntax and backend grammar aliases, like`int`for`integer`(Greg Sabino Mullane, Tom Lane)

-   When editing the previous query or a file with psql's`\e`, or using`\ef`and`\ev`, ignore the results if the editor exits without saving (Laurenz Albe)

    Previously, such edits would load the previous query into the query buffer, and typically execute it immediately. This was deemed to be probably not what the user wants.

-   Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Kokolatos, Julien Rouhaud)

#### E.3.3.10. Server Applications

-   Add command-line utility[pg_amcheck](app-pgamcheck.html)to simplify running`contrib/amcheck`tests on many relations (Mark Dilger)

-   Add`--no-instructions`option to[initdb](app-initdb.html)(Magnus Hagander)

    This suppresses the server startup instructions that are normally printed.

-   Stop[pg_upgrade](pgupgrade.html)from creating`analyze_new_cluster`script (Magnus Hagander)

    Instead, give comparable[vacuumdb](app-vacuumdb.html)instructions.

-   Remove support for the[postmaster](app-postgres.html) `-o`option (Magnus Hagander)

    This option was unnecessary since all passed options could already be specified directly.

#### E.3.3.11. Documentation

-   Rename "Default Roles" to["Predefined Roles"](predefined-roles.html)(Bruce Momjian, Stephen Frost)

-   Add documentation for the[`factorial()`](functions-math.html#FUNCTION-FACTORIAL)功能(彼得·艾森特)

    随着这座城市的拆除!在这个版本中,`阶乘()`是计算阶乘的唯一内置方法。

#### E.3.3.12。源代码

-   添加配置选项[`--使用ssl={openssl}`](install-procedure.html#CONFIGURE-OPTIONS-FEATURES)允许将来选择使用SSL库(Daniel Gustafsson,Michael Paquier)

    拼写`--使用openssl`为了兼容性而保留。

-   添加对[抽象Unix域套接字](runtime-config-connection.html#GUC-UNIX-SOCKET-DIRECTORIES)(彼得·艾森特)

    这在Linux和Windows上目前是受支持的。

-   允许Windows正确处理超过4G字节的文件(胡安·何塞·桑塔马里亚·弗莱查)

    例如,这允许[`复制`](sql-copy.html) [沃尔](install-procedure.html#CONFIGURE-OPTIONS-MISC)文件,以及大于4G字节的关系段文件。

-   添加服务器参数[调试\_丢弃\_储藏室](runtime-config-developer.html#GUC-DEBUG-DISCARD-CACHES)为测试目的控制缓存刷新(克雷格·林格)

    以前,这种行为只能在编译时设置。要在initdb期间调用它,请使用新选项`--丢弃缓存`.

-   Various improvements in valgrind error detection ability (Álvaro Herrera, Peter Geoghegan)

-   Add a test module for the regular expression package (Tom Lane)

-   Add support for LLVM version 12 (Andres Freund)

-   Change SHA1, SHA2, and MD5 hash computations to use the OpenSSL EVP API (Michael Paquier)

    This is more modern and supports FIPS mode.

-   Remove separate build-time control over the choice of random number generator (Daniel Gustafsson)

    This is now always determined by the choice of SSL library.

-   Add direct conversion routines between EUC_TW and Big5 encodings (Heikki Linnakangas)

-   Add collation version support for FreeBSD (Thomas Munro)

-   Add[`amadjustmembers`](index-api.html)to the index access method API (Tom Lane)

    This allows an index access method to provide validity checking during creation of a new operator class or family.

-   Provide feature-test macros in`libpq-fe.h`for recently-added libpq features (Tom Lane, Álvaro Herrera)

    Historically, applications have usually used compile-time checks of`PG_VERSION_NUM`to test whether a feature is available. But that's normally the server version, which might not be a good guide to libpq's version.`libpq-fe.h`now offers`#define`symbols denoting application-visible features added in v14; the intent is to keep adding symbols for such features in future versions.

#### E.3.3.13. Additional Modules

-   Allow subscripting of[hstore](hstore.html)values (Tom Lane, Dmitry Dolgov)

-   Allow GiST/GIN[皮克\_trgm](pgtrgm.html)进行等式查找的索引 (Julien Rouhaud)

    这类似于`喜欢`除了不支持通配符。

-   允许[立方体](cube.html)以二进制模式传输的数据类型 (KaiGai Kohei)

-   允许[`pgstattuple_approx()`](pgstattuple.html)报告 TOAST 表 (Peter Eisentraut)

-   添加贡献模块[皮克\_手术](pgsurgery.html)允许更改行可见性​​ (Ashutosh Sharma)

    这对于纠正数据库损坏很有用。

-   添加贡献模块[老的\_快照](oldsnapshot.html)报告`XID`/time 被激活者使用的映射[老的\_快照\_临界点](runtime-config-resource.html#GUC-OLD-SNAPSHOT-THRESHOLD)(罗伯特·哈斯)

-   允许[安检](amcheck.html)还要检查堆页 (Mark Dilger)

    以前它只检查 B-Tree 索引页。

-   允许[页面检查](pageinspect.html)检查 GiST 索引 (Andrey Borodin, Heikki Linnakangas)

-   将 pageinspect 块号更改为[`大整数`](datatype-numeric.html#DATATYPE-INT)(彼得·艾森特劳特)

-   标记[btree\_要旨](btree-gist.html)用作并行安全 (Steven Winfield)

##### E.3.3.13.1。[皮克\_统计\_陈述](pgstatstatements.html)

-   从 pg 移动查询哈希计算\_统计\_对核心服务器的声明 (Julien Rouhaud)

    新的服务器参数[计算\_询问\_id](runtime-config-statistics.html#GUC-COMPUTE-QUERY-ID)的默认值`汽车`加载此扩展时将自动启用查询 ID 计算。

-   原因 pg\_统计\_分别跟踪顶部和嵌套语句的语句 (Julien Rohaud)

    以前,在跟踪所有语句时,将相同的顶部和嵌套语句作为单个条目进行跟踪;但将这些用法分开似乎更有用。

-   将实用程序命令的行数添加到 pg\_统计\_声明(藤井正男、葛城雄太、西野由纪)

-   添加`pg_stat_statements_info`系统视图显示 pg\_统计\_声明活动(葛城裕太、西野由纪、中道直树)

##### E.3.3.13.2。[postgres_fdw](postgres-fdw.html)

-   允许 postgres_fdw to`INSERT`rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote)

-   Allow postgres_fdw to import table partitions if specified by[`IMPORT FOREIGN SCHEMA ... LIMIT TO`](sql-importforeignschema.html)(Matthias van de Meent)

    By default, only the root of a partitioned table is imported.

-   Add postgres_fdw function`postgres_fdw_get_connections()`to report open foreign server connections (Bharath Rupireddy)

-   Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy)

    This is controlled by`keep_connections`and defaults to on.

-   Allow postgres_fdw to reestablish foreign server connections if necessary (Bharath Rupireddy)

    Previously foreign server restarts could cause foreign table access errors.

-   Add postgres_fdw functions to discard cached connections (Bharath Rupireddy)

### E.3.4. Acknowledgments

The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues.

| Abhijit Menon-Sen |
| ----------------- |
| Ádám Balogh |
| 阿德里安·何 |
| 阿山哈迪 |
| 阿金切里安 |
| 亚历山大·阿列克谢耶夫 |
| 亚历山德罗·盖拉尔迪 |
| 亚历克斯·科热米亚金 |
| 亚历山大·科罗特科夫 |
| 亚历山大·拉欣 |
| 亚历山大·纳夫拉蒂尔 |
| 亚历山大·皮哈洛夫 |
| 亚历山德拉王 |
| 阿列克谢·巴什坦诺夫 |
| 阿列克谢·布尔加科夫 |
| 阿列克谢·康德拉托夫 |
| 阿尔瓦罗·埃雷拉 |
| 阿米特·卡皮拉 |
| 阿米特·坎德卡 |
| 阿米特·朗格特 |
| 南阿穆尔 |
| 阿纳斯塔西娅·卢本尼科娃 |
| 安德鲁·格罗布 |
| 安德鲁·克雷施默 |
| 安德鲁·瑞尔帝国 |
| 安德烈亚斯·维希特 |
| 安德烈的朋友 |
| 安德鲁·比尔 |
| 安德鲁·邓斯坦 |
| 安德鲁·吉尔思 |
| 安德烈·鲍罗丁 |
| 安德烈·列皮霍夫 |
| 安迪范 |
| 安东·沃罗申 |
| 安东尼·豪斯卡 |
| 阿恩·罗兰 |
| 阿尔塞尼·谢尔 |
| 亚瑟·纳西门托 |
| 亚瑟·扎基洛夫 |
| 阿舒托什·巴帕特 |
| 阿舒托什·夏尔马 |
| 阿什温·阿格拉瓦尔 |
| 阿西夫·雷曼 |
| 阿西姆·普拉文 |
| 鸟越淳 |
| 岩田绫 |
| 巴里·佩德森 |
| 巴斯普 |
| 鲍伊尔詹·萨哈里耶夫 |
| 比娜·艾默生 |
| 贝努瓦·洛布雷奥 |
| 伯恩德·赫尔姆 |
| 伯恩哈德·M·维德曼 |
| 伯特兰·德鲁沃 |
| 巴拉特·鲁皮雷迪 |
| 鲍里斯·科尔帕科夫 |
| 布拉尔接头 |
| 布莱恩·叶 |
| 布鲁斯·莫吉安 |
| 布林·卢埃林 |
| 卡梅伦丹尼尔 |
| 查普曼弗莱克 |
| 查尔斯·桑博尔斯基 |
| 查理·霍恩斯比 |
| 陈娇倩 |
| 克里斯·威尔逊 |
| 基督教探索 |
| 克里斯托弗·伯格 |
| 克里斯托夫·库尔图瓦 |
| 科里·亨克 |
| 克雷格·林格 |
| Dagfinn Ilmari Mannsåker |
| 达纳伯德 |
| 丹尼尔·切尔尼 |
| 丹尼尔·古斯塔夫森 |
| 丹尼尔·维瑞特 |
| 丹尼尔韦斯特曼 |
| 丹尼尔·瓦拉佐 |
| Dar Alathar-也门 |
| 达拉菲·普拉利亚斯科斯基 |
| 戴夫克莱默 |
| 大卫克里斯滕森 |
| 大卫费特 |
| 大卫·G·约翰斯顿 |
| 大卫·盖尔 |
| 大卫吉尔曼 |
| 大卫·皮罗特 |
| 大卫·罗利 |
| 大卫斯蒂尔 |
| 大卫·特隆 |
| 张大卫 |
| 院长拉希德 |
| 丹尼斯赞助人 |
| 点飞 |
| 迪利普库马尔 |
| 迪米特里·努舍勒 |
| 德米特里·库兹明 |
| 德米特里·多尔戈夫 |
| 德米特里·马拉卡索夫 |
| 多马戈伊·斯莫利亚诺维奇 |
| 东旭 |
| 道格拉斯·杜尔 |
| 邓肯金沙 |
| 埃德蒙霍纳 |
| 埃德森·里希特 |
| 叶戈尔·罗戈夫 |
| 叶卡捷琳娜·基里亚诺娃 |
| 埃琳娜·英卓普斯卡娅 |
| 埃米尔·伊格兰 |
| 埃姆雷·哈塞格利 |
| 埃里克·蒂恩斯 |
| 埃里克·赖克斯 |
| 欧文·布兰德施泰特 |
| 艾蒂安·斯塔曼斯 |
| 藤田悦郎 |
| 欧根康科夫 |
| 欧拉·塔维拉 |
| 法比安·科埃略 |
| 法布里齐奥·德·罗耶斯·梅洛 |
| 费德里科·卡塞利 |
| 费利克斯·莱赫纳 |
| 菲利普·戈斯波迪诺夫 |
| 弗洛里斯·范尼 |
| 弗兰克·加涅潘 |
| 弗里斯·贾文 |
| 乔治斯·科科拉托斯 |
| 格雷格·南卡罗 |
| 格雷格·雷赫莱夫斯基 |
| 格雷格·萨比诺·穆兰 |
| 格雷戈里·史密斯 |
| 格里高利·斯莫尔金 |
| 纪尧姆·勒拉格 |
| 盖伊·伯吉斯 |
| 盖仁豪 |
| 海鹰堂 |
| 哈米德·阿赫塔尔 |
| 汉斯·布施曼 |
| 吴昊 |
| 哈里巴布·科米 |
| 哈里赛·哈里 |
| 黑田隼人 |
| 希斯勋爵 |
| 海基·林纳坎加斯 |
| 亨利·欣策 |
| 赫维格·戈曼斯 |
| Himanshu Upadhyaya |
| 铃木博信 |
| 井上浩 |
| 小林久典 |
| 洪扎霍拉克 |
| 侯志杰 |
| 休伯特·卢巴切夫斯基 |
| 休伯特张 |
| 伊恩·巴维克 |
| 伊布拉·艾哈迈德 |
| 伊尔杜斯·库尔班加耶夫 |
| 艾萨克·莫兰 |
| 以色列巴特 |
| 伊塔马尔·加夫尼克 |
| 雅各布冠军 |
| 海梅·卡萨诺瓦 |
| 海梅·索勒 |
| 雅库布·瓦塔克 |
| 詹姆斯·科尔曼 |
| 詹姆斯·希利亚德 |
| 詹姆斯·亨特 |
| 詹姆斯通知 |
| 扬·穆斯勒 |
| 李嘉平 |
| 杰森·贝茨 |
| 杰森哈维 |
| 杰森金 |
| 吉万·拉德 |
| 杰夫戴维斯 |
| 杰夫·简斯 |
| 耶尔特·芬尼玛 |
| 杰里米·埃文斯 |
| 杰里米·芬泽尔 |
| 杰里米·史密斯 |
| 杰西·金基德 |
| 张杰西 |
| 张杰 |
| 吉姆·多蒂 |
| 吉姆·纳斯比 |
| 吉米安吉拉科斯 |
| 吉米·伊 |
| 吉里·费法尔 |
| 乔·康威 |
| 乔尔·雅各布森 |
| 约翰·奈勒 |
| 约翰汤普森 |
| 乔纳森·卡茨 |
| 约瑟夫·希曼内克 |
| 约瑟夫·纳米亚斯 |
| 乔什·伯库斯 |
| 胡安·何塞·圣玛丽亚·弗莱查 |
| 朱利安·鲁豪 |
| 杨俊峰 |
| 于尔根·普茨 |
| 贾斯汀·普利兹比 |
| 大西和孝 |
| 黑田圭佑 |
| 凯利敏 |
| 冈村健介 |
| 凯文·斯威特 |
| 叶凯文 |
| 柯克·贾米森 |
| 光平开盖 |
| 康斯坦丁·克尼日尼克 |
| 三宅市 |
| 克日什托夫·格拉德克 |
| 昆塔尔戈什 |
| 凯尔金斯伯里 |
| 堀口京太郎 |
| 劳伦特·哈森 |
| 劳伦兹阿尔贝 |
| 李东旭 |
| 李嘉平 |
| 刘怀玲 |
| 卢克弗莱明 |
| 卢多维奇库蒂 |
| 路易斯·罗伯托 |
| 卢克·埃德 |
| 马良柱 |
| 马切克·萨克瑞达 |
| 马丹库马拉 |
| 马格努斯·哈根德 |
| 马亨德拉·辛格·塔罗 |
| 马克西姆米柳京 |
| 马克·博伦 |
| 马辛·克鲁波维茨 |
| 马可·阿策里克 |
| 马雷克·苏巴 |
| 玛丽娜·波利亚科娃 |
| 马里奥·埃门劳尔 |
| 马克·迪尔格 |
| 马克·黄 |
| 赵马克 |
| 马库斯·万纳 |
| 马丁·马克斯 |
| 马丁·维瑟 |
| 泽田正彦 |
| 池田正宏 |
| 藤井正夫 |
| 马蒂斯·鲁道夫 |
| 马蒂亚斯·范德米特 |
| 马修·加里格斯 |
| 马蒂斯·范德弗勒滕 |
| 马克西姆·奥尔洛夫 |
| 梅兰妮普拉格曼 |
| 梅林·蒙库尔 |
| 迈克尔·班克 |
| 迈克尔·布朗 |
| 迈克尔·梅克斯 |
| 迈克尔·帕奎尔 |
| 迈克尔·保罗·基利安 |
| 迈克尔·鲍尔斯 |
| 迈克尔·瓦斯托拉 |
| 迈克尔·尼古拉耶夫 |
| 迈克尔·阿尔布莱希特 |
| 米凯尔·古斯塔夫森 |
| 移动李 |
| 穆罕默德·乌萨马 |
| 纳加拉吉拉吉 |
| 中道直树 |
| 内森·博萨特 |
| 弥敦道隆 |
| Nazli Ugur Koyluoglu |
| 内哈·夏尔马 |
| 尼尔陈 |
| 尼克克莱顿 |
| 尼科·威廉姆斯 |
| 尼基尔·贝内施 |
| 尼基尔·桑塔克 |
| 尼基塔·格鲁霍夫 |
| 尼基塔·科涅夫 |
| 尼古拉斯·伯科夫 |
| 尼古拉·萨莫赫瓦洛夫 |
| 尼古拉·沙普洛夫 |
| 尼廷·贾达夫 |
| 诺亚米施 |
| 筱田纪吉 |
| 奥丁乌格达尔 |
| 奥列格·巴尔图诺夫 |
| 奥列格·萨莫洛夫 |
| 恩德卡拉奇 |
| 帕斯卡勒格朗 |
| 保罗·福斯特 |
| 郭保罗 |
| 保罗·容沃思 |
| 保罗马丁内斯 |
| 保罗·西瓦什 |
| 帕万·德奥拉西 |
| 帕维尔·博耶夫 |
| 帕维尔鲍里索夫 |
| 帕维尔·卢扎诺夫 |
| 帕维尔·斯特胡勒 |
| 刘鹏程 |
| 彼得·艾森特劳特 |
| 彼得·吉根 |
| 彼得·史密斯 |
| 彼得·范迪维尔 |
| 彼得·费多罗夫 |
| 彼得·耶利内克 |
| 菲尔·克雷洛夫 |
| 菲利普·格拉姆佐 |
| 菲利普·博多安 |
| 菲利普·门克 |
| 皮埃尔·吉罗 |
| 普拉巴特萨胡 |
| 权宗良 |
| 拉菲·沙米姆 |
| 拉希拉赛义德 |
| 拉杰库马尔·拉古万希 |
| 拉尼尔·维莱拉 |
| 里贾纳奥贝 |
| 雷米·拉佩尔 |
| 罗伯特·福贾 |
| 罗伯特·格兰奇 |
| 罗伯特·哈斯 |
| 罗伯特·卡勒特 |
| 罗伯特·索辛斯基 |
| 罗伯特·特里特 |
| 罗宾·阿比 |
| 罗宾斯·塔拉坎 |
| 罗杰·梅森 |
| 罗希特·博盖特 |
| 罗曼·扎尔科夫 |
| 罗恩·约翰逊 |
| 罗南·邓克劳 |
| 瑞恩兰伯特 |
| 松村亮 |
| 赛义德虎白山 |
| 赛特·塔尔哈·尼桑奇 |
| 桑德罗·玛尼 |
| 桑托什·乌杜皮 |
| 斯科特·里伯 |
| 瑟罗普·萨库尼 |
| 谢尔盖·科尔尼洛夫 |
| 谢尔盖·贝尔尼科夫 |
| 谢尔盖·切尔卡申 |
| 谢尔盖·科波索夫 |
| 谢尔盖·辛德鲁克 |
| 谢尔盖·祖布科夫斯基 |
| 王肖恩 |
| 谢伊·罗扬斯基 |
| 石宇 |
| 加藤真也 |
| 冈野真也 |
| 西格丽德·埃伦赖希 |
| 西蒙·诺里斯 |
| 西蒙·里格斯 |
| 索福克利斯帕帕索福克利 |
| Soumyadeep Chakraborty |
| 斯塔斯·凯尔维奇 |
| 斯蒂芬·斯普林尔 |
| 斯蒂芬·洛雷克 |
| 斯蒂芬弗罗斯特 |
| 史蒂文温菲尔德 |
| 苏拉菲尔·特梅斯根 |
| 苏拉吉·卡拉格 |
| 斯文克莱姆 |
| 大隅高道 |
| 面城隆 |
| 纲川孝之 |
| 唐海英 |
| 笠原达人 |
| 石井达男 |
| 山田达郎 |
| 西奥多·阿尔塞尼·拉里奥诺夫-特里奇金 |
| 托马斯·凯勒 |
| 托马斯·门罗 |
| 托马斯·特伦茨 |
| 蒂斯范达姆 |
| 汤姆·埃利斯 |
| 汤姆·戈特弗里德 |
| 汤姆·莱恩 |
| 汤姆·维吉尔布里夫 |
| 托马斯·巴顿 |
| 托马斯·冯德拉 |
| 平光智宏 |
| 托尼·雷克斯 |
| 毗湿奴普拉巴卡兰 |
| 瓦伦丁·加蒂安-男爵 |
| 维克多·瓦格纳 |
| 维克多·叶戈罗夫 |
| 维涅什 C |
| 维克恐惧 |
| 维塔利·乌斯蒂诺夫 |
| 弗拉基米尔·希特尼科夫 |
| 维亚切斯拉夫·沙布利斯蒂 |
| 王申豪 |
| Wei Wang |
| Wells Oliver |
| Wenjing Zeng |
| Wolfgang Walther |
| Yang Lin |
| Yanliang Lei |
| Yaoguang Chen |
| Yaroslav Pashinsky |
| Yaroslav Schekin |
| Yasushi Yamashita |
| Yoran Heling |
| YoungHwan Joo |
| Yugo Nagata |
| Yuki Seino |
| Yukun Wang |
| Yulin Pei |
| Yura Sokolov |
| Yuta Katsuragi |
| Yuta Kondo |
| Yuzuko Hosoya |
| Zhihong Yu |
| Zhiyong Wu |
| Zsolt Ero |