zh_CN: Translation updates
authorPeter Eisentraut <peter_e@gmx.net>
Fri, 17 Jun 2016 19:10:46 +0000 (15:10 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Fri, 17 Jun 2016 19:10:46 +0000 (15:10 -0400)
closes #1345 #1346

13 files changed:
zh_CN/initdb.po
zh_CN/libpq.po
zh_CN/pg_basebackup.po
zh_CN/pg_controldata.po
zh_CN/pg_dump.po
zh_CN/pg_resetxlog.po
zh_CN/pg_rewind.po
zh_CN/pgscripts.po
zh_CN/plperl.po
zh_CN/plpgsql.po
zh_CN/plpython.po
zh_CN/postgres.po
zh_CN/psql.po

index b7cc497013e84c6b296c202d1a1ae6428152b83e..3c131633dc68ccc271463fdf4dfc06925f6656b9 100644 (file)
@@ -6,10 +6,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: initdb (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:43+0000\n"
-"PO-Revision-Date: 2016-01-03 23:26-0500\n"
+"POT-Creation-Date: 2016-04-18 04:44+0000\n"
+"PO-Revision-Date: 2016-05-19 20:39+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
-"Language-Team: Chinese (Simplified)\n"
+"Language-Team: Chinese (Simplified) <ywpeng@whu.edu.cn>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -174,117 +174,117 @@ msgstr "子进程被信号 %d 终止"
 msgid "child process exited with unrecognized status %d"
 msgstr "子进程已退出, 未知状态 %d"
 
-#: ../../port/dirmod.c:219
+#: ../../port/dirmod.c:221
 #, c-format
 msgid "could not set junction for \"%s\": %s\n"
 msgstr "无法为 \"%s\"设置连接: %s\n"
 
-#: ../../port/dirmod.c:294
+#: ../../port/dirmod.c:298
 #, c-format
 msgid "could not get junction for \"%s\": %s\n"
 msgstr "无法为\"%s\"得到连接: %s\n"
 
-#: initdb.c:340
+#: initdb.c:349
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: 内存溢出\n"
 
-#: initdb.c:450 initdb.c:1620
+#: initdb.c:459 initdb.c:1589
 #, c-format
 msgid "%s: could not open file \"%s\" for reading: %s\n"
 msgstr "%s: 为了读取, 无法打开文件 \"%s\": %s\n"
 
-#: initdb.c:506 initdb.c:1016 initdb.c:1044
+#: initdb.c:515 initdb.c:1002 initdb.c:1030
 #, c-format
 msgid "%s: could not open file \"%s\" for writing: %s\n"
 msgstr "%s: 为了写, 无法打开文件 \"%s\": %s\n"
 
-#: initdb.c:514 initdb.c:522 initdb.c:1023 initdb.c:1050
+#: initdb.c:523 initdb.c:531 initdb.c:1009 initdb.c:1036
 #, c-format
 msgid "%s: could not write file \"%s\": %s\n"
 msgstr "%s: 无法写文件 \"%s\": %s\n"
 
-#: initdb.c:553
+#: initdb.c:562
 #, c-format
 msgid "%s: could not open directory \"%s\": %s\n"
 msgstr "%s: 无法打开目录 \"%s\": %s\n"
 
-#: initdb.c:577 initdb.c:2424
+#: initdb.c:586 initdb.c:2334
 #, c-format
 msgid "%s: could not stat file \"%s\": %s\n"
 msgstr "%s: 无法统计文件: \"%s\": %s\n"
 
-#: initdb.c:589
+#: initdb.c:598
 #, c-format
 msgid "%s: could not read directory \"%s\": %s\n"
 msgstr "%s: 无法读取目录 \"%s\": %s\n"
 
-#: initdb.c:622 initdb.c:681
+#: initdb.c:631 initdb.c:690
 #, c-format
 msgid "%s: could not open file \"%s\": %s\n"
 msgstr "%s: 无法打开文件 \"%s\": %s\n"
 
-#: initdb.c:693
+#: initdb.c:702
 #, c-format
 msgid "%s: could not fsync file \"%s\": %s\n"
 msgstr "%s: 无法对文件 \"%s\"进行fsync同步: %s\n"
 
-#: initdb.c:712
+#: initdb.c:721
 #, c-format
 msgid "%s: could not execute command \"%s\": %s\n"
 msgstr "%s: 无法执行命令 \"%s\": %s\n"
 
-#: initdb.c:728
+#: initdb.c:737
 #, c-format
 msgid "%s: removing data directory \"%s\"\n"
 msgstr "%s: 删除数据目录 \"%s\"\n"
 
-#: initdb.c:731
+#: initdb.c:740
 #, c-format
 msgid "%s: failed to remove data directory\n"
 msgstr "%s: 删除数据目录失败\n"
 
-#: initdb.c:737
+#: initdb.c:746
 #, c-format
 msgid "%s: removing contents of data directory \"%s\"\n"
 msgstr "%s: 删除数据目录 \"%s\" 的内容\n"
 
-#: initdb.c:740
+#: initdb.c:749
 #, c-format
 msgid "%s: failed to remove contents of data directory\n"
 msgstr "%s: 删除数据目录内容失败\n"
 
-#: initdb.c:746
+#: initdb.c:755
 #, c-format
 msgid "%s: removing transaction log directory \"%s\"\n"
 msgstr "%s: 正在删除事务日志文件目录 \"%s\"\n"
 
-#: initdb.c:749
+#: initdb.c:758
 #, c-format
 msgid "%s: failed to remove transaction log directory\n"
 msgstr "%s: 删除数据目录失败\n"
 
-#: initdb.c:755
+#: initdb.c:764
 #, c-format
 msgid "%s: removing contents of transaction log directory \"%s\"\n"
 msgstr "%s: 删除事务日志目录 \"%s\" 的内容\n"
 
-#: initdb.c:758
+#: initdb.c:767
 #, c-format
 msgid "%s: failed to remove contents of transaction log directory\n"
 msgstr "%s: 删除事务日志目录的内容失败\n"
 
-#: initdb.c:767
+#: initdb.c:776
 #, c-format
 msgid "%s: data directory \"%s\" not removed at user's request\n"
 msgstr "%s: 在用户的要求下数据库目录 \"%s\" 不被删除\n"
 
-#: initdb.c:772
+#: initdb.c:781
 #, c-format
 msgid "%s: transaction log directory \"%s\" not removed at user's request\n"
 msgstr "%s: 在用户的要求下不删除事务日志目录 \"%s\"\n"
 
-#: initdb.c:793
+#: initdb.c:802
 #, c-format
 msgid ""
 "%s: cannot be run as root\n"
@@ -295,22 +295,17 @@ msgstr ""
 "请以服务器进程所有者的用户 (无特权) 身份\n"
 "登陆 (使用, e.g., \"su\").\n"
 
-#: initdb.c:829
+#: initdb.c:838
 #, c-format
 msgid "%s: \"%s\" is not a valid server encoding name\n"
 msgstr "%s: \"%s\" 不是一个有效的服务器编码名字\n"
 
-#: initdb.c:943 initdb.c:3217
-#, c-format
-msgid "%s: could not create directory \"%s\": %s\n"
-msgstr "%s: 无法创建目录 \"%s\": %s\n"
-
-#: initdb.c:972
+#: initdb.c:958
 #, c-format
 msgid "%s: file \"%s\" does not exist\n"
 msgstr "%s: 文件 \"%s\" 不存在\n"
 
-#: initdb.c:974 initdb.c:983 initdb.c:993
+#: initdb.c:960 initdb.c:969 initdb.c:979
 #, c-format
 msgid ""
 "This might mean you have a corrupted installation or identified\n"
@@ -319,46 +314,46 @@ msgstr ""
 "这意味着您的安装发生了错误或\n"
 "使用 -L 选项指定了错误的路径.\n"
 
-#: initdb.c:980
+#: initdb.c:966
 #, c-format
 msgid "%s: could not access file \"%s\": %s\n"
 msgstr "%s: 无法访问文件 \"%s\": %s\n"
 
-#: initdb.c:991
+#: initdb.c:977
 #, c-format
 msgid "%s: file \"%s\" is not a regular file\n"
 msgstr "%s: 文件 \"%s\" 不是常规文件\n"
 
-#: initdb.c:1136
+#: initdb.c:1122
 #, c-format
 msgid "selecting default max_connections ... "
 msgstr "选择默认最大联接数 (max_connections) ... "
 
-#: initdb.c:1166
+#: initdb.c:1152
 #, c-format
 msgid "selecting default shared_buffers ... "
 msgstr "选择默认共享缓冲区大小 (shared_buffers) ... "
 
-#: initdb.c:1199
+#: initdb.c:1185
 #, c-format
 msgid "selecting dynamic shared memory implementation ... "
 msgstr "选择动态共享内存实现 ......"
 
-#: initdb.c:1217
+#: initdb.c:1203
 msgid "creating configuration files ... "
 msgstr "创建配置文件 ... "
 
-#: initdb.c:1314 initdb.c:1334 initdb.c:1418 initdb.c:1434
+#: initdb.c:1300 initdb.c:1320 initdb.c:1404 initdb.c:1420
 #, c-format
 msgid "%s: could not change permissions of \"%s\": %s\n"
 msgstr "%s: 无法改变\"%s\"的权限:%s\n"
 
-#: initdb.c:1458
+#: initdb.c:1444
 #, c-format
-msgid "creating template1 database in %s/base/1 ... "
-msgstr "在 %s/base/1 中创建 template1 数据库 ... "
+msgid "running bootstrap script ... "
+msgstr "正在运行自举脚本 ..."
 
-#: initdb.c:1474
+#: initdb.c:1460
 #, c-format
 msgid ""
 "%s: input file \"%s\" does not belong to PostgreSQL %s\n"
@@ -367,159 +362,96 @@ msgstr ""
 "%s: 输入文件 \"%s\" 不属于 PostgreSQL %s\n"
 "检查你的安装或使用 -L 选项指定正确的路径.\n"
 
-#: initdb.c:1561
-msgid "initializing pg_authid ... "
-msgstr "初始化 pg_authid ...  "
-
-#: initdb.c:1595
+#: initdb.c:1564
 msgid "Enter new superuser password: "
 msgstr "输入新的超级用户口令: "
 
-#: initdb.c:1596
+#: initdb.c:1565
 msgid "Enter it again: "
 msgstr "再输入一遍: "
 
-#: initdb.c:1599
+#: initdb.c:1568
 #, c-format
 msgid "Passwords didn't match.\n"
 msgstr "口令不匹配.\n"
 
-#: initdb.c:1627
+#: initdb.c:1596
 #, c-format
 msgid "%s: could not read password from file \"%s\": %s\n"
 msgstr "%s: 无法从文件 \"%s\" 读取口令: %s\n"
 
-#: initdb.c:1630
+#: initdb.c:1599
 #, c-format
-#| msgid "%s: the PID file \"%s\" is empty\n"
 msgid "%s: password file \"%s\" is empty\n"
 msgstr "%s:口令文件\"%s\"为空\n"
 
-#: initdb.c:1643
-#, c-format
-msgid "setting password ... "
-msgstr "设置口令 ... "
-
-#: initdb.c:1743
-msgid "initializing dependencies ... "
-msgstr "初始化dependencies ... "
-
-#: initdb.c:1771
-msgid "creating system views ... "
-msgstr "创建系统视图 ... "
-
-#: initdb.c:1807
-msgid "loading system objects' descriptions ... "
-msgstr "正在加载系统对象描述 ..."
-
-#: initdb.c:1913
-msgid "creating collations ... "
-msgstr "创建(字符集)校对规则 ... "
-
-#: initdb.c:1946
+#: initdb.c:1845
 #, c-format
 msgid "%s: locale name too long, skipped: \"%s\"\n"
 msgstr "%s: 本地化名称太长, 跳过: \"%s\"\n"
 
-#: initdb.c:1971
+#: initdb.c:1870
 #, c-format
 msgid "%s: locale name has non-ASCII characters, skipped: \"%s\"\n"
 msgstr "%s: 本地化名称带有非ASCII字符, 跳过: \"%s\"\n"
 
 # describe.c:1542
-#: initdb.c:2040
+#: initdb.c:1943
 #, c-format
 msgid "No usable system locales were found.\n"
 msgstr "没有找到可用的系统本地化名称.\n"
 
-#: initdb.c:2041
+#: initdb.c:1944
 #, c-format
 msgid "Use the option \"--debug\" to see details.\n"
 msgstr "使用选项 \"--debug\" 获取细节.\n"
 
-#: initdb.c:2044
-#, c-format
-msgid "not supported on this platform\n"
-msgstr "在此平台上不支持\n"
-
-#: initdb.c:2059
-msgid "creating conversions ... "
-msgstr "创建字符集转换 ... "
-
-#: initdb.c:2094
-msgid "creating dictionaries ... "
-msgstr "正在创建字典 ... "
-
-#: initdb.c:2148
-msgid "setting privileges on built-in objects ... "
-msgstr "对内建对象设置权限 ... "
-
-#: initdb.c:2206
-msgid "creating information schema ... "
-msgstr "创建信息模式 ... "
-
-#: initdb.c:2262
-msgid "loading PL/pgSQL server-side language ... "
-msgstr "正在装载PL/pgSQL服务器端编程语言..."
-
-#: initdb.c:2287
-msgid "vacuuming database template1 ... "
-msgstr "清理数据库 template1 ... "
-
-#: initdb.c:2340
-msgid "copying template1 to template0 ... "
-msgstr "拷贝 template1 到 template0 ... "
-
-#: initdb.c:2372
-msgid "copying template1 to postgres ... "
-msgstr "拷贝 template1 到 template0 ... "
-
-#: initdb.c:2407
+#: initdb.c:2317
 msgid "syncing data to disk ... "
 msgstr "同步数据到磁盘..."
 
-#: initdb.c:2501
+#: initdb.c:2411
 #, c-format
 msgid "caught signal\n"
 msgstr "捕获信号\n"
 
-#: initdb.c:2507
+#: initdb.c:2417
 #, c-format
 msgid "could not write to child process: %s\n"
 msgstr "无法写到子进程: %s\n"
 
-#: initdb.c:2515
+#: initdb.c:2425
 #, c-format
 msgid "ok\n"
 msgstr "成功\n"
 
-#: initdb.c:2605
+#: initdb.c:2515
 #, c-format
 msgid "%s: setlocale() failed\n"
 msgstr "%s:setlocale()调用失败\n"
 
-#: initdb.c:2623
+#: initdb.c:2533
 #, c-format
 msgid "%s: failed to restore old locale \"%s\"\n"
 msgstr "%s: 无法恢复旧的本地化文件 \"%s\"\n"
 
-#: initdb.c:2633
+#: initdb.c:2543
 #, c-format
 msgid "%s: invalid locale name \"%s\"\n"
 msgstr "%s: 无效的 locale 名字 \"%s\"\n"
 
-#: initdb.c:2645
+#: initdb.c:2555
 #, c-format
 msgid ""
 "%s: invalid locale settings; check LANG and LC_* environment variables\n"
 msgstr "%s:无效的本地化设置; 请检查环境变量LANG和LC_*的值\n"
 
-#: initdb.c:2673
+#: initdb.c:2583
 #, c-format
 msgid "%s: encoding mismatch\n"
 msgstr "%s: 警告: 编码不匹配\n"
 
-#: initdb.c:2675
+#: initdb.c:2585
 #, c-format
 msgid ""
 "The encoding you selected (%s) and the encoding that the\n"
@@ -534,7 +466,7 @@ msgstr ""
 "组合类型.\n"
 "\n"
 
-#: initdb.c:2747
+#: initdb.c:2657
 #, c-format
 msgid ""
 "%s initializes a PostgreSQL database cluster.\n"
@@ -543,17 +475,17 @@ msgstr ""
 "%s 初始化一个 PostgreSQL 数据库簇.\n"
 "\n"
 
-#: initdb.c:2748
+#: initdb.c:2658
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: initdb.c:2749
+#: initdb.c:2659
 #, c-format
 msgid "  %s [OPTION]... [DATADIR]\n"
 msgstr "  %s [选项]... [DATADIR]\n"
 
-#: initdb.c:2750
+#: initdb.c:2660
 #, c-format
 msgid ""
 "\n"
@@ -562,43 +494,43 @@ msgstr ""
 "\n"
 "选项:\n"
 
-#: initdb.c:2751
+#: initdb.c:2661
 #, c-format
 msgid ""
 "  -A, --auth=METHOD         default authentication method for local "
 "connections\n"
 msgstr "  -A, --auth=METHOD         本地连接的默认认证方法\n"
 
-#: initdb.c:2752
+#: initdb.c:2662
 #, c-format
 msgid ""
 "      --auth-host=METHOD    default authentication method for local TCP/IP "
 "connections\n"
 msgstr "      --auth-host=METHOD   本地的TCP/IP连接的默认认证方法\n"
 
-#: initdb.c:2753
+#: initdb.c:2663
 #, c-format
 msgid ""
 "      --auth-local=METHOD   default authentication method for local-socket "
 "connections\n"
 msgstr "      --auth-local=METHOD   本地socket连接的默认认证方法\n"
 
-#: initdb.c:2754
+#: initdb.c:2664
 #, c-format
 msgid " [-D, --pgdata=]DATADIR     location for this database cluster\n"
 msgstr "  -D, --pgdata=DATADIR      当前数据库簇的位置\n"
 
-#: initdb.c:2755
+#: initdb.c:2665
 #, c-format
 msgid "  -E, --encoding=ENCODING   set default encoding for new databases\n"
 msgstr "  -E, --encoding=ENCODING   为新数据库设置默认编码\n"
 
-#: initdb.c:2756
+#: initdb.c:2666
 #, c-format
 msgid "      --locale=LOCALE       set default locale for new databases\n"
 msgstr "      --locale=LOCALE      为新数据库设置默认语言环境\n"
 
-#: initdb.c:2757
+#: initdb.c:2667
 #, c-format
 msgid ""
 "      --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n"
@@ -613,18 +545,18 @@ msgstr ""
 "                   设定缺省语言环境(默认使用环境变\n"
 "                   量)\n"
 
-#: initdb.c:2761
+#: initdb.c:2671
 #, c-format
 msgid "      --no-locale           equivalent to --locale=C\n"
 msgstr "  --no-locale               等同于 --locale=C\n"
 
-#: initdb.c:2762
+#: initdb.c:2672
 #, c-format
 msgid ""
 "      --pwfile=FILE         read password for the new superuser from file\n"
 msgstr "  --pwfile=文件名           对于新的超级用户从文件读取口令\n"
 
-#: initdb.c:2763
+#: initdb.c:2673
 #, c-format
 msgid ""
 "  -T, --text-search-config=CFG\n"
@@ -633,24 +565,24 @@ msgstr ""
 "  -T, --text-search-config=CFG\n"
 "                   缺省的文本搜索配置\n"
 
-#: initdb.c:2765
+#: initdb.c:2675
 #, c-format
 msgid "  -U, --username=NAME       database superuser name\n"
 msgstr "  -U, --username=NAME       数据库超级用户名\n"
 
-#: initdb.c:2766
+#: initdb.c:2676
 #, c-format
 msgid ""
 "  -W, --pwprompt            prompt for a password for the new superuser\n"
 msgstr "  -W, --pwprompt            对于新的超级用户提示输入口令\n"
 
-#: initdb.c:2767
+#: initdb.c:2677
 #, c-format
 msgid ""
 "  -X, --xlogdir=XLOGDIR     location for the transaction log directory\n"
 msgstr "  -X, --xlogdir=XLOGDIR          当前事务日志目录的位置\n"
 
-#: initdb.c:2768
+#: initdb.c:2678
 #, c-format
 msgid ""
 "\n"
@@ -659,44 +591,44 @@ msgstr ""
 "\n"
 "非普通使用选项:\n"
 
-#: initdb.c:2769
+#: initdb.c:2679
 #, c-format
 msgid "  -d, --debug               generate lots of debugging output\n"
 msgstr "  -d, --debug               产生大量的除错信息\n"
 
-#: initdb.c:2770
+#: initdb.c:2680
 #, c-format
 msgid "  -k, --data-checksums      use data page checksums\n"
 msgstr " -k, --data-checksums    使用数据页产生效验和\n"
 
-#: initdb.c:2771
+#: initdb.c:2681
 #, c-format
 msgid "  -L DIRECTORY              where to find the input files\n"
 msgstr "  -L DIRECTORY              输入文件的位置\n"
 
-#: initdb.c:2772
+#: initdb.c:2682
 #, c-format
 msgid "  -n, --noclean             do not clean up after errors\n"
 msgstr "  -n, --noclean             出错后不清理\n"
 
-#: initdb.c:2773
+#: initdb.c:2683
 #, c-format
 msgid ""
 "  -N, --nosync              do not wait for changes to be written safely to "
 "disk\n"
 msgstr "  -N, --nosync             不用等待变化安全写入磁盘\n"
 
-#: initdb.c:2774
+#: initdb.c:2684
 #, c-format
 msgid "  -s, --show                show internal settings\n"
 msgstr "  -s, --show                显示内部设置\n"
 
-#: initdb.c:2775
+#: initdb.c:2685
 #, c-format
 msgid "  -S, --sync-only           only sync data directory\n"
 msgstr "  -S, --sync-only          只同步数据目录\n"
 
-#: initdb.c:2776
+#: initdb.c:2686
 #, c-format
 msgid ""
 "\n"
@@ -705,17 +637,17 @@ msgstr ""
 "\n"
 "其它选项:\n"
 
-#: initdb.c:2777
+#: initdb.c:2687
 #, c-format
 msgid "  -V, --version             output version information, then exit\n"
 msgstr "  -V, --version             输出版本信息, 然后退出\n"
 
-#: initdb.c:2778
+#: initdb.c:2688
 #, c-format
 msgid "  -?, --help                show this help, then exit\n"
 msgstr "  -?, --help                显示此帮助, 然后退出\n"
 
-#: initdb.c:2779
+#: initdb.c:2689
 #, c-format
 msgid ""
 "\n"
@@ -725,7 +657,7 @@ msgstr ""
 "\n"
 "如果没有指定数据目录, 将使用环境变量 PGDATA\n"
 
-#: initdb.c:2781
+#: initdb.c:2691
 #, c-format
 msgid ""
 "\n"
@@ -734,7 +666,7 @@ msgstr ""
 "\n"
 "报告错误至 <pgql-bugs@postgresql.org>.\n"
 
-#: initdb.c:2789
+#: initdb.c:2699
 msgid ""
 "\n"
 "WARNING: enabling \"trust\" authentication for local connections\n"
@@ -746,18 +678,18 @@ msgstr ""
 "你可以通过编辑 pg_hba.conf 更改或你下次\n"
 "行 initdb 时使用 -A或者--auth-local和--auth-host选项.\n"
 
-#: initdb.c:2811
+#: initdb.c:2721
 #, c-format
 msgid "%s: invalid authentication method \"%s\" for \"%s\" connections\n"
 msgstr "%s: 无效认证方法 \"%s\" 用于 \"%s\" 连接\n"
 
-#: initdb.c:2825
+#: initdb.c:2735
 #, c-format
 msgid ""
 "%s: must specify a password for the superuser to enable %s authentication\n"
 msgstr "%s: 为了启动 %s 认证, 你需要为超级用户指定一个口令\n"
 
-#: initdb.c:2852
+#: initdb.c:2762
 #, c-format
 msgid ""
 "%s: no data directory specified\n"
@@ -770,7 +702,7 @@ msgstr ""
 "存在. 使用 -D 选项或者\n"
 "环境变量 PGDATA.\n"
 
-#: initdb.c:2890
+#: initdb.c:2800
 #, c-format
 msgid ""
 "The program \"postgres\" is needed by %s but was not found in the\n"
@@ -781,7 +713,7 @@ msgstr ""
 "\n"
 "检查您的安装.\n"
 
-#: initdb.c:2897
+#: initdb.c:2807
 #, c-format
 msgid ""
 "The program \"postgres\" was found by \"%s\"\n"
@@ -792,17 +724,17 @@ msgstr ""
 "\n"
 "检查您的安装.\n"
 
-#: initdb.c:2916
+#: initdb.c:2826
 #, c-format
 msgid "%s: input file location must be an absolute path\n"
 msgstr "%s: 输入文件位置必须为绝对路径\n"
 
-#: initdb.c:2935
+#: initdb.c:2845
 #, c-format
 msgid "The database cluster will be initialized with locale \"%s\".\n"
 msgstr "数据库簇将使用本地化语言 \"%s\"进行初始化.\n"
 
-#: initdb.c:2938
+#: initdb.c:2848
 #, c-format
 msgid ""
 "The database cluster will be initialized with locales\n"
@@ -821,22 +753,22 @@ msgstr ""
 "  NUMERIC:  %s\n"
 "  TIME:     %s\n"
 
-#: initdb.c:2962
+#: initdb.c:2872
 #, c-format
 msgid "%s: could not find suitable encoding for locale \"%s\"\n"
 msgstr "%s: 无法为locale(本地化语言)\"%s\"找到合适的编码\n"
 
-#: initdb.c:2964
+#: initdb.c:2874
 #, c-format
 msgid "Rerun %s with the -E option.\n"
 msgstr "带 -E 选项重新运行 %s.\n"
 
-#: initdb.c:2965 initdb.c:3541 initdb.c:3562
+#: initdb.c:2875 initdb.c:3498 initdb.c:3519
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: initdb.c:2977
+#: initdb.c:2887
 #, c-format
 msgid ""
 "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n"
@@ -845,12 +777,12 @@ msgstr ""
 "本地化隐含的编码 \"%s\" 不允许作为服务器端的编码.\n"
 "默认的数据库编码将采用 \"%s\" 作为代替.\n"
 
-#: initdb.c:2985
+#: initdb.c:2895
 #, c-format
 msgid "%s: locale \"%s\" requires unsupported encoding \"%s\"\n"
 msgstr "%s: 本地化语言环境 \"%s\"要求使用不支持的编码\"%s\"\n"
 
-#: initdb.c:2988
+#: initdb.c:2898
 #, c-format
 msgid ""
 "Encoding \"%s\" is not allowed as a server-side encoding.\n"
@@ -859,57 +791,62 @@ msgstr ""
 "不允许将编码\"%s\"作为服务器端编码.\n"
 "使用一个不同的本地化语言环境重新运行%s.\n"
 
-#: initdb.c:2997
+#: initdb.c:2907
 #, c-format
 msgid "The default database encoding has accordingly been set to \"%s\".\n"
 msgstr "默认的数据库编码已经相应的设置为 \"%s\".\n"
 
-#: initdb.c:3068
+#: initdb.c:2978
 #, c-format
 msgid ""
 "%s: could not find suitable text search configuration for locale \"%s\"\n"
 msgstr "%s: 无法为本地化语言环境\"%s\"找到合适的文本搜索配置\n"
 
-#: initdb.c:3079
+#: initdb.c:2989
 #, c-format
 msgid ""
 "%s: warning: suitable text search configuration for locale \"%s\" is "
 "unknown\n"
 msgstr "%s: 警告: 对于本地化语言环境\"%s\"合适的文本搜索配置未知\n"
 
-#: initdb.c:3084
+#: initdb.c:2994
 #, c-format
 msgid ""
 "%s: warning: specified text search configuration \"%s\" might not match "
 "locale \"%s\"\n"
 msgstr "%s: 警告: 所指定的文本搜索配置\"%s\"可能与本地语言环境\"%s\"不匹配\n"
 
-#: initdb.c:3089
+#: initdb.c:2999
 #, c-format
 msgid "The default text search configuration will be set to \"%s\".\n"
 msgstr "缺省的文本搜索配置将会被设置到\"%s\"\n"
 
-#: initdb.c:3133 initdb.c:3211
+#: initdb.c:3043 initdb.c:3129
 #, c-format
 msgid "creating directory %s ... "
 msgstr "创建目录 %s ... "
 
-#: initdb.c:3147 initdb.c:3229
+#: initdb.c:3049 initdb.c:3135 initdb.c:3203 initdb.c:3259
+#, c-format
+msgid "%s: could not create directory \"%s\": %s\n"
+msgstr "%s: 无法创建目录 \"%s\": %s\n"
+
+#: initdb.c:3061 initdb.c:3147
 #, c-format
 msgid "fixing permissions on existing directory %s ... "
 msgstr "修复已存在目录 %s 的权限 ... "
 
-#: initdb.c:3153 initdb.c:3235
+#: initdb.c:3067 initdb.c:3153
 #, c-format
 msgid "%s: could not change permissions of directory \"%s\": %s\n"
 msgstr "%s: 无法改变目录 \"%s\" 的权限: %s\n"
 
-#: initdb.c:3168 initdb.c:3250
+#: initdb.c:3082 initdb.c:3168
 #, c-format
 msgid "%s: directory \"%s\" exists but is not empty\n"
 msgstr "%s: 目录\"%s\"已存在,但不是空的\n"
 
-#: initdb.c:3174
+#: initdb.c:3088
 #, c-format
 msgid ""
 "If you want to create a new database system, either remove or empty\n"
@@ -920,47 +857,47 @@ msgstr ""
 "目录 \"%s\" 或者运行带参数的 %s\n"
 "而不是 \"%s\".\n"
 
-#: initdb.c:3182 initdb.c:3263 initdb.c:3575
+#: initdb.c:3096 initdb.c:3181 initdb.c:3532
 #, c-format
 msgid "%s: could not access directory \"%s\": %s\n"
 msgstr "%s: 无法访问目录 \"%s\": %s\n"
 
-#: initdb.c:3202
+#: initdb.c:3120
 #, c-format
 msgid "%s: transaction log directory location must be an absolute path\n"
 msgstr "%s: 事务日志目录的位置必须为绝对路径\n"
 
-#: initdb.c:3256
+#: initdb.c:3174
 #, c-format
 msgid ""
 "If you want to store the transaction log there, either\n"
 "remove or empty the directory \"%s\".\n"
 msgstr "如果您要存储事务日志,需要删除或者清空目录\"%s\".\n"
 
-#: initdb.c:3274
+#: initdb.c:3189
 #, c-format
 msgid "%s: could not create symbolic link \"%s\": %s\n"
 msgstr "%s: 无法创建符号链接 \"%s\": %s\n"
 
-#: initdb.c:3279
+#: initdb.c:3194
 #, c-format
 msgid "%s: symlinks are not supported on this platform"
 msgstr "%s: 在这个平台上不支持使用符号链接"
 
-#: initdb.c:3292
+#: initdb.c:3218
 #, c-format
 msgid ""
 "It contains a dot-prefixed/invisible file, perhaps due to it being a mount "
 "point.\n"
 msgstr "它包含一个不可见的带固定点的文件,可能因为它是一个装载点。\n"
 
-#: initdb.c:3295
+#: initdb.c:3221
 #, c-format
 msgid ""
 "It contains a lost+found directory, perhaps due to it being a mount point.\n"
 msgstr "它包含名为lost+found的目录,可能因为它是一个加载点.\n"
 
-#: initdb.c:3298
+#: initdb.c:3224
 #, c-format
 msgid ""
 "Using a mount point directly as the data directory is not recommended.\n"
@@ -969,32 +906,36 @@ msgstr ""
 "不推荐将加载点作为数据目录.\n"
 "通常在加载点下边创建一个子目录.\n"
 
-#: initdb.c:3317
+#: initdb.c:3244
 #, c-format
 msgid "creating subdirectories ... "
 msgstr "正在创建子目录 ... "
 
-#: initdb.c:3485
+#: initdb.c:3291
+msgid "performing post-bootstrap initialization ... "
+msgstr "正在执行自举后初始化 ..."
+
+#: initdb.c:3442
 #, c-format
 msgid "Running in debug mode.\n"
 msgstr "运行在除错模式中. \n"
 
-#: initdb.c:3489
+#: initdb.c:3446
 #, c-format
 msgid "Running in noclean mode.  Mistakes will not be cleaned up.\n"
 msgstr "运行在 noclean 模式中. 错误将不被清理.\n"
 
-#: initdb.c:3560
+#: initdb.c:3517
 #, c-format
 msgid "%s: too many command-line arguments (first is \"%s\")\n"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: initdb.c:3586
+#: initdb.c:3543
 #, c-format
 msgid "%s: password prompt and password file cannot be specified together\n"
 msgstr "%s: 口令提示和口令文件不能同时都指定\n"
 
-#: initdb.c:3608
+#: initdb.c:3565
 #, c-format
 msgid ""
 "The files belonging to this database system will be owned by user \"%s\".\n"
@@ -1004,17 +945,17 @@ msgstr ""
 "属于此数据库系统的文件宿主为用户 \"%s\".\n"
 "此用户也必须为服务器进程的宿主.\n"
 
-#: initdb.c:3624
+#: initdb.c:3581
 #, c-format
 msgid "Data page checksums are enabled.\n"
 msgstr "允许生成数据页校验和.\n"
 
-#: initdb.c:3626
+#: initdb.c:3583
 #, c-format
 msgid "Data page checksums are disabled.\n"
 msgstr "禁止为数据页生成校验和.\n"
 
-#: initdb.c:3635
+#: initdb.c:3592
 #, c-format
 msgid ""
 "\n"
@@ -1025,16 +966,8 @@ msgstr ""
 "跳过同步到磁盘操作.\n"
 "如果操作系统宕机,数据目录可能会毁坏.\n"
 
-#: initdb.c:3644
+#: initdb.c:3601
 #, c-format
-#| msgid ""
-#| "\n"
-#| "Success. You can now start the database server using:\n"
-#| "\n"
-#| "    %s%s%spostgres%s -D %s%s%s\n"
-#| "or\n"
-#| "    %s%s%spg_ctl%s -D %s%s%s -l logfile start\n"
-#| "\n"
 msgid ""
 "\n"
 "Success. You can now start the database server using:\n"
@@ -1048,38 +981,86 @@ msgstr ""
 "    %s%s%spg_ctl%s -D %s%s%s -l logfile start\n"
 "\n"
 
-#~ msgid "%s: could not obtain information about current user: %s\n"
-#~ msgstr "%s: 无法获得当前用户的信息: %s\n"
+#~ msgid "user name lookup failure: %s"
+#~ msgstr "用户名查找失败: %s"
 
-#~ msgid "%s: could not get current user name: %s\n"
-#~ msgstr "%s: 无法获取当前用户名称: %s\n"
+#~ msgid "%s: could not to allocate SIDs: error code %lu\n"
+#~ msgstr "%s: 无法分配SID: 错误码为 %lu\n"
 
-#~ msgid "%s: unrecognized authentication method \"%s\"\n"
-#~ msgstr "%s: 未知认证方法 \"%s\".\n"
+#~ msgid "could not change directory to \"%s\""
+#~ msgstr "无法进入目录 \"%s\""
 
-#~ msgid ""
-#~ "%s: The password file was not generated. Please report this problem.\n"
-#~ msgstr "%s: 口令文件没有生成. 请报告这个问题.\n"
+#~ msgid "creating directory %s/%s ... "
+#~ msgstr "创建目录 %s/%s ... "
 
-#~ msgid "%s: could not determine valid short version string\n"
-#~ msgstr "%s: 无法确定有效的短版本字符串\n"
+#~ msgid ""
+#~ "  --locale=LOCALE           initialize database cluster with given "
+#~ "locale\n"
+#~ msgstr "  --locale=LOCALE           初始化数据库簇的 locale\n"
 
 #~ msgid "enabling unlimited row size for system tables ... "
 #~ msgstr "启动不限制系统表行大小 ... "
 
+#~ msgid "%s: could not determine valid short version string\n"
+#~ msgstr "%s: 无法确定有效的短版本字符串\n"
+
 #~ msgid ""
-#~ "  --locale=LOCALE           initialize database cluster with given "
-#~ "locale\n"
-#~ msgstr "  --locale=LOCALE           初始化数据库簇的 locale\n"
+#~ "%s: The password file was not generated. Please report this problem.\n"
+#~ msgstr "%s: 口令文件没有生成. 请报告这个问题.\n"
 
-#~ msgid "creating directory %s/%s ... "
-#~ msgstr "创建目录 %s/%s ... "
+#~ msgid "%s: unrecognized authentication method \"%s\"\n"
+#~ msgstr "%s: 未知认证方法 \"%s\".\n"
 
-#~ msgid "could not change directory to \"%s\""
-#~ msgstr "无法进入目录 \"%s\""
+#~ msgid "%s: could not get current user name: %s\n"
+#~ msgstr "%s: 无法获取当前用户名称: %s\n"
 
-#~ msgid "%s: could not to allocate SIDs: error code %lu\n"
-#~ msgstr "%s: 无法分配SID: 错误码为 %lu\n"
+#~ msgid "%s: could not obtain information about current user: %s\n"
+#~ msgstr "%s: 无法获得当前用户的信息: %s\n"
 
-#~ msgid "user name lookup failure: %s"
-#~ msgstr "用户名查找失败: %s"
+#~ msgid "copying template1 to postgres ... "
+#~ msgstr "拷贝 template1 到 template0 ... "
+
+#~ msgid "copying template1 to template0 ... "
+#~ msgstr "拷贝 template1 到 template0 ... "
+
+#~ msgid "vacuuming database template1 ... "
+#~ msgstr "清理数据库 template1 ... "
+
+#~ msgid "loading PL/pgSQL server-side language ... "
+#~ msgstr "正在装载PL/pgSQL服务器端编程语言..."
+
+#~ msgid "creating information schema ... "
+#~ msgstr "创建信息模式 ... "
+
+#~ msgid "setting privileges on built-in objects ... "
+#~ msgstr "对内建对象设置权限 ... "
+
+#~ msgid "creating dictionaries ... "
+#~ msgstr "正在创建字典 ... "
+
+#~ msgid "creating conversions ... "
+#~ msgstr "创建字符集转换 ... "
+
+#~ msgid "not supported on this platform\n"
+#~ msgstr "在此平台上不支持\n"
+
+#~ msgid "creating collations ... "
+#~ msgstr "创建(字符集)校对规则 ... "
+
+#~ msgid "loading system objects' descriptions ... "
+#~ msgstr "正在加载系统对象描述 ..."
+
+#~ msgid "creating system views ... "
+#~ msgstr "创建系统视图 ... "
+
+#~ msgid "initializing dependencies ... "
+#~ msgstr "初始化dependencies ... "
+
+#~ msgid "setting password ... "
+#~ msgstr "设置口令 ... "
+
+#~ msgid "initializing pg_authid ... "
+#~ msgstr "初始化 pg_authid ...  "
+
+#~ msgid "creating template1 database in %s/base/1 ... "
+#~ msgstr "在 %s/base/1 中创建 template1 数据库 ... "
index e8b22e6ec5406edfc953c8ad9c1fce25936b18b1..ec2268ba247d619fa6db0a01a6a7c095f34251ef 100644 (file)
@@ -5,10 +5,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libpq (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:38+0000\n"
-"PO-Revision-Date: 2015-12-01 19:33+0800\n"
+"POT-Creation-Date: 2016-04-18 04:38+0000\n"
+"PO-Revision-Date: 2016-05-19 20:39+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
-"Language-Team: Chinese (Simplified)\n"
+"Language-Team: Chinese (Simplified) <ywpeng@whu.edu.cn>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,7 +19,7 @@ msgstr ""
 msgid "GSSAPI continuation error"
 msgstr "GSSAPI连续出现错误"
 
-#: fe-auth.c:177 fe-auth.c:410
+#: fe-auth.c:177 fe-auth.c:412
 msgid "host name must be specified\n"
 msgstr "必须指定主机名\n"
 
@@ -29,14 +29,14 @@ msgstr "重复的GSS认证请求\n"
 
 # fe-connect.c:2427 fe-connect.c:2436 fe-connect.c:2933 fe-exec.c:1284
 # fe-lobj.c:536
-#: fe-auth.c:197 fe-auth.c:307 fe-auth.c:381 fe-auth.c:416 fe-auth.c:512
-#: fe-auth.c:778 fe-connect.c:707 fe-connect.c:904 fe-connect.c:1080
-#: fe-connect.c:2091 fe-connect.c:3483 fe-connect.c:3735 fe-connect.c:3854
-#: fe-connect.c:4094 fe-connect.c:4174 fe-connect.c:4273 fe-connect.c:4525
-#: fe-connect.c:4554 fe-connect.c:4626 fe-connect.c:4644 fe-connect.c:4740
-#: fe-connect.c:5074 fe-connect.c:5224 fe-exec.c:3339 fe-exec.c:3504
-#: fe-lobj.c:896 fe-protocol2.c:1206 fe-protocol3.c:1571
-#: fe-secure-openssl.c:527 fe-secure-openssl.c:1069
+#: fe-auth.c:197 fe-auth.c:309 fe-auth.c:383 fe-auth.c:418 fe-auth.c:514
+#: fe-auth.c:780 fe-connect.c:707 fe-connect.c:904 fe-connect.c:1080
+#: fe-connect.c:2091 fe-connect.c:3484 fe-connect.c:3736 fe-connect.c:3855
+#: fe-connect.c:4095 fe-connect.c:4175 fe-connect.c:4274 fe-connect.c:4526
+#: fe-connect.c:4555 fe-connect.c:4627 fe-connect.c:4645 fe-connect.c:4741
+#: fe-connect.c:5075 fe-connect.c:5225 fe-exec.c:2634 fe-exec.c:3381
+#: fe-exec.c:3546 fe-lobj.c:896 fe-protocol2.c:1206 fe-protocol3.c:992
+#: fe-protocol3.c:1678 fe-secure-openssl.c:551 fe-secure-openssl.c:1093
 msgid "out of memory\n"
 msgstr "内存用尽\n"
 
@@ -44,62 +44,61 @@ msgstr "内存用尽\n"
 msgid "GSSAPI name import error"
 msgstr "GSSAPI名称导入错误"
 
-#: fe-auth.c:296
+#: fe-auth.c:298
 msgid "SSPI continuation error"
 msgstr "SSPI连续出现错误"
 
-#: fe-auth.c:396
+#: fe-auth.c:398
 msgid "could not acquire SSPI credentials"
 msgstr "无法获得SSPI证书"
 
 # fe-auth.c:503
-#: fe-auth.c:487
+#: fe-auth.c:489
 msgid "SCM_CRED authentication method not supported\n"
 msgstr "不支持 SCM_CRED 认证方式\n"
 
 # fe-auth.c:595
-#: fe-auth.c:563
+#: fe-auth.c:565
 msgid "Kerberos 4 authentication not supported\n"
 msgstr "不支持 Kerberos 4 认证\n"
 
 # fe-auth.c:612
-#: fe-auth.c:568
+#: fe-auth.c:570
 msgid "Kerberos 5 authentication not supported\n"
 msgstr "不支持 Kerberos 5 认证\n"
 
 # fe-auth.c:595
-#: fe-auth.c:639
+#: fe-auth.c:641
 msgid "GSSAPI authentication not supported\n"
 msgstr "不支持GSSAPI认证\n"
 
 # fe-auth.c:595
-#: fe-auth.c:671
+#: fe-auth.c:673
 msgid "SSPI authentication not supported\n"
 msgstr "不支持SSPI认证\n"
 
 # fe-auth.c:595
-#: fe-auth.c:679
+#: fe-auth.c:681
 msgid "Crypt authentication not supported\n"
 msgstr "不支持Crypt认证\n"
 
 # fe-auth.c:640
-#: fe-auth.c:706
+#: fe-auth.c:708
 #, c-format
 msgid "authentication method %u not supported\n"
 msgstr "不支持 %u 认证方式\n"
 
-#: fe-auth.c:753
+#: fe-auth.c:755
 #, c-format
 msgid "user name lookup failure: error code %lu\n"
 msgstr "用户名查找失败:错误代码%lu\n"
 
-#: fe-auth.c:763 fe-connect.c:2018
+#: fe-auth.c:765 fe-connect.c:2018
 #, c-format
-#| msgid "could not to look up local user ID %ld: %s"
 msgid "could not look up local user ID %d: %s\n"
 msgstr "无法查找本地用户ID %d: %s\n"
 
-#: fe-auth.c:768 fe-connect.c:2023
+#: fe-auth.c:770 fe-connect.c:2023
 #, c-format
 msgid "local user with ID %d does not exist\n"
 msgstr "ID 为 %d 的本地用户不存在\n"
@@ -306,128 +305,127 @@ msgstr "启动过程中收到来自服务器的非预期信息\n"
 msgid "invalid connection state %d, probably indicative of memory corruption\n"
 msgstr "无效的连接状态 %d, 这可能表示内存出现问题\n"
 
-#: fe-connect.c:3089 fe-connect.c:3149
+#: fe-connect.c:3090 fe-connect.c:3150
 #, c-format
 msgid "PGEventProc \"%s\" failed during PGEVT_CONNRESET event\n"
 msgstr "在PGEVT_CONNRESET事件触发期间执行PGEventProc \"%s\"错误\n"
 
-#: fe-connect.c:3496
+#: fe-connect.c:3497
 #, c-format
 msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n"
 msgstr "无效LDAP URL\"%s\": 模式必须是ldap://\n"
 
-#: fe-connect.c:3511
+#: fe-connect.c:3512
 #, c-format
 msgid "invalid LDAP URL \"%s\": missing distinguished name\n"
 msgstr "无效LDAP URL \"%s\": 丢失可区分的名称\n"
 
-#: fe-connect.c:3522 fe-connect.c:3575
+#: fe-connect.c:3523 fe-connect.c:3576
 #, c-format
 msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n"
 msgstr "无效LDAP URL \"%s\": 只能有一个属性\n"
 
-#: fe-connect.c:3532 fe-connect.c:3589
+#: fe-connect.c:3533 fe-connect.c:3590
 #, c-format
 msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)\n"
 msgstr "无效LDAP URL \"%s\": 必须有搜索范围(base/one/sub)\n"
 
-#: fe-connect.c:3543
+#: fe-connect.c:3544
 #, c-format
 msgid "invalid LDAP URL \"%s\": no filter\n"
 msgstr "无效的 LDAP URL \"%s\": 没有过滤器\n"
 
-#: fe-connect.c:3564
+#: fe-connect.c:3565
 #, c-format
 msgid "invalid LDAP URL \"%s\": invalid port number\n"
 msgstr "无效LDAP URL \"%s\": 无效端口号\n"
 
-#: fe-connect.c:3598
+#: fe-connect.c:3599
 msgid "could not create LDAP structure\n"
 msgstr "无法创建LDAP结构\n"
 
-#: fe-connect.c:3674
+#: fe-connect.c:3675
 #, c-format
 msgid "lookup on LDAP server failed: %s\n"
 msgstr "在LDAP服务器上的查找失败: %s\n"
 
-#: fe-connect.c:3685
+#: fe-connect.c:3686
 msgid "more than one entry found on LDAP lookup\n"
 msgstr "在LDAP搜索上找到多个入口\n"
 
-#: fe-connect.c:3686 fe-connect.c:3698
+#: fe-connect.c:3687 fe-connect.c:3699
 msgid "no entry found on LDAP lookup\n"
 msgstr "在LDAP查找上没有发现入口\n"
 
-#: fe-connect.c:3709 fe-connect.c:3722
+#: fe-connect.c:3710 fe-connect.c:3723
 msgid "attribute has no values on LDAP lookup\n"
 msgstr "在LDAP查找上的属性没有值\n"
 
 # fe-connect.c:2475
-#: fe-connect.c:3774 fe-connect.c:3793 fe-connect.c:4312
+#: fe-connect.c:3775 fe-connect.c:3794 fe-connect.c:4313
 #, c-format
 msgid "missing \"=\" after \"%s\" in connection info string\n"
 msgstr "在联接信息字串里的 \"%s\" 后面缺少 \"=\"\n"
 
 # fe-connect.c:2558
-#: fe-connect.c:3866 fe-connect.c:4493 fe-connect.c:5207
+#: fe-connect.c:3867 fe-connect.c:4494 fe-connect.c:5208
 #, c-format
 msgid "invalid connection option \"%s\"\n"
 msgstr "非法联接选项 \"%s\"\n"
 
 # fe-connect.c:2524
-#: fe-connect.c:3882 fe-connect.c:4361
+#: fe-connect.c:3883 fe-connect.c:4362
 msgid "unterminated quoted string in connection info string\n"
 msgstr "联接信息字串中未结束的引号字串\n"
 
-#: fe-connect.c:3922
+#: fe-connect.c:3923
 msgid "could not get home directory to locate service definition file"
 msgstr "无法进入home目录来定位服务定义文件"
 
-#: fe-connect.c:3955
+#: fe-connect.c:3956
 #, c-format
 msgid "definition of service \"%s\" not found\n"
 msgstr "错误:没有找到服务\"%s\"的定义\n"
 
-#: fe-connect.c:3978
+#: fe-connect.c:3979
 #, c-format
 msgid "service file \"%s\" not found\n"
 msgstr "错误:没有找到服务文件\"%s\"\n"
 
-#: fe-connect.c:3991
+#: fe-connect.c:3992
 #, c-format
 msgid "line %d too long in service file \"%s\"\n"
 msgstr "在服务文件\"%2$s\"中的第%1$d行的长度太长\n"
 
-#: fe-connect.c:4062 fe-connect.c:4106
+#: fe-connect.c:4063 fe-connect.c:4107
 #, c-format
 msgid "syntax error in service file \"%s\", line %d\n"
 msgstr "在服务文件\"%s\"的第%d行出现语法错误\n"
 
-#: fe-connect.c:4073
+#: fe-connect.c:4074
 #, c-format
-#| msgid "syntax error in service file \"%s\", line %d\n"
 msgid ""
 "nested service specifications not supported in service file \"%s\", line %d\n"
 msgstr "在服务文件\"%s\"的第%d行出现不支持的嵌套服务说明\n"
 
-#: fe-connect.c:4751
+#: fe-connect.c:4752
 #, c-format
 msgid "invalid URI propagated to internal parser routine: \"%s\"\n"
 msgstr "无效的URI传入内部解析器处理程序: \"%s\"\n"
 
-#: fe-connect.c:4821
+#: fe-connect.c:4822
 #, c-format
 msgid ""
 "end of string reached when looking for matching \"]\" in IPv6 host address "
 "in URI: \"%s\"\n"
 msgstr "在 URI: \"%s\"中的IPv6主机地址里查找匹配符\"]\"时遇到了字符串结束符\n"
 
-#: fe-connect.c:4828
+#: fe-connect.c:4829
 #, c-format
 msgid "IPv6 host address may not be empty in URI: \"%s\"\n"
 msgstr "URI:\"%s\"中的IPv6主机地址可能不为空\n"
 
-#: fe-connect.c:4843
+#: fe-connect.c:4844
 #, c-format
 msgid ""
 "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): "
@@ -435,161 +433,166 @@ msgid ""
 msgstr ""
 "非预期的字符\"%c\"出现在在位置%d, URI (expected \":\" or \"/\"):\"%s\"\n"
 
-#: fe-connect.c:4957
+#: fe-connect.c:4958
 #, c-format
 msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n"
 msgstr "遇到多余的键/值分隔符\"=\"在URI查询参数里: \"%s\"\n"
 
-#: fe-connect.c:4977
+#: fe-connect.c:4978
 #, c-format
 msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n"
 msgstr "缺少相应的键/值分隔符\"=\"在URI查询参数里: \"%s\"\n"
 
-#: fe-connect.c:5028
+#: fe-connect.c:5029
 #, c-format
 msgid "invalid URI query parameter: \"%s\"\n"
 msgstr "无效的URI查询参数: \"%s\"\n"
 
 # fe-connect.c:2558
-#: fe-connect.c:5102
+#: fe-connect.c:5103
 #, c-format
 msgid "invalid percent-encoded token: \"%s\"\n"
 msgstr "无效的百分号编码令牌: \"%s\"\n"
 
-#: fe-connect.c:5112
+#: fe-connect.c:5113
 #, c-format
 msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n"
 msgstr "在百分值编码的值: \"%s\"里禁止使用 %%00\n"
 
 # fe-connect.c:2744
-#: fe-connect.c:5443
+#: fe-connect.c:5447
 msgid "connection pointer is NULL\n"
 msgstr "联接指针是 NULL\n"
 
-#: fe-connect.c:5729
+#: fe-connect.c:5745
 #, c-format
 msgid "WARNING: password file \"%s\" is not a plain file\n"
 msgstr "警告: 口令文件\"%s\"不是普通文本文件\n"
 
 # fe-connect.c:2953
-#: fe-connect.c:5738
+#: fe-connect.c:5754
 #, c-format
 msgid ""
 "WARNING: password file \"%s\" has group or world access; permissions should "
 "be u=rw (0600) or less\n"
 msgstr "警告: 口令文件\"%s\"的访问权限过大; 权限应设置 为 u=rw (0600)或更少\n"
 
-#: fe-connect.c:5844
+#: fe-connect.c:5860
 #, c-format
 msgid "password retrieved from file \"%s\"\n"
 msgstr "从文件\"%s\"中获取口令\n"
 
-#: fe-exec.c:825
+#: fe-exec.c:826
 msgid "NOTICE"
 msgstr "注意"
 
 # fe-exec.c:737
-#: fe-exec.c:1122 fe-exec.c:1180 fe-exec.c:1226
+#: fe-exec.c:1123 fe-exec.c:1181 fe-exec.c:1227
 msgid "command string is a null pointer\n"
 msgstr "命令字串是一个空指针\n"
 
-#: fe-exec.c:1186 fe-exec.c:1232 fe-exec.c:1327
+#: fe-exec.c:1187 fe-exec.c:1233 fe-exec.c:1328
 msgid "number of parameters must be between 0 and 65535\n"
 msgstr "参数的个数必须介于0到65535之间\n"
 
 # fe-exec.c:737
-#: fe-exec.c:1220 fe-exec.c:1321
+#: fe-exec.c:1221 fe-exec.c:1322
 msgid "statement name is a null pointer\n"
 msgstr "声明名字是一个空指针\n"
 
-#: fe-exec.c:1240 fe-exec.c:1404 fe-exec.c:2119 fe-exec.c:2318
+#: fe-exec.c:1241 fe-exec.c:1405 fe-exec.c:2123 fe-exec.c:2322
 msgid "function requires at least protocol version 3.0\n"
 msgstr "函数至少需要 3.0 版本的协议\n"
 
 # fe-exec.c:745
-#: fe-exec.c:1358
+#: fe-exec.c:1359
 msgid "no connection to the server\n"
 msgstr "没有到服务器的联接\n"
 
 # fe-exec.c:752
-#: fe-exec.c:1365
+#: fe-exec.c:1366
 msgid "another command is already in progress\n"
 msgstr "已经有另外一条命令在处理\n"
 
-#: fe-exec.c:1480
+#: fe-exec.c:1481
 msgid "length must be given for binary parameter\n"
 msgstr "对于2进制参数必须指定长度\n"
 
 # fe-exec.c:1371
-#: fe-exec.c:1749
+#: fe-exec.c:1753
 #, c-format
 msgid "unexpected asyncStatus: %d\n"
 msgstr "意外的 asyncStatus(异步状态): %d\n"
 
-#: fe-exec.c:1769
+#: fe-exec.c:1773
 #, c-format
 msgid "PGEventProc \"%s\" failed during PGEVT_RESULTCREATE event\n"
 msgstr "在PGEVT_CONNRESET事件触发期间执行PGEventProc \"%s\"错误\n"
 
-#: fe-exec.c:1929
+#: fe-exec.c:1933
 msgid "COPY terminated by new PQexec"
 msgstr "COPY 被一个新的 PQexec 终止"
 
 # fe-exec.c:1421
-#: fe-exec.c:1937
+#: fe-exec.c:1941
 msgid "COPY IN state must be terminated first\n"
 msgstr "COPY IN 状态必须先结束\n"
 
 # fe-exec.c:1421
-#: fe-exec.c:1957
+#: fe-exec.c:1961
 msgid "COPY OUT state must be terminated first\n"
 msgstr "COPY OUT 状态必须先结束\n"
 
-#: fe-exec.c:1965
+#: fe-exec.c:1969
 msgid "PQexec not allowed during COPY BOTH\n"
 msgstr "在 COPY BOTH时不允许调用PQexec\n"
 
 # fe-exec.c:1780
-#: fe-exec.c:2208 fe-exec.c:2275 fe-exec.c:2365 fe-protocol2.c:1352
-#: fe-protocol3.c:1710
+#: fe-exec.c:2212 fe-exec.c:2279 fe-exec.c:2369 fe-protocol2.c:1352
+#: fe-protocol3.c:1817
 msgid "no COPY in progress\n"
 msgstr "没有正在处理的 COPY\n"
 
 # fe-exec.c:1884
-#: fe-exec.c:2555
+#: fe-exec.c:2559
 msgid "connection in wrong state\n"
 msgstr "联接处于错误状态\n"
 
 # fe-exec.c:2055
-#: fe-exec.c:2586
+#: fe-exec.c:2590
 msgid "invalid ExecStatusType code"
 msgstr "非法 ExecStatusType 代码"
 
+#: fe-exec.c:2617
+#| msgid "result is out of range"
+msgid "PGresult is not an error result\n"
+msgstr "PGresult不是错误的结果\n"
+
 # fe-exec.c:2108 fe-exec.c:2141
-#: fe-exec.c:2650 fe-exec.c:2673
+#: fe-exec.c:2692 fe-exec.c:2715
 #, c-format
 msgid "column number %d is out of range 0..%d"
 msgstr "列号码 %d 超出了范围 0..%d"
 
 # fe-exec.c:2130
-#: fe-exec.c:2666
+#: fe-exec.c:2708
 #, c-format
 msgid "row number %d is out of range 0..%d"
 msgstr "行号码 %d 超出了范围 0..%d"
 
 # fe-exec.c:2130
-#: fe-exec.c:2688
+#: fe-exec.c:2730
 #, c-format
 msgid "parameter number %d is out of range 0..%d"
 msgstr "参数号%d超出了范围 0..%d"
 
 # fe-exec.c:2325
-#: fe-exec.c:2998
+#: fe-exec.c:3040
 #, c-format
 msgid "could not interpret result from server: %s"
 msgstr "无法解释来自服务器的结果: %s"
 
-#: fe-exec.c:3237 fe-exec.c:3321
+#: fe-exec.c:3279 fe-exec.c:3363
 msgid "incomplete multibyte character\n"
 msgstr "无效的多字节字符\n"
 
@@ -709,7 +712,7 @@ msgid "connection not open\n"
 msgstr "联接未打开\n"
 
 # fe-misc.c:612 fe-misc.c:686
-#: fe-misc.c:812 fe-secure-openssl.c:249 fe-secure-openssl.c:355
+#: fe-misc.c:812 fe-secure-openssl.c:270 fe-secure-openssl.c:379
 #: fe-secure.c:253 fe-secure.c:362
 msgid ""
 "server closed the connection unexpectedly\n"
@@ -724,10 +727,10 @@ msgstr ""
 msgid "timeout expired\n"
 msgstr "超时满\n"
 
-# fe-misc.c:450 fe-misc.c:642 fe-misc.c:798
 #: fe-misc.c:1061
-msgid "socket not open\n"
-msgstr "套接字未打开\n"
+#| msgid "invalid symbol"
+msgid "invalid socket\n"
+msgstr "无效套接字\n"
 
 # fe-misc.c:389 fe-misc.c:423 fe-misc.c:838
 #: fe-misc.c:1084
@@ -753,8 +756,8 @@ msgid "message type 0x%02x arrived from server while idle"
 msgstr "当空闲时收到服务起发送过来的消息类型 0x%02x"
 
 #: fe-protocol2.c:503 fe-protocol2.c:538 fe-protocol2.c:1049
-#: fe-protocol3.c:209 fe-protocol3.c:236 fe-protocol3.c:253 fe-protocol3.c:324
-#: fe-protocol3.c:995
+#: fe-protocol3.c:209 fe-protocol3.c:236 fe-protocol3.c:253 fe-protocol3.c:333
+#: fe-protocol3.c:728 fe-protocol3.c:951
 msgid "out of memory"
 msgstr "内存用尽"
 
@@ -782,18 +785,18 @@ msgstr ""
 "message)"
 
 # fe-connect.c:1378
-#: fe-protocol2.c:633 fe-protocol3.c:402
+#: fe-protocol2.c:633 fe-protocol3.c:412
 #, c-format
 msgid "unexpected response from server; first received character was \"%c\"\n"
 msgstr "来自服务器意外的回执, 第一个收到的字符是 \"%c\"\n"
 
 # fe-connect.c:2427 fe-connect.c:2436 fe-connect.c:2933 fe-exec.c:1284
 # fe-lobj.c:536
-#: fe-protocol2.c:762 fe-protocol2.c:937 fe-protocol3.c:617 fe-protocol3.c:799
+#: fe-protocol2.c:762 fe-protocol2.c:937 fe-protocol3.c:627 fe-protocol3.c:854
 msgid "out of memory for query result"
 msgstr "查询结果时内存耗尽"
 
-#: fe-protocol2.c:1395 fe-protocol3.c:1779
+#: fe-protocol2.c:1395 fe-protocol3.c:1886
 #, c-format
 msgid "%s"
 msgstr "%s"
@@ -803,12 +806,12 @@ msgstr "%s"
 msgid "lost synchronization with server, resetting connection"
 msgstr "失去与服务器同步, 重置连接"
 
-#: fe-protocol2.c:1541 fe-protocol2.c:1573 fe-protocol3.c:1982
+#: fe-protocol2.c:1541 fe-protocol2.c:1573 fe-protocol3.c:2089
 #, c-format
 msgid "protocol error: id=0x%x\n"
 msgstr "协议错误: id=0x%x\n"
 
-#: fe-protocol3.c:358
+#: fe-protocol3.c:368
 msgid ""
 "server sent data (\"D\" message) without prior row description (\"T\" "
 "message)\n"
@@ -816,111 +819,122 @@ msgstr ""
 "server sent data (\"D\" message) without prior row description (\"T\" "
 "message)\n"
 
-#: fe-protocol3.c:423
+#: fe-protocol3.c:433
 #, c-format
 msgid "message contents do not agree with length in message type \"%c\"\n"
 msgstr "在消息类型 \"%c\" 中, 消息内容与长度不匹配\n"
 
-#: fe-protocol3.c:444
+#: fe-protocol3.c:454
 #, c-format
 msgid "lost synchronization with server: got message type \"%c\", length %d\n"
 msgstr "失去与服务器同步: 获取到消息类型 \"%c\", 长度 %d\n"
 
-#: fe-protocol3.c:495 fe-protocol3.c:535
+#: fe-protocol3.c:505 fe-protocol3.c:545
 msgid "insufficient data in \"T\" message"
 msgstr "\"T\"消息中剩下的数据不够"
 
-#: fe-protocol3.c:568
+#: fe-protocol3.c:578
 msgid "extraneous data in \"T\" message"
-msgstr "\"T\"消息中已经没有数据了"
+msgstr "\"T\"消息中有无关的数据"
 
-#: fe-protocol3.c:707 fe-protocol3.c:739 fe-protocol3.c:757
+#: fe-protocol3.c:691
+#| msgid "extraneous data in \"T\" message"
+msgid "extraneous data in \"t\" message"
+msgstr "\"t\"消息中有无关的数据"
+
+#: fe-protocol3.c:762 fe-protocol3.c:794 fe-protocol3.c:812
 msgid "insufficient data in \"D\" message"
 msgstr "\"D\"消息中剩下的数据不够"
 
-#: fe-protocol3.c:713
+#: fe-protocol3.c:768
 msgid "unexpected field count in \"D\" message"
 msgstr "在 \"D\" 消息中, 意外的字段个数"
 
-#: fe-protocol3.c:766
+#: fe-protocol3.c:821
 msgid "extraneous data in \"D\" message"
 msgstr "\"D\"消息中已经没有数据了"
 
+# startup.c:502
+#: fe-protocol3.c:1005
+#| msgid "\\%s: error while setting variable\n"
+msgid "no error message available\n"
+msgstr "没有可用的错误消息\n"
+
 #. translator: %s represents a digit string
-#: fe-protocol3.c:898 fe-protocol3.c:917
+#: fe-protocol3.c:1035 fe-protocol3.c:1054
 #, c-format
 msgid " at character %s"
 msgstr " 在字符 %s"
 
-#: fe-protocol3.c:930
+#: fe-protocol3.c:1067
 #, c-format
 msgid "DETAIL:  %s\n"
 msgstr "描述:  %s\n"
 
-#: fe-protocol3.c:933
+#: fe-protocol3.c:1070
 #, c-format
 msgid "HINT:  %s\n"
 msgstr "提示:  %s\n"
 
-#: fe-protocol3.c:936
+#: fe-protocol3.c:1073
 #, c-format
 msgid "QUERY:  %s\n"
 msgstr "查询:  %s\n"
 
-#: fe-protocol3.c:939
+#: fe-protocol3.c:1080
 #, c-format
 msgid "CONTEXT:  %s\n"
 msgstr "背景:  %s\n"
 
-#: fe-protocol3.c:946
+#: fe-protocol3.c:1089
 #, c-format
 msgid "SCHEMA NAME:  %s\n"
 msgstr "方案名:  %s\n"
 
-#: fe-protocol3.c:950
+#: fe-protocol3.c:1093
 #, c-format
 msgid "TABLE NAME:  %s\n"
 msgstr "表名: %s\n"
 
-#: fe-protocol3.c:954
+#: fe-protocol3.c:1097
 #, c-format
 msgid "COLUMN NAME:  %s\n"
 msgstr "列名: %s\n"
 
-#: fe-protocol3.c:958
+#: fe-protocol3.c:1101
 #, c-format
 msgid "DATATYPE NAME:  %s\n"
 msgstr "数据类型名: %s\n"
 
-#: fe-protocol3.c:962
+#: fe-protocol3.c:1105
 #, c-format
 msgid "CONSTRAINT NAME:  %s\n"
 msgstr "约束名: %s\n"
 
-#: fe-protocol3.c:974
+#: fe-protocol3.c:1117
 msgid "LOCATION:  "
 msgstr "位置:  "
 
-#: fe-protocol3.c:976
+#: fe-protocol3.c:1119
 #, c-format
 msgid "%s, "
 msgstr "%s, "
 
-#: fe-protocol3.c:978
+#: fe-protocol3.c:1121
 #, c-format
 msgid "%s:%s"
 msgstr "%s:%s"
 
-#: fe-protocol3.c:1209
+#: fe-protocol3.c:1316
 #, c-format
 msgid "LINE %d: "
 msgstr "第%d行"
 
-#: fe-protocol3.c:1604
+#: fe-protocol3.c:1711
 msgid "PQgetline: not doing text COPY OUT\n"
 msgstr "PQgetline: not doing text COPY OUT\n"
 
-#: fe-secure-openssl.c:146 fe-secure-openssl.c:1006 fe-secure-openssl.c:1226
+#: fe-secure-openssl.c:146 fe-secure-openssl.c:1030 fe-secure-openssl.c:1250
 #, c-format
 msgid "could not acquire mutex: %s\n"
 msgstr "无法获取互斥锁(mutex): %s\n"
@@ -930,131 +944,127 @@ msgstr "无法获取互斥锁(mutex): %s\n"
 msgid "could not establish SSL connection: %s\n"
 msgstr "无法建立 SSL 联接: %s\n"
 
-#: fe-secure-openssl.c:254 fe-secure-openssl.c:360 fe-secure-openssl.c:1349
+#: fe-secure-openssl.c:275 fe-secure-openssl.c:384 fe-secure-openssl.c:1376
 #, c-format
 msgid "SSL SYSCALL error: %s\n"
 msgstr "SSL SYSCALL 错误: %s\n"
 
-#: fe-secure-openssl.c:261 fe-secure-openssl.c:367 fe-secure-openssl.c:1353
+#: fe-secure-openssl.c:282 fe-secure-openssl.c:391 fe-secure-openssl.c:1380
 msgid "SSL SYSCALL error: EOF detected\n"
 msgstr "SSL SYSCALL 错误: 发现结束符\n"
 
 # fe-auth.c:232
-#: fe-secure-openssl.c:272 fe-secure-openssl.c:378 fe-secure-openssl.c:1362
+#: fe-secure-openssl.c:293 fe-secure-openssl.c:402 fe-secure-openssl.c:1389
 #, c-format
 msgid "SSL error: %s\n"
 msgstr "SSL 错误: %s\n"
 
-#: fe-secure-openssl.c:287 fe-secure-openssl.c:393
+#: fe-secure-openssl.c:308 fe-secure-openssl.c:417
 msgid "SSL connection has been closed unexpectedly\n"
 msgstr "SSL连接异常关闭\n"
 
-#: fe-secure-openssl.c:293 fe-secure-openssl.c:399 fe-secure-openssl.c:1371
+#: fe-secure-openssl.c:314 fe-secure-openssl.c:423 fe-secure-openssl.c:1398
 #, c-format
 msgid "unrecognized SSL error code: %d\n"
 msgstr "未知的 SSL 错误码: %d\n"
 
-#: fe-secure-openssl.c:511
-#| msgid "SSL certificate's common name contains embedded null\n"
+#: fe-secure-openssl.c:535
 msgid "SSL certificate's name entry is missing\n"
 msgstr "SSL证书的名称项缺失\n"
 
-#: fe-secure-openssl.c:541
-#| msgid "SSL certificate's common name contains embedded null\n"
+#: fe-secure-openssl.c:565
 msgid "SSL certificate's name contains embedded null\n"
 msgstr "SSL证书的名称包含嵌入的空值\n"
 
-#: fe-secure-openssl.c:592
+#: fe-secure-openssl.c:616
 msgid "host name must be specified for a verified SSL connection\n"
 msgstr "必须为一个已验证的SSL连接指定主机名\n"
 
-#: fe-secure-openssl.c:692
+#: fe-secure-openssl.c:716
 #, c-format
-#| msgid "server common name \"%s\" does not match host name \"%s\"\n"
 msgid "server certificate for \"%s\" does not match host name \"%s\"\n"
 msgstr "\"%s\"的服务器证书与主机名不匹配\"%s\"\n"
 
-#: fe-secure-openssl.c:698
-#| msgid "could not get server common name from server certificate\n"
+#: fe-secure-openssl.c:722
 msgid "could not get server's host name from server certificate\n"
 msgstr "无法从服务器证书得到服务器的主机名\n"
 
-#: fe-secure-openssl.c:845
+#: fe-secure-openssl.c:869
 #, c-format
 msgid "could not create SSL context: %s\n"
 msgstr "无法创建 SSL 环境: %s\n"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: fe-secure-openssl.c:976
+#: fe-secure-openssl.c:1000
 #, c-format
 msgid "could not open certificate file \"%s\": %s\n"
 msgstr "无法打开证书文件 \"%s\": %s\n"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: fe-secure-openssl.c:1015 fe-secure-openssl.c:1030
+#: fe-secure-openssl.c:1039 fe-secure-openssl.c:1054
 #, c-format
 msgid "could not read certificate file \"%s\": %s\n"
 msgstr "无法读取证书文件 \"%s\": %s\n"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: fe-secure-openssl.c:1085
+#: fe-secure-openssl.c:1109
 #, c-format
 msgid "could not load SSL engine \"%s\": %s\n"
 msgstr "无法加载SSL引擎 \"%s\": %s\n"
 
-#: fe-secure-openssl.c:1097
+#: fe-secure-openssl.c:1121
 #, c-format
 msgid "could not initialize SSL engine \"%s\": %s\n"
 msgstr "无法初始化SSL引擎\"%s\": %s\n"
 
 # fe-connect.c:891
-#: fe-secure-openssl.c:1113
+#: fe-secure-openssl.c:1137
 #, c-format
 msgid "could not read private SSL key \"%s\" from engine \"%s\": %s\n"
 msgstr "无法从引擎\"%2$s\"读取私有SSL钥\"%1$s\": %3$s\n"
 
 # fe-connect.c:891
-#: fe-secure-openssl.c:1127
+#: fe-secure-openssl.c:1151
 #, c-format
 msgid "could not load private SSL key \"%s\" from engine \"%s\": %s\n"
 msgstr "无法从引擎\"%2$s\"读取私有SSL钥\"%1$s\": %3$s\n"
 
-#: fe-secure-openssl.c:1164
+#: fe-secure-openssl.c:1188
 #, c-format
 msgid "certificate present, but not private key file \"%s\"\n"
 msgstr "有证书, 但不是私钥文件 \"%s\"\n"
 
 # fe-connect.c:2953
-#: fe-secure-openssl.c:1172
+#: fe-secure-openssl.c:1196
 #, c-format
 msgid ""
 "private key file \"%s\" has group or world access; permissions should be "
 "u=rw (0600) or less\n"
 msgstr "警告: 私钥文件 \"%s\"的访问权限过大; 权限应设置 为 u=rw (0600)或更小\n"
 
-#: fe-secure-openssl.c:1183
+#: fe-secure-openssl.c:1207
 #, c-format
 msgid "could not load private key file \"%s\": %s\n"
 msgstr "无法装载私钥文件 \"%s\": %s\n"
 
-#: fe-secure-openssl.c:1197
+#: fe-secure-openssl.c:1221
 #, c-format
 msgid "certificate does not match private key file \"%s\": %s\n"
 msgstr "证书不匹配私钥文件 \"%s\": %s\n"
 
 # fe-connect.c:891
-#: fe-secure-openssl.c:1235
+#: fe-secure-openssl.c:1259
 #, c-format
 msgid "could not read root certificate file \"%s\": %s\n"
 msgstr "无法读取根证书文件 \"%s\": %s\n"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: fe-secure-openssl.c:1265
+#: fe-secure-openssl.c:1289
 #, c-format
 msgid "SSL library does not support CRL certificates (file \"%s\")\n"
 msgstr "SSL库不支持CRL认证(文件 \"%s\")\n"
 
-#: fe-secure-openssl.c:1298
+#: fe-secure-openssl.c:1322
 msgid ""
 "could not get home directory to locate root certificate file\n"
 "Either provide the file or change sslmode to disable server certificate "
@@ -1063,7 +1073,7 @@ msgstr ""
 "无法获取home目录以定位根认证文件\n"
 "可以提供该文件或者将sslmode改为禁用服务器证书认证.\n"
 
-#: fe-secure-openssl.c:1302
+#: fe-secure-openssl.c:1326
 #, c-format
 msgid ""
 "root certificate file \"%s\" does not exist\n"
@@ -1073,17 +1083,17 @@ msgstr ""
 "根认证文件\"%s\"不存在\n"
 "可以提供这个文件或者将sslmode改为禁用服务器认证检验.\n"
 
-#: fe-secure-openssl.c:1390
+#: fe-secure-openssl.c:1419
 #, c-format
 msgid "certificate could not be obtained: %s\n"
 msgstr "无法获得证书: %s\n"
 
-#: fe-secure-openssl.c:1482
+#: fe-secure-openssl.c:1511
 #, c-format
 msgid "no SSL error reported"
 msgstr "没有报告SSL错误"
 
-#: fe-secure-openssl.c:1491
+#: fe-secure-openssl.c:1520
 #, c-format
 msgid "SSL error code %lu"
 msgstr "SSL 错误代码 %lu"
index 91b5cabe53f48e2a9a65a76d25c40e251055bdc8..284bfe59c0d6cb57daeacf3cf48a591e4c4e6544 100644 (file)
@@ -7,10 +7,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pg_basebackup (PostgreSQL) 9.2\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:43+0000\n"
-"PO-Revision-Date: 2015-12-01 19:39+0800\n"
+"POT-Creation-Date: 2016-04-18 04:44+0000\n"
+"PO-Revision-Date: 2016-05-19 20:40+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
-"Language-Team: Chinese (Simplified)\n"
+"Language-Team: Chinese (Simplified) <ywpeng@whu.edu.cn>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -113,7 +113,12 @@ msgstr ""
 "  -R, --write-recovery-conf\n"
 "                           备份后对文件recovery.conf进行写操作\n"
 
-#: pg_basebackup.c:242
+#: pg_basebackup.c:242 pg_receivexlog.c:74
+#, c-format
+msgid "  -S, --slot=SLOTNAME    replication slot to use\n"
+msgstr "  -S, --slot=SLOTNAME    用于复制的槽名\n"
+
+#: pg_basebackup.c:243
 #, c-format
 msgid ""
 "  -T, --tablespace-mapping=OLDDIR=NEWDIR\n"
@@ -122,13 +127,13 @@ msgstr ""
 "  -T, --tablespace-mapping=OLDDIR=NEWDIR\n"
 "                         将表空间由 OLDDIR 重定位到 NEWDIR\n"
 
-#: pg_basebackup.c:244
+#: pg_basebackup.c:245
 #, c-format
 msgid ""
 "  -x, --xlog             include required WAL files in backup (fetch mode)\n"
 msgstr "  -x, --xlog             在备份中包含必需的WAL文件(fetch 模式)\n"
 
-#: pg_basebackup.c:245
+#: pg_basebackup.c:246
 #, c-format
 msgid ""
 "  -X, --xlog-method=fetch|stream\n"
@@ -137,23 +142,23 @@ msgstr ""
 "  -X, --xlog-method=fetch|stream\n"
 "                         按指定的模式包含必需的WAL日志文件\n"
 
-#: pg_basebackup.c:247
+#: pg_basebackup.c:248
 #, c-format
 msgid "      --xlogdir=XLOGDIR  location for the transaction log directory\n"
 msgstr "      --xlogdir=XLOGDIR  当前事务日志目录的位置\n"
 
-#: pg_basebackup.c:248
+#: pg_basebackup.c:249
 #, c-format
 msgid "  -z, --gzip             compress tar output\n"
 msgstr "  -z, --gzip             对tar文件进行压缩输出\n"
 
-#: pg_basebackup.c:249
+#: pg_basebackup.c:250
 #, c-format
 msgid ""
 "  -Z, --compress=0-9     compress tar output with given compression level\n"
 msgstr "  -Z, --compress=0-9     按给定的压缩级别对tar文件进行压缩输出\n"
 
-#: pg_basebackup.c:250
+#: pg_basebackup.c:251
 #, c-format
 msgid ""
 "\n"
@@ -162,7 +167,7 @@ msgstr ""
 "\n"
 "一般选项:\n"
 
-#: pg_basebackup.c:251
+#: pg_basebackup.c:252
 #, c-format
 msgid ""
 "  -c, --checkpoint=fast|spread\n"
@@ -171,32 +176,32 @@ msgstr ""
 "  -c, --checkpoint=fast|spread\n"
 "                         设置检查点方式(fast或者spread)\n"
 
-#: pg_basebackup.c:253
+#: pg_basebackup.c:254
 #, c-format
 msgid "  -l, --label=LABEL      set backup label\n"
 msgstr "  -l, --label=LABEL      设置备份标签\n"
 
-#: pg_basebackup.c:254
+#: pg_basebackup.c:255
 #, c-format
 msgid "  -P, --progress         show progress information\n"
 msgstr "  -P, --progress         显示进度信息\n"
 
-#: pg_basebackup.c:255 pg_receivexlog.c:76 pg_recvlogical.c:89
+#: pg_basebackup.c:256 pg_receivexlog.c:76 pg_recvlogical.c:89
 #, c-format
 msgid "  -v, --verbose          output verbose messages\n"
 msgstr "  -v, --verbose          输出详细的消息\n"
 
-#: pg_basebackup.c:256 pg_receivexlog.c:77 pg_recvlogical.c:90
+#: pg_basebackup.c:257 pg_receivexlog.c:77 pg_recvlogical.c:90
 #, c-format
 msgid "  -V, --version          output version information, then exit\n"
 msgstr "  -V, --version          输出版本信息, 然后退出\n"
 
-#: pg_basebackup.c:257 pg_receivexlog.c:78 pg_recvlogical.c:91
+#: pg_basebackup.c:258 pg_receivexlog.c:78 pg_recvlogical.c:91
 #, c-format
 msgid "  -?, --help             show this help, then exit\n"
 msgstr "  -?, --help             显示帮助, 然后退出\n"
 
-#: pg_basebackup.c:258 pg_receivexlog.c:79 pg_recvlogical.c:92
+#: pg_basebackup.c:259 pg_receivexlog.c:79 pg_recvlogical.c:92
 #, c-format
 msgid ""
 "\n"
@@ -205,22 +210,22 @@ msgstr ""
 "\n"
 "联接选项:\n"
 
-#: pg_basebackup.c:259 pg_receivexlog.c:80
+#: pg_basebackup.c:260 pg_receivexlog.c:80
 #, c-format
 msgid "  -d, --dbname=CONNSTR   connection string\n"
 msgstr "  -d, --dbname=CONNSTR        连接串\n"
 
-#: pg_basebackup.c:260 pg_receivexlog.c:81 pg_recvlogical.c:94
+#: pg_basebackup.c:261 pg_receivexlog.c:81 pg_recvlogical.c:94
 #, c-format
 msgid "  -h, --host=HOSTNAME    database server host or socket directory\n"
 msgstr "  -h, --host=HOSTNAME    数据库服务器主机或者是socket目录\n"
 
-#: pg_basebackup.c:261 pg_receivexlog.c:82 pg_recvlogical.c:95
+#: pg_basebackup.c:262 pg_receivexlog.c:82 pg_recvlogical.c:95
 #, c-format
 msgid "  -p, --port=PORT        database server port number\n"
 msgstr "  -p, --port=PORT        数据库服务器端口号\n"
 
-#: pg_basebackup.c:262
+#: pg_basebackup.c:263
 #, c-format
 msgid ""
 "  -s, --status-interval=INTERVAL\n"
@@ -230,24 +235,24 @@ msgstr ""
 "  -s, --status-interval=INTERVAL\n"
 "                         发往服务器的状态包的时间间隔 (以秒计)\n"
 
-#: pg_basebackup.c:264 pg_receivexlog.c:83 pg_recvlogical.c:96
+#: pg_basebackup.c:265 pg_receivexlog.c:83 pg_recvlogical.c:96
 #, c-format
 msgid "  -U, --username=NAME    connect as specified database user\n"
 msgstr "  -U, --username=NAME    指定连接所需的数据库用户名\n"
 
-#: pg_basebackup.c:265 pg_receivexlog.c:84 pg_recvlogical.c:97
+#: pg_basebackup.c:266 pg_receivexlog.c:84 pg_recvlogical.c:97
 #, c-format
 msgid "  -w, --no-password      never prompt for password\n"
 msgstr "  -w, --no-password      禁用输入密码的提示\n"
 
-#: pg_basebackup.c:266 pg_receivexlog.c:85 pg_recvlogical.c:98
+#: pg_basebackup.c:267 pg_receivexlog.c:85 pg_recvlogical.c:98
 #, c-format
 msgid ""
 "  -W, --password         force password prompt (should happen "
 "automatically)\n"
 msgstr "  -W, --password         强制提示输入密码 (应该自动发生)\n"
 
-#: pg_basebackup.c:267 pg_receivexlog.c:89 pg_recvlogical.c:99
+#: pg_basebackup.c:268 pg_receivexlog.c:89 pg_recvlogical.c:99
 #, c-format
 msgid ""
 "\n"
@@ -256,195 +261,195 @@ msgstr ""
 "\n"
 "错误报告至 <pgsql-bugs@postgresql.org>.\n"
 
-#: pg_basebackup.c:310
+#: pg_basebackup.c:311
 #, c-format
 msgid "%s: could not read from ready pipe: %s\n"
 msgstr "%s: 无法从准备就绪的管道: %s读\n"
 
-#: pg_basebackup.c:318 pg_basebackup.c:411 pg_basebackup.c:1869
+#: pg_basebackup.c:319 pg_basebackup.c:422 pg_basebackup.c:1887
 #: streamutil.c:285
 #, c-format
 msgid "%s: could not parse transaction log location \"%s\"\n"
 msgstr "%s: 无法解析来自 \"%s\"的事务日志\n"
 
-#: pg_basebackup.c:424
+#: pg_basebackup.c:435
 #, c-format
 msgid "%s: could not create pipe for background process: %s\n"
 msgstr "%s: 无法为后台进程: %s创建管道\n"
 
-#: pg_basebackup.c:449 pg_basebackup.c:504 pg_basebackup.c:1252
+#: pg_basebackup.c:460 pg_basebackup.c:515 pg_basebackup.c:1263
 #, c-format
 msgid "%s: could not create directory \"%s\": %s\n"
 msgstr "%s: 无法创建目录 \"%s\": %s\n"
 
-#: pg_basebackup.c:467
+#: pg_basebackup.c:478
 #, c-format
 msgid "%s: could not create background process: %s\n"
 msgstr "%s: 无法创建后台进程: %s\n"
 
-#: pg_basebackup.c:479
+#: pg_basebackup.c:490
 #, c-format
 msgid "%s: could not create background thread: %s\n"
 msgstr "%s: 无法创建后台线程: %s\n"
 
-#: pg_basebackup.c:523
+#: pg_basebackup.c:534
 #, c-format
 msgid "%s: directory \"%s\" exists but is not empty\n"
 msgstr "%s: 目录\"%s\"已存在,但不是空的\n"
 
-#: pg_basebackup.c:531
+#: pg_basebackup.c:542
 #, c-format
 msgid "%s: could not access directory \"%s\": %s\n"
 msgstr "%s: 无法访问目录 \"%s\": %s\n"
 
-#: pg_basebackup.c:593
+#: pg_basebackup.c:604
 #, c-format
 msgid "%*s/%s kB (100%%), %d/%d tablespace %*s"
 msgid_plural "%*s/%s kB (100%%), %d/%d tablespaces %*s"
 msgstr[0] "%*s/%s kB (100%%), %d/%d 表空间 %*s"
 
-#: pg_basebackup.c:605
+#: pg_basebackup.c:616
 #, c-format
 msgid "%*s/%s kB (%d%%), %d/%d tablespace (%s%-*.*s)"
 msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces (%s%-*.*s)"
 msgstr[0] "%*s/%s kB (%d%%), %d/%d 表空间 (%s%-*.*s)"
 
-#: pg_basebackup.c:621
+#: pg_basebackup.c:632
 #, c-format
 msgid "%*s/%s kB (%d%%), %d/%d tablespace"
 msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces"
 msgstr[0] "%*s/%s kB (%d%%), %d/%d 表空间"
 
-#: pg_basebackup.c:643
+#: pg_basebackup.c:654
 #, c-format
 msgid "%s: transfer rate \"%s\" is not a valid value\n"
 msgstr "%s: 传输速率\"%s\"不是一个有效值\n"
 
-#: pg_basebackup.c:650
+#: pg_basebackup.c:661
 #, c-format
 msgid "%s: invalid transfer rate \"%s\": %s\n"
 msgstr "%s:无效的传输速率\"%s\": %s\n"
 
-#: pg_basebackup.c:660
+#: pg_basebackup.c:671
 #, c-format
 msgid "%s: transfer rate must be greater than zero\n"
 msgstr "%s: 传输速率必须大于0\n"
 
-#: pg_basebackup.c:694
+#: pg_basebackup.c:705
 #, c-format
 msgid "%s: invalid --max-rate unit: \"%s\"\n"
 msgstr "%s: 无效的 --max-rate 单位: \"%s\"\n"
 
-#: pg_basebackup.c:703
+#: pg_basebackup.c:714
 #, c-format
 msgid "%s: transfer rate \"%s\" exceeds integer range\n"
 msgstr "%s:传输速率 \"%s\" 超出了整数范围\n"
 
-#: pg_basebackup.c:715
+#: pg_basebackup.c:726
 #, c-format
 msgid "%s: transfer rate \"%s\" is out of range\n"
 msgstr "%s: 传输速率 \"%s\" 超出范围\n"
 
-#: pg_basebackup.c:739
+#: pg_basebackup.c:750
 #, c-format
 msgid "%s: could not write to compressed file \"%s\": %s\n"
 msgstr "%s: 无法往压缩文件里写\"%s\": %s\n"
 
-#: pg_basebackup.c:749 pg_basebackup.c:1346 pg_basebackup.c:1564
+#: pg_basebackup.c:760 pg_basebackup.c:1357 pg_basebackup.c:1582
 #, c-format
 msgid "%s: could not write to file \"%s\": %s\n"
 msgstr "%s: 无法写文件 \"%s\": %s\n"
 
-#: pg_basebackup.c:804 pg_basebackup.c:825 pg_basebackup.c:853
+#: pg_basebackup.c:815 pg_basebackup.c:836 pg_basebackup.c:864
 #, c-format
 msgid "%s: could not set compression level %d: %s\n"
 msgstr "%s: 无法设置压缩级别 %d: %s\n"
 
-#: pg_basebackup.c:874
+#: pg_basebackup.c:885
 #, c-format
 msgid "%s: could not create compressed file \"%s\": %s\n"
 msgstr "%s: 无法创建压缩文件 \"%s\": %s\n"
 
-#: pg_basebackup.c:885 pg_basebackup.c:1306 pg_basebackup.c:1557
+#: pg_basebackup.c:896 pg_basebackup.c:1317 pg_basebackup.c:1575
 #, c-format
 msgid "%s: could not create file \"%s\": %s\n"
 msgstr "%s: 无法创建文件 \"%s\": %s\n"
 
-#: pg_basebackup.c:897 pg_basebackup.c:1161
+#: pg_basebackup.c:908 pg_basebackup.c:1172
 #, c-format
 msgid "%s: could not get COPY data stream: %s"
 msgstr "%s: 无法得到复制数据流: %s"
 
-#: pg_basebackup.c:954
+#: pg_basebackup.c:965
 #, c-format
 msgid "%s: could not close compressed file \"%s\": %s\n"
 msgstr "%s: 无法关闭压缩文件 \"%s\": %s\n"
 
-#: pg_basebackup.c:967 pg_recvlogical.c:569 receivelog.c:213 receivelog.c:362
-#: receivelog.c:754
+#: pg_basebackup.c:978 pg_recvlogical.c:577 receivelog.c:203 receivelog.c:351
+#: receivelog.c:738
 #, c-format
 msgid "%s: could not close file \"%s\": %s\n"
 msgstr "%s: 无法关闭文件 \"%s\": %s\n"
 
-#: pg_basebackup.c:978 pg_basebackup.c:1190 pg_recvlogical.c:435
-#: receivelog.c:1044
+#: pg_basebackup.c:989 pg_basebackup.c:1201 pg_recvlogical.c:443
+#: receivelog.c:1019
 #, c-format
 msgid "%s: could not read COPY data: %s"
 msgstr "%s: 无法读取复制数据: %s"
 
-#: pg_basebackup.c:1204
+#: pg_basebackup.c:1215
 #, c-format
 msgid "%s: invalid tar block header size: %d\n"
 msgstr "%s: 无效的tar压缩块头大小: %d\n"
 
-#: pg_basebackup.c:1260
+#: pg_basebackup.c:1271
 #, c-format
 msgid "%s: could not set permissions on directory \"%s\": %s\n"
 msgstr "%s: 无法设置目录权限 \"%s\": %s\n"
 
-#: pg_basebackup.c:1284
+#: pg_basebackup.c:1295
 #, c-format
 msgid "%s: could not create symbolic link from \"%s\" to \"%s\": %s\n"
 msgstr "%s: 无法创建从 \"%s\" 到 \"%s\"的符号链接: %s\n"
 
-#: pg_basebackup.c:1293
+#: pg_basebackup.c:1304
 #, c-format
 msgid "%s: unrecognized link indicator \"%c\"\n"
 msgstr "%s: 无法识别的链接标识符 \"%c\"\n"
 
-#: pg_basebackup.c:1313
+#: pg_basebackup.c:1324
 #, c-format
 msgid "%s: could not set permissions on file \"%s\": %s\n"
 msgstr "%s: 无法设置文件 \"%s\"的访问权限: %s\n"
 
-#: pg_basebackup.c:1372
+#: pg_basebackup.c:1383
 #, c-format
 msgid "%s: COPY stream ended before last file was finished\n"
 msgstr "%s: 复制流在最后一个文件结束前终止\n"
 
-#: pg_basebackup.c:1458 pg_basebackup.c:1478 pg_basebackup.c:1485
-#: pg_basebackup.c:1532
+#: pg_basebackup.c:1469 pg_basebackup.c:1489 pg_basebackup.c:1496
+#: pg_basebackup.c:1550
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: 内存溢出\n"
 
-#: pg_basebackup.c:1609
+#: pg_basebackup.c:1627
 #, c-format
 msgid "%s: incompatible server version %s\n"
 msgstr "%s: 不兼容的服务器版本号 %s\n"
 
-#: pg_basebackup.c:1656 pg_recvlogical.c:261 receivelog.c:549 receivelog.c:600
-#: receivelog.c:641 streamutil.c:255 streamutil.c:353 streamutil.c:399
+#: pg_basebackup.c:1674 pg_recvlogical.c:261 receivelog.c:536 receivelog.c:587
+#: receivelog.c:627 streamutil.c:255 streamutil.c:359 streamutil.c:405
 #, c-format
 msgid "%s: could not send replication command \"%s\": %s"
 msgstr "%s: 无法发送复制命令 \"%s\": %s"
 
-#: pg_basebackup.c:1667
+#: pg_basebackup.c:1685
 #, c-format
 msgid "%s: could not initiate base backup: %s"
 msgstr "%s: 无法发起基础备份: %s"
 
-#: pg_basebackup.c:1674
+#: pg_basebackup.c:1692
 #, c-format
 msgid ""
 "%s: server returned unexpected response to BASE_BACKUP command; got %d rows "
@@ -453,181 +458,186 @@ msgstr ""
 "%s: 服务器对BASE_BACKUP命令返回意外的响应; 得到 %d 行和 %d 列, 期望值为: %d "
 "行和 %d 列\n"
 
-#: pg_basebackup.c:1694
+#: pg_basebackup.c:1712
 #, c-format
 msgid "transaction log start point: %s on timeline %u\n"
 msgstr "事务日志起始于时间点: %s, 基于时间表%u \n"
 
-#: pg_basebackup.c:1703
+#: pg_basebackup.c:1721
 #, c-format
 msgid "%s: could not get backup header: %s"
 msgstr "%s: 无法得到备份头: %s"
 
-#: pg_basebackup.c:1709
+#: pg_basebackup.c:1727
 #, c-format
 msgid "%s: no data returned from server\n"
 msgstr "%s: 服务器没有数据返回\n"
 
 # Here, we need to understand what's the content "database has"?
 # Is it the stdout fd? or anything else? Please correct me here.
-#: pg_basebackup.c:1741
+#: pg_basebackup.c:1759
 #, c-format
 msgid "%s: can only write single tablespace to stdout, database has %d\n"
 msgstr "%s: 只能把表空间写往标准输出, 数据库拥有标准输出: %d\n"
 
-#: pg_basebackup.c:1753
+#: pg_basebackup.c:1771
 #, c-format
 msgid "%s: starting background WAL receiver\n"
 msgstr "%s: 启动后台 WAL 接收进程\n"
 
-#: pg_basebackup.c:1784
+#: pg_basebackup.c:1802
 #, c-format
 msgid "%s: could not get transaction log end position from server: %s"
 msgstr "%s: 无法得到来自服务器的事务日志终止位置: %s"
 
-#: pg_basebackup.c:1791
+#: pg_basebackup.c:1809
 #, c-format
 msgid "%s: no transaction log end position returned from server\n"
 msgstr "%s: 服务器端没有返回事务日志的终止位置\n"
 
-#: pg_basebackup.c:1803
+#: pg_basebackup.c:1821
 #, c-format
 msgid "%s: final receive failed: %s"
 msgstr "%s: 最终接收失败: %s"
 
-#: pg_basebackup.c:1821
+#: pg_basebackup.c:1839
 #, c-format
 msgid "%s: waiting for background process to finish streaming ...\n"
 msgstr "%s: 等待后台进程结束流操作...\n"
 
-#: pg_basebackup.c:1827
+#: pg_basebackup.c:1845
 #, c-format
 msgid "%s: could not send command to background pipe: %s\n"
 msgstr "%s: 无法发送命令到后台管道: %s\n"
 
-#: pg_basebackup.c:1836
+#: pg_basebackup.c:1854
 #, c-format
 msgid "%s: could not wait for child process: %s\n"
 msgstr "%s: 无法等待子进程: %s\n"
 
-#: pg_basebackup.c:1842
+#: pg_basebackup.c:1860
 #, c-format
 msgid "%s: child %d died, expected %d\n"
 msgstr "%s: 子进程 %d 已终止, 期望值为 %d\n"
 
-#: pg_basebackup.c:1848
+#: pg_basebackup.c:1866
 #, c-format
 msgid "%s: child process did not exit normally\n"
 msgstr "%s: 子进程没有正常退出\n"
 
-#: pg_basebackup.c:1854
+#: pg_basebackup.c:1872
 #, c-format
 msgid "%s: child process exited with error %d\n"
 msgstr "%s: 子进程退出, 错误码为: %d\n"
 
-#: pg_basebackup.c:1881
+#: pg_basebackup.c:1899
 #, c-format
 msgid "%s: could not wait for child thread: %s\n"
 msgstr "%s: 无法等待子线程: %s\n"
 
-#: pg_basebackup.c:1888
+#: pg_basebackup.c:1906
 #, c-format
 msgid "%s: could not get child thread exit status: %s\n"
 msgstr "%s: 无法得到子线程退出状态: %s\n"
 
-#: pg_basebackup.c:1894
+#: pg_basebackup.c:1912
 #, c-format
 msgid "%s: child thread exited with error %u\n"
 msgstr "%s: 子线程退出, 错误码为: %u\n"
 
-#: pg_basebackup.c:1983
+#: pg_basebackup.c:2002
 #, c-format
 msgid "%s: invalid output format \"%s\", must be \"plain\" or \"tar\"\n"
 msgstr "%s: 无效输出格式: \"%s\", 有效值为: \"plain\" 或者 \"tar\"\n"
 
-#: pg_basebackup.c:2001 pg_basebackup.c:2013
+#: pg_basebackup.c:2023 pg_basebackup.c:2035
 #, c-format
 msgid "%s: cannot specify both --xlog and --xlog-method\n"
 msgstr "%s: 不能同时指定两个选项: --xlog and --xlog-method\n"
 
-#: pg_basebackup.c:2028
+#: pg_basebackup.c:2050
 #, c-format
 msgid ""
 "%s: invalid xlog-method option \"%s\", must be \"fetch\" or \"stream\"\n"
 msgstr ""
 "%s: 无效的xlog-method 选项: \"%s\", 必须是: \"fetch\" 或者 \"stream\"\n"
 
-#: pg_basebackup.c:2050
+#: pg_basebackup.c:2072
 #, c-format
 msgid "%s: invalid compression level \"%s\"\n"
 msgstr "%s: 无效的压缩级别值: \"%s\"\n"
 
-#: pg_basebackup.c:2062
+#: pg_basebackup.c:2084
 #, c-format
 msgid ""
 "%s: invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"\n"
 msgstr "%s: 无效的检查点参数: \"%s\", 必须是: \"fast\" 或 \"spread\"\n"
 
-#: pg_basebackup.c:2089 pg_receivexlog.c:439 pg_recvlogical.c:752
+#: pg_basebackup.c:2111 pg_receivexlog.c:445 pg_recvlogical.c:760
 #, c-format
 msgid "%s: invalid status interval \"%s\"\n"
 msgstr "%s: 无效的状态间隔值: \"%s\"\n"
 
-#: pg_basebackup.c:2105 pg_basebackup.c:2119 pg_basebackup.c:2130
-#: pg_basebackup.c:2143 pg_basebackup.c:2153 pg_basebackup.c:2165
-#: pg_basebackup.c:2176 pg_receivexlog.c:471 pg_receivexlog.c:485
-#: pg_receivexlog.c:493 pg_receivexlog.c:503 pg_receivexlog.c:514
-#: pg_recvlogical.c:779 pg_recvlogical.c:793 pg_recvlogical.c:804
+#: pg_basebackup.c:2127 pg_basebackup.c:2141 pg_basebackup.c:2152
+#: pg_basebackup.c:2165 pg_basebackup.c:2175 pg_basebackup.c:2185
+#: pg_basebackup.c:2197 pg_basebackup.c:2208 pg_receivexlog.c:477
+#: pg_receivexlog.c:491 pg_receivexlog.c:499 pg_receivexlog.c:509
+#: pg_receivexlog.c:520 pg_recvlogical.c:787 pg_recvlogical.c:801
 #: pg_recvlogical.c:812 pg_recvlogical.c:820 pg_recvlogical.c:828
-#: pg_recvlogical.c:836 pg_recvlogical.c:844
+#: pg_recvlogical.c:836 pg_recvlogical.c:844 pg_recvlogical.c:852
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: pg_basebackup.c:2117 pg_receivexlog.c:483 pg_recvlogical.c:791
+#: pg_basebackup.c:2139 pg_receivexlog.c:489 pg_recvlogical.c:799
 #, c-format
 msgid "%s: too many command-line arguments (first is \"%s\")\n"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_basebackup.c:2129 pg_receivexlog.c:513
+#: pg_basebackup.c:2151 pg_receivexlog.c:519
 #, c-format
 msgid "%s: no target directory specified\n"
 msgstr "%s: 没有指定目标目录\n"
 
-#: pg_basebackup.c:2141
+#: pg_basebackup.c:2163
 #, c-format
 msgid "%s: only tar mode backups can be compressed\n"
 msgstr "%s: 只有tar模式备份才能进行压缩\n"
 
-#: pg_basebackup.c:2151
+#: pg_basebackup.c:2173
 #, c-format
 msgid "%s: WAL streaming can only be used in plain mode\n"
 msgstr "%s: WAL 流操作只能在plain模式下使用\n"
 
-#: pg_basebackup.c:2163
+#: pg_basebackup.c:2183
+#, c-format
+#| msgid "replication slots can only be used if max_replication_slots > 0"
+msgid "%s: replication slots can only be used with WAL streaming\n"
+msgstr "%s: 复制槽只能和WAL流复制一起使用\n"
+
+#: pg_basebackup.c:2195
 #, c-format
 msgid ""
 "%s: transaction log directory location can only be specified in plain mode\n"
 msgstr "%s: 事务日志目录的位置只能在简单模式里指定\n"
 
-#: pg_basebackup.c:2174
+#: pg_basebackup.c:2206
 #, c-format
 msgid "%s: transaction log directory location must be an absolute path\n"
 msgstr "%s: 事务日志目录的位置必须为绝对路径\n"
 
-#: pg_basebackup.c:2186
+#: pg_basebackup.c:2218
 #, c-format
 msgid "%s: this build does not support compression\n"
 msgstr "%s: 这个编译版本不支持压缩\n"
 
-#: pg_basebackup.c:2213
+#: pg_basebackup.c:2245
 #, c-format
 msgid "%s: could not create symbolic link \"%s\": %s\n"
 msgstr "%s: 无法创建符号链接 \"%s\": %s\n"
 
-#: pg_basebackup.c:2218
+#: pg_basebackup.c:2250
 #, c-format
-#| msgid "%s: symlinks are not supported on this platform"
 msgid "%s: symlinks are not supported on this platform\n"
 msgstr "%s:在这个平台上不支持符号链接\n"
 
@@ -677,11 +687,6 @@ msgstr ""
 "  -s, --status-interval=SECS\n"
 "                         发往服务器的状态包的时间间隔 (默认为: %d)\n"
 
-#: pg_receivexlog.c:74
-#, c-format
-msgid "  -S, --slot=SLOTNAME    replication slot to use\n"
-msgstr "  -S, --slot=SLOTNAME    用于复制的槽名\n"
-
 #: pg_receivexlog.c:75
 #, c-format
 msgid ""
@@ -690,9 +695,6 @@ msgstr "      --synchronous      在写入后立即刷写事务日志\n"
 
 #: pg_receivexlog.c:86
 #, c-format
-#| msgid ""
-#| "\n"
-#| "Options:\n"
 msgid ""
 "\n"
 "Optional actions:\n"
@@ -754,62 +756,57 @@ msgstr "%s: 段文件 \"%s\" 大小值: %d不正确, 跳过\n"
 msgid "%s: could not read directory \"%s\": %s\n"
 msgstr "%s: 无法读取目录 \"%s\": %s\n"
 
-#: pg_receivexlog.c:331
+#: pg_receivexlog.c:332
 #, c-format
 msgid "%s: starting log streaming at %X/%X (timeline %u)\n"
 msgstr "%s: 在时间点: %X/%X (时间安排%u)启动日志的流操作 \n"
 
-#: pg_receivexlog.c:420 pg_recvlogical.c:699
+#: pg_receivexlog.c:426 pg_recvlogical.c:707
 #, c-format
 msgid "%s: invalid port number \"%s\"\n"
 msgstr "%s: 无效端口号 \"%s\"\n"
 
-#: pg_receivexlog.c:492
+#: pg_receivexlog.c:498
 #, c-format
-#| msgid "%s: cannot use --create-slot or --start together with --drop-slot\n"
 msgid "%s: cannot use --create-slot together with --drop-slot\n"
 msgstr "%s: 不能把--create-slot和--drop-slot一起使用\n"
 
 #. translator: second %s is an option name
-#: pg_receivexlog.c:501
+#: pg_receivexlog.c:507
 #, c-format
-#| msgid "%s: at least one action needs to be specified\n"
 msgid "%s: %s needs a slot to be specified using --slot\n"
 msgstr "%s:%s需要使用--slot指定一个槽\n"
 
-#: pg_receivexlog.c:556
+#: pg_receivexlog.c:562
 #, c-format
 msgid ""
 "%s: replication connection using slot \"%s\" is unexpectedly database "
 "specific\n"
 msgstr "%s:使用槽\"%s\"的复制连接意外地不是指定的数据库\n"
 
-#: pg_receivexlog.c:568 pg_recvlogical.c:884
+#: pg_receivexlog.c:574 pg_recvlogical.c:892
 #, c-format
 msgid "%s: dropping replication slot \"%s\"\n"
 msgstr "%s: 删除复制槽\"%s\"\n"
 
-#: pg_receivexlog.c:581 pg_recvlogical.c:896
+#: pg_receivexlog.c:587 pg_recvlogical.c:904
 #, c-format
 msgid "%s: creating replication slot \"%s\"\n"
 msgstr "%s: 创建复制槽 \"%s\"\n"
 
-#: pg_receivexlog.c:608 pg_recvlogical.c:922
+#: pg_receivexlog.c:614 pg_recvlogical.c:930
 #, c-format
 msgid "%s: disconnected\n"
 msgstr "%s: 连接已断开\n"
 
 #. translator: check source for value for %d
-#: pg_receivexlog.c:615 pg_recvlogical.c:929
+#: pg_receivexlog.c:621 pg_recvlogical.c:937
 #, c-format
 msgid "%s: disconnected; waiting %d seconds to try again\n"
 msgstr "%s: 连接已断开, 将于%d 秒后尝试重连.\n"
 
 #: pg_recvlogical.c:67
 #, c-format
-#| msgid ""
-#| "%s receives PostgreSQL logical change streams.\n"
-#| "\n"
 msgid ""
 "%s controls PostgreSQL logical decoding streams.\n"
 "\n"
@@ -886,7 +883,7 @@ msgstr "  -d, --dbname=DBNAME    要连接的目标数据库\n"
 msgid "%s: confirming write up to %X/%X, flush to %X/%X (slot %s)\n"
 msgstr "%s: 确认上写至%X/%X, 并刷写回至 %X/%X (槽 %s)\n"
 
-#: pg_recvlogical.c:151 receivelog.c:415
+#: pg_recvlogical.c:151 receivelog.c:404
 #, c-format
 msgid "%s: could not send feedback packet: %s"
 msgstr "%s: 无法发送回馈包: %s"
@@ -912,197 +909,201 @@ msgstr "%s: 流已初始化\n"
 msgid "%s: could not open log file \"%s\": %s\n"
 msgstr "%s:无法开启日志档 \"%s\":%s\n"
 
-#: pg_recvlogical.c:412 receivelog.c:980
+#: pg_recvlogical.c:366 receivelog.c:933
+#, c-format
+#| msgid "%s: invalid option %s\n"
+msgid "%s: invalid socket: %s"
+msgstr "%s: 无效套接字: %s"
+
+#: pg_recvlogical.c:420 receivelog.c:955
 #, c-format
 msgid "%s: select() failed: %s\n"
 msgstr "%s: select() 失败: %s\n"
 
-#: pg_recvlogical.c:421 receivelog.c:1030
+#: pg_recvlogical.c:429 receivelog.c:1005
 #, c-format
 msgid "%s: could not receive data from WAL stream: %s"
 msgstr "%s: 无法接收来自WAL流的数据: %s"
 
-#: pg_recvlogical.c:462 pg_recvlogical.c:501 receivelog.c:1075
-#: receivelog.c:1144
+#: pg_recvlogical.c:470 pg_recvlogical.c:509 receivelog.c:1050
+#: receivelog.c:1117
 #, c-format
 msgid "%s: streaming header too small: %d\n"
 msgstr "%s: 流头大小: %d 值太小\n"
 
-#: pg_recvlogical.c:484 receivelog.c:924
+#: pg_recvlogical.c:492 receivelog.c:898
 #, c-format
 msgid "%s: unrecognized streaming header: \"%c\"\n"
 msgstr "%s: 无法识别的流头: \"%c\"\n"
 
-#: pg_recvlogical.c:530 pg_recvlogical.c:544
+#: pg_recvlogical.c:538 pg_recvlogical.c:552
 #, c-format
 msgid "%s: could not write %u bytes to log file \"%s\": %s\n"
 msgstr "%s: 无法写入 %u 字节到日志文件 \"%s\": %s\n"
 
-#: pg_recvlogical.c:555 receivelog.c:707 receivelog.c:745
+#: pg_recvlogical.c:563 receivelog.c:691 receivelog.c:729
 #, c-format
 msgid "%s: unexpected termination of replication stream: %s"
 msgstr "%s: 流复制异常终止: %s"
 
-#: pg_recvlogical.c:678
+#: pg_recvlogical.c:686
 #, c-format
 msgid "%s: invalid fsync interval \"%s\"\n"
 msgstr "%s: 无效的fsync同步时间间隔值: \"%s\"\n"
 
-#: pg_recvlogical.c:719
+#: pg_recvlogical.c:727
 #, c-format
 msgid "%s: could not parse start position \"%s\"\n"
 msgstr "%s: 无法解析起始位置\"%s\"\n"
 
-#: pg_recvlogical.c:803
+#: pg_recvlogical.c:811
 #, c-format
 msgid "%s: no slot specified\n"
 msgstr "%s: 没有指定槽\n"
 
-#: pg_recvlogical.c:811
+#: pg_recvlogical.c:819
 #, c-format
 msgid "%s: no target file specified\n"
 msgstr "%s: 没有指定目标文件\n"
 
-#: pg_recvlogical.c:819
+#: pg_recvlogical.c:827
 #, c-format
 msgid "%s: no database specified\n"
 msgstr "%s: 没有指定数据库\n"
 
-#: pg_recvlogical.c:827
+#: pg_recvlogical.c:835
 #, c-format
 msgid "%s: at least one action needs to be specified\n"
 msgstr "%s: 至少要指定一个操作\n"
 
-#: pg_recvlogical.c:835
+#: pg_recvlogical.c:843
 #, c-format
 msgid "%s: cannot use --create-slot or --start together with --drop-slot\n"
 msgstr ""
 "%s: 不能使用 --create-slot 选项或 同时使用--start和--drop-slot两个选项\n"
 
-#: pg_recvlogical.c:843
+#: pg_recvlogical.c:851
 #, c-format
 msgid "%s: cannot use --create-slot or --drop-slot together with --startpos\n"
 msgstr ""
 "%s: 不能使用 --create-slot 选项或 同时使用--drop-slot和--startpos两个选项\n"
 
-#: pg_recvlogical.c:874
+#: pg_recvlogical.c:882
 #, c-format
-#| msgid "could not establish SSL connection: %s\n"
 msgid "%s: could not establish database-specific replication connection\n"
 msgstr "%s:无法建立数据库相关的复制连接\n"
 
-#: receivelog.c:75
+#: receivelog.c:66
 #, c-format
-#| msgid "could not create archive status file \"%s\": %m"
 msgid "%s: could not create archive status file \"%s\": %s\n"
 msgstr "%s:无法创建归档状态文件\"%s\":%s\n"
 
-#: receivelog.c:82 receivelog.c:206 receivelog.c:355 receivelog.c:848
-#: receivelog.c:1096
+#: receivelog.c:73 receivelog.c:196 receivelog.c:344 receivelog.c:828
+#: receivelog.c:1071
 #, c-format
 msgid "%s: could not fsync file \"%s\": %s\n"
 msgstr "%s: 无法对文件 \"%s\"进行fsync同步: %s\n"
 
-#: receivelog.c:121
+#: receivelog.c:111
 #, c-format
 msgid "%s: could not open transaction log file \"%s\": %s\n"
 msgstr "%s: 无法打开事务日志文件 \"%s\": %s\n"
 
-#: receivelog.c:133
+#: receivelog.c:123
 #, c-format
 msgid "%s: could not stat transaction log file \"%s\": %s\n"
 msgstr "%s: 无法统计事务日志文件 \"%s\": %s\n"
 
-#: receivelog.c:147
+#: receivelog.c:137
 #, c-format
 msgid "%s: transaction log file \"%s\" has %d bytes, should be 0 or %d\n"
 msgstr "%s: 事务日志文件 \"%s\" 大小为 %d 字节, 正确值应该是 0 或 %d字节\n"
 
-#: receivelog.c:160
+#: receivelog.c:150
 #, c-format
 msgid "%s: could not pad transaction log file \"%s\": %s\n"
 msgstr "%s: 无法填充事务日志文件 \"%s\": %s\n"
 
-#: receivelog.c:173
+#: receivelog.c:163
 #, c-format
 msgid "%s: could not seek to beginning of transaction log file \"%s\": %s\n"
 msgstr "%s: 无法定位事务日志文件 \"%s\"的开始位置: %s\n"
 
-#: receivelog.c:199
+#: receivelog.c:189
 #, c-format
 msgid "%s: could not determine seek position in file \"%s\": %s\n"
 msgstr "%s: 无法确定文件 \"%s\"的当前位置: %s\n"
 
-#: receivelog.c:232
+#: receivelog.c:222
 #, c-format
 msgid "%s: could not rename file \"%s\": %s\n"
 msgstr "%s: 无法重命名文件 \"%s\": %s\n"
 
-#: receivelog.c:239
+#: receivelog.c:229
 #, c-format
 msgid "%s: not renaming \"%s%s\", segment is not complete\n"
 msgstr "%s: 没有重命名 \"%s%s\", 段不完整\n"
 
 # command.c:1148
-#: receivelog.c:285
+#: receivelog.c:275
 #, c-format
 msgid "%s: could not open timeline history file \"%s\": %s\n"
 msgstr "%s:无法打开时间表历史文件\"%s\":%s\n"
 
-#: receivelog.c:313
+#: receivelog.c:302
 #, c-format
 msgid "%s: server reported unexpected history file name for timeline %u: %s\n"
 msgstr "%s: 服务器为时间表报告生成的意外历史文件名 %u:%s\n"
 
-#: receivelog.c:330
+#: receivelog.c:319
 #, c-format
 msgid "%s: could not create timeline history file \"%s\": %s\n"
 msgstr "%s: 无法创建时间表历史文件 \"%s\": %s\n"
 
-#: receivelog.c:347
+#: receivelog.c:336
 #, c-format
 msgid "%s: could not write timeline history file \"%s\": %s\n"
 msgstr "%s: 无法写时间表历史文件 \"%s\": %s\n"
 
-#: receivelog.c:372
+#: receivelog.c:361
 #, c-format
 msgid "%s: could not rename file \"%s\" to \"%s\": %s\n"
 msgstr "%s: 无法将文件 \"%s\" 重命名为 \"%s\":%s\n"
 
-#: receivelog.c:449
+#: receivelog.c:438
 #, c-format
 msgid ""
 "%s: incompatible server version %s; client does not support streaming from "
 "server versions older than %s\n"
 msgstr "%s: 不兼容的服务器版本号 %s; 当服务器版本低于%s时客户端不支持流复制\n"
 
-#: receivelog.c:459
+#: receivelog.c:448
 #, c-format
 msgid ""
 "%s: incompatible server version %s; client does not support streaming from "
 "server versions newer than %s\n"
 msgstr "%s: 不兼容的服务器版本号 %s; 当服务器版本高于%s时客户端不支持流复制\n"
 
-#: receivelog.c:557 streamutil.c:264 streamutil.c:299
+#: receivelog.c:544 streamutil.c:264 streamutil.c:303
 #, c-format
 msgid ""
 "%s: could not identify system: got %d rows and %d fields, expected %d rows "
 "and %d or more fields\n"
 msgstr "%s: 无法识别系统: 得到%d行和%d列, 期望值为: %d行和%d列或更多列\n"
 
-#: receivelog.c:565
+#: receivelog.c:552
 #, c-format
 msgid ""
 "%s: system identifier does not match between base backup and streaming "
 "connection\n"
 msgstr "%s: 基础备份和流连接的系统标识符不匹配\n"
 
-#: receivelog.c:573
+#: receivelog.c:560
 #, c-format
 msgid "%s: starting timeline %u is not present in the server\n"
 msgstr "%s: 服务器上没有起始时间表 %u\n"
 
-#: receivelog.c:613
+#: receivelog.c:600
 #, c-format
 msgid ""
 "%s: unexpected response to TIMELINE_HISTORY command: got %d rows and %d "
@@ -1111,13 +1112,13 @@ msgstr ""
 "%s: 获得命令TIMELINE_HISTORY的意外响应: 得到 %d 行和 %d 列, 期望值为: %d 行"
 "和 %d 列\n"
 
-#: receivelog.c:688
+#: receivelog.c:672
 #, c-format
 msgid ""
 "%s: server reported unexpected next timeline %u, following timeline %u\n"
 msgstr "%s: 服务器报出的下次意外时间表 %u, 紧跟时间表 %u之后\n"
 
-#: receivelog.c:695
+#: receivelog.c:679
 #, c-format
 msgid ""
 "%s: server stopped streaming timeline %u at %X/%X, but reported next "
@@ -1126,12 +1127,12 @@ msgstr ""
 "%1$s: 服务器在%3$X/%4$X时停止流操作时间表%2$u, 但是报出将在%6$X/%7$X时开始下"
 "一个时间表%5$u\n"
 
-#: receivelog.c:736
+#: receivelog.c:720
 #, c-format
 msgid "%s: replication stream was terminated before stop point\n"
 msgstr "%s: 流复制在停止点之前异常终止\n"
 
-#: receivelog.c:785
+#: receivelog.c:769
 #, c-format
 msgid ""
 "%s: unexpected result set after end-of-timeline: got %d rows and %d fields, "
@@ -1139,34 +1140,27 @@ msgid ""
 msgstr ""
 "%s: 终点时间表的意外结果集: 得到 %d 行和 %d 列, 期望值为: %d 行和 %d 列\n"
 
-#: receivelog.c:795
+#: receivelog.c:779
 #, c-format
 msgid "%s: could not parse next timeline's starting point \"%s\"\n"
 msgstr "%s: 无法解析下次时间表的起始点\"%s\"\n"
 
-# fe-misc.c:450 fe-misc.c:642 fe-misc.c:798
-#: receivelog.c:959
-#, c-format
-#| msgid "socket not open"
-msgid "%s: socket not open"
-msgstr "%s:套接字未打开"
-
-#: receivelog.c:1163
+#: receivelog.c:1136
 #, c-format
 msgid "%s: received transaction log record for offset %u with no file open\n"
 msgstr "%s: 偏移位置 %u 处接收到的事务日志记录没有打开文件\n"
 
-#: receivelog.c:1175
+#: receivelog.c:1148
 #, c-format
 msgid "%s: got WAL data offset %08x, expected %08x\n"
 msgstr "%s: 得到WAL数据偏移 %08x, 期望值为 %08x\n"
 
-#: receivelog.c:1212
+#: receivelog.c:1184
 #, c-format
 msgid "%s: could not write %u bytes to WAL file \"%s\": %s\n"
 msgstr "%s: 无法写入 %u 字节到 WAL 文件 \"%s\": %s\n"
 
-#: receivelog.c:1237 receivelog.c:1279 receivelog.c:1311
+#: receivelog.c:1209 receivelog.c:1250 receivelog.c:1281
 #, c-format
 msgid "%s: could not send copy-end packet: %s"
 msgstr "%s: 无法发送副本结束包: %s"
@@ -1182,7 +1176,6 @@ msgstr "%s: 无法连接到服务器\n"
 
 #: streamutil.c:187
 #, c-format
-#| msgid "%s: could not connect to server: %s\n"
 msgid "%s: could not connect to server: %s"
 msgstr "%s:无法连接到服务器:%s"
 
@@ -1196,35 +1189,35 @@ msgstr "%s: 无法确定服务器上integer_datetimes的配置\n"
 msgid "%s: integer_datetimes compile flag does not match server\n"
 msgstr "%s: integer_datetimes编译开关与服务器端不匹配\n"
 
-#: streamutil.c:365
+#: streamutil.c:371
 #, c-format
 msgid ""
 "%s: could not create replication slot \"%s\": got %d rows and %d fields, "
 "expected %d rows and %d fields\n"
 msgstr "%s: 无法创建复制槽 \"%s\": 得到%d行%d列, 但期望值为%d行%d列\n"
 
-#: streamutil.c:410
+#: streamutil.c:416
 #, c-format
 msgid ""
 "%s: could not drop replication slot \"%s\": got %d rows and %d fields, "
 "expected %d rows and %d fields\n"
 msgstr "%s: 无法删除复制槽 \"%s\": 得到%d行%d列, 但期望值为%d行%d列\n"
 
-#~ msgid "%s: could not parse transaction log file name \"%s\"\n"
-#~ msgstr "%s: 无法解析事务日志文件名: \"%s\"\n"
+#~ msgid "%s: could not parse file size\n"
+#~ msgstr "%s: 无法解析文件大小\n"
 
-#~ msgid "%s: keepalive message has incorrect size %d\n"
-#~ msgstr "%s: keepalive(保持活连接)的消息大小 %d 不正确 \n"
+#~ msgid "%s: could not parse file mode\n"
+#~ msgstr "%s: 无法解析文件模式\n"
+
+#~ msgid "%s: no start point returned from server\n"
+#~ msgstr "%s: 服务器没有返回起始点\n"
 
 #~ msgid ""
 #~ "%s: timeline does not match between base backup and streaming connection\n"
 #~ msgstr "%s: 基础备份和流连接的时间安排不匹配\n"
 
-#~ msgid "%s: no start point returned from server\n"
-#~ msgstr "%s: 服务器没有返回起始点\n"
-
-#~ msgid "%s: could not parse file mode\n"
-#~ msgstr "%s: 无法解析文件模式\n"
+#~ msgid "%s: keepalive message has incorrect size %d\n"
+#~ msgstr "%s: keepalive(保持活连接)的消息大小 %d 不正确 \n"
 
-#~ msgid "%s: could not parse file size\n"
-#~ msgstr "%s: 无法解析文件大小\n"
+#~ msgid "%s: could not parse transaction log file name \"%s\"\n"
+#~ msgstr "%s: 无法解析事务日志文件名: \"%s\"\n"
index f71490f32a7021e99ef17d68fbee3144d26e3bdb..560c83a0790c656480656a018438cb5aed7b1dc5 100644 (file)
@@ -5,17 +5,17 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pg_controldata (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:44+0000\n"
-"PO-Revision-Date: 2015-12-01 19:42+0800\n"
+"POT-Creation-Date: 2016-04-18 04:45+0000\n"
+"PO-Revision-Date: 2016-05-19 20:40+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
-"Language-Team: Chinese (Simplified)\n"
+"Language-Team: Chinese (Simplified) <ywpeng@whu.edu.cn>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: pg_controldata.c:35
+#: pg_controldata.c:33
 #, c-format
 msgid ""
 "%s displays control information of a PostgreSQL database cluster.\n"
@@ -24,17 +24,17 @@ msgstr ""
 "%s 显示 PostgreSQL 数据库簇控制信息.\n"
 "\n"
 
-#: pg_controldata.c:36
+#: pg_controldata.c:34
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: pg_controldata.c:37
+#: pg_controldata.c:35
 #, c-format
 msgid "  %s [OPTION] [DATADIR]\n"
 msgstr "  %s [选项][DATADIR]\n"
 
-#: pg_controldata.c:38
+#: pg_controldata.c:36
 #, c-format
 msgid ""
 "\n"
@@ -43,23 +43,22 @@ msgstr ""
 "\n"
 "选项:\n"
 
-#: pg_controldata.c:39
+#: pg_controldata.c:37
 #, c-format
-#| msgid "  -D DATADIR         database directory\n"
 msgid " [-D] DATADIR    data directory\n"
 msgstr " [-D] DATADIR    数据目录\n"
 
-#: pg_controldata.c:40
+#: pg_controldata.c:38
 #, c-format
 msgid "  -V, --version  output version information, then exit\n"
 msgstr " -V, --version 输出版本信息,然后退出\n"
 
-#: pg_controldata.c:41
+#: pg_controldata.c:39
 #, c-format
 msgid "  -?, --help     show this help, then exit\n"
 msgstr "  -?, --help     显示帮助信息,然后退出\n"
 
-#: pg_controldata.c:42
+#: pg_controldata.c:40
 #, c-format
 msgid ""
 "\n"
@@ -73,392 +72,364 @@ msgstr ""
 "环境变量PGDATA.\n"
 "\n"
 
-#: pg_controldata.c:44
+#: pg_controldata.c:42
 #, c-format
 msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgstr "报告错误至 <pgsql-bugs@postgresql.org>.\n"
 
-#: pg_controldata.c:54
+#: pg_controldata.c:52
 msgid "starting up"
 msgstr "正在启动"
 
-#: pg_controldata.c:56
+#: pg_controldata.c:54
 msgid "shut down"
 msgstr "关闭"
 
-#: pg_controldata.c:58
+#: pg_controldata.c:56
 msgid "shut down in recovery"
 msgstr "在恢复过程中关闭数据库"
 
-#: pg_controldata.c:60
+#: pg_controldata.c:58
 msgid "shutting down"
 msgstr "正在关闭"
 
-#: pg_controldata.c:62
+#: pg_controldata.c:60
 msgid "in crash recovery"
 msgstr "在恢复中"
 
-#: pg_controldata.c:64
+#: pg_controldata.c:62
 msgid "in archive recovery"
 msgstr "正在归档恢复"
 
-#: pg_controldata.c:66
+#: pg_controldata.c:64
 msgid "in production"
 msgstr "在运行中"
 
-#: pg_controldata.c:68
+#: pg_controldata.c:66
 msgid "unrecognized status code"
 msgstr "不被认可的状态码"
 
-#: pg_controldata.c:85
+#: pg_controldata.c:81
 msgid "unrecognized wal_level"
 msgstr "参数wal_level的值无法识别"
 
-#: pg_controldata.c:134 pg_controldata.c:152 pg_controldata.c:160
+#: pg_controldata.c:127 pg_controldata.c:145 pg_controldata.c:153
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "用 \"%s --help\" 显示更多的信息.\n"
 
-#: pg_controldata.c:150
+#: pg_controldata.c:143
 #, c-format
 msgid "%s: too many command-line arguments (first is \"%s\")\n"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_controldata.c:159
+#: pg_controldata.c:152
 #, c-format
 msgid "%s: no data directory specified\n"
 msgstr "%s: 没有指定数据目录\n"
 
-#: pg_controldata.c:168
-#, c-format
-msgid "%s: could not open file \"%s\" for reading: %s\n"
-msgstr "%s: 无法打开文件 \"%s\" 读取信息: %s\n"
-
-#: pg_controldata.c:175
-#, c-format
-msgid "%s: could not read file \"%s\": %s\n"
-msgstr "%s: 无法读取文件 \"%s\": %s\n"
-
-#: pg_controldata.c:189
-#, c-format
-msgid ""
-"WARNING: Calculated CRC checksum does not match value stored in file.\n"
-"Either the file is corrupt, or it has a different layout than this program\n"
-"is expecting.  The results below are untrustworthy.\n"
-"\n"
-msgstr ""
-"警告: 计算出来的CRC校验值与已保存在文件中的值不匹配.\n"
-"不是文件坏了,就是设计与程序的期望值不同.\n"
-"下面的结果是不可靠的.\n"
-"\n"
-
-#: pg_controldata.c:223
+#: pg_controldata.c:190
 #, c-format
 msgid "pg_control version number:            %u\n"
 msgstr "pg_control 版本:                      %u\n"
 
-#: pg_controldata.c:226
-#, c-format
-msgid ""
-"WARNING: possible byte ordering mismatch\n"
-"The byte ordering used to store the pg_control file might not match the one\n"
-"used by this program.  In that case the results below would be incorrect, "
-"and\n"
-"the PostgreSQL installation would be incompatible with this data directory.\n"
-msgstr ""
-"警告: 可能字节顺序不匹配\n"
-"用于存储文件pg_control的字节顺序可能与程序使用的不匹配\n"
-"在那种情况下结果将会是不正确的,并且所安装的PostgreSQL\n"
-"将会与这个数据目录不兼容\n"
-
-#: pg_controldata.c:230
+#: pg_controldata.c:192
 #, c-format
 msgid "Catalog version number:               %u\n"
 msgstr "Catalog 版本:                         %u\n"
 
-#: pg_controldata.c:232
+#: pg_controldata.c:194
 #, c-format
 msgid "Database system identifier:           %s\n"
 msgstr "数据库系统标识符:                     %s\n"
 
-#: pg_controldata.c:234
+#: pg_controldata.c:196
 #, c-format
 msgid "Database cluster state:               %s\n"
 msgstr "数据库簇状态:                         %s\n"
 
-#: pg_controldata.c:236
+#: pg_controldata.c:198
 #, c-format
 msgid "pg_control last modified:             %s\n"
 msgstr "pg_control 最后修改:                  %s\n"
 
-#: pg_controldata.c:238
+#: pg_controldata.c:200
 #, c-format
 msgid "Latest checkpoint location:           %X/%X\n"
 msgstr "最新检查点位置:                       %X/%X\n"
 
-#: pg_controldata.c:241
+#: pg_controldata.c:203
 #, c-format
 msgid "Prior checkpoint location:            %X/%X\n"
 msgstr "优先检查点位置:                       %X/%X\n"
 
-#: pg_controldata.c:244
+#: pg_controldata.c:206
 #, c-format
 msgid "Latest checkpoint's REDO location:    %X/%X\n"
 msgstr "最新检查点的 REDO 位置:               %X/%X\n"
 
-#: pg_controldata.c:247
+#: pg_controldata.c:209
 #, c-format
 msgid "Latest checkpoint's REDO WAL file:    %s\n"
 msgstr "最新检查点的重做日志文件: %s\n"
 
-#: pg_controldata.c:249
+#: pg_controldata.c:211
 #, c-format
 msgid "Latest checkpoint's TimeLineID:       %u\n"
 msgstr "最新检查点的 TimeLineID:              %u\n"
 
-#: pg_controldata.c:251
+#: pg_controldata.c:213
 #, c-format
 msgid "Latest checkpoint's PrevTimeLineID:   %u\n"
 msgstr "最新检查点的PrevTimeLineID: %u\n"
 
-#: pg_controldata.c:253
+#: pg_controldata.c:215
 #, c-format
 msgid "Latest checkpoint's full_page_writes: %s\n"
 msgstr "最新检查点的full_page_writes: %s\n"
 
 # help.c:48
-#: pg_controldata.c:254 pg_controldata.c:299 pg_controldata.c:309
+#: pg_controldata.c:216 pg_controldata.c:261 pg_controldata.c:271
 msgid "off"
 msgstr "关闭"
 
 # help.c:48
-#: pg_controldata.c:254 pg_controldata.c:299 pg_controldata.c:309
+#: pg_controldata.c:216 pg_controldata.c:261 pg_controldata.c:271
 msgid "on"
 msgstr "开启"
 
-#: pg_controldata.c:255
+#: pg_controldata.c:217
 #, c-format
-msgid "Latest checkpoint's NextXID:          %u/%u\n"
-msgstr "最新检查点的 NextXID:            %u/%u\n"
+#| msgid "Latest checkpoint's NextXID:          %u/%u\n"
+msgid "Latest checkpoint's NextXID:          %u:%u\n"
+msgstr "最新检查点的NextXID:          %u:%u\n"
 
-#: pg_controldata.c:258
+#: pg_controldata.c:220
 #, c-format
 msgid "Latest checkpoint's NextOID:          %u\n"
 msgstr "最新检查点的 NextOID:                 %u\n"
 
-#: pg_controldata.c:260
+#: pg_controldata.c:222
 #, c-format
 msgid "Latest checkpoint's NextMultiXactId:  %u\n"
 msgstr "最新检查点的NextMultiXactId: %u\n"
 
-#: pg_controldata.c:262
+#: pg_controldata.c:224
 #, c-format
 msgid "Latest checkpoint's NextMultiOffset:  %u\n"
 msgstr "最新检查点的NextMultiOffsetD: %u\n"
 
-#: pg_controldata.c:264
+#: pg_controldata.c:226
 #, c-format
 msgid "Latest checkpoint's oldestXID:        %u\n"
 msgstr "最新检查点的oldestXID:            %u\n"
 
-#: pg_controldata.c:266
+#: pg_controldata.c:228
 #, c-format
 msgid "Latest checkpoint's oldestXID's DB:   %u\n"
 msgstr "最新检查点的oldestXID所在的数据库:%u\n"
 
-#: pg_controldata.c:268
+#: pg_controldata.c:230
 #, c-format
 msgid "Latest checkpoint's oldestActiveXID:  %u\n"
-msgstr "最新检查点检查oldestActiveXID:  %u\n"
+msgstr "最新检查点oldestActiveXID:  %u\n"
 
-#: pg_controldata.c:270
+#: pg_controldata.c:232
 #, c-format
 msgid "Latest checkpoint's oldestMultiXid:   %u\n"
-msgstr "最新检查点检查oldestMultiXid:  %u\n"
+msgstr "最新检查点oldestMultiXid:  %u\n"
 
-#: pg_controldata.c:272
+#: pg_controldata.c:234
 #, c-format
 msgid "Latest checkpoint's oldestMulti's DB: %u\n"
 msgstr "最新检查点的oldestMulti所在的数据库:%u\n"
 
-#: pg_controldata.c:274
+#: pg_controldata.c:236
 #, c-format
-#| msgid "Latest checkpoint's oldestXID's DB:   %u\n"
-msgid "Latest checkpoint's oldestCommitTs:   %u\n"
-msgstr "最新检查点的oldestCommitTs%u\n"
+#| msgid "Latest checkpoint's oldestCommitTs:   %u\n"
+msgid "Latest checkpoint's oldestCommitTsXid:%u\n"
+msgstr "最新检查点的oldestCommitTsXid:%u\n"
 
-#: pg_controldata.c:276
+#: pg_controldata.c:238
 #, c-format
-#| msgid "Latest checkpoint's oldestXID's DB:   %u\n"
-msgid "Latest checkpoint's newestCommitTs:   %u\n"
-msgstr "最新检查点的newestCommitTs%u\n"
+#| msgid "Latest checkpoint's newestCommitTs:   %u\n"
+msgid "Latest checkpoint's newestCommitTsXid:%u\n"
+msgstr "最新检查点的newestCommitTsXid:%u\n"
 
-#: pg_controldata.c:278
+#: pg_controldata.c:240
 #, c-format
 msgid "Time of latest checkpoint:            %s\n"
 msgstr "最新检查点的时间:                     %s\n"
 
-#: pg_controldata.c:280
+#: pg_controldata.c:242
 #, c-format
 msgid "Fake LSN counter for unlogged rels:   %X/%X\n"
 msgstr "不带日志的关系: %X/%X使用虚假的LSN计数器\n"
 
-#: pg_controldata.c:283
+#: pg_controldata.c:245
 #, c-format
 msgid "Minimum recovery ending location:     %X/%X\n"
 msgstr "最小恢复结束位置: %X/%X\n"
 
-#: pg_controldata.c:286
+#: pg_controldata.c:248
 #, c-format
 msgid "Min recovery ending loc's timeline:   %u\n"
 msgstr "最小恢复结束位置时间表: %u\n"
 
-#: pg_controldata.c:288
+#: pg_controldata.c:250
 #, c-format
 msgid "Backup start location:                %X/%X\n"
 msgstr "开始进行备份的点位置:                       %X/%X\n"
 
-#: pg_controldata.c:291
+#: pg_controldata.c:253
 #, c-format
 msgid "Backup end location:                  %X/%X\n"
 msgstr "备份的最终位置:                  %X/%X\n"
 
-#: pg_controldata.c:294
+#: pg_controldata.c:256
 #, c-format
 msgid "End-of-backup record required:        %s\n"
 msgstr "需要终止备份的记录:        %s\n"
 
-#: pg_controldata.c:295
+#: pg_controldata.c:257
 msgid "no"
 msgstr "否"
 
-#: pg_controldata.c:295
+#: pg_controldata.c:257
 msgid "yes"
 msgstr "是"
 
-#: pg_controldata.c:296
+#: pg_controldata.c:258
 #, c-format
-#| msgid "Current wal_level setting:            %s\n"
 msgid "wal_level setting:                    %s\n"
 msgstr "wal_level设置:                    %s\n"
 
-#: pg_controldata.c:298
+#: pg_controldata.c:260
 #, c-format
-#| msgid "Current wal_log_hints setting:        %s\n"
 msgid "wal_log_hints setting:                %s\n"
 msgstr "wal_log_hints设置:        %s\n"
 
-#: pg_controldata.c:300
+#: pg_controldata.c:262
 #, c-format
-#| msgid "Current max_connections setting:      %d\n"
 msgid "max_connections setting:              %d\n"
 msgstr "max_connections设置:   %d\n"
 
-#: pg_controldata.c:302
+#: pg_controldata.c:264
 #, c-format
-#| msgid "Current max_worker_processes setting: %d\n"
 msgid "max_worker_processes setting:         %d\n"
 msgstr "max_worker_processes设置:   %d\n"
 
-#: pg_controldata.c:304
+#: pg_controldata.c:266
 #, c-format
-#| msgid "Current max_prepared_xacts setting:   %d\n"
 msgid "max_prepared_xacts setting:           %d\n"
 msgstr "max_prepared_xacts设置:   %d\n"
 
-#: pg_controldata.c:306
+#: pg_controldata.c:268
 #, c-format
-#| msgid "Current max_locks_per_xact setting:   %d\n"
 msgid "max_locks_per_xact setting:           %d\n"
 msgstr "max_locks_per_xact设置:   %d\n"
 
-#: pg_controldata.c:308
+#: pg_controldata.c:270
 #, c-format
-#| msgid "Current wal_log_hints setting:        %s\n"
 msgid "track_commit_timestamp setting:       %s\n"
 msgstr "track_commit_timestamp设置:        %s\n"
 
-#: pg_controldata.c:310
+#: pg_controldata.c:272
 #, c-format
 msgid "Maximum data alignment:               %u\n"
 msgstr "最大数据校准:     %u\n"
 
-#: pg_controldata.c:313
+#: pg_controldata.c:275
 #, c-format
 msgid "Database block size:                  %u\n"
 msgstr "数据库块大小:                         %u\n"
 
-#: pg_controldata.c:315
+#: pg_controldata.c:277
 #, c-format
 msgid "Blocks per segment of large relation: %u\n"
 msgstr "大关系的每段块数:                     %u\n"
 
-#: pg_controldata.c:317
+#: pg_controldata.c:279
 #, c-format
 msgid "WAL block size:                       %u\n"
 msgstr "WAL的块大小:    %u\n"
 
-#: pg_controldata.c:319
+#: pg_controldata.c:281
 #, c-format
 msgid "Bytes per WAL segment:                %u\n"
 msgstr "每一个 WAL 段字节数:                  %u\n"
 
-#: pg_controldata.c:321
+#: pg_controldata.c:283
 #, c-format
 msgid "Maximum length of identifiers:        %u\n"
 msgstr "标识符的最大长度:                     %u\n"
 
-#: pg_controldata.c:323
+#: pg_controldata.c:285
 #, c-format
 msgid "Maximum columns in an index:          %u\n"
 msgstr "在索引中可允许使用最大的列数:    %u\n"
 
-#: pg_controldata.c:325
+#: pg_controldata.c:287
 #, c-format
 msgid "Maximum size of a TOAST chunk:        %u\n"
 msgstr "TOAST区块的最大长度:                %u\n"
 
-#: pg_controldata.c:327
+#: pg_controldata.c:289
 #, c-format
 msgid "Size of a large-object chunk:         %u\n"
 msgstr "大对象区块的大小:         %u\n"
 
-#: pg_controldata.c:329
+#: pg_controldata.c:291
 #, c-format
 msgid "Date/time type storage:               %s\n"
 msgstr "日期/时间 类型存储:                   %s\n"
 
-#: pg_controldata.c:330
+#: pg_controldata.c:292
 msgid "64-bit integers"
 msgstr "64位整数"
 
-#: pg_controldata.c:330
+#: pg_controldata.c:292
 msgid "floating-point numbers"
 msgstr "浮点数"
 
-#: pg_controldata.c:331
+#: pg_controldata.c:293
 #, c-format
 msgid "Float4 argument passing:              %s\n"
 msgstr "正在传递Flloat4类型的参数:           %s\n"
 
-#: pg_controldata.c:332 pg_controldata.c:334
+#: pg_controldata.c:294 pg_controldata.c:296
 msgid "by reference"
 msgstr "由引用"
 
-#: pg_controldata.c:332 pg_controldata.c:334
+#: pg_controldata.c:294 pg_controldata.c:296
 msgid "by value"
 msgstr "由值"
 
-#: pg_controldata.c:333
+#: pg_controldata.c:295
 #, c-format
 msgid "Float8 argument passing:              %s\n"
 msgstr "正在传递Flloat8类型的参数:                   %s\n"
 
-#: pg_controldata.c:335
+#: pg_controldata.c:297
 #, c-format
 msgid "Data page checksum version:           %u\n"
 msgstr "数据页校验和版本:  %u\n"
 
+#~ msgid "Latest checkpoint's StartUpID:        %u\n"
+#~ msgstr "最新检查点的 StartUpID:               %u\n"
+
+#~ msgid "LC_CTYPE:                             %s\n"
+#~ msgstr "LC_CTYPE:                             %s\n"
+
+#~ msgid "LC_COLLATE:                           %s\n"
+#~ msgstr "LC_COLLATE:                           %s\n"
+
+#~ msgid "Maximum number of function arguments: %u\n"
+#~ msgstr "函数参数的最大个数:                   %u\n"
+
+#~ msgid "Latest checkpoint's UNDO location:    %X/%X\n"
+#~ msgstr "最新检查点的 UNDO 位置:               %X/%X\n"
+
 #~ msgid ""
 #~ "Usage:\n"
 #~ "  %s [OPTION] [DATADIR]\n"
@@ -474,17 +445,34 @@ msgstr "数据页校验和版本:  %u\n"
 #~ "  --help         显示此帮助信息, 然后退出\n"
 #~ "  --version      显示 pg_controldata 的版本, 然后退出\n"
 
-#~ msgid "Latest checkpoint's UNDO location:    %X/%X\n"
-#~ msgstr "最新检查点的 UNDO 位置:               %X/%X\n"
-
-#~ msgid "Maximum number of function arguments: %u\n"
-#~ msgstr "函数参数的最大个数:                   %u\n"
+#~ msgid ""
+#~ "WARNING: possible byte ordering mismatch\n"
+#~ "The byte ordering used to store the pg_control file might not match the "
+#~ "one\n"
+#~ "used by this program.  In that case the results below would be incorrect, "
+#~ "and\n"
+#~ "the PostgreSQL installation would be incompatible with this data "
+#~ "directory.\n"
+#~ msgstr ""
+#~ "警告: 可能字节顺序不匹配\n"
+#~ "用于存储文件pg_control的字节顺序可能与程序使用的不匹配\n"
+#~ "在那种情况下结果将会是不正确的,并且所安装的PostgreSQL\n"
+#~ "将会与这个数据目录不兼容\n"
 
-#~ msgid "LC_COLLATE:                           %s\n"
-#~ msgstr "LC_COLLATE:                           %s\n"
+#~ msgid ""
+#~ "WARNING: Calculated CRC checksum does not match value stored in file.\n"
+#~ "Either the file is corrupt, or it has a different layout than this "
+#~ "program\n"
+#~ "is expecting.  The results below are untrustworthy.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "警告: 计算出来的CRC校验值与已保存在文件中的值不匹配.\n"
+#~ "不是文件坏了,就是设计与程序的期望值不同.\n"
+#~ "下面的结果是不可靠的.\n"
+#~ "\n"
 
-#~ msgid "LC_CTYPE:                             %s\n"
-#~ msgstr "LC_CTYPE:                             %s\n"
+#~ msgid "%s: could not read file \"%s\": %s\n"
+#~ msgstr "%s: 无法读取文件 \"%s\": %s\n"
 
-#~ msgid "Latest checkpoint's StartUpID:        %u\n"
-#~ msgstr "最新检查点的 StartUpID:               %u\n"
+#~ msgid "%s: could not open file \"%s\" for reading: %s\n"
+#~ msgstr "%s: 无法打开文件 \"%s\" 读取信息: %s\n"
index 2882c03f317bc67efb51c391999dc01364b8919a..b9d56bd9bfaa2f20cf2c500df1b696fb7be3e27e 100644 (file)
@@ -5,10 +5,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pg_dump (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:44+0000\n"
-"PO-Revision-Date: 2015-12-01 20:26+0800\n"
+"POT-Creation-Date: 2016-04-18 04:44+0000\n"
+"PO-Revision-Date: 2016-05-19 20:40+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
-"Language-Team: Chinese (Simplified)\n"
+"Language-Team: Chinese (Simplified) <ywpeng@whu.edu.cn>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -54,8 +54,8 @@ msgid "pclose failed: %s"
 msgstr "pclose调用失败: %s"
 
 #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75
-#: ../../common/fe_memutils.c:98 pg_backup_db.c:135 pg_backup_db.c:190
-#: pg_backup_db.c:234 pg_backup_db.c:280
+#: ../../common/fe_memutils.c:98 pg_backup_db.c:137 pg_backup_db.c:188
+#: pg_backup_db.c:245 pg_backup_db.c:287
 #, c-format
 msgid "out of memory\n"
 msgstr "内存用尽\n"
@@ -101,180 +101,191 @@ msgstr "子进程被信号 %d 终止"
 msgid "child process exited with unrecognized status %d"
 msgstr "子进程已退出, 未知状态 %d"
 
-#: common.c:109
+#: common.c:121
+#, c-format
+msgid "reading extensions\n"
+msgstr "读扩展\n"
+
+#: common.c:126
+#, c-format
+#| msgid "finding extension members\n"
+msgid "identifying extension members\n"
+msgstr "识别扩展成员\n"
+
+#: common.c:130
 #, c-format
 msgid "reading schemas\n"
 msgstr "读取模式\n"
 
-#: common.c:120
+#: common.c:141
 #, c-format
 msgid "reading user-defined tables\n"
 msgstr "读取用户定义表\n"
 
-#: common.c:128
-#, c-format
-msgid "reading extensions\n"
-msgstr "读扩展\n"
-
-#: common.c:132
+#: common.c:149
 #, c-format
 msgid "reading user-defined functions\n"
 msgstr "读取用户定义函数\n"
 
-#: common.c:138
+#: common.c:155
 #, c-format
 msgid "reading user-defined types\n"
 msgstr "读取用户定义类型\n"
 
-#: common.c:144
+#: common.c:161
 #, c-format
 msgid "reading procedural languages\n"
 msgstr "读取过程语言\n"
 
-#: common.c:148
+#: common.c:165
 #, c-format
 msgid "reading user-defined aggregate functions\n"
 msgstr "读取用户定义聚集函数\n"
 
-#: common.c:152
+#: common.c:169
 #, c-format
 msgid "reading user-defined operators\n"
 msgstr "读取用户定义操作符\n"
 
-#: common.c:157
+#: common.c:174
+#, c-format
+#| msgid "reading user-defined conversions\n"
+msgid "reading user-defined access methods\n"
+msgstr "读取用户定义的访问方法\n"
+
+#: common.c:178
 #, c-format
 msgid "reading user-defined operator classes\n"
 msgstr "读取用户定义操作符集\n"
 
-#: common.c:161
+#: common.c:182
 #, c-format
 msgid "reading user-defined operator families\n"
 msgstr "读取用户定义操作符\n"
 
-#: common.c:165
+#: common.c:186
 #, c-format
 msgid "reading user-defined text search parsers\n"
 msgstr "读取用户定义的文本搜索解析器\n"
 
-#: common.c:169
+#: common.c:190
 #, c-format
 msgid "reading user-defined text search templates\n"
 msgstr "读取用户定义的文本搜索模板\n"
 
-#: common.c:173
+#: common.c:194
 #, c-format
 msgid "reading user-defined text search dictionaries\n"
 msgstr "读取用户定义的文本搜索字典\n"
 
 # sql_help.h:129
-#: common.c:177
+#: common.c:198
 #, c-format
 msgid "reading user-defined text search configurations\n"
 msgstr "读取用户定义的文本搜索配置\n"
 
-#: common.c:181
+#: common.c:202
 #, c-format
 msgid "reading user-defined foreign-data wrappers\n"
 msgstr "读取用户定义外部数据封装器\n"
 
-#: common.c:185
+#: common.c:206
 #, c-format
 msgid "reading user-defined foreign servers\n"
 msgstr "读取用户定义的外部服务器\n"
 
-#: common.c:189
+#: common.c:210
 #, c-format
 msgid "reading default privileges\n"
 msgstr "正在读取缺省权限\n"
 
-#: common.c:193
+#: common.c:214
 #, c-format
 msgid "reading user-defined collations\n"
 msgstr "读取用户定义的校对函数\n"
 
-#: common.c:198
+#: common.c:219
 #, c-format
 msgid "reading user-defined conversions\n"
 msgstr "读取用户定义的字符集转换\n"
 
-#: common.c:202
+#: common.c:223
 #, c-format
 msgid "reading type casts\n"
 msgstr "读取类型转换\n"
 
-#: common.c:206
+#: common.c:227
 #, c-format
-#| msgid "reading extensions\n"
 msgid "reading transforms\n"
 msgstr "读取转换\n"
 
-#: common.c:210
+#: common.c:231
 #, c-format
 msgid "reading table inheritance information\n"
 msgstr "读取表继承信息\n"
 
-#: common.c:214
+#: common.c:235
 #, c-format
 msgid "reading event triggers\n"
 msgstr "读取事件触发器\n"
 
-#: common.c:223
+#: common.c:240
 #, c-format
-msgid "finding extension members\n"
-msgstr "查找扩展成员\n"
+#| msgid "finding extension members\n"
+msgid "finding extension tables\n"
+msgstr "查找扩展表\n"
 
-#: common.c:228
+#: common.c:245
 #, c-format
 msgid "finding inheritance relationships\n"
 msgstr "正在查找关系继承\n"
 
-#: common.c:232
+#: common.c:249
 #, c-format
 msgid "reading column info for interesting tables\n"
 msgstr "正在读取感兴趣表的列信息\n"
 
-#: common.c:236
+#: common.c:253
 #, c-format
 msgid "flagging inherited columns in subtables\n"
 msgstr "在子表里标记继承字段\n"
 
-#: common.c:240
+#: common.c:257
 #, c-format
 msgid "reading indexes\n"
 msgstr "读取索引\n"
 
-#: common.c:244
+#: common.c:261
 #, c-format
 msgid "reading constraints\n"
 msgstr "读取约束\n"
 
-#: common.c:248
+#: common.c:265
 #, c-format
 msgid "reading triggers\n"
 msgstr "读取触发器\n"
 
-#: common.c:252
+#: common.c:269
 #, c-format
 msgid "reading rewrite rules\n"
 msgstr "读取重写规则\n"
 
-#: common.c:256
+#: common.c:273
 #, c-format
-#| msgid "reading schemas\n"
 msgid "reading policies\n"
 msgstr "读取策略\n"
 
-#: common.c:804
+#: common.c:908
 #, c-format
 msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found\n"
 msgstr "健全检查失败, 未找到表 \"%2$s\" (OID %3$u) 的 OID 为 %1$u 的父辈\n"
 
-#: common.c:846
+#: common.c:950
 #, c-format
 msgid "could not parse numeric array \"%s\": too many numbers\n"
 msgstr "无法分析数值数组\"%s\": 数字太多\n"
 
-#: common.c:861
+#: common.c:965
 #, c-format
 msgid "could not parse numeric array \"%s\": invalid character in number\n"
 msgstr "无法分析数值数组\"%s\": 出现无效字符\n"
@@ -322,49 +333,49 @@ msgstr "无法关闭压缩库: %s\n"
 
 # input.c:210
 #: compress_io.c:606 compress_io.c:642 pg_backup_custom.c:591
-#: pg_backup_tar.c:560
+#: pg_backup_tar.c:561
 #, c-format
 msgid "could not read from input file: %s\n"
 msgstr "无法从输入档案读取:%s\n"
 
 # input.c:210
 #: compress_io.c:645 pg_backup_custom.c:588 pg_backup_directory.c:552
-#: pg_backup_tar.c:796 pg_backup_tar.c:820
+#: pg_backup_tar.c:797 pg_backup_tar.c:821
 #, c-format
 msgid "could not read from input file: end of file\n"
 msgstr "无法从输入文件中读取:文件的结尾\n"
 
-#: parallel.c:78
+#: parallel.c:77
 msgid "parallel archiver"
 msgstr "并行归档"
 
-#: parallel.c:143
+#: parallel.c:140
 #, c-format
 msgid "%s: WSAStartup failed: %d\n"
 msgstr "%s: WSAStartup 失败: %d\n"
 
-#: parallel.c:343
+#: parallel.c:340
 #, c-format
 msgid "worker is terminating\n"
 msgstr "工作者进程正在终止\n"
 
-#: parallel.c:537
+#: parallel.c:530
 #, c-format
 msgid "could not create communication channels: %s\n"
 msgstr "无法创建通信通道: %s\n"
 
 # fe-connect.c:891
-#: parallel.c:611
+#: parallel.c:602
 #, c-format
 msgid "could not create worker process: %s\n"
 msgstr "无法创建工作进程: %s\n"
 
-#: parallel.c:828
+#: parallel.c:819
 #, c-format
 msgid "could not get relation name for OID %u: %s\n"
 msgstr "无法获取OID值为%u:%s的关系名\n"
 
-#: parallel.c:845
+#: parallel.c:836
 #, c-format
 msgid ""
 "could not obtain lock on relation \"%s\"\n"
@@ -376,564 +387,589 @@ msgstr ""
 "这通常意味着在父进程pg_dump已经得到表的共享访问锁之后,仍有人请求该表的排它访"
 "问锁.\n"
 
-#: parallel.c:929
+#: parallel.c:920
 #, c-format
 msgid "unrecognized command on communication channel: %s\n"
 msgstr "无法识别通信通上的命令:%s\n"
 
-#: parallel.c:962
+#: parallel.c:953
 #, c-format
 msgid "a worker process died unexpectedly\n"
 msgstr "一工作者进程意外退出\n"
 
 # fe-misc.c:515 fe-misc.c:595
-#: parallel.c:989 parallel.c:998
+#: parallel.c:980 parallel.c:989
 #, c-format
 msgid "invalid message received from worker: %s\n"
 msgstr "接收到来自工作者进程的无效消息: %s\n"
 
-#: parallel.c:995 pg_backup_db.c:337
+#: parallel.c:986 pg_backup_db.c:355
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: parallel.c:1047 parallel.c:1091
+#: parallel.c:1038 parallel.c:1082
 #, c-format
 msgid "error processing a parallel work item\n"
 msgstr "错误处理一个并行工作项\n"
 
-#: parallel.c:1119 parallel.c:1257
+#: parallel.c:1110 parallel.c:1248
 #, c-format
 msgid "could not write to the communication channel: %s\n"
 msgstr "无法写入通信通道: %s\n"
 
-#: parallel.c:1168
+#: parallel.c:1159
 #, c-format
 msgid "terminated by user\n"
 msgstr "已被用户终止\n"
 
-#: parallel.c:1220
+#: parallel.c:1211
 #, c-format
 msgid "error in ListenToWorkers(): %s\n"
 msgstr "调用ListenToWorkers()时出错: %s\n"
 
-#: parallel.c:1345
+#: parallel.c:1336
 #, c-format
 msgid "pgpipe: could not create socket: error code %d\n"
 msgstr "pgpipe: 无法创建套接字: 错误码为 %d\n"
 
-#: parallel.c:1356
+#: parallel.c:1347
 #, c-format
 msgid "pgpipe: could not bind: error code %d\n"
 msgstr "pgpipe: 无法绑定: 错误码为%d\n"
 
-#: parallel.c:1363
+#: parallel.c:1354
 #, c-format
 msgid "pgpipe: could not listen: error code %d\n"
 msgstr "pgpipe: 无法监听: 错误码为 %d\n"
 
-#: parallel.c:1370
+#: parallel.c:1361
 #, c-format
 msgid "pgpipe: getsockname() failed: error code %d\n"
 msgstr "pgpipe: getsockname()调用失败: 错误码为 %d\n"
 
-#: parallel.c:1381
+#: parallel.c:1372
 #, c-format
 msgid "pgpipe: could not create second socket: error code %d\n"
 msgstr "pgpipe: 无法创建继承套接字: 错误码为 %d\n"
 
-#: parallel.c:1390
+#: parallel.c:1381
 #, c-format
 msgid "pgpipe: could not connect socket: error code %d\n"
 msgstr "pgpipe: 无法连接套接字: 错误码为 %d\n"
 
-#: parallel.c:1397
+#: parallel.c:1388
 #, c-format
 msgid "pgpipe: could not accept connection: error code %d\n"
 msgstr "pgpipe: 无法接受连接: 错误码为 %d\n"
 
 #. translator: this is a module name
-#: pg_backup_archiver.c:53
+#: pg_backup_archiver.c:55
 msgid "archiver"
 msgstr "归档"
 
-#: pg_backup_archiver.c:230 pg_backup_archiver.c:1479
+#: pg_backup_archiver.c:234 pg_backup_archiver.c:1512
 #, c-format
 msgid "could not close output file: %s\n"
 msgstr "无法关闭输出文件: %s\n"
 
-#: pg_backup_archiver.c:265 pg_backup_archiver.c:270
+#: pg_backup_archiver.c:280 pg_backup_archiver.c:285
 #, c-format
 msgid "WARNING: archive items not in correct section order\n"
 msgstr "警告: 归档项的序号不正确\n"
 
-#: pg_backup_archiver.c:276
+#: pg_backup_archiver.c:291
 #, c-format
 msgid "unexpected section code %d\n"
 msgstr "意外的节码 %d\n"
 
-#: pg_backup_archiver.c:308
+#: pg_backup_archiver.c:327
 #, c-format
 msgid "-C and -1 are incompatible options\n"
 msgstr "-C 和 -c 是互不兼容的选项\n"
 
 # input.c:213
-#: pg_backup_archiver.c:318
+#: pg_backup_archiver.c:337
 #, c-format
 msgid "parallel restore is not supported with this archive file format\n"
 msgstr "不支持以这种归档文件格式进行并行恢复\n"
 
-#: pg_backup_archiver.c:322
+#: pg_backup_archiver.c:341
 #, c-format
 msgid ""
 "parallel restore is not supported with archives made by pre-8.0 pg_dump\n"
 msgstr "不支持使用8.0版本以前的pg_dump命令产生的存档文件进行并行恢复\n"
 
-#: pg_backup_archiver.c:340
+#: pg_backup_archiver.c:359
 #, c-format
 msgid ""
 "cannot restore from compressed archive (compression not supported in this "
 "installation)\n"
 msgstr "无法从压缩的归档中恢复 (未配置压缩支持)\n"
 
-#: pg_backup_archiver.c:357
+#: pg_backup_archiver.c:376
 #, c-format
 msgid "connecting to database for restore\n"
 msgstr "为恢复数据库与数据库联接\n"
 
-#: pg_backup_archiver.c:359
+#: pg_backup_archiver.c:378
 #, c-format
 msgid "direct database connections are not supported in pre-1.3 archives\n"
 msgstr "1.3 以前的归档里不支持直接数据库联接\n"
 
-#: pg_backup_archiver.c:404
+#: pg_backup_archiver.c:423
 #, c-format
 msgid "implied data-only restore\n"
 msgstr "隐含的只恢复数据\n"
 
-#: pg_backup_archiver.c:474
+#: pg_backup_archiver.c:493
 #, c-format
 msgid "dropping %s %s\n"
 msgstr "删除 %s %s\n"
 
-#: pg_backup_archiver.c:627
+#: pg_backup_archiver.c:646
 #, c-format
-#| msgid "setting owner and privileges for %s %s\n"
 msgid "setting owner and privileges for %s \"%s.%s\"\n"
 msgstr "为%s \"%s.%s\"设置属主和权限\n"
 
-#: pg_backup_archiver.c:630
+#: pg_backup_archiver.c:649
 #, c-format
-#| msgid "setting owner and privileges for %s %s\n"
 msgid "setting owner and privileges for %s \"%s\"\n"
 msgstr "为%s \"%s\"设置属主和权限\n"
 
-#: pg_backup_archiver.c:696 pg_backup_archiver.c:698
+#: pg_backup_archiver.c:715 pg_backup_archiver.c:717
 #, c-format
 msgid "warning from original dump file: %s\n"
 msgstr "来自原始转储文件的警告: %s\n"
 
-#: pg_backup_archiver.c:707
+#: pg_backup_archiver.c:726
 #, c-format
-#| msgid "creating %s %s\n"
 msgid "creating %s \"%s.%s\"\n"
 msgstr "创建%s \"%s.%s\"\n"
 
-#: pg_backup_archiver.c:710
+#: pg_backup_archiver.c:729
 #, c-format
-#| msgid "creating %s %s\n"
 msgid "creating %s \"%s\"\n"
 msgstr "创建%s \"%s\"\n"
 
-#: pg_backup_archiver.c:755
+#: pg_backup_archiver.c:774
 #, c-format
 msgid "connecting to new database \"%s\"\n"
 msgstr "联接到新数据库 \"%s\"\n"
 
-#: pg_backup_archiver.c:783
+#: pg_backup_archiver.c:802
 #, c-format
 msgid "processing %s\n"
 msgstr "正在处理 %s\n"
 
-#: pg_backup_archiver.c:803
+#: pg_backup_archiver.c:822
 #, c-format
-#| msgid "processing data for table \"%s\"\n"
 msgid "processing data for table \"%s.%s\"\n"
 msgstr "为表\"%s.%s\"处理数据\n"
 
-#: pg_backup_archiver.c:865
+#: pg_backup_archiver.c:884
 #, c-format
 msgid "executing %s %s\n"
 msgstr "执行 %s %s\n"
 
-#: pg_backup_archiver.c:902
+#: pg_backup_archiver.c:923
 #, c-format
 msgid "disabling triggers for %s\n"
 msgstr "为%s禁用触发器\n"
 
-#: pg_backup_archiver.c:928
+#: pg_backup_archiver.c:951
 #, c-format
 msgid "enabling triggers for %s\n"
 msgstr "为%s启用触发器\n"
 
-#: pg_backup_archiver.c:958
+#: pg_backup_archiver.c:981
 #, c-format
 msgid ""
 "internal error -- WriteData cannot be called outside the context of a "
 "DataDumper routine\n"
 msgstr "内部错误 -- WriteData 不能在 DataDumper 过程的环境之外调用\n"
 
-#: pg_backup_archiver.c:1122
+#: pg_backup_archiver.c:1150
 #, c-format
 msgid "large-object output not supported in chosen format\n"
 msgstr "选定的格式不支持大对象输出\n"
 
-#: pg_backup_archiver.c:1176
+#: pg_backup_archiver.c:1208
 #, c-format
 msgid "restored %d large object\n"
 msgid_plural "restored %d large objects\n"
 msgstr[0] "恢复%d个大对象\n"
 
-#: pg_backup_archiver.c:1197 pg_backup_tar.c:738
+#: pg_backup_archiver.c:1229 pg_backup_tar.c:739
 #, c-format
 msgid "restoring large object with OID %u\n"
 msgstr "恢复带有OID %u 的大对象\n"
 
-#: pg_backup_archiver.c:1209
+#: pg_backup_archiver.c:1241
 #, c-format
 msgid "could not create large object %u: %s"
 msgstr "无法创建大对象%u: %s"
 
-#: pg_backup_archiver.c:1214 pg_dump.c:2774
+#: pg_backup_archiver.c:1246 pg_dump.c:2997
 #, c-format
 msgid "could not open large object %u: %s"
 msgstr "无法打开大对象%u: %s"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: pg_backup_archiver.c:1271
+#: pg_backup_archiver.c:1304
 #, c-format
 msgid "could not open TOC file \"%s\": %s\n"
 msgstr "无法打开TOC文件 \"%s\": %s\n"
 
-#: pg_backup_archiver.c:1312
+#: pg_backup_archiver.c:1345
 #, c-format
 msgid "WARNING: line ignored: %s\n"
 msgstr "警告: 忽略的行: %s\n"
 
-#: pg_backup_archiver.c:1319
+#: pg_backup_archiver.c:1352
 #, c-format
 msgid "could not find entry for ID %d\n"
 msgstr "无法为 ID %d 找到记录\n"
 
-#: pg_backup_archiver.c:1340 pg_backup_directory.c:230
+#: pg_backup_archiver.c:1373 pg_backup_directory.c:230
 #: pg_backup_directory.c:601
 #, c-format
 msgid "could not close TOC file: %s\n"
 msgstr "无法关闭 TOC 文件: %s\n"
 
-#: pg_backup_archiver.c:1449 pg_backup_custom.c:162 pg_backup_directory.c:341
+#: pg_backup_archiver.c:1482 pg_backup_custom.c:162 pg_backup_directory.c:341
 #: pg_backup_directory.c:587 pg_backup_directory.c:645
 #: pg_backup_directory.c:665
 #, c-format
 msgid "could not open output file \"%s\": %s\n"
 msgstr "无法打开输出文件\"%s\": %s\n"
 
-#: pg_backup_archiver.c:1452 pg_backup_custom.c:169
+#: pg_backup_archiver.c:1485 pg_backup_custom.c:169
 #, c-format
 msgid "could not open output file: %s\n"
 msgstr "无法打开输出文件: %s\n"
 
-#: pg_backup_archiver.c:1556
+#: pg_backup_archiver.c:1591
 #, c-format
 msgid "wrote %lu byte of large object data (result = %lu)\n"
 msgid_plural "wrote %lu bytes of large object data (result = %lu)\n"
 msgstr[0] "已经写入了大对象的%lu字节(结果 = %lu)\n"
 
-#: pg_backup_archiver.c:1562
+#: pg_backup_archiver.c:1597
 #, c-format
 msgid "could not write to large object (result: %lu, expected: %lu)\n"
 msgstr "无法写入大对象 (结果: %lu, 预期: %lu)\n"
 
-#: pg_backup_archiver.c:1655
+#: pg_backup_archiver.c:1690
 #, c-format
 msgid "Error while INITIALIZING:\n"
 msgstr "INITIALIZING 时错误:\n"
 
-#: pg_backup_archiver.c:1660
+#: pg_backup_archiver.c:1695
 #, c-format
 msgid "Error while PROCESSING TOC:\n"
 msgstr "PROCESSING TOC 时错误:\n"
 
-#: pg_backup_archiver.c:1665
+#: pg_backup_archiver.c:1700
 #, c-format
 msgid "Error while FINALIZING:\n"
 msgstr "FINALIZING 时错误:\n"
 
-#: pg_backup_archiver.c:1670
+#: pg_backup_archiver.c:1705
 #, c-format
 msgid "Error from TOC entry %d; %u %u %s %s %s\n"
 msgstr "错误来自 TOC 记录 %d; %u %u %s %s %s\n"
 
-#: pg_backup_archiver.c:1743
+#: pg_backup_archiver.c:1778
 #, c-format
 msgid "bad dumpId\n"
 msgstr "错误的dumpId号\n"
 
-#: pg_backup_archiver.c:1764
+#: pg_backup_archiver.c:1799
 #, c-format
 msgid "bad table dumpId for TABLE DATA item\n"
 msgstr "TABLE DATA 项的表dumpId错误\n"
 
-#: pg_backup_archiver.c:1856
+#: pg_backup_archiver.c:1891
 #, c-format
 msgid "unexpected data offset flag %d\n"
 msgstr "意外的数据偏移标志 %d\n"
 
-#: pg_backup_archiver.c:1869
+#: pg_backup_archiver.c:1904
 #, c-format
 msgid "file offset in dump file is too large\n"
 msgstr "在转储文件中的文件偏移量太大\n"
 
-#: pg_backup_archiver.c:1982
+#: pg_backup_archiver.c:2017
 #, c-format
 msgid "attempting to ascertain archive format\n"
 msgstr "试图确认归档格式\n"
 
-#: pg_backup_archiver.c:2008 pg_backup_archiver.c:2018
+#: pg_backup_archiver.c:2043 pg_backup_archiver.c:2053
 #, c-format
 msgid "directory name too long: \"%s\"\n"
 msgstr "字典名字太长: \"%s\"\n"
 
-#: pg_backup_archiver.c:2026
+#: pg_backup_archiver.c:2061
 #, c-format
 msgid ""
 "directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not "
 "exist)\n"
 msgstr "目录 \"%s\" 看上去不像一个有效的归档 (\"toc.dat\" 不存在)\n"
 
-#: pg_backup_archiver.c:2034 pg_backup_custom.c:181 pg_backup_custom.c:770
+#: pg_backup_archiver.c:2069 pg_backup_custom.c:181 pg_backup_custom.c:770
 #: pg_backup_directory.c:214 pg_backup_directory.c:402
 #, c-format
 msgid "could not open input file \"%s\": %s\n"
 msgstr "无法打开输入文件 \"%s\": %s\n"
 
-#: pg_backup_archiver.c:2042 pg_backup_custom.c:188
+#: pg_backup_archiver.c:2077 pg_backup_custom.c:188
 #, c-format
 msgid "could not open input file: %s\n"
 msgstr "无法打开输入文件: %s\n"
 
-#: pg_backup_archiver.c:2049
+#: pg_backup_archiver.c:2084
 #, c-format
 msgid "could not read input file: %s\n"
 msgstr "无法读取输入文件: %s\n"
 
-#: pg_backup_archiver.c:2051
+#: pg_backup_archiver.c:2086
 #, c-format
 msgid "input file is too short (read %lu, expected 5)\n"
 msgstr "输入文件太短 (读了 %lu, 预期 5)\n"
 
-#: pg_backup_archiver.c:2134
+#: pg_backup_archiver.c:2169
 #, c-format
 msgid "input file appears to be a text format dump. Please use psql.\n"
 msgstr "输入文件看起来像是文本格式的dump. 请使用psql.\n"
 
-#: pg_backup_archiver.c:2140
+#: pg_backup_archiver.c:2175
 #, c-format
 msgid "input file does not appear to be a valid archive (too short?)\n"
 msgstr "输入文件看上去不象有效的归档 (太短?)\n"
 
-#: pg_backup_archiver.c:2146
+#: pg_backup_archiver.c:2181
 #, c-format
 msgid "input file does not appear to be a valid archive\n"
 msgstr "输入文件看上去不象有效的归档\n"
 
-#: pg_backup_archiver.c:2166
+#: pg_backup_archiver.c:2201
 #, c-format
 msgid "could not close input file: %s\n"
 msgstr "无法关闭输入文件: %s\n"
 
-#: pg_backup_archiver.c:2183
+#: pg_backup_archiver.c:2218
 #, c-format
 msgid "allocating AH for %s, format %d\n"
 msgstr "为 %s 分配 AH, 格式 %d\n"
 
-#: pg_backup_archiver.c:2288
+#: pg_backup_archiver.c:2323
 #, c-format
 msgid "unrecognized file format \"%d\"\n"
 msgstr "不可识别的文件格式 \"%d\"\n"
 
-#: pg_backup_archiver.c:2438
+#: pg_backup_archiver.c:2473
 #, c-format
 msgid "entry ID %d out of range -- perhaps a corrupt TOC\n"
 msgstr "记录 ID %d 超出范围 - 可能是损坏了的 TOC\n"
 
-#: pg_backup_archiver.c:2554
+#: pg_backup_archiver.c:2589
 #, c-format
 msgid "read TOC entry %d (ID %d) for %s %s\n"
 msgstr "为 %3$s %4$s 读取 TOC 记录 %1$d (ID %2$d)\n"
 
-#: pg_backup_archiver.c:2588
+#: pg_backup_archiver.c:2623
 #, c-format
 msgid "unrecognized encoding \"%s\"\n"
 msgstr "未知编码: \"%s\"\n"
 
-#: pg_backup_archiver.c:2593
+#: pg_backup_archiver.c:2628
 #, c-format
 msgid "invalid ENCODING item: %s\n"
 msgstr "无效的ENCODING成员:%s\n"
 
-#: pg_backup_archiver.c:2611
+#: pg_backup_archiver.c:2646
 #, c-format
 msgid "invalid STDSTRINGS item: %s\n"
 msgstr "无效的STDSTRINGS成员:%s\n"
 
-#: pg_backup_archiver.c:2834
+#: pg_backup_archiver.c:2661
+#, c-format
+#| msgid "service file \"%s\" not found\n"
+msgid "Schema \"%s\" not found.\n"
+msgstr "模式\"%s\"没有找到.\n"
+
+#: pg_backup_archiver.c:2668
+#, c-format
+#| msgid "service file \"%s\" not found\n"
+msgid "Table \"%s\" not found.\n"
+msgstr "表\"%s\"没有找到.\n"
+
+#: pg_backup_archiver.c:2675
+#, c-format
+#| msgid "option \"%s\" not found"
+msgid "Index \"%s\" not found.\n"
+msgstr "索引\"%s\"没有找到.\n"
+
+#: pg_backup_archiver.c:2682
+#, c-format
+#| msgid "option \"%s\" not found"
+msgid "Function \"%s\" not found.\n"
+msgstr "函数\"%s\"没有找到.\n"
+
+#: pg_backup_archiver.c:2689
+#, c-format
+#| msgid "service file \"%s\" not found\n"
+msgid "Trigger \"%s\" not found.\n"
+msgstr "触发器\"%s\"没有找到.\n"
+
+#: pg_backup_archiver.c:2920
 #, c-format
 msgid "could not set session user to \"%s\": %s"
 msgstr "无法设置会话用户为 \"%s\": %s"
 
-#: pg_backup_archiver.c:2866
+#: pg_backup_archiver.c:2952
 #, c-format
 msgid "could not set default_with_oids: %s"
 msgstr "无法设置 default_with_oids: %s"
 
-#: pg_backup_archiver.c:3004
+#: pg_backup_archiver.c:3092
 #, c-format
 msgid "could not set search_path to \"%s\": %s"
 msgstr "无法设置search_path值为\"%s\": %s"
 
-#: pg_backup_archiver.c:3065
+#: pg_backup_archiver.c:3154
 #, c-format
 msgid "could not set default_tablespace to %s: %s"
 msgstr "无法设置default_tablespace为 %s: %s"
 
-#: pg_backup_archiver.c:3152 pg_backup_archiver.c:3337
+#: pg_backup_archiver.c:3241 pg_backup_archiver.c:3428
 #, c-format
 msgid "WARNING: don't know how to set owner for object type %s\n"
 msgstr "警告: 不知道如何为对象类型%s设置属主\n"
 
-#: pg_backup_archiver.c:3390
+#: pg_backup_archiver.c:3481
 #, c-format
 msgid ""
 "WARNING: requested compression not available in this installation -- archive "
 "will be uncompressed\n"
 msgstr "警告: 所要求的压缩无法在本次安装中获取 - 归档将不被压缩\n"
 
-#: pg_backup_archiver.c:3429
+#: pg_backup_archiver.c:3520
 #, c-format
 msgid "did not find magic string in file header\n"
 msgstr "在文件头中没有找到魔术字串\n"
 
-#: pg_backup_archiver.c:3442
+#: pg_backup_archiver.c:3533
 #, c-format
 msgid "unsupported version (%d.%d) in file header\n"
 msgstr "在文件头中有不支持的版本 (%d.%d)\n"
 
-#: pg_backup_archiver.c:3447
+#: pg_backup_archiver.c:3538
 #, c-format
 msgid "sanity check on integer size (%lu) failed\n"
 msgstr "整数尺寸 (%lu) 的健全检查失败\n"
 
-#: pg_backup_archiver.c:3451
+#: pg_backup_archiver.c:3542
 #, c-format
 msgid ""
 "WARNING: archive was made on a machine with larger integers, some operations "
 "might fail\n"
 msgstr "警告: 归档不是在支持更大范围整数的主机上产生的, 有些操作可能失败\n"
 
-#: pg_backup_archiver.c:3461
+#: pg_backup_archiver.c:3552
 #, c-format
 msgid "expected format (%d) differs from format found in file (%d)\n"
 msgstr "预期的格式 (%d) 和在文件里找到的格式 (%d) 不同\n"
 
-#: pg_backup_archiver.c:3477
+#: pg_backup_archiver.c:3568
 #, c-format
 msgid ""
 "WARNING: archive is compressed, but this installation does not support "
 "compression -- no data will be available\n"
 msgstr "警告: 归档是压缩过的, 但是当前安装不支持压缩 - 数据将不可使用\n"
 
-#: pg_backup_archiver.c:3495
+#: pg_backup_archiver.c:3586
 #, c-format
 msgid "WARNING: invalid creation date in header\n"
 msgstr "警告: 在头中的创建日期无效\n"
 
-#: pg_backup_archiver.c:3571
+#: pg_backup_archiver.c:3661
 #, c-format
 msgid "entering restore_toc_entries_prefork\n"
 msgstr "正在进入restore_toc_entries_prefork\n"
 
-#: pg_backup_archiver.c:3615
+#: pg_backup_archiver.c:3705
 #, c-format
 msgid "processing item %d %s %s\n"
 msgstr "正在处理成员%d %s %s\n"
 
-#: pg_backup_archiver.c:3667
+#: pg_backup_archiver.c:3757
 #, c-format
 msgid "entering restore_toc_entries_parallel\n"
 msgstr "正在进入restore_toc_entries_parallel\n"
 
-#: pg_backup_archiver.c:3715
+#: pg_backup_archiver.c:3805
 #, c-format
 msgid "entering main parallel loop\n"
 msgstr "正在进入主并行循环\n"
 
-#: pg_backup_archiver.c:3726
+#: pg_backup_archiver.c:3816
 #, c-format
 msgid "skipping item %d %s %s\n"
 msgstr "忽略成员%d %s %s\n"
 
-#: pg_backup_archiver.c:3736
+#: pg_backup_archiver.c:3826
 #, c-format
 msgid "launching item %d %s %s\n"
 msgstr "正在启动成员%d %s %s\n"
 
-#: pg_backup_archiver.c:3794
+#: pg_backup_archiver.c:3884
 #, c-format
 msgid "finished main parallel loop\n"
 msgstr "已完成主并行循环\n"
 
-#: pg_backup_archiver.c:3803
+#: pg_backup_archiver.c:3893
 #, c-format
 msgid "entering restore_toc_entries_postfork\n"
 msgstr "正在进入restore_toc_entries_postfork\n"
 
-#: pg_backup_archiver.c:3821
+#: pg_backup_archiver.c:3911
 #, c-format
 msgid "processing missed item %d %s %s\n"
 msgstr "正在处理丢失的成员%d %s %s\n"
 
-#: pg_backup_archiver.c:3970
+#: pg_backup_archiver.c:4060
 #, c-format
 msgid "no item ready\n"
 msgstr "没有成员准备好\n"
 
-#: pg_backup_archiver.c:4020
+#: pg_backup_archiver.c:4109
 #, c-format
 msgid "could not find slot of finished worker\n"
 msgstr "无法找到已完成的工作进程的位置\n"
 
-#: pg_backup_archiver.c:4022
+#: pg_backup_archiver.c:4111
 #, c-format
 msgid "finished item %d %s %s\n"
 msgstr "已完成的成员%d %s %s\n"
 
-#: pg_backup_archiver.c:4035
+#: pg_backup_archiver.c:4124
 #, c-format
 msgid "worker process failed: exit code %d\n"
 msgstr "子进程已退出, 退出码为 %d\n"
 
-#: pg_backup_archiver.c:4197
+#: pg_backup_archiver.c:4286
 #, c-format
 msgid "transferring dependency %d -> %d to %d\n"
 msgstr "传输依赖关系从%d -> %d 到%d\n"
 
-#: pg_backup_archiver.c:4270
+#: pg_backup_archiver.c:4359
 #, c-format
 msgid "reducing dependencies for %d\n"
 msgstr "为%d减少依赖关系\n"
 
-#: pg_backup_archiver.c:4309
+#: pg_backup_archiver.c:4398
 #, c-format
 msgid "table \"%s\" could not be created, will not restore its data\n"
 msgstr "无法创建表\"%s\" , 这样无法恢复它的数据\n"
@@ -943,7 +979,7 @@ msgstr "无法创建表\"%s\" , 这样无法恢复它的数据\n"
 msgid "custom archiver"
 msgstr "客户归档"
 
-#: pg_backup_custom.c:384 pg_backup_null.c:149
+#: pg_backup_custom.c:384 pg_backup_null.c:150
 #, c-format
 msgid "invalid OID for large object\n"
 msgstr "大对象的无效 OID\n"
@@ -993,7 +1029,7 @@ msgid "unrecognized data block type %d while restoring archive\n"
 msgstr "恢复归档时碰到不识别的数据块类型 %d\n"
 
 #: pg_backup_custom.c:709 pg_backup_custom.c:759 pg_backup_custom.c:908
-#: pg_backup_tar.c:1083
+#: pg_backup_tar.c:1088
 #, c-format
 msgid "could not determine seek position in archive file: %s\n"
 msgstr "无法在归档文件中确定查找位置: %s\n"
@@ -1043,12 +1079,12 @@ msgstr "归档 (db)"
 msgid "could not get server_version from libpq\n"
 msgstr "无法从 libpq 获取服务器版本\n"
 
-#: pg_backup_db.c:55 pg_dumpall.c:1965
+#: pg_backup_db.c:55 pg_dumpall.c:1982
 #, c-format
 msgid "server version: %s; %s version: %s\n"
 msgstr "服务器版本: %s; %s 版本: %s\n"
 
-#: pg_backup_db.c:57 pg_dumpall.c:1967
+#: pg_backup_db.c:57 pg_dumpall.c:1984
 #, c-format
 msgid "aborting because of server version mismatch\n"
 msgstr "因为服务器版本不匹配而终止\n"
@@ -1058,82 +1094,82 @@ msgstr "因为服务器版本不匹配而终止\n"
 msgid "connecting to database \"%s\" as user \"%s\"\n"
 msgstr "以用户 \"%2$s\" 的身份联接到数据库 \"%1$s\"\n"
 
-#: pg_backup_db.c:133 pg_backup_db.c:185 pg_backup_db.c:232 pg_backup_db.c:278
-#: pg_dumpall.c:1795 pg_dumpall.c:1903
+#: pg_backup_db.c:135 pg_backup_db.c:183 pg_backup_db.c:243 pg_backup_db.c:285
+#: pg_dumpall.c:1812 pg_dumpall.c:1920
 msgid "Password: "
 msgstr "口令: "
 
-#: pg_backup_db.c:166
+#: pg_backup_db.c:164
 #, c-format
 msgid "failed to reconnect to database\n"
 msgstr "与数据库重新联接失败\n"
 
-#: pg_backup_db.c:171
+#: pg_backup_db.c:169
 #, c-format
 msgid "could not reconnect to database: %s"
 msgstr "无法与数据库重新联接: %s"
 
 # fe-misc.c:450 fe-misc.c:642 fe-misc.c:798
-#: pg_backup_db.c:187
+#: pg_backup_db.c:185
 #, c-format
 msgid "connection needs password\n"
 msgstr "在连接时需要输入口令\n"
 
-#: pg_backup_db.c:228
+#: pg_backup_db.c:237
 #, c-format
 msgid "already connected to a database\n"
 msgstr "已经与一个数据库联接\n"
 
-#: pg_backup_db.c:270
+#: pg_backup_db.c:277
 #, c-format
 msgid "failed to connect to database\n"
 msgstr "与数据库联接失败\n"
 
-#: pg_backup_db.c:289
+#: pg_backup_db.c:294
 #, c-format
 msgid "connection to database \"%s\" failed: %s"
 msgstr "与数据库 \"%s\" 联接失败: %s"
 
-#: pg_backup_db.c:344
+#: pg_backup_db.c:362
 #, c-format
 msgid "query failed: %s"
 msgstr "查询失败: %s"
 
-#: pg_backup_db.c:346
+#: pg_backup_db.c:364
 #, c-format
 msgid "query was: %s\n"
 msgstr "查询是: %s\n"
 
-#: pg_backup_db.c:410
+#: pg_backup_db.c:428
 #, c-format
 msgid "%s: %s    Command was: %s\n"
 msgstr "%s: %s    命令是: %s\n"
 
-#: pg_backup_db.c:466 pg_backup_db.c:540 pg_backup_db.c:547
+#: pg_backup_db.c:484 pg_backup_db.c:558 pg_backup_db.c:565
 msgid "could not execute query"
 msgstr "无法执行查询"
 
-#: pg_backup_db.c:519
+#: pg_backup_db.c:537
 #, c-format
 msgid "error returned by PQputCopyData: %s"
 msgstr "PQputCopyData返回错误: %s"
 
-#: pg_backup_db.c:568
+#: pg_backup_db.c:586
 #, c-format
 msgid "error returned by PQputCopyEnd: %s"
 msgstr "PQputCopyEnd返回错误: %s"
 
 # describe.c:933
-#: pg_backup_db.c:574
+#: pg_backup_db.c:592
 #, c-format
 msgid "COPY failed for table \"%s\": %s"
 msgstr "复制表 \"%s\"失败: %s"
 
-#: pg_backup_db.c:587
+#: pg_backup_db.c:605
 msgid "could not start database transaction"
 msgstr "无法开始数据库事务"
 
-#: pg_backup_db.c:595
+#: pg_backup_db.c:613
 msgid "could not commit database transaction"
 msgstr "无法提交数据库事务"
 
@@ -1202,108 +1238,108 @@ msgstr "文件名超长: \"%s\"\n"
 msgid "error during backup\n"
 msgstr "在备份过程中出错\n"
 
-#: pg_backup_null.c:74
+#: pg_backup_null.c:75
 #, c-format
 msgid "this format cannot be read\n"
 msgstr "无法读取这个格式\n"
 
 #. translator: this is a module name
-#: pg_backup_tar.c:101
+#: pg_backup_tar.c:102
 msgid "tar archiver"
 msgstr "tar 归档"
 
-#: pg_backup_tar.c:182
+#: pg_backup_tar.c:183
 #, c-format
 msgid "could not open TOC file \"%s\" for output: %s\n"
 msgstr "无法为输出打开TOC文件\"%s\": %s\n"
 
-#: pg_backup_tar.c:190
+#: pg_backup_tar.c:191
 #, c-format
 msgid "could not open TOC file for output: %s\n"
 msgstr "无法为输出打开 TOC 文件: %s\n"
 
-#: pg_backup_tar.c:211 pg_backup_tar.c:367
+#: pg_backup_tar.c:212 pg_backup_tar.c:368
 #, c-format
 msgid "compression is not supported by tar archive format\n"
 msgstr "不支持tar归档格式的压缩\n"
 
-#: pg_backup_tar.c:219
+#: pg_backup_tar.c:220
 #, c-format
 msgid "could not open TOC file \"%s\" for input: %s\n"
 msgstr "无法为输入打开TOC文件\"%s\": %s\n"
 
-#: pg_backup_tar.c:226
+#: pg_backup_tar.c:227
 #, c-format
 msgid "could not open TOC file for input: %s\n"
 msgstr "无法为输入打开 TOC 文件: %s\n"
 
-#: pg_backup_tar.c:353
+#: pg_backup_tar.c:354
 #, c-format
 msgid "could not find file \"%s\" in archive\n"
 msgstr "无法在归档中找到文件\"%s\"\n"
 
-#: pg_backup_tar.c:419
+#: pg_backup_tar.c:420
 #, c-format
 msgid "could not generate temporary file name: %s\n"
 msgstr "无法生成临时文件名: %s\n"
 
-#: pg_backup_tar.c:430
+#: pg_backup_tar.c:431
 #, c-format
 msgid "could not open temporary file\n"
 msgstr "无法打开临时文件\n"
 
-#: pg_backup_tar.c:457
+#: pg_backup_tar.c:458
 #, c-format
 msgid "could not close tar member\n"
 msgstr "无法关闭 tar 成员\n"
 
-#: pg_backup_tar.c:570
+#: pg_backup_tar.c:571
 #, c-format
 msgid "internal error -- neither th nor fh specified in tarReadRaw()\n"
 msgstr "内部错误 -- 在 tarReadRaw() 里既未声明 th 也未声明 fh\n"
 
-#: pg_backup_tar.c:693
+#: pg_backup_tar.c:694
 #, c-format
 msgid "unexpected COPY statement syntax: \"%s\"\n"
 msgstr "意外的COPY语句语法: \"%s\"\n"
 
-#: pg_backup_tar.c:955
+#: pg_backup_tar.c:960
 #, c-format
 msgid "invalid OID for large object (%u)\n"
 msgstr "用于大对象的非法 OID (%u)\n"
 
 # command.c:1148
-#: pg_backup_tar.c:1099
+#: pg_backup_tar.c:1104
 #, c-format
 msgid "could not close temporary file: %s\n"
 msgstr "无法关闭临时文件: %s\n"
 
-#: pg_backup_tar.c:1109
+#: pg_backup_tar.c:1114
 #, c-format
 msgid "actual file length (%s) does not match expected (%s)\n"
 msgstr "实际文件长度 (%s) 不匹配预期的长度 (%s)\n"
 
-#: pg_backup_tar.c:1146
+#: pg_backup_tar.c:1151
 #, c-format
 msgid "moving from position %s to next member at file position %s\n"
 msgstr "从位置 %s 移动到文件位置 %s 的下一个成员\n"
 
-#: pg_backup_tar.c:1157
+#: pg_backup_tar.c:1162
 #, c-format
 msgid "now at file position %s\n"
 msgstr "现在在文件的位置 %s\n"
 
-#: pg_backup_tar.c:1166 pg_backup_tar.c:1196
+#: pg_backup_tar.c:1171 pg_backup_tar.c:1201
 #, c-format
 msgid "could not find header for file \"%s\" in tar archive\n"
 msgstr "无法在tar归档中为文件\"%s\"找到标题头\n"
 
-#: pg_backup_tar.c:1180
+#: pg_backup_tar.c:1185
 #, c-format
 msgid "skipping tar member %s\n"
 msgstr "忽略 tar 成员 %s\n"
 
-#: pg_backup_tar.c:1184
+#: pg_backup_tar.c:1189
 #, c-format
 msgid ""
 "restoring data out of order is not supported in this archive format: \"%s\" "
@@ -1312,19 +1348,18 @@ msgstr ""
 "这个归档格式里不支持不按照顺序转储数据: 要求\"%s\" ,但它在归档文件里位于\"%s"
 "\"前面.\n"
 
-#: pg_backup_tar.c:1230
+#: pg_backup_tar.c:1235
 #, c-format
 msgid "incomplete tar header found (%lu byte)\n"
 msgid_plural "incomplete tar header found (%lu bytes)\n"
 msgstr[0] "找到未完成的tar文件头(%lu个字节)\n"
 
-#: pg_backup_tar.c:1271
+#: pg_backup_tar.c:1276
 #, c-format
-#| msgid "TOC Entry %s at %s (length %lu, checksum %d)\n"
 msgid "TOC Entry %s at %s (length %s, checksum %d)\n"
 msgstr "TOC项%s位于%s(长度为%s,校验和为%d)\n"
 
-#: pg_backup_tar.c:1282
+#: pg_backup_tar.c:1287
 #, c-format
 msgid ""
 "corrupt tar header found in %s (expected %d, computed %d) file position %s\n"
@@ -1336,9 +1371,9 @@ msgstr ""
 msgid "%s: unrecognized section name: \"%s\"\n"
 msgstr "%s: 无法识别的节名称: \"%s\"\n"
 
-#: pg_backup_utils.c:56 pg_dump.c:521 pg_dump.c:538 pg_dumpall.c:300
-#: pg_dumpall.c:310 pg_dumpall.c:320 pg_dumpall.c:329 pg_dumpall.c:345
-#: pg_dumpall.c:403 pg_restore.c:277 pg_restore.c:293 pg_restore.c:305
+#: pg_backup_utils.c:56 pg_dump.c:534 pg_dump.c:551 pg_dumpall.c:301
+#: pg_dumpall.c:311 pg_dumpall.c:321 pg_dumpall.c:330 pg_dumpall.c:346
+#: pg_dumpall.c:404 pg_restore.c:279 pg_restore.c:295 pg_restore.c:307
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "输入 \"%s --help\" 获取更多的信息.\n"
@@ -1348,59 +1383,54 @@ msgstr "输入 \"%s --help\" 获取更多的信息.\n"
 msgid "out of on_exit_nicely slots\n"
 msgstr "超出on_exit_nicely槽\n"
 
-#: pg_dump.c:491
+#: pg_dump.c:504
 #, c-format
 msgid "compression level must be in range 0..9\n"
 msgstr "压缩级别必须位于0..9的范围内\n"
 
-#: pg_dump.c:536 pg_dumpall.c:308 pg_restore.c:291
+#: pg_dump.c:549 pg_dumpall.c:309 pg_restore.c:293
 #, c-format
 msgid "%s: too many command-line arguments (first is \"%s\")\n"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_dump.c:549
+#: pg_dump.c:562
 #, c-format
 msgid "options -s/--schema-only and -a/--data-only cannot be used together\n"
 msgstr "选项 -s/--schema-only和-a/--data-only 不能同时使用.\n"
 
-#: pg_dump.c:555
+#: pg_dump.c:568
 #, c-format
 msgid "options -c/--clean and -a/--data-only cannot be used together\n"
 msgstr "选项 -c/--clean和 -a/--data-only不能同时使用.\n"
 
-#: pg_dump.c:561
+#: pg_dump.c:574
 #, c-format
 msgid ""
 "options --inserts/--column-inserts and -o/--oids cannot be used together\n"
 msgstr "选项--inserts/--column-inserts和-o/--oids不能同时使用.\n"
 
-#: pg_dump.c:562
+#: pg_dump.c:575
 #, c-format
 msgid "(The INSERT command cannot set OIDs.)\n"
 msgstr "(INSERT 命令无法设置对象标识(oid).)\n"
 
-#: pg_dump.c:567
+#: pg_dump.c:580
 #, c-format
 msgid "option --if-exists requires option -c/--clean\n"
 msgstr "选项 --if-exists 需要选项 -c/ --clean \n"
 
-#: pg_dump.c:595
+#: pg_dump.c:608
 #, c-format
 msgid "%s: invalid number of parallel jobs\n"
 msgstr "%s: 无效的并行工作数\n"
 
 # input.c:213
-#: pg_dump.c:599
+#: pg_dump.c:612
 #, c-format
 msgid "parallel backup only supported by the directory format\n"
 msgstr "并行备份只被目录格式支持\n"
 
-#: pg_dump.c:609
-#, c-format
-msgid "could not open output file \"%s\" for writing\n"
-msgstr "无法打开输出文件 \"%s\" 用于写出\n"
-
-#: pg_dump.c:668
+#: pg_dump.c:681
 #, c-format
 msgid ""
 "Synchronized snapshots are not supported by this server version.\n"
@@ -1411,30 +1441,29 @@ msgstr ""
 "如果不需要同步快照功能,\n"
 "可以带参数 --no-synchronized-snapshots运行.\n"
 
-#: pg_dump.c:675
+#: pg_dump.c:688
 #, c-format
-#| msgid "No per-database role settings support in this server version.\n"
 msgid "Exported snapshots are not supported by this server version.\n"
 msgstr "在这个版本的服务器中不支持导出的快照。\n"
 
-#: pg_dump.c:686
+#: pg_dump.c:699
 #, c-format
 msgid "last built-in OID is %u\n"
 msgstr "最后的内置 OID 是 %u\n"
 
 # describe.c:1542
-#: pg_dump.c:695
+#: pg_dump.c:709
 #, c-format
 msgid "No matching schemas were found\n"
 msgstr "没有找到符合的关联。\n"
 
 # describe.c:1542
-#: pg_dump.c:707
+#: pg_dump.c:723
 #, c-format
 msgid "No matching tables were found\n"
 msgstr "没有找到符合的关联。\n"
 
-#: pg_dump.c:861
+#: pg_dump.c:882
 #, c-format
 msgid ""
 "%s dumps a database as a text file or to other formats.\n"
@@ -1443,17 +1472,17 @@ msgstr ""
 "%s 把一个数据库转储为纯文本文件或者是其它格式.\n"
 "\n"
 
-#: pg_dump.c:862 pg_dumpall.c:548 pg_restore.c:432
+#: pg_dump.c:883 pg_dumpall.c:549 pg_restore.c:437
 #, c-format
 msgid "Usage:\n"
 msgstr "用法:\n"
 
-#: pg_dump.c:863
+#: pg_dump.c:884
 #, c-format
 msgid "  %s [OPTION]... [DBNAME]\n"
 msgstr "  %s [选项]... [数据库名字]\n"
 
-#: pg_dump.c:865 pg_dumpall.c:551 pg_restore.c:435
+#: pg_dump.c:886 pg_dumpall.c:552 pg_restore.c:440
 #, c-format
 msgid ""
 "\n"
@@ -1462,12 +1491,12 @@ msgstr ""
 "\n"
 "一般选项:\n"
 
-#: pg_dump.c:866
+#: pg_dump.c:887
 #, c-format
 msgid "  -f, --file=FILENAME          output file or directory name\n"
 msgstr "  -f, --file=FILENAME          输出文件或目录名\n"
 
-#: pg_dump.c:867
+#: pg_dump.c:888
 #, c-format
 msgid ""
 "  -F, --format=c|d|t|p         output file format (custom, directory, tar,\n"
@@ -1476,39 +1505,39 @@ msgstr ""
 "  -F, --format=c|d|t|p         输出文件格式 (定制, 目录, tar)\n"
 "                               明文 (默认值))\n"
 
-#: pg_dump.c:869
+#: pg_dump.c:890
 #, c-format
 msgid "  -j, --jobs=NUM               use this many parallel jobs to dump\n"
 msgstr "  -j, --jobs=NUM               执行多个并行任务进行备份转储工作\n"
 
-#: pg_dump.c:870
+#: pg_dump.c:891
 #, c-format
 msgid "  -v, --verbose                verbose mode\n"
 msgstr "  -v, --verbose                详细模式\n"
 
-#: pg_dump.c:871 pg_dumpall.c:553
+#: pg_dump.c:892 pg_dumpall.c:554
 #, c-format
 msgid "  -V, --version                output version information, then exit\n"
 msgstr "  -V, --version                输出版本信息,然后退出\n"
 
-#: pg_dump.c:872
+#: pg_dump.c:893
 #, c-format
 msgid ""
 "  -Z, --compress=0-9           compression level for compressed formats\n"
 msgstr "  -Z, --compress=0-9           被压缩格式的压缩级别\n"
 
-#: pg_dump.c:873 pg_dumpall.c:554
+#: pg_dump.c:894 pg_dumpall.c:555
 #, c-format
 msgid ""
 "  --lock-wait-timeout=TIMEOUT  fail after waiting TIMEOUT for a table lock\n"
 msgstr "  --lock-wait-timeout=TIMEOUT  在等待表锁超时后操作失败\n"
 
-#: pg_dump.c:874 pg_dumpall.c:555
+#: pg_dump.c:895 pg_dumpall.c:556
 #, c-format
 msgid "  -?, --help                   show this help, then exit\n"
 msgstr "  -?, --help                   显示此帮助, 然后退出\n"
 
-#: pg_dump.c:876 pg_dumpall.c:556
+#: pg_dump.c:897 pg_dumpall.c:557
 #, c-format
 msgid ""
 "\n"
@@ -1517,17 +1546,17 @@ msgstr ""
 "\n"
 "控制输出内容选项:\n"
 
-#: pg_dump.c:877 pg_dumpall.c:557
+#: pg_dump.c:898 pg_dumpall.c:558
 #, c-format
 msgid "  -a, --data-only              dump only the data, not the schema\n"
 msgstr "  -a, --data-only              只转储数据,不包括模式\n"
 
-#: pg_dump.c:878
+#: pg_dump.c:899
 #, c-format
 msgid "  -b, --blobs                  include large objects in dump\n"
 msgstr "  -b, --blobs                  在转储中包括大对象\n"
 
-#: pg_dump.c:879 pg_restore.c:446
+#: pg_dump.c:900 pg_restore.c:451
 #, c-format
 msgid ""
 "  -c, --clean                  clean (drop) database objects before "
@@ -1535,33 +1564,33 @@ msgid ""
 msgstr ""
 "  -c, --clean                  在重新创建之前,先清除(删除)数据库对象\n"
 
-#: pg_dump.c:880
+#: pg_dump.c:901
 #, c-format
 msgid ""
 "  -C, --create                 include commands to create database in dump\n"
 msgstr "  -C, --create                 在转储中包括命令,以便创建数据库\n"
 
-#: pg_dump.c:881
+#: pg_dump.c:902
 #, c-format
 msgid "  -E, --encoding=ENCODING      dump the data in encoding ENCODING\n"
 msgstr "  -E, --encoding=ENCODING      转储以ENCODING形式编码的数据\n"
 
-#: pg_dump.c:882
+#: pg_dump.c:903
 #, c-format
 msgid "  -n, --schema=SCHEMA          dump the named schema(s) only\n"
 msgstr "  -n, --schema=SCHEMA          只转储指定名称的模式\n"
 
-#: pg_dump.c:883
+#: pg_dump.c:904
 #, c-format
 msgid "  -N, --exclude-schema=SCHEMA  do NOT dump the named schema(s)\n"
 msgstr "  -N, --exclude-schema=SCHEMA  不转储已命名的模式\n"
 
-#: pg_dump.c:884 pg_dumpall.c:560
+#: pg_dump.c:905 pg_dumpall.c:561
 #, c-format
 msgid "  -o, --oids                   include OIDs in dump\n"
 msgstr "  -o, --oids                   在转储中包括 OID\n"
 
-#: pg_dump.c:885
+#: pg_dump.c:906
 #, c-format
 msgid ""
 "  -O, --no-owner               skip restoration of object ownership in\n"
@@ -1570,46 +1599,46 @@ msgstr ""
 "  -O, --no-owner               在明文格式中, 忽略恢复对象所属者\n"
 "\n"
 
-#: pg_dump.c:887 pg_dumpall.c:563
+#: pg_dump.c:908 pg_dumpall.c:564
 #, c-format
 msgid "  -s, --schema-only            dump only the schema, no data\n"
 msgstr "  -s, --schema-only            只转储模式, 不包括数据\n"
 
-#: pg_dump.c:888
+#: pg_dump.c:909
 #, c-format
 msgid ""
 "  -S, --superuser=NAME         superuser user name to use in plain-text "
 "format\n"
 msgstr "  -S, --superuser=NAME         在明文格式中使用指定的超级用户名\n"
 
-#: pg_dump.c:889
+#: pg_dump.c:910
 #, c-format
 msgid "  -t, --table=TABLE            dump the named table(s) only\n"
 msgstr "  -t, --table=TABLE            只转储指定名称的表\n"
 
-#: pg_dump.c:890
+#: pg_dump.c:911
 #, c-format
 msgid "  -T, --exclude-table=TABLE    do NOT dump the named table(s)\n"
 msgstr "  -T, --exclude-table=TABLE    不转储指定名称的表\n"
 
-#: pg_dump.c:891 pg_dumpall.c:566
+#: pg_dump.c:912 pg_dumpall.c:567
 #, c-format
 msgid "  -x, --no-privileges          do not dump privileges (grant/revoke)\n"
 msgstr "  -x, --no-privileges          不要转储权限 (grant/revoke)\n"
 
-#: pg_dump.c:892 pg_dumpall.c:567
+#: pg_dump.c:913 pg_dumpall.c:568
 #, c-format
 msgid "  --binary-upgrade             for use by upgrade utilities only\n"
 msgstr "  --binary-upgrade             只能由升级工具使用\n"
 
-#: pg_dump.c:893 pg_dumpall.c:568
+#: pg_dump.c:914 pg_dumpall.c:569
 #, c-format
 msgid ""
 "  --column-inserts             dump data as INSERT commands with column "
 "names\n"
 msgstr "  --column-inserts             以带有列名的INSERT命令形式转储数据\n"
 
-#: pg_dump.c:894 pg_dumpall.c:569
+#: pg_dump.c:915 pg_dumpall.c:570
 #, c-format
 msgid ""
 "  --disable-dollar-quoting     disable dollar quoting, use SQL standard "
@@ -1617,13 +1646,13 @@ msgid ""
 msgstr ""
 "  --disable-dollar-quoting     取消美元 (符号) 引号, 使用 SQL 标准引号\n"
 
-#: pg_dump.c:895 pg_dumpall.c:570 pg_restore.c:462
+#: pg_dump.c:916 pg_dumpall.c:571 pg_restore.c:467
 #, c-format
 msgid ""
 "  --disable-triggers           disable triggers during data-only restore\n"
 msgstr "  --disable-triggers           在只恢复数据的过程中禁用触发器\n"
 
-#: pg_dump.c:896
+#: pg_dump.c:917
 #, c-format
 msgid ""
 "  --enable-row-security        enable row security (dump only content user "
@@ -1632,18 +1661,18 @@ msgid ""
 msgstr ""
 "  --enable-row-security        启用行安全性(只转储用户能够访问的内容)\n"
 
-#: pg_dump.c:898
+#: pg_dump.c:919
 #, c-format
 msgid ""
 "  --exclude-table-data=TABLE   do NOT dump data for the named table(s)\n"
 msgstr "  --exclude-table-data=TABLE   不转储指定名称的表中的数据\n"
 
-#: pg_dump.c:899 pg_dumpall.c:571 pg_restore.c:464
+#: pg_dump.c:920 pg_dumpall.c:572 pg_restore.c:469
 #, c-format
 msgid "  --if-exists                  use IF EXISTS when dropping objects\n"
 msgstr "  --if-exists              当删除对象时使用IF EXISTS\n"
 
-#: pg_dump.c:900 pg_dumpall.c:572
+#: pg_dump.c:921 pg_dumpall.c:573
 #, c-format
 msgid ""
 "  --inserts                    dump data as INSERT commands, rather than "
@@ -1651,35 +1680,35 @@ msgid ""
 msgstr ""
 "  --inserts                    以INSERT命令,而不是COPY命令的形式转储数据\n"
 
-#: pg_dump.c:901 pg_dumpall.c:573
+#: pg_dump.c:922 pg_dumpall.c:574
 #, c-format
 msgid "  --no-security-labels         do not dump security label assignments\n"
 msgstr "  --no-security-labels         不转储安全标签的分配\n"
 
-#: pg_dump.c:902
+#: pg_dump.c:923
 #, c-format
 msgid ""
 "  --no-synchronized-snapshots  do not use synchronized snapshots in parallel "
 "jobs\n"
 msgstr "  --no-synchronized-snapshots  在并行工作集中不使用同步快照\n"
 
-#: pg_dump.c:903 pg_dumpall.c:574
+#: pg_dump.c:924 pg_dumpall.c:575
 #, c-format
 msgid "  --no-tablespaces             do not dump tablespace assignments\n"
 msgstr "  --no-tablespaces             不转储表空间分配信息\n"
 
-#: pg_dump.c:904 pg_dumpall.c:575
+#: pg_dump.c:925 pg_dumpall.c:576
 #, c-format
 msgid "  --no-unlogged-table-data     do not dump unlogged table data\n"
 msgstr "  --no-unlogged-table-data     不转储没有日志的表数据\n"
 
-#: pg_dump.c:905 pg_dumpall.c:576
+#: pg_dump.c:926 pg_dumpall.c:577
 #, c-format
 msgid ""
 "  --quote-all-identifiers      quote all identifiers, even if not key words\n"
 msgstr "  --quote-all-identifiers      所有标识符加引号,即使不是关键字\n"
 
-#: pg_dump.c:906
+#: pg_dump.c:927
 #, c-format
 msgid ""
 "  --section=SECTION            dump named section (pre-data, data, or post-"
@@ -1687,19 +1716,33 @@ msgid ""
 msgstr ""
 "  --section=SECTION            备份命名的节 (数据前, 数据, 及 数据后)\n"
 
-#: pg_dump.c:907
+#: pg_dump.c:928
 #, c-format
 msgid ""
 "  --serializable-deferrable    wait until the dump can run without "
 "anomalies\n"
 msgstr "  --serializable-deferrable   等到备份可以无异常运行\n"
 
-#: pg_dump.c:908
+#: pg_dump.c:929
 #, c-format
 msgid "  --snapshot=SNAPSHOT          use given snapshot for the dump\n"
 msgstr "  --snapshot=SNAPSHOT          为转储使用给定的快照\n"
 
-#: pg_dump.c:909 pg_dumpall.c:577 pg_restore.c:470
+#: pg_dump.c:930 pg_restore.c:475
+#, c-format
+#| msgid ""
+#| "  --interactive             prompt for missing role name and attributes "
+#| "rather\n"
+#| "                            than using defaults\n"
+msgid ""
+"  --strict-names               require table and/or schema include patterns "
+"to\n"
+"                               match at least one entity each\n"
+msgstr ""
+"  --strict-names               要求每个表和/或schema包括模式以匹配至少一个实"
+"体\n"
+
+#: pg_dump.c:932 pg_dumpall.c:578 pg_restore.c:477
 #, c-format
 msgid ""
 "  --use-set-session-authorization\n"
@@ -1711,7 +1754,7 @@ msgstr ""
 "                               使用 SESSION AUTHORIZATION 命令代替\n"
 "                ALTER OWNER 命令来设置所有权\n"
 
-#: pg_dump.c:913 pg_dumpall.c:581 pg_restore.c:474
+#: pg_dump.c:936 pg_dumpall.c:582 pg_restore.c:481
 #, c-format
 msgid ""
 "\n"
@@ -1720,44 +1763,44 @@ msgstr ""
 "\n"
 "联接选项:\n"
 
-#: pg_dump.c:914
+#: pg_dump.c:937
 #, c-format
 msgid "  -d, --dbname=DBNAME      database to dump\n"
 msgstr "  -d, --dbname=DBNAME       对数据库 DBNAME备份\n"
 
-#: pg_dump.c:915 pg_dumpall.c:583 pg_restore.c:475
+#: pg_dump.c:938 pg_dumpall.c:584 pg_restore.c:482
 #, c-format
 msgid "  -h, --host=HOSTNAME      database server host or socket directory\n"
 msgstr "  -h, --host=主机名        数据库服务器的主机名或套接字目录\n"
 
-#: pg_dump.c:916 pg_dumpall.c:585 pg_restore.c:476
+#: pg_dump.c:939 pg_dumpall.c:586 pg_restore.c:483
 #, c-format
 msgid "  -p, --port=PORT          database server port number\n"
 msgstr "  -p, --port=端口号        数据库服务器的端口号\n"
 
-#: pg_dump.c:917 pg_dumpall.c:586 pg_restore.c:477
+#: pg_dump.c:940 pg_dumpall.c:587 pg_restore.c:484
 #, c-format
 msgid "  -U, --username=NAME      connect as specified database user\n"
 msgstr "  -U, --username=名字      以指定的数据库用户联接\n"
 
-#: pg_dump.c:918 pg_dumpall.c:587 pg_restore.c:478
+#: pg_dump.c:941 pg_dumpall.c:588 pg_restore.c:485
 #, c-format
 msgid "  -w, --no-password        never prompt for password\n"
 msgstr "  -w, --no-password        永远不提示输入口令\n"
 
-#: pg_dump.c:919 pg_dumpall.c:588 pg_restore.c:479
+#: pg_dump.c:942 pg_dumpall.c:589 pg_restore.c:486
 #, c-format
 msgid ""
 "  -W, --password           force password prompt (should happen "
 "automatically)\n"
 msgstr "  -W, --password           强制口令提示 (自动)\n"
 
-#: pg_dump.c:920 pg_dumpall.c:589
+#: pg_dump.c:943 pg_dumpall.c:590
 #, c-format
 msgid "  --role=ROLENAME          do SET ROLE before dump\n"
 msgstr "  --role=ROLENAME          在转储前运行SET ROLE\n"
 
-#: pg_dump.c:922
+#: pg_dump.c:945
 #, c-format
 msgid ""
 "\n"
@@ -1770,176 +1813,176 @@ msgstr ""
 "的数值.\n"
 "\n"
 
-#: pg_dump.c:924 pg_dumpall.c:593 pg_restore.c:486
+#: pg_dump.c:947 pg_dumpall.c:594 pg_restore.c:493
 #, c-format
 msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgstr "报告错误至 <pgsql-bugs@postgresql.org>.\n"
 
-#: pg_dump.c:943
+#: pg_dump.c:967
 #, c-format
 msgid "invalid client encoding \"%s\" specified\n"
 msgstr "声明了无效的输出格式 \"%s\"\n"
 
-#: pg_dump.c:1128
+#: pg_dump.c:1152
 #, c-format
 msgid "invalid output format \"%s\" specified\n"
 msgstr "声明了非法的输出格式 \"%s\"\n"
 
-#: pg_dump.c:1150
+#: pg_dump.c:1175
 #, c-format
 msgid "server version must be at least 7.3 to use schema selection switches\n"
 msgstr "服务器版本必须至少是7.3才能使用模式选择转换\n"
 
-#: pg_dump.c:1439
+# describe.c:1542
+#: pg_dump.c:1193 pg_dump.c:1246
+#, c-format
+#| msgid "No matching tables were found\n"
+msgid "No matching table(s) were found for pattern \"%s\"\n"
+msgstr "没有为\"%s\"模式找到匹配的表\n"
+
+#: pg_dump.c:1596
 #, c-format
-#| msgid "dumping contents of table %s\n"
 msgid "dumping contents of table \"%s.%s\"\n"
 msgstr "正在转储表\"%s.%s\"的内容\n"
 
-#: pg_dump.c:1563
+#: pg_dump.c:1720
 #, c-format
 msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed.\n"
 msgstr "转储表 \"%s\" 的内容的 SQL 命令失败: PQendcopy() 失败.\n"
 
-#: pg_dump.c:1564 pg_dump.c:1574
+#: pg_dump.c:1721 pg_dump.c:1731
 #, c-format
 msgid "Error message from server: %s"
 msgstr "来自服务器的错误信息: %s"
 
-#: pg_dump.c:1565 pg_dump.c:1575
+#: pg_dump.c:1722 pg_dump.c:1732
 #, c-format
 msgid "The command was: %s\n"
 msgstr "命令是: %s\n"
 
-#: pg_dump.c:1573
+#: pg_dump.c:1730
 #, c-format
 msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed.\n"
 msgstr "转储表 \"%s\" 的内容失败: PQgetResult() 失败.\n"
 
-#: pg_dump.c:2212
+#: pg_dump.c:2374
 #, c-format
 msgid "saving database definition\n"
 msgstr "保存数据库定义\n"
 
-#: pg_dump.c:2545
+#: pg_dump.c:2707
 #, c-format
 msgid "saving encoding = %s\n"
 msgstr "正在保存encoding = %s\n"
 
-#: pg_dump.c:2572
+#: pg_dump.c:2734
 #, c-format
 msgid "saving standard_conforming_strings = %s\n"
 msgstr "正在保存standard_conforming_strings = %s\n"
 
-#: pg_dump.c:2605
+#: pg_dump.c:2774
 #, c-format
 msgid "reading large objects\n"
 msgstr "正在读取大对象\n"
 
-#: pg_dump.c:2737
+#: pg_dump.c:2960
 #, c-format
 msgid "saving large objects\n"
 msgstr "保存大对象\n"
 
-#: pg_dump.c:2784
+#: pg_dump.c:3007
 #, c-format
 msgid "error reading large object %u: %s"
 msgstr "在读取大对象时发生错误%u: %s"
 
-#: pg_dump.c:2836
+#: pg_dump.c:3059
 #, c-format
-#| msgid "reading indexes for table \"%s\"\n"
 msgid "reading row security enabled for table \"%s.%s\"\n"
 msgstr "为表\"%s.%s\"读取行安全性启用状态\n"
 
-#: pg_dump.c:2867
+#: pg_dump.c:3090
 #, c-format
-#| msgid "reading indexes for table \"%s\"\n"
 msgid "reading policies for table \"%s.%s\"\n"
 msgstr "为表\"%s.%s\"读取策略\n"
 
-#: pg_dump.c:2997
+#: pg_dump.c:3223
 #, c-format
-#| msgid "unexpected message type \"%c\""
 msgid "unexpected policy command type: \"%s\"\n"
 msgstr "意外的策略命令类型:\"%s\"\n"
 
-#: pg_dump.c:3212
+#: pg_dump.c:3442
 #, c-format
 msgid "could not find parent extension for %s\n"
 msgstr "无法找到父扩展%s\n"
 
-#: pg_dump.c:3315
+#: pg_dump.c:3610
 #, c-format
 msgid "WARNING: owner of schema \"%s\" appears to be invalid\n"
 msgstr "警告: 模式 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:3358
+#: pg_dump.c:3653
 #, c-format
 msgid "schema with OID %u does not exist\n"
 msgstr "OID %u 的模式不存在\n"
 
-#: pg_dump.c:3708
+#: pg_dump.c:4068
 #, c-format
 msgid "WARNING: owner of data type \"%s\" appears to be invalid\n"
 msgstr "警告: 数据类型 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:3819
+#: pg_dump.c:4179
 #, c-format
 msgid "WARNING: owner of operator \"%s\" appears to be invalid\n"
 msgstr "警告: 操作符 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:4078
+#: pg_dump.c:4512
 #, c-format
 msgid "WARNING: owner of operator class \"%s\" appears to be invalid\n"
 msgstr "警告: 操作符表 \"%s\" 无效\n"
 
-#: pg_dump.c:4166
+#: pg_dump.c:4600
 #, c-format
 msgid "WARNING: owner of operator family \"%s\" appears to be invalid\n"
 msgstr "警告: 操作符 \"%s\" 的所有者无效\n"
 
-#: pg_dump.c:4304
+#: pg_dump.c:4805
 #, c-format
 msgid "WARNING: owner of aggregate function \"%s\" appears to be invalid\n"
 msgstr "警告: 聚集函数 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:4486
+#: pg_dump.c:5074
 #, c-format
 msgid "WARNING: owner of function \"%s\" appears to be invalid\n"
 msgstr "警告: 函数 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:5173
+#: pg_dump.c:5874
 #, c-format
 msgid "WARNING: owner of table \"%s\" appears to be invalid\n"
 msgstr "警告: 数据表 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:5325
+#: pg_dump.c:6026
 #, c-format
-#| msgid "reading indexes for table \"%s\"\n"
 msgid "reading indexes for table \"%s.%s\"\n"
 msgstr "为表\"%s.%s\"读取索引\n"
 
-#: pg_dump.c:5692
+#: pg_dump.c:6394
 #, c-format
-#| msgid "reading foreign key constraints for table \"%s\"\n"
 msgid "reading foreign key constraints for table \"%s.%s\"\n"
 msgstr "为表\"%s.%s\"读取外键约束\n"
 
-#: pg_dump.c:5938
+#: pg_dump.c:6640
 #, c-format
 msgid ""
 "failed sanity check, parent table OID %u of pg_rewrite entry OID %u not "
 "found\n"
 msgstr "健全检查失败,pg_rewrite项OID %2$u 的源表 OID%1$u 未找到\n"
 
-#: pg_dump.c:6031
+#: pg_dump.c:6734
 #, c-format
-#| msgid "reading triggers for table \"%s\"\n"
 msgid "reading triggers for table \"%s.%s\"\n"
 msgstr "为表\"%s.%s\"读取触发器\n"
 
-#: pg_dump.c:6193
+#: pg_dump.c:6899
 #, c-format
 msgid ""
 "query produced null referenced table name for foreign key trigger \"%s\" on "
@@ -1948,203 +1991,230 @@ msgstr ""
 "对在表 \"%2$s\" 上的外键触发器 \"%1$s\" 上的查询生成了 NULL 个引用表(表的 "
 "OID 是: %3$u)\n"
 
-#: pg_dump.c:6765
+#: pg_dump.c:7548
 #, c-format
-#| msgid "finding the columns and types of table \"%s\"\n"
 msgid "finding the columns and types of table \"%s.%s\"\n"
 msgstr "正在查找表\"%s.%s\"的列和类型\n"
 
-#: pg_dump.c:6944
+#: pg_dump.c:7727
 #, c-format
 msgid "invalid column numbering in table \"%s\"\n"
 msgstr "在表 \"%s\" 中的字段个数是无效的\n"
 
-#: pg_dump.c:6978
+#: pg_dump.c:7761
 #, c-format
-#| msgid "finding default expressions of table \"%s\"\n"
 msgid "finding default expressions of table \"%s.%s\"\n"
 msgstr "正在查找表\"%s.%s\"的默认表达式\n"
 
-#: pg_dump.c:7031
+#: pg_dump.c:7814
 #, c-format
 msgid "invalid adnum value %d for table \"%s\"\n"
 msgstr "表 \"%2$s\" 的无效 adnum 值 %1$d\n"
 
-#: pg_dump.c:7103
+#: pg_dump.c:7886
 #, c-format
-#| msgid "finding check constraints for table \"%s\"\n"
 msgid "finding check constraints for table \"%s.%s\"\n"
 msgstr "正在查找表\"%s.%s\"的检查约束\n"
 
-#: pg_dump.c:7199
+#: pg_dump.c:7982
 #, c-format
 msgid "expected %d check constraint on table \"%s\" but found %d\n"
 msgid_plural "expected %d check constraints on table \"%s\" but found %d\n"
 msgstr[0] "在表\"%2$s\"上期望有%1$d个检查约束,但是找到了%3$d个\n"
 
-#: pg_dump.c:7203
+#: pg_dump.c:7986
 #, c-format
 msgid "(The system catalogs might be corrupted.)\n"
 msgstr "(系统表可能损坏了.)\n"
 
-#: pg_dump.c:8580
+#: pg_dump.c:9506
 #, c-format
 msgid "WARNING: typtype of data type \"%s\" appears to be invalid\n"
 msgstr "警告: 数据类型 \"%s\" 的所有者看起来无效\n"
 
-#: pg_dump.c:10106
+#: pg_dump.c:11048
 #, c-format
 msgid "WARNING: bogus value in proargmodes array\n"
 msgstr "警告: 无法分析 proargmodes 数组\n"
 
-#: pg_dump.c:10457
+#: pg_dump.c:11426
 #, c-format
 msgid "WARNING: could not parse proallargtypes array\n"
 msgstr "警告: 无法分析 proallargtypes 数组\n"
 
-#: pg_dump.c:10473
+#: pg_dump.c:11442
 #, c-format
 msgid "WARNING: could not parse proargmodes array\n"
 msgstr "警告: 无法分析 proargmodes 数组\n"
 
-#: pg_dump.c:10487
+#: pg_dump.c:11456
 #, c-format
 msgid "WARNING: could not parse proargnames array\n"
 msgstr "警告: 无法分析 proargnames 数组\n"
 
-#: pg_dump.c:10498
+#: pg_dump.c:11467
 #, c-format
 msgid "WARNING: could not parse proconfig array\n"
 msgstr "警告: 无法解析 proconfig 数组\n"
 
-#: pg_dump.c:10569
+#: pg_dump.c:11538
 #, c-format
 msgid "unrecognized provolatile value for function \"%s\"\n"
 msgstr "函数 \"%s\" 的意外正向易失值\n"
 
-#: pg_dump.c:10745
+#: pg_dump.c:11582
+#, c-format
+#| msgid "unrecognized provolatile value for function \"%s\"\n"
+msgid "unrecognized proparallel value for function \"%s\"\n"
+msgstr "函数\"%s\"的proparallel值无法识别\n"
+
+#: pg_dump.c:11734
 #, c-format
 msgid "WARNING: bogus value in pg_cast.castfunc or pg_cast.castmethod field\n"
 msgstr "警告: 在pg_cast.castfunc或者pg_cast.castmethod字段中的是假值\n"
 
-#: pg_dump.c:10748
+#: pg_dump.c:11737
 #, c-format
 msgid "WARNING: bogus value in pg_cast.castmethod field\n"
 msgstr "警告: 在pg_cast.castmethod字段中的是假值\n"
 
-#: pg_dump.c:10831
+#: pg_dump.c:11825
 #, c-format
 msgid ""
 "WARNING: bogus transform definition, at least one of trffromsql and trftosql "
 "should be nonzero\n"
 msgstr "警告:臆造的转换定义,至少trffromsql和trftosql之一应该为非零\n"
 
-#: pg_dump.c:10848
+#: pg_dump.c:11842
 #, c-format
-#| msgid "WARNING: bogus value in pg_cast.castmethod field\n"
 msgid "WARNING: bogus value in pg_transform.trffromsql field\n"
 msgstr "警告: 在pg_transform.trffromsql域中的是臆造值\n"
 
-#: pg_dump.c:10869
+#: pg_dump.c:11863
 #, c-format
-#| msgid "WARNING: bogus value in pg_cast.castmethod field\n"
 msgid "WARNING: bogus value in pg_transform.trftosql field\n"
 msgstr "警告: 在pg_transform.trftosql域中的是臆造值\n"
 
-#: pg_dump.c:11255
+#: pg_dump.c:12254
 #, c-format
 msgid "WARNING: could not find operator with OID %s\n"
 msgstr "警告: 未找到 OID 为 %s 的操作符\n"
 
-#: pg_dump.c:12430
+#: pg_dump.c:12318
+#, c-format
+#| msgid "WARNING: invalid creation date in header\n"
+msgid "WARNING: invalid type %c of access method %s\n"
+msgstr "警告: 访问方法%2$s的类型%1$c无效\n"
+
+#: pg_dump.c:13516
 #, c-format
 msgid ""
 "WARNING: aggregate function %s could not be dumped correctly for this "
 "database version; ignored\n"
 msgstr "警告: 无法为此版本的数据库正确转储聚集函数 \"%s\"; 忽略\n"
 
-#: pg_dump.c:13255
+#: pg_dump.c:14384
 #, c-format
 msgid "unrecognized object type in default privileges: %d\n"
 msgstr "缺省权限中存在未知对象类型: %d\n"
 
-#: pg_dump.c:13270
+#: pg_dump.c:14399
 #, c-format
 msgid "could not parse default ACL list (%s)\n"
 msgstr "无法解析缺省ACL列表(%s)\n"
 
-#: pg_dump.c:13325
+#: pg_dump.c:14470
 #, c-format
-msgid "could not parse ACL list (%s) for object \"%s\" (%s)\n"
-msgstr "无法为对象 \"%2$s\" 分析 ACL 列表 (%1$s) (%3$s)\n"
+#| msgid "could not parse ACL list (%s) for object \"%s\" (%s)\n"
+msgid ""
+"could not parse initial GRANT ACL list (%s) or initial REVOKE ACL list (%s) "
+"for object \"%s\" (%s)\n"
+msgstr ""
+"无法为对象\"%3$s\" (%4$s)解析初始GRANT ACL列表 (%1$s) 或者初始REVOKE ACL列表 "
+"(%2$s) \n"
+
+#: pg_dump.c:14478
+#, c-format
+#| msgid "could not parse ACL list (%s) for object \"%s\" (%s)\n"
+msgid ""
+"could not parse GRANT ACL list (%s) or REVOKE ACL list (%s) for object \"%s"
+"\" (%s)\n"
+msgstr ""
+"无法为对象\"%3$s\" (%4$s)解析GRANT ACL列表 (%1$s) 或者REVOKE ACL列表 (%2$s)\n"
 
-#: pg_dump.c:13742
+#: pg_dump.c:14954
 #, c-format
 msgid "query to obtain definition of view \"%s\" returned no data\n"
 msgstr "获取视图 \"%s\" 定义的查询没有返回数据\n"
 
-#: pg_dump.c:13745
+#: pg_dump.c:14957
 #, c-format
 msgid ""
 "query to obtain definition of view \"%s\" returned more than one definition\n"
 msgstr "获取视图 \"%s\" 定义的查询返回超过一个定义\n"
 
-#: pg_dump.c:13752
+#: pg_dump.c:14964
 #, c-format
 msgid "definition of view \"%s\" appears to be empty (length zero)\n"
 msgstr "视图 \"%s\" 的定义是空的(零长)\n"
 
-#: pg_dump.c:14493
+#: pg_dump.c:15722
 #, c-format
 msgid "invalid column number %d for table \"%s\"\n"
 msgstr "对于表 \"%2$s\" 字段个数 %1$d 是无效的\n"
 
-#: pg_dump.c:14617
+#: pg_dump.c:15851
 #, c-format
 msgid "missing index for constraint \"%s\"\n"
 msgstr "对于约束 \"%s\" 缺少索引\n"
 
-#: pg_dump.c:14804
+#: pg_dump.c:16054
 #, c-format
 msgid "unrecognized constraint type: %c\n"
 msgstr "未知的约束类型: %c\n"
 
-#: pg_dump.c:14953 pg_dump.c:15117
+#: pg_dump.c:16208 pg_dump.c:16377
 #, c-format
 msgid "query to get data of sequence \"%s\" returned %d row (expected 1)\n"
 msgid_plural ""
 "query to get data of sequence \"%s\" returned %d rows (expected 1)\n"
 msgstr[0] "查询得到了序列\"%s\"的数据,返回了%d条记录(期望一条)\n"
 
-#: pg_dump.c:14964
+#: pg_dump.c:16219
 #, c-format
 msgid "query to get data of sequence \"%s\" returned name \"%s\"\n"
 msgstr "获取序列 \"%s\" 的数据的查询返回了名字 \"%s\"\n"
 
 # fe-exec.c:1371
-#: pg_dump.c:15212
+#: pg_dump.c:16475
 #, c-format
 msgid "unexpected tgtype value: %d\n"
 msgstr "意外的tgtype值: %d\n"
 
-#: pg_dump.c:15294
+#: pg_dump.c:16557
 #, c-format
 msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"\n"
 msgstr "给表 \"%3$s\" 上的触发器 \"%2$s\" 的错误参数 (%1$s)\n"
 
-#: pg_dump.c:15481
+#: pg_dump.c:16754
 #, c-format
 msgid ""
 "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows "
 "returned\n"
 msgstr "获取表 \"%2$s\" 的规则 \"%1$s\" 查询失败: 返回了错误的行数\n"
 
-#: pg_dump.c:15860
+#: pg_dump.c:17143
 #, c-format
 msgid "reading dependency data\n"
 msgstr "读取从属数据\n"
 
-#: pg_dump.c:16407
+#: pg_dump.c:17704
+#, c-format
+#| msgid "WARNING: could not parse proconfig array\n"
+msgid "WARNING: could not parse reloptions array\n"
+msgstr "警告: 无法解析 reloptions 数组\n"
+
+#: pg_dump.c:17768
 #, c-format
 msgid "query returned %d row instead of one: %s\n"
 msgid_plural "query returned %d rows instead of one: %s\n"
@@ -2155,36 +2225,34 @@ msgstr[0] "查询返回了%d条记录,而不是一条记录: %s\n"
 msgid "sorter"
 msgstr "排序器"
 
-#: pg_dump_sort.c:489
+#: pg_dump_sort.c:491
 #, c-format
 msgid "invalid dumpId %d\n"
 msgstr "无效的dumpId %d\n"
 
-#: pg_dump_sort.c:495
+#: pg_dump_sort.c:497
 #, c-format
 msgid "invalid dependency %d\n"
 msgstr "无效的依赖 %d\n"
 
-#: pg_dump_sort.c:728
+#: pg_dump_sort.c:730
 #, c-format
 msgid "could not identify dependency loop\n"
 msgstr "无法标识循环依赖\n"
 
-#: pg_dump_sort.c:1250
+#: pg_dump_sort.c:1261
 #, c-format
-#| msgid ""
-#| "NOTICE: there are circular foreign-key constraints among these table(s):\n"
 msgid "NOTICE: there are circular foreign-key constraints on this table:\n"
 msgid_plural ""
 "NOTICE: there are circular foreign-key constraints among these tables:\n"
 msgstr[0] "注意:表上存在循环外键约束:\n"
 
-#: pg_dump_sort.c:1254 pg_dump_sort.c:1274
+#: pg_dump_sort.c:1265 pg_dump_sort.c:1285
 #, c-format
 msgid "  %s\n"
 msgstr "  %s\n"
 
-#: pg_dump_sort.c:1255
+#: pg_dump_sort.c:1266
 #, c-format
 msgid ""
 "You might not be able to restore the dump without using --disable-triggers "
@@ -2192,19 +2260,19 @@ msgid ""
 msgstr ""
 "不使用 --disable-triggers 选项或者临时删除约束,你将不能对备份进行恢复 .\n"
 
-#: pg_dump_sort.c:1256
+#: pg_dump_sort.c:1267
 #, c-format
 msgid ""
 "Consider using a full dump instead of a --data-only dump to avoid this "
 "problem.\n"
 msgstr "考虑使用完全备份代替 --data-only选项进行备份以避免此问题.\n"
 
-#: pg_dump_sort.c:1268
+#: pg_dump_sort.c:1279
 #, c-format
 msgid "WARNING: could not resolve dependency loop among these items:\n"
 msgstr "WARNING: 无法解析这些项的循环依赖:\n"
 
-#: pg_dumpall.c:181
+#: pg_dumpall.c:182
 #, c-format
 msgid ""
 "The program \"pg_dump\" is needed by %s but was not found in the\n"
@@ -2215,7 +2283,7 @@ msgstr ""
 "\n"
 "检查您的安装.\n"
 
-#: pg_dumpall.c:188
+#: pg_dumpall.c:189
 #, c-format
 msgid ""
 "The program \"pg_dump\" was found by \"%s\"\n"
@@ -2226,37 +2294,37 @@ msgstr ""
 "\n"
 "检查您的安装.\n"
 
-#: pg_dumpall.c:318
+#: pg_dumpall.c:319
 #, c-format
 msgid ""
 "%s: options -g/--globals-only and -r/--roles-only cannot be used together\n"
 msgstr "%s: 选项-g/--globals-only和-r/--roles-only不能同时使用.\n"
 
-#: pg_dumpall.c:327
+#: pg_dumpall.c:328
 #, c-format
 msgid ""
 "%s: options -g/--globals-only and -t/--tablespaces-only cannot be used "
 "together\n"
 msgstr "%s: 选项  -g/--globals-only和-t/--tablespaces-only不能同时使用.\n"
 
-#: pg_dumpall.c:336 pg_restore.c:343
+#: pg_dumpall.c:337 pg_restore.c:345
 #, c-format
 msgid "%s: option --if-exists requires option -c/--clean\n"
 msgstr "%s: 选项 --if-exists 需要选项 -c/ --clean \n"
 
-#: pg_dumpall.c:343
+#: pg_dumpall.c:344
 #, c-format
 msgid ""
 "%s: options -r/--roles-only and -t/--tablespaces-only cannot be used "
 "together\n"
 msgstr "%s: 选项  -r/--roles-only和 -t/--tablespaces-only不能同时使用.\n"
 
-#: pg_dumpall.c:385 pg_dumpall.c:1892
+#: pg_dumpall.c:386 pg_dumpall.c:1909
 #, c-format
 msgid "%s: could not connect to database \"%s\"\n"
 msgstr "%s: 无法与数据库 \"%s\" 联接\n"
 
-#: pg_dumpall.c:400
+#: pg_dumpall.c:401
 #, c-format
 msgid ""
 "%s: could not connect to databases \"postgres\" or \"template1\"\n"
@@ -2266,12 +2334,12 @@ msgstr ""
 "请指定另外一个数据库.\n"
 
 # command.c:1148
-#: pg_dumpall.c:417
+#: pg_dumpall.c:418
 #, c-format
 msgid "%s: could not open the output file \"%s\": %s\n"
 msgstr "%s:无法打开输出文件 \"%s\":%s\n"
 
-#: pg_dumpall.c:547
+#: pg_dumpall.c:548
 #, c-format
 msgid ""
 "%s extracts a PostgreSQL database cluster into an SQL script file.\n"
@@ -2280,60 +2348,60 @@ msgstr ""
 "%s 抽取一个 PostgreSQL 数据库簇进一个 SQL 脚本文件.\n"
 "\n"
 
-#: pg_dumpall.c:549
+#: pg_dumpall.c:550
 #, c-format
 msgid "  %s [OPTION]...\n"
 msgstr "  %s [选项]...\n"
 
-#: pg_dumpall.c:552
+#: pg_dumpall.c:553
 #, c-format
 msgid "  -f, --file=FILENAME          output file name\n"
 msgstr "  -f, --file=FILENAME          输出文件名\n"
 
-#: pg_dumpall.c:558
+#: pg_dumpall.c:559
 #, c-format
 msgid ""
 "  -c, --clean                  clean (drop) databases before recreating\n"
 msgstr "  -c, --clean                  在重新创建数据库前先清除(删除)数据库\n"
 
-#: pg_dumpall.c:559
+#: pg_dumpall.c:560
 #, c-format
 msgid "  -g, --globals-only           dump only global objects, no databases\n"
 msgstr "  -g, --globals-only           只转储全局对象, 不包括数据库\n"
 
-#: pg_dumpall.c:561 pg_restore.c:454
+#: pg_dumpall.c:562 pg_restore.c:459
 #, c-format
 msgid "  -O, --no-owner               skip restoration of object ownership\n"
 msgstr "  -O, --no-owner               不恢复对象所属者\n"
 
-#: pg_dumpall.c:562
+#: pg_dumpall.c:563
 #, c-format
 msgid ""
 "  -r, --roles-only             dump only roles, no databases or tablespaces\n"
 msgstr "  -r, --roles-only             只转储角色,不包括数据库或表空间\n"
 
-#: pg_dumpall.c:564
+#: pg_dumpall.c:565
 #, c-format
 msgid "  -S, --superuser=NAME         superuser user name to use in the dump\n"
 msgstr "  -S, --superuser=NAME         在转储中, 指定的超级用户名\n"
 
-#: pg_dumpall.c:565
+#: pg_dumpall.c:566
 #, c-format
 msgid ""
 "  -t, --tablespaces-only       dump only tablespaces, no databases or roles\n"
 msgstr "  -t, --tablespaces-only       只转储表空间,而不转储数据库或角色\n"
 
-#: pg_dumpall.c:582
+#: pg_dumpall.c:583
 #, c-format
 msgid "  -d, --dbname=CONNSTR     connect using connection string\n"
 msgstr "  -d, --dbname=CONNSTR        连接数据库使用的连接串\n"
 
-#: pg_dumpall.c:584
+#: pg_dumpall.c:585
 #, c-format
 msgid "  -l, --database=DBNAME    alternative default database\n"
 msgstr "  -l, --database=DBNAME    另一个缺省数据库\n"
 
-#: pg_dumpall.c:591
+#: pg_dumpall.c:592
 #, c-format
 msgid ""
 "\n"
@@ -2347,105 +2415,111 @@ msgstr ""
 ".\n"
 "\n"
 
-#: pg_dumpall.c:1118
+#: pg_dumpall.c:777
+#, c-format
+#| msgid "%s: locale name too long, skipped: \"%s\"\n"
+msgid "%s: role name starting with 'pg_' skipped (%s)\n"
+msgstr "%s: 以'pg_'开始的角色名称已被跳过 (%s)\n"
+
+#: pg_dumpall.c:1128
 #, c-format
 msgid "%s: could not parse ACL list (%s) for tablespace \"%s\"\n"
 msgstr "%1$s: 无法为表空间 \"%3$s\" 分析 ACL 列表 (%2$s)\n"
 
-#: pg_dumpall.c:1449
+#: pg_dumpall.c:1459
 #, c-format
 msgid "%s: could not parse ACL list (%s) for database \"%s\"\n"
 msgstr "%1$s: 无法为数据库 \"%3$s\" 分析 ACL 列表 (%2$s)\n"
 
-#: pg_dumpall.c:1659
+#: pg_dumpall.c:1676
 #, c-format
 msgid "%s: dumping database \"%s\"...\n"
 msgstr "%s: 正在转储数据库 \"%s\"...\n"
 
-#: pg_dumpall.c:1680
+#: pg_dumpall.c:1697
 #, c-format
 msgid "%s: pg_dump failed on database \"%s\", exiting\n"
 msgstr "%s: pg_dump 失败在数据库 \"%s\", 正在退出\n"
 
 # command.c:1148
-#: pg_dumpall.c:1689
+#: pg_dumpall.c:1706
 #, c-format
 msgid "%s: could not re-open the output file \"%s\": %s\n"
 msgstr "%s:无法重新打开输出文件 \"%s\":%s\n"
 
-#: pg_dumpall.c:1734
+#: pg_dumpall.c:1751
 #, c-format
 msgid "%s: running \"%s\"\n"
 msgstr "%s: 正在运行 \"%s\"\n"
 
-#: pg_dumpall.c:1914
+#: pg_dumpall.c:1931
 #, c-format
 msgid "%s: could not connect to database \"%s\": %s\n"
 msgstr "%s: 无法与数据库 \"%s\" 联接: %s\n"
 
-#: pg_dumpall.c:1944
+#: pg_dumpall.c:1961
 #, c-format
 msgid "%s: could not get server version\n"
 msgstr "%s: 无法从服务器获取版本\n"
 
-#: pg_dumpall.c:1950
+#: pg_dumpall.c:1967
 #, c-format
 msgid "%s: could not parse server version \"%s\"\n"
 msgstr "%s: 无法分析版本字串 \"%s\"\n"
 
-#: pg_dumpall.c:2028 pg_dumpall.c:2054
+#: pg_dumpall.c:2045 pg_dumpall.c:2071
 #, c-format
 msgid "%s: executing %s\n"
 msgstr "%s: 执行 %s\n"
 
-#: pg_dumpall.c:2034 pg_dumpall.c:2060
+#: pg_dumpall.c:2051 pg_dumpall.c:2077
 #, c-format
 msgid "%s: query failed: %s"
 msgstr "%s: 查询失败: %s"
 
-#: pg_dumpall.c:2036 pg_dumpall.c:2062
+#: pg_dumpall.c:2053 pg_dumpall.c:2079
 #, c-format
 msgid "%s: query was: %s\n"
 msgstr "%s: 查询是: %s\n"
 
-#: pg_restore.c:303
+#: pg_restore.c:305
 #, c-format
 msgid "%s: options -d/--dbname and -f/--file cannot be used together\n"
 msgstr "%s: 选项 -d/--dbname和-f/--file不能同时使用.\n"
 
-#: pg_restore.c:314
+#: pg_restore.c:316
 #, c-format
 msgid ""
 "%s: options -s/--schema-only and -a/--data-only cannot be used together\n"
 msgstr "%s: 选项 -s/--schema-only和-a/--data-only 不能同时使用\n"
 
-#: pg_restore.c:321
+#: pg_restore.c:323
 #, c-format
 msgid "%s: options -c/--clean and -a/--data-only cannot be used together\n"
 msgstr "%s: 选项 -c/--clean和 -a/--data-only不能同时使用.\n"
 
-#: pg_restore.c:329
+#: pg_restore.c:331
 #, c-format
 msgid "%s: cannot specify both --single-transaction and multiple jobs\n"
 msgstr "%s: 不能同时指定选项--single-transaction和多个任务\n"
 
-#: pg_restore.c:369
+#: pg_restore.c:372
 #, c-format
 msgid ""
 "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"\n"
 msgstr "不可识别的归档格式\"%s\"; 请指定 \"c\", \"d\", 或 \"t\"\n"
 
-#: pg_restore.c:399
+#: pg_restore.c:404
 #, c-format
 msgid "%s: maximum number of parallel jobs is %d\n"
 msgstr "%s: 已经达到并行工作集的最大数 %d\n"
 
-#: pg_restore.c:417
+#: pg_restore.c:422
 #, c-format
 msgid "WARNING: errors ignored on restore: %d\n"
 msgstr "警告: 恢复中忽略错误: %d\n"
 
-#: pg_restore.c:431
+#: pg_restore.c:436
 #, c-format
 msgid ""
 "%s restores a PostgreSQL database from an archive created by pg_dump.\n"
@@ -2454,47 +2528,47 @@ msgstr ""
 "%s 从一个归档中恢复一个由 pg_dump 创建的 PostgreSQL 数据库.\n"
 "\n"
 
-#: pg_restore.c:433
+#: pg_restore.c:438
 #, c-format
 msgid "  %s [OPTION]... [FILE]\n"
 msgstr "  %s [选项]... [文件名]\n"
 
-#: pg_restore.c:436
+#: pg_restore.c:441
 #, c-format
 msgid "  -d, --dbname=NAME        connect to database name\n"
 msgstr "  -d, --dbname=名字        连接数据库名字\n"
 
-#: pg_restore.c:437
+#: pg_restore.c:442
 #, c-format
 msgid "  -f, --file=FILENAME      output file name\n"
 msgstr "  -f, --file=文件名        输出文件名\n"
 
-#: pg_restore.c:438
+#: pg_restore.c:443
 #, c-format
 msgid "  -F, --format=c|d|t       backup file format (should be automatic)\n"
 msgstr "  -F, --format=c|d|t       备份文件格式(应该自动进行)\n"
 
-#: pg_restore.c:439
+#: pg_restore.c:444
 #, c-format
 msgid "  -l, --list               print summarized TOC of the archive\n"
 msgstr "  -l, --list               打印归档文件的 TOC 概述\n"
 
-#: pg_restore.c:440
+#: pg_restore.c:445
 #, c-format
 msgid "  -v, --verbose            verbose mode\n"
 msgstr "  -v, --verbose            详细模式\n"
 
-#: pg_restore.c:441
+#: pg_restore.c:446
 #, c-format
 msgid "  -V, --version            output version information, then exit\n"
 msgstr "  -V, --version            输出版本信息, 然后退出\n"
 
-#: pg_restore.c:442
+#: pg_restore.c:447
 #, c-format
 msgid "  -?, --help               show this help, then exit\n"
 msgstr "  -?, --help               显示此帮助, 然后退出\n"
 
-#: pg_restore.c:444
+#: pg_restore.c:449
 #, c-format
 msgid ""
 "\n"
@@ -2503,32 +2577,32 @@ msgstr ""
 "\n"
 "恢复控制选项:\n"
 
-#: pg_restore.c:445
+#: pg_restore.c:450
 #, c-format
 msgid "  -a, --data-only              restore only the data, no schema\n"
 msgstr "  -a, --data-only             只恢复数据, 不包括模式\n"
 
-#: pg_restore.c:447
+#: pg_restore.c:452
 #, c-format
 msgid "  -C, --create                 create the target database\n"
 msgstr "  -C, --create                 创建目标数据库\n"
 
-#: pg_restore.c:448
+#: pg_restore.c:453
 #, c-format
 msgid "  -e, --exit-on-error          exit on error, default is to continue\n"
 msgstr "  -e, --exit-on-error          发生错误退出, 默认为继续\n"
 
-#: pg_restore.c:449
+#: pg_restore.c:454
 #, c-format
 msgid "  -I, --index=NAME             restore named index\n"
 msgstr "  -I, --index=NAME             恢复指定名称的索引\n"
 
-#: pg_restore.c:450
+#: pg_restore.c:455
 #, c-format
 msgid "  -j, --jobs=NUM               use this many parallel jobs to restore\n"
 msgstr "  -j, --jobs=NUM               执行多个并行任务进行恢复工作\n"
 
-#: pg_restore.c:451
+#: pg_restore.c:456
 #, c-format
 msgid ""
 "  -L, --use-list=FILENAME      use table of contents from this file for\n"
@@ -2537,57 +2611,58 @@ msgstr ""
 "  -L, --use-list=FILENAME      从这个文件中使用指定的内容表排序\n"
 "                               输出\n"
 
-#: pg_restore.c:453
+#: pg_restore.c:458
 #, c-format
 msgid "  -n, --schema=NAME            restore only objects in this schema\n"
 msgstr "  -n, --schema=NAME            在这个模式中只恢复对象\n"
 
-#: pg_restore.c:455
+#: pg_restore.c:460
 #, c-format
 msgid "  -P, --function=NAME(args)    restore named function\n"
 msgstr "  -P, --function=NAME(args)    恢复指定名字的函数\n"
 
-#: pg_restore.c:456
+#: pg_restore.c:461
 #, c-format
 msgid "  -s, --schema-only            restore only the schema, no data\n"
 msgstr "  -s, --schema-only           只恢复模式, 不包括数据\n"
 
-#: pg_restore.c:457
+#: pg_restore.c:462
 #, c-format
 msgid ""
 "  -S, --superuser=NAME         superuser user name to use for disabling "
 "triggers\n"
 msgstr "  -S, --superuser=NAME         使用指定的超级用户来禁用触发器\n"
 
-#: pg_restore.c:458
+#: pg_restore.c:463
 #, c-format
-msgid "  -t, --table=NAME             restore named table\n"
-msgstr "  -t, --table=NAME             恢复命名表\n"
+#| msgid "  -t, --table=NAME             restore named table\n"
+msgid ""
+"  -t, --table=NAME             restore named relation (table, view, etc)\n"
+msgstr "  -t, --table=NAME             恢复命名关系(表、视图等)\n"
 
-#: pg_restore.c:459
+#: pg_restore.c:464
 #, c-format
 msgid "  -T, --trigger=NAME           restore named trigger\n"
 msgstr "  -T, --trigger=NAME          恢复指定名字的触发器\n"
 
-#: pg_restore.c:460
+#: pg_restore.c:465
 #, c-format
 msgid ""
 "  -x, --no-privileges          skip restoration of access privileges (grant/"
 "revoke)\n"
 msgstr "  -x, --no-privileges          跳过处理权限的恢复 (grant/revoke)\n"
 
-#: pg_restore.c:461
+#: pg_restore.c:466
 #, c-format
 msgid "  -1, --single-transaction     restore as a single transaction\n"
 msgstr "  -1, --single-transaction     作为单个事务恢复\n"
 
-#: pg_restore.c:463
+#: pg_restore.c:468
 #, c-format
-#| msgid "  --no-security-labels         do not restore security labels\n"
 msgid "  --enable-row-security        enable row security\n"
 msgstr "  --enable-row-security        启用行安全性\n"
 
-#: pg_restore.c:465
+#: pg_restore.c:470
 #, c-format
 msgid ""
 "  --no-data-for-failed-tables  do not restore data of tables that could not "
@@ -2597,29 +2672,29 @@ msgstr ""
 "  --no-data-for-failed-tables  对那些无法创建的表不进行\n"
 "                               数据恢复\n"
 
-#: pg_restore.c:467
+#: pg_restore.c:472
 #, c-format
 msgid "  --no-security-labels         do not restore security labels\n"
 msgstr "  --no-security-labels         不恢复安全标签信息\n"
 
-#: pg_restore.c:468
+#: pg_restore.c:473
 #, c-format
 msgid "  --no-tablespaces             do not restore tablespace assignments\n"
 msgstr "  --no-tablespaces             不恢复表空间的分配信息\n"
 
-#: pg_restore.c:469
+#: pg_restore.c:474
 #, c-format
 msgid ""
 "  --section=SECTION            restore named section (pre-data, data, or "
 "post-data)\n"
 msgstr "  --section=SECTION            恢复命名节 (数据前、数据及数据后)\n"
 
-#: pg_restore.c:480
+#: pg_restore.c:487
 #, c-format
 msgid "  --role=ROLENAME          do SET ROLE before restore\n"
 msgstr "  --role=ROLENAME          在恢复前执行SET ROLE操作\n"
 
-#: pg_restore.c:482
+#: pg_restore.c:489
 #, c-format
 msgid ""
 "\n"
@@ -2630,7 +2705,7 @@ msgstr ""
 "选项 -I, -n, -P, -t, -T, 以及 --section 可以组合使用和指定\n"
 "多次用于选择多个对象.\n"
 
-#: pg_restore.c:485
+#: pg_restore.c:492
 #, c-format
 msgid ""
 "\n"
@@ -2641,385 +2716,388 @@ msgstr ""
 "如果没有提供输入文件名, 则使用标准输入.\n"
 "\n"
 
-#~ msgid "could not write to output file: %s\n"
-#~ msgstr "无法写到输出文件: %s\n"
-
-#~ msgid "could not write to custom output routine\n"
-#~ msgstr "无法写出到客户输出过程\n"
+#~ msgid "archive member too large for tar format\n"
+#~ msgstr "在 tar 格式中归档成员太大\n"
 
-#~ msgid "unexpected end of file\n"
-#~ msgstr "æ\84\8få¤\96ç\9a\84æ\96\87ä»¶ç»\93å°¾\n"
+#~ msgid "could not parse version string \"%s\"\n"
+#~ msgstr "æ\97 æ³\95å\88\86æ\9e\90ç\89\88æ\9c¬å­\97串 \"%s\"\n"
 
-#~ msgid "could not write byte: %s\n"
-#~ msgstr "无法写字节: %s\n"
+#~ msgid "%s: could not parse version \"%s\"\n"
+#~ msgstr "%s: 无法解析版本 \"%s\"\n"
 
-#~ msgid "could not write byte\n"
-#~ msgstr "无法写字节\n"
+#~ msgid "%s: invalid -X option -- %s\n"
+#~ msgstr "%s: 无效的 -X 选项 -- %s\n"
 
-#~ msgid "could not write null block at end of tar archive\n"
-#~ msgstr "无法在 tar 归档末尾写 null 块\n"
+#~ msgid "  --help                      show this help, then exit\n"
+#~ msgstr "  --help                       显示此帮助信息, 然后退出\n"
 
-#~ msgid "could not output padding at end of tar member\n"
-#~ msgstr "无法在 tar 成员尾部输出填充内容\n"
+#~ msgid ""
+#~ "  --version                   output version information, then exit\n"
+#~ msgstr "  --versoin                    输出版本信息, 然后退出\n"
 
-#~ msgid "mismatch in actual vs. predicted file position (%s vs. %s)\n"
-#~ msgstr "实际文件位置和预期文件位置不匹配 (%s 对 %s)\n"
+#~ msgid "*** aborted because of error\n"
+#~ msgstr "*** 因为错误退出\n"
 
-#~ msgid "-C and -c are incompatible options\n"
-#~ msgstr "-C 和 -c 是互不兼容的选项\n"
+#~ msgid "missing pg_database entry for database \"%s\"\n"
+#~ msgstr "缺少用于 \"%s\" 的 pg_database 记录\n"
 
 #~ msgid ""
-#~ "  -O, --no-owner           do not output commands to set object "
-#~ "ownership\n"
-#~ msgstr ""
-#~ "  -O, --no-owner           设置对象的所属者时不输出\n"
-#~ "                           命令\n"
+#~ "query returned more than one (%d) pg_database entry for database \"%s\"\n"
+#~ msgstr "查询为数据库 \"%2$s\" 返回了超过一条 (%1$d) pg_database 记录\n"
 
-#~ msgid ""
-#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
-#~ "                           pg_dumpall version\n"
-#~ msgstr ""
-#~ "  -i, --ignore-version     当服务器版本与 pg_dumpall 不匹配时\n"
-#~ "                           继续运行\n"
+#~ msgid "dumpDatabase(): could not find pg_largeobject.relfrozenxid\n"
+#~ msgstr "dumpDatabase():  无法找到pg_largeobject.relfrozenxid\n"
 
-#~ msgid ""
-#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
-#~ msgstr "  -i, --ignore-version     当服务器版本不匹配时继续运行\n"
+#~ msgid "query returned no rows: %s\n"
+#~ msgstr "查询放弃, 没有记录: %s\n"
 
-#~ msgid "could not write tar header\n"
-#~ msgstr "无法写 tar 头\n"
+#~ msgid "missing pg_database entry for this database\n"
+#~ msgstr "缺少此数据库的 pg_database 记录\n"
 
-#~ msgid "could not close tar member: %s\n"
-#~ msgstr "æ\97 æ³\95å\85³é\97­ tar æ\88\90å\91\98: %s\n"
+#~ msgid "found more than one pg_database entry for this database\n"
+#~ msgstr "æ\89¾å\88°æ­¤æ\95°æ\8d®åº\93ç\9a\84å¤\9aäº\8eä¸\80æ\9d¡ç\9a\84 pg_database è®°å½\95\n"
 
-#~ msgid "write error appending to tar archive (wrote %lu, attempted %lu)\n"
-#~ msgstr "å\90\91 tar å½\92æ¡£é\99\84å\8a æ\97¶å\86\99é\94\99误 (å\86\99äº\86 %lu, è¯\95å\9b¾å\86\99 %lu)\n"
+#~ msgid "could not find entry for pg_indexes in pg_class\n"
+#~ msgstr "å\9c¨ pg_class ä¸­æ\97 æ³\95为 pg_indexes æ\89¾å\88°è®°å½\95\n"
 
-#~ msgid "could not write to tar member (wrote %lu, attempted %lu)\n"
-#~ msgstr "无法写入 tar 成员 (写了 %lu, 企图写 %lu)\n"
+#~ msgid "found more than one entry for pg_indexes in pg_class\n"
+#~ msgstr "在 pg_class 表中找到多条 pg_indexes 的记录\n"
 
-#~ msgid "requested %d bytes, got %d from lookahead and %d from file\n"
-#~ msgstr "要求 %d 字节, 从预览中获取 %d, 从文件中获取 %d\n"
+#~ msgid "SQL command failed\n"
+#~ msgstr "SQL 命令失败\n"
 
-#~ msgid "could not open large object file\n"
-#~ msgstr "无法打开大对象文件\n"
+#~ msgid "cannot reopen stdin\n"
+#~ msgstr "无法重新打开stdin\n"
 
-#~ msgid "could not open data file for input\n"
-#~ msgstr "无法为输入打开数据文件\n"
+#~ msgid "cannot reopen non-seekable file\n"
+#~ msgstr "无法重新打开不可查找的文件\n"
 
-#~ msgid "could not open data file for output\n"
-#~ msgstr "æ\97 æ³\95为è¾\93å\87ºæ\89\93å¼\80æ\95°æ\8d®æ\96\87ä»¶\n"
+#~ msgid "file archiver"
+#~ msgstr "æ\96\87ä»¶å½\92æ¡£"
 
-#~ msgid "could not commit transaction for large object cross-references"
-#~ msgstr "无法为大对象交叉引用提交事务"
+#~ msgid ""
+#~ "WARNING:\n"
+#~ "  This format is for demonstration purposes; it is not intended for\n"
+#~ "  normal use. Files will be written in the current working directory.\n"
+#~ msgstr ""
+#~ "警告:\n"
+#~ "  这个格式仅用于演示; 并非用于一般用途.\n"
+#~ "  文件将写入当前工作目录.\n"
 
-#~ msgid "could not start transaction for large object cross-references"
-#~ msgstr "无法为大对象交叉引用启动事务"
+#~ msgid "could not close data file after reading\n"
+#~ msgstr "读取之后无法关闭数据文件\n"
 
-#~ msgid "could not create large object cross-reference entry"
-#~ msgstr "无法创建大对象交叉引用记录"
+#~ msgid "could not open large object TOC for input: %s\n"
+#~ msgstr "无法打开大对象 TOC 进行输入: %s\n"
 
-#~ msgid "could not create index on large object cross-reference table"
-#~ msgstr "无法在大对象交叉引用表上创建索引"
+#~ msgid "could not open large object TOC for output: %s\n"
+#~ msgstr "无法打开大对象 TOC 进行输出: %s\n"
 
-#~ msgid "creating index for large object cross-references\n"
-#~ msgstr "为大对象交叉引用创建索引\n"
+#~ msgid "could not close large object file\n"
+#~ msgstr "无法关闭大对象文件\n"
 
-#~ msgid "could not create large object cross-reference table"
-#~ msgstr "无法创建大对象交叉引用表"
+#~ msgid "invalid COPY statement -- could not find \"copy\" in string \"%s\"\n"
+#~ msgstr "COPY 语句错 -- 无法在字串 \"%s\" 中找到 \"copy\"\n"
 
-#~ msgid "creating table for large object cross-references\n"
-#~ msgstr "为大对象交叉引用创建表\n"
+#~ msgid ""
+#~ "invalid COPY statement -- could not find \"from stdin\" in string \"%s\" "
+#~ "starting at position %lu\n"
+#~ msgstr ""
+#~ "COPY 语句错 -- 无法在从 %2$lu 位置开始的字串 \"%1$s\" 里找到 \"from stdin"
+#~ "\" 字样\n"
 
-#~ msgid "error while updating column \"%s\" of table \"%s\": %s"
-#~ msgstr "æ\9b´æ\96°è¡¨ \"%2$s\" ç\9a\84å­\97段 \"%1$s\" æ\97¶å\87ºé\94\99: %3$s"
+#~ msgid "restoring large object OID %u\n"
+#~ msgstr "æ\81¢å¤\8d OID %u ç\9a\84大对象\n"
 
-#~ msgid "could not update column \"%s\" of table \"%s\": %s"
-#~ msgstr "无法更新表 \"%2$s\" 的字段 \"%1$s\": %3$s"
+#~ msgid "  --help                   show this help, then exit\n"
+#~ msgstr "  --help                   显示此帮助信息, 然后退出\n"
 
-#~ msgid "SQL: %s\n"
-#~ msgstr "SQL: %s\n"
+#~ msgid "  --version                output version information, then exit\n"
+#~ msgstr "  --version                输出版本信息, 然后退出\n"
 
-#~ msgid "fixing large object cross-references for %s.%s\n"
-#~ msgstr "为 %s.%s 修补大对象交叉引用\n"
+#~ msgid ""
+#~ "  -c, --clean              clean (drop) database objects before "
+#~ "recreating\n"
+#~ msgstr ""
+#~ "  -c, --clean              在重新创建数据库对象之前需要清除(删除)数据库"
+#~ "对象\n"
 
-#~ msgid "no OID type columns in table %s\n"
-#~ msgstr "表 %s 中没有 OID 类型字段\n"
+#~ msgid "  -O, --no-owner           skip restoration of object ownership\n"
+#~ msgstr "  -O, --no-owner           忽略恢复对象所属者\n"
 
-#~ msgid "could not find OID columns of table \"%s\": %s"
-#~ msgstr "无法寻找表 \"%s\" 的 OID 字段: %s"
+#~ msgid ""
+#~ "  --disable-triggers       disable triggers during data-only restore\n"
+#~ msgstr " --disable-triggers        在只恢复数据的过程中禁用触发器\n"
 
-#~ msgid "error returned by PQendcopy\n"
-#~ msgstr "PQendcopy 返回错误\n"
+#~ msgid ""
+#~ "  --use-set-session-authorization\n"
+#~ "                           use SET SESSION AUTHORIZATION commands instead "
+#~ "of\n"
+#~ "                           ALTER OWNER commands to set ownership\n"
+#~ msgstr ""
+#~ "  --use-set-session-authorization\n"
+#~ "                           使用 SESSION AUTHORIZATION 命令代替\n"
+#~ "                  ALTER OWNER命令来设置对象所有权\n"
 
-#~ msgid "COPY command executed in non-primary connection\n"
-#~ msgstr "COPY 命令在没有主联接的环境下执行\n"
+#~ msgid "%s: out of memory\n"
+#~ msgstr "%s: 内存溢出\n"
 
-#~ msgid "%s: no result from server\n"
-#~ msgstr "%s: 没有来自服务器的结果\n"
+#~ msgid "dumpBlobs(): could not open large object: %s"
+#~ msgstr "dumpBlobs(): 无法打开大对象: %s"
+
+#~ msgid "saving large object comments\n"
+#~ msgstr "正在保存大对象注释\n"
+
+#~ msgid "no label definitions found for enum ID %u\n"
+#~ msgstr "对于枚举 ID %u没有找到标签定义\n"
 
 #~ msgid ""
-#~ "aborting because of version mismatch  (Use the -i option to proceed "
-#~ "anyway.)\n"
-#~ msgstr "因版本差异退出 (用 -i 选项忽略差异继续处理.)\n"
+#~ "dumping a specific TOC data block out of order is not supported without "
+#~ "ID on this input stream (fseek required)\n"
+#~ msgstr ""
+#~ "如果在此输入流中没有ID(标识)(fseek 要求的), 那么是不支持非顺序转储特定TOC"
+#~ "数据块的\n"
 
-#~ msgid "could not write uncompressed chunk\n"
-#~ msgstr "无法写入未压缩的块\n"
+#~ msgid "compression support is disabled in this format\n"
+#~ msgstr "在这个格式里, 压缩支持时被关闭了的\n"
 
-#~ msgid "could not write compressed chunk\n"
-#~ msgstr "无法写入压缩的块\n"
+#~ msgid "User name: "
+#~ msgstr "用户名: "
 
-#~ msgid "write error in _WriteBuf (%lu != %lu)\n"
-#~ msgstr "在 _WriteBuf 里的写错误 (%lu != %lu)\n"
+#~ msgid "large-object output not supported for a single table\n"
+#~ msgstr "不支持单个表的大对象输出.\n"
 
-#~ msgid "could not read data block -- expected %lu, got %lu\n"
-#~ msgstr "无法读取数据块 - 预期 %lu, 实际 %lu\n"
+#~ msgid "use a full dump instead\n"
+#~ msgstr "使用完整转储替代.\n"
 
-#~ msgid "large objects cannot be loaded without a database connection\n"
-#~ msgstr "没有数据库联接时无法装载大对象\n"
+#~ msgid "large-object output not supported for a single schema\n"
+#~ msgstr "不支持单个模式的大对象输出.\n"
 
-#~ msgid "could not open archive file \"%s\": %s\n"
-#~ msgstr "无法打开归档文件 \"%s\": %s\n"
+#~ msgid "INSERT (-d, -D) and OID (-o) options cannot be used together\n"
+#~ msgstr "INSERT (-d, -D) 和 OID (-o) 选项不能同时使用.\n"
 
-#~ msgid "archive format is %d\n"
-#~ msgstr "归档格式是 %d\n"
+#~ msgid "large-object output is not supported for plain-text dump files\n"
+#~ msgstr "纯文本转储文件不支持输出大对象.\n"
 
-#~ msgid "could not close the input file after reading header: %s\n"
-#~ msgstr "读取头之后无法关闭输入文件: %s\n"
+#~ msgid "(Use a different output format.)\n"
+#~ msgstr "(使用不同的输出格式.)\n"
 
-#~ msgid "read %lu bytes into lookahead buffer\n"
-#~ msgstr "读取 %lu 字节到预览缓冲区\n"
+#~ msgid ""
+#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
+#~ "                           pg_dump version\n"
+#~ msgstr ""
+#~ "  -i, --ignore-version     当服务器的版本号与 pg_dump 的版本号不匹配时\n"
+#~ "                           仍继续运行\n"
 
-#~ msgid "could not write to output file (%lu != %lu)\n"
-#~ msgstr "无法写出到输出文件 (%lu != %lu)\n"
+#~ msgid "  -c, --clean              clean (drop) schema prior to create\n"
+#~ msgstr "  -c, --clean              先清楚(删除)预先的模式,再建立\n"
 
-#~ msgid "could not write to compressed archive\n"
-#~ msgstr "无法写入压缩的归档\n"
+#~ msgid ""
+#~ "  -S, --superuser=NAME     specify the superuser user name to use in\n"
+#~ "                           plain text format\n"
+#~ msgstr ""
+#~ "  -S, --superuser=NAME     在明文格式中, 使用指定的超级用户\n"
+#~ "                           名称\n"
 
-#~ msgid "could not open TOC file\n"
-#~ msgstr "æ\97 æ³\95æ\89\93å¼\80 TOC æ\96\87ä»¶\n"
+#~ msgid "specified schema \"%s\" does not exist\n"
+#~ msgstr "æ\8c\87å®\9aç\9a\84模å¼\8f \"%s\" ä¸\8då­\98å\9c¨\n"
 
-#~ msgid "wrote remaining %lu bytes of large-object data (result = %lu)\n"
-#~ msgstr "写剩下了 %lu 字节的大对象数据 (结果 = %lu)\n"
+#~ msgid "specified table \"%s\" does not exist\n"
+#~ msgstr "指定的表 \"%s\" 不存在\n"
 
-#~ msgid "restoring large object with OID %u as %u\n"
-#~ msgstr "把 OID 为 %u 的大对象恢复为 %u\n"
+#~ msgid "expected %d triggers on table \"%s\" but found %d\n"
+#~ msgstr "预期在表 \"%2$s\" 上有触发器 %1$d , 却发现 %3$d\n"
 
-#~ msgid "starting large-object transactions\n"
-#~ msgstr "å¼\80å§\8b大对象äº\8bå\8a¡\n"
+#~ msgid "Got %d rows instead of one from: %s"
+#~ msgstr "å·²å¾\97å\88° %d æ\9d¡è®°å½\95æ\9b¿ä»£æ\9d¥è\87ª %s ç\9a\84ä¸\80æ\9d¡"
 
-#~ msgid "cannot restore large objects without a database connection\n"
-#~ msgstr "没æ\9c\89æ\95°æ\8d®åº\93è\81\94æ\8e¥æ\97¶æ\97 æ³\95æ\81¢å¤\8d大对象\n"
+#~ msgid "inserted invalid OID\n"
+#~ msgstr "æ\8f\92å\85¥äº\86é\9d\9eæ³\95 OID\n"
 
-#~ msgid "committing large-object transactions\n"
-#~ msgstr "æ\8f\90交大对象äº\8bå\8a¡\n"
+#~ msgid "maximum system OID is %u\n"
+#~ msgstr "æ\9c\80大系ç»\9f OID æ\98¯ %u\n"
 
-#~ msgid "fixing up large-object cross-reference for \"%s\"\n"
-#~ msgstr "为 \"%s\" 修复大对象的交叉引用\n"
+#~ msgid "could not close output archive file\n"
+#~ msgstr "无法关闭输出归档文件\n"
 
 #~ msgid "WARNING: skipping large-object restoration\n"
 #~ msgstr "警告: 忽略大对象的恢复\n"
 
-#~ msgid "could not close output archive file\n"
-#~ msgstr "无法关闭输出归档文件\n"
+#~ msgid "fixing up large-object cross-reference for \"%s\"\n"
+#~ msgstr "为 \"%s\" 修复大对象的交叉引用\n"
 
-#~ msgid "maximum system OID is %u\n"
-#~ msgstr "æ\9c\80大系ç»\9f OID æ\98¯ %u\n"
+#~ msgid "committing large-object transactions\n"
+#~ msgstr "æ\8f\90交大对象äº\8bå\8a¡\n"
 
-#~ msgid "inserted invalid OID\n"
-#~ msgstr "æ\8f\92å\85¥äº\86é\9d\9eæ³\95 OID\n"
+#~ msgid "cannot restore large objects without a database connection\n"
+#~ msgstr "没æ\9c\89æ\95°æ\8d®åº\93è\81\94æ\8e¥æ\97¶æ\97 æ³\95æ\81¢å¤\8d大对象\n"
 
-#~ msgid "Got %d rows instead of one from: %s"
-#~ msgstr "å·²å¾\97å\88° %d æ\9d¡è®°å½\95æ\9b¿ä»£æ\9d¥è\87ª %s ç\9a\84ä¸\80æ\9d¡"
+#~ msgid "starting large-object transactions\n"
+#~ msgstr "å¼\80å§\8b大对象äº\8bå\8a¡\n"
 
-#~ msgid "expected %d triggers on table \"%s\" but found %d\n"
-#~ msgstr "预期在表 \"%2$s\" 上有触发器 %1$d , 却发现 %3$d\n"
+#~ msgid "restoring large object with OID %u as %u\n"
+#~ msgstr "把 OID 为 %u 的大对象恢复为 %u\n"
 
-#~ msgid "specified table \"%s\" does not exist\n"
-#~ msgstr "指定的表 \"%s\" 不存在\n"
+#~ msgid "wrote remaining %lu bytes of large-object data (result = %lu)\n"
+#~ msgstr "写剩下了 %lu 字节的大对象数据 (结果 = %lu)\n"
 
-#~ msgid "specified schema \"%s\" does not exist\n"
-#~ msgstr "æ\8c\87å®\9aç\9a\84模å¼\8f \"%s\" ä¸\8då­\98å\9c¨\n"
+#~ msgid "could not open TOC file\n"
+#~ msgstr "æ\97 æ³\95æ\89\93å¼\80 TOC æ\96\87ä»¶\n"
 
-#~ msgid ""
-#~ "  -S, --superuser=NAME     specify the superuser user name to use in\n"
-#~ "                           plain text format\n"
-#~ msgstr ""
-#~ "  -S, --superuser=NAME     在明文格式中, 使用指定的超级用户\n"
-#~ "                           名称\n"
+#~ msgid "could not write to compressed archive\n"
+#~ msgstr "无法写入压缩的归档\n"
 
-#~ msgid "  -c, --clean              clean (drop) schema prior to create\n"
-#~ msgstr "  -c, --clean              先清楚(删除)预先的模式,再建立\n"
+#~ msgid "could not write to output file (%lu != %lu)\n"
+#~ msgstr "无法写出到输出文件 (%lu != %lu)\n"
 
-#~ msgid ""
-#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
-#~ "                           pg_dump version\n"
-#~ msgstr ""
-#~ "  -i, --ignore-version     当服务器的版本号与 pg_dump 的版本号不匹配时\n"
-#~ "                           仍继续运行\n"
+#~ msgid "read %lu bytes into lookahead buffer\n"
+#~ msgstr "读取 %lu 字节到预览缓冲区\n"
 
-#~ msgid "(Use a different output format.)\n"
-#~ msgstr "(使用不同的输出格式.)\n"
+#~ msgid "could not close the input file after reading header: %s\n"
+#~ msgstr "读取头之后无法关闭输入文件: %s\n"
 
-#~ msgid "large-object output is not supported for plain-text dump files\n"
-#~ msgstr "纯文本转储文件不支持输出大对象.\n"
+#~ msgid "archive format is %d\n"
+#~ msgstr "归档格式是 %d\n"
 
-#~ msgid "INSERT (-d, -D) and OID (-o) options cannot be used together\n"
-#~ msgstr "INSERT (-d, -D) 和 OID (-o) 选项不能同时使用.\n"
+#~ msgid "could not open archive file \"%s\": %s\n"
+#~ msgstr "无法打开归档文件 \"%s\": %s\n"
 
-#~ msgid "large-object output not supported for a single schema\n"
-#~ msgstr "不支持单个模式的大对象输出.\n"
+#~ msgid "large objects cannot be loaded without a database connection\n"
+#~ msgstr "没有数据库联接时无法装载大对象\n"
 
-#~ msgid "use a full dump instead\n"
-#~ msgstr "使用完整转储替代.\n"
+#~ msgid "could not read data block -- expected %lu, got %lu\n"
+#~ msgstr "无法读取数据块 - 预期 %lu, 实际 %lu\n"
 
-#~ msgid "large-object output not supported for a single table\n"
-#~ msgstr "不支持单个表的大对象输出.\n"
+#~ msgid "write error in _WriteBuf (%lu != %lu)\n"
+#~ msgstr "在 _WriteBuf 里的写错误 (%lu != %lu)\n"
 
-#~ msgid "User name: "
-#~ msgstr "用户名: "
+#~ msgid "could not write compressed chunk\n"
+#~ msgstr "无法写入压缩的块\n"
 
-#~ msgid "compression support is disabled in this format\n"
-#~ msgstr "在这个格式里, 压缩支持时被关闭了的\n"
+#~ msgid "could not write uncompressed chunk\n"
+#~ msgstr "无法写入未压缩的块\n"
 
 #~ msgid ""
-#~ "dumping a specific TOC data block out of order is not supported without "
-#~ "ID on this input stream (fseek required)\n"
-#~ msgstr ""
-#~ "如果在此输入流中没有ID(标识)(fseek 要求的), 那么是不支持非顺序转储特定TOC"
-#~ "数据块的\n"
+#~ "aborting because of version mismatch  (Use the -i option to proceed "
+#~ "anyway.)\n"
+#~ msgstr "因版本差异退出 (用 -i 选项忽略差异继续处理.)\n"
 
-#~ msgid "no label definitions found for enum ID %u\n"
-#~ msgstr "对于枚举 ID %u没有找到标签定义\n"
+#~ msgid "%s: no result from server\n"
+#~ msgstr "%s: 没有来自服务器的结果\n"
 
-#~ msgid "saving large object comments\n"
-#~ msgstr "正在保存大对象注释\n"
+#~ msgid "COPY command executed in non-primary connection\n"
+#~ msgstr "COPY 命令在没有主联接的环境下执行\n"
 
-#~ msgid "dumpBlobs(): could not open large object: %s"
-#~ msgstr "dumpBlobs(): 无法打开大对象: %s"
+#~ msgid "error returned by PQendcopy\n"
+#~ msgstr "PQendcopy 返回错误\n"
 
-#~ msgid "%s: out of memory\n"
-#~ msgstr "%s: 内存溢出\n"
+#~ msgid "could not find OID columns of table \"%s\": %s"
+#~ msgstr "无法寻找表 \"%s\" 的 OID 字段: %s"
 
-#~ msgid ""
-#~ "  --use-set-session-authorization\n"
-#~ "                           use SET SESSION AUTHORIZATION commands instead "
-#~ "of\n"
-#~ "                           ALTER OWNER commands to set ownership\n"
-#~ msgstr ""
-#~ "  --use-set-session-authorization\n"
-#~ "                           使用 SESSION AUTHORIZATION 命令代替\n"
-#~ "                  ALTER OWNER命令来设置对象所有权\n"
+#~ msgid "no OID type columns in table %s\n"
+#~ msgstr "表 %s 中没有 OID 类型字段\n"
 
-#~ msgid ""
-#~ "  --disable-triggers       disable triggers during data-only restore\n"
-#~ msgstr " --disable-triggers        在只恢复数据的过程中禁用触发器\n"
+#~ msgid "fixing large object cross-references for %s.%s\n"
+#~ msgstr "为 %s.%s 修补大对象交叉引用\n"
 
-#~ msgid "  -O, --no-owner           skip restoration of object ownership\n"
-#~ msgstr "  -O, --no-owner           忽略恢复对象所属者\n"
+#~ msgid "SQL: %s\n"
+#~ msgstr "SQL: %s\n"
 
-#~ msgid ""
-#~ "  -c, --clean              clean (drop) database objects before "
-#~ "recreating\n"
-#~ msgstr ""
-#~ "  -c, --clean              在重新创建数据库对象之前需要清除(删除)数据库"
-#~ "对象\n"
+#~ msgid "could not update column \"%s\" of table \"%s\": %s"
+#~ msgstr "无法更新表 \"%2$s\" 的字段 \"%1$s\": %3$s"
 
-#~ msgid "  --version                output version information, then exit\n"
-#~ msgstr "  --version                输出版本信息, 然后退出\n"
+#~ msgid "error while updating column \"%s\" of table \"%s\": %s"
+#~ msgstr "更新表 \"%2$s\" 的字段 \"%1$s\" 时出错: %3$s"
 
-#~ msgid "  --help                   show this help, then exit\n"
-#~ msgstr "  --help                   显示此帮助信息, 然后退出\n"
+#~ msgid "creating table for large object cross-references\n"
+#~ msgstr "为大对象交叉引用创建表\n"
 
-#~ msgid "restoring large object OID %u\n"
-#~ msgstr "æ\81¢å¤\8d OID %u ç\9a\84大对象\n"
+#~ msgid "could not create large object cross-reference table"
+#~ msgstr "æ\97 æ³\95å\88\9b建大对象交å\8f\89å¼\95ç\94¨è¡¨"
 
-#~ msgid ""
-#~ "invalid COPY statement -- could not find \"from stdin\" in string \"%s\" "
-#~ "starting at position %lu\n"
-#~ msgstr ""
-#~ "COPY 语句错 -- 无法在从 %2$lu 位置开始的字串 \"%1$s\" 里找到 \"from stdin"
-#~ "\" 字样\n"
+#~ msgid "creating index for large object cross-references\n"
+#~ msgstr "为大对象交叉引用创建索引\n"
 
-#~ msgid "invalid COPY statement -- could not find \"copy\" in string \"%s\"\n"
-#~ msgstr "COPY 语句错 -- 无法在字串 \"%s\" 中找到 \"copy\"\n"
+#~ msgid "could not create index on large object cross-reference table"
+#~ msgstr "无法在大对象交叉引用表上创建索引"
 
-#~ msgid "could not close large object file\n"
-#~ msgstr "æ\97 æ³\95å\85³é\97­å¤§å¯¹è±¡æ\96\87ä»¶\n"
+#~ msgid "could not create large object cross-reference entry"
+#~ msgstr "æ\97 æ³\95å\88\9b建大对象交å\8f\89å¼\95ç\94¨è®°å½\95"
 
-#~ msgid "could not open large object TOC for output: %s\n"
-#~ msgstr "无法打开大对象 TOC 进行输出: %s\n"
+#~ msgid "could not start transaction for large object cross-references"
+#~ msgstr "无法为大对象交叉引用启动事务"
 
-#~ msgid "could not open large object TOC for input: %s\n"
-#~ msgstr "无法打开大对象 TOC 进行输入: %s\n"
+#~ msgid "could not commit transaction for large object cross-references"
+#~ msgstr "无法为大对象交叉引用提交事务"
 
-#~ msgid "could not close data file after reading\n"
-#~ msgstr "读取之后无法关闭数据文件\n"
+#~ msgid "could not open data file for output\n"
+#~ msgstr "无法为输出打开数据文件\n"
 
-#~ msgid ""
-#~ "WARNING:\n"
-#~ "  This format is for demonstration purposes; it is not intended for\n"
-#~ "  normal use. Files will be written in the current working directory.\n"
-#~ msgstr ""
-#~ "警告:\n"
-#~ "  这个格式仅用于演示; 并非用于一般用途.\n"
-#~ "  文件将写入当前工作目录.\n"
+#~ msgid "could not open data file for input\n"
+#~ msgstr "无法为输入打开数据文件\n"
 
-#~ msgid "file archiver"
-#~ msgstr "æ\96\87ä»¶å½\92æ¡£"
+#~ msgid "could not open large object file\n"
+#~ msgstr "æ\97 æ³\95æ\89\93å¼\80大对象æ\96\87ä»¶\n"
 
-#~ msgid "cannot reopen non-seekable file\n"
-#~ msgstr "无法重新打开不可查找的文件\n"
+#~ msgid "requested %d bytes, got %d from lookahead and %d from file\n"
+#~ msgstr "要求 %d 字节, 从预览中获取 %d, 从文件中获取 %d\n"
 
-#~ msgid "cannot reopen stdin\n"
-#~ msgstr "无法重新打开stdin\n"
+#~ msgid "could not write to tar member (wrote %lu, attempted %lu)\n"
+#~ msgstr "无法写入 tar 成员 (写了 %lu, 企图写 %lu)\n"
 
-#~ msgid "SQL command failed\n"
-#~ msgstr "SQL 命令失败\n"
+#~ msgid "write error appending to tar archive (wrote %lu, attempted %lu)\n"
+#~ msgstr "向 tar 归档附加时写错误 (写了 %lu, 试图写 %lu)\n"
 
-#~ msgid "found more than one entry for pg_indexes in pg_class\n"
-#~ msgstr "在 pg_class 表中找到多条 pg_indexes 的记录\n"
+#~ msgid "could not close tar member: %s\n"
+#~ msgstr "无法关闭 tar 成员: %s\n"
 
-#~ msgid "could not find entry for pg_indexes in pg_class\n"
-#~ msgstr "在 pg_class 中无法为 pg_indexes 找到记录\n"
+#~ msgid "could not write tar header\n"
+#~ msgstr "无法写 tar 头\n"
 
-#~ msgid "found more than one pg_database entry for this database\n"
-#~ msgstr "找到此数据库的多于一条的 pg_database 记录\n"
+#~ msgid ""
+#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
+#~ msgstr "  -i, --ignore-version     当服务器版本不匹配时继续运行\n"
 
-#~ msgid "missing pg_database entry for this database\n"
-#~ msgstr "缺少此数据库的 pg_database 记录\n"
+#~ msgid ""
+#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
+#~ "                           pg_dumpall version\n"
+#~ msgstr ""
+#~ "  -i, --ignore-version     当服务器版本与 pg_dumpall 不匹配时\n"
+#~ "                           继续运行\n"
 
-#~ msgid "query returned no rows: %s\n"
-#~ msgstr "查询放弃, 没有记录: %s\n"
+#~ msgid ""
+#~ "  -O, --no-owner           do not output commands to set object "
+#~ "ownership\n"
+#~ msgstr ""
+#~ "  -O, --no-owner           设置对象的所属者时不输出\n"
+#~ "                           命令\n"
 
-#~ msgid "dumpDatabase(): could not find pg_largeobject.relfrozenxid\n"
-#~ msgstr "dumpDatabase():  无法找到pg_largeobject.relfrozenxid\n"
+#~ msgid "-C and -c are incompatible options\n"
+#~ msgstr "-C 和 -c 是互不兼容的选项\n"
 
-#~ msgid ""
-#~ "query returned more than one (%d) pg_database entry for database \"%s\"\n"
-#~ msgstr "查询为数据库 \"%2$s\" 返回了超过一条 (%1$d) pg_database 记录\n"
+#~ msgid "mismatch in actual vs. predicted file position (%s vs. %s)\n"
+#~ msgstr "实际文件位置和预期文件位置不匹配 (%s 对 %s)\n"
 
-#~ msgid "missing pg_database entry for database \"%s\"\n"
-#~ msgstr "缺少用于 \"%s\" 的 pg_database 记录\n"
+#~ msgid "could not output padding at end of tar member\n"
+#~ msgstr "无法在 tar 成员尾部输出填充内容\n"
 
-#~ msgid "*** aborted because of error\n"
-#~ msgstr "*** 因为错误退出\n"
+#~ msgid "could not write null block at end of tar archive\n"
+#~ msgstr "无法在 tar 归档末尾写 null 块\n"
 
-#~ msgid ""
-#~ "  --version                   output version information, then exit\n"
-#~ msgstr "  --versoin                    输出版本信息, 然后退出\n"
+#~ msgid "could not write byte\n"
+#~ msgstr "无法写字节\n"
 
-#~ msgid "  --help                      show this help, then exit\n"
-#~ msgstr "  --help                       显示此帮助信息, 然后退出\n"
+#~ msgid "could not write byte: %s\n"
+#~ msgstr "无法写字节: %s\n"
 
-#~ msgid "%s: invalid -X option -- %s\n"
-#~ msgstr "%s: 无效的 -X 选项 -- %s\n"
+#~ msgid "unexpected end of file\n"
+#~ msgstr "意外的文件结尾\n"
 
-#~ msgid "%s: could not parse version \"%s\"\n"
-#~ msgstr "%s: 无法解析版本 \"%s\"\n"
+#~ msgid "could not write to custom output routine\n"
+#~ msgstr "无法写出到客户输出过程\n"
 
-#~ msgid "could not parse version string \"%s\"\n"
-#~ msgstr "æ\97 æ³\95å\88\86æ\9e\90ç\89\88æ\9c¬å­\97串 \"%s\"\n"
+#~ msgid "could not write to output file: %s\n"
+#~ msgstr "æ\97 æ³\95å\86\99å\88°è¾\93å\87ºæ\96\87ä»¶: %s\n"
 
-#~ msgid "archive member too large for tar format\n"
-#~ msgstr "在 tar 格式中归档成员太大\n"
+#~ msgid "could not open output file \"%s\" for writing\n"
+#~ msgstr "无法打开输出文件 \"%s\" 用于写出\n"
index 0598e2bdacfedf8d3e2b5cab206525fe4d494077..c199ac9a1a94635fae286da41692f15bd1ab78f2 100644 (file)
@@ -5,10 +5,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pg_resetxlog (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:43+0000\n"
-"PO-Revision-Date: 2015-12-01 20:30+0800\n"
+"POT-Creation-Date: 2016-04-18 04:44+0000\n"
+"PO-Revision-Date: 2016-05-19 20:41+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
-"Language-Team: Chinese (Simplified)\n"
+"Language-Team: Chinese (Simplified) <ywpeng@whu.edu.cn>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -55,7 +55,6 @@ msgstr "%s: 无法从子进程得到退出码: 错误码 %lu\n"
 #: pg_resetxlog.c:201 pg_resetxlog.c:216 pg_resetxlog.c:224 pg_resetxlog.c:250
 #: pg_resetxlog.c:264
 #, c-format
-#| msgid "%s: invalid argument for option -e\n"
 msgid "%s: invalid argument for option %s\n"
 msgstr "%s::选项%s的参数无效\n"
 
@@ -78,7 +77,6 @@ msgstr "%s: 事务 ID (-x) 不能为 0\n"
 
 #: pg_resetxlog.c:185 pg_resetxlog.c:192
 #, c-format
-#| msgid "%s: transfer rate must be greater than zero\n"
 msgid ""
 "%s: transaction ID (-c) must be either 0 or greater than or equal to 2\n"
 msgstr "%s:事务ID (-c) 必须是0或者大于等于2\n"
@@ -249,8 +247,9 @@ msgstr "开启"
 
 #: pg_resetxlog.c:649
 #, c-format
-msgid "Latest checkpoint's NextXID:          %u/%u\n"
-msgstr "最新检查点的 NextXID:                     %u/%u\n"
+#| msgid "Latest checkpoint's NextXID:          %u/%u\n"
+msgid "Latest checkpoint's NextXID:          %u:%u\n"
+msgstr "最新检查点的NextXID:          %u:%u\n"
 
 #: pg_resetxlog.c:652
 #, c-format
@@ -294,15 +293,15 @@ msgstr "最新检查点的oldestMulti所在的数据库: %u\n"
 
 #: pg_resetxlog.c:668
 #, c-format
-#| msgid "Latest checkpoint's oldestXID's DB:   %u\n"
-msgid "Latest checkpoint's oldestCommitTs:   %u\n"
-msgstr "最新检查点的oldestCommitTs%u\n"
+#| msgid "Latest checkpoint's oldestCommitTs:   %u\n"
+msgid "Latest checkpoint's oldestCommitTsXid:%u\n"
+msgstr "最新检查点的oldestCommitTsXid:%u\n"
 
 #: pg_resetxlog.c:670
 #, c-format
-#| msgid "Latest checkpoint's oldestXID's DB:   %u\n"
-msgid "Latest checkpoint's newestCommitTs:   %u\n"
-msgstr "最新检查点的newestCommitTs%u\n"
+#| msgid "Latest checkpoint's newestCommitTs:   %u\n"
+msgid "Latest checkpoint's newestCommitTsXid:%u\n"
+msgstr "最新检查点的newestCommitTsXid:%u\n"
 
 #: pg_resetxlog.c:672
 #, c-format
@@ -450,15 +449,15 @@ msgstr "NextXID 末端:                        %u\n"
 
 #: pg_resetxlog.c:756
 #, c-format
-#| msgid "OldestMultiXid:                       %u\n"
-msgid "oldestCommitTs:                       %u\n"
-msgstr "oldestCommitTs:          %u\n"
+#| msgid "oldestCommitTs:                       %u\n"
+msgid "oldestCommitTsXid:                    %u\n"
+msgstr "oldestCommitTsXid:          %u\n"
 
 #: pg_resetxlog.c:761
 #, c-format
-#| msgid "OldestMultiXid:                       %u\n"
-msgid "newestCommitTs:                       %u\n"
-msgstr "newestCommitTs:          %u\n"
+#| msgid "newestCommitTs:                       %u\n"
+msgid "newestCommitTsXid:                    %u\n"
+msgstr "newestCommitTsXid:          %u\n"
 
 #: pg_resetxlog.c:827
 #, c-format
@@ -539,7 +538,6 @@ msgstr "选项:\n"
 
 #: pg_resetxlog.c:1170
 #, c-format
-#| msgid "  -m MXID,MXID     set next and oldest multitransaction ID\n"
 msgid ""
 "  -c XID,XID       set oldest and newest transactions bearing commit "
 "timestamp\n"
@@ -547,13 +545,11 @@ msgstr "  -c XID,XID       设置承受提交时间戳的最旧和最新事务\n
 
 #: pg_resetxlog.c:1171
 #, c-format
-#| msgid "  -O                 allow system table structure changes\n"
 msgid "                   (zero in either value means no change)\n"
 msgstr "                   (任一值中的零表示没有改变)\n"
 
 #: pg_resetxlog.c:1172
 #, c-format
-#| msgid "  -D DATADIR         database directory\n"
 msgid " [-D] DATADIR      data directory\n"
 msgstr " [-D] DATADIR      数据目录\n"
 
@@ -619,47 +615,47 @@ msgstr ""
 "\n"
 "报告错误至 <pgsql-bugs@postgresql.org>.\n"
 
-#~ msgid "%s: could not read from directory \"%s\": %s\n"
-#~ msgstr "%s: 无法从目录 \"%s\" 中读取: %s\n"
+#~ msgid "%s: invalid argument for option -x\n"
+#~ msgstr "%s: 为 -x 选项的无效参数\n"
 
-#~ msgid "  --help          show this help, then exit\n"
-#~ msgstr "  --help            显示此帮助信息, 然后退出\n"
+#~ msgid "%s: invalid argument for option -o\n"
+#~ msgstr "%s: 为 -o 选项的无效参数\n"
 
-#~ msgid "  --version       output version information, then exit\n"
-#~ msgstr "  --version         输出版本信息, 然后退出\n"
+#~ msgid "%s: invalid argument for option -m\n"
+#~ msgstr "%s: 对于选项-m 参数无效\n"
 
-#~ msgid "%s: invalid LC_COLLATE setting\n"
-#~ msgstr "%s: 无效的 LC_COLLATE 设置\n"
+#~ msgid "%s: invalid argument for option -O\n"
+#~ msgstr "%s: 对于选项-O 参数无效\n"
 
-#~ msgid "%s: invalid LC_CTYPE setting\n"
-#~ msgstr "%s: 无效的 LC_CTYPE 设置\n"
+#~ msgid "%s: invalid argument for option -l\n"
+#~ msgstr "%s: 为 -l 选项的无效参数\n"
 
-#~ msgid "Maximum number of function arguments: %u\n"
-#~ msgstr "函数参数的最大个数:                   %u\n"
+#~ msgid "First log file ID after reset:        %u\n"
+#~ msgstr "重置后的第一个日志文件ID:               %u\n"
 
-#~ msgid "Latest checkpoint's StartUpID:        %u\n"
-#~ msgstr "最新检查点的 StartUpID:               %u\n"
+#~ msgid "%s: invalid argument for -o option\n"
+#~ msgstr "%s: 为 -o 选项的无效参数\n"
 
 #~ msgid "%s: invalid argument for -x option\n"
 #~ msgstr "%s: 为 -x 选项的无效参数\n"
 
-#~ msgid "%s: invalid argument for -o option\n"
-#~ msgstr "%s: 为 -o 选项的无效参数\n"
+#~ msgid "Latest checkpoint's StartUpID:        %u\n"
+#~ msgstr "最新检查点的 StartUpID:               %u\n"
 
-#~ msgid "First log file ID after reset:        %u\n"
-#~ msgstr "重置后的第一个日志文件ID:               %u\n"
+#~ msgid "Maximum number of function arguments: %u\n"
+#~ msgstr "函数参数的最大个数:                   %u\n"
 
-#~ msgid "%s: invalid argument for option -l\n"
-#~ msgstr "%s: 为 -l 选项的无效参数\n"
+#~ msgid "%s: invalid LC_CTYPE setting\n"
+#~ msgstr "%s: 无效的 LC_CTYPE 设置\n"
 
-#~ msgid "%s: invalid argument for option -O\n"
-#~ msgstr "%s: 对于选项-O 参数无效\n"
+#~ msgid "%s: invalid LC_COLLATE setting\n"
+#~ msgstr "%s: 无效的 LC_COLLATE 设置\n"
 
-#~ msgid "%s: invalid argument for option -m\n"
-#~ msgstr "%s: 对于选项-m 参数无效\n"
+#~ msgid "  --version       output version information, then exit\n"
+#~ msgstr "  --version         输出版本信息, 然后退出\n"
 
-#~ msgid "%s: invalid argument for option -o\n"
-#~ msgstr "%s: 为 -o 选项的无效参数\n"
+#~ msgid "  --help          show this help, then exit\n"
+#~ msgstr "  --help            显示此帮助信息, 然后退出\n"
 
-#~ msgid "%s: invalid argument for option -x\n"
-#~ msgstr "%s: 为 -x 选项的无效参数\n"
+#~ msgid "%s: could not read from directory \"%s\": %s\n"
+#~ msgstr "%s: 无法从目录 \"%s\" 中读取: %s\n"
index 36178390c468160fc03dc728a0a9f1d4ed40705c..0a60698417ac2b11954985d69cf883898c208bff 100644 (file)
@@ -7,10 +7,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pg_rewind (PostgreSQL) 9.5\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:44+0000\n"
-"PO-Revision-Date: 2016-01-03 23:28-0500\n"
+"POT-Creation-Date: 2016-04-18 04:45+0000\n"
+"PO-Revision-Date: 2016-05-19 20:41+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
-"Language-Team: Chinese (Simplified)\n"
+"Language-Team: Chinese (Simplified) <ywpeng@whu.edu.cn>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -112,7 +112,7 @@ msgstr "无法打开源文件\"%s\": %s\n"
 msgid "could not seek in source file: %s\n"
 msgstr "无法在源文件中定位(seek):%s\n"
 
-#: copy_fetch.c:192 file_ops.c:301
+#: copy_fetch.c:192 file_ops.c:300
 #, c-format
 msgid "could not read file \"%s\": %s\n"
 msgstr "无法读取文件\"%s\": %s\n"
@@ -127,6 +127,11 @@ msgstr "读取文件\"%s\"时遇到意料之外的EOF\n"
 msgid "could not close file \"%s\": %s\n"
 msgstr "无法关闭文件\"%s\": %s\n"
 
+#: datapagemap.c:124
+#, c-format
+msgid "  block %u\n"
+msgstr "  块 %u\n"
+
 #: file_ops.c:64
 #, c-format
 msgid "could not open target file \"%s\": %s\n"
@@ -137,57 +142,57 @@ msgstr "无法打开目标文件\"%s\": %s\n"
 msgid "could not close target file \"%s\": %s\n"
 msgstr "无法关闭目标文件\"%s\": %s\n"
 
-#: file_ops.c:99
+#: file_ops.c:98
 #, c-format
 msgid "could not seek in target file \"%s\": %s\n"
 msgstr "无法在目标文件\"%s\"中定位(seek): %s\n"
 
-#: file_ops.c:115
+#: file_ops.c:114
 #, c-format
 msgid "could not write file \"%s\": %s\n"
 msgstr "无法写文件\"%s\": %s\n"
 
-#: file_ops.c:165
+#: file_ops.c:164
 #, c-format
 msgid "invalid action (CREATE) for regular file\n"
 msgstr "对常规文件无效的动作(CREATE)\n"
 
-#: file_ops.c:180
+#: file_ops.c:179
 #, c-format
 msgid "could not remove file \"%s\": %s\n"
 msgstr "无法删除文件 \"%s\": %s\n"
 
-#: file_ops.c:197
+#: file_ops.c:196
 #, c-format
 msgid "could not open file \"%s\" for truncation: %s\n"
 msgstr "无法打开文件\"%s\"用于截断:%s\n"
 
-#: file_ops.c:201
+#: file_ops.c:200
 #, c-format
 msgid "could not truncate file \"%s\" to %u: %s\n"
 msgstr "无法截断文件\"%s\"到%u: %s\n"
 
-#: file_ops.c:217
+#: file_ops.c:216
 #, c-format
 msgid "could not create directory \"%s\": %s\n"
 msgstr "无法创建目录 \"%s\": %s\n"
 
-#: file_ops.c:231
+#: file_ops.c:230
 #, c-format
 msgid "could not remove directory \"%s\": %s\n"
 msgstr "无法移除目录\"%s\": %s\n"
 
-#: file_ops.c:245
+#: file_ops.c:244
 #, c-format
 msgid "could not create symbolic link at \"%s\": %s\n"
 msgstr "无法在\"%s\"创建符号链接: %s\n"
 
-#: file_ops.c:259
+#: file_ops.c:258
 #, c-format
 msgid "could not remove symbolic link \"%s\": %s\n"
 msgstr "无法移除符号链接\"%s\": %s\n"
 
-#: file_ops.c:289 file_ops.c:293
+#: file_ops.c:288 file_ops.c:292
 #, c-format
 msgid "could not open file \"%s\" for reading: %s\n"
 msgstr "无法打开文件\"%s\"用于读取: %s\n"
@@ -222,6 +227,13 @@ msgstr "源文件列表为空\n"
 msgid "unexpected page modification for directory or symbolic link \"%s\"\n"
 msgstr "对目录或符号链接\"%s\"的意料之外的页修改\n"
 
+#. translator: first %s is a file path, second is a keyword such as COPY
+#: filemap.c:537
+#, c-format
+#| msgid "%s (%s/%s) "
+msgid "%s (%s)\n"
+msgstr "%s (%s)\n"
+
 #: libpq_fetch.c:55
 #, c-format
 msgid "could not connect to server: %s"
@@ -393,22 +405,22 @@ msgid "could not find previous WAL record at %X/%X\n"
 msgstr "无法在%X/%X找到前一个WAL记录\n"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: parsexlog.c:268
+#: parsexlog.c:283
 #, c-format
 msgid "could not open file \"%s\": %s\n"
 msgstr "无法打开文件 \"%s\": %s\n"
 
-#: parsexlog.c:282
+#: parsexlog.c:297
 #, c-format
 msgid "could not seek in file \"%s\": %s\n"
 msgstr "无法在文件\"%s\"中定位(seek):%s\n"
 
-#: parsexlog.c:289
+#: parsexlog.c:304
 #, c-format
 msgid "could not read from file \"%s\": %s\n"
 msgstr "无法读取文件 \"%s\": %s\n"
 
-#: parsexlog.c:357
+#: parsexlog.c:372
 #, c-format
 msgid ""
 "WAL record modifies a relation, but record type is not recognized\n"
@@ -417,7 +429,7 @@ msgstr ""
 "WAL记录修改了一个关系,但是记录类型无法识别\n"
 "lsn: %X/%X, rmgr: %s, info: %02X\n"
 
-#: pg_rewind.c:59
+#: pg_rewind.c:64
 #, c-format
 msgid ""
 "%s resynchronizes a PostgreSQL cluster with another copy of the cluster.\n"
@@ -426,7 +438,7 @@ msgstr ""
 "%s用一个PostgreSQL集簇的另一个拷贝重新同步了该集簇。\n"
 "\n"
 
-#: pg_rewind.c:60
+#: pg_rewind.c:65
 #, c-format
 msgid ""
 "Usage:\n"
@@ -437,54 +449,54 @@ msgstr ""
 "  %s [选项]...\n"
 "\n"
 
-#: pg_rewind.c:61
+#: pg_rewind.c:66
 #, c-format
 msgid "Options:\n"
 msgstr "选项:\n"
 
-#: pg_rewind.c:62
+#: pg_rewind.c:67
 #, c-format
 msgid "  -D, --target-pgdata=DIRECTORY  existing data directory to modify\n"
 msgstr "  -D, --target-pgdata=DIRECTORY  已有的要修改的数据目录\n"
 
-#: pg_rewind.c:63
+#: pg_rewind.c:68
 #, c-format
 msgid ""
 "      --source-pgdata=DIRECTORY  source data directory to synchronize with\n"
 msgstr "      --source-pgdata=DIRECTORY  要与之同步的源数据目录\n"
 
-#: pg_rewind.c:64
+#: pg_rewind.c:69
 #, c-format
 msgid "      --source-server=CONNSTR    source server to synchronize with\n"
 msgstr "      --source-server=CONNSTR    要与之同步的源服务器\n"
 
-#: pg_rewind.c:65
+#: pg_rewind.c:70
 #, c-format
 msgid "  -n, --dry-run                  stop before modifying anything\n"
 msgstr "  -n, --dry-run                  在修改任何东西之前停止\n"
 
-#: pg_rewind.c:66
+#: pg_rewind.c:71
 #, c-format
 msgid "  -P, --progress                 write progress messages\n"
 msgstr "  -P, --progress                 写出进度消息\n"
 
-#: pg_rewind.c:67
+#: pg_rewind.c:72
 #, c-format
 msgid "      --debug                    write a lot of debug messages\n"
 msgstr "      --debug                    写出很多调试消息\n"
 
-#: pg_rewind.c:68
+#: pg_rewind.c:73
 #, c-format
 msgid ""
 "  -V, --version                  output version information, then exit\n"
 msgstr "  -V, --version                  输出版本信息,然后退出\n"
 
-#: pg_rewind.c:69
+#: pg_rewind.c:74
 #, c-format
 msgid "  -?, --help                     show this help, then exit\n"
 msgstr "  -?, --help                     显示本帮助,然后退出\n"
 
-#: pg_rewind.c:70
+#: pg_rewind.c:75
 #, c-format
 msgid ""
 "\n"
@@ -493,77 +505,77 @@ msgstr ""
 "\n"
 "报告错误至 <pgql-bugs@postgresql.org>.\n"
 
-#: pg_rewind.c:125 pg_rewind.c:156 pg_rewind.c:163 pg_rewind.c:171
+#: pg_rewind.c:130 pg_rewind.c:161 pg_rewind.c:168 pg_rewind.c:176
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: pg_rewind.c:155
+#: pg_rewind.c:160
 #, c-format
 msgid "%s: no source specified (--source-pgdata or --source-server)\n"
 msgstr "%s:没有指定源 (--source-pgdata 或者 --source-server)\n"
 
-#: pg_rewind.c:162
+#: pg_rewind.c:167
 #, c-format
 msgid "%s: no target data directory specified (--target-pgdata)\n"
 msgstr "%s:没有指定目标数据目录 (--target-pgdata)\n"
 
-#: pg_rewind.c:169
+#: pg_rewind.c:174
 #, c-format
 msgid "%s: too many command-line arguments (first is \"%s\")\n"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_rewind.c:184
+#: pg_rewind.c:189
 #, c-format
 msgid "cannot be executed by \"root\"\n"
 msgstr "不能由\"root\"执行\n"
 
-#: pg_rewind.c:185
+#: pg_rewind.c:190
 #, c-format
 msgid "You must run %s as the PostgreSQL superuser.\n"
 msgstr "您现在作为PostgreSQL超级用户运行%s.\n"
 
-#: pg_rewind.c:215
+#: pg_rewind.c:221
 #, c-format
 msgid "source and target cluster are on the same timeline\n"
 msgstr "源集簇和目标集簇处于同一时间线\n"
 
-#: pg_rewind.c:218
+#: pg_rewind.c:227
 #, c-format
 msgid "servers diverged at WAL position %X/%X on timeline %u\n"
 msgstr "服务器在时间线%3$u上的WAL位置%1$X/%2$X处发生了分歧\n"
 
-#: pg_rewind.c:253
+#: pg_rewind.c:264
 #, c-format
 msgid "no rewind required\n"
 msgstr "不需要倒带(rewind)\n"
 
-#: pg_rewind.c:259
+#: pg_rewind.c:271
 #, c-format
 msgid "rewinding from last common checkpoint at %X/%X on timeline %u\n"
 msgstr "从时间线%3$u上%1$X/%2$X处的最后一个普通检查点倒带\n"
 
-#: pg_rewind.c:267
+#: pg_rewind.c:279
 #, c-format
 msgid "reading source file list\n"
 msgstr "读取源文件列表\n"
 
-#: pg_rewind.c:269
+#: pg_rewind.c:281
 #, c-format
 msgid "reading target file list\n"
 msgstr "读取目标文件列表\n"
 
-#: pg_rewind.c:279
+#: pg_rewind.c:291
 #, c-format
 msgid "reading WAL in target\n"
 msgstr "读取目标中的WAL\n"
 
-#: pg_rewind.c:296
+#: pg_rewind.c:308
 #, c-format
 msgid "need to copy %lu MB (total source directory size is %lu MB)\n"
 msgstr "需要复制 %lu MB(整个源目录的大小是 %lu MB)\n"
 
-#: pg_rewind.c:313
+#: pg_rewind.c:325
 #, c-format
 msgid ""
 "\n"
@@ -572,58 +584,122 @@ msgstr ""
 "\n"
 "正在创建备份标签并且更新控制文件\n"
 
-#: pg_rewind.c:341
+#: pg_rewind.c:353
+#, c-format
+#| msgid "%s: failed to remove data directory\n"
+msgid "syncing target data directory\n"
+msgstr "正在同步目标数据目录\n"
+
+#: pg_rewind.c:356
 #, c-format
 msgid "Done!\n"
 msgstr "完成!\n"
 
-#: pg_rewind.c:353
+#: pg_rewind.c:368
 #, c-format
 msgid "source and target clusters are from different systems\n"
 msgstr "源集簇和目标集簇来自不同的系统\n"
 
-#: pg_rewind.c:361
+#: pg_rewind.c:376
 #, c-format
 msgid "clusters are not compatible with this version of pg_rewind\n"
 msgstr "集簇与这个pg_rewind的版本不兼容\n"
 
-#: pg_rewind.c:371
+#: pg_rewind.c:386
 #, c-format
 msgid ""
 "target server needs to use either data checksums or \"wal_log_hints = on\"\n"
 msgstr "目标服务器需要使用数据校验和或者让\"wal_log_hints = on\"\n"
 
-#: pg_rewind.c:381
+#: pg_rewind.c:397
 #, c-format
 msgid "target server must be shut down cleanly\n"
 msgstr "目标服务器必须被干净地关闭\n"
 
-#: pg_rewind.c:389
+#: pg_rewind.c:407
 #, c-format
 msgid "source data directory must be shut down cleanly\n"
 msgstr "源数据目录必须被干净地关闭\n"
 
-#: pg_rewind.c:456
+#: pg_rewind.c:462
+#, c-format
+#| msgid "Invalid character value."
+msgid "Invalid control file"
+msgstr "无效的控制文件"
+
+#: pg_rewind.c:473
+#, c-format
+#| msgid "source file list is empty\n"
+msgid "Source timeline history:\n"
+msgstr "源时间线历史:\n"
+
+#: pg_rewind.c:475
+#, c-format
+#| msgid "new target timeline is %u"
+msgid "Target timeline history:\n"
+msgstr "目标时间线历史:\n"
+
+#. translator: %d is a timeline number, others are LSN positions
+#: pg_rewind.c:489
+#, c-format
+msgid "%d: %X/%X - %X/%X\n"
+msgstr "%d: %X/%X - %X/%X\n"
+
+#: pg_rewind.c:547
 #, c-format
 msgid ""
 "could not find common ancestor of the source and target cluster's timelines\n"
 msgstr "无法找到源集簇和目标集簇的时间线的共同祖先\n"
 
-#: pg_rewind.c:496
+#: pg_rewind.c:588
 #, c-format
 msgid "backup label buffer too small\n"
 msgstr "备份标签缓冲太小\n"
 
-#: pg_rewind.c:518
+#: pg_rewind.c:611
 #, c-format
 msgid "unexpected control file CRC\n"
 msgstr "意料之外的控制文件CRC\n"
 
-#: pg_rewind.c:528
+#: pg_rewind.c:621
 #, c-format
 msgid "unexpected control file size %d, expected %d\n"
 msgstr "意料之外的控制文件大小%d,应该是%d\n"
 
+#: pg_rewind.c:688
+#, c-format
+#| msgid ""
+#| "The program \"%s\" is needed by %s but was not found in the\n"
+#| "same directory as \"%s\".\n"
+#| "Check your installation.\n"
+msgid ""
+"The program \"initdb\" is needed by %s but was \n"
+"not found in the same directory as \"%s\".\n"
+"Check your installation.\n"
+msgstr ""
+"%1$s需要程序\"initdb\", 但是在同一个目录\"%2$s\"中没找到.\n"
+"请检查您的安装.\n"
+
+#: pg_rewind.c:692
+#, c-format
+#| msgid ""
+#| "The program \"%s\" was found by \"%s\"\n"
+#| "but was not the same version as %s.\n"
+#| "Check your installation.\n"
+msgid ""
+"The program \"initdb\" was found by \"%s\"\n"
+"but was not the same version as %s.\n"
+"Check your installation.\n"
+msgstr ""
+"\"%1$s\"找到了程序\"initdb\", 但是和\"%2$s\"的版本不一致.\n"
+"请检查您的安装.\n"
+
+#: pg_rewind.c:710
+#, c-format
+#| msgid "%s: no target directory specified\n"
+msgid "sync of target directory failed\n"
+msgstr "目标目录同步失败\n"
+
 #: timeline.c:76 timeline.c:82
 #, c-format
 msgid "syntax error in history file: %s\n"
@@ -659,62 +735,63 @@ msgstr "历史文件中有无效数据\n"
 msgid "Timeline IDs must be less than child timeline's ID.\n"
 msgstr "时间线 ID 必须小于子时间线的 ID。\n"
 
-#: xlogreader.c:264
+#: xlogreader.c:285
 #, c-format
 msgid "invalid record offset at %X/%X"
 msgstr "%X/%X处有无效的记录偏移量"
 
-#: xlogreader.c:272
+#: xlogreader.c:293
 #, c-format
 msgid "contrecord is requested by %X/%X"
 msgstr "%X/%X请求继续记录(contrecord)"
 
-#: xlogreader.c:312 xlogreader.c:603
+#: xlogreader.c:334 xlogreader.c:633
 #, c-format
-msgid "invalid record length at %X/%X"
-msgstr "%X/%X处有无效记录长度"
+#| msgid "invalid record length at %X/%X"
+msgid "invalid record length at %X/%X: wanted %u, got %u"
+msgstr "%X/%X处有无效记录长度: 应该是%u, 但实际是%u"
 
-#: xlogreader.c:326
+#: xlogreader.c:349
 #, c-format
 msgid "record length %u at %X/%X too long"
 msgstr "%2$X/%3$X处有的记录长度%1$u过长"
 
-#: xlogreader.c:367
+#: xlogreader.c:390
 #, c-format
 msgid "there is no contrecord flag at %X/%X"
 msgstr "%X/%X处没有继续记录标志"
 
-#: xlogreader.c:380
+#: xlogreader.c:403
 #, c-format
 msgid "invalid contrecord length %u at %X/%X"
 msgstr "%2$X/%3$X处有无效的继续记录长度%1$u"
 
-#: xlogreader.c:610
+#: xlogreader.c:641
 #, c-format
 msgid "invalid resource manager ID %u at %X/%X"
 msgstr "%2$X/%3$X处有无效的资源管理器 ID %1$u"
 
-#: xlogreader.c:624 xlogreader.c:641
+#: xlogreader.c:655 xlogreader.c:672
 #, c-format
 msgid "record with incorrect prev-link %X/%X at %X/%X"
 msgstr "%3$X/%4$X处的记录有不正确的prev-link %1$X/%2$X"
 
-#: xlogreader.c:678
+#: xlogreader.c:709
 #, c-format
 msgid "incorrect resource manager data checksum in record at %X/%X"
 msgstr "%X/%X处的记录中有不正确的资源管理器数据校验和"
 
-#: xlogreader.c:711
+#: xlogreader.c:742
 #, c-format
 msgid "invalid magic number %04X in log segment %s, offset %u"
 msgstr "在日志段%2$s的偏移量%3$u处有无效的magic号%1$04X"
 
-#: xlogreader.c:725 xlogreader.c:776
+#: xlogreader.c:756 xlogreader.c:807
 #, c-format
 msgid "invalid info bits %04X in log segment %s, offset %u"
 msgstr "在日志段%2$s的偏移量%3$u处有无效的info位%1$04X"
 
-#: xlogreader.c:751
+#: xlogreader.c:782
 #, c-format
 msgid ""
 "WAL file is from different database system: WAL file database system "
@@ -723,46 +800,46 @@ msgstr ""
 "WAL文件来自于不同的数据库系统:WAL文件数据库系统标识符是%s,pg_control数据库"
 "系统标识符是%s"
 
-#: xlogreader.c:758
+#: xlogreader.c:789
 #, c-format
 msgid ""
 "WAL file is from different database system: incorrect XLOG_SEG_SIZE in page "
 "header"
 msgstr "WAL文件来自于不同的数据库系统:页头部中有不正确的XLOG_SEG_SIZE"
 
-#: xlogreader.c:764
+#: xlogreader.c:795
 #, c-format
 msgid ""
 "WAL file is from different database system: incorrect XLOG_BLCKSZ in page "
 "header"
 msgstr "WAL文件来自于不同的数据库系统:页头部中有不正确的XLOG_BLCKSZ"
 
-#: xlogreader.c:790
+#: xlogreader.c:821
 #, c-format
 msgid "unexpected pageaddr %X/%X in log segment %s, offset %u"
 msgstr "在日志段%3$s的偏移量%4$u处有意料之外的pageaddr %1$X/%2$X"
 
-#: xlogreader.c:815
+#: xlogreader.c:846
 #, c-format
 msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u"
 msgstr "在日志段%3$s的偏移量%4$u处有失序的时间线 ID %1$u(在%2$u之后)"
 
-#: xlogreader.c:1024
+#: xlogreader.c:1053
 #, c-format
 msgid "out-of-order block_id %u at %X/%X"
 msgstr "在%2$X/%3$X处有无序的block_id %1$u"
 
-#: xlogreader.c:1046
+#: xlogreader.c:1075
 #, c-format
 msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X"
 msgstr "BKPBLOCK_HAS_DATA已被设置,但是在%X/%X处没有包括数据"
 
-#: xlogreader.c:1053
+#: xlogreader.c:1082
 #, c-format
 msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X"
 msgstr "BKPBLOCK_HAS_DATA没有被设置,但是在%2$X/%3$X处的数据长度为%1$u"
 
-#: xlogreader.c:1086
+#: xlogreader.c:1115
 #, c-format
 msgid ""
 "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at "
@@ -771,18 +848,18 @@ msgstr ""
 "BKPIMAGE_HAS_HOLE已被设置,但是%4$X/%5$X处记录了洞偏移量为%1$u、长度为%2$u、"
 "块映像长度为%3$u"
 
-#: xlogreader.c:1102
+#: xlogreader.c:1131
 #, c-format
 msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X"
 msgstr ""
 "BKPIMAGE_HAS_HOLE没有被设置,但是%3$X/%4$X处记录了洞偏移量为%1$u、长度为%2$u"
 
-#: xlogreader.c:1117
+#: xlogreader.c:1146
 #, c-format
 msgid "BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X"
 msgstr "BKPIMAGE_IS_COMPRESSED已被设置,但是%2$X/%3$X处记录的块映像长度为%1$u"
 
-#: xlogreader.c:1132
+#: xlogreader.c:1161
 #, c-format
 msgid ""
 "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image "
@@ -791,22 +868,22 @@ msgstr ""
 "BKPIMAGE_HAS_HOLE和BKPIMAGE_IS_COMPRESSED都没有被设置,但是%2$X/%3$X处记录的"
 "块映像长度为%1$u"
 
-#: xlogreader.c:1148
+#: xlogreader.c:1177
 #, c-format
 msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X"
 msgstr "BKPBLOCK_SAME_REL已被设置,但是在%X/%X没有前一个关系"
 
-#: xlogreader.c:1160
+#: xlogreader.c:1189
 #, c-format
 msgid "invalid block_id %u at %X/%X"
 msgstr "%2$X/%3$X处有无效block_id %1$u"
 
-#: xlogreader.c:1225
+#: xlogreader.c:1254
 #, c-format
 msgid "record with invalid length at %X/%X"
 msgstr "%X/%X处的记录的长度无效"
 
-#: xlogreader.c:1314
+#: xlogreader.c:1343
 #, c-format
 msgid "invalid compressed image at %X/%X, block %d"
 msgstr "%X/%X处是块%d的无效压缩映像"
index 0a2fab27581fb5545d4eb239fec64b76b85421d5..35b06bcba9fd27400c8a5301b4df10679762b05f 100644 (file)
@@ -4,18 +4,18 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: pgscripts (PostgreSQL 9.6)\n"
+"Project-Id-Version: pgscripts (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2016-06-06 22:14+0000\n"
-"PO-Revision-Date: 2016-06-07 06:58-0400\n"
+"POT-Creation-Date: 2016-04-18 04:44+0000\n"
+"PO-Revision-Date: 2016-05-19 20:42+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
-"Language-Team: Chinese (Simplified)\n"
+"Language-Team: Chinese (Simplified) <ywpeng@whu.edu.cn>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.7\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75
 #: ../../common/fe_memutils.c:98
@@ -157,7 +157,8 @@ msgstr "  -d, --dbname=DBNAME       对数据库 DBNAME 建簇\n"
 #: clusterdb.c:267 createlang.c:240 createuser.c:355 dropdb.c:158
 #: droplang.c:241 dropuser.c:159 reindexdb.c:398
 #, c-format
-msgid "  -e, --echo                show the commands being sent to the server\n"
+msgid ""
+"  -e, --echo                show the commands being sent to the server\n"
 msgstr "  -e, --echo                显示发送到服务端的命令\n"
 
 #: clusterdb.c:268 reindexdb.c:400
@@ -356,7 +357,8 @@ msgstr "  -D, --tablespace=TABLESPACE  数据库默认表空间\n"
 
 #: createdb.c:256
 #, c-format
-msgid "  -e, --echo                   show the commands being sent to the server\n"
+msgid ""
+"  -e, --echo                   show the commands being sent to the server\n"
 msgstr "  -e, --echo                   显示发送到服务端的命令\n"
 
 #: createdb.c:257
@@ -401,8 +403,10 @@ msgstr "  -?, --help                   显示此帮助, 然后退出\n"
 
 #: createdb.c:266
 #, c-format
-msgid "  -h, --host=HOSTNAME          database server host or socket directory\n"
-msgstr "  -h, --host=HOSTNAME          数据库服务器所在机器的主机名或套接字目录\n"
+msgid ""
+"  -h, --host=HOSTNAME          database server host or socket directory\n"
+msgstr ""
+"  -h, --host=HOSTNAME          数据库服务器所在机器的主机名或套接字目录\n"
 
 #: createdb.c:267
 #, c-format
@@ -494,7 +498,8 @@ msgstr "  -d, --dbname=DBNAME       要安装语言的数据库\n"
 
 #: createlang.c:241 droplang.c:242
 #, c-format
-msgid "  -l, --list                show a list of currently installed languages\n"
+msgid ""
+"  -l, --list                show a list of currently installed languages\n"
 msgstr "  -l, --list                显示当前已经安装了的语言列表\n"
 
 #: createuser.c:191
@@ -552,7 +557,8 @@ msgstr "  %s [选项]... [用户名]\n"
 
 #: createuser.c:352
 #, c-format
-msgid "  -c, --connection-limit=N  connection limit for role (default: no limit)\n"
+msgid ""
+"  -c, --connection-limit=N  connection limit for role (default: no limit)\n"
 msgstr "  -c, --connection-limit=N  角色的连接限制(缺省: 没有限制)\n"
 
 #: createuser.c:353
@@ -632,7 +638,8 @@ msgstr "  -S, --no-superuser       角色不能是超级用户(默认)\n"
 #: createuser.c:370
 #, c-format
 msgid ""
-"  --interactive             prompt for missing role name and attributes rather\n"
+"  --interactive             prompt for missing role name and attributes "
+"rather\n"
 "                            than using defaults\n"
 msgstr ""
 "  --interactive             提示缺少角色名及其属性\n"
@@ -650,7 +657,8 @@ msgstr "  --no-replication          角色不能启动复制\n"
 
 #: createuser.c:378
 #, c-format
-msgid "  -U, --username=USERNAME   user name to connect as (not the one to create)\n"
+msgid ""
+"  -U, --username=USERNAME   user name to connect as (not the one to create)\n"
 msgstr "  -U, --username=USERNAME   联接用户 (不是要创建的用户名)\n"
 
 #: dropdb.c:102
@@ -694,7 +702,8 @@ msgstr "  -i, --interactive         删除任何东西之前给予提示\n"
 # help.c:96
 #: dropdb.c:161
 #, c-format
-msgid "  --if-exists               don't report error if database doesn't exist\n"
+msgid ""
+"  --if-exists               don't report error if database doesn't exist\n"
 msgstr "  --if-exists               如果数据库不存在则不报告错误\n"
 
 #: droplang.c:203
@@ -718,7 +727,8 @@ msgstr ""
 
 #: droplang.c:240
 #, c-format
-msgid "  -d, --dbname=DBNAME       database from which to remove the language\n"
+msgid ""
+"  -d, --dbname=DBNAME       database from which to remove the language\n"
 msgstr "  -d, --dbname=DBNAME       要删除语言的数据库\n"
 
 #: dropuser.c:111
@@ -765,7 +775,8 @@ msgstr "  --if-exists              用户名不存在时则不报告错误\n"
 
 #: dropuser.c:168
 #, c-format
-msgid "  -U, --username=USERNAME   user name to connect as (not the one to drop)\n"
+msgid ""
+"  -U, --username=USERNAME   user name to connect as (not the one to drop)\n"
 msgstr "  -U, --username=USERNAME   联接用户 (不是要删除的用户名)\n"
 
 # command.c:788
@@ -862,8 +873,11 @@ msgstr "  -p, --port=PORT           数据库服务器端口\n"
 
 #: pg_isready.c:234
 #, c-format
-msgid "  -t, --timeout=SECS       seconds to wait when attempting connection, 0 disables (default: %s)\n"
-msgstr "  -t, --timeout=SECS    尝试连接时要等待的秒数, 值为0表示禁用(缺省值: %s)\n"
+msgid ""
+"  -t, --timeout=SECS       seconds to wait when attempting connection, 0 "
+"disables (default: %s)\n"
+msgstr ""
+"  -t, --timeout=SECS    尝试连接时要等待的秒数, 值为0表示禁用(缺省值: %s)\n"
 
 #: pg_isready.c:235
 #, c-format
@@ -897,17 +911,20 @@ msgstr "%s: 无法在所有数据库中对指定的索引进行重建\n"
 
 #: reindexdb.c:191
 #, c-format
-msgid "%s: cannot reindex specific schema(s) and system catalogs at the same time\n"
+msgid ""
+"%s: cannot reindex specific schema(s) and system catalogs at the same time\n"
 msgstr "%s:无法对指定的模式和系统目录同时进行索引重建\n"
 
 #: reindexdb.c:196
 #, c-format
-msgid "%s: cannot reindex specific table(s) and system catalogs at the same time\n"
+msgid ""
+"%s: cannot reindex specific table(s) and system catalogs at the same time\n"
 msgstr "%s: 无法对指定的表和系统视图同时进行索引重建操作\n"
 
 #: reindexdb.c:201
 #, c-format
-msgid "%s: cannot reindex specific index(es) and system catalogs at the same time\n"
+msgid ""
+"%s: cannot reindex specific index(es) and system catalogs at the same time\n"
 msgstr "%s: 无法对指定索引和系统视图同时进行索引重建操作\n"
 
 #: reindexdb.c:307
@@ -1046,10 +1063,10 @@ msgid "%s: vacuuming of database \"%s\" failed: %s"
 msgstr "%s: 数据库 \"%s\" 清理失败: %s"
 
 #: vacuumdb.c:929
-#, fuzzy, c-format
+#, c-format
 #| msgid "%s: invalid option %s\n"
 msgid "%s: invalid socket: %s"
-msgstr "%s: 无效选项 %s\n"
+msgstr "%s: 无效套接字: %s"
 
 #: vacuumdb.c:938
 #, c-format
@@ -1072,7 +1089,9 @@ msgstr "  -d, --dbname=DBNAME             清理数据库 DBNAME\n"
 
 #: vacuumdb.c:944
 #, c-format
-msgid "  -e, --echo                      show the commands being sent to the server\n"
+msgid ""
+"  -e, --echo                      show the commands being sent to the "
+"server\n"
 msgstr "  -e, --echo                      显示发送到服务端的命令\n"
 
 #: vacuumdb.c:945
@@ -1087,7 +1106,9 @@ msgstr "  -F, --freeze                    冻结记录的事务信息\n"
 
 #: vacuumdb.c:947
 #, c-format
-msgid "  -j, --jobs=NUM                  use this many concurrent connections to vacuum\n"
+msgid ""
+"  -j, --jobs=NUM                  use this many concurrent connections to "
+"vacuum\n"
 msgstr "  -j, --jobs=NUM               使用这么多个并发连接进行清理\n"
 
 #: vacuumdb.c:948
@@ -1107,7 +1128,8 @@ msgstr "  -v, --verbose                   写大量的输出\n"
 
 #: vacuumdb.c:951
 #, c-format
-msgid "  -V, --version                   output version information, then exit\n"
+msgid ""
+"  -V, --version                   output version information, then exit\n"
 msgstr "  -V, --version                   输出版本信息, 然后退出\n"
 
 #: vacuumdb.c:952
@@ -1117,16 +1139,20 @@ msgstr "  -z, --analyze                   更新优化器统计\n"
 
 #: vacuumdb.c:953
 #, c-format
-msgid "  -Z, --analyze-only              only update optimizer statistics; no vacuum\n"
+msgid ""
+"  -Z, --analyze-only              only update optimizer statistics; no "
+"vacuum\n"
 msgstr "  -Z, --analyze-only               只更新优化器统计信息,但不做清理\n"
 
 #: vacuumdb.c:954
 #, c-format
 msgid ""
-"      --analyze-in-stages         only update optimizer statistics, in multiple\n"
+"      --analyze-in-stages         only update optimizer statistics, in "
+"multiple\n"
 "                                  stages for faster results; no vacuum\n"
 msgstr ""
-"      --analyze-in-stages        只更新优化器统计, 为了更快得到结果分多阶段;\n"
+"      --analyze-in-stages        只更新优化器统计, 为了更快得到结果分多阶"
+"段;\n"
 "                                            不做清理\n"
 
 #: vacuumdb.c:956
@@ -1152,7 +1178,8 @@ msgstr ""
 #~ msgid "%s: out of memory\n"
 #~ msgstr "%s: 内存溢出\n"
 
-#~ msgid "  -D, --location=PATH       alternative place to store the database\n"
+#~ msgid ""
+#~ "  -D, --location=PATH       alternative place to store the database\n"
 #~ msgstr "  -D, --location=PATH       选择一个地方存放数据库\n"
 
 #~ msgid "  -W, --password            prompt for password to connect\n"
@@ -1164,11 +1191,15 @@ msgstr ""
 #~ msgid "%s: user ID must be a positive number\n"
 #~ msgstr "%s: 用户 ID 必需为一个正数\n"
 
-#~ msgid "  -L, --pglib=DIRECTORY     find language interpreter file in DIRECTORY\n"
+#~ msgid ""
+#~ "  -L, --pglib=DIRECTORY     find language interpreter file in DIRECTORY\n"
 #~ msgstr "  -L, --pglib=DIRECTORY     在 DIRECTORY 目录中查找语言翻译文件\n"
 
-#~ msgid "Supported languages are plpgsql, pltcl, pltclu, plperl, plperlu, and plpythonu.\n"
-#~ msgstr "已支持的语言有 plpgsql, pltcl, pltclu, plperl, plperlu, 和 plpythonu.\n"
+#~ msgid ""
+#~ "Supported languages are plpgsql, pltcl, pltclu, plperl, plperlu, and "
+#~ "plpythonu.\n"
+#~ msgstr ""
+#~ "已支持的语言有 plpgsql, pltcl, pltclu, plperl, plperlu, 和 plpythonu.\n"
 
 #~ msgid "%s: unsupported language \"%s\"\n"
 #~ msgstr "%s: 不支持语言 \"%s\"\n"
@@ -1176,18 +1207,21 @@ msgstr ""
 #~ msgid "  -q, --quiet                  don't write any messages\n"
 #~ msgstr "  -q, --quiet                  不写任何信息\n"
 
-#~ msgid "  --version                       output version information, then exit\n"
+#~ msgid ""
+#~ "  --version                       output version information, then exit\n"
 #~ msgstr "  --versoin                       输出版本信息, 然后退出\n"
 
 #~ msgid "  --help                          show this help, then exit\n"
 #~ msgstr "  --help                          显示此帮助信息, 然后退出\n"
 
-#~ msgid "%s: still %s functions declared in language \"%s\"; language not removed\n"
+#~ msgid ""
+#~ "%s: still %s functions declared in language \"%s\"; language not removed\n"
 #~ msgstr "%s: 函数 %s 是用语言 \"%s\" 声明的; 语言未被删除\n"
 
 #~ msgid ""
 #~ "\n"
-#~ "If one of -d, -D, -r, -R, -s, -S, and ROLENAME is not specified, you will\n"
+#~ "If one of -d, -D, -r, -R, -s, -S, and ROLENAME is not specified, you "
+#~ "will\n"
 #~ "be prompted interactively.\n"
 #~ msgstr ""
 #~ "\n"
@@ -1200,7 +1234,8 @@ msgstr ""
 #~ msgid "  --help                    show this help, then exit\n"
 #~ msgstr "  --help                    显示此帮助信息, 然后退出\n"
 
-#~ msgid "  --version                    output version information, then exit\n"
+#~ msgid ""
+#~ "  --version                    output version information, then exit\n"
 #~ msgstr "  --versoin                    输出版本信息, 然后退出\n"
 
 #~ msgid "  --help                       show this help, then exit\n"
index 3a63244104cccc23490810a9e27e7dd5a9b3e020..56886dd5c1ee366f6a47cd15b7126035ab61dca8 100644 (file)
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PostgreSQL 9.0\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:37+0000\n"
-"PO-Revision-Date: 2015-12-02 14:47+0800\n"
+"POT-Creation-Date: 2016-04-18 04:37+0000\n"
+"PO-Revision-Date: 2016-05-19 20:43+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
 "Language-Team: Weibin <ssmei_2000@yahoo.com>\n"
 "Language: zh_CN\n"
@@ -17,213 +17,214 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: plperl.c:404
+#: plperl.c:405
 msgid ""
 "If true, trusted and untrusted Perl code will be compiled in strict mode."
 msgstr "如果为真的话,那么信任和非信任的Perl代码将以限制模式编译."
 
-#: plperl.c:418
+#: plperl.c:419
 msgid ""
 "Perl initialization code to execute when a Perl interpreter is initialized."
 msgstr "当初始化一个Perl解释器时候执行Perl初始化代码"
 
-#: plperl.c:440
+#: plperl.c:441
 msgid "Perl initialization code to execute once when plperl is first used."
 msgstr "在第一次使用plperl的时候执行一次Perl初始化代码"
 
-#: plperl.c:448
+#: plperl.c:449
 msgid "Perl initialization code to execute once when plperlu is first used."
 msgstr "在plperlu第一次使用的时候执行一次Perl初始化代码"
 
-#: plperl.c:645
+#: plperl.c:646
 #, c-format
-#| msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
 msgid "cannot allocate multiple Perl interpreters on this platform"
 msgstr "在这个平台上无法分配多个Perl解释器"
 
-#: plperl.c:665 plperl.c:840 plperl.c:846 plperl.c:960 plperl.c:972
-#: plperl.c:1015 plperl.c:1036 plperl.c:2068 plperl.c:2175 plperl.c:2242
-#: plperl.c:2304
+#: plperl.c:666 plperl.c:841 plperl.c:847 plperl.c:961 plperl.c:973
+#: plperl.c:1016 plperl.c:1037 plperl.c:2080 plperl.c:2189 plperl.c:2256
+#: plperl.c:2318
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: plperl.c:666
+#: plperl.c:667
 #, c-format
 msgid "while executing PostgreSQL::InServer::SPI::bootstrap"
 msgstr "同时在执行PostgreSQL::InServer::SPI::bootstrap"
 
-#: plperl.c:841
+#: plperl.c:842
 #, c-format
 msgid "while parsing Perl initialization"
 msgstr "同时在解析Perl初始化"
 
-#: plperl.c:847
+#: plperl.c:848
 #, c-format
 msgid "while running Perl initialization"
 msgstr "同时在运行Perl初始化"
 
-#: plperl.c:961
+#: plperl.c:962
 #, c-format
 msgid "while executing PLC_TRUSTED"
 msgstr "同时在执行PLC_TRUSTED"
 
-#: plperl.c:973
+#: plperl.c:974
 #, c-format
 msgid "while executing utf8fix"
 msgstr "同时在执行utf8fix"
 
-#: plperl.c:1016
+#: plperl.c:1017
 #, c-format
 msgid "while executing plperl.on_plperl_init"
 msgstr "同时在执行plperl.on_plperl_init"
 
-#: plperl.c:1037
+#: plperl.c:1038
 #, c-format
 msgid "while executing plperl.on_plperlu_init"
 msgstr "同时在执行plperl.on_plperlu_init"
 
-#: plperl.c:1081 plperl.c:1710
+#: plperl.c:1082 plperl.c:1722
 #, c-format
 msgid "Perl hash contains nonexistent column \"%s\""
 msgstr "Perl的哈希功能包含不存在的列\"%s\""
 
-#: plperl.c:1166
+#: plperl.c:1167
 #, c-format
 msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
 msgstr "数组的维数(%d)超过最大允许值(%d)"
 
-#: plperl.c:1178 plperl.c:1195
+#: plperl.c:1179 plperl.c:1196
 #, c-format
 msgid ""
 "multidimensional arrays must have array expressions with matching dimensions"
 msgstr "多维数组必须有符合维度的数组表达式"
 
-#: plperl.c:1230
+#: plperl.c:1231
 #, c-format
 msgid "cannot convert Perl array to non-array type %s"
 msgstr "无法将Perl数组转换成非数组类型 %s"
 
-#: plperl.c:1332
+#: plperl.c:1333
 #, c-format
 msgid "cannot convert Perl hash to non-composite type %s"
 msgstr "无法将Perl哈希类型转换成非组合类型 %s"
 
-#: plperl.c:1343
+#: plperl.c:1344
 #, c-format
 msgid ""
 "function returning record called in context that cannot accept type record"
 msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用"
 
-#: plperl.c:1358
+#: plperl.c:1359
 #, c-format
 msgid "PL/Perl function must return reference to hash or array"
 msgstr "PL/Perl 函数必须返回对哈希或数组的引用"
 
-#: plperl.c:1395
+#: plperl.c:1396
 #, c-format
-#| msgid "no output function available for type %s"
 msgid "lookup failed for type %s"
 msgstr "类型%s查找失败"
 
-#: plperl.c:1687
+#: plperl.c:1699
 #, c-format
 msgid "$_TD->{new} does not exist"
 msgstr "$_TD->{new}不存在"
 
-#: plperl.c:1691
+#: plperl.c:1703
 #, c-format
 msgid "$_TD->{new} is not a hash reference"
 msgstr "$_TD->{new}不是一个哈希引用"
 
-#: plperl.c:1944 plperl.c:2776
+#: plperl.c:1956 plperl.c:2790
 #, c-format
 msgid "PL/Perl functions cannot return type %s"
 msgstr "PL/Perl函数无法返回类型%s"
 
-#: plperl.c:1957 plperl.c:2821
+#: plperl.c:1969 plperl.c:2835
 #, c-format
 msgid "PL/Perl functions cannot accept type %s"
 msgstr "PL/Perl functions无法使用类型%s"
 
-#: plperl.c:2073
+#: plperl.c:2085
 #, c-format
 msgid "didn't get a CODE reference from compiling function \"%s\""
 msgstr "没有从正在编译的函数 \"%s\"得到CODE参考"
 
-#: plperl.c:2163
+#: plperl.c:2177
 #, c-format
-#| msgid "didn't get a CODE reference from compiling function \"%s\""
 msgid "didn't get a return item from function"
 msgstr "没有从函数得到一个返回项"
 
-#: plperl.c:2206 plperl.c:2272
+#: plperl.c:2220 plperl.c:2286
 #, c-format
 msgid "couldn't fetch $_TD"
 msgstr "无法取得 $_TD"
 
-#: plperl.c:2230 plperl.c:2292
+#: plperl.c:2244 plperl.c:2306
 #, c-format
-#| msgid "didn't get a CODE reference from compiling function \"%s\""
 msgid "didn't get a return item from trigger function"
 msgstr "没有从触发器函数得到一个返回项"
 
-#: plperl.c:2349
+#: plperl.c:2363
 #, c-format
 msgid "set-valued function called in context that cannot accept a set"
 msgstr "集值函数在不能使用集合的环境中调用"
 
-#: plperl.c:2393
+#: plperl.c:2407
 #, c-format
 msgid ""
 "set-returning PL/Perl function must return reference to array or use "
 "return_next"
 msgstr "返回集合的PL/Perl函数必须返回对数组的引用或者使用return_next"
 
-#: plperl.c:2507
+#: plperl.c:2521
 #, c-format
 msgid "ignoring modified row in DELETE trigger"
 msgstr "在DELETE触发器中忽略已修改的记录"
 
-#: plperl.c:2515
+#: plperl.c:2529
 #, c-format
 msgid ""
 "result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\""
 msgstr "PL/Perl 触发器函数的结果必须是undef, \"SKIP\", 或 \"MODIFY\""
 
-#: plperl.c:2694 plperl.c:2704
+#: plperl.c:2708 plperl.c:2718
 #, c-format
 msgid "out of memory"
 msgstr "内存用尽"
 
-#: plperl.c:2768
+#: plperl.c:2782
 #, c-format
 msgid "trigger functions can only be called as triggers"
 msgstr "触发器函数只能以触发器的形式调用"
 
-#: plperl.c:3144
+#: plperl.c:3121
+#, c-format
+msgid "query result has too many rows to fit in a Perl array"
+msgstr "查询结果中的行太多,无法放在一个Perl数组中"
+
+#: plperl.c:3166
 #, c-format
 msgid "cannot use return_next in a non-SETOF function"
 msgstr "不能在非SETOF函数中使用return_next"
 
-#: plperl.c:3200
+#: plperl.c:3222
 #, c-format
 msgid ""
 "SETOF-composite-returning PL/Perl function must call return_next with "
 "reference to hash"
 msgstr "返回SETOF-组合类型值的PL/Perl函数必须调用带有对哈希引用的return_next"
 
-#: plperl.c:3934
+#: plperl.c:3954
 #, c-format
 msgid "PL/Perl function \"%s\""
 msgstr "PL/Perl函数\"%s\""
 
-#: plperl.c:3946
+#: plperl.c:3966
 #, c-format
 msgid "compilation of PL/Perl function \"%s\""
 msgstr "编译PL/Perl函数\"%s\""
 
-#: plperl.c:3955
+#: plperl.c:3975
 #, c-format
 msgid "PL/Perl anonymous code block"
 msgstr "PL/Perl匿名代码块"
index bb8a6ceedb148bd2e8681f5aa9779030c28e5e88..9858e4e66743d33c8272ffed65b28cc0fff3ba1d 100644 (file)
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PostgreSQL 9.0\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:38+0000\n"
-"PO-Revision-Date: 2015-12-02 14:48+0800\n"
+"POT-Creation-Date: 2016-04-18 04:37+0000\n"
+"PO-Revision-Date: 2016-05-19 20:45+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
 "Language-Team: Weibin <ssmei_2000@yahoo.com>\n"
 "Language: zh_CN\n"
@@ -18,150 +18,145 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: pl_comp.c:436 pl_handler.c:448
+#: pl_comp.c:432 pl_handler.c:448
 #, c-format
 msgid "PL/pgSQL functions cannot accept type %s"
 msgstr "PL/pgSQL函数不使用类型%s"
 
-#: pl_comp.c:517
+#: pl_comp.c:513
 #, c-format
 msgid "could not determine actual return type for polymorphic function \"%s\""
 msgstr "无法确定多态函数\"%s\"的实际返回类型"
 
-#: pl_comp.c:547
+#: pl_comp.c:543
 #, c-format
 msgid "trigger functions can only be called as triggers"
 msgstr "触发器函数只能以触发器的形式调用"
 
-#: pl_comp.c:551 pl_handler.c:433
+#: pl_comp.c:547 pl_handler.c:433
 #, c-format
 msgid "PL/pgSQL functions cannot return type %s"
 msgstr "PL/pgSQL函数不能返回类型%s"
 
-#: pl_comp.c:592
+#: pl_comp.c:588
 #, c-format
 msgid "trigger functions cannot have declared arguments"
 msgstr "触发器函数不能有已声明的参数"
 
-#: pl_comp.c:593
+#: pl_comp.c:589
 #, c-format
 msgid ""
 "The arguments of the trigger can be accessed through TG_NARGS and TG_ARGV "
 "instead."
 msgstr "触发器的参数可以通过TG_NARGS和TG_ARGV进行访问."
 
-#: pl_comp.c:695
+#: pl_comp.c:691
 #, c-format
 msgid "event trigger functions cannot have declared arguments"
 msgstr "事件触发器函数不能有已声明的参数"
 
-#: pl_comp.c:957
+#: pl_comp.c:944
 #, c-format
 msgid "compilation of PL/pgSQL function \"%s\" near line %d"
 msgstr "在第%2$d行附件编译PL/pgSQL函数\"%1$s\""
 
-#: pl_comp.c:980
+#: pl_comp.c:967
 #, c-format
 msgid "parameter name \"%s\" used more than once"
 msgstr "多次使用参数名称 \"%s\""
 
-#: pl_comp.c:1090
+#: pl_comp.c:1077
 #, c-format
 msgid "column reference \"%s\" is ambiguous"
 msgstr "字段关联 \"%s\" 是不明确的"
 
-#: pl_comp.c:1092
+#: pl_comp.c:1079
 #, c-format
 msgid "It could refer to either a PL/pgSQL variable or a table column."
 msgstr "可以指向一个PL/pgSQL变量或表中的列"
 
-#: pl_comp.c:1272 pl_comp.c:1300 pl_exec.c:4447 pl_exec.c:4795 pl_exec.c:4880
-#: pl_exec.c:4971
+#: pl_comp.c:1259 pl_comp.c:1287 pl_exec.c:4395 pl_exec.c:4744 pl_exec.c:4829
+#: pl_exec.c:4920
 #, c-format
 msgid "record \"%s\" has no field \"%s\""
 msgstr "记录\"%s\"没有字段\"%s\""
 
-#: pl_comp.c:1831
+#: pl_comp.c:1818
 #, c-format
 msgid "relation \"%s\" does not exist"
 msgstr "关系 \"%s\" 不存在"
 
-#: pl_comp.c:1940
+#: pl_comp.c:1927
 #, c-format
 msgid "variable \"%s\" has pseudo-type %s"
 msgstr "变量\"%s\"具有伪类型%s"
 
-#: pl_comp.c:2006
+#: pl_comp.c:1994
 #, c-format
 msgid "relation \"%s\" is not a table"
 msgstr "关系 \"%s\"不是一张表"
 
-#: pl_comp.c:2166
+#: pl_comp.c:2154
 #, c-format
 msgid "type \"%s\" is only a shell"
 msgstr "类型 \"%s\" 只是一个 shell"
 
-#: pl_comp.c:2255 pl_comp.c:2308
+#: pl_comp.c:2243 pl_comp.c:2296
 #, c-format
 msgid "unrecognized exception condition \"%s\""
 msgstr "不可识别的异常条件\"%s\""
 
-#: pl_comp.c:2466
+#: pl_comp.c:2503
 #, c-format
 msgid ""
 "could not determine actual argument type for polymorphic function \"%s\""
 msgstr "无法确定多态函数\"%s\"的实际参数类型"
 
-#: pl_exec.c:321 pl_exec.c:614 pl_exec.c:893
+#: pl_exec.c:324 pl_exec.c:612 pl_exec.c:872
 msgid "during initialization of execution state"
 msgstr "在执行状态的初始化期间"
 
-#: pl_exec.c:328
+#: pl_exec.c:331
 msgid "while storing call arguments into local variables"
 msgstr "在将调用的参数存储到本地变量时"
 
-#: pl_exec.c:408 pl_exec.c:771
+#: pl_exec.c:416 pl_exec.c:760
 msgid "during function entry"
 msgstr "在进入函数期间"
 
-#: pl_exec.c:439 pl_exec.c:802 pl_exec.c:934
-#, c-format
-msgid "CONTINUE cannot be used outside a loop"
-msgstr "在循环的外部不能使用CONTINUE"
-
-#: pl_exec.c:443
+#: pl_exec.c:441
 #, c-format
 msgid "control reached end of function without RETURN"
 msgstr "控制流程到达函数的结束部分,但是没有看到RETURN"
 
-#: pl_exec.c:450
+#: pl_exec.c:448
 msgid "while casting return value to function's return type"
 msgstr "正在将返回值强行指派为函数的返回类型"
 
-#: pl_exec.c:463 pl_exec.c:2987
+#: pl_exec.c:461 pl_exec.c:2938
 #, c-format
 msgid "set-valued function called in context that cannot accept a set"
 msgstr "集值函数在不接受使用集合的环境中调用"
 
-#: pl_exec.c:501 pl_exec.c:2829
+#: pl_exec.c:499 pl_exec.c:2779
 msgid "returned record type does not match expected record type"
 msgstr "所返回的记录类型与所期待的记录类型不匹配"
 
-#: pl_exec.c:556 pl_exec.c:810 pl_exec.c:942
+#: pl_exec.c:554 pl_exec.c:789 pl_exec.c:907
 msgid "during function exit"
 msgstr "在函数退出期间"
 
-#: pl_exec.c:806 pl_exec.c:938
+#: pl_exec.c:785 pl_exec.c:903
 #, c-format
 msgid "control reached end of trigger procedure without RETURN"
 msgstr "控制流程到达触发器/存储过程的结束部分,但是没有看到RETURN"
 
-#: pl_exec.c:815
+#: pl_exec.c:794
 #, c-format
 msgid "trigger procedure cannot return a set"
 msgstr "触发器存储过程无法返回集合"
 
-#: pl_exec.c:837
+#: pl_exec.c:816
 msgid ""
 "returned row structure does not match the structure of the triggering table"
 msgstr "所返回的记录结构与触发表的结构不匹配"
@@ -169,7 +164,7 @@ msgstr "所返回的记录结构与触发表的结构不匹配"
 #. translator: last %s is a phrase such as "during statement block
 #. local variable initialization"
 #.
-#: pl_exec.c:993
+#: pl_exec.c:954
 #, c-format
 msgid "PL/pgSQL function %s line %d %s"
 msgstr "PL/pgSQL 函数%s在第%d行%s"
@@ -177,611 +172,630 @@ msgstr "PL/pgSQL 函数%s在第%d行%s"
 #. translator: last %s is a phrase such as "while storing call
 #. arguments into local variables"
 #.
-#: pl_exec.c:1004
+#: pl_exec.c:965
 #, c-format
 msgid "PL/pgSQL function %s %s"
 msgstr "PL/pgSQL 函数%s %s"
 
 #. translator: last %s is a plpgsql statement type name
-#: pl_exec.c:1012
+#: pl_exec.c:973
 #, c-format
 msgid "PL/pgSQL function %s line %d at %s"
 msgstr "在%3$s的第%2$d行的PL/pgSQL函数%1$s"
 
-#: pl_exec.c:1018
+#: pl_exec.c:979
 #, c-format
 msgid "PL/pgSQL function %s"
 msgstr "PL/pgSQL函数 %s"
 
-#: pl_exec.c:1129
+#: pl_exec.c:1089
 msgid "during statement block local variable initialization"
 msgstr "在初始化语句块的局部变量期间"
 
-#: pl_exec.c:1169
+#: pl_exec.c:1128
 #, c-format
 msgid "variable \"%s\" declared NOT NULL cannot default to NULL"
 msgstr "声明为NOT NULL的变量\"%s\"无法将缺省值设为NULL"
 
-#: pl_exec.c:1219
+#: pl_exec.c:1178
 msgid "during statement block entry"
 msgstr "在进入语句块期间"
 
-#: pl_exec.c:1240
+#: pl_exec.c:1199
 msgid "during statement block exit"
 msgstr "在退出语句块期间"
 
-#: pl_exec.c:1283
+#: pl_exec.c:1242
 msgid "during exception cleanup"
 msgstr "在清理异常期间"
 
-#: pl_exec.c:1634
+#: pl_exec.c:1593
 #, c-format
 msgid "GET STACKED DIAGNOSTICS cannot be used outside an exception handler"
 msgstr "GET STACKED DIAGNOSTICS不能用于异常处理之外"
 
-#: pl_exec.c:1838
+#: pl_exec.c:1789
 #, c-format
 msgid "case not found"
 msgstr "没有找到CASE"
 
-#: pl_exec.c:1839
+#: pl_exec.c:1790
 #, c-format
 msgid "CASE statement is missing ELSE part."
 msgstr "在CASE语句结构中丢失ELSE部分"
 
-#: pl_exec.c:1993
+#: pl_exec.c:1944
 #, c-format
 msgid "lower bound of FOR loop cannot be null"
 msgstr "FOR循环的低位边界不能为空"
 
-#: pl_exec.c:2009
+#: pl_exec.c:1960
 #, c-format
 msgid "upper bound of FOR loop cannot be null"
 msgstr "FOR循环的高位边界不能为空"
 
-#: pl_exec.c:2027
+#: pl_exec.c:1978
 #, c-format
 msgid "BY value of FOR loop cannot be null"
 msgstr "FOR循环的BY值不能为空"
 
-#: pl_exec.c:2033
+#: pl_exec.c:1984
 #, c-format
 msgid "BY value of FOR loop must be greater than zero"
 msgstr "FOR循环的BY值必须大于0"
 
-#: pl_exec.c:2203 pl_exec.c:3963
+#: pl_exec.c:2153 pl_exec.c:3912
 #, c-format
 msgid "cursor \"%s\" already in use"
 msgstr "游标\"%s\"已经在使用"
 
-#: pl_exec.c:2226 pl_exec.c:4025
+#: pl_exec.c:2176 pl_exec.c:3974
 #, c-format
 msgid "arguments given for cursor without arguments"
 msgstr "给不带有参数的游标指定参数"
 
-#: pl_exec.c:2245 pl_exec.c:4044
+#: pl_exec.c:2195 pl_exec.c:3993
 #, c-format
 msgid "arguments required for cursor"
 msgstr "游标需要参数"
 
-#: pl_exec.c:2330
+#: pl_exec.c:2280
 #, c-format
 msgid "FOREACH expression must not be null"
 msgstr "FOREACH表达式不能为空"
 
-#: pl_exec.c:2336
+#: pl_exec.c:2286
 #, c-format
 msgid "FOREACH expression must yield an array, not type %s"
 msgstr "FOREACH表达式的结果必须是数组, 而不是类型 %s"
 
-#: pl_exec.c:2353
+#: pl_exec.c:2303
 #, c-format
 msgid "slice dimension (%d) is out of the valid range 0..%d"
 msgstr "索引维数(%d)超出有效范围: 0..%d"
 
-#: pl_exec.c:2380
+#: pl_exec.c:2330
 #, c-format
 msgid "FOREACH ... SLICE loop variable must be of an array type"
 msgstr "FOREACH ... SLICE循环变量必须属于数组类型"
 
-#: pl_exec.c:2384
+#: pl_exec.c:2334
 #, c-format
 msgid "FOREACH loop variable must not be of an array type"
 msgstr "FOREACH循环变量不能为数组类型"
 
-#: pl_exec.c:2572 pl_exec.c:2654 pl_exec.c:2821
+#: pl_exec.c:2522 pl_exec.c:2604 pl_exec.c:2771
 #, c-format
 msgid ""
 "cannot return non-composite value from function returning composite type"
 msgstr "返回值为组合类型的函数不能返回非组合型的值"
 
-#: pl_exec.c:2698 pl_gram.y:3112
+#: pl_exec.c:2648 pl_gram.y:3161
 #, c-format
 msgid "cannot use RETURN NEXT in a non-SETOF function"
 msgstr "无法在非SETOF函数中使用RETURN NEXT"
 
-#: pl_exec.c:2732 pl_exec.c:2863
+#: pl_exec.c:2682 pl_exec.c:2813
 #, c-format
 msgid "wrong result type supplied in RETURN NEXT"
 msgstr "在RETURN NEXT中提供了错误的结果类型"
 
-#: pl_exec.c:2761 pl_exec.c:4434 pl_exec.c:4762 pl_exec.c:4788 pl_exec.c:4854
-#: pl_exec.c:4873 pl_exec.c:4941 pl_exec.c:4964
+#: pl_exec.c:2711 pl_exec.c:4382 pl_exec.c:4711 pl_exec.c:4737 pl_exec.c:4803
+#: pl_exec.c:4822 pl_exec.c:4890 pl_exec.c:4913
 #, c-format
 msgid "record \"%s\" is not assigned yet"
 msgstr "记录 \"%s\"还没有分配"
 
-#: pl_exec.c:2763 pl_exec.c:4436 pl_exec.c:4764 pl_exec.c:4790 pl_exec.c:4856
-#: pl_exec.c:4875 pl_exec.c:4943 pl_exec.c:4966
+#: pl_exec.c:2713 pl_exec.c:4384 pl_exec.c:4713 pl_exec.c:4739 pl_exec.c:4805
+#: pl_exec.c:4824 pl_exec.c:4892 pl_exec.c:4915
 #, c-format
 msgid "The tuple structure of a not-yet-assigned record is indeterminate."
 msgstr "未分配记录的元组结构未确定."
 
-#: pl_exec.c:2767 pl_exec.c:2787
+#: pl_exec.c:2717 pl_exec.c:2737
 #, c-format
 msgid "wrong record type supplied in RETURN NEXT"
 msgstr "在RETURN NEXT中提供了错误的记录类型"
 
-#: pl_exec.c:2882
+#: pl_exec.c:2832
 #, c-format
 msgid "RETURN NEXT must have a parameter"
 msgstr "RETURN NEXT必须有一个参数"
 
-#: pl_exec.c:2915 pl_gram.y:3174
+#: pl_exec.c:2865 pl_gram.y:3223
 #, c-format
 msgid "cannot use RETURN QUERY in a non-SETOF function"
 msgstr "无法在非SETOF函数中使用RETURN QUERY"
 
-#: pl_exec.c:2935
+#: pl_exec.c:2886
 msgid "structure of query does not match function result type"
 msgstr "查询的结构与函数的返回类型不匹配"
 
-#: pl_exec.c:3015 pl_exec.c:3145
+#: pl_exec.c:2966 pl_exec.c:3096
 #, c-format
 msgid "RAISE option already specified: %s"
 msgstr "已经指定了RAISE选项:%s"
 
-#: pl_exec.c:3048
+#: pl_exec.c:2999
 #, c-format
 msgid "RAISE without parameters cannot be used outside an exception handler"
 msgstr "不带有参数的RAISE不能在异常处理的外部使用"
 
-#: pl_exec.c:3135
+#: pl_exec.c:3086
 #, c-format
 msgid "RAISE statement option cannot be null"
 msgstr "RAISE语句选项不能为空"
 
-#: pl_exec.c:3206
+#: pl_exec.c:3155
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: pl_exec.c:3279
+#: pl_exec.c:3226
 #, c-format
-#| msgid "Password encryption failed.\n"
 msgid "assertion failed"
 msgstr "断言失败"
 
-#: pl_exec.c:3469 pl_exec.c:3613 pl_exec.c:3802
+#: pl_exec.c:3418 pl_exec.c:3562 pl_exec.c:3751
 #, c-format
 msgid "cannot COPY to/from client in PL/pgSQL"
 msgstr "无法在PL/pgSQL中从客户端或向客户端使用COPY命令"
 
-#: pl_exec.c:3473 pl_exec.c:3617 pl_exec.c:3806
+#: pl_exec.c:3422 pl_exec.c:3566 pl_exec.c:3755
 #, c-format
 msgid "cannot begin/end transactions in PL/pgSQL"
 msgstr "无法在PL/pgSQL中无法使用begin/end事务"
 
-#: pl_exec.c:3474 pl_exec.c:3618 pl_exec.c:3807
+#: pl_exec.c:3423 pl_exec.c:3567 pl_exec.c:3756
 #, c-format
 msgid "Use a BEGIN block with an EXCEPTION clause instead."
 msgstr "使用带有一个EXCEPTION子句的BEGIN代码块."
 
-#: pl_exec.c:3641 pl_exec.c:3831
+#: pl_exec.c:3590 pl_exec.c:3780
 #, c-format
 msgid "INTO used with a command that cannot return data"
 msgstr "使用了带有无法返回数据的命令的INTO"
 
-#: pl_exec.c:3669 pl_exec.c:3859
+#: pl_exec.c:3618 pl_exec.c:3808
 #, c-format
 msgid "query returned no rows"
 msgstr "查询没有返回记录"
 
-#: pl_exec.c:3688 pl_exec.c:3878
+#: pl_exec.c:3637 pl_exec.c:3827
 #, c-format
 msgid "query returned more than one row"
 msgstr "查询返回多条记录"
 
-#: pl_exec.c:3705
+#: pl_exec.c:3654
 #, c-format
 msgid "query has no destination for result data"
 msgstr "对于结果数据,查询没有目标"
 
-#: pl_exec.c:3706
+#: pl_exec.c:3655
 #, c-format
 msgid "If you want to discard the results of a SELECT, use PERFORM instead."
 msgstr "如果您想要放弃SELECT语句的结果,请使用PERFORM."
 
-#: pl_exec.c:3738 pl_exec.c:7026
+#: pl_exec.c:3687 pl_exec.c:7128
 #, c-format
 msgid "query string argument of EXECUTE is null"
 msgstr "EXECUTE的查询字符串参数是空值"
 
-#: pl_exec.c:3794
+#: pl_exec.c:3743
 #, c-format
 msgid "EXECUTE of SELECT ... INTO is not implemented"
 msgstr "没有执行EXECUTE of SELECT ... INTO "
 
-#: pl_exec.c:3795
+#: pl_exec.c:3744
 #, c-format
 msgid ""
 "You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE ... AS "
 "instead."
 msgstr "您可以使用EXECUTE ... INTO或者EXECUTE CREATE TABLE ... AS语句来替代"
 
-#: pl_exec.c:4105 pl_exec.c:4197
+#: pl_exec.c:4056 pl_exec.c:4148
 #, c-format
 msgid "cursor variable \"%s\" is null"
 msgstr "游标变量\"%s\"是空的"
 
-#: pl_exec.c:4112 pl_exec.c:4204
+#: pl_exec.c:4063 pl_exec.c:4155
 #, c-format
 msgid "cursor \"%s\" does not exist"
 msgstr "游标 \"%s\" 不存在"
 
-#: pl_exec.c:4126
+#: pl_exec.c:4077
 #, c-format
 msgid "relative or absolute cursor position is null"
 msgstr "游标的相对或绝对位置是空的"
 
-#: pl_exec.c:4306
+#: pl_exec.c:4257
 #, c-format
 msgid "null value cannot be assigned to variable \"%s\" declared NOT NULL"
 msgstr "不能将声明为NOT NULL的变量\"%s\" 分配空值"
 
-#: pl_exec.c:4378
+#: pl_exec.c:4326
 #, c-format
 msgid "cannot assign non-composite value to a row variable"
 msgstr "无法将非组合值分配给记录变量"
 
-#: pl_exec.c:4402
+#: pl_exec.c:4350
 #, c-format
 msgid "cannot assign non-composite value to a record variable"
 msgstr "无法将非组合值分配给记录类型变量"
 
-#: pl_exec.c:4545
+#: pl_exec.c:4493
 #, c-format
 msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
 msgstr "数组维数(%d)超过了最大允许值(%d)"
 
-#: pl_exec.c:4577
+#: pl_exec.c:4525
 #, c-format
 msgid "subscripted object is not an array"
 msgstr "下标对象不是一个数组"
 
-#: pl_exec.c:4614
+#: pl_exec.c:4562
 #, c-format
 msgid "array subscript in assignment must not be null"
 msgstr "在赋值中数组下标不能为空"
 
-#: pl_exec.c:5080
+#: pl_exec.c:5029
 #, c-format
 msgid "query \"%s\" did not return data"
 msgstr "查询\"%s\"没有返回数据"
 
-#: pl_exec.c:5088
+#: pl_exec.c:5037
 #, c-format
 msgid "query \"%s\" returned %d column"
 msgid_plural "query \"%s\" returned %d columns"
 msgstr[0] "查询\"%s\"返回%d列"
 
-#: pl_exec.c:5115
+#: pl_exec.c:5064
 #, c-format
 msgid "query \"%s\" returned more than one row"
 msgstr "查询\"%s\"返回多条数据"
 
-#: pl_exec.c:5170
+#: pl_exec.c:5128
 #, c-format
 msgid "query \"%s\" is not a SELECT"
 msgstr "查询 \"%s\"不是SELECT语句"
 
-#: pl_funcs.c:218
+#: pl_funcs.c:237
 msgid "statement block"
 msgstr "语句块"
 
-#: pl_funcs.c:220
+#: pl_funcs.c:239
 msgid "assignment"
 msgstr "赋值"
 
-#: pl_funcs.c:230
+#: pl_funcs.c:249
 msgid "FOR with integer loop variable"
 msgstr "带有整型循环变量的FOR语句"
 
-#: pl_funcs.c:232
+#: pl_funcs.c:251
 msgid "FOR over SELECT rows"
 msgstr "在SELECT记录上的FOR语句"
 
-#: pl_funcs.c:234
+#: pl_funcs.c:253
 msgid "FOR over cursor"
 msgstr "在游标上运行的FOR语句"
 
-#: pl_funcs.c:236
+#: pl_funcs.c:255
 msgid "FOREACH over array"
 msgstr "在数组上运行的FOREACH语句"
 
-#: pl_funcs.c:250
+#: pl_funcs.c:269
 msgid "SQL statement"
 msgstr "SQL语句"
 
-#: pl_funcs.c:254
+#: pl_funcs.c:273
 msgid "FOR over EXECUTE statement"
 msgstr "在EXECUTE语句上的FOR语句"
 
-#: pl_gram.y:472
+#: pl_gram.y:473
 #, c-format
 msgid "block label must be placed before DECLARE, not after"
 msgstr "代码块标签必须放在DECLARE的前面,而不是后面"
 
-#: pl_gram.y:492
+#: pl_gram.y:493
 #, c-format
 msgid "collations are not supported by type %s"
 msgstr "类型 %s不支持校对函数"
 
-#: pl_gram.y:507
+#: pl_gram.y:508
 #, c-format
 msgid "row or record variable cannot be CONSTANT"
 msgstr "记录或者记录类型变量不能是CONSTANT类型"
 
-#: pl_gram.y:517
+#: pl_gram.y:518
 #, c-format
 msgid "row or record variable cannot be NOT NULL"
 msgstr "记录或者记录类型变量不能是NOT NULL"
 
-#: pl_gram.y:528
+#: pl_gram.y:529
 #, c-format
 msgid "default value for row or record variable is not supported"
 msgstr "不支持为记录或记录类型变量设置缺省值"
 
-#: pl_gram.y:673 pl_gram.y:688 pl_gram.y:714
+#: pl_gram.y:674 pl_gram.y:689 pl_gram.y:715
 #, c-format
 msgid "variable \"%s\" does not exist"
 msgstr "变量 \"%s\" 不存在"
 
-#: pl_gram.y:732 pl_gram.y:760
+#: pl_gram.y:733 pl_gram.y:761
 msgid "duplicate declaration"
 msgstr "重复声明"
 
-#: pl_gram.y:743 pl_gram.y:771
+#: pl_gram.y:744 pl_gram.y:772
 #, c-format
 msgid "variable \"%s\" shadows a previously defined variable"
 msgstr "变量\"%s\"隐藏了前一个已定义的变量"
 
-#: pl_gram.y:950
+#: pl_gram.y:951
 #, c-format
 msgid "diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS"
 msgstr "诊断项 %s 不允许出现在GET STACKED DIAGNOSTICS的结果中"
 
-#: pl_gram.y:968
+#: pl_gram.y:969
 #, c-format
 msgid "diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS"
 msgstr "诊断项 %s 不允许出现在GET CURRENT DIAGNOSTICS的结果中"
 
-#: pl_gram.y:1066
+#: pl_gram.y:1067
 msgid "unrecognized GET DIAGNOSTICS item"
 msgstr "无法识别的项GET DIAGNOSTICS"
 
-#: pl_gram.y:1077 pl_gram.y:3361
+#: pl_gram.y:1078 pl_gram.y:3410
 #, c-format
 msgid "\"%s\" is not a scalar variable"
 msgstr "\"%s\" 不是一个标量变量"
 
-#: pl_gram.y:1329 pl_gram.y:1523
+#: pl_gram.y:1330 pl_gram.y:1524
 #, c-format
 msgid ""
 "loop variable of loop over rows must be a record or row variable or list of "
 "scalar variables"
 msgstr "在记录集上进行循环的循环变量必须是记录或记录类型变量或标量变量的列表"
 
-#: pl_gram.y:1363
+#: pl_gram.y:1364
 #, c-format
 msgid "cursor FOR loop must have only one target variable"
 msgstr "游标的FOR循环只能有一个目标变量"
 
-#: pl_gram.y:1370
+#: pl_gram.y:1371
 #, c-format
 msgid "cursor FOR loop must use a bound cursor variable"
 msgstr "游标的FOR循环必须使用有界游标变量"
 
-#: pl_gram.y:1454
+#: pl_gram.y:1455
 #, c-format
 msgid "integer FOR loop must have only one target variable"
 msgstr "整数FOR循环必须只能有一个目标变量"
 
-#: pl_gram.y:1490
+#: pl_gram.y:1491
 #, c-format
 msgid "cannot specify REVERSE in query FOR loop"
 msgstr "无法在查询FOR循环中指定REVERSE "
 
-#: pl_gram.y:1637
+#: pl_gram.y:1638
 #, c-format
 msgid "loop variable of FOREACH must be a known variable or list of variables"
 msgstr "FOREACH的循环变量必须是已知类型或者是变量列表"
 
-#: pl_gram.y:1689 pl_gram.y:1726 pl_gram.y:1774 pl_gram.y:2814 pl_gram.y:2896
-#: pl_gram.y:3007 pl_gram.y:3763
+#: pl_gram.y:1679
+#, c-format
+msgid ""
+"there is no label \"%s\" attached to any block or loop enclosing this "
+"statement"
+msgstr "在任何包围这个语句的块或者循环上都没有附着标签\"%s\""
+
+#: pl_gram.y:1687
+#, c-format
+#| msgid "portal \"%s\" cannot be run"
+msgid "block label \"%s\" cannot be used in CONTINUE"
+msgstr "块标签 \"%s\" 不能被用在 CONTINUE 中"
+
+#: pl_gram.y:1702
+#, c-format
+#| msgid "CONTINUE cannot be used outside a loop"
+msgid "EXIT cannot be used outside a loop, unless it has a label"
+msgstr "不能在循环外部使用EXIT,除非该循环有一个标签"
+
+#: pl_gram.y:1703
+#, c-format
+msgid "CONTINUE cannot be used outside a loop"
+msgstr "在循环的外部不能使用CONTINUE"
+
+#: pl_gram.y:1727 pl_gram.y:1764 pl_gram.y:1812 pl_gram.y:2863 pl_gram.y:2945
+#: pl_gram.y:3056 pl_gram.y:3812
 msgid "unexpected end of function definition"
 msgstr "在函数定义中意外出现的结束标志"
 
-#: pl_gram.y:1794 pl_gram.y:1818 pl_gram.y:1834 pl_gram.y:1840 pl_gram.y:1954
-#: pl_gram.y:1962 pl_gram.y:1976 pl_gram.y:2071 pl_gram.y:2252 pl_gram.y:2335
-#: pl_gram.y:2486 pl_gram.y:3604 pl_gram.y:3665 pl_gram.y:3744
+#: pl_gram.y:1832 pl_gram.y:1856 pl_gram.y:1872 pl_gram.y:1878 pl_gram.y:1992
+#: pl_gram.y:2000 pl_gram.y:2014 pl_gram.y:2109 pl_gram.y:2290 pl_gram.y:2384
+#: pl_gram.y:2535 pl_gram.y:3653 pl_gram.y:3714 pl_gram.y:3793
 msgid "syntax error"
 msgstr "语法错误"
 
-#: pl_gram.y:1822 pl_gram.y:1824 pl_gram.y:2256 pl_gram.y:2258
+#: pl_gram.y:1860 pl_gram.y:1862 pl_gram.y:2294 pl_gram.y:2296
 msgid "invalid SQLSTATE code"
 msgstr "无效的SQLSTATE代码"
 
-#: pl_gram.y:2018
+#: pl_gram.y:2056
 msgid "syntax error, expected \"FOR\""
 msgstr "语法错误,期望\"FOR\""
 
-#: pl_gram.y:2080
+#: pl_gram.y:2118
 #, c-format
 msgid "FETCH statement cannot return multiple rows"
 msgstr "FETCH语句无法返回多条记录"
 
-#: pl_gram.y:2136
+#: pl_gram.y:2174
 #, c-format
 msgid "cursor variable must be a simple variable"
 msgstr "游标变量必须是一个简单变量"
 
-#: pl_gram.y:2142
+#: pl_gram.y:2180
 #, c-format
 msgid "variable \"%s\" must be of type cursor or refcursor"
 msgstr "变量\"%s\" 必须属于游标类型或refcursor类型"
 
-#: pl_gram.y:2310
-msgid "label does not exist"
-msgstr "标签不存在"
-
-#: pl_gram.y:2457 pl_gram.y:2468
+#: pl_gram.y:2506 pl_gram.y:2517
 #, c-format
 msgid "\"%s\" is not a known variable"
 msgstr "\"%s\" 不是一个已知变量"
 
-#: pl_gram.y:2572 pl_gram.y:2582 pl_gram.y:2738
+#: pl_gram.y:2621 pl_gram.y:2631 pl_gram.y:2787
 msgid "mismatched parentheses"
 msgstr "括号不匹配"
 
-#: pl_gram.y:2586
+#: pl_gram.y:2635
 #, c-format
 msgid "missing \"%s\" at end of SQL expression"
 msgstr "在SQL表达式的结尾处丢失\"%s\""
 
-#: pl_gram.y:2592
+#: pl_gram.y:2641
 #, c-format
 msgid "missing \"%s\" at end of SQL statement"
 msgstr "在SQL语句的结尾处丢失\"%s\""
 
-#: pl_gram.y:2609
+#: pl_gram.y:2658
 msgid "missing expression"
 msgstr "缺少表达式"
 
-#: pl_gram.y:2611
+#: pl_gram.y:2660
 msgid "missing SQL statement"
 msgstr "缺少SQL语句"
 
-#: pl_gram.y:2740
+#: pl_gram.y:2789
 msgid "incomplete data type declaration"
 msgstr "未完成的数据类型声明"
 
-#: pl_gram.y:2763
+#: pl_gram.y:2812
 msgid "missing data type declaration"
 msgstr "丢失数据类型声明"
 
-#: pl_gram.y:2819
+#: pl_gram.y:2868
 msgid "INTO specified more than once"
 msgstr "多次指定INTO"
 
-#: pl_gram.y:2988
+#: pl_gram.y:3037
 msgid "expected FROM or IN"
 msgstr "期望关键字FROM或IN"
 
-#: pl_gram.y:3048
+#: pl_gram.y:3097
 #, c-format
 msgid "RETURN cannot have a parameter in function returning set"
 msgstr "在返回为集合的函数中RETURN不能带有参数"
 
-#: pl_gram.y:3049
+#: pl_gram.y:3098
 #, c-format
 msgid "Use RETURN NEXT or RETURN QUERY."
 msgstr "使用RETURN NEXT或RETURN QUERY."
 
-#: pl_gram.y:3057
+#: pl_gram.y:3106
 #, c-format
 msgid "RETURN cannot have a parameter in function with OUT parameters"
 msgstr "在带有输出参数的函数中RETURN不能有参数"
 
-#: pl_gram.y:3066
+#: pl_gram.y:3115
 #, c-format
 msgid "RETURN cannot have a parameter in function returning void"
 msgstr "在返回为空的函数中RETURN不能有参数"
 
-#: pl_gram.y:3126
+#: pl_gram.y:3175
 #, c-format
 msgid "RETURN NEXT cannot have a parameter in function with OUT parameters"
 msgstr "在带有输出参数的函数中RETURN NEXT不能有参数"
 
-#: pl_gram.y:3230
+#: pl_gram.y:3279
 #, c-format
 msgid "\"%s\" is declared CONSTANT"
 msgstr "\"%s\"被声明为常量"
 
-#: pl_gram.y:3292 pl_gram.y:3304
+#: pl_gram.y:3341 pl_gram.y:3353
 #, c-format
 msgid "record or row variable cannot be part of multiple-item INTO list"
 msgstr "记录或行类型变量不能作为带有多个项的INTO列表中的一部分"
 
-#: pl_gram.y:3349
+#: pl_gram.y:3398
 #, c-format
 msgid "too many INTO variables specified"
 msgstr "在INTO后面指定了太多的变量"
 
-#: pl_gram.y:3557
+#: pl_gram.y:3606
 #, c-format
 msgid "end label \"%s\" specified for unlabelled block"
 msgstr "为没有标签的代码块指定结束标签\"%s\" "
 
-#: pl_gram.y:3564
+#: pl_gram.y:3613
 #, c-format
 msgid "end label \"%s\" differs from block's label \"%s\""
 msgstr "结束标签\"%s\" 与代码块标签\"%s\"不同"
 
-#: pl_gram.y:3599
+#: pl_gram.y:3648
 #, c-format
 msgid "cursor \"%s\" has no arguments"
 msgstr "游标\"%s\" 没有参数"
 
-#: pl_gram.y:3613
+#: pl_gram.y:3662
 #, c-format
 msgid "cursor \"%s\" has arguments"
 msgstr "游标\"%s\"有参数"
 
-#: pl_gram.y:3655
+#: pl_gram.y:3704
 #, c-format
 msgid "cursor \"%s\" has no argument named \"%s\""
 msgstr "游标\"%s\" 没有名为 \"%s\"的参数"
 
-#: pl_gram.y:3675
+#: pl_gram.y:3724
 #, c-format
 msgid "value for parameter \"%s\" of cursor \"%s\" specified more than once"
 msgstr "游标\"%2$s\"中的参数值\"%1$s\"指定了多次"
 
-#: pl_gram.y:3700
+#: pl_gram.y:3749
 #, c-format
 msgid "not enough arguments for cursor \"%s\""
 msgstr "游标 \"%s\"没有足够的参数"
 
-#: pl_gram.y:3707
+#: pl_gram.y:3756
 #, c-format
 msgid "too many arguments for cursor \"%s\""
 msgstr "游标 \"%s\"给定的参数太多"
 
-#: pl_gram.y:3795
+#: pl_gram.y:3844
 msgid "unrecognized RAISE statement option"
 msgstr "无法识别的RAISE语句选项"
 
-#: pl_gram.y:3799
+#: pl_gram.y:3848
 msgid "syntax error, expected \"=\""
 msgstr "语法错误,期望\"=\""
 
-#: pl_gram.y:3840
+#: pl_gram.y:3889
 #, c-format
 msgid "too many parameters specified for RAISE"
 msgstr "为RAISE子句指定参数过多"
 
-#: pl_gram.y:3844
+#: pl_gram.y:3893
 #, c-format
 msgid "too few parameters specified for RAISE"
 msgstr "为RAISE子句指定参数过少"
@@ -822,109 +836,112 @@ msgstr "%s 在输入的末尾"
 msgid "%s at or near \"%s\""
 msgstr "%s 在 \"%s\" 或附近的"
 
-#~ msgid "relation \"%s.%s\" does not exist"
-#~ msgstr "关系 \"%s.%s\" 不存在"
-
-#~ msgid "expected \"[\""
-#~ msgstr "期望 \"[\""
-
-#~ msgid "row \"%s\" has no field \"%s\""
-#~ msgstr "记录\"%s\"没有字段\"%s\""
+#~ msgid "EXECUTE statement"
+#~ msgstr "EXECUTE 语句"
 
-#~ msgid "row \"%s.%s\" has no field \"%s\""
-#~ msgstr "记录\"%s.%s\"没有字段\"%s\""
+#~ msgid ""
+#~ "RETURN must specify a record or row variable in function returning row"
+#~ msgstr "在返回记录的函数中RETURN必须制定一个记录或记录类型变量"
 
-#~ msgid "type of \"%s\" does not match that when preparing the plan"
-#~ msgstr " \"%s\"类型与正在准备计划时的类型不匹配"
+#~ msgid ""
+#~ "RETURN NEXT must specify a record or row variable in function returning "
+#~ "row"
+#~ msgstr "在返回记录的函数中RETURN NEXT必须指定记录或记录类型变量"
 
-#~ msgid "type of \"%s.%s\" does not match that when preparing the plan"
-#~ msgstr " \"%s.%s\"类型与正在准备计划时的类型不匹配"
+#~ msgid "unterminated dollar-quoted string"
+#~ msgstr "未结束的$引用字符串"
 
-#~ msgid "type of tg_argv[%d] does not match that when preparing the plan"
-#~ msgstr "tg_argv[%d]的类型与正在准备计划时的类型不匹配"
+#~ msgid "unterminated quoted string"
+#~ msgstr "未结束的引用字符串"
 
-#~ msgid "N/A (dropped column)"
-#~ msgstr "N/A (已删除的列)"
+#~ msgid "unterminated /* comment"
+#~ msgstr "/* 注释没有结束"
 
-#~ msgid ""
-#~ "Number of returned columns (%d) does not match expected column count (%d)."
-#~ msgstr "所返回列的数量(%d列)与所期望列的数量(%d)不匹配."
+#~ msgid "unterminated quoted identifier"
+#~ msgstr "未结束的引用标识符"
 
-#~ msgid "Returned type %s does not match expected type %s in column \"%s\"."
-#~ msgstr "所返回的类型%1$s与列\"%3$s\"中期待的类型%2$s不匹配."
+#~ msgid "qualified identifier cannot be used here: %s"
+#~ msgstr "在这里不能使用限定标识符:%s"
 
-#~ msgid "only positional parameters can be aliased"
-#~ msgstr "å\8fªæ\9c\89å·²å®\9aä½\8dç\9a\84å\8f\82æ\95°è\83½ä½¿ç\94¨å\8c\96å\90\8d"
+#~ msgid "unterminated \" in identifier: %s"
+#~ msgstr "å\9c¨æ \87è¯\86符中æ\9cªç»\93æ\9d\9fç\9a\84\"ï¼\9a%s"
 
-#~ msgid "function has no parameter \"%s\""
-#~ msgstr "å\87½æ\95°ä¸­æ²¡æ\9c\89å\8f\82æ\95°\"%s\""
+#~ msgid "variable \"%s\" does not exist in the current block"
+#~ msgstr "å\9c¨å½\93å\89\8d代ç \81å\9d\97中ä¸\8då­\98å\9c¨å\8f\98é\87\8f \"%s\""
 
-#~ msgid "expected an integer variable"
-#~ msgstr "期望一个整型变量"
+#~ msgid "expected \")\""
+#~ msgstr "期望\")\""
 
-#~ msgid "syntax error at \"%s\""
-#~ msgstr "在\"%s\"上出现语法错误"
+#~ msgid "string literal in PL/PgSQL function \"%s\" near line %d"
+#~ msgstr "在PL/PgSQL函数 \"%s\" 第%d行附近的字符串常量"
 
-#~ msgid "Expected \"FOR\", to open a cursor for an unbound cursor variable."
-#~ msgstr "期望\"FOR\"来为无界游标变量打开游标"
+#~ msgid "SQL statement in PL/PgSQL function \"%s\" near line %d"
+#~ msgstr "在PL/PgSQL函数 \"%s\" 第%d行附近的SQL语句"
 
-#~ msgid "expected a cursor or refcursor variable"
-#~ msgstr "期望游标或refcursor类型变量"
+#~ msgid ""
+#~ "Expected record variable, row variable, or list of scalar variables "
+#~ "following INTO."
+#~ msgstr "在INTO后期望记录类型变量,记录变量或标量变量的列表."
 
-#~ msgid "too many variables specified in SQL statement"
-#~ msgstr "在SQL语句中指定了太多的变量"
+#~ msgid "cannot assign to tg_argv"
+#~ msgstr "无法分配到tg_argv"
 
 #~ msgid ""
 #~ "RETURN cannot have a parameter in function returning set; use RETURN NEXT "
 #~ "or RETURN QUERY"
 #~ msgstr "在返回集合的函数中RETURN不能有参数;使用RETURN NEXT或RETURN QUERY"
 
-#~ msgid "cannot assign to tg_argv"
-#~ msgstr "无法分配到tg_argv"
+#~ msgid "too many variables specified in SQL statement"
+#~ msgstr "在SQL语句中指定了太多的变量"
 
-#~ msgid ""
-#~ "Expected record variable, row variable, or list of scalar variables "
-#~ "following INTO."
-#~ msgstr "在INTO后期望记录类型变量,记录变量或标量变量的列表."
+#~ msgid "expected a cursor or refcursor variable"
+#~ msgstr "期望游标或refcursor类型变量"
 
-#~ msgid "SQL statement in PL/PgSQL function \"%s\" near line %d"
-#~ msgstr "在PL/PgSQL函数 \"%s\" 第%d行附近的SQL语句"
+#~ msgid "Expected \"FOR\", to open a cursor for an unbound cursor variable."
+#~ msgstr "期望\"FOR\"来为无界游标变量打开游标"
 
-#~ msgid "string literal in PL/PgSQL function \"%s\" near line %d"
-#~ msgstr "在PL/PgSQL函数 \"%s\" 第%d行附近的字符串常量"
+#~ msgid "syntax error at \"%s\""
+#~ msgstr "在\"%s\"上出现语法错误"
 
-#~ msgid "expected \")\""
-#~ msgstr "期望\")\""
+#~ msgid "expected an integer variable"
+#~ msgstr "期望一个整型变量"
 
-#~ msgid "variable \"%s\" does not exist in the current block"
-#~ msgstr "å\9c¨å½\93å\89\8d代ç \81å\9d\97中ä¸\8då­\98å\9c¨å\8f\98é\87\8f \"%s\""
+#~ msgid "function has no parameter \"%s\""
+#~ msgstr "å\87½æ\95°ä¸­æ²¡æ\9c\89å\8f\82æ\95°\"%s\""
 
-#~ msgid "unterminated \" in identifier: %s"
-#~ msgstr "å\9c¨æ \87è¯\86符中æ\9cªç»\93æ\9d\9fç\9a\84\"ï¼\9a%s"
+#~ msgid "only positional parameters can be aliased"
+#~ msgstr "å\8fªæ\9c\89å·²å®\9aä½\8dç\9a\84å\8f\82æ\95°è\83½ä½¿ç\94¨å\8c\96å\90\8d"
 
-#~ msgid "qualified identifier cannot be used here: %s"
-#~ msgstr "在这里不能使用限定标识符:%s"
+#~ msgid "Returned type %s does not match expected type %s in column \"%s\"."
+#~ msgstr "所返回的类型%1$s与列\"%3$s\"中期待的类型%2$s不匹配."
 
-#~ msgid "unterminated quoted identifier"
-#~ msgstr "未结束的引用标识符"
+#~ msgid ""
+#~ "Number of returned columns (%d) does not match expected column count (%d)."
+#~ msgstr "所返回列的数量(%d列)与所期望列的数量(%d)不匹配."
 
-#~ msgid "unterminated /* comment"
-#~ msgstr "/* 注释没有结束"
+#~ msgid "N/A (dropped column)"
+#~ msgstr "N/A (已删除的列)"
 
-#~ msgid "unterminated quoted string"
-#~ msgstr "未结束的引用字符串"
+#~ msgid "type of tg_argv[%d] does not match that when preparing the plan"
+#~ msgstr "tg_argv[%d]的类型与正在准备计划时的类型不匹配"
 
-#~ msgid "unterminated dollar-quoted string"
-#~ msgstr "未结束的$引用字符串"
+#~ msgid "type of \"%s.%s\" does not match that when preparing the plan"
+#~ msgstr " \"%s.%s\"类型与正在准备计划时的类型不匹配"
 
-#~ msgid ""
-#~ "RETURN NEXT must specify a record or row variable in function returning "
-#~ "row"
-#~ msgstr "在返回记录的函数中RETURN NEXT必须指定记录或记录类型变量"
+#~ msgid "type of \"%s\" does not match that when preparing the plan"
+#~ msgstr " \"%s\"类型与正在准备计划时的类型不匹配"
 
-#~ msgid ""
-#~ "RETURN must specify a record or row variable in function returning row"
-#~ msgstr "在返回记录的函数中RETURN必须制定一个记录或记录类型变量"
+#~ msgid "row \"%s.%s\" has no field \"%s\""
+#~ msgstr "记录\"%s.%s\"没有字段\"%s\""
 
-#~ msgid "EXECUTE statement"
-#~ msgstr "EXECUTE 语句"
+#~ msgid "row \"%s\" has no field \"%s\""
+#~ msgstr "记录\"%s\"没有字段\"%s\""
+
+#~ msgid "expected \"[\""
+#~ msgstr "期望 \"[\""
+
+#~ msgid "relation \"%s.%s\" does not exist"
+#~ msgstr "关系 \"%s.%s\" 不存在"
+
+#~ msgid "label does not exist"
+#~ msgstr "标签不存在"
index df265067f1dee8de1ff2d863a9566a46d1d7d942..d44eb9dd5e11945be11a2beadb45e54d186fa2cb 100644 (file)
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PostgreSQL 9.0\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:37+0000\n"
-"PO-Revision-Date: 2015-12-02 14:49+0800\n"
+"POT-Creation-Date: 2016-04-18 04:37+0000\n"
+"PO-Revision-Date: 2016-05-19 20:47+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
 "Language-Team: Weibin <ssmei_2000@yahoo.com>\n"
 "Language: zh_CN\n"
@@ -18,216 +18,211 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: plpy_cursorobject.c:98
+#: plpy_cursorobject.c:101
 #, c-format
 msgid "plpy.cursor expected a query or a plan"
 msgstr "plpy.cursor期望一个查询或一个计划"
 
-#: plpy_cursorobject.c:171
+#: plpy_cursorobject.c:179
 #, c-format
 msgid "plpy.cursor takes a sequence as its second argument"
 msgstr "plpy.cursor将一个序列作为它的第二个参数"
 
-#: plpy_cursorobject.c:187 plpy_spi.c:217
+#: plpy_cursorobject.c:195 plpy_spi.c:229
 #, c-format
 msgid "could not execute plan"
 msgstr "无法执行计划"
 
-#: plpy_cursorobject.c:190 plpy_spi.c:220
+#: plpy_cursorobject.c:198 plpy_spi.c:232
 #, c-format
 msgid "Expected sequence of %d argument, got %d: %s"
 msgid_plural "Expected sequence of %d arguments, got %d: %s"
 msgstr[0] "期望%d序列参数,但是得到%d: %s"
 
 # sql_help.h:345
-#: plpy_cursorobject.c:340
+#: plpy_cursorobject.c:354
 #, c-format
 msgid "iterating a closed cursor"
 msgstr "遍历一个关闭的游标"
 
-#: plpy_cursorobject.c:348 plpy_cursorobject.c:413
+#: plpy_cursorobject.c:362 plpy_cursorobject.c:427
 #, c-format
 msgid "iterating a cursor in an aborted subtransaction"
 msgstr "在终止的子事务里遍历一个游标"
 
 # sql_help.h:109
-#: plpy_cursorobject.c:405
+#: plpy_cursorobject.c:419
 #, c-format
 msgid "fetch from a closed cursor"
 msgstr "从关闭的游标里获取结果"
 
-#: plpy_cursorobject.c:482
+#: plpy_cursorobject.c:467 plpy_spi.c:438
+#, c-format
+msgid "query result has too many rows to fit in a Python list"
+msgstr "查询结果中的行太多,无法放在一个Python列表中"
+
+#: plpy_cursorobject.c:508
 #, c-format
 msgid "closing a cursor in an aborted subtransaction"
 msgstr "在终止的子事务里关闭一个游标"
 
-#: plpy_elog.c:103 plpy_elog.c:104 plpy_plpymodule.c:419
+#: plpy_elog.c:127 plpy_elog.c:128 plpy_plpymodule.c:513
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: plpy_exec.c:91
+#: plpy_exec.c:140
 #, c-format
 msgid "unsupported set function return mode"
 msgstr "不支持集合函数返回模式"
 
-#: plpy_exec.c:92
+#: plpy_exec.c:141
 #, c-format
-#| msgid ""
-#| "PL/Python set-returning functions only support returning only value per "
-#| "call."
 msgid ""
 "PL/Python set-returning functions only support returning one value per call."
 msgstr "PL/Python集合返回函数只支持在每次调用时返回一个值。"
 
-#: plpy_exec.c:104
+#: plpy_exec.c:154
 #, c-format
 msgid "returned object cannot be iterated"
 msgstr "所返回的对象无法迭代"
 
-#: plpy_exec.c:105
+#: plpy_exec.c:155
 #, c-format
 msgid "PL/Python set-returning functions must return an iterable object."
 msgstr "PL/Python集合返回函数必须返回一个可迭代的对象."
 
-#: plpy_exec.c:130
+#: plpy_exec.c:169
 #, c-format
 msgid "error fetching next item from iterator"
 msgstr "当从迭代器中取回下一个成员时出现错误"
 
-#: plpy_exec.c:165
+#: plpy_exec.c:210
 #, c-format
 msgid "PL/Python function with return type \"void\" did not return None"
 msgstr "返回类型为\"void\"的PL/Python函数不返回None"
 
-#: plpy_exec.c:291 plpy_exec.c:317
+#: plpy_exec.c:374 plpy_exec.c:400
 #, c-format
 msgid "unexpected return value from trigger procedure"
 msgstr "在触发器存储过程出现非期望的返回值"
 
-#: plpy_exec.c:292
+#: plpy_exec.c:375
 #, c-format
 msgid "Expected None or a string."
 msgstr "期望空值或一个字符串"
 
-#: plpy_exec.c:307
+#: plpy_exec.c:390
 #, c-format
 msgid ""
 "PL/Python trigger function returned \"MODIFY\" in a DELETE trigger -- ignored"
 msgstr "在DELETE触发器中的PL/Python 触发器函数返回 \"MODIFY\"  -- 忽略"
 
-#: plpy_exec.c:318
+#: plpy_exec.c:401
 #, c-format
 msgid "Expected None, \"OK\", \"SKIP\", or \"MODIFY\"."
 msgstr "期望None, \"OK\", \"SKIP\", 或\"MODIFY\""
 
-#: plpy_exec.c:399
+#: plpy_exec.c:482
 #, c-format
 msgid "PyList_SetItem() failed, while setting up arguments"
 msgstr "当设置参数的同时, 执行PyList_SetItem()失败"
 
-#: plpy_exec.c:403
+#: plpy_exec.c:486
 #, c-format
 msgid "PyDict_SetItemString() failed, while setting up arguments"
 msgstr "当设置参数的同时, 执行PyDict_SetItemString()失败"
 
-#: plpy_exec.c:415
+#: plpy_exec.c:498
 #, c-format
 msgid ""
 "function returning record called in context that cannot accept type record"
 msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用"
 
-#: plpy_exec.c:453
+#: plpy_exec.c:714
 #, c-format
 msgid "while creating return value"
 msgstr "同时在创建返回值"
 
-#: plpy_exec.c:477
+#: plpy_exec.c:738
 #, c-format
 msgid "could not create new dictionary while building trigger arguments"
 msgstr "在构建触发器参数的同时无法创建新的字典."
 
-#: plpy_exec.c:666
+#: plpy_exec.c:927
 #, c-format
 msgid "TD[\"new\"] deleted, cannot modify row"
 msgstr "TD[\"new\"] 已删除,无法修改记录"
 
-#: plpy_exec.c:671
+#: plpy_exec.c:932
 #, c-format
 msgid "TD[\"new\"] is not a dictionary"
 msgstr "TD[\"new\"]不是一个字典"
 
-#: plpy_exec.c:696
+#: plpy_exec.c:957
 #, c-format
 msgid "TD[\"new\"] dictionary key at ordinal position %d is not a string"
 msgstr "在顺序位置%d的TD[\"new\"]字典键值不是字符串"
 
-#: plpy_exec.c:703
+#: plpy_exec.c:964
 #, c-format
 msgid ""
 "key \"%s\" found in TD[\"new\"] does not exist as a column in the triggering "
 "row"
 msgstr "在 TD[\"new\"]中找到的键 \"%s\"在正在触发的记录中不是作为列而存在."
 
-#: plpy_exec.c:783
+#: plpy_exec.c:1044
 #, c-format
 msgid "while modifying trigger row"
 msgstr "同时正在修改触发器记录"
 
-#: plpy_exec.c:844
+#: plpy_exec.c:1105
 #, c-format
 msgid "forcibly aborting a subtransaction that has not been exited"
 msgstr "强行终止一个还未退出的子事务"
 
-#: plpy_main.c:93
-#, c-format
-msgid "Python major version mismatch in session"
-msgstr "在会话中Python的主版本不匹配"
-
-#: plpy_main.c:94
+#: plpy_main.c:125
 #, c-format
-msgid ""
-"This session has previously used Python major version %d, and it is now "
-"attempting to use Python major version %d."
-msgstr ""
-"这个会话先前已经使用的Python主版本是%d,现在它试图使用的Python主版本是%d "
+msgid "multiple Python libraries are present in session"
+msgstr "会话中存在多个Python库"
 
-#: plpy_main.c:96
+#: plpy_main.c:126
 #, c-format
-msgid "Start a new session to use a different Python major version."
-msgstr "启动一个新的会话来使用一个不同的Python的主要版本"
+#| msgid "Python major version mismatch in session"
+msgid "Only one Python major version can be used in one session."
+msgstr "一个会话中只能使用一个Python主版本."
 
-#: plpy_main.c:111
+#: plpy_main.c:142
 #, c-format
 msgid "untrapped error in initialization"
 msgstr "在初始化过程中出现无法捕获的错误"
 
-#: plpy_main.c:134
+#: plpy_main.c:165
 #, c-format
 msgid "could not import \"__main__\" module"
 msgstr "无法导入模块\"__main__\" "
 
-#: plpy_main.c:139
+#: plpy_main.c:170
 #, c-format
 msgid "could not create globals"
 msgstr "无法创建全局变量"
 
-#: plpy_main.c:143
+#: plpy_main.c:174
 #, c-format
 msgid "could not initialize globals"
 msgstr "无法初始化全局变量"
 
-#: plpy_main.c:348
+#: plpy_main.c:389
 #, c-format
 msgid "PL/Python function \"%s\""
 msgstr "PL/Python函数\"%s\""
 
-#: plpy_main.c:355
+#: plpy_main.c:396
 #, c-format
 msgid "PL/Python anonymous code block"
 msgstr "PL/Python匿名代码块"
 
-#: plpy_planobject.c:126
+#: plpy_planobject.c:123
 #, c-format
 msgid "plan.status takes no arguments"
 msgstr "plan.status不带有参数"
@@ -253,36 +248,53 @@ msgstr "无法创建基本的SPI异常"
 msgid "could not generate SPI exceptions"
 msgstr "无法产生SPI异常"
 
-#: plpy_plpymodule.c:387
+#: plpy_plpymodule.c:421
 #, c-format
 msgid "could not unpack arguments in plpy.elog"
 msgstr "无法解析plpy.elog中的参数"
 
-#: plpy_plpymodule.c:395
+#: plpy_plpymodule.c:430
 msgid "could not parse error message in plpy.elog"
 msgstr "无法解析在plpy.elog中的错误消息"
 
-#: plpy_procedure.c:213
+#: plpy_plpymodule.c:446
+#, c-format
+#| msgid "type \"%s\" is already defined"
+msgid "the message is already specified"
+msgstr "该消息已经被指定"
+
+#: plpy_plpymodule.c:469
+#, c-format
+#| msgid "%s: invalid argument for -x option\n"
+msgid "'%s' is an invalid keyword argument for this function"
+msgstr "对于这个函数,'%s'是一个无效的关键词参数"
+
+#: plpy_plpymodule.c:477 plpy_plpymodule.c:480
+#, c-format
+msgid "invalid SQLSTATE code"
+msgstr "无效的SQLSTATE代码"
+
+#: plpy_procedure.c:232
 #, c-format
 msgid "trigger functions can only be called as triggers"
 msgstr "触发器函数只能以触发器的形式调用"
 
-#: plpy_procedure.c:218
+#: plpy_procedure.c:237
 #, c-format
 msgid "PL/Python functions cannot return type %s"
 msgstr "PL/Python函数不能返回类型%s"
 
-#: plpy_procedure.c:300
+#: plpy_procedure.c:318
 #, c-format
 msgid "PL/Python functions cannot accept type %s"
 msgstr "PL/Python函数不能接受类型%s"
 
-#: plpy_procedure.c:398
+#: plpy_procedure.c:414
 #, c-format
 msgid "could not compile PL/Python function \"%s\""
 msgstr "无法编译PL/Python函数\"%s\""
 
-#: plpy_procedure.c:401
+#: plpy_procedure.c:417
 #, c-format
 msgid "could not compile anonymous PL/Python code block"
 msgstr "无法编译PL/Python中的匿名代码块"
@@ -292,137 +304,137 @@ msgstr "无法编译PL/Python中的匿名代码块"
 msgid "command did not produce a result set"
 msgstr "命令没有产生结果集"
 
-#: plpy_spi.c:57
+#: plpy_spi.c:60
 #, c-format
 msgid "second argument of plpy.prepare must be a sequence"
 msgstr "plpy.prepare的第二个参数必须是一个序列"
 
-#: plpy_spi.c:106
+#: plpy_spi.c:118
 #, c-format
 msgid "plpy.prepare: type name at ordinal position %d is not a string"
 msgstr "plpy.prepare: 在顺序位置%d的类型名称不是string"
 
-#: plpy_spi.c:182
+#: plpy_spi.c:194
 #, c-format
 msgid "plpy.execute expected a query or a plan"
 msgstr "plpy.execute期望一个查询或一个计划"
 
-#: plpy_spi.c:201
+#: plpy_spi.c:213
 #, c-format
 msgid "plpy.execute takes a sequence as its second argument"
 msgstr "plpy.execute将一个序列作为它的第二个参数"
 
-#: plpy_spi.c:325
+#: plpy_spi.c:337
 #, c-format
 msgid "SPI_execute_plan failed: %s"
 msgstr "执行SPI_execute_plan失败: %s"
 
-#: plpy_spi.c:367
+#: plpy_spi.c:379
 #, c-format
 msgid "SPI_execute failed: %s"
 msgstr "SPI_execute执行失败: %s"
 
-#: plpy_subxactobject.c:122
+#: plpy_subxactobject.c:123
 #, c-format
 msgid "this subtransaction has already been entered"
 msgstr "已经进入该子事务"
 
-#: plpy_subxactobject.c:128 plpy_subxactobject.c:180
+#: plpy_subxactobject.c:129 plpy_subxactobject.c:187
 #, c-format
 msgid "this subtransaction has already been exited"
 msgstr "已经退出该子事务"
 
-#: plpy_subxactobject.c:174
+#: plpy_subxactobject.c:181
 #, c-format
 msgid "this subtransaction has not been entered"
 msgstr "该子事务仍没有进入"
 
-#: plpy_subxactobject.c:186
+#: plpy_subxactobject.c:193
 #, c-format
 msgid "there is no subtransaction to exit from"
 msgstr "没有子事务可以退出"
 
-#: plpy_typeio.c:302
+#: plpy_typeio.c:286
 #, c-format
 msgid "could not create new dictionary"
 msgstr "无法创建新的字典"
 
-#: plpy_typeio.c:564
+#: plpy_typeio.c:560
 #, c-format
 msgid "could not import a module for Decimal constructor"
 msgstr "无法为十进制构造函数导入模块"
 
-#: plpy_typeio.c:568
+#: plpy_typeio.c:564
 #, c-format
 msgid "no Decimal attribute in module"
 msgstr "模块中没有小数位属性"
 
-#: plpy_typeio.c:574
+#: plpy_typeio.c:570
 #, c-format
 msgid "conversion from numeric to Decimal failed"
 msgstr "由numeric数值到Decimal小数转换失败"
 
-#: plpy_typeio.c:649
+#: plpy_typeio.c:645
 #, c-format
 msgid "cannot convert multidimensional array to Python list"
 msgstr "无法将多维数组转换为Python列表"
 
-#: plpy_typeio.c:650
+#: plpy_typeio.c:646
 #, c-format
 msgid "PL/Python only supports one-dimensional arrays."
 msgstr "PL/Python只支持使用一维数组"
 
-#: plpy_typeio.c:656
+#: plpy_typeio.c:652
 #, c-format
 msgid "could not create new Python list"
 msgstr "无法创建新的Python列表"
 
-#: plpy_typeio.c:715
+#: plpy_typeio.c:711
 #, c-format
 msgid "could not create bytes representation of Python object"
 msgstr "无法创建Python对象的字节表达式"
 
-#: plpy_typeio.c:820
+#: plpy_typeio.c:822
 #, c-format
 msgid "could not create string representation of Python object"
 msgstr "无法创建Python对象的字符串表达式"
 
-#: plpy_typeio.c:831
+#: plpy_typeio.c:833
 #, c-format
 msgid ""
 "could not convert Python object into cstring: Python string representation "
 "appears to contain null bytes"
 msgstr "无法将Python对象转换为cstring: Python字符串表达式可能包含空字节"
 
-#: plpy_typeio.c:877
+#: plpy_typeio.c:879
 #, c-format
 msgid ""
 "return value of function with array return type is not a Python sequence"
 msgstr "带有数组返回类型的函数返回值不是一个Python序列"
 
-#: plpy_typeio.c:992
+#: plpy_typeio.c:1000
 #, c-format
 msgid "key \"%s\" not found in mapping"
 msgstr "在映射中没有找到键\"%s\""
 
-#: plpy_typeio.c:993
+#: plpy_typeio.c:1001
 #, c-format
 msgid ""
 "To return null in a column, add the value None to the mapping with the key "
 "named after the column."
 msgstr "为了在一列中返回空值, 需要在列的后面对带有已命名键的映射添加值None"
 
-#: plpy_typeio.c:1044
+#: plpy_typeio.c:1052
 #, c-format
 msgid "length of returned sequence did not match number of columns in row"
 msgstr "所返回序列的长度与在记录中列的数量不匹配"
 
-#: plpy_typeio.c:1155
+#: plpy_typeio.c:1163
 #, c-format
 msgid "attribute \"%s\" does not exist in Python object"
 msgstr "在Python对象中不存在属性\"%s\""
 
-#: plpy_typeio.c:1156
+#: plpy_typeio.c:1164
 #, c-format
 msgid ""
 "To return null in a column, let the returned object have an attribute named "
@@ -430,67 +442,76 @@ msgid ""
 msgstr ""
 "为了在一列中返回空值, 需要让返回的对象在带有值None的列后面的带有已命名属性"
 
-#: plpy_util.c:72
+#: plpy_util.c:36
 #, c-format
 msgid "could not convert Python Unicode object to bytes"
 msgstr "无法将Python中以Unicode编码的对象转换为PostgreSQL服务器字节码"
 
-#: plpy_util.c:78
+#: plpy_util.c:42
 #, c-format
 msgid "could not extract bytes from encoded string"
 msgstr "无法从已编码字符串里提取相应字节码值"
 
-#~ msgid "unrecognized error in PLy_spi_execute_fetch_result"
-#~ msgstr "在PLy_spi_execute_fetch_result中出现无法识别的错误"
+#~ msgid "plpy.prepare does not support composite types"
+#~ msgstr "plpy.prepare不支持使用组合类型"
 
-#~ msgid "PL/Python function \"%s\" failed"
-#~ msgstr "PL/Python函数 \"%s\" 执行失败"
+#~ msgid "PL/Python does not support conversion to arrays of row types."
+#~ msgstr "PL/Python不支持对行类型数组的转换。"
 
-#~ msgid ""
-#~ "could not create string representation of Python object in PL/Python "
-#~ "function \"%s\" while creating return value"
-#~ msgstr ""
-#~ "在创建返回值时, 无法计算在PL/Python函数\"%s\"中Python对象的字符串表达式"
+#~ msgid "PyCObject_AsVoidPtr() failed"
+#~ msgstr "执行PyCObject_AsVoidPtr()失败"
 
-#~ msgid ""
-#~ "could not compute string representation of Python object in PL/Python "
-#~ "function \"%s\" while modifying trigger row"
-#~ msgstr ""
-#~ "在修改触发器记录的同时无法计算在PL/Python函数\"%s\"中Python对象的字符串表"
-#~ "达式"
+#~ msgid "PyCObject_FromVoidPtr() failed"
+#~ msgstr "执行PyCObject_FromVoidPtr()失败"
 
-#~ msgid "out of memory"
-#~ msgstr "内存用尽"
+#~ msgid "transaction aborted"
+#~ msgstr "事务终止"
 
-#~ msgid "PL/Python: %s"
-#~ msgstr "PL/Python: %s"
+#~ msgid "invalid arguments for plpy.prepare"
+#~ msgstr " plpy.prepare的无效参数"
 
-#~ msgid "could not create procedure cache"
-#~ msgstr "无法创建存储过程缓存"
+#~ msgid "unrecognized error in PLy_spi_prepare"
+#~ msgstr "在PLy_spi_prepare中无法识别的错误"
+
+#~ msgid "unrecognized error in PLy_spi_execute_plan"
+#~ msgstr "在PLy_spi_execute_plan中出现无法识别的错误"
 
 #~ msgid "unrecognized error in PLy_spi_execute_query"
 #~ msgstr "在PLy_spi_execute_query中出现无法识别的错误"
 
-#~ msgid "unrecognized error in PLy_spi_execute_plan"
-#~ msgstr "在PLy_spi_execute_plan中出现无法识别的错误"
+#~ msgid "could not create procedure cache"
+#~ msgstr "无法创建存储过程缓存"
 
-#~ msgid "unrecognized error in PLy_spi_prepare"
-#~ msgstr "在PLy_spi_prepare中无法识别的错误"
+#~ msgid "PL/Python: %s"
+#~ msgstr "PL/Python: %s"
 
-#~ msgid "invalid arguments for plpy.prepare"
-#~ msgstr " plpy.prepare的无效参数"
+#~ msgid "out of memory"
+#~ msgstr "内存用尽"
 
-#~ msgid "transaction aborted"
-#~ msgstr "事务终止"
+#~ msgid ""
+#~ "could not compute string representation of Python object in PL/Python "
+#~ "function \"%s\" while modifying trigger row"
+#~ msgstr ""
+#~ "在修改触发器记录的同时无法计算在PL/Python函数\"%s\"中Python对象的字符串表"
+#~ "达式"
 
-#~ msgid "PyCObject_FromVoidPtr() failed"
-#~ msgstr "执行PyCObject_FromVoidPtr()失败"
+#~ msgid ""
+#~ "could not create string representation of Python object in PL/Python "
+#~ "function \"%s\" while creating return value"
+#~ msgstr ""
+#~ "在创建返回值时, 无法计算在PL/Python函数\"%s\"中Python对象的字符串表达式"
 
-#~ msgid "PyCObject_AsVoidPtr() failed"
-#~ msgstr "执行PyCObject_AsVoidPtr()失败"
+#~ msgid "PL/Python function \"%s\" failed"
+#~ msgstr "PL/Python函数 \"%s\" 执行失败"
 
-#~ msgid "PL/Python does not support conversion to arrays of row types."
-#~ msgstr "PL/Python不支持对行类型数组的转换。"
+#~ msgid "unrecognized error in PLy_spi_execute_fetch_result"
+#~ msgstr "在PLy_spi_execute_fetch_result中出现无法识别的错误"
 
-#~ msgid "plpy.prepare does not support composite types"
-#~ msgstr "plpy.prepare不支持使用组合类型"
+#~ msgid "Start a new session to use a different Python major version."
+#~ msgstr "启动一个新的会话来使用一个不同的Python的主要版本"
+
+#~ msgid ""
+#~ "This session has previously used Python major version %d, and it is now "
+#~ "attempting to use Python major version %d."
+#~ msgstr ""
+#~ "这个会话先前已经使用的Python主版本是%d,现在它试图使用的Python主版本是%d "
index 2d2ab855bdc4d0310aeacd2844e1d6f58bcb0812..1e6934a7a545772e1c2de56608aeeb93f0efa5fd 100644 (file)
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: postgres (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:42+0000\n"
-"PO-Revision-Date: 2016-01-03 23:27-0500\n"
+"POT-Creation-Date: 2016-04-18 04:43+0000\n"
+"PO-Revision-Date: 2016-06-12 15:34+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -16,6 +16,80 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.7\n"
 
+#: ../common/config_info.c:131 ../common/config_info.c:139
+#: ../common/config_info.c:147 ../common/config_info.c:155
+#: ../common/config_info.c:163 ../common/config_info.c:171
+#: ../common/config_info.c:179 ../common/config_info.c:187
+#: ../common/config_info.c:195
+#| msgid "not recorded\n"
+msgid "not recorded"
+msgstr "没有被记录"
+
+#: ../common/controldata_utils.c:52 commands/copy.c:2798
+#: commands/extension.c:3120 utils/adt/genfile.c:134
+#, c-format
+msgid "could not open file \"%s\" for reading: %m"
+msgstr "为了读取, 无法打开文件 \"%s\": %m"
+
+#: ../common/controldata_utils.c:56
+#, c-format
+msgid "%s: could not open file \"%s\" for reading: %s\n"
+msgstr "%s: 为了读取, 无法打开文件 \"%s\": %s\n"
+
+#: ../common/controldata_utils.c:66 access/transam/timeline.c:346
+#: access/transam/xlog.c:3193 access/transam/xlog.c:10338
+#: access/transam/xlog.c:10351 access/transam/xlog.c:10714
+#: access/transam/xlog.c:10757 access/transam/xlog.c:10796
+#: access/transam/xlog.c:10839 access/transam/xlogfuncs.c:666
+#: access/transam/xlogfuncs.c:685 commands/extension.c:3130
+#: replication/logical/origin.c:665 replication/logical/origin.c:695
+#: replication/logical/reorderbuffer.c:3077 replication/walsender.c:499
+#: storage/file/copydir.c:176 utils/adt/genfile.c:151
+#, c-format
+msgid "could not read file \"%s\": %m"
+msgstr "无法读取文件 \"%s\": %m"
+
+#: ../common/controldata_utils.c:69
+#, c-format
+msgid "%s: could not read file \"%s\": %s\n"
+msgstr "%s: 无法读取文件 \"%s\": %s\n"
+
+#: ../common/controldata_utils.c:86
+msgid "calculated CRC checksum does not match value stored in file"
+msgstr "计算得到的 CRC 校验与存储在文件中的值不匹配"
+
+#: ../common/controldata_utils.c:88
+#, c-format
+msgid ""
+"WARNING: Calculated CRC checksum does not match value stored in file.\n"
+"Either the file is corrupt, or it has a different layout than this program\n"
+"is expecting.  The results below are untrustworthy.\n"
+"\n"
+msgstr ""
+"警告: 计算出来的CRC校验值与已保存在文件中的值不匹配.\n"
+"不是文件坏了,就是设计与程序的期望值不同.\n"
+"下面的结果是不可靠的.\n"
+"\n"
+
+#: ../common/controldata_utils.c:97
+#| msgid "%s: encoding mismatch\n"
+msgid "byte ordering mismatch"
+msgstr "字节排序不匹配"
+
+#: ../common/controldata_utils.c:99
+#, c-format
+msgid ""
+"WARNING: possible byte ordering mismatch\n"
+"The byte ordering used to store the pg_control file might not match the one\n"
+"used by this program.  In that case the results below would be incorrect, "
+"and\n"
+"the PostgreSQL installation would be incompatible with this data directory.\n"
+msgstr ""
+"警告: 可能字节顺序不匹配\n"
+"用于存储文件pg_control的字节顺序可能与程序使用的不匹配\n"
+"在那种情况下结果将会是不正确的,并且所安装的PostgreSQL\n"
+"将会与这个数据目录不兼容\n"
+
 #: ../common/exec.c:127 ../common/exec.c:241 ../common/exec.c:284
 #, c-format
 msgid "could not identify current directory: %s"
@@ -54,8 +128,8 @@ msgid "pclose failed: %s"
 msgstr "pclose调用失败: %s"
 
 #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75
-#: ../common/fe_memutils.c:98 ../common/psprintf.c:181 ../port/path.c:598
-#: ../port/path.c:636 ../port/path.c:653
+#: ../common/fe_memutils.c:98 ../common/psprintf.c:181 ../port/path.c:632
+#: ../port/path.c:670 ../port/path.c:687
 #, c-format
 msgid "out of memory\n"
 msgstr "内存溢出\n"
@@ -81,28 +155,29 @@ msgstr "无法读取目录 \"%s\": %s\n"
 msgid "could not close directory \"%s\": %s\n"
 msgstr "无法关闭目录 \"%s\": %s\n"
 
-#: ../common/psprintf.c:179 ../port/path.c:596 ../port/path.c:634
-#: ../port/path.c:651 access/transam/xlog.c:6041 lib/stringinfo.c:258
-#: libpq/auth.c:820 libpq/auth.c:1181 libpq/auth.c:1249 libpq/auth.c:1658
+#: ../common/psprintf.c:179 ../port/path.c:630 ../port/path.c:668
+#: ../port/path.c:685 access/transam/twophase.c:1261
+#: access/transam/xlog.c:6069 lib/stringinfo.c:258 libpq/auth.c:847
+#: libpq/auth.c:1210 libpq/auth.c:1278 libpq/auth.c:1794
 #: postmaster/bgworker.c:289 postmaster/bgworker.c:797
-#: postmaster/postmaster.c:2317 postmaster/postmaster.c:2348
-#: postmaster/postmaster.c:3867 postmaster/postmaster.c:4555
-#: postmaster/postmaster.c:4623 postmaster/postmaster.c:5313
-#: postmaster/postmaster.c:5566 replication/logical/logical.c:167
-#: storage/buffer/localbuf.c:396 storage/file/fd.c:481 storage/file/fd.c:878
-#: storage/file/fd.c:996 storage/file/fd.c:1609 storage/ipc/procarray.c:907
-#: storage/ipc/procarray.c:1393 storage/ipc/procarray.c:1400
-#: storage/ipc/procarray.c:1793 storage/ipc/procarray.c:2377
+#: postmaster/postmaster.c:2323 postmaster/postmaster.c:2354
+#: postmaster/postmaster.c:3886 postmaster/postmaster.c:4576
+#: postmaster/postmaster.c:4644 postmaster/postmaster.c:5343
+#: postmaster/postmaster.c:5596 replication/logical/logical.c:170
+#: storage/buffer/localbuf.c:422 storage/file/fd.c:729 storage/file/fd.c:1126
+#: storage/file/fd.c:1244 storage/file/fd.c:1916 storage/ipc/procarray.c:1060
+#: storage/ipc/procarray.c:1546 storage/ipc/procarray.c:1553
+#: storage/ipc/procarray.c:1967 storage/ipc/procarray.c:2570
 #: utils/adt/formatting.c:1523 utils/adt/formatting.c:1643
-#: utils/adt/formatting.c:1764 utils/adt/regexp.c:219 utils/adt/varlena.c:4199
-#: utils/adt/varlena.c:4220 utils/fmgr/dfmgr.c:220 utils/hash/dynahash.c:411
-#: utils/hash/dynahash.c:488 utils/hash/dynahash.c:1002 utils/mb/mbutils.c:376
-#: utils/mb/mbutils.c:709 utils/misc/guc.c:3723 utils/misc/guc.c:3739
-#: utils/misc/guc.c:3752 utils/misc/guc.c:6686 utils/misc/tzparser.c:470
-#: utils/mmgr/aset.c:504 utils/mmgr/mcxt.c:688 utils/mmgr/mcxt.c:723
-#: utils/mmgr/mcxt.c:760 utils/mmgr/mcxt.c:797 utils/mmgr/mcxt.c:831
-#: utils/mmgr/mcxt.c:860 utils/mmgr/mcxt.c:894 utils/mmgr/mcxt.c:974
-#: utils/mmgr/mcxt.c:1007 utils/mmgr/mcxt.c:1054
+#: utils/adt/formatting.c:1764 utils/adt/regexp.c:219 utils/adt/varlena.c:4440
+#: utils/adt/varlena.c:4461 utils/fmgr/dfmgr.c:216 utils/hash/dynahash.c:431
+#: utils/hash/dynahash.c:537 utils/hash/dynahash.c:1049 utils/mb/mbutils.c:376
+#: utils/mb/mbutils.c:709 utils/misc/guc.c:3885 utils/misc/guc.c:3901
+#: utils/misc/guc.c:3914 utils/misc/guc.c:6859 utils/misc/tzparser.c:470
+#: utils/mmgr/aset.c:505 utils/mmgr/mcxt.c:770 utils/mmgr/mcxt.c:805
+#: utils/mmgr/mcxt.c:842 utils/mmgr/mcxt.c:879 utils/mmgr/mcxt.c:913
+#: utils/mmgr/mcxt.c:942 utils/mmgr/mcxt.c:976 utils/mmgr/mcxt.c:1058
+#: utils/mmgr/mcxt.c:1092 utils/mmgr/mcxt.c:1141
 #, c-format
 msgid "out of memory"
 msgstr "内存用尽"
@@ -167,7 +242,7 @@ msgstr "无法删除目录 \"%s\": %s\n"
 msgid "could not look up effective user ID %ld: %s"
 msgstr "无法找到有效的用户ID %ld: %s"
 
-#: ../common/username.c:47 libpq/auth.c:1605
+#: ../common/username.c:47 libpq/auth.c:1741
 msgid "user does not exist"
 msgstr "用户不存在"
 
@@ -217,7 +292,7 @@ msgid "could not determine encoding for codeset \"%s\""
 msgstr "无法确定字符集的编码\"%s\""
 
 #: ../port/chklocale.c:260 ../port/chklocale.c:389
-#: postmaster/postmaster.c:4855
+#: postmaster/postmaster.c:4876
 #, c-format
 msgid "Please report this to <pgsql-bugs@postgresql.org>."
 msgstr "请向 <pgsql-bugs@postgresql.org>发送报告."
@@ -227,22 +302,22 @@ msgstr "请向 <pgsql-bugs@postgresql.org>发送报告."
 msgid "could not determine encoding for locale \"%s\": codeset is \"%s\""
 msgstr "无法确定语言环境\"%s\"的编码: 代码集是\"%s\""
 
-#: ../port/dirmod.c:216
+#: ../port/dirmod.c:218
 #, c-format
 msgid "could not set junction for \"%s\": %s"
 msgstr "无法为\"%s\"设置连接点: %s"
 
-#: ../port/dirmod.c:219
+#: ../port/dirmod.c:221
 #, c-format
 msgid "could not set junction for \"%s\": %s\n"
 msgstr "无法为\"%s\"设置连接点: %s\n"
 
-#: ../port/dirmod.c:291
+#: ../port/dirmod.c:295
 #, c-format
 msgid "could not get junction for \"%s\": %s"
 msgstr "无法得到联接 \"%s\": %s"
 
-#: ../port/dirmod.c:294
+#: ../port/dirmod.c:298
 #, c-format
 msgid "could not get junction for \"%s\": %s\n"
 msgstr "无法得到联接 \"%s\": %s\n"
@@ -273,7 +348,7 @@ msgid ""
 "database system."
 msgstr "您可能有反病毒,备份或类似的软件与数据库系统冲突"
 
-#: ../port/path.c:620
+#: ../port/path.c:654
 #, c-format
 msgid "could not get current working directory: %s\n"
 msgstr "无法得到当前工作目录: %s\n"
@@ -283,19 +358,79 @@ msgstr "无法得到当前工作目录: %s\n"
 msgid "unrecognized error %d"
 msgstr "未知的 SSL 错误码: %d"
 
-#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362
-#: access/brin/brin_pageops.c:828
+#: access/brin/brin.c:817
+#, c-format
+#| msgid "\"%s\" is not an index"
+msgid "\"%s\" is not a BRIN index"
+msgstr "\"%s\" 不是一个 BRIN 索引"
+
+#: access/brin/brin.c:833
+#, c-format
+#| msgid "could not open two-phase state file \"%s\": %m"
+msgid "could not open parent table of index %s"
+msgstr "无法打开索引 %s 的父表"
+
+#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:369
+#: access/brin/brin_pageops.c:844
 #, c-format
-#| msgid "index row size %zu exceeds maximum %zu for index \"%s\""
 msgid "index row size %lu exceeds maximum %lu for index \"%s\""
 msgstr "索引行的大小%1$lu超过了索引\"%3$s\"的最大值%2$lu"
 
-#: access/brin/brin_revmap.c:449
+#: access/brin/brin_revmap.c:456
 #, c-format
 msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u"
 msgstr "意料之外的页类型0x%04X出现在BRIN索引\"%s\"的块%u中"
 
-#: access/common/heaptuple.c:708 access/common/heaptuple.c:1450
+#: access/brin/brin_validate.c:115
+#, c-format
+msgid "brin opfamily %s contains function %s with invalid support number %d"
+msgstr "brin opfamily %s 包含的函数 %s 具有无效的支持号 %d"
+
+#: access/brin/brin_validate.c:131
+#, c-format
+msgid ""
+"brin opfamily %s contains function %s with wrong signature for support "
+"number %d"
+msgstr "brin opfamily %s 包含的函数 %s 具有错误的支持号签名 %d"
+
+#: access/brin/brin_validate.c:153
+#, c-format
+msgid "brin opfamily %s contains operator %s with invalid strategy number %d"
+msgstr "brin opfamily %s 包含的操作符 %s 具有无效的策略号 %d"
+
+#: access/brin/brin_validate.c:182
+#, c-format
+msgid ""
+"brin opfamily %s contains invalid ORDER BY specification for operator %s"
+msgstr "brin opfamily %s 包含的操作符 %s 的无效 ORDER BY 说明"
+
+#: access/brin/brin_validate.c:195
+#, c-format
+msgid "brin opfamily %s contains operator %s with wrong signature"
+msgstr "brin opfamily %s 包含的操作符 %s 具有错误的签名"
+
+#: access/brin/brin_validate.c:233
+#, c-format
+msgid "brin opfamily %s is missing operator(s) for types %s and %s"
+msgstr "brin opfamily %s 中缺少用于类型 %s 和 %s 的操作符"
+
+#: access/brin/brin_validate.c:243
+#, c-format
+msgid "brin opfamily %s is missing support function(s) for types %s and %s"
+msgstr "brin opfamily %s 中缺少用于类型 %s 和 %s 的支持函数"
+
+#: access/brin/brin_validate.c:256
+#, c-format
+msgid "brin opclass %s is missing operator(s)"
+msgstr "brin opclass %s 缺少操作符"
+
+#: access/brin/brin_validate.c:267
+#, c-format
+#| msgid "return type %s is not supported for SQL functions"
+msgid "brin opclass %s is missing support function %d"
+msgstr "brin opclass %s 缺少支持函数 %d"
+
+#: access/common/heaptuple.c:708 access/common/heaptuple.c:1339
 #, c-format
 msgid "number of columns (%d) exceeds limit (%d)"
 msgstr "字段个数 (%d) 超出限制 (%d)"
@@ -305,68 +440,68 @@ msgstr "字段个数 (%d) 超出限制 (%d)"
 msgid "number of index columns (%d) exceeds limit (%d)"
 msgstr "索引字段个数 (%d) 超出限制 (%d)"
 
-#: access/common/indextuple.c:176 access/spgist/spgutils.c:605
+#: access/common/indextuple.c:176 access/spgist/spgutils.c:646
 #, c-format
 msgid "index row requires %zu bytes, maximum size is %zu"
 msgstr "索引行需要 %zu 字节, 最大值为 %zu"
 
 #: access/common/printtup.c:294 tcop/fastpath.c:182 tcop/fastpath.c:544
-#: tcop/postgres.c:1730
+#: tcop/postgres.c:1721
 #, c-format
 msgid "unsupported format code: %d"
 msgstr "不支持的格式代码: %d"
 
-#: access/common/reloptions.c:419
+#: access/common/reloptions.c:488
 #, c-format
 msgid "user-defined relation parameter types limit exceeded"
 msgstr "用户定义的关系参数类型超过限制"
 
-#: access/common/reloptions.c:701
+#: access/common/reloptions.c:770
 #, c-format
 msgid "RESET must not include values for parameters"
 msgstr "RESET中不能包含参数的值"
 
-#: access/common/reloptions.c:734
+#: access/common/reloptions.c:803
 #, c-format
 msgid "unrecognized parameter namespace \"%s\""
 msgstr "未识别的参数命名空间 \"%s\""
 
-#: access/common/reloptions.c:974 parser/parse_clause.c:279
+#: access/common/reloptions.c:1045 parser/parse_clause.c:281
 #, c-format
 msgid "unrecognized parameter \"%s\""
 msgstr "未识别的参数 \"%s\""
 
-#: access/common/reloptions.c:1004
+#: access/common/reloptions.c:1075
 #, c-format
 msgid "parameter \"%s\" specified more than once"
 msgstr "表名 \"%s\" 被指定多次"
 
-#: access/common/reloptions.c:1020
+#: access/common/reloptions.c:1091
 #, c-format
 msgid "invalid value for boolean option \"%s\": %s"
 msgstr "布尔选项\"%s\"的值无效:%s"
 
-#: access/common/reloptions.c:1032
+#: access/common/reloptions.c:1103
 #, c-format
 msgid "invalid value for integer option \"%s\": %s"
 msgstr "参数 \"%s\" 的值无效: \"%s\""
 
-#: access/common/reloptions.c:1038 access/common/reloptions.c:1058
+#: access/common/reloptions.c:1109 access/common/reloptions.c:1129
 #, c-format
 msgid "value %s out of bounds for option \"%s\""
 msgstr "值 %s超出了选项\"%s\"的范围"
 
-#: access/common/reloptions.c:1040
+#: access/common/reloptions.c:1111
 #, c-format
 msgid "Valid values are between \"%d\" and \"%d\"."
 msgstr "有效值在\"%d\"和\"%d\"之间."
 
-#: access/common/reloptions.c:1052
+#: access/common/reloptions.c:1123
 #, c-format
 msgid "invalid value for floating point option \"%s\": %s"
 msgstr "浮点数类型选项\"%s\"的值无效:%s"
 
-#: access/common/reloptions.c:1060
+#: access/common/reloptions.c:1131
 #, c-format
 msgid "Valid values are between \"%f\" and \"%f\"."
 msgstr "有效值在 \"%f\"和 \"%f\"之间"
@@ -394,42 +529,123 @@ msgstr "类型%2$s的属性\"%1$s\"与对应类型%3$s的属性不匹配。"
 msgid "Attribute \"%s\" of type %s does not exist in type %s."
 msgstr "类型%2$s的属性\"%1$s\"在类型%3$s中不存在."
 
-#: access/common/tupdesc.c:635 parser/parse_relation.c:1514
+#: access/common/tupdesc.c:635 parser/parse_relation.c:1517
 #, c-format
 msgid "column \"%s\" cannot be declared SETOF"
 msgstr "字段 \"%s\" 不能被声明为 SETOF"
 
-#: access/gin/ginentrypage.c:109 access/gist/gist.c:1289
-#: access/nbtree/nbtinsert.c:567 access/nbtree/nbtsort.c:488
-#: access/spgist/spgdoinsert.c:1907
+#: access/gin/ginbulk.c:44
+#, c-format
+#| msgid "payload string too long"
+msgid "posting list is too long"
+msgstr "位置列表太长"
+
+#: access/gin/ginbulk.c:45
+#, c-format
+msgid "Reduce maintenance_work_mem"
+msgstr "减小 maintenance_work_mem"
+
+#: access/gin/ginentrypage.c:109 access/gist/gist.c:1354
+#: access/nbtree/nbtinsert.c:575 access/nbtree/nbtsort.c:488
+#: access/spgist/spgdoinsert.c:1915
 #, c-format
 msgid "index row size %zu exceeds maximum %zu for index \"%s\""
 msgstr "索引行的大小 %1$zu 超过了索引\"%3$s\"所允许的最大值%2$zu"
 
-#: access/gin/ginscan.c:410
+#: access/gin/ginfast.c:979 access/transam/xlog.c:9795
+#: access/transam/xlog.c:10266 access/transam/xlogfuncs.c:294
+#: access/transam/xlogfuncs.c:321 access/transam/xlogfuncs.c:360
+#: access/transam/xlogfuncs.c:381 access/transam/xlogfuncs.c:402
+#: access/transam/xlogfuncs.c:472 access/transam/xlogfuncs.c:528
+#, c-format
+msgid "recovery is in progress"
+msgstr "恢复操作正在进行中"
+
+#: access/gin/ginfast.c:980
+#, c-format
+#| msgid "WAL control functions cannot be executed during recovery."
+msgid "GIN pending list cannot be cleaned up during recovery."
+msgstr "在恢复期间不能清理 GIN 待处理列表。"
+
+#: access/gin/ginfast.c:987
+#, c-format
+#| msgid "\"%s\" is not an index"
+msgid "\"%s\" is not a GIN index"
+msgstr "\"%s\" 不是一个 GIN 索引"
+
+#: access/gin/ginfast.c:998
+#, c-format
+#| msgid "cannot access temporary tables of other sessions"
+msgid "cannot access temporary indexes of other sessions"
+msgstr "不能访问其他会话的临时索引"
+
+#: access/gin/ginscan.c:409
 #, c-format
 msgid "old GIN indexes do not support whole-index scans nor searches for nulls"
 msgstr "老的GIN索引不支持完整索引 (whole-index) 扫描,也不支持null值搜索"
 
-#: access/gin/ginscan.c:411
+#: access/gin/ginscan.c:410
 #, c-format
 msgid "To fix this, do REINDEX INDEX \"%s\"."
 msgstr "要解决此问题, 可执行REINDEX INDEX \"%s\"."
 
-#: access/gist/gist.c:632 access/gist/gistvacuum.c:266
+#: access/gin/ginvalidate.c:92
+#, c-format
+msgid ""
+"gin opfamily %s contains support procedure %s with cross-type registration"
+msgstr "gin opfamily %s 包含的支持过程 %s 被注册在多种类型中"
+
+#: access/gin/ginvalidate.c:148
+#, c-format
+msgid "gin opfamily %s contains function %s with invalid support number %d"
+msgstr "gin opfamily %1$s 包含具有无效支持编号 %3$d 的函数 %2$s"
+
+#: access/gin/ginvalidate.c:160
+#, c-format
+msgid ""
+"gin opfamily %s contains function %s with wrong signature for support number "
+"%d"
+msgstr "gin opfamily %1$s 包含的函数 %2$s 对支持编号 %3$d 具有错误的签名"
+
+#: access/gin/ginvalidate.c:179
+#, c-format
+msgid "gin opfamily %s contains operator %s with invalid strategy number %d"
+msgstr "gin opfamily %1$s 包含具有无效策略编号 %3$d 的操作符 %2$s"
+
+#: access/gin/ginvalidate.c:192
+#, c-format
+msgid "gin opfamily %s contains invalid ORDER BY specification for operator %s"
+msgstr "gin opfamily %s 包含操作符 %s 的无效 ORDER BY 声明"
+
+#: access/gin/ginvalidate.c:205
+#, c-format
+msgid "gin opfamily %s contains operator %s with wrong signature"
+msgstr "gin opfamily %s 包含具有错误签名的操作符 %s"
+
+#: access/gin/ginvalidate.c:246
+#, c-format
+msgid "gin opclass %s is missing support function %d"
+msgstr "gin opclass %s 缺少支持函数 %d"
+
+#: access/gin/ginvalidate.c:256
+#, c-format
+msgid "gin opclass %s is missing support function %d or %d"
+msgstr "gin opclass %s 缺少支持函数 %d 或 %d"
+
+#: access/gist/gist.c:692 access/gist/gistvacuum.c:258
 #, c-format
 msgid "index \"%s\" contains an inner tuple marked as invalid"
 msgstr "索引\"%s\"包含无效的内部元组"
 
-#: access/gist/gist.c:634 access/gist/gistvacuum.c:268
+#: access/gist/gist.c:694 access/gist/gistvacuum.c:260
 #, c-format
 msgid ""
 "This is caused by an incomplete page split at crash recovery before "
 "upgrading to PostgreSQL 9.1."
 msgstr "这是在升级到PostgreSQL 9.1之前执行灾难恢复时不完全的页分裂引起的."
 
-#: access/gist/gist.c:635 access/gist/gistutil.c:735
-#: access/gist/gistutil.c:746 access/gist/gistvacuum.c:269
+#: access/gist/gist.c:695 access/gist/gistutil.c:735
+#: access/gist/gistutil.c:746 access/gist/gistvacuum.c:261
 #: access/hash/hashutil.c:172 access/hash/hashutil.c:183
 #: access/hash/hashutil.c:195 access/hash/hashutil.c:216
 #: access/nbtree/nbtpage.c:518 access/nbtree/nbtpage.c:529
@@ -437,12 +653,12 @@ msgstr "这是在升级到PostgreSQL 9.1之前执行灾难恢复时不完全的
 msgid "Please REINDEX it."
 msgstr "请重建索引 (REINDEX)."
 
-#: access/gist/gistbuild.c:252
+#: access/gist/gistbuild.c:249
 #, c-format
 msgid "invalid value for \"buffering\" option"
 msgstr "\"buffering\"选项值无效"
 
-#: access/gist/gistbuild.c:253
+#: access/gist/gistbuild.c:250
 #, c-format
 msgid "Valid values are \"on\", \"off\", and \"auto\"."
 msgstr "有效值为\"on\", \"off\", 或 \"auto\"之一."
@@ -478,18 +694,64 @@ msgstr "索引\"%s\"在块%u上包含未期望的零页"
 msgid "index \"%s\" contains corrupted page at block %u"
 msgstr "索引\"%s\"在块%u上包含已损坏的页"
 
-#: access/hash/hashinsert.c:68
+#: access/gist/gistvalidate.c:92
+#, c-format
+msgid ""
+"gist opfamily %s contains support procedure %s with cross-type registration"
+msgstr "gist opfamily %s 包含具有跨类型注册的支持过程 %s"
+
+#: access/gist/gistvalidate.c:145
+#, c-format
+msgid "gist opfamily %s contains function %s with invalid support number %d"
+msgstr "gist opfamily %1$s 包含具有无效支持编号 %3$d 的函数 %2$s"
+
+#: access/gist/gistvalidate.c:157
+#, c-format
+msgid ""
+"gist opfamily %s contains function %s with wrong signature for support "
+"number %d"
+msgstr "gist opfamily %1$s 包含的函数 %2$s 对支持编号 %3$d 具有错误的签名"
+
+#: access/gist/gistvalidate.c:177
+#, c-format
+msgid "gist opfamily %s contains operator %s with invalid strategy number %d"
+msgstr "gist opfamily %1$s 包含具有无效策略编号 %3$d 的操作符 %2$s"
+
+#: access/gist/gistvalidate.c:195
+#, c-format
+msgid ""
+"gist opfamily %s contains unsupported ORDER BY specification for operator %s"
+msgstr "gist opfamily %s 包含操作符 %s 的不支持的 ORDER BY 声明"
+
+#: access/gist/gistvalidate.c:206
+#, c-format
+msgid ""
+"gist opfamily %s contains incorrect ORDER BY opfamily specification for "
+"operator %s"
+msgstr "gist opfamily %s 包含操作符 %s 的不正确的 ORDER BY opfamily 声明"
+
+#: access/gist/gistvalidate.c:225
+#, c-format
+msgid "gist opfamily %s contains operator %s with wrong signature"
+msgstr "gist opfamily %s 包含具有错误签名的操作符 %s"
+
+#: access/gist/gistvalidate.c:264
+#, c-format
+msgid "gist opclass %s is missing support function %d"
+msgstr "gist opclass %s 缺少支持函数 %d"
+
+#: access/hash/hashinsert.c:69
 #, c-format
 msgid "index row size %zu exceeds hash maximum %zu"
 msgstr "索引行大小 %zu 超过散列最大值 %zu"
 
-#: access/hash/hashinsert.c:70 access/spgist/spgdoinsert.c:1911
-#: access/spgist/spgutils.c:666
+#: access/hash/hashinsert.c:71 access/spgist/spgdoinsert.c:1919
+#: access/spgist/spgutils.c:707
 #, c-format
 msgid "Values larger than a buffer page cannot be indexed."
 msgstr "大于一个缓冲页的值无法用于创建索引."
 
-#: access/hash/hashovfl.c:546
+#: access/hash/hashovfl.c:548
 #, c-format
 msgid "out of overflow pages in hash index \"%s\""
 msgstr "散列索引 \"%s\" 中页溢出"
@@ -509,60 +771,110 @@ msgstr "索引 \"%s\" 不是一个散列索引"
 msgid "index \"%s\" has wrong hash version"
 msgstr "索引 \"%s\" 有错误的散列版本"
 
-#: access/heap/heapam.c:1074 access/heap/heapam.c:1126
+#: access/hash/hashvalidate.c:98
+#, c-format
+msgid ""
+"hash opfamily %s contains support procedure %s with cross-type registration"
+msgstr "hash opfamily %s 包含具有跨类型注册的支持过程 %s"
+
+#: access/hash/hashvalidate.c:113
+#, c-format
+msgid ""
+"hash opfamily %s contains function %s with wrong signature for support "
+"number %d"
+msgstr "hash opfamily %1$s 包含的函数 %2$s 对支持编号 %3$d 具有错误的签名"
+
+#: access/hash/hashvalidate.c:130
+#, c-format
+msgid "hash opfamily %s contains function %s with invalid support number %d"
+msgstr "hash opfamily %1$s 包含具有无效支持编号 %3$d 的函数 %2$s"
+
+#: access/hash/hashvalidate.c:151
+#, c-format
+msgid "hash opfamily %s contains operator %s with invalid strategy number %d"
+msgstr "hash opfamily %1$s 包含具有无效策略编号 %3$d 的操作符 %2$s"
+
+#: access/hash/hashvalidate.c:164
+#, c-format
+msgid ""
+"hash opfamily %s contains invalid ORDER BY specification for operator %s"
+msgstr "hash opfamily %s 包含操作符 %s 的无效 ORDER BY 声明"
+
+#: access/hash/hashvalidate.c:177
+#, c-format
+msgid "hash opfamily %s contains operator %s with wrong signature"
+msgstr "hash opfamily %s 包含具有错误签名的操作符 %s"
+
+#: access/hash/hashvalidate.c:189
+#, c-format
+msgid "hash opfamily %s lacks support function for operator %s"
+msgstr "hash opfamily %s 缺少操作符 %s 的支持函数"
+
+#: access/hash/hashvalidate.c:217
+#, c-format
+msgid "hash opfamily %s is missing operator(s) for types %s and %s"
+msgstr "hash opfamily %s 缺少类型 %s 和 %s 的操作符"
+
+#: access/hash/hashvalidate.c:231
+#, c-format
+msgid "hash opclass %s is missing operator(s)"
+msgstr "hash opclass %s 缺少操作符"
+
+#: access/hash/hashvalidate.c:247
+#, c-format
+msgid "hash opfamily %s is missing cross-type operator(s)"
+msgstr "hash opclass %s 缺少跨类型操作符"
+
+#: access/heap/heapam.c:1137 access/heap/heapam.c:1189
 #, c-format
-#| msgid "cannot create temporary tables during recovery"
 msgid "cannot access temporary tables during a parallel operation"
 msgstr "不能在并行操作期间访问临时表"
 
-#: access/heap/heapam.c:1243 access/heap/heapam.c:1271
-#: access/heap/heapam.c:1303 catalog/aclchk.c:1733
+#: access/heap/heapam.c:1306 access/heap/heapam.c:1334
+#: access/heap/heapam.c:1366 catalog/aclchk.c:1755
 #, c-format
 msgid "\"%s\" is an index"
 msgstr "\"%s\" 是一个索引"
 
-#: access/heap/heapam.c:1248 access/heap/heapam.c:1276
-#: access/heap/heapam.c:1308 catalog/aclchk.c:1740 commands/tablecmds.c:8953
-#: commands/tablecmds.c:11976
+#: access/heap/heapam.c:1311 access/heap/heapam.c:1339
+#: access/heap/heapam.c:1371 catalog/aclchk.c:1762 commands/tablecmds.c:8986
+#: commands/tablecmds.c:12044
 #, c-format
 msgid "\"%s\" is a composite type"
 msgstr "\"%s\" 为混和类型"
 
-#: access/heap/heapam.c:2344
+#: access/heap/heapam.c:2580
 #, c-format
-#| msgid "cannot insert multiple commands into a prepared statement"
 msgid "cannot insert tuples during a parallel operation"
 msgstr "无法在并行操作期间插入元组"
 
-#: access/heap/heapam.c:2794
+#: access/heap/heapam.c:3030
 #, c-format
-#| msgid "cannot execute %s during recovery"
 msgid "cannot delete tuples during a parallel operation"
 msgstr "无法在并行操作期间删除元组"
 
-#: access/heap/heapam.c:2840
+#: access/heap/heapam.c:3076
 #, c-format
 msgid "attempted to delete invisible tuple"
 msgstr "试图删除不可见元组"
 
-#: access/heap/heapam.c:3267 access/heap/heapam.c:5818
+#: access/heap/heapam.c:3503 access/heap/heapam.c:6063
 #, c-format
-#| msgid "cannot execute %s during recovery"
 msgid "cannot update tuples during a parallel operation"
 msgstr "无法在并行操作期间更新元组"
 
-#: access/heap/heapam.c:3389
+#: access/heap/heapam.c:3625
 #, c-format
 msgid "attempted to update invisible tuple"
 msgstr "试图更新不可见元组"
 
-#: access/heap/heapam.c:4640 access/heap/heapam.c:4678
-#: access/heap/heapam.c:4901 executor/execMain.c:2279
+#: access/heap/heapam.c:4884 access/heap/heapam.c:4922
+#: access/heap/heapam.c:5145 executor/execMain.c:2304
 #, c-format
 msgid "could not obtain lock on row in relation \"%s\""
 msgstr "无法在关系 \"%s\"中的记录上获得锁"
 
-#: access/heap/hio.c:253 access/heap/rewriteheap.c:666
+#: access/heap/hio.c:325 access/heap/rewriteheap.c:666
 #, c-format
 msgid "row is too big: size %zu, maximum size %zu"
 msgstr "行太大: 尺寸 %zu, 最大值 %zu"
@@ -574,23 +886,22 @@ msgstr "无法往文件 \"%s\" 偏移量 %d, %d 写入: %m"
 
 #: access/heap/rewriteheap.c:965 access/heap/rewriteheap.c:1177
 #: access/heap/rewriteheap.c:1274 access/transam/timeline.c:407
-#: access/transam/timeline.c:497 access/transam/xlog.c:3011
-#: access/transam/xlog.c:3173 replication/logical/origin.c:613
-#: replication/logical/snapbuild.c:1592 replication/slot.c:1026
-#: replication/slot.c:1115 storage/file/fd.c:459 storage/file/fd.c:2718
-#: storage/smgr/md.c:982 storage/smgr/md.c:1213 storage/smgr/md.c:1386
-#: utils/misc/guc.c:6708
+#: access/transam/timeline.c:483 access/transam/xlog.c:3060
+#: access/transam/xlog.c:3222 replication/logical/snapbuild.c:1607
+#: replication/slot.c:1077 replication/slot.c:1162 storage/file/fd.c:624
+#: storage/file/fd.c:3052 storage/smgr/md.c:1031 storage/smgr/md.c:1262
+#: storage/smgr/md.c:1435 utils/misc/guc.c:6881
 #, c-format
 msgid "could not fsync file \"%s\": %m"
 msgstr "无法 fsync 文件 \"%s\": %m"
 
 #: access/heap/rewriteheap.c:1020 access/heap/rewriteheap.c:1140
-#: access/transam/timeline.c:315 access/transam/timeline.c:475
-#: access/transam/xlog.c:2967 access/transam/xlog.c:3116
-#: access/transam/xlog.c:10099 access/transam/xlog.c:10135
-#: access/transam/xlog.c:10457 postmaster/postmaster.c:4330
-#: replication/logical/origin.c:542 replication/slot.c:983
-#: storage/file/copydir.c:162 storage/smgr/md.c:320 utils/time/snapmgr.c:1071
+#: access/transam/timeline.c:315 access/transam/timeline.c:461
+#: access/transam/xlog.c:3016 access/transam/xlog.c:3165
+#: access/transam/xlog.c:10124 access/transam/xlog.c:10162
+#: access/transam/xlog.c:10489 postmaster/postmaster.c:4351
+#: replication/logical/origin.c:542 replication/slot.c:1034
+#: storage/file/copydir.c:162 storage/smgr/md.c:320 utils/time/snapmgr.c:1175
 #, c-format
 msgid "could not create file \"%s\": %m"
 msgstr "无法创建文件 \"%s\": %m"
@@ -600,86 +911,98 @@ msgstr "无法创建文件 \"%s\": %m"
 msgid "could not truncate file \"%s\" to %u: %m"
 msgstr "无法将文件\"%s\"截断为%u:%m"
 
-#: access/heap/rewriteheap.c:1156 replication/walsender.c:479
-#: storage/smgr/md.c:1798
+#: access/heap/rewriteheap.c:1156 replication/walsender.c:481
+#: storage/smgr/md.c:1847
 #, c-format
 msgid "could not seek to end of file \"%s\": %m"
 msgstr "无法查找到文件\"%s\"的末端: %m"
 
 #: access/heap/rewriteheap.c:1167 access/transam/timeline.c:367
-#: access/transam/timeline.c:401 access/transam/timeline.c:491
-#: access/transam/xlog.c:3002 access/transam/xlog.c:3166
-#: postmaster/postmaster.c:4340 postmaster/postmaster.c:4350
+#: access/transam/timeline.c:401 access/transam/timeline.c:477
+#: access/transam/xlog.c:3051 access/transam/xlog.c:3215
+#: postmaster/postmaster.c:4361 postmaster/postmaster.c:4371
 #: replication/logical/origin.c:551 replication/logical/origin.c:587
-#: replication/logical/origin.c:603 replication/logical/snapbuild.c:1576
-#: replication/slot.c:1012 storage/file/copydir.c:187
-#: utils/init/miscinit.c:1199 utils/init/miscinit.c:1208
-#: utils/init/miscinit.c:1215 utils/misc/guc.c:6669 utils/misc/guc.c:6700
-#: utils/misc/guc.c:8487 utils/misc/guc.c:8501 utils/time/snapmgr.c:1076
-#: utils/time/snapmgr.c:1083
+#: replication/logical/origin.c:603 replication/logical/snapbuild.c:1591
+#: replication/slot.c:1063 storage/file/copydir.c:187
+#: utils/init/miscinit.c:1228 utils/init/miscinit.c:1237
+#: utils/init/miscinit.c:1244 utils/misc/guc.c:6842 utils/misc/guc.c:6873
+#: utils/misc/guc.c:8715 utils/misc/guc.c:8729 utils/time/snapmgr.c:1180
+#: utils/time/snapmgr.c:1187
 #, c-format
 msgid "could not write to file \"%s\": %m"
 msgstr "无法写入文件 \"%s\": %m"
 
-#: access/heap/rewriteheap.c:1250 access/transam/xlog.c:10324
+#: access/heap/rewriteheap.c:1250 access/transam/xlog.c:10356
 #: access/transam/xlogarchive.c:114 access/transam/xlogarchive.c:468
-#: replication/logical/origin.c:529 replication/logical/reorderbuffer.c:2421
-#: replication/logical/reorderbuffer.c:2478
-#: replication/logical/snapbuild.c:1520 replication/logical/snapbuild.c:1895
-#: replication/slot.c:1089 storage/ipc/dsm.c:326 storage/smgr/md.c:420
-#: storage/smgr/md.c:469 storage/smgr/md.c:1333
+#: replication/logical/origin.c:529 replication/logical/reorderbuffer.c:2611
+#: replication/logical/reorderbuffer.c:2668
+#: replication/logical/snapbuild.c:1535 replication/logical/snapbuild.c:1910
+#: replication/slot.c:1136 storage/ipc/dsm.c:326 storage/smgr/md.c:420
+#: storage/smgr/md.c:469 storage/smgr/md.c:1382
 #, c-format
 msgid "could not remove file \"%s\": %m"
 msgstr "无法删除文件 \"%s\": %m"
 
 #: access/heap/rewriteheap.c:1264 access/transam/timeline.c:111
 #: access/transam/timeline.c:236 access/transam/timeline.c:334
-#: access/transam/xlog.c:2943 access/transam/xlog.c:3060
-#: access/transam/xlog.c:3101 access/transam/xlog.c:3392
-#: access/transam/xlog.c:3470 replication/basebackup.c:398
-#: replication/basebackup.c:1159 replication/logical/logicalfuncs.c:154
-#: replication/logical/origin.c:677 replication/logical/reorderbuffer.c:2038
-#: replication/logical/reorderbuffer.c:2242
-#: replication/logical/reorderbuffer.c:2869
-#: replication/logical/snapbuild.c:1569 replication/logical/snapbuild.c:1653
-#: replication/slot.c:1104 replication/walsender.c:472
-#: replication/walsender.c:2097 storage/file/copydir.c:155
-#: storage/file/fd.c:445 storage/file/fd.c:2653 storage/file/fd.c:2705
-#: storage/smgr/md.c:602 storage/smgr/md.c:860 utils/error/elog.c:1854
-#: utils/init/miscinit.c:1134 utils/init/miscinit.c:1255
-#: utils/init/miscinit.c:1333 utils/misc/guc.c:6912 utils/misc/guc.c:6944
+#: access/transam/xlog.c:2992 access/transam/xlog.c:3109
+#: access/transam/xlog.c:3150 access/transam/xlog.c:3423
+#: access/transam/xlog.c:3501 access/transam/xlogutils.c:705
+#: replication/basebackup.c:401 replication/basebackup.c:1162
+#: replication/logical/origin.c:658 replication/logical/reorderbuffer.c:2141
+#: replication/logical/reorderbuffer.c:2381
+#: replication/logical/reorderbuffer.c:3059
+#: replication/logical/snapbuild.c:1584 replication/logical/snapbuild.c:1668
+#: replication/slot.c:1151 replication/walsender.c:474
+#: replication/walsender.c:2104 storage/file/copydir.c:155
+#: storage/file/fd.c:607 storage/file/fd.c:2964 storage/file/fd.c:3031
+#: storage/smgr/md.c:602 utils/error/elog.c:1870 utils/init/miscinit.c:1163
+#: utils/init/miscinit.c:1284 utils/init/miscinit.c:1362 utils/misc/guc.c:7101
+#: utils/misc/guc.c:7134
 #, c-format
 msgid "could not open file \"%s\": %m"
 msgstr "无法打开文件 \"%s\": %m"
 
-#: access/index/indexam.c:172 catalog/objectaddress.c:1144
-#: commands/indexcmds.c:1754 commands/tablecmds.c:238
-#: commands/tablecmds.c:11967
+#: access/index/amapi.c:69 commands/amcmds.c:164
+#, c-format
+#| msgid "access method \"%s\" does not exist"
+msgid "access method \"%s\" is not of type %s"
+msgstr "访问方法 \"%s\" 不是类型 %s 的"
+
+#: access/index/amapi.c:78
+#, c-format
+#| msgid "access method \"%s\" does not exist"
+msgid "index access method \"%s\" does not have a handler"
+msgstr "索引访问方法 \"%s\" 没有处理器"
+
+#: access/index/indexam.c:155 catalog/objectaddress.c:1196
+#: commands/indexcmds.c:1799 commands/tablecmds.c:241
+#: commands/tablecmds.c:12035
 #, c-format
 msgid "\"%s\" is not an index"
 msgstr "\"%s\" 不是一个索引"
 
-#: access/nbtree/nbtinsert.c:419
+#: access/nbtree/nbtinsert.c:427
 #, c-format
 msgid "duplicate key value violates unique constraint \"%s\""
 msgstr "重复键违反唯一约束\"%s\""
 
-#: access/nbtree/nbtinsert.c:421
+#: access/nbtree/nbtinsert.c:429
 #, c-format
 msgid "Key %s already exists."
 msgstr "键值\"%s\" 已经存在"
 
-#: access/nbtree/nbtinsert.c:488
+#: access/nbtree/nbtinsert.c:496
 #, c-format
 msgid "failed to re-find tuple within index \"%s\""
 msgstr "在索引\"%s\"中重新寻找元组失败"
 
-#: access/nbtree/nbtinsert.c:490
+#: access/nbtree/nbtinsert.c:498
 #, c-format
 msgid "This may be because of a non-immutable index expression."
 msgstr "这可能是由于一个非不可改变的索引表达式引起的"
 
-#: access/nbtree/nbtinsert.c:570 access/nbtree/nbtsort.c:491
+#: access/nbtree/nbtinsert.c:578 access/nbtree/nbtsort.c:491
 #, c-format
 msgid ""
 "Values larger than 1/3 of a buffer page cannot be indexed.\n"
@@ -690,7 +1013,7 @@ msgstr ""
 "请考虑这个值MD5哈希函数索引,或者使用全文索引."
 
 #: access/nbtree/nbtpage.c:168 access/nbtree/nbtpage.c:371
-#: access/nbtree/nbtpage.c:458 parser/parse_utilcmd.c:1665
+#: access/nbtree/nbtpage.c:458 parser/parse_utilcmd.c:1715
 #, c-format
 msgid "index \"%s\" is not a btree"
 msgstr "索引 \"%s\" 不是一个 btree"
@@ -715,37 +1038,136 @@ msgstr ""
 "可能是由于升级之前, 使用了9.3或者更老的版本里的VACUUM命令并产生中断造成的. 请"
 "为它重建索引."
 
-#: access/spgist/spgutils.c:663
+#: access/nbtree/nbtvalidate.c:100
+#, c-format
+msgid "btree opfamily %s contains function %s with invalid support number %d"
+msgstr "btree opfamily %1$s 包含具有无效支持编号 %3$d 的函数 %2$s"
+
+#: access/nbtree/nbtvalidate.c:112
+#, c-format
+msgid ""
+"btree opfamily %s contains function %s with wrong signature for support "
+"number %d"
+msgstr "btree opfamily %1$s 包含的函数 %2$s 对支持编号 %3$d 具有错误的签名"
+
+#: access/nbtree/nbtvalidate.c:132
+#, c-format
+msgid "btree opfamily %s contains operator %s with invalid strategy number %d"
+msgstr "btree opfamily %1$s 包含具有无效策略编号 %3$d 的操作符 %2$s"
+
+#: access/nbtree/nbtvalidate.c:145
+#, c-format
+msgid ""
+"btree opfamily %s contains invalid ORDER BY specification for operator %s"
+msgstr "btree opfamily %s 包含操作符 %s 的无效 ORDER BY 声明"
+
+#: access/nbtree/nbtvalidate.c:158
+#, c-format
+msgid "btree opfamily %s contains operator %s with wrong signature"
+msgstr "btree opfamily %s 包含具有错误签名的操作符 %s"
+
+#: access/nbtree/nbtvalidate.c:200
+#, c-format
+msgid "btree opfamily %s is missing operator(s) for types %s and %s"
+msgstr "btree opfamily %s 缺少类型 %s 和 %s 的操作符"
+
+#: access/nbtree/nbtvalidate.c:210
+#, c-format
+msgid "btree opfamily %s is missing support function for types %s and %s"
+msgstr "btree opfamily %s 缺少类型 %s 和 %s 的支持函数"
+
+#: access/nbtree/nbtvalidate.c:224
+#, c-format
+msgid "btree opclass %s is missing operator(s)"
+msgstr "btree opclass %s 缺少操作符"
+
+#: access/nbtree/nbtvalidate.c:241
+#, c-format
+msgid "btree opfamily %s is missing cross-type operator(s)"
+msgstr "btree opfamily %s 缺少跨类型操作符"
+
+#: access/spgist/spgutils.c:704
 #, c-format
 msgid "SP-GiST inner tuple size %zu exceeds maximum %zu"
 msgstr "SP-GiST内部元组大小%zu超出最大值%zu"
 
+#: access/spgist/spgvalidate.c:92
+#, c-format
+msgid ""
+"spgist opfamily %s contains support procedure %s with cross-type registration"
+msgstr "spgist opfamily %s 包含具有跨类型注册的支持过程 %s"
+
+#: access/spgist/spgvalidate.c:115
+#, c-format
+msgid "spgist opfamily %s contains function %s with invalid support number %d"
+msgstr "spgist opfamily %1$s 包含具有无效支持编号 %3$d 的函数 %2$s"
+
+#: access/spgist/spgvalidate.c:127
+#, c-format
+msgid ""
+"spgist opfamily %s contains function %s with wrong signature for support "
+"number %d"
+msgstr "spgist opfamily %1$s 包含的函数 %2$s 对支持编号 %3$d 具有错误的签名"
+
+#: access/spgist/spgvalidate.c:146
+#, c-format
+msgid "spgist opfamily %s contains operator %s with invalid strategy number %d"
+msgstr "spgist opfamily %1$s 包含具有无效策略编号 %3$d 的操作符 %2$s"
+
+#: access/spgist/spgvalidate.c:159
+#, c-format
+msgid ""
+"spgist opfamily %s contains invalid ORDER BY specification for operator %s"
+msgstr "spgist opfamily %s 包含操作符 %s 的无效 ORDER BY 声明"
+
+#: access/spgist/spgvalidate.c:172
+#, c-format
+msgid "spgist opfamily %s contains operator %s with wrong signature"
+msgstr "spgist opfamily %s 包含具有错误签名的操作符 %s"
+
+#: access/spgist/spgvalidate.c:200
+#, c-format
+msgid "spgist opfamily %s is missing operator(s) for types %s and %s"
+msgstr "spgist opfamily %s 缺少类型 %s 和 %s 的操作符"
+
+#: access/spgist/spgvalidate.c:220
+#, c-format
+msgid "spgist opfamily %s is missing support function %d for type %s"
+msgstr "spgist opfamily %1$s 缺少类型 %3$s 的支持函数 %2$d"
+
+#: access/spgist/spgvalidate.c:233
+#, c-format
+msgid "spgist opclass %s is missing operator(s)"
+msgstr "spgist opclass %s 缺少操作符"
+
 #: access/tablesample/bernoulli.c:152 access/tablesample/system.c:156
 #, c-format
-#| msgid "timestamp(%d) precision must be between %d and %d"
 msgid "sample percentage must be between 0 and 100"
 msgstr "采样百分率必须位于0和100之间"
 
-#: access/transam/commit_ts.c:294
+#: access/transam/commit_ts.c:295
 #, c-format
-#| msgid "cannot inherit from temporary relation \"%s\""
 msgid "cannot retrieve commit timestamp for transaction %u"
 msgstr "无法检索到事务%u的提交时间戳"
 
-#: access/transam/commit_ts.c:302 access/transam/commit_ts.c:373
+#: access/transam/commit_ts.c:385
 #, c-format
-#| msgid "could not commit database transaction"
 msgid "could not get commit timestamp data"
 msgstr "无法得到提交时间戳数据"
 
-#: access/transam/commit_ts.c:303 access/transam/commit_ts.c:374
-#: libpq/hba.c:1424
+#: access/transam/commit_ts.c:387
+#, c-format
+#| msgid "Make sure the configuration parameter \"%s\" is set."
+msgid ""
+"Make sure the configuration parameter \"%s\" is set on the master server."
+msgstr "确保在主服务器上配置参数 \"%s\" 已经被设置。"
+
+#: access/transam/commit_ts.c:389 libpq/hba.c:1441
 #, c-format
-#| msgid "Make sure the configuration parameter \"ssl_ca_file\" is set."
 msgid "Make sure the configuration parameter \"%s\" is set."
 msgstr "确保配置参数\"%s\"已经被设置。"
 
-#: access/transam/multixact.c:1008
+#: access/transam/multixact.c:1000
 #, c-format
 msgid ""
 "database is not accepting commands that generate new MultiXactIds to avoid "
@@ -753,8 +1175,8 @@ msgid ""
 msgstr ""
 "数据库没有接收产生新的MultiXactIds的命令来避免在数据库\"%s\"中的重叠数据损失"
 
-#: access/transam/multixact.c:1010 access/transam/multixact.c:1017
-#: access/transam/multixact.c:1041 access/transam/multixact.c:1050
+#: access/transam/multixact.c:1002 access/transam/multixact.c:1009
+#: access/transam/multixact.c:1033 access/transam/multixact.c:1042
 #, c-format
 msgid ""
 "Execute a database-wide VACUUM in that database.\n"
@@ -763,7 +1185,7 @@ msgstr ""
 "在数据库中执行数据库范围的VACUUM.\n"
 "您也可能需要提交或回滚旧的已准备好的事务."
 
-#: access/transam/multixact.c:1015
+#: access/transam/multixact.c:1007
 #, c-format
 msgid ""
 "database is not accepting commands that generate new MultiXactIds to avoid "
@@ -772,14 +1194,14 @@ msgstr ""
 "数据库没有接受产生新的MultiXactIds的命令来避免在带有OID为%u的数据库中的重叠数"
 "据损失"
 
-#: access/transam/multixact.c:1036 access/transam/multixact.c:2319
+#: access/transam/multixact.c:1028 access/transam/multixact.c:2317
 #, c-format
 msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used"
 msgid_plural ""
 "database \"%s\" must be vacuumed before %u more MultiXactIds are used"
 msgstr[0] "数据库 \"%s\"必须在运行%u个事务前进行清理(vacuume)."
 
-#: access/transam/multixact.c:1045 access/transam/multixact.c:2328
+#: access/transam/multixact.c:1037 access/transam/multixact.c:2326
 #, c-format
 msgid ""
 "database with OID %u must be vacuumed before %u more MultiXactId is used"
@@ -787,13 +1209,12 @@ msgid_plural ""
 "database with OID %u must be vacuumed before %u more MultiXactIds are used"
 msgstr[0] "带有OID为%u的数据库必须在%u个MultiXactIds使用前进行清理(vacuume)."
 
-#: access/transam/multixact.c:1106
+#: access/transam/multixact.c:1098
 #, c-format
-#| msgid "stack depth limit exceeded"
 msgid "multixact \"members\" limit exceeded"
 msgstr "超过多事务\"成员\"限制"
 
-#: access/transam/multixact.c:1107
+#: access/transam/multixact.c:1099
 #, c-format
 msgid ""
 "This command would create a multixact with %u members, but the remaining "
@@ -804,7 +1225,7 @@ msgid_plural ""
 msgstr[0] ""
 "这个命令将创建一个具有%u成员的多事务,但是剩余的空间只能用于%u个成员。"
 
-#: access/transam/multixact.c:1112
+#: access/transam/multixact.c:1104
 #, c-format
 msgid ""
 "Execute a database-wide VACUUM in database with OID %u with reduced "
@@ -814,12 +1235,8 @@ msgstr ""
 "在具有缩减vacuum_multixact_freeze_min_age和vacuum_multixact_freeze_table_age"
 "设置的数据库(OID是%u)中执行一次数据库范围的VACUUM。"
 
-#: access/transam/multixact.c:1143
+#: access/transam/multixact.c:1135
 #, c-format
-#| msgid ""
-#| "database with OID %u must be vacuumed before %u more MultiXactId is used"
-#| msgid_plural ""
-#| "database with OID %u must be vacuumed before %u more MultiXactIds are used"
 msgid ""
 "database with OID %u must be vacuumed before %d more multixact member is used"
 msgid_plural ""
@@ -827,7 +1244,7 @@ msgid_plural ""
 "used"
 msgstr[0] "OID为%u的数据库必须在%d以上个多事务成员被使用前进行清理(VACUUM)"
 
-#: access/transam/multixact.c:1148
+#: access/transam/multixact.c:1140
 #, c-format
 msgid ""
 "Execute a database-wide VACUUM in that database with reduced "
@@ -837,22 +1254,22 @@ msgstr ""
 "在具有缩减vacuum_multixact_freeze_min_age和vacuum_multixact_freeze_table_age"
 "设置的数据库中执行一次数据库范围的VACUUM。"
 
-#: access/transam/multixact.c:1286
+#: access/transam/multixact.c:1278
 #, c-format
 msgid "MultiXactId %u does no longer exist -- apparent wraparound"
 msgstr "MultiXactId的值%u不再使用 -- 明显是回卷了"
 
-#: access/transam/multixact.c:1294
+#: access/transam/multixact.c:1286
 #, c-format
 msgid "MultiXactId %u has not been created yet -- apparent wraparound"
 msgstr "MultiXactId %u还没被创建 -- 有明显的重叠"
 
-#: access/transam/multixact.c:2269
+#: access/transam/multixact.c:2267
 #, c-format
 msgid "MultiXactId wrap limit is %u, limited by database with OID %u"
 msgstr "MultiXactId的封装限制是%u, 限制于OID为%u的数据库."
 
-#: access/transam/multixact.c:2324 access/transam/multixact.c:2333
+#: access/transam/multixact.c:2322 access/transam/multixact.c:2331
 #: access/transam/varsup.c:146 access/transam/varsup.c:153
 #: access/transam/varsup.c:384 access/transam/varsup.c:391
 #, c-format
@@ -866,7 +1283,6 @@ msgstr ""
 
 #: access/transam/multixact.c:2601
 #, c-format
-#| msgid "oldest MultiXactId: %u, in database %u"
 msgid "oldest MultiXactId member is at offset %u"
 msgstr "最旧的 MultiXactId 成员位于偏移量%u"
 
@@ -888,103 +1304,98 @@ msgstr "多事务成员回卷保护现在被启用。"
 msgid "MultiXact member stop limit is now %u based on MultiXact %u"
 msgstr "多事务成员停止限制现在是%u,这是基于多事务%u得出的"
 
-#: access/transam/multixact.c:3007
+#: access/transam/multixact.c:3009
 #, c-format
 msgid ""
 "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation"
 msgstr "没有找到最旧的多事务%u,最新的多事务是%u,跳过截断"
 
-#: access/transam/multixact.c:3025
+#: access/transam/multixact.c:3027
 #, c-format
 msgid ""
 "cannot truncate up to MultiXact %u because it does not exist on disk, "
 "skipping truncation"
 msgstr "无法一直截断到多事务%u,因为它在磁盘上不存在,跳过截断"
 
-#: access/transam/multixact.c:3351
+#: access/transam/multixact.c:3353
 #, c-format
 msgid "invalid MultiXactId: %u"
 msgstr "无效的MultiXactId:%u"
 
-#: access/transam/parallel.c:577
+#: access/transam/parallel.c:581
 #, c-format
-#| msgid "cannot execute %s in a read-only transaction"
 msgid "postmaster exited during a parallel transaction"
 msgstr "在并行操作期间postmaster退出"
 
 # fe-exec.c:745
-#: access/transam/parallel.c:668
+#: access/transam/parallel.c:739
 #, c-format
-#| msgid "no connection to the server\n"
 msgid "lost connection to parallel worker"
 msgstr "并行工作者进程的连接丢失"
 
-#: access/transam/parallel.c:845
+#: access/transam/parallel.c:914
 #, c-format
-#| msgid "too many dynamic shared memory segments"
 msgid "could not map dynamic shared memory segment"
 msgstr "无法映射动态共享内存段"
 
-#: access/transam/parallel.c:850
+#: access/transam/parallel.c:919
 #, c-format
-#| msgid "too many dynamic shared memory segments"
 msgid "invalid magic number in dynamic shared memory segment"
 msgstr "动态共享内存段中有非法magic号"
 
-#: access/transam/parallel.c:1001
+#: access/transam/parallel.c:1084
 #, c-format
-#| msgid "parallel archiver"
 msgid "parallel worker, PID %d"
 msgstr "并行工作者进程,PID为%d"
 
-#: access/transam/slru.c:652
+#: access/transam/slru.c:665
 #, c-format
 msgid "file \"%s\" doesn't exist, reading as zeroes"
 msgstr "文件 \"%s\" 不存在, 假设读取了 0 字节"
 
-#: access/transam/slru.c:882 access/transam/slru.c:888
-#: access/transam/slru.c:895 access/transam/slru.c:902
-#: access/transam/slru.c:909 access/transam/slru.c:916
+#: access/transam/slru.c:895 access/transam/slru.c:901
+#: access/transam/slru.c:908 access/transam/slru.c:915
+#: access/transam/slru.c:922 access/transam/slru.c:929
 #, c-format
 msgid "could not access status of transaction %u"
 msgstr "无法处理事物 %u 的状态"
 
-#: access/transam/slru.c:883
+#: access/transam/slru.c:896
 #, c-format
 msgid "Could not open file \"%s\": %m."
 msgstr "无法打开文件 \"%s\": %m"
 
-#: access/transam/slru.c:889
+#: access/transam/slru.c:902
 #, c-format
 msgid "Could not seek in file \"%s\" to offset %u: %m."
 msgstr "无法在文件 \"%s\" 偏移量 %u 查找: %m"
 
-#: access/transam/slru.c:896
+#: access/transam/slru.c:909
 #, c-format
 msgid "Could not read from file \"%s\" at offset %u: %m."
 msgstr "无法从文件 \"%s\" 偏移量 %u 读取: %m"
 
-#: access/transam/slru.c:903
+#: access/transam/slru.c:916
 #, c-format
 msgid "Could not write to file \"%s\" at offset %u: %m."
 msgstr "无法往文件 \"%s\" 偏移量 %u 写入: %m"
 
-#: access/transam/slru.c:910
+#: access/transam/slru.c:923
 #, c-format
 msgid "Could not fsync file \"%s\": %m."
 msgstr "无法在文件 \"%s\"上执行系统调用fsync: %m"
 
-#: access/transam/slru.c:917
+#: access/transam/slru.c:930
 #, c-format
 msgid "Could not close file \"%s\": %m."
 msgstr "无法关闭文件 \"%s\": %m"
 
-#: access/transam/slru.c:1172
+#: access/transam/slru.c:1185
 #, c-format
 msgid "could not truncate directory \"%s\": apparent wraparound"
 msgstr "无法清空目录\"%s\": 有明显的重叠"
 
-#: access/transam/slru.c:1227 access/transam/slru.c:1283
+#: access/transam/slru.c:1240 access/transam/slru.c:1296
 #, c-format
 msgid "removing file \"%s\""
 msgstr "删除文件 \"%s\""
@@ -1025,201 +1436,166 @@ msgstr "历史文件 \"%s\" 中存在无效数据"
 msgid "Timeline IDs must be less than child timeline's ID."
 msgstr "Timeline ID 必须小于子 timeline 的 ID."
 
-#: access/transam/timeline.c:346 access/transam/xlog.c:3144
-#: access/transam/xlog.c:10306 access/transam/xlog.c:10319
-#: access/transam/xlog.c:10682 access/transam/xlog.c:10725
-#: access/transam/xlog.c:10764 access/transam/xlog.c:10807
-#: access/transam/xlogfuncs.c:478 access/transam/xlogfuncs.c:497
-#: commands/extension.c:3047 replication/logical/origin.c:684
-#: replication/logical/origin.c:714 replication/logical/reorderbuffer.c:2887
-#: replication/walsender.c:497 storage/file/copydir.c:176
-#: utils/adt/genfile.c:151
-#, c-format
-msgid "could not read file \"%s\": %m"
-msgstr "无法读取文件 \"%s\": %m"
-
-#: access/transam/timeline.c:412 access/transam/timeline.c:502
-#: access/transam/xlog.c:3017 access/transam/xlog.c:3178
-#: access/transam/xlogfuncs.c:503 commands/copy.c:1631
+#: access/transam/timeline.c:412 access/transam/timeline.c:488
+#: access/transam/xlog.c:3066 access/transam/xlog.c:3227
+#: access/transam/xlogfuncs.c:691 commands/copy.c:1671
 #: storage/file/copydir.c:201
 #, c-format
 msgid "could not close file \"%s\": %m"
 msgstr "无法关闭文件 \"%s\": %m"
 
-#: access/transam/timeline.c:429 access/transam/timeline.c:519
-#, c-format
-msgid "could not link file \"%s\" to \"%s\": %m"
-msgstr "无法把文件 \"%s\" 链接到 \"%s\": %m"
-
-#: access/transam/timeline.c:436 access/transam/timeline.c:526
-#: access/transam/xlog.c:5302 access/transam/xlog.c:6504
-#: access/transam/xlog.c:6521 access/transam/xlog.c:7303
-#: access/transam/xlogarchive.c:458 access/transam/xlogarchive.c:476
-#: access/transam/xlogarchive.c:586 postmaster/pgarch.c:734
-#: replication/logical/origin.c:624 replication/logical/snapbuild.c:1606
-#: replication/slot.c:470 replication/slot.c:926 replication/slot.c:1038
-#: utils/misc/guc.c:6968 utils/time/snapmgr.c:1094
-#, c-format
-msgid "could not rename file \"%s\" to \"%s\": %m"
-msgstr "无法把文件 \"%s\" 重命名为 \"%s\": %m"
-
-#: access/transam/timeline.c:598
+#: access/transam/timeline.c:570
 #, c-format
 msgid "requested timeline %u is not in this server's history"
 msgstr "服务器上没有起始时间表 %u"
 
-#: access/transam/twophase.c:330
+#: access/transam/twophase.c:363
 #, c-format
 msgid "transaction identifier \"%s\" is too long"
 msgstr "事务标示符 \"%s\" 太长"
 
 # large_obj.c:55
-#: access/transam/twophase.c:337
+#: access/transam/twophase.c:370
 #, c-format
 msgid "prepared transactions are disabled"
 msgstr "禁用已准备好的事务"
 
-#: access/transam/twophase.c:338
+#: access/transam/twophase.c:371
 #, c-format
 msgid "Set max_prepared_transactions to a nonzero value."
 msgstr "将max_prepared_transactions设置为一个非零值"
 
-#: access/transam/twophase.c:357
+#: access/transam/twophase.c:390
 #, c-format
 msgid "transaction identifier \"%s\" is already in use"
 msgstr "事务标示符\"%s\"已经在使用"
 
-#: access/transam/twophase.c:366
+#: access/transam/twophase.c:399
 #, c-format
 msgid "maximum number of prepared transactions reached"
 msgstr "已经达到已准备好事务的最大数量"
 
-#: access/transam/twophase.c:367
+#: access/transam/twophase.c:400
 #, c-format
 msgid "Increase max_prepared_transactions (currently %d)."
 msgstr "增加max_prepared_transactions的值(当前值是%d)."
 
-#: access/transam/twophase.c:504
+#: access/transam/twophase.c:539
 #, c-format
 msgid "prepared transaction with identifier \"%s\" is busy"
 msgstr "标示符为\"%s\"的事务处于繁忙状态."
 
-#: access/transam/twophase.c:510
+#: access/transam/twophase.c:545
 #, c-format
 msgid "permission denied to finish prepared transaction"
 msgstr "完成已准备好事务的权限不够"
 
-#: access/transam/twophase.c:511
+#: access/transam/twophase.c:546
 #, c-format
 msgid "Must be superuser or the user that prepared the transaction."
 msgstr "必须是超级用户或者是准备好事务的用户"
 
-#: access/transam/twophase.c:522
+#: access/transam/twophase.c:557
 #, c-format
 msgid "prepared transaction belongs to another database"
 msgstr "已准备好的事务属于另一个数据库"
 
-#: access/transam/twophase.c:523
+#: access/transam/twophase.c:558
 #, c-format
 msgid ""
 "Connect to the database where the transaction was prepared to finish it."
 msgstr "连接到带有准备好完成事务的数据库"
 
-#: access/transam/twophase.c:538
+#: access/transam/twophase.c:573
 #, c-format
 msgid "prepared transaction with identifier \"%s\" does not exist"
 msgstr "带有标示符\"%s\" 已准备好事务不存在"
 
-#: access/transam/twophase.c:1048
+#: access/transam/twophase.c:1042
 #, c-format
 msgid "two-phase state file maximum length exceeded"
 msgstr "超过两阶段状态文件的最大长度"
 
-#: access/transam/twophase.c:1061
-#, c-format
-msgid "could not create two-phase state file \"%s\": %m"
-msgstr "无法创建两阶段提交状态文件 \"%s\": %m"
-
-#: access/transam/twophase.c:1075 access/transam/twophase.c:1092
-#: access/transam/twophase.c:1145 access/transam/twophase.c:1575
-#: access/transam/twophase.c:1582
-#, c-format
-msgid "could not write two-phase state file: %m"
-msgstr "无法对两阶段提交状态文件进行写操作: %m"
-
-#: access/transam/twophase.c:1101
-#, c-format
-msgid "could not seek in two-phase state file: %m"
-msgstr "无法在两阶段提交状态文件中进行查找: %m"
-
-#: access/transam/twophase.c:1151 access/transam/twophase.c:1600
-#, c-format
-msgid "could not close two-phase state file: %m"
-msgstr "无法关闭两阶段提交状态文件: %m"
-
-#: access/transam/twophase.c:1239 access/transam/twophase.c:1681
+#: access/transam/twophase.c:1160
 #, c-format
 msgid "could not open two-phase state file \"%s\": %m"
 msgstr "无法打开两阶段提交状态文件\"%s\": %m"
 
-#: access/transam/twophase.c:1256
+#: access/transam/twophase.c:1177
 #, c-format
 msgid "could not stat two-phase state file \"%s\": %m"
 msgstr "无法获取两阶段提交状态文件 \"%s\" 的状态: %m"
 
-#: access/transam/twophase.c:1288
+#: access/transam/twophase.c:1209
 #, c-format
 msgid "could not read two-phase state file \"%s\": %m"
 msgstr "无法读取两阶段提交状态文件 \"%s\": %m"
 
-#: access/transam/twophase.c:1384
+#: access/transam/twophase.c:1262 access/transam/xlog.c:6070
+#, c-format
+msgid "Failed while allocating an XLog reading processor."
+msgstr "分配XLog读取处理器失败."
+
+#: access/transam/twophase.c:1268
+#, c-format
+#| msgid "could not read two-phase state file \"%s\": %m"
+msgid "could not read two-phase state from xlog at %X/%X"
+msgstr "无法从 %X/%X 位置的 xlog 读取两阶段状态"
+
+#: access/transam/twophase.c:1276
 #, c-format
-msgid "two-phase state file for transaction %u is corrupt"
-msgstr "事务%u的两阶段提交状态文件损坏"
+msgid "expected two-phase state data is not present in xlog at %X/%X"
+msgstr "预期的两阶段状态数据没有出现在 xlog 的 %X/%X 位置上"
 
-#: access/transam/twophase.c:1537
+#: access/transam/twophase.c:1512
 #, c-format
 msgid "could not remove two-phase state file \"%s\": %m"
 msgstr "无法删除两阶段提交状态文件\"%s\": %m"
 
-#: access/transam/twophase.c:1566
+#: access/transam/twophase.c:1542
 #, c-format
 msgid "could not recreate two-phase state file \"%s\": %m"
 msgstr "无法重新创建两阶段提交状态文件 \"%s\": %m"
 
-#: access/transam/twophase.c:1594
+#: access/transam/twophase.c:1551 access/transam/twophase.c:1558
+#, c-format
+msgid "could not write two-phase state file: %m"
+msgstr "无法对两阶段提交状态文件进行写操作: %m"
+
+#: access/transam/twophase.c:1570
 #, c-format
 msgid "could not fsync two-phase state file: %m"
 msgstr "无法在两阶段提交状态文件上执行系统调用fsync: %m"
 
-#: access/transam/twophase.c:1690
+#: access/transam/twophase.c:1576
 #, c-format
-msgid "could not fsync two-phase state file \"%s\": %m"
-msgstr "æ\97 æ³\95å\9c¨ä¸¤é\98¶æ®µæ\8f\90交ç\8a¶æ\80\81æ\96\87ä»¶\"%s\"ä¸\8aæ\89§è¡\8cç³»ç»\9fè°\83ç\94¨fsync: %m"
+msgid "could not close two-phase state file: %m"
+msgstr "æ\97 æ³\95å\85³é\97­ä¸¤é\98¶æ®µæ\8f\90交ç\8a¶æ\80\81æ\96\87ä»¶: %m"
 
-#: access/transam/twophase.c:1697
+#: access/transam/twophase.c:1651
 #, c-format
-msgid "could not close two-phase state file \"%s\": %m"
-msgstr "无法关闭两阶段提交状态文件 \"%s\": %m"
+msgid ""
+"%u two-phase state files were written for long-running prepared transactions"
+msgstr "为长时间运行的准备好事务写了 %u 个两阶段状态文件"
 
-#: access/transam/twophase.c:1762
+#: access/transam/twophase.c:1712
 #, c-format
 msgid "removing future two-phase state file \"%s\""
 msgstr "删除可能产生的两阶段提交状态文件 \"%s\""
 
-#: access/transam/twophase.c:1778 access/transam/twophase.c:1789
-#: access/transam/twophase.c:1908 access/transam/twophase.c:1919
-#: access/transam/twophase.c:1992
+#: access/transam/twophase.c:1728 access/transam/twophase.c:1739
+#: access/transam/twophase.c:1858 access/transam/twophase.c:1869
+#: access/transam/twophase.c:1943
 #, c-format
 msgid "removing corrupt two-phase state file \"%s\""
 msgstr "删除已损坏的两阶段提交状态文件\"%s\""
 
-#: access/transam/twophase.c:1897 access/transam/twophase.c:1981
+#: access/transam/twophase.c:1847 access/transam/twophase.c:1932
 #, c-format
 msgid "removing stale two-phase state file \"%s\""
 msgstr "正在删除无用的两阶段提交状态文件\"%s\""
 
-#: access/transam/twophase.c:1999
+#: access/transam/twophase.c:1950
 #, c-format
 msgid "recovering prepared transaction %u"
 msgstr "正在恢复已准备事务%u"
@@ -1283,193 +1659,179 @@ msgid "cannot PREPARE a transaction that has exported snapshots"
 msgstr "无法在一个已经导出快照的事务上执行PREPARE操作"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3137
+#: access/transam/xact.c:3141
 #, c-format
 msgid "%s cannot run inside a transaction block"
 msgstr "%s 无法在事物块中运行"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3147
+#: access/transam/xact.c:3151
 #, c-format
 msgid "%s cannot run inside a subtransaction"
 msgstr "%s 无法在一个子事物中运行"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3157
+#: access/transam/xact.c:3161
 #, c-format
 msgid "%s cannot be executed from a function or multi-command string"
 msgstr "%s 无法从函数或包含多条命令的字符串中执行."
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3228
+#: access/transam/xact.c:3232
 #, c-format
 msgid "%s can only be used in transaction blocks"
 msgstr "%s 只能在事务块中使用"
 
-#: access/transam/xact.c:3412
+#: access/transam/xact.c:3416
 #, c-format
 msgid "there is already a transaction in progress"
 msgstr "已经有一个事物在运行中"
 
-#: access/transam/xact.c:3580 access/transam/xact.c:3683
+#: access/transam/xact.c:3584 access/transam/xact.c:3687
 #, c-format
 msgid "there is no transaction in progress"
 msgstr "没有事物在运行中"
 
-#: access/transam/xact.c:3591
+#: access/transam/xact.c:3595
 #, c-format
-#| msgid "could not commit database transaction"
 msgid "cannot commit during a parallel operation"
 msgstr "并行操作期间无法提交"
 
-#: access/transam/xact.c:3694
+#: access/transam/xact.c:3698
 #, c-format
 msgid "cannot abort during a parallel operation"
 msgstr "在并行操作期间无法中止"
 
-#: access/transam/xact.c:3736
+#: access/transam/xact.c:3740
 #, c-format
 msgid "cannot define savepoints during a parallel operation"
 msgstr "在并行操作期间无法定义保存点"
 
-#: access/transam/xact.c:3803
+#: access/transam/xact.c:3807
 #, c-format
-#| msgid "cannot create temporary tables during recovery"
 msgid "cannot release savepoints during a parallel operation"
 msgstr "在并行操作期间不能释放保存点"
 
-#: access/transam/xact.c:3814 access/transam/xact.c:3866
-#: access/transam/xact.c:3872 access/transam/xact.c:3928
-#: access/transam/xact.c:3978 access/transam/xact.c:3984
+#: access/transam/xact.c:3818 access/transam/xact.c:3870
+#: access/transam/xact.c:3876 access/transam/xact.c:3932
+#: access/transam/xact.c:3982 access/transam/xact.c:3988
 #, c-format
 msgid "no such savepoint"
 msgstr "没有这个保存点"
 
-#: access/transam/xact.c:3916
+#: access/transam/xact.c:3920
 #, c-format
 msgid "cannot rollback to savepoints during a parallel operation"
 msgstr "在并行操作期间无法回滚到保存点"
 
-#: access/transam/xact.c:4044
+#: access/transam/xact.c:4048
 #, c-format
-#| msgid "cannot have more than 2^32-1 subtransactions in a transaction"
 msgid "cannot start subtransactions during a parallel operation"
 msgstr "在并行操作期间不能开始子事务"
 
-#: access/transam/xact.c:4111
+#: access/transam/xact.c:4115
 #, c-format
-#| msgid "cannot have more than 2^32-1 subtransactions in a transaction"
 msgid "cannot commit subtransactions during a parallel operation"
 msgstr "在并行操作期间不能提交子事务"
 
-#: access/transam/xact.c:4717
+#: access/transam/xact.c:4723
 #, c-format
 msgid "cannot have more than 2^32-1 subtransactions in a transaction"
 msgstr "在一个事物中不可以超过有 2^32-1 个子事物"
 
-#: access/transam/xlog.c:2270
+#: access/transam/xlog.c:2272
 #, c-format
 msgid "could not seek in log file %s to offset %u: %m"
 msgstr "无法在日志文件 \"%s\" 中定位 %u: %m"
 
-#: access/transam/xlog.c:2290
+#: access/transam/xlog.c:2292
 #, c-format
 msgid "could not write to log file %s at offset %u, length %zu: %m"
 msgstr "无法在偏移量 %2$u,长度 %3$zu写入日志文件%1$s: %4$m"
 
-#: access/transam/xlog.c:2553
+#: access/transam/xlog.c:2555
 #, c-format
 msgid "updated min recovery point to %X/%X on timeline %u"
 msgstr "在时间点%3$u上将最小恢复点更新到%1$X/%2$X"
 
-#: access/transam/xlog.c:3148
+#: access/transam/xlog.c:3197
 #, c-format
 msgid "not enough data in file \"%s\""
 msgstr "文件 \"%s\" 中的数据不足"
 
-#: access/transam/xlog.c:3267
-#, c-format
-msgid "could not link file \"%s\" to \"%s\" (initialization of log file): %m"
-msgstr "无法链接文件 \"%s\" 到 \"%s\" (日志文件初始化): %m"
-
-#: access/transam/xlog.c:3279
-#, c-format
-msgid "could not rename file \"%s\" to \"%s\" (initialization of log file): %m"
-msgstr "无法重命名文件 \"%s\" 为 \"%s\" (日志文件初始化): %m"
-
-#: access/transam/xlog.c:3307
+#: access/transam/xlog.c:3338
 #, c-format
 msgid "could not open transaction log file \"%s\": %m"
 msgstr "无法打开事务日志文件 \"%s\": %m"
 
-#: access/transam/xlog.c:3496 access/transam/xlog.c:5272
+#: access/transam/xlog.c:3527 access/transam/xlog.c:5300
 #, c-format
 msgid "could not close log file %s: %m"
 msgstr "无法关闭日志文件 %s: %m"
 
-#: access/transam/xlog.c:3553 replication/logical/logicalfuncs.c:149
-#: replication/walsender.c:2092
+#: access/transam/xlog.c:3584 access/transam/xlogutils.c:700
+#: replication/walsender.c:2099
 #, c-format
 msgid "requested WAL segment %s has already been removed"
 msgstr "所要求的WAL段%s已经被删除"
 
-#: access/transam/xlog.c:3613 access/transam/xlog.c:3688
-#: access/transam/xlog.c:3886
+#: access/transam/xlog.c:3644 access/transam/xlog.c:3719
+#: access/transam/xlog.c:3917
 #, c-format
 msgid "could not open transaction log directory \"%s\": %m"
 msgstr "无法打开事务日志目录 \"%s\": %m"
 
-#: access/transam/xlog.c:3769
+#: access/transam/xlog.c:3800
 #, c-format
 msgid "recycled transaction log file \"%s\""
 msgstr "回收事务日志文件 \"%s\""
 
-#: access/transam/xlog.c:3781
+#: access/transam/xlog.c:3812
 #, c-format
 msgid "removing transaction log file \"%s\""
 msgstr "删除事务日志文件 \"%s\""
 
-#: access/transam/xlog.c:3801
+#: access/transam/xlog.c:3832
 #, c-format
 msgid "could not rename old transaction log file \"%s\": %m"
 msgstr "无法重命名旧的事务日志文件\"%s\": %m"
 
-#: access/transam/xlog.c:3813
+#: access/transam/xlog.c:3844
 #, c-format
 msgid "could not remove old transaction log file \"%s\": %m"
 msgstr "无法删除旧的事务日志文件 \"%s\": %m"
 
-#: access/transam/xlog.c:3846 access/transam/xlog.c:3856
+#: access/transam/xlog.c:3877 access/transam/xlog.c:3887
 #, c-format
 msgid "required WAL directory \"%s\" does not exist"
 msgstr "所需要的WAL目录 \"%s\" 不存在"
 
-#: access/transam/xlog.c:3862
+#: access/transam/xlog.c:3893
 #, c-format
 msgid "creating missing WAL directory \"%s\""
 msgstr "正在创建丢失的WAL目录\"%s\""
 
-#: access/transam/xlog.c:3865
+#: access/transam/xlog.c:3896
 #, c-format
 msgid "could not create missing directory \"%s\": %m"
 msgstr "无法创建丢失的目录 \"%s\": %m"
 
-#: access/transam/xlog.c:3896
+#: access/transam/xlog.c:3927
 #, c-format
 msgid "removing transaction log backup history file \"%s\""
 msgstr "正在删除事务日志备份历史文件 \"%s\""
 
-#: access/transam/xlog.c:3977
+#: access/transam/xlog.c:4008
 #, c-format
 msgid "unexpected timeline ID %u in log segment %s, offset %u"
 msgstr "日志段%2$s,偏移%3$u出现意外的时间点ID %1$u"
 
-#: access/transam/xlog.c:4099
+#: access/transam/xlog.c:4130
 #, c-format
 msgid "new timeline %u is not a child of database system timeline %u"
 msgstr "新的时间线%u不附属于数据库系统时间线%u"
 
-#: access/transam/xlog.c:4113
+#: access/transam/xlog.c:4144
 #, c-format
 msgid ""
 "new timeline %u forked off current database system timeline %u before "
@@ -1477,56 +1839,56 @@ msgid ""
 msgstr ""
 "在当前恢复点%3$X/%4$X之前, 新的时间点%1$u脱离了当前茅的数据库系统时间点%2$u"
 
-#: access/transam/xlog.c:4132
+#: access/transam/xlog.c:4163
 #, c-format
 msgid "new target timeline is %u"
 msgstr "新的目标时间线为%u"
 
-#: access/transam/xlog.c:4212
+#: access/transam/xlog.c:4243
 #, c-format
 msgid "could not create control file \"%s\": %m"
 msgstr "无法创建控制文件 \"%s\": %m"
 
-#: access/transam/xlog.c:4223 access/transam/xlog.c:4459
+#: access/transam/xlog.c:4254 access/transam/xlog.c:4490
 #, c-format
 msgid "could not write to control file: %m"
 msgstr "无法写入控制文件: %m"
 
-#: access/transam/xlog.c:4229 access/transam/xlog.c:4465
+#: access/transam/xlog.c:4260 access/transam/xlog.c:4496
 #, c-format
 msgid "could not fsync control file: %m"
 msgstr "无法 fsync 控制文件: %m"
 
-#: access/transam/xlog.c:4234 access/transam/xlog.c:4470
+#: access/transam/xlog.c:4265 access/transam/xlog.c:4501
 #, c-format
 msgid "could not close control file: %m"
 msgstr "无法关闭控制文件: %m"
 
-#: access/transam/xlog.c:4252 access/transam/xlog.c:4448
+#: access/transam/xlog.c:4283 access/transam/xlog.c:4479
 #, c-format
 msgid "could not open control file \"%s\": %m"
 msgstr "无法打开控制文件 \"%s\": %m"
 
-#: access/transam/xlog.c:4258
+#: access/transam/xlog.c:4289
 #, c-format
 msgid "could not read from control file: %m"
 msgstr "无法读取控制文件: %m"
 
-#: access/transam/xlog.c:4271 access/transam/xlog.c:4280
-#: access/transam/xlog.c:4304 access/transam/xlog.c:4311
-#: access/transam/xlog.c:4318 access/transam/xlog.c:4323
-#: access/transam/xlog.c:4330 access/transam/xlog.c:4337
-#: access/transam/xlog.c:4344 access/transam/xlog.c:4351
-#: access/transam/xlog.c:4358 access/transam/xlog.c:4365
-#: access/transam/xlog.c:4372 access/transam/xlog.c:4381
-#: access/transam/xlog.c:4388 access/transam/xlog.c:4397
-#: access/transam/xlog.c:4404 access/transam/xlog.c:4413
-#: access/transam/xlog.c:4420 utils/init/miscinit.c:1351
+#: access/transam/xlog.c:4302 access/transam/xlog.c:4311
+#: access/transam/xlog.c:4335 access/transam/xlog.c:4342
+#: access/transam/xlog.c:4349 access/transam/xlog.c:4354
+#: access/transam/xlog.c:4361 access/transam/xlog.c:4368
+#: access/transam/xlog.c:4375 access/transam/xlog.c:4382
+#: access/transam/xlog.c:4389 access/transam/xlog.c:4396
+#: access/transam/xlog.c:4403 access/transam/xlog.c:4412
+#: access/transam/xlog.c:4419 access/transam/xlog.c:4428
+#: access/transam/xlog.c:4435 access/transam/xlog.c:4444
+#: access/transam/xlog.c:4451 utils/init/miscinit.c:1380
 #, c-format
 msgid "database files are incompatible with server"
 msgstr "数据库文件和服务器不兼容"
 
-#: access/transam/xlog.c:4272
+#: access/transam/xlog.c:4303
 #, c-format
 msgid ""
 "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), "
@@ -1535,14 +1897,14 @@ msgstr ""
 "数据库集群是以 PG_CONTROL_VERSION %d (0x%08x)初始化的, 但是 服务器是以 "
 "PG_CONTROL_VERSION %d (0x%08x)编译的."
 
-#: access/transam/xlog.c:4276
+#: access/transam/xlog.c:4307
 #, c-format
 msgid ""
 "This could be a problem of mismatched byte ordering.  It looks like you need "
 "to initdb."
 msgstr "这是一个字节顺序不匹配的问题.您需要运行initdb."
 
-#: access/transam/xlog.c:4281
+#: access/transam/xlog.c:4312
 #, c-format
 msgid ""
 "The database cluster was initialized with PG_CONTROL_VERSION %d, but the "
@@ -1551,18 +1913,18 @@ msgstr ""
 "数据库集群是以 PG_CONTROL_VERSION %d 初始化的, 但是 服务器是以 "
 "PG_CONTROL_VERSION %d 编译的."
 
-#: access/transam/xlog.c:4284 access/transam/xlog.c:4308
-#: access/transam/xlog.c:4315 access/transam/xlog.c:4320
+#: access/transam/xlog.c:4315 access/transam/xlog.c:4339
+#: access/transam/xlog.c:4346 access/transam/xlog.c:4351
 #, c-format
 msgid "It looks like you need to initdb."
 msgstr "看上去, 你需要初始化数据库."
 
-#: access/transam/xlog.c:4295
+#: access/transam/xlog.c:4326
 #, c-format
 msgid "incorrect checksum in control file"
 msgstr "控制文件的校验值不正确"
 
-#: access/transam/xlog.c:4305
+#: access/transam/xlog.c:4336
 #, c-format
 msgid ""
 "The database cluster was initialized with CATALOG_VERSION_NO %d, but the "
@@ -1571,7 +1933,7 @@ msgstr ""
 "数据库簇是以 CATALOG_VERSION_NO %d 初始化的, 但是 服务器是以 "
 "CATALOG_VERSION_NO %d 编译的."
 
-#: access/transam/xlog.c:4312
+#: access/transam/xlog.c:4343
 #, c-format
 msgid ""
 "The database cluster was initialized with MAXALIGN %d, but the server was "
@@ -1579,32 +1941,32 @@ msgid ""
 msgstr ""
 "数据库集群是以 MAXALIGN%d 初始化的, 但是 服务器是以 NAMEDATALEN %d 编译的."
 
-#: access/transam/xlog.c:4319
+#: access/transam/xlog.c:4350
 #, c-format
 msgid ""
 "The database cluster appears to use a different floating-point number format "
 "than the server executable."
 msgstr "数据库集群在使用与服务器执行部分不同的浮点数格式"
 
-#: access/transam/xlog.c:4324
+#: access/transam/xlog.c:4355
 #, c-format
 msgid ""
 "The database cluster was initialized with BLCKSZ %d, but the server was "
 "compiled with BLCKSZ %d."
 msgstr "数据库簇是以 BLCKSZ %d 初始化的, 但是 服务器是以 BLCKSZ %d 编译的."
 
-#: access/transam/xlog.c:4327 access/transam/xlog.c:4334
-#: access/transam/xlog.c:4341 access/transam/xlog.c:4348
-#: access/transam/xlog.c:4355 access/transam/xlog.c:4362
-#: access/transam/xlog.c:4369 access/transam/xlog.c:4376
-#: access/transam/xlog.c:4384 access/transam/xlog.c:4391
+#: access/transam/xlog.c:4358 access/transam/xlog.c:4365
+#: access/transam/xlog.c:4372 access/transam/xlog.c:4379
+#: access/transam/xlog.c:4386 access/transam/xlog.c:4393
 #: access/transam/xlog.c:4400 access/transam/xlog.c:4407
-#: access/transam/xlog.c:4416 access/transam/xlog.c:4423
+#: access/transam/xlog.c:4415 access/transam/xlog.c:4422
+#: access/transam/xlog.c:4431 access/transam/xlog.c:4438
+#: access/transam/xlog.c:4447 access/transam/xlog.c:4454
 #, c-format
 msgid "It looks like you need to recompile or initdb."
 msgstr "看上去, 你需要重新编译或初始化数据库."
 
-#: access/transam/xlog.c:4331
+#: access/transam/xlog.c:4362
 #, c-format
 msgid ""
 "The database cluster was initialized with RELSEG_SIZE %d, but the server was "
@@ -1612,7 +1974,7 @@ msgid ""
 msgstr ""
 "数据库簇是以 RELSEG_SIZE %d 初始化的, 但是 服务器是以 RELSEG_SIZE %d 编译的."
 
-#: access/transam/xlog.c:4338
+#: access/transam/xlog.c:4369
 #, c-format
 msgid ""
 "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was "
@@ -1621,7 +1983,7 @@ msgstr ""
 "数据库集群是以 XLOG_BLCKSZ %d 初始化的, 但是 服务器是以 XLOG_BLCKSZ %d 编译"
 "的."
 
-#: access/transam/xlog.c:4345
+#: access/transam/xlog.c:4376
 #, c-format
 msgid ""
 "The database cluster was initialized with XLOG_SEG_SIZE %d, but the server "
@@ -1630,7 +1992,7 @@ msgstr ""
 "数据库簇是以 XLOG_SEG_SIZE %d 初始化的, 但是 服务器是以 XLOG_SEG_SIZE %d 编译"
 "的."
 
-#: access/transam/xlog.c:4352
+#: access/transam/xlog.c:4383
 #, c-format
 msgid ""
 "The database cluster was initialized with NAMEDATALEN %d, but the server was "
@@ -1638,7 +2000,7 @@ msgid ""
 msgstr ""
 "数据库簇是以 NAMEDATALEN %d 初始化的, 但是 服务器是以 NAMEDATALEN %d 编译的."
 
-#: access/transam/xlog.c:4359
+#: access/transam/xlog.c:4390
 #, c-format
 msgid ""
 "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server "
@@ -1647,7 +2009,7 @@ msgstr ""
 "数据库集群是以 INDEX_MAX_KEYS  %d 初始化的, 但是 服务器是以 INDEX_MAX_KEYS "
 "%d 编译的."
 
-#: access/transam/xlog.c:4366
+#: access/transam/xlog.c:4397
 #, c-format
 msgid ""
 "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the "
@@ -1656,7 +2018,7 @@ msgstr ""
 "数据库集群是以 TOAST_MAX_CHUNK_SIZE %d 初始化的, 但是 服务器是以 "
 "TOAST_MAX_CHUNK_SIZE %d 编译的."
 
-#: access/transam/xlog.c:4373
+#: access/transam/xlog.c:4404
 #, c-format
 msgid ""
 "The database cluster was initialized with LOBLKSIZE %d, but the server was "
@@ -1664,7 +2026,7 @@ msgid ""
 msgstr ""
 "数据库簇是以 LOBLKSIZE %d 初始化的, 但是 服务器是以 LOBLKSIZE %d 编译的."
 
-#: access/transam/xlog.c:4382
+#: access/transam/xlog.c:4413
 #, c-format
 msgid ""
 "The database cluster was initialized without HAVE_INT64_TIMESTAMP but the "
@@ -1673,7 +2035,7 @@ msgstr ""
 "数据库簇初始化时没有定义 HAVE_INT64_TIMESTAMP, 但是 服务器编译时定义了 "
 "HAVE_INT64_TIMESTAMP."
 
-#: access/transam/xlog.c:4389
+#: access/transam/xlog.c:4420
 #, c-format
 msgid ""
 "The database cluster was initialized with HAVE_INT64_TIMESTAMP but the "
@@ -1682,7 +2044,7 @@ msgstr ""
 "数据库簇初始化时定义了 HAVE_INT64_TIMESTAMP, 但是 服务器编译时没有定义 "
 "HAVE_INT64_TIMESTAMP."
 
-#: access/transam/xlog.c:4398
+#: access/transam/xlog.c:4429
 #, c-format
 msgid ""
 "The database cluster was initialized without USE_FLOAT4_BYVAL but the server "
@@ -1691,7 +2053,7 @@ msgstr ""
 "数据库集群在初始化时没带有USE_FLOAT4_BYVAL选项, 但是服务器是以"
 "USE_FLOAT4_BYVAL选项编译的."
 
-#: access/transam/xlog.c:4405
+#: access/transam/xlog.c:4436
 #, c-format
 msgid ""
 "The database cluster was initialized with USE_FLOAT4_BYVAL but the server "
@@ -1700,7 +2062,7 @@ msgstr ""
 "数据库集群是以USE_FLOAT4_BYVAL 初始化的, 但是服务器是以USE_FLOAT4_BYVAL编译"
 "的."
 
-#: access/transam/xlog.c:4414
+#: access/transam/xlog.c:4445
 #, c-format
 msgid ""
 "The database cluster was initialized without USE_FLOAT8_BYVAL but the server "
@@ -1709,7 +2071,7 @@ msgstr ""
 "数据库集群在初始化时没有带有 USE_FLOAT8_BYVAL, 但是服务器是以 "
 "USE_FLOAT8_BYVAL编译的."
 
-#: access/transam/xlog.c:4421
+#: access/transam/xlog.c:4452
 #, c-format
 msgid ""
 "The database cluster was initialized with USE_FLOAT8_BYVAL but the server "
@@ -1718,88 +2080,86 @@ msgstr ""
 "数据库集群是以USE_FLOAT8_BYVAL初始化的, 但是 服务器没有以USE_FLOAT8_BYVAL编"
 "译."
 
-#: access/transam/xlog.c:4847
+#: access/transam/xlog.c:4875
 #, c-format
 msgid "could not write bootstrap transaction log file: %m"
 msgstr "无法写入 bootstrap 事务日志文件: %m"
 
-#: access/transam/xlog.c:4853
+#: access/transam/xlog.c:4881
 #, c-format
 msgid "could not fsync bootstrap transaction log file: %m"
 msgstr "无法同步 (fsync) 事务日志文件: %m"
 
-#: access/transam/xlog.c:4858
+#: access/transam/xlog.c:4886
 #, c-format
 msgid "could not close bootstrap transaction log file: %m"
 msgstr "无法关闭 bootstrap 事务日志文件: %m"
 
-#: access/transam/xlog.c:4933
+#: access/transam/xlog.c:4961
 #, c-format
 msgid "could not open recovery command file \"%s\": %m"
 msgstr "无法打开恢复命令文件 \"%s\": %m"
 
-#: access/transam/xlog.c:4979 access/transam/xlog.c:5062
+#: access/transam/xlog.c:5007 access/transam/xlog.c:5090
 #, c-format
-#| msgid "invalid value for parameter \"%s\": \"%s\""
 msgid "invalid value for recovery parameter \"%s\": \"%s\""
 msgstr "恢复参数 \"%s\" 的值无效:\"%s\""
 
-#: access/transam/xlog.c:4982
+#: access/transam/xlog.c:5010
 #, c-format
-#| msgid "Valid values are \"on\", \"off\", and \"auto\"."
 msgid "Valid values are \"pause\", \"promote\", and \"shutdown\"."
 msgstr "有效值为\"pause\"、\"promote\"和\"shutdown\"。"
 
-#: access/transam/xlog.c:5001
+#: access/transam/xlog.c:5029
 #, c-format
 msgid "recovery_target_timeline is not a valid number: \"%s\""
 msgstr "recovery_target_timeline 不是一个有效的数字: \"%s\""
 
-#: access/transam/xlog.c:5017
+#: access/transam/xlog.c:5045
 #, c-format
 msgid "recovery_target_xid is not a valid number: \"%s\""
 msgstr "recovery_target_xid 不是一个有效的数字: \"%s\""
 
-#: access/transam/xlog.c:5048
+#: access/transam/xlog.c:5076
 #, c-format
 msgid "recovery_target_name is too long (maximum %d characters)"
 msgstr "recovery_target_name 值超长 (最大长度为 %d 个字符)"
 
-#: access/transam/xlog.c:5065
+#: access/transam/xlog.c:5093
 #, c-format
 msgid "The only allowed value is \"immediate\"."
 msgstr "唯一有效的值是\"immediate\"."
 
-#: access/transam/xlog.c:5078 access/transam/xlog.c:5089
-#: commands/extension.c:531 commands/extension.c:539 utils/misc/guc.c:5464
+#: access/transam/xlog.c:5106 access/transam/xlog.c:5117
+#: commands/extension.c:533 commands/extension.c:541 utils/misc/guc.c:5637
 #, c-format
 msgid "parameter \"%s\" requires a Boolean value"
 msgstr "参数 \"%s\" 需要一个布尔值"
 
-#: access/transam/xlog.c:5124
+#: access/transam/xlog.c:5152
 #, c-format
 msgid "parameter \"%s\" requires a temporal value"
 msgstr "参数 \"%s\" 需要一个临时值"
 
-#: access/transam/xlog.c:5126 catalog/dependency.c:984
-#: catalog/dependency.c:985 catalog/dependency.c:991 catalog/dependency.c:992
-#: catalog/dependency.c:1003 catalog/dependency.c:1004
-#: catalog/objectaddress.c:1053 commands/tablecmds.c:790
-#: commands/tablecmds.c:9415 commands/user.c:1027 commands/view.c:482
-#: libpq/auth.c:285 port/win32/security.c:51 storage/lmgr/deadlock.c:955
-#: storage/lmgr/proc.c:1177 utils/misc/guc.c:5486 utils/misc/guc.c:5579
-#: utils/misc/guc.c:9458 utils/misc/guc.c:9492 utils/misc/guc.c:9526
-#: utils/misc/guc.c:9560 utils/misc/guc.c:9595
+#: access/transam/xlog.c:5154 catalog/dependency.c:991
+#: catalog/dependency.c:992 catalog/dependency.c:998 catalog/dependency.c:999
+#: catalog/dependency.c:1010 catalog/dependency.c:1011
+#: catalog/objectaddress.c:1100 commands/tablecmds.c:795
+#: commands/tablecmds.c:9447 commands/user.c:1045 commands/view.c:482
+#: libpq/auth.c:304 storage/lmgr/deadlock.c:1139 storage/lmgr/proc.c:1276
+#: utils/adt/acl.c:5281 utils/misc/guc.c:5659 utils/misc/guc.c:5752
+#: utils/misc/guc.c:9686 utils/misc/guc.c:9720 utils/misc/guc.c:9754
+#: utils/misc/guc.c:9788 utils/misc/guc.c:9823
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: access/transam/xlog.c:5132
+#: access/transam/xlog.c:5160
 #, c-format
 msgid "unrecognized recovery parameter \"%s\""
 msgstr "未认可的恢复参数 \"%s\""
 
-#: access/transam/xlog.c:5143
+#: access/transam/xlog.c:5171
 #, c-format
 msgid ""
 "recovery command file \"%s\" specified neither primary_conninfo nor "
@@ -1807,14 +2167,14 @@ msgid ""
 msgstr ""
 "恢复命令文件 \"%s\" 既没有指定restore_command,也没有指定primary_conninfo"
 
-#: access/transam/xlog.c:5145
+#: access/transam/xlog.c:5173
 #, c-format
 msgid ""
 "The database server will regularly poll the pg_xlog subdirectory to check "
 "for files placed there."
 msgstr "数据服务器将会通过定期轮询pg_xlog子目录来检查放在这里的文件。"
 
-#: access/transam/xlog.c:5151
+#: access/transam/xlog.c:5179
 #, c-format
 msgid ""
 "recovery command file \"%s\" must specify restore_command when standby mode "
@@ -1822,57 +2182,57 @@ msgid ""
 msgstr ""
 "当没有启用备份模式的时候恢复命令文件 \"%s\" 必须指定 restore_command的值"
 
-#: access/transam/xlog.c:5181
+#: access/transam/xlog.c:5209
 #, c-format
 msgid "recovery target timeline %u does not exist"
 msgstr "恢复目标的时间线 %u 不存在"
 
-#: access/transam/xlog.c:5306
+#: access/transam/xlog.c:5330
 #, c-format
 msgid "archive recovery complete"
 msgstr "归档恢复完毕"
 
-#: access/transam/xlog.c:5365 access/transam/xlog.c:5593
+#: access/transam/xlog.c:5389 access/transam/xlog.c:5617
 #, c-format
 msgid "recovery stopping after reaching consistency"
 msgstr "达到一致性前恢复停止"
 
-#: access/transam/xlog.c:5453
+#: access/transam/xlog.c:5477
 #, c-format
 msgid "recovery stopping before commit of transaction %u, time %s"
 msgstr "恢复停止在事物 %u 提交之前, 时间 %s"
 
-#: access/transam/xlog.c:5460
+#: access/transam/xlog.c:5484
 #, c-format
 msgid "recovery stopping before abort of transaction %u, time %s"
 msgstr "恢复停止在事物 %u 中断之前, 时间 %s"
 
-#: access/transam/xlog.c:5505
+#: access/transam/xlog.c:5529
 #, c-format
 msgid "recovery stopping at restore point \"%s\", time %s"
 msgstr "恢复停止在恢复点 \"%s\", 时间 %s"
 
-#: access/transam/xlog.c:5573
+#: access/transam/xlog.c:5597
 #, c-format
 msgid "recovery stopping after commit of transaction %u, time %s"
 msgstr "恢复停止在事物 %u 提交之后, 时间 %s"
 
-#: access/transam/xlog.c:5581
+#: access/transam/xlog.c:5605
 #, c-format
 msgid "recovery stopping after abort of transaction %u, time %s"
 msgstr "恢复停止在事物 %u 中断之后, 时间 %s"
 
-#: access/transam/xlog.c:5620
+#: access/transam/xlog.c:5644
 #, c-format
 msgid "recovery has paused"
 msgstr "恢复操作已暂停"
 
-#: access/transam/xlog.c:5621
+#: access/transam/xlog.c:5645
 #, c-format
 msgid "Execute pg_xlog_replay_resume() to continue."
 msgstr "执行 pg_xlog_replay_resume() 以继续."
 
-#: access/transam/xlog.c:5824
+#: access/transam/xlog.c:5852
 #, c-format
 msgid ""
 "hot standby is not possible because %s = %d is a lower setting than on the "
@@ -1881,12 +2241,12 @@ msgstr ""
 "在备用点无法实施热备操作,因为%s = %d这个设置低于在主服务器的设置(它的值"
 "是%d)"
 
-#: access/transam/xlog.c:5850
+#: access/transam/xlog.c:5878
 #, c-format
 msgid "WAL was generated with wal_level=minimal, data may be missing"
 msgstr "WAL文件由wal_level=minimal的设置而产生,这种情况下数据可能会丢失"
 
-#: access/transam/xlog.c:5851
+#: access/transam/xlog.c:5879
 #, c-format
 msgid ""
 "This happens if you temporarily set wal_level=minimal without taking a new "
@@ -1894,61 +2254,68 @@ msgid ""
 msgstr ""
 "发生这种情况是因为您临时将wal_level设置为minimal,而没有同时进行基础备份"
 
-#: access/transam/xlog.c:5862
+#: access/transam/xlog.c:5890
 #, c-format
+#| msgid ""
+#| "hot standby is not possible because wal_level was not set to \"hot_standby"
+#| "\" or higher on the master server"
 msgid ""
-"hot standby is not possible because wal_level was not set to \"hot_standby\" "
-"or higher on the master server"
+"hot standby is not possible because wal_level was not set to \"replica\" or "
+"higher on the master server"
 msgstr ""
-"æ\97 æ³\95å®\9eæ\96½ç\83­å¤\87份ï¼\8cå\9b ä¸ºå\9c¨ä¸»ç\94¨æ\9c\8då\8a¡å\99¨ä¸\8aå\8f\82æ\95°wal_level没æ\9c\89设置为\"hot_standby\"æ\88\96æ\9b´"
-"高等级的值"
+"æ\97 æ³\95å®\9eæ\96½ç\83­å\90\8eå¤\87ï¼\8cå\9b ä¸ºå\9c¨ä¸»æ\9c\8då\8a¡å\99¨ä¸\8a wal_level æ²¡æ\9c\89被设置为 \"replica\" æ\88\96æ\9b´é«\98ç\9a\84"
+"值"
 
-#: access/transam/xlog.c:5863
+#: access/transam/xlog.c:5891
 #, c-format
+#| msgid ""
+#| "Either set wal_level to \"hot_standby\" on the master, or turn off "
+#| "hot_standby here."
 msgid ""
-"Either set wal_level to \"hot_standby\" on the master, or turn off "
-"hot_standby here."
+"Either set wal_level to \"replica\" on the master, or turn off hot_standby "
+"here."
 msgstr ""
-"在这里既可以将参数wal_level设置为\"hot_standby\" ,也可以将hot_standby关闭"
+"要么在主服务器上把 wal_level 设置为\"replica\" ,要么在这里把 hot_standby 关"
+"闭。"
 
-#: access/transam/xlog.c:5920
+#: access/transam/xlog.c:5948
 #, c-format
 msgid "control file contains invalid data"
 msgstr "控制文件包含无效的数据"
 
-#: access/transam/xlog.c:5926
+#: access/transam/xlog.c:5954
 #, c-format
 msgid "database system was shut down at %s"
 msgstr "数据库上次关闭时间为 %s"
 
-#: access/transam/xlog.c:5931
+#: access/transam/xlog.c:5959
 #, c-format
 msgid "database system was shut down in recovery at %s"
 msgstr "在%s,数据库在恢复中关闭"
 
-#: access/transam/xlog.c:5935
+#: access/transam/xlog.c:5963
 #, c-format
 msgid "database system shutdown was interrupted; last known up at %s"
 msgstr "数据库系统关闭操作被中断;上一次已知的运行是在%s"
 
-#: access/transam/xlog.c:5939
+#: access/transam/xlog.c:5967
 #, c-format
 msgid "database system was interrupted while in recovery at %s"
 msgstr "恢复时, 数据库系统在 %s 被中断"
 
-#: access/transam/xlog.c:5941
+#: access/transam/xlog.c:5969
 #, c-format
 msgid ""
 "This probably means that some data is corrupted and you will have to use the "
 "last backup for recovery."
 msgstr "这意味着一些数据被毁坏, 你将不得不使用最新的备份恢复."
 
-#: access/transam/xlog.c:5945
+#: access/transam/xlog.c:5973
 #, c-format
 msgid "database system was interrupted while in recovery at log time %s"
 msgstr "当日志时间%s进行恢复时,数据库系统被中断"
 
-#: access/transam/xlog.c:5947
+#: access/transam/xlog.c:5975
 #, c-format
 msgid ""
 "If this has occurred more than once some data might be corrupted and you "
@@ -1957,113 +2324,104 @@ msgstr ""
 "如果这种现象多次发生,那么表示数据可能已经损坏,您可能需要选择更早一点的恢复"
 "目标"
 
-#: access/transam/xlog.c:5951
+#: access/transam/xlog.c:5979
 #, c-format
 msgid "database system was interrupted; last known up at %s"
 msgstr "数据库系统中断;上一次的启动时间是在%s"
 
-#: access/transam/xlog.c:6007
+#: access/transam/xlog.c:6035
 #, c-format
 msgid "entering standby mode"
 msgstr "正在进入备用模式"
 
-#: access/transam/xlog.c:6010
+#: access/transam/xlog.c:6038
 #, c-format
 msgid "starting point-in-time recovery to XID %u"
 msgstr "开始执行到XID %u的基于时间点恢复"
 
-#: access/transam/xlog.c:6014
+#: access/transam/xlog.c:6042
 #, c-format
 msgid "starting point-in-time recovery to %s"
 msgstr "开始执行到%s的基于时间点恢复"
 
-#: access/transam/xlog.c:6018
+#: access/transam/xlog.c:6046
 #, c-format
 msgid "starting point-in-time recovery to \"%s\""
 msgstr "开始执行到基于时间点恢复的时间点\"%s\""
 
-#: access/transam/xlog.c:6022
+#: access/transam/xlog.c:6050
 #, c-format
 msgid "starting point-in-time recovery to earliest consistent point"
 msgstr "开始执行到最早一致点的基于时间点恢复"
 
-#: access/transam/xlog.c:6025
+#: access/transam/xlog.c:6053
 #, c-format
 msgid "starting archive recovery"
 msgstr "开始归档恢复"
 
-#: access/transam/xlog.c:6042
-#, c-format
-msgid "Failed while allocating an XLog reading processor."
-msgstr "分配XLog读取处理器失败."
-
-#: access/transam/xlog.c:6069 access/transam/xlog.c:6197
+#: access/transam/xlog.c:6097 access/transam/xlog.c:6225
 #, c-format
 msgid "checkpoint record is at %X/%X"
 msgstr "checkpoint 记录位置在 %X/%X"
 
-#: access/transam/xlog.c:6083
+#: access/transam/xlog.c:6111
 #, c-format
 msgid "could not find redo location referenced by checkpoint record"
 msgstr "无法找到checkpoint 记录对应的重做日志位置"
 
-#: access/transam/xlog.c:6084 access/transam/xlog.c:6091
+#: access/transam/xlog.c:6112 access/transam/xlog.c:6119
 #, c-format
 msgid ""
 "If you are not restoring from a backup, try removing the file \"%s/"
 "backup_label\"."
 msgstr "如果你不是从备份恢复, 请删除 \"%s/backup_label\"."
 
-#: access/transam/xlog.c:6090
+#: access/transam/xlog.c:6118
 #, c-format
 msgid "could not locate required checkpoint record"
 msgstr "无法找到需要的 checkpoint 记录"
 
-#: access/transam/xlog.c:6116 commands/tablespace.c:641
+#: access/transam/xlog.c:6144 commands/tablespace.c:645
 #, c-format
 msgid "could not create symbolic link \"%s\": %m"
 msgstr "无法创建符号链接 \"%s\": %m"
 
-#: access/transam/xlog.c:6148
+#: access/transam/xlog.c:6176
 #, c-format
-#| msgid "foreign table \"%s\" does not exist"
 msgid "ignoring file \"%s\" because no file \"%s\" exists"
 msgstr "忽略文件\"%s\",因为不存在文件\"%s\""
 
-#: access/transam/xlog.c:6150 access/transam/xlog.c:10882
+#: access/transam/xlog.c:6178 access/transam/xlog.c:10918
 #, c-format
-#| msgid "\"%s\" was renamed to \"%s\"."
 msgid "File \"%s\" was renamed to \"%s\"."
 msgstr "文件\"%s\" 被重新命名为\"%s\"。"
 
-#: access/transam/xlog.c:6154
+#: access/transam/xlog.c:6182
 #, c-format
-#| msgid "constraint \"%s\" for relation \"%s\" already exists"
 msgid "ignoring \"%s\" file because no \"%s\" file exists"
 msgstr "忽略\"%s\"文件,因为不存在\"%s\"文件"
 
-#: access/transam/xlog.c:6156
+#: access/transam/xlog.c:6184
 #, c-format
-#| msgid "could not rename file \"%s\" to \"%s\": %m"
 msgid "Could not rename file \"%s\" to \"%s\": %m."
 msgstr "无法把文件\"%s\"重命名为\"%s\":%m。"
 
-#: access/transam/xlog.c:6207 access/transam/xlog.c:6222
+#: access/transam/xlog.c:6235 access/transam/xlog.c:6250
 #, c-format
 msgid "could not locate a valid checkpoint record"
 msgstr "无法找到一个有效的 checkpoint 记录"
 
-#: access/transam/xlog.c:6216
+#: access/transam/xlog.c:6244
 #, c-format
 msgid "using previous checkpoint record at %X/%X"
 msgstr "使用在 %X/%X 的前一个 checkpoint 记录"
 
-#: access/transam/xlog.c:6260
+#: access/transam/xlog.c:6288
 #, c-format
 msgid "requested timeline %u is not a child of this server's history"
 msgstr "所要求的时间线%u不在服务器的历史时间线里"
 
-#: access/transam/xlog.c:6262
+#: access/transam/xlog.c:6290
 #, c-format
 msgid ""
 "Latest checkpoint is at %X/%X on timeline %u, but in the history of the "
@@ -2072,94 +2430,94 @@ msgstr ""
 "最近的检查点位于%X/%X,时间点为%u, 但是在请求的历史时间点中,服务器端在那个时"
 "间点会产生分支%X/%X."
 
-#: access/transam/xlog.c:6278
+#: access/transam/xlog.c:6306
 #, c-format
 msgid ""
 "requested timeline %u does not contain minimum recovery point %X/%X on "
 "timeline %u"
 msgstr "所要求的时间线%u不包含最小恢复点%X/%X,在时间线%u处"
 
-#: access/transam/xlog.c:6309
+#: access/transam/xlog.c:6337
 #, c-format
 msgid "invalid next transaction ID"
 msgstr "无效的下一个事务 ID"
 
-#: access/transam/xlog.c:6384
+#: access/transam/xlog.c:6420
 #, c-format
 msgid "invalid redo in checkpoint record"
 msgstr "在检查点记录中无效的redo操作"
 
-#: access/transam/xlog.c:6395
+#: access/transam/xlog.c:6431
 #, c-format
 msgid "invalid redo record in shutdown checkpoint"
 msgstr "在关闭检查点中的redo记录无效"
 
-#: access/transam/xlog.c:6423
+#: access/transam/xlog.c:6459
 #, c-format
 msgid ""
 "database system was not properly shut down; automatic recovery in progress"
 msgstr "数据库系统没有正确的关闭; 处于自动恢复状态中"
 
-#: access/transam/xlog.c:6427
+#: access/transam/xlog.c:6463
 #, c-format
 msgid "crash recovery starts in timeline %u and has target timeline %u"
 msgstr "崩溃恢复开始于时间线%u, 目标时间线是%u"
 
-#: access/transam/xlog.c:6471
+#: access/transam/xlog.c:6507
 #, c-format
 msgid "backup_label contains data inconsistent with control file"
 msgstr "backup_label 包含了与控制文件不一致的数据"
 
-#: access/transam/xlog.c:6472
+#: access/transam/xlog.c:6508
 #, c-format
 msgid ""
 "This means that the backup is corrupted and you will have to use another "
 "backup for recovery."
 msgstr "这意味着一些数据备份已毁坏, 你将不得不使用别的备份进行恢复."
 
-#: access/transam/xlog.c:6554
+#: access/transam/xlog.c:6582
 #, c-format
 msgid "initializing for hot standby"
 msgstr "正在为热备进行初始化"
 
-#: access/transam/xlog.c:6687
+#: access/transam/xlog.c:6714
 #, c-format
 msgid "redo starts at %X/%X"
 msgstr "redo 在 %X/%X 开始"
 
-#: access/transam/xlog.c:6901
+#: access/transam/xlog.c:6939
 #, c-format
 msgid "requested recovery stop point is before consistent recovery point"
 msgstr "所要求的恢复停止点在一致性恢复点之前"
 
-#: access/transam/xlog.c:6939
+#: access/transam/xlog.c:6977
 #, c-format
 msgid "redo done at %X/%X"
 msgstr "redo 在 %X/%X 完成"
 
-#: access/transam/xlog.c:6944 access/transam/xlog.c:8879
+#: access/transam/xlog.c:6982 access/transam/xlog.c:8906
 #, c-format
 msgid "last completed transaction was at log time %s"
 msgstr "上一次完成事务是在日志时间%s完成的."
 
-#: access/transam/xlog.c:6953
+#: access/transam/xlog.c:6991
 #, c-format
 msgid "redo is not required"
 msgstr "不需要 redo"
 
-#: access/transam/xlog.c:7028 access/transam/xlog.c:7032
+#: access/transam/xlog.c:7066 access/transam/xlog.c:7070
 #, c-format
 msgid "WAL ends before end of online backup"
 msgstr "联机备份终止之前,WAL已经终止"
 
-#: access/transam/xlog.c:7029
+#: access/transam/xlog.c:7067
 #, c-format
 msgid ""
 "All WAL generated while online backup was taken must be available at "
 "recovery."
 msgstr "所有联机备份时产生的WAL日志在恢复时必须存在."
 
-#: access/transam/xlog.c:7033
+#: access/transam/xlog.c:7071
 #, c-format
 msgid ""
 "Online backup started with pg_start_backup() must be ended with "
@@ -2168,145 +2526,140 @@ msgstr ""
 "由pg_start_backup()发起的联机备份必须通过调用pg_stop_backup()来终止, 并且到那"
 "一刻为止所有的WAL日志在恢复时必须存在."
 
-#: access/transam/xlog.c:7036
+#: access/transam/xlog.c:7074
 #, c-format
 msgid "WAL ends before consistent recovery point"
 msgstr "在一致性恢复点前结束WAL"
 
-#: access/transam/xlog.c:7063
+#: access/transam/xlog.c:7101
 #, c-format
 msgid "selected new timeline ID: %u"
 msgstr "已选择的新时间线ID:%u"
 
-#: access/transam/xlog.c:7479
+#: access/transam/xlog.c:7512
 #, c-format
 msgid "consistent recovery state reached at %X/%X"
 msgstr "在%X/%X上已到达一致性恢复状态"
 
-#: access/transam/xlog.c:7670
+#: access/transam/xlog.c:7703
 #, c-format
 msgid "invalid primary checkpoint link in control file"
 msgstr "在控制文件中无效的主 checkpoint 链接"
 
-#: access/transam/xlog.c:7674
+#: access/transam/xlog.c:7707
 #, c-format
 msgid "invalid secondary checkpoint link in control file"
 msgstr "在控制文件中无效的次 checkpoint 链接"
 
-#: access/transam/xlog.c:7678
+#: access/transam/xlog.c:7711
 #, c-format
 msgid "invalid checkpoint link in backup_label file"
 msgstr "在 backup_label 文件中无效的 checkpoint 链接"
 
-#: access/transam/xlog.c:7695
+#: access/transam/xlog.c:7728
 #, c-format
 msgid "invalid primary checkpoint record"
 msgstr "无效的主 checkpoint 记录"
 
-#: access/transam/xlog.c:7699
+#: access/transam/xlog.c:7732
 #, c-format
 msgid "invalid secondary checkpoint record"
 msgstr "无效的次 checkpoint 记录"
 
-#: access/transam/xlog.c:7703
+#: access/transam/xlog.c:7736
 #, c-format
 msgid "invalid checkpoint record"
 msgstr "无效的 checkpoint 记录"
 
-#: access/transam/xlog.c:7714
+#: access/transam/xlog.c:7747
 #, c-format
 msgid "invalid resource manager ID in primary checkpoint record"
 msgstr "在主 checkpoint 记录中的无效资源管理器 ID"
 
-#: access/transam/xlog.c:7718
+#: access/transam/xlog.c:7751
 #, c-format
 msgid "invalid resource manager ID in secondary checkpoint record"
 msgstr "在次 checkpoint 记录中的无效资源管理器 ID"
 
-#: access/transam/xlog.c:7722
+#: access/transam/xlog.c:7755
 #, c-format
 msgid "invalid resource manager ID in checkpoint record"
 msgstr "在 checkpoint 记录中的无效资源管理器 ID"
 
-#: access/transam/xlog.c:7734
+#: access/transam/xlog.c:7767
 #, c-format
 msgid "invalid xl_info in primary checkpoint record"
 msgstr "在主 checkpoint 记录中无效的 xl_info"
 
-#: access/transam/xlog.c:7738
+#: access/transam/xlog.c:7771
 #, c-format
 msgid "invalid xl_info in secondary checkpoint record"
 msgstr "在次 checkpoint 记录中无效的 xl_info"
 
-#: access/transam/xlog.c:7742
+#: access/transam/xlog.c:7775
 #, c-format
 msgid "invalid xl_info in checkpoint record"
 msgstr "在 checkpoint 记录中无效的 xl_info"
 
-#: access/transam/xlog.c:7753
+#: access/transam/xlog.c:7786
 #, c-format
 msgid "invalid length of primary checkpoint record"
 msgstr "无效的主 checkpoint 记录长度"
 
-#: access/transam/xlog.c:7757
+#: access/transam/xlog.c:7790
 #, c-format
 msgid "invalid length of secondary checkpoint record"
 msgstr "无效的次 checkpoint 记录长度"
 
-#: access/transam/xlog.c:7761
+#: access/transam/xlog.c:7794
 #, c-format
 msgid "invalid length of checkpoint record"
 msgstr "无效的 checkpoint 记录长度"
 
-#: access/transam/xlog.c:7931
+#: access/transam/xlog.c:7962
 #, c-format
 msgid "shutting down"
 msgstr "正在关闭"
 
-#: access/transam/xlog.c:7955
-#, c-format
-msgid "database system is shut down"
-msgstr "数据库系统已关闭"
-
-#: access/transam/xlog.c:8448
+#: access/transam/xlog.c:8475
 #, c-format
 msgid ""
 "concurrent transaction log activity while database system is shutting down"
 msgstr "当数据库正在关闭时, 仍有活跃的并发事物日志"
 
-#: access/transam/xlog.c:8699
+#: access/transam/xlog.c:8726
 #, c-format
 msgid "skipping restartpoint, recovery has already ended"
 msgstr "正在跳过重新启动点, 恢复已经结束"
 
-#: access/transam/xlog.c:8722
+#: access/transam/xlog.c:8749
 #, c-format
 msgid "skipping restartpoint, already performed at %X/%X"
 msgstr "跳过重新启动点,它已经在%X/%X上执行了."
 
-#: access/transam/xlog.c:8877
+#: access/transam/xlog.c:8904
 #, c-format
 msgid "recovery restart point at %X/%X"
 msgstr "恢复得重新启动点是在%X/%X开始"
 
-#: access/transam/xlog.c:9010
+#: access/transam/xlog.c:9037
 #, c-format
 msgid "restore point \"%s\" created at %X/%X"
 msgstr "恢复点\"%s\",创建于%X/%X"
 
-#: access/transam/xlog.c:9140
+#: access/transam/xlog.c:9167
 #, c-format
 msgid ""
 "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint "
 "record"
 msgstr "在检查点记录中出现未期望的时间线ID%u(当前时间线%u)"
 
-#: access/transam/xlog.c:9149
+#: access/transam/xlog.c:9176
 #, c-format
 msgid "unexpected timeline ID %u (after %u) in checkpoint record"
 msgstr "在检查点记录中出现未期望的时间线ID%u(在%u之后)"
 
-#: access/transam/xlog.c:9165
+#: access/transam/xlog.c:9192
 #, c-format
 msgid ""
 "unexpected timeline ID %u in checkpoint record, before reaching minimum "
@@ -2315,90 +2668,82 @@ msgstr ""
 "在达到最小恢复点%2$X/%3$X之前,时间点%4$u处,在检查点记录中出现意外的时间点"
 "ID %1$u"
 
-#: access/transam/xlog.c:9236
+#: access/transam/xlog.c:9263
 #, c-format
 msgid "online backup was canceled, recovery cannot continue"
 msgstr "在线备份操作已取消,恢复操作无法继续"
 
-#: access/transam/xlog.c:9292 access/transam/xlog.c:9339
-#: access/transam/xlog.c:9362
+#: access/transam/xlog.c:9319 access/transam/xlog.c:9366
+#: access/transam/xlog.c:9389
 #, c-format
 msgid "unexpected timeline ID %u (should be %u) in checkpoint record"
 msgstr "在检查点记录中出现未期望的时间线ID%u(应该是%u)"
 
-#: access/transam/xlog.c:9639
+#: access/transam/xlog.c:9664
 #, c-format
 msgid "could not fsync log segment %s: %m"
 msgstr "无法同步 (fsync) 日志段 %s: %m"
 
-#: access/transam/xlog.c:9663
+#: access/transam/xlog.c:9688
 #, c-format
 msgid "could not fsync log file %s: %m"
 msgstr "无法 fsync 日志文件 %s: %m"
 
-#: access/transam/xlog.c:9671
+#: access/transam/xlog.c:9696
 #, c-format
 msgid "could not fsync write-through log file %s: %m"
 msgstr "无法同步 (fsync) 写入日志文件%s: %m"
 
-#: access/transam/xlog.c:9680
+#: access/transam/xlog.c:9705
 #, c-format
 msgid "could not fdatasync log file %s: %m"
 msgstr "无法同步 (fdatasync) 日志文件 %s: %m"
 
-#: access/transam/xlog.c:9772 access/transam/xlog.c:10243
-#: access/transam/xlogfuncs.c:121 access/transam/xlogfuncs.c:150
-#: access/transam/xlogfuncs.c:189 access/transam/xlogfuncs.c:210
-#: access/transam/xlogfuncs.c:280 access/transam/xlogfuncs.c:336
-#, c-format
-msgid "recovery is in progress"
-msgstr "恢复操作正在进行中"
-
-#: access/transam/xlog.c:9773 access/transam/xlog.c:10244
-#: access/transam/xlogfuncs.c:122 access/transam/xlogfuncs.c:151
-#: access/transam/xlogfuncs.c:190 access/transam/xlogfuncs.c:211
+#: access/transam/xlog.c:9796 access/transam/xlog.c:10267
+#: access/transam/xlogfuncs.c:295 access/transam/xlogfuncs.c:322
+#: access/transam/xlogfuncs.c:361 access/transam/xlogfuncs.c:382
+#: access/transam/xlogfuncs.c:403
 #, c-format
 msgid "WAL control functions cannot be executed during recovery."
 msgstr "在恢复期间无法执行WAL控制函数"
 
-#: access/transam/xlog.c:9782 access/transam/xlog.c:10253
+#: access/transam/xlog.c:9805 access/transam/xlog.c:10276
 #, c-format
 msgid "WAL level not sufficient for making an online backup"
 msgstr "WAL的级别不能满足在线备份的要求"
 
-#: access/transam/xlog.c:9783 access/transam/xlog.c:10254
-#: access/transam/xlogfuncs.c:157
+#: access/transam/xlog.c:9806 access/transam/xlog.c:10277
+#: access/transam/xlogfuncs.c:328
 #, c-format
-msgid ""
-"wal_level must be set to \"archive\", \"hot_standby\", or \"logical\" at "
-"server start."
-msgstr ""
-"在服务器启动的时候wal_level必须被设置为\"archive\",\"hot_standby\"或\"logical"
-"\"."
+#| msgid ""
+#| "wal_level must be set to \"archive\", \"hot_standby\", or \"logical\" at "
+#| "server start."
+msgid "wal_level must be set to \"replica\" or \"logical\" at server start."
+msgstr "wal_level 必须在服务器启动的时候被设置为 \"replica\" 或 \"logical\"。"
 
-#: access/transam/xlog.c:9788
+#: access/transam/xlog.c:9811
 #, c-format
 msgid "backup label too long (max %d bytes)"
 msgstr "备份标签名超长(最大为%d字节)"
 
-#: access/transam/xlog.c:9820 access/transam/xlog.c:10090
-#: access/transam/xlog.c:10126
+#: access/transam/xlog.c:9843 access/transam/xlog.c:10115
+#: access/transam/xlog.c:10153
 #, c-format
 msgid "a backup is already in progress"
 msgstr "一个备份已经在运行中"
 
-#: access/transam/xlog.c:9821
+#: access/transam/xlog.c:9844
 #, c-format
 msgid "Run pg_stop_backup() and try again."
 msgstr "运行pg_stop_backup(),然后重新尝试一次."
 
-#: access/transam/xlog.c:9916
+#: access/transam/xlog.c:9939
 #, c-format
 msgid ""
 "WAL generated with full_page_writes=off was replayed since last restartpoint"
 msgstr "使用full_page_writes=off产生的WAL日志自最后一次重启点,已经重做了"
 
-#: access/transam/xlog.c:9918 access/transam/xlog.c:10408
+#: access/transam/xlog.c:9941 access/transam/xlog.c:10440
 #, c-format
 msgid ""
 "This means that the backup being taken on the standby is corrupt and should "
@@ -2408,95 +2753,101 @@ msgstr ""
 "这意味着备用节点上的备份已经损坏,不应该使用。启用 full_page_writes并在主节点"
 "上运行CHECKPOINT,然后再试着执行联机备份."
 
-#: access/transam/xlog.c:9984 replication/basebackup.c:1035
-#: utils/adt/misc.c:378
+#: access/transam/xlog.c:10008 replication/basebackup.c:1038
+#: utils/adt/misc.c:498
 #, c-format
 msgid "could not read symbolic link \"%s\": %m"
 msgstr "无法读取符号链接 \"%s\": %m"
 
-#: access/transam/xlog.c:9991 replication/basebackup.c:1040
-#: utils/adt/misc.c:383
+#: access/transam/xlog.c:10015 replication/basebackup.c:1043
+#: utils/adt/misc.c:503
 #, c-format
 msgid "symbolic link \"%s\" target is too long"
 msgstr "符号链接 \"%s\" 目标超长"
 
-#: access/transam/xlog.c:10044 commands/tablespace.c:391
-#: commands/tablespace.c:553 replication/basebackup.c:1056
-#: utils/adt/misc.c:391
+#: access/transam/xlog.c:10068 commands/tablespace.c:395
+#: commands/tablespace.c:557 replication/basebackup.c:1059
+#: utils/adt/misc.c:511
 #, c-format
 msgid "tablespaces are not supported on this platform"
 msgstr "在此平台上不支持表空间"
 
-#: access/transam/xlog.c:10084 access/transam/xlog.c:10120
-#: access/transam/xlog.c:10294 access/transam/xlogarchive.c:106
-#: access/transam/xlogarchive.c:265 commands/copy.c:1738 commands/copy.c:2764
-#: commands/extension.c:3026 commands/tablespace.c:860 guc-file.l:1003
-#: replication/basebackup.c:404 replication/basebackup.c:472
-#: replication/logical/snapbuild.c:1478 storage/file/copydir.c:72
-#: storage/file/copydir.c:115 storage/file/fd.c:2519 storage/file/fd.c:2611
-#: utils/adt/dbsize.c:68 utils/adt/dbsize.c:218 utils/adt/dbsize.c:298
-#: utils/adt/genfile.c:114 utils/adt/genfile.c:333
+#: access/transam/xlog.c:10109 access/transam/xlog.c:10147
+#: access/transam/xlog.c:10326 access/transam/xlogarchive.c:106
+#: access/transam/xlogarchive.c:265 commands/copy.c:1778 commands/copy.c:2804
+#: commands/extension.c:3109 commands/tablespace.c:786
+#: commands/tablespace.c:877 guc-file.l:1003 replication/basebackup.c:407
+#: replication/basebackup.c:475 replication/logical/snapbuild.c:1493
+#: storage/file/copydir.c:72 storage/file/copydir.c:115 storage/file/fd.c:2826
+#: storage/file/fd.c:2918 utils/adt/dbsize.c:70 utils/adt/dbsize.c:220
+#: utils/adt/dbsize.c:300 utils/adt/genfile.c:114 utils/adt/genfile.c:333
 #, c-format
 msgid "could not stat file \"%s\": %m"
 msgstr "无法取文件 \"%s\" 的状态: %m"
 
-#: access/transam/xlog.c:10091 access/transam/xlog.c:10127
+#: access/transam/xlog.c:10116 access/transam/xlog.c:10154
 #, c-format
 msgid ""
 "If you're sure there is no backup in progress, remove file \"%s\" and try "
 "again."
 msgstr "如果你确认没有其他备份进程在运行, 删除文件 \"%s\", 然后重试."
 
-#: access/transam/xlog.c:10108 access/transam/xlog.c:10144
-#: access/transam/xlog.c:10469
+#: access/transam/xlog.c:10133 access/transam/xlog.c:10171
+#: access/transam/xlog.c:10501
 #, c-format
 msgid "could not write file \"%s\": %m"
 msgstr "无法写入文件 \"%s\": %m"
 
-#: access/transam/xlog.c:10298
+#: access/transam/xlog.c:10290
 #, c-format
-msgid "a backup is not in progress"
+#| msgid "a backup is not in progress"
+msgid "exclusive backup not in progress"
+msgstr "排除备份不在运行中"
+
+#: access/transam/xlog.c:10330
+#, c-format
+msgid "a backup is not in progress"
 msgstr "没有备份在运行中"
 
-#: access/transam/xlog.c:10343 access/transam/xlog.c:10356
-#: access/transam/xlog.c:10696 access/transam/xlog.c:10702
-#: access/transam/xlog.c:10786 access/transam/xlogfuncs.c:508
+#: access/transam/xlog.c:10375 access/transam/xlog.c:10388
+#: access/transam/xlog.c:10728 access/transam/xlog.c:10734
+#: access/transam/xlog.c:10818 access/transam/xlogfuncs.c:696
 #, c-format
 msgid "invalid data in file \"%s\""
 msgstr "文件 \"%s\" 中存在无效数据"
 
-#: access/transam/xlog.c:10360 replication/basebackup.c:933
+#: access/transam/xlog.c:10392 replication/basebackup.c:936
 #, c-format
 msgid "the standby was promoted during online backup"
 msgstr "联机备份期间,备用节点已提升为主节点"
 
-#: access/transam/xlog.c:10361 replication/basebackup.c:934
+#: access/transam/xlog.c:10393 replication/basebackup.c:937
 #, c-format
 msgid ""
 "This means that the backup being taken is corrupt and should not be used. "
 "Try taking another online backup."
 msgstr "这意味着备用节点上的备份已经损坏,不应该使用. 请尝试再次执行联机备份."
 
-#: access/transam/xlog.c:10406
+#: access/transam/xlog.c:10438
 #, c-format
 msgid ""
 "WAL generated with full_page_writes=off was replayed during online backup"
 msgstr "由full_page_writes=off产生的WAL日志在联机备份期间已经完成重做"
 
-#: access/transam/xlog.c:10518
+#: access/transam/xlog.c:10550
 #, c-format
 msgid ""
 "pg_stop_backup cleanup done, waiting for required WAL segments to be archived"
 msgstr "pg_stop_backup命令所执行的清理操作已完成,正在等待所要求的WAL段归档"
 
-#: access/transam/xlog.c:10528
+#: access/transam/xlog.c:10560
 #, c-format
 msgid ""
 "pg_stop_backup still waiting for all required WAL segments to be archived "
 "(%d seconds elapsed)"
 msgstr "pg_stop_backup在等待所有需要的WAL段归档(已过去%d秒)"
 
-#: access/transam/xlog.c:10530
+#: access/transam/xlog.c:10562
 #, c-format
 msgid ""
 "Check that your archive_command is executing properly.  pg_stop_backup can "
@@ -2506,12 +2857,12 @@ msgstr ""
 "请检查您的归档命令是否正确执行。pg_stop_backup命令可以安全退出,但是如果没有"
 "所有需要的WAL段,数据库备份将无法使用."
 
-#: access/transam/xlog.c:10537
+#: access/transam/xlog.c:10569
 #, c-format
 msgid "pg_stop_backup complete, all required WAL segments have been archived"
 msgstr "pg_stop_backup 执行完成,所有需要的WAL段都已经归档完成。"
 
-#: access/transam/xlog.c:10541
+#: access/transam/xlog.c:10573
 #, c-format
 msgid ""
 "WAL archiving is not enabled; you must ensure that all required WAL segments "
@@ -2519,63 +2870,64 @@ msgid ""
 msgstr ""
 "没有启用WAL归档;您必须确保所有的WAL段已通过其他的方法拷贝,这样才能完成备份"
 
-#: access/transam/xlog.c:10825
+#. translator: %s is an XLog record description
+#: access/transam/xlog.c:10858
 #, c-format
-msgid "xlog redo %s"
-msgstr "xlog重做 %s"
+#| msgid "xlog redo %s"
+msgid "xlog redo at %X/%X for %s"
+msgstr "%3$s xlog 重做在 %1$X/%2$X 位置"
 
-#: access/transam/xlog.c:10871
+#: access/transam/xlog.c:10907
 #, c-format
 msgid "online backup mode was not canceled"
 msgstr "在线备份模式没有取消"
 
-#: access/transam/xlog.c:10872
+#: access/transam/xlog.c:10908
 #, c-format
-#| msgid "Could not rename \"%s\" to \"%s\": %m."
 msgid "File \"%s\" could not be renamed to \"%s\": %m."
 msgstr "文件\"%s\"不能被重命名为\"%s\":%m。"
 
-#: access/transam/xlog.c:10881 access/transam/xlog.c:10893
-#: access/transam/xlog.c:10903
+#: access/transam/xlog.c:10917 access/transam/xlog.c:10929
+#: access/transam/xlog.c:10939
 #, c-format
 msgid "online backup mode canceled"
 msgstr "在线备份模式已取消"
 
-#: access/transam/xlog.c:10894
+#: access/transam/xlog.c:10930
 #, c-format
 msgid ""
 "Files \"%s\" and \"%s\" were renamed to \"%s\" and \"%s\", respectively."
 msgstr "文件\"%s\"和\"%s\"分别被重命名为\"%s\"和\"%s\"。"
 
-#: access/transam/xlog.c:10904
+#: access/transam/xlog.c:10940
 #, c-format
 msgid ""
 "File \"%s\" was renamed to \"%s\", but file \"%s\" could not be renamed to "
 "\"%s\": %m."
 msgstr "文件\"%s\"被重命名为\"%s\",但文件\"%s\"无法被重命名为\"%s\":%m。"
 
-#: access/transam/xlog.c:11026 replication/logical/logicalfuncs.c:171
-#: replication/walreceiver.c:932 replication/walsender.c:2109
+#: access/transam/xlog.c:11062 access/transam/xlogutils.c:723
+#: replication/walreceiver.c:973 replication/walsender.c:2116
 #, c-format
 msgid "could not seek in log segment %s to offset %u: %m"
 msgstr "无法在日志段%s中查找, 偏移量 %u: %m"
 
-#: access/transam/xlog.c:11038
+#: access/transam/xlog.c:11074
 #, c-format
 msgid "could not read from log segment %s, offset %u: %m"
 msgstr "无法从日志段%s中读取偏移量 %u: %m"
 
-#: access/transam/xlog.c:11512
+#: access/transam/xlog.c:11548
 #, c-format
 msgid "received promote request"
 msgstr "接收到提或请求"
 
-#: access/transam/xlog.c:11525
+#: access/transam/xlog.c:11561
 #, c-format
 msgid "trigger file found: %s"
 msgstr "已找到触发器文件:%s"
 
-#: access/transam/xlog.c:11534
+#: access/transam/xlog.c:11570
 #, c-format
 msgid "could not stat trigger file \"%s\": %m"
 msgstr "无法统计触发器文件 \"%s\": %m"
@@ -2603,144 +2955,183 @@ msgstr "无法从归档文件%2$s中恢复文件 \"%1$s\""
 msgid "%s \"%s\": %s"
 msgstr "%s \"%s\": %s"
 
-#: access/transam/xlogarchive.c:529 access/transam/xlogarchive.c:598
+#: access/transam/xlogarchive.c:458 replication/logical/snapbuild.c:1621
+#: replication/slot.c:470 replication/slot.c:981 replication/slot.c:1089
+#: storage/file/fd.c:635 storage/file/fd.c:693 utils/time/snapmgr.c:1198
+#, c-format
+msgid "could not rename file \"%s\" to \"%s\": %m"
+msgstr "无法把文件 \"%s\" 重命名为 \"%s\": %m"
+
+#: access/transam/xlogarchive.c:525 access/transam/xlogarchive.c:589
 #, c-format
 msgid "could not create archive status file \"%s\": %m"
 msgstr "无法创建归档状态文件 \"%s\": %m"
 
-#: access/transam/xlogarchive.c:537 access/transam/xlogarchive.c:606
+#: access/transam/xlogarchive.c:533 access/transam/xlogarchive.c:597
 #, c-format
 msgid "could not write archive status file \"%s\": %m"
 msgstr "无法写入归档状态文件 \"%s\": %m"
 
-#: access/transam/xlogfuncs.c:61 access/transam/xlogfuncs.c:98
+#: access/transam/xlogfuncs.c:58
+#, c-format
+msgid "aborting backup due to backend exiting before pg_stop_backup was called"
+msgstr "由于后端在 pg_stop_backup 被调用前退出而中断备份"
+
+#: access/transam/xlogfuncs.c:88
 #, c-format
-msgid "must be superuser or replication role to run a backup"
-msgstr "运行备份必须为超级用户或者是复制角色用户"
+#| msgid "a backup is already in progress"
+msgid "a backup is already in progress in this session"
+msgstr "这个会话中已经有一个备份在运行中"
 
-#: access/transam/xlogfuncs.c:67 commands/tablespace.c:705
-#: commands/tablespace.c:715 postmaster/postmaster.c:1389
-#: replication/basebackup.c:292 replication/basebackup.c:632
-#: storage/file/copydir.c:53 storage/file/copydir.c:96 storage/file/fd.c:1985
-#: storage/file/fd.c:2584 storage/ipc/dsm.c:300 utils/adt/genfile.c:439
-#: utils/adt/misc.c:291 utils/misc/tzparser.c:339
+#: access/transam/xlogfuncs.c:94 commands/tablespace.c:709
+#: commands/tablespace.c:719 postmaster/postmaster.c:1395
+#: replication/basebackup.c:295 replication/basebackup.c:635
+#: storage/file/copydir.c:53 storage/file/copydir.c:96 storage/file/fd.c:2292
+#: storage/file/fd.c:2891 storage/ipc/dsm.c:300 utils/adt/genfile.c:439
+#: utils/adt/misc.c:411 utils/misc/tzparser.c:339
 #, c-format
 msgid "could not open directory \"%s\": %m"
 msgstr "无法打开目录 \"%s\": %m"
 
-#: access/transam/xlogfuncs.c:116
+#: access/transam/xlogfuncs.c:155 access/transam/xlogfuncs.c:229
+#, c-format
+#| msgid "a backup is not in progress"
+msgid "non-exclusive backup in progress"
+msgstr "非排除备份在运行中"
+
+#: access/transam/xlogfuncs.c:156 access/transam/xlogfuncs.c:230
+#, c-format
+msgid "did you mean to use pg_stop_backup('f')?"
+msgstr "你是想使用 pg_stop_backup('f') 吗?"
+
+#: access/transam/xlogfuncs.c:200 commands/event_trigger.c:1449
+#: commands/event_trigger.c:2000 commands/extension.c:1728
+#: commands/extension.c:1837 commands/extension.c:2030 commands/prepare.c:702
+#: executor/execQual.c:1757 executor/execQual.c:1782 executor/execQual.c:2157
+#: executor/execQual.c:5386 executor/functions.c:1024 foreign/foreign.c:598
+#: replication/logical/logicalfuncs.c:175 replication/logical/origin.c:1391
+#: replication/slotfuncs.c:189 replication/walsender.c:2761
+#: utils/adt/jsonfuncs.c:1483 utils/adt/jsonfuncs.c:1615
+#: utils/adt/jsonfuncs.c:1805 utils/adt/jsonfuncs.c:1934
+#: utils/adt/jsonfuncs.c:2702 utils/adt/pgstatfuncs.c:552
+#: utils/adt/pgstatfuncs.c:653 utils/fmgr/funcapi.c:61 utils/misc/guc.c:8424
+#: utils/mmgr/portalmem.c:1064
+#, c-format
+msgid "set-valued function called in context that cannot accept a set"
+msgstr "在不能接受使用集合的环境中调用set-valued函数"
+
+#: access/transam/xlogfuncs.c:204 commands/event_trigger.c:1453
+#: commands/event_trigger.c:2004 commands/extension.c:1732
+#: commands/extension.c:1841 commands/extension.c:2034 commands/prepare.c:706
+#: foreign/foreign.c:603 replication/logical/logicalfuncs.c:179
+#: replication/logical/origin.c:1395 replication/slotfuncs.c:193
+#: replication/walsender.c:2765 utils/adt/pgstatfuncs.c:556
+#: utils/adt/pgstatfuncs.c:657 utils/misc/guc.c:8428 utils/misc/pg_config.c:44
+#: utils/mmgr/portalmem.c:1068
+#, c-format
+msgid "materialize mode required, but it is not allowed in this context"
+msgstr "要求使用物化模式,但是在这种环境下不允许使用."
+
+#: access/transam/xlogfuncs.c:247
 #, c-format
-msgid "must be superuser to switch transaction log files"
-msgstr "必须为超级用户才能切换事务日志文件"
+#| msgid "a backup is not in progress"
+msgid "non-exclusive backup is not in progress"
+msgstr "非排除备份不在运行中"
 
-#: access/transam/xlogfuncs.c:145
+#: access/transam/xlogfuncs.c:248
 #, c-format
-msgid "must be superuser to create a restore point"
-msgstr "只有超级用户能创建恢复点"
+msgid "did you mean to use pg_stop_backup('t')?"
+msgstr "你是想使用 pg_stop_backup('t') 吗?"
 
-#: access/transam/xlogfuncs.c:156
+#: access/transam/xlogfuncs.c:327
 #, c-format
 msgid "WAL level not sufficient for creating a restore point"
 msgstr "WAL的级别不能满足创建恢复点的要求"
 
-#: access/transam/xlogfuncs.c:164
+#: access/transam/xlogfuncs.c:335
 #, c-format
 msgid "value too long for restore point (maximum %d characters)"
 msgstr "恢复点值超长(最大%d个字符)"
 
-#: access/transam/xlogfuncs.c:281
+#: access/transam/xlogfuncs.c:473
 #, c-format
 msgid "pg_xlogfile_name_offset() cannot be executed during recovery."
 msgstr "在恢复过程中不能执行pg_xlogfile_name_offset()"
 
-#: access/transam/xlogfuncs.c:337
+#: access/transam/xlogfuncs.c:529
 #, c-format
 msgid "pg_xlogfile_name() cannot be executed during recovery."
 msgstr "在恢复过程中无法执行pg_xlogfile_name() "
 
-#: access/transam/xlogfuncs.c:354 access/transam/xlogfuncs.c:376
-#, c-format
-msgid "must be superuser to control recovery"
-msgstr "只有超级用户才能控制恢复"
-
-#: access/transam/xlogfuncs.c:359 access/transam/xlogfuncs.c:381
-#: access/transam/xlogfuncs.c:398
+#: access/transam/xlogfuncs.c:549 access/transam/xlogfuncs.c:569
+#: access/transam/xlogfuncs.c:586
 #, c-format
 msgid "recovery is not in progress"
 msgstr "恢复操作没在进行中"
 
-#: access/transam/xlogfuncs.c:360 access/transam/xlogfuncs.c:382
-#: access/transam/xlogfuncs.c:399
+#: access/transam/xlogfuncs.c:550 access/transam/xlogfuncs.c:570
+#: access/transam/xlogfuncs.c:587
 #, c-format
 msgid "Recovery control functions can only be executed during recovery."
 msgstr "在恢复期间无法执行恢复控制函数"
 
-#: access/transam/xlogreader.c:264
+#: access/transam/xlogreader.c:285
 #, c-format
-#| msgid "checkpoint record is at %X/%X"
 msgid "invalid record offset at %X/%X"
 msgstr "%X/%X处有无效记录偏移量"
 
-#: access/transam/xlogreader.c:272
+#: access/transam/xlogreader.c:293
 #, c-format
-#| msgid "checkpoint record is at %X/%X"
 msgid "contrecord is requested by %X/%X"
 msgstr "%X/%X位置处要求继续记录"
 
-#: access/transam/xlogreader.c:312 access/transam/xlogreader.c:603
+#: access/transam/xlogreader.c:334 access/transam/xlogreader.c:633
 #, c-format
-#| msgid "checkpoint record is at %X/%X"
-msgid "invalid record length at %X/%X"
-msgstr "%X/%X处的记录长度不合法"
+#| msgid "invalid record length at %X/%X"
+msgid "invalid record length at %X/%X: wanted %u, got %u"
+msgstr "%X/%X 处的记录长度不合法:想要 %u,但得到的是 %u"
 
-#: access/transam/xlogreader.c:326
+#: access/transam/xlogreader.c:349
 #, c-format
-#| msgid "encoding name too long"
 msgid "record length %u at %X/%X too long"
 msgstr "%2$X/%3$X处的记录长度%1$u太长"
 
-#: access/transam/xlogreader.c:367
+#: access/transam/xlogreader.c:390
 #, c-format
-#| msgid "checkpoint record is at %X/%X"
 msgid "there is no contrecord flag at %X/%X"
 msgstr "在%X/%X处没有继续记录标志"
 
-#: access/transam/xlogreader.c:380
+#: access/transam/xlogreader.c:403
 #, c-format
-#| msgid "using previous checkpoint record at %X/%X"
 msgid "invalid contrecord length %u at %X/%X"
 msgstr "在%2$X/%3$X处的继续记录长度%1$u不合法"
 
-#: access/transam/xlogreader.c:610
+#: access/transam/xlogreader.c:641
 #, c-format
-#| msgid "invalid resource manager ID in checkpoint record"
 msgid "invalid resource manager ID %u at %X/%X"
 msgstr "在%2$X/%3$X处的资源管理器ID%1$u不合法"
 
-#: access/transam/xlogreader.c:624 access/transam/xlogreader.c:641
+#: access/transam/xlogreader.c:655 access/transam/xlogreader.c:672
 #, c-format
 msgid "record with incorrect prev-link %X/%X at %X/%X"
 msgstr "具有不正确向前链接%X/%X的记录出现在%X/%X"
 
-#: access/transam/xlogreader.c:678
+#: access/transam/xlogreader.c:709
 #, c-format
-#| msgid "invalid resource manager ID in checkpoint record"
 msgid "incorrect resource manager data checksum in record at %X/%X"
 msgstr "在%X/%X处的记录中的资源管理器数据校验和不正确"
 
-#: access/transam/xlogreader.c:711
+#: access/transam/xlogreader.c:742
 #, c-format
-#| msgid "unexpected timeline ID %u in log segment %s, offset %u"
 msgid "invalid magic number %04X in log segment %s, offset %u"
 msgstr "日志段%2$s、偏移量%3$u中的magic号%1$04X无效"
 
-#: access/transam/xlogreader.c:725 access/transam/xlogreader.c:776
+#: access/transam/xlogreader.c:756 access/transam/xlogreader.c:807
 #, c-format
-#| msgid "unexpected timeline ID %u in log segment %s, offset %u"
 msgid "invalid info bits %04X in log segment %s, offset %u"
 msgstr "日志段%2$s、偏移量%3$u中的info位%1$04X无效"
 
-#: access/transam/xlogreader.c:751
+#: access/transam/xlogreader.c:782
 #, c-format
 msgid ""
 "WAL file is from different database system: WAL file database system "
@@ -2749,48 +3140,46 @@ msgstr ""
 "WAL文件来自于不同的数据库系统:WAL文件数据库系统标识符为%s,pg_control数据库"
 "标识符为%s"
 
-#: access/transam/xlogreader.c:758
+#: access/transam/xlogreader.c:789
 #, c-format
 msgid ""
 "WAL file is from different database system: incorrect XLOG_SEG_SIZE in page "
 "header"
 msgstr "WAL文件来自于不同的数据库系统:页头部中的XLOG_SEG_SIZE不正确"
 
-#: access/transam/xlogreader.c:764
+#: access/transam/xlogreader.c:795
 #, c-format
 msgid ""
 "WAL file is from different database system: incorrect XLOG_BLCKSZ in page "
 "header"
 msgstr "WAL文件来自于不同的数据库系统:页头部中的XLOG_BLCKSZ不正确"
 
-#: access/transam/xlogreader.c:790
+#: access/transam/xlogreader.c:821
 #, c-format
-#| msgid "unexpected timeline ID %u in log segment %s, offset %u"
 msgid "unexpected pageaddr %X/%X in log segment %s, offset %u"
 msgstr "日志段%3$s、偏移%4$u出现意外的pageaddr %1$X/%2$X"
 
-#: access/transam/xlogreader.c:815
+#: access/transam/xlogreader.c:846
 #, c-format
-#| msgid "unexpected timeline ID %u in log segment %s, offset %u"
 msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u"
 msgstr "日志段%3$s、偏移%4$u出现失序的时间线ID %1$u(在%2$u之后)"
 
-#: access/transam/xlogreader.c:1024
+#: access/transam/xlogreader.c:1053
 #, c-format
 msgid "out-of-order block_id %u at %X/%X"
 msgstr "乱序的block_id %u位于%X/%X"
 
-#: access/transam/xlogreader.c:1046
+#: access/transam/xlogreader.c:1075
 #, c-format
 msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X"
 msgstr "BKPBLOCK_HAS_DATA已设置,但是在%X/%X没有包括数据"
 
-#: access/transam/xlogreader.c:1053
+#: access/transam/xlogreader.c:1082
 #, c-format
 msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X"
 msgstr "BKPBLOCK_HAS_DATA没有被设置,但是数据长度为%u,它位于%X/%X"
 
-#: access/transam/xlogreader.c:1086
+#: access/transam/xlogreader.c:1115
 #, c-format
 msgid ""
 "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at "
@@ -2799,17 +3188,17 @@ msgstr ""
 "BKPIMAGE_HAS_HOLE被设置,但是洞偏移为%u,长度为%u,块映像长度为%u,它位于%X/"
 "%X"
 
-#: access/transam/xlogreader.c:1102
+#: access/transam/xlogreader.c:1131
 #, c-format
 msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X"
 msgstr "BKPIMAGE_HAS_HOLE没有被设置,但是洞偏移为%u,长度为%u,它位于%X/%X"
 
-#: access/transam/xlogreader.c:1117
+#: access/transam/xlogreader.c:1146
 #, c-format
 msgid "BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X"
 msgstr "BKPIMAGE_IS_COMPRESSED被设置,但是块映像长度是%u,它位于%X/%X"
 
-#: access/transam/xlogreader.c:1132
+#: access/transam/xlogreader.c:1161
 #, c-format
 msgid ""
 "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image "
@@ -2818,619 +3207,622 @@ msgstr ""
 "既没有设置BKPIMAGE_HAS_HOLE也没有设置BKPIMAGE_IS_COMPRESSED,但是块映像长度"
 "是%u,它位于%X/%X"
 
-#: access/transam/xlogreader.c:1148
+#: access/transam/xlogreader.c:1177
 #, c-format
 msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X"
 msgstr "设置了BKPBLOCK_SAME_REL,但是在%X/%X位置没有记录先前的关系"
 
-#: access/transam/xlogreader.c:1160
+#: access/transam/xlogreader.c:1189
 #, c-format
-#| msgid "invalid page in block %u of relation %s"
 msgid "invalid block_id %u at %X/%X"
 msgstr "%2$X/%3$X处的block_id %1$u无效"
 
-#: access/transam/xlogreader.c:1225
+#: access/transam/xlogreader.c:1254
 #, c-format
-#| msgid "recovery restart point at %X/%X"
 msgid "record with invalid length at %X/%X"
 msgstr "在%X/%X处的记录的长度无效"
 
-#: access/transam/xlogreader.c:1314
+#: access/transam/xlogreader.c:1343
 #, c-format
-#| msgid "invalid compression code: %d\n"
 msgid "invalid compressed image at %X/%X, block %d"
 msgstr "在%X/%X、块%d处有无效压缩映像"
 
-#: bootstrap/bootstrap.c:268 postmaster/postmaster.c:779 tcop/postgres.c:3485
+#: access/transam/xlogutils.c:744 replication/walsender.c:2133
+#, c-format
+msgid "could not read from log segment %s, offset %u, length %lu: %m"
+msgstr "无法在日志段%s,偏移量为%u, 长度为%lu的位置上进行读操作: %m"
+
+#: bootstrap/bootstrap.c:269 postmaster/postmaster.c:785 tcop/postgres.c:3488
 #, c-format
 msgid "--%s requires a value"
 msgstr "--%s 需要一个值"
 
-#: bootstrap/bootstrap.c:273 postmaster/postmaster.c:784 tcop/postgres.c:3490
+#: bootstrap/bootstrap.c:274 postmaster/postmaster.c:790 tcop/postgres.c:3493
 #, c-format
 msgid "-c %s requires a value"
 msgstr "-c %s 需要一个值"
 
-#: bootstrap/bootstrap.c:284 postmaster/postmaster.c:796
-#: postmaster/postmaster.c:809
+#: bootstrap/bootstrap.c:285 postmaster/postmaster.c:802
+#: postmaster/postmaster.c:815
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: bootstrap/bootstrap.c:293
+#: bootstrap/bootstrap.c:294
 #, c-format
 msgid "%s: invalid command-line arguments\n"
 msgstr "%s: 无效的命令行参数\n"
 
-#: catalog/aclchk.c:182
+#: catalog/aclchk.c:193
 #, c-format
 msgid "grant options can only be granted to roles"
 msgstr "grant 选项只能用于个体用户上"
 
-#: catalog/aclchk.c:305
+#: catalog/aclchk.c:316
 #, c-format
 msgid "no privileges were granted for column \"%s\" of relation \"%s\""
 msgstr "没有为关系\"%2$s\"的列\"%1$s\"授予相应的权限"
 
-#: catalog/aclchk.c:310
+#: catalog/aclchk.c:321
 #, c-format
 msgid "no privileges were granted for \"%s\""
 msgstr "没有为\"%s\"授予权限"
 
-#: catalog/aclchk.c:318
+#: catalog/aclchk.c:329
 #, c-format
 msgid "not all privileges were granted for column \"%s\" of relation \"%s\""
 msgstr "没有为关系\"%2$s\"的列\"%1$s\"授予所有权限"
 
-#: catalog/aclchk.c:323
+#: catalog/aclchk.c:334
 #, c-format
 msgid "not all privileges were granted for \"%s\""
 msgstr "没有为\"%s\"授予所有的权限"
 
-#: catalog/aclchk.c:334
+#: catalog/aclchk.c:345
 #, c-format
 msgid "no privileges could be revoked for column \"%s\" of relation \"%s\""
 msgstr "不能从关系\"%2$s\"的列\"%1$s\"上撤销权限"
 
-#: catalog/aclchk.c:339
+#: catalog/aclchk.c:350
 #, c-format
 msgid "no privileges could be revoked for \"%s\""
 msgstr "不能为\"%s\"撤销权限"
 
-#: catalog/aclchk.c:347
+#: catalog/aclchk.c:358
 #, c-format
 msgid ""
 "not all privileges could be revoked for column \"%s\" of relation \"%s\""
 msgstr "不能从关系\"%2$s\"的列\"%1$s\"上撤销所有权限"
 
-#: catalog/aclchk.c:352
+#: catalog/aclchk.c:363
 #, c-format
 msgid "not all privileges could be revoked for \"%s\""
 msgstr "不能为\"%s\"撤销所有权限"
 
-#: catalog/aclchk.c:434 catalog/aclchk.c:924
+#: catalog/aclchk.c:448 catalog/aclchk.c:940
 #, c-format
 msgid "invalid privilege type %s for relation"
 msgstr "关系的权限类型%s无效"
 
-#: catalog/aclchk.c:438 catalog/aclchk.c:928
+#: catalog/aclchk.c:452 catalog/aclchk.c:944
 #, c-format
 msgid "invalid privilege type %s for sequence"
 msgstr "序列的权限类型 %s 无效"
 
-#: catalog/aclchk.c:442
+#: catalog/aclchk.c:456
 #, c-format
 msgid "invalid privilege type %s for database"
 msgstr "无效的数据库权限类型 %s"
 
-#: catalog/aclchk.c:446
+#: catalog/aclchk.c:460
 #, c-format
 msgid "invalid privilege type %s for domain"
 msgstr "域的权限类型%s无效"
 
-#: catalog/aclchk.c:450 catalog/aclchk.c:932
+#: catalog/aclchk.c:464 catalog/aclchk.c:948
 #, c-format
 msgid "invalid privilege type %s for function"
 msgstr "无效的函数权限类型 %s"
 
-#: catalog/aclchk.c:454
+#: catalog/aclchk.c:468
 #, c-format
 msgid "invalid privilege type %s for language"
 msgstr "无效的语言权限类型 %s"
 
-#: catalog/aclchk.c:458
+#: catalog/aclchk.c:472
 #, c-format
 msgid "invalid privilege type %s for large object"
 msgstr "用于大对象的无效权限类型%s"
 
-#: catalog/aclchk.c:462
+#: catalog/aclchk.c:476
 #, c-format
 msgid "invalid privilege type %s for schema"
 msgstr "无效的模式权限类型 %s"
 
-#: catalog/aclchk.c:466
+#: catalog/aclchk.c:480
 #, c-format
 msgid "invalid privilege type %s for tablespace"
 msgstr "无效的表空间权限类型 %s"
 
-#: catalog/aclchk.c:470 catalog/aclchk.c:936
+#: catalog/aclchk.c:484 catalog/aclchk.c:952
 #, c-format
 msgid "invalid privilege type %s for type"
 msgstr "类型的权限类型 %s无效"
 
-#: catalog/aclchk.c:474
+#: catalog/aclchk.c:488
 #, c-format
 msgid "invalid privilege type %s for foreign-data wrapper"
 msgstr "外部数据封装器的权限类型 %s 无效"
 
-#: catalog/aclchk.c:478
+#: catalog/aclchk.c:492
 #, c-format
 msgid "invalid privilege type %s for foreign server"
 msgstr "外部服务器的权限类型%s无效"
 
-#: catalog/aclchk.c:517
+#: catalog/aclchk.c:531
 #, c-format
 msgid "column privileges are only valid for relations"
 msgstr "列权限只对关系有效"
 
-#: catalog/aclchk.c:676 catalog/aclchk.c:3874 catalog/aclchk.c:4651
-#: catalog/objectaddress.c:854 catalog/pg_largeobject.c:113
+#: catalog/aclchk.c:690 catalog/aclchk.c:3921 catalog/aclchk.c:4698
+#: catalog/objectaddress.c:873 catalog/pg_largeobject.c:113
 #: storage/large_object/inv_api.c:291
 #, c-format
 msgid "large object %u does not exist"
 msgstr "大对象 %u 不存在"
 
-#: catalog/aclchk.c:863 catalog/aclchk.c:871 commands/collationcmds.c:92
-#: commands/copy.c:1010 commands/copy.c:1028 commands/copy.c:1036
-#: commands/copy.c:1044 commands/copy.c:1052 commands/copy.c:1060
-#: commands/copy.c:1068 commands/copy.c:1076 commands/copy.c:1084
-#: commands/copy.c:1100 commands/copy.c:1114 commands/copy.c:1133
-#: commands/copy.c:1148 commands/dbcommands.c:155 commands/dbcommands.c:163
+#: catalog/aclchk.c:877 catalog/aclchk.c:885 commands/collationcmds.c:92
+#: commands/copy.c:1008 commands/copy.c:1026 commands/copy.c:1034
+#: commands/copy.c:1042 commands/copy.c:1050 commands/copy.c:1058
+#: commands/copy.c:1066 commands/copy.c:1074 commands/copy.c:1082
+#: commands/copy.c:1098 commands/copy.c:1112 commands/copy.c:1131
+#: commands/copy.c:1146 commands/dbcommands.c:155 commands/dbcommands.c:163
 #: commands/dbcommands.c:171 commands/dbcommands.c:179
 #: commands/dbcommands.c:187 commands/dbcommands.c:195
 #: commands/dbcommands.c:203 commands/dbcommands.c:211
 #: commands/dbcommands.c:219 commands/dbcommands.c:1397
 #: commands/dbcommands.c:1405 commands/dbcommands.c:1413
-#: commands/dbcommands.c:1421 commands/extension.c:1244
-#: commands/extension.c:1252 commands/extension.c:1260
-#: commands/extension.c:2677 commands/foreigncmds.c:539
-#: commands/foreigncmds.c:548 commands/functioncmds.c:525
-#: commands/functioncmds.c:619 commands/functioncmds.c:627
-#: commands/functioncmds.c:635 commands/functioncmds.c:643
-#: commands/functioncmds.c:2045 commands/functioncmds.c:2053
-#: commands/sequence.c:1189 commands/sequence.c:1197 commands/sequence.c:1205
-#: commands/sequence.c:1213 commands/sequence.c:1221 commands/sequence.c:1229
-#: commands/sequence.c:1237 commands/sequence.c:1245 commands/typecmds.c:293
-#: commands/typecmds.c:1380 commands/typecmds.c:1389 commands/typecmds.c:1397
-#: commands/typecmds.c:1405 commands/typecmds.c:1413 commands/user.c:138
-#: commands/user.c:155 commands/user.c:163 commands/user.c:171
-#: commands/user.c:179 commands/user.c:187 commands/user.c:195
-#: commands/user.c:203 commands/user.c:211 commands/user.c:219
-#: commands/user.c:227 commands/user.c:235 commands/user.c:243
-#: commands/user.c:522 commands/user.c:534 commands/user.c:542
-#: commands/user.c:550 commands/user.c:558 commands/user.c:566
-#: commands/user.c:574 commands/user.c:582 commands/user.c:591
-#: commands/user.c:599 commands/user.c:607
+#: commands/dbcommands.c:1421 commands/extension.c:1218
+#: commands/extension.c:1226 commands/extension.c:1234
+#: commands/extension.c:1242 commands/extension.c:2760
+#: commands/foreigncmds.c:539 commands/foreigncmds.c:548
+#: commands/functioncmds.c:533 commands/functioncmds.c:649
+#: commands/functioncmds.c:657 commands/functioncmds.c:665
+#: commands/functioncmds.c:673 commands/functioncmds.c:2085
+#: commands/functioncmds.c:2093 commands/sequence.c:1189
+#: commands/sequence.c:1197 commands/sequence.c:1205 commands/sequence.c:1213
+#: commands/sequence.c:1221 commands/sequence.c:1229 commands/sequence.c:1237
+#: commands/sequence.c:1245 commands/typecmds.c:295 commands/typecmds.c:1382
+#: commands/typecmds.c:1391 commands/typecmds.c:1399 commands/typecmds.c:1407
+#: commands/typecmds.c:1415 commands/user.c:139 commands/user.c:156
+#: commands/user.c:164 commands/user.c:172 commands/user.c:180
+#: commands/user.c:188 commands/user.c:196 commands/user.c:204
+#: commands/user.c:212 commands/user.c:220 commands/user.c:228
+#: commands/user.c:236 commands/user.c:244 commands/user.c:537
+#: commands/user.c:549 commands/user.c:557 commands/user.c:565
+#: commands/user.c:573 commands/user.c:581 commands/user.c:589
+#: commands/user.c:597 commands/user.c:606 commands/user.c:614
+#: commands/user.c:622
 #, c-format
 msgid "conflicting or redundant options"
 msgstr "选项冲突或过多"
 
-#: catalog/aclchk.c:969
+#: catalog/aclchk.c:985
 #, c-format
 msgid "default privileges cannot be set for columns"
 msgstr "无法为列设置缺省权限"
 
-#: catalog/aclchk.c:1483 catalog/objectaddress.c:1338 commands/analyze.c:378
-#: commands/copy.c:4383 commands/sequence.c:1491 commands/tablecmds.c:5166
-#: commands/tablecmds.c:5272 commands/tablecmds.c:5332
-#: commands/tablecmds.c:5445 commands/tablecmds.c:5502
-#: commands/tablecmds.c:5596 commands/tablecmds.c:5692
-#: commands/tablecmds.c:7844 commands/tablecmds.c:8049
-#: commands/tablecmds.c:8469 commands/trigger.c:643 parser/analyze.c:2160
-#: parser/parse_relation.c:2539 parser/parse_relation.c:2601
-#: parser/parse_target.c:940 parser/parse_type.c:128 utils/adt/acl.c:2839
-#: utils/adt/ruleutils.c:1856
+#: catalog/aclchk.c:1501 catalog/objectaddress.c:1390 commands/analyze.c:378
+#: commands/copy.c:4423 commands/sequence.c:1491 commands/tablecmds.c:5199
+#: commands/tablecmds.c:5305 commands/tablecmds.c:5365
+#: commands/tablecmds.c:5478 commands/tablecmds.c:5535
+#: commands/tablecmds.c:5629 commands/tablecmds.c:5725
+#: commands/tablecmds.c:7877 commands/tablecmds.c:8082
+#: commands/tablecmds.c:8502 commands/trigger.c:642 parser/analyze.c:2160
+#: parser/parse_relation.c:2542 parser/parse_relation.c:2604
+#: parser/parse_target.c:940 parser/parse_type.c:127 utils/adt/acl.c:2840
+#: utils/adt/ruleutils.c:1862
 #, c-format
 msgid "column \"%s\" of relation \"%s\" does not exist"
 msgstr "关系 \"%2$s\" 的 \"%1$s\" 字段不存在"
 
-#: catalog/aclchk.c:1748 catalog/objectaddress.c:1151 commands/sequence.c:1078
-#: commands/tablecmds.c:220 commands/tablecmds.c:11941 utils/adt/acl.c:2075
-#: utils/adt/acl.c:2105 utils/adt/acl.c:2137 utils/adt/acl.c:2169
-#: utils/adt/acl.c:2197 utils/adt/acl.c:2227
+#: catalog/aclchk.c:1770 catalog/objectaddress.c:1203 commands/sequence.c:1078
+#: commands/tablecmds.c:223 commands/tablecmds.c:12009 utils/adt/acl.c:2076
+#: utils/adt/acl.c:2106 utils/adt/acl.c:2138 utils/adt/acl.c:2170
+#: utils/adt/acl.c:2198 utils/adt/acl.c:2228
 #, c-format
 msgid "\"%s\" is not a sequence"
 msgstr "\"%s\" 不是一个序列"
 
-#: catalog/aclchk.c:1786
+#: catalog/aclchk.c:1808
 #, c-format
 msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges"
 msgstr "序列\"%s\"只支持权限USAGE, SELECT 和UPDATE"
 
-#: catalog/aclchk.c:1803
+#: catalog/aclchk.c:1825
 #, c-format
 msgid "invalid privilege type USAGE for table"
 msgstr "表的权限类型 USAGE 无效"
 
-#: catalog/aclchk.c:1968
+#: catalog/aclchk.c:1993
 #, c-format
 msgid "invalid privilege type %s for column"
 msgstr "列的权限类型%s无效"
 
-#: catalog/aclchk.c:1981
+#: catalog/aclchk.c:2006
 #, c-format
 msgid "sequence \"%s\" only supports SELECT column privileges"
 msgstr "序列\"%s\"只支持在列上的SELECT权限"
 
-#: catalog/aclchk.c:2565
+#: catalog/aclchk.c:2600
 #, c-format
 msgid "language \"%s\" is not trusted"
 msgstr "语言 \"%s\" 不可信"
 
-#: catalog/aclchk.c:2567
+#: catalog/aclchk.c:2602
 #, c-format
 msgid "Only superusers can use untrusted languages."
 msgstr "只有超级用户可以使用非信任语言."
 
-#: catalog/aclchk.c:3083
+#: catalog/aclchk.c:3127
 #, c-format
 msgid "cannot set privileges of array types"
 msgstr "不能设置数组类型的权限"
 
-#: catalog/aclchk.c:3084
+#: catalog/aclchk.c:3128
 #, c-format
 msgid "Set the privileges of the element type instead."
 msgstr "设置元素类型的权限."
 
-#: catalog/aclchk.c:3091 catalog/objectaddress.c:1471 commands/typecmds.c:3142
+#: catalog/aclchk.c:3135 catalog/objectaddress.c:1523 commands/typecmds.c:3146
 #, c-format
 msgid "\"%s\" is not a domain"
 msgstr "\"%s\" 不是一个域"
 
-#: catalog/aclchk.c:3211
+#: catalog/aclchk.c:3258
 #, c-format
 msgid "unrecognized privilege type \"%s\""
 msgstr "未知的权限类型: \"%s\""
 
-#: catalog/aclchk.c:3260
+#: catalog/aclchk.c:3307
 #, c-format
 msgid "permission denied for column %s"
 msgstr "访问列 %s 的权限不够"
 
-#: catalog/aclchk.c:3262
+#: catalog/aclchk.c:3309
 #, c-format
 msgid "permission denied for relation %s"
 msgstr "对关系 %s 权限不够"
 
-#: catalog/aclchk.c:3264 commands/sequence.c:561 commands/sequence.c:786
+#: catalog/aclchk.c:3311 commands/sequence.c:561 commands/sequence.c:786
 #: commands/sequence.c:828 commands/sequence.c:865 commands/sequence.c:1543
 #, c-format
 msgid "permission denied for sequence %s"
 msgstr "对于序列 %s, 权限不够"
 
-#: catalog/aclchk.c:3266
+#: catalog/aclchk.c:3313
 #, c-format
 msgid "permission denied for database %s"
 msgstr "对数据库 %s 权限不够"
 
-#: catalog/aclchk.c:3268
+#: catalog/aclchk.c:3315
 #, c-format
 msgid "permission denied for function %s"
 msgstr "对函数 %s 权限不够"
 
-#: catalog/aclchk.c:3270
+#: catalog/aclchk.c:3317
 #, c-format
 msgid "permission denied for operator %s"
 msgstr "对操作符 %s 权限不够"
 
-#: catalog/aclchk.c:3272
+#: catalog/aclchk.c:3319
 #, c-format
 msgid "permission denied for type %s"
 msgstr "对类型 %s 权限不够"
 
-#: catalog/aclchk.c:3274
+#: catalog/aclchk.c:3321
 #, c-format
 msgid "permission denied for language %s"
 msgstr "对语言 %s 权限不够"
 
-#: catalog/aclchk.c:3276
+#: catalog/aclchk.c:3323
 #, c-format
 msgid "permission denied for large object %s"
 msgstr "在大对象%s上的权限不够"
 
-#: catalog/aclchk.c:3278
+#: catalog/aclchk.c:3325
 #, c-format
 msgid "permission denied for schema %s"
 msgstr "对模式 %s 权限不够"
 
-#: catalog/aclchk.c:3280
+#: catalog/aclchk.c:3327
 #, c-format
 msgid "permission denied for operator class %s"
 msgstr "对操作符表 %s 权限不够"
 
-#: catalog/aclchk.c:3282
+#: catalog/aclchk.c:3329
 #, c-format
 msgid "permission denied for operator family %s"
 msgstr "对于操作符表%s的权限不够"
 
-#: catalog/aclchk.c:3284
+#: catalog/aclchk.c:3331
 #, c-format
 msgid "permission denied for collation %s"
 msgstr "对排序规则 %s 权限不够"
 
-#: catalog/aclchk.c:3286
+#: catalog/aclchk.c:3333
 #, c-format
 msgid "permission denied for conversion %s"
 msgstr "对编码转换 %s 权限不够"
 
-#: catalog/aclchk.c:3288
+#: catalog/aclchk.c:3335
 #, c-format
 msgid "permission denied for tablespace %s"
 msgstr "对表空间 %s 权限不够"
 
-#: catalog/aclchk.c:3290
+#: catalog/aclchk.c:3337
 #, c-format
 msgid "permission denied for text search dictionary %s"
 msgstr "访问文本搜索字典%s的权限不够"
 
-#: catalog/aclchk.c:3292
+#: catalog/aclchk.c:3339
 #, c-format
 msgid "permission denied for text search configuration %s"
 msgstr "访问文本搜索配置%s的权限不足"
 
-#: catalog/aclchk.c:3294
+#: catalog/aclchk.c:3341
 #, c-format
 msgid "permission denied for foreign-data wrapper %s"
 msgstr "访问外部数据封装器 %s 的权限不足"
 
-#: catalog/aclchk.c:3296
+#: catalog/aclchk.c:3343
 #, c-format
 msgid "permission denied for foreign server %s"
 msgstr "访问外部服务器%s的权限不足"
 
-#: catalog/aclchk.c:3298
+#: catalog/aclchk.c:3345
 #, c-format
 msgid "permission denied for event trigger %s"
 msgstr "事件触发器 %s, 权限不够"
 
-#: catalog/aclchk.c:3300
+#: catalog/aclchk.c:3347
 #, c-format
 msgid "permission denied for extension %s"
 msgstr "对扩展 %s 权限不够"
 
-#: catalog/aclchk.c:3306 catalog/aclchk.c:3308
+#: catalog/aclchk.c:3353 catalog/aclchk.c:3355
 #, c-format
 msgid "must be owner of relation %s"
 msgstr "必须是关系 %s 的属主"
 
-#: catalog/aclchk.c:3310
+#: catalog/aclchk.c:3357
 #, c-format
 msgid "must be owner of sequence %s"
 msgstr "必须是序列 %s 的属主"
 
-#: catalog/aclchk.c:3312
+#: catalog/aclchk.c:3359
 #, c-format
 msgid "must be owner of database %s"
 msgstr "必须是数据库 %s 的属主"
 
-#: catalog/aclchk.c:3314
+#: catalog/aclchk.c:3361
 #, c-format
 msgid "must be owner of function %s"
 msgstr "必须是函数 %s 的属主"
 
-#: catalog/aclchk.c:3316
+#: catalog/aclchk.c:3363
 #, c-format
 msgid "must be owner of operator %s"
 msgstr "必须是操作符 %s 的属主"
 
-#: catalog/aclchk.c:3318
+#: catalog/aclchk.c:3365
 #, c-format
 msgid "must be owner of type %s"
 msgstr "必须是类型 %s 的属主"
 
-#: catalog/aclchk.c:3320
+#: catalog/aclchk.c:3367
 #, c-format
 msgid "must be owner of language %s"
 msgstr "必须是语言 %s 的属主"
 
-#: catalog/aclchk.c:3322
+#: catalog/aclchk.c:3369
 #, c-format
 msgid "must be owner of large object %s"
 msgstr "必须是大对象%s的属主"
 
-#: catalog/aclchk.c:3324
+#: catalog/aclchk.c:3371
 #, c-format
 msgid "must be owner of schema %s"
 msgstr "必须是模式 %s 的属主"
 
-#: catalog/aclchk.c:3326
+#: catalog/aclchk.c:3373
 #, c-format
 msgid "must be owner of operator class %s"
 msgstr "必须是操作符表 %s 的属主"
 
-#: catalog/aclchk.c:3328
+#: catalog/aclchk.c:3375
 #, c-format
 msgid "must be owner of operator family %s"
 msgstr "必须是操作符集合 %s 的属主"
 
-#: catalog/aclchk.c:3330
+#: catalog/aclchk.c:3377
 #, c-format
 msgid "must be owner of collation %s"
 msgstr "必须是排序规则 %s 的属主"
 
-#: catalog/aclchk.c:3332
+#: catalog/aclchk.c:3379
 #, c-format
 msgid "must be owner of conversion %s"
 msgstr "必须是编码转换 %s 的属主"
 
-#: catalog/aclchk.c:3334
+#: catalog/aclchk.c:3381
 #, c-format
 msgid "must be owner of tablespace %s"
 msgstr "必须是表空间 %s 的属主"
 
 # describe.c:1549
-#: catalog/aclchk.c:3336
+#: catalog/aclchk.c:3383
 #, c-format
 msgid "must be owner of text search dictionary %s"
 msgstr "必须是文本搜寻字典%s的属主"
 
 # describe.c:97
-#: catalog/aclchk.c:3338
+#: catalog/aclchk.c:3385
 #, c-format
 msgid "must be owner of text search configuration %s"
 msgstr "必须是文本搜索配置%s的属主"
 
-#: catalog/aclchk.c:3340
+#: catalog/aclchk.c:3387
 #, c-format
 msgid "must be owner of foreign-data wrapper %s"
 msgstr "必须是外部数据封装器 %s 的属主"
 
-#: catalog/aclchk.c:3342
+#: catalog/aclchk.c:3389
 #, c-format
 msgid "must be owner of foreign server %s"
 msgstr "必须是外部服务器 %s 的属主"
 
-#: catalog/aclchk.c:3344
+#: catalog/aclchk.c:3391
 #, c-format
 msgid "must be owner of event trigger %s"
 msgstr "必须是事件触发器 %s 的属主"
 
-#: catalog/aclchk.c:3346
+#: catalog/aclchk.c:3393
 #, c-format
 msgid "must be owner of extension %s"
 msgstr "必须是扩展 %s 的属主"
 
-#: catalog/aclchk.c:3388
+#: catalog/aclchk.c:3435
 #, c-format
 msgid "permission denied for column \"%s\" of relation \"%s\""
 msgstr "访问关系\"%2$s\"的列\"%1$s\"的权限不够"
 
-#: catalog/aclchk.c:3507 catalog/aclchk.c:3515
+#: catalog/aclchk.c:3554 catalog/aclchk.c:3562
 #, c-format
 msgid "attribute %d of relation with OID %u does not exist"
 msgstr "带有OID为%2$u的关系的属性%1$d不存在"
 
-#: catalog/aclchk.c:3588 catalog/aclchk.c:4502
+#: catalog/aclchk.c:3635 catalog/aclchk.c:4549
 #, c-format
 msgid "relation with OID %u does not exist"
 msgstr "OID 为 %u 的关系不存在"
 
-#: catalog/aclchk.c:3687 catalog/aclchk.c:4920
+#: catalog/aclchk.c:3734 catalog/aclchk.c:4967
 #, c-format
 msgid "database with OID %u does not exist"
 msgstr "OID 为 %u 的数据库不存在"
 
-#: catalog/aclchk.c:3741 catalog/aclchk.c:4580 tcop/fastpath.c:223
+#: catalog/aclchk.c:3788 catalog/aclchk.c:4627 tcop/fastpath.c:223
 #, c-format
 msgid "function with OID %u does not exist"
 msgstr "OID 为 %u 的函数不存在"
 
-#: catalog/aclchk.c:3795 catalog/aclchk.c:4606
+#: catalog/aclchk.c:3842 catalog/aclchk.c:4653
 #, c-format
 msgid "language with OID %u does not exist"
 msgstr "OID 为 %u 的语言不存在"
 
-#: catalog/aclchk.c:3959 catalog/aclchk.c:4678
+#: catalog/aclchk.c:4006 catalog/aclchk.c:4725
 #, c-format
 msgid "schema with OID %u does not exist"
 msgstr "OID 为 %u 的模式不存在"
 
-#: catalog/aclchk.c:4013 catalog/aclchk.c:4705
+#: catalog/aclchk.c:4060 catalog/aclchk.c:4752
 #, c-format
 msgid "tablespace with OID %u does not exist"
 msgstr "OID 为 %u 的表空间不存在"
 
-#: catalog/aclchk.c:4071 catalog/aclchk.c:4839 commands/foreigncmds.c:325
+#: catalog/aclchk.c:4118 catalog/aclchk.c:4886 commands/foreigncmds.c:325
 #, c-format
 msgid "foreign-data wrapper with OID %u does not exist"
 msgstr "带有OID为%u的外部数据封装器(foreign-data wrapper)不存在"
 
-#: catalog/aclchk.c:4132 catalog/aclchk.c:4866 commands/foreigncmds.c:461
+#: catalog/aclchk.c:4179 catalog/aclchk.c:4913 commands/foreigncmds.c:461
 #, c-format
 msgid "foreign server with OID %u does not exist"
 msgstr "带有OID为%u的外部服务器不存在"
 
-#: catalog/aclchk.c:4191 catalog/aclchk.c:4205 catalog/aclchk.c:4528
+#: catalog/aclchk.c:4238 catalog/aclchk.c:4252 catalog/aclchk.c:4575
 #, c-format
 msgid "type with OID %u does not exist"
 msgstr "OID 为 %u 的类型不存在"
 
-#: catalog/aclchk.c:4554
+#: catalog/aclchk.c:4601
 #, c-format
 msgid "operator with OID %u does not exist"
 msgstr "OID 为 %u 的操作符不存在"
 
-#: catalog/aclchk.c:4731
+#: catalog/aclchk.c:4778
 #, c-format
 msgid "operator class with OID %u does not exist"
 msgstr "OID 为 %u 的操作符表不存在"
 
-#: catalog/aclchk.c:4758
+#: catalog/aclchk.c:4805
 #, c-format
 msgid "operator family with OID %u does not exist"
 msgstr "OID 为 %u 的操作符表不存在"
 
-#: catalog/aclchk.c:4785
+#: catalog/aclchk.c:4832
 #, c-format
 msgid "text search dictionary with OID %u does not exist"
 msgstr "带有OID为%u的文本搜索字典不存在"
 
-#: catalog/aclchk.c:4812
+#: catalog/aclchk.c:4859
 #, c-format
 msgid "text search configuration with OID %u does not exist"
 msgstr "带有OID为%u的文本搜索配置不存在"
 
-#: catalog/aclchk.c:4893 commands/event_trigger.c:586
+#: catalog/aclchk.c:4940 commands/event_trigger.c:587
 #, c-format
 msgid "event trigger with OID %u does not exist"
 msgstr "OID 为 %u 的事件触发器不存在"
 
-#: catalog/aclchk.c:4946
+#: catalog/aclchk.c:4993
 #, c-format
 msgid "collation with OID %u does not exist"
 msgstr "OID 为 %u 的排序规则不存在"
 
-#: catalog/aclchk.c:4972
+#: catalog/aclchk.c:5019
 #, c-format
 msgid "conversion with OID %u does not exist"
 msgstr "OID 为 %u 的编码转换不存在"
 
-#: catalog/aclchk.c:5013
+#: catalog/aclchk.c:5060
 #, c-format
 msgid "extension with OID %u does not exist"
 msgstr "OID 为 %u 的扩展不存在"
 
-#: catalog/dependency.c:640
+#: catalog/dependency.c:646
 #, c-format
 msgid "cannot drop %s because %s requires it"
 msgstr "无法删除 %s, 因为 %s 需要它"
 
-#: catalog/dependency.c:643
+#: catalog/dependency.c:649
 #, c-format
 msgid "You can drop %s instead."
 msgstr "您也可以删除 %s 代替."
 
-#: catalog/dependency.c:804 catalog/pg_shdepend.c:574
+#: catalog/dependency.c:811 catalog/pg_shdepend.c:576
 #, c-format
 msgid "cannot drop %s because it is required by the database system"
 msgstr "无法删除 %s, 因为它是数据库系统所需要的"
 
-#: catalog/dependency.c:920
+#: catalog/dependency.c:927
 #, c-format
 msgid "drop auto-cascades to %s"
 msgstr "自动递归删除 %s"
 
-#: catalog/dependency.c:932 catalog/dependency.c:941
+#: catalog/dependency.c:939 catalog/dependency.c:948
 #, c-format
 msgid "%s depends on %s"
 msgstr "%s 倚赖于 %s"
 
-#: catalog/dependency.c:953 catalog/dependency.c:962
+#: catalog/dependency.c:960 catalog/dependency.c:969
 #, c-format
 msgid "drop cascades to %s"
 msgstr "递归删除 %s"
 
-#: catalog/dependency.c:970 catalog/pg_shdepend.c:685
+#: catalog/dependency.c:977 catalog/pg_shdepend.c:687
 #, c-format
 msgid ""
 "\n"
@@ -3442,107 +3834,107 @@ msgstr[0] ""
 "\n"
 "%d个其它对象(相关列表参见服务器日志)"
 
-#: catalog/dependency.c:982
+#: catalog/dependency.c:989
 #, c-format
 msgid "cannot drop %s because other objects depend on it"
 msgstr "无法删除 %s 因为有其它对象倚赖它"
 
-#: catalog/dependency.c:986 catalog/dependency.c:993
+#: catalog/dependency.c:993 catalog/dependency.c:1000
 #, c-format
 msgid "Use DROP ... CASCADE to drop the dependent objects too."
 msgstr "使用 DROP .. CASCADE 把倚赖对象一并删除."
 
-#: catalog/dependency.c:990
+#: catalog/dependency.c:997
 #, c-format
 msgid "cannot drop desired object(s) because other objects depend on them"
 msgstr "无法删除希望的对象,因为有其它对象倚赖它"
 
 #. translator: %d always has a value larger than 1
-#: catalog/dependency.c:999
+#: catalog/dependency.c:1006
 #, c-format
 msgid "drop cascades to %d other object"
 msgid_plural "drop cascades to %d other objects"
 msgstr[0] "串联删除%d个其它对象"
 
-#: catalog/dependency.c:1622
+#: catalog/dependency.c:1634
 #, c-format
 msgid "constant of the type \"regrole\" cannot be used here"
 msgstr "不能在这里使用类型\"regrole\"的常量"
 
-#: catalog/heap.c:276
+#: catalog/heap.c:277
 #, c-format
 msgid "permission denied to create \"%s.%s\""
 msgstr "创建 \"%s.%s\" 权限不够"
 
-#: catalog/heap.c:278
+#: catalog/heap.c:279
 #, c-format
 msgid "System catalog modifications are currently disallowed."
 msgstr "系统表修改是不被同时允许的"
 
-#: catalog/heap.c:413 commands/tablecmds.c:1433 commands/tablecmds.c:1886
-#: commands/tablecmds.c:4803
+#: catalog/heap.c:414 commands/tablecmds.c:1438 commands/tablecmds.c:1895
+#: commands/tablecmds.c:4821
 #, c-format
 msgid "tables can have at most %d columns"
 msgstr "表最多可以有 %d 个字段"
 
-#: catalog/heap.c:430 commands/tablecmds.c:5062
+#: catalog/heap.c:431 commands/tablecmds.c:5082
 #, c-format
 msgid "column name \"%s\" conflicts with a system column name"
 msgstr "字段名 \"%s\" 与系统字段名冲突"
 
-#: catalog/heap.c:446
+#: catalog/heap.c:447
 #, c-format
 msgid "column name \"%s\" specified more than once"
 msgstr "字段名称\"%s\" 被定义多次"
 
-#: catalog/heap.c:496
+#: catalog/heap.c:497
 #, c-format
 msgid "column \"%s\" has type \"unknown\""
 msgstr "字段 \"%s\" 类型为 \"未知\""
 
-#: catalog/heap.c:497
+#: catalog/heap.c:498
 #, c-format
 msgid "Proceeding with relation creation anyway."
 msgstr "继续关系的创建."
 
-#: catalog/heap.c:510
+#: catalog/heap.c:511
 #, c-format
 msgid "column \"%s\" has pseudo-type %s"
 msgstr "字段 \"%s\" 有伪类型 %s"
 
-#: catalog/heap.c:540
+#: catalog/heap.c:541
 #, c-format
 msgid "composite type %s cannot be made a member of itself"
 msgstr "混合类型 %s 的成员不能为自身"
 
-#: catalog/heap.c:582 commands/createas.c:373
+#: catalog/heap.c:583 commands/createas.c:373
 #, c-format
 msgid "no collation was derived for column \"%s\" with collatable type %s"
 msgstr "没有来自列 \"%s\"的排序规则带有可排序类型 %s"
 
-#: catalog/heap.c:584 commands/createas.c:375 commands/indexcmds.c:1087
+#: catalog/heap.c:585 commands/createas.c:375 commands/indexcmds.c:1132
 #: commands/view.c:116 regex/regc_pg_locale.c:262 utils/adt/formatting.c:1514
 #: utils/adt/formatting.c:1566 utils/adt/formatting.c:1634
 #: utils/adt/formatting.c:1686 utils/adt/formatting.c:1755
-#: utils/adt/formatting.c:1819 utils/adt/like.c:213 utils/adt/selfuncs.c:5276
-#: utils/adt/varlena.c:1411 utils/adt/varlena.c:1800
+#: utils/adt/formatting.c:1819 utils/adt/like.c:213 utils/adt/selfuncs.c:5330
+#: utils/adt/varlena.c:1421 utils/adt/varlena.c:1826
 #, c-format
 msgid "Use the COLLATE clause to set the collation explicitly."
 msgstr "使用COLLATE子句来显示设置排序规则."
 
-#: catalog/heap.c:1065 catalog/index.c:793 commands/tablecmds.c:2613
+#: catalog/heap.c:1066 catalog/index.c:792 commands/tablecmds.c:2622
 #, c-format
 msgid "relation \"%s\" already exists"
 msgstr "关系 \"%s\" 已经存在"
 
-#: catalog/heap.c:1081 catalog/pg_type.c:412 catalog/pg_type.c:722
-#: commands/typecmds.c:235 commands/typecmds.c:782 commands/typecmds.c:1133
-#: commands/typecmds.c:1355 commands/typecmds.c:2109
+#: catalog/heap.c:1082 catalog/pg_type.c:412 catalog/pg_type.c:722
+#: commands/typecmds.c:237 commands/typecmds.c:784 commands/typecmds.c:1135
+#: commands/typecmds.c:1357 commands/typecmds.c:2113
 #, c-format
 msgid "type \"%s\" already exists"
 msgstr "类型 \"%s\" 已经存在"
 
-#: catalog/heap.c:1082
+#: catalog/heap.c:1083
 #, c-format
 msgid ""
 "A relation has an associated type of the same name, so you must use a name "
@@ -3550,153 +3942,150 @@ msgid ""
 msgstr ""
 "关系和与它相关联的类型名称相同,所以不能使用与任何已存在类型名称相冲突的名称."
 
-#: catalog/heap.c:1110
+#: catalog/heap.c:1111
 #, c-format
-#| msgid "must be superuser to connect in binary upgrade mode"
 msgid "pg_class heap OID value not set when in binary upgrade mode"
 msgstr "当处于二进制升级模式时没有设置pg_class的堆OID值"
 
-#: catalog/heap.c:2290
+#: catalog/heap.c:2289
 #, c-format
 msgid "check constraint \"%s\" already exists"
 msgstr "检查约束 \"%s\" 已经存在"
 
-#: catalog/heap.c:2445 catalog/pg_constraint.c:652 commands/tablecmds.c:6037
+#: catalog/heap.c:2442 catalog/pg_constraint.c:654 commands/tablecmds.c:6070
 #, c-format
 msgid "constraint \"%s\" for relation \"%s\" already exists"
 msgstr "关系 \"%2$s\" 的约束 \"%1$s\" 已经存在"
 
-#: catalog/heap.c:2455
+#: catalog/heap.c:2452
 #, c-format
 msgid ""
 "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\""
 msgstr "关系\"%2$s\"上的约束\"%1$s\"与非继承约束相冲突"
 
-#: catalog/heap.c:2469
+#: catalog/heap.c:2466
 #, c-format
 msgid "merging constraint \"%s\" with inherited definition"
 msgstr "正在合并带有已继承定义的约束\"%s\" "
 
-#: catalog/heap.c:2562
+#: catalog/heap.c:2559
 #, c-format
 msgid "cannot use column references in default expression"
 msgstr "在默认的表达式中不能使用字段关联"
 
-#: catalog/heap.c:2573
+#: catalog/heap.c:2570
 #, c-format
 msgid "default expression must not return a set"
 msgstr "默认表达式不能返回一个组合"
 
-#: catalog/heap.c:2592 rewrite/rewriteHandler.c:1077
+#: catalog/heap.c:2589 rewrite/rewriteHandler.c:1084
 #, c-format
 msgid "column \"%s\" is of type %s but default expression is of type %s"
 msgstr "字段 \"%s\" 类型是 %s, 但默认表达式类型是 %s"
 
-#: catalog/heap.c:2597 commands/prepare.c:374 parser/parse_node.c:411
+#: catalog/heap.c:2594 commands/prepare.c:374 parser/parse_node.c:428
 #: parser/parse_target.c:528 parser/parse_target.c:778
-#: parser/parse_target.c:788 rewrite/rewriteHandler.c:1082
+#: parser/parse_target.c:788 rewrite/rewriteHandler.c:1089
 #, c-format
 msgid "You will need to rewrite or cast the expression."
 msgstr "你需要重写或转换表达式"
 
-#: catalog/heap.c:2644
+#: catalog/heap.c:2641
 #, c-format
 msgid "only table \"%s\" can be referenced in check constraint"
 msgstr "在检查约束中只有表 \"%s\" 能被关联的"
 
-#: catalog/heap.c:2884
+#: catalog/heap.c:2881
 #, c-format
 msgid "unsupported ON COMMIT and foreign key combination"
 msgstr "不支持ON COMMIT和外键一同使用"
 
-#: catalog/heap.c:2885
+#: catalog/heap.c:2882
 #, c-format
 msgid ""
 "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT "
 "setting."
 msgstr "表 \"%s\"引用表\"%s\",但是它们没有相同的ON COMMIT设置."
 
-#: catalog/heap.c:2890
+#: catalog/heap.c:2887
 #, c-format
 msgid "cannot truncate a table referenced in a foreign key constraint"
 msgstr "在一个外键约束中无法删除 (truncate) 一个表的关联"
 
-#: catalog/heap.c:2891
+#: catalog/heap.c:2888
 #, c-format
 msgid "Table \"%s\" references \"%s\"."
 msgstr "表\"%s\" 引用\"%s\"."
 
-#: catalog/heap.c:2893
+#: catalog/heap.c:2890
 #, c-format
 msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE."
 msgstr "同时截断表\"%s\" ,或者使用TRUNCATE ... CASCADE."
 
-#: catalog/index.c:205 parser/parse_utilcmd.c:1436 parser/parse_utilcmd.c:1522
+#: catalog/index.c:210 parser/parse_utilcmd.c:1486 parser/parse_utilcmd.c:1572
 #, c-format
 msgid "multiple primary keys for table \"%s\" are not allowed"
 msgstr "对表 \"%s\" 指定多个主键是不允许的"
 
-#: catalog/index.c:223
+#: catalog/index.c:228
 #, c-format
 msgid "primary keys cannot be expressions"
 msgstr "主键不能是表达式"
 
-#: catalog/index.c:743 catalog/index.c:1161
+#: catalog/index.c:742 catalog/index.c:1160
 #, c-format
 msgid "user-defined indexes on system catalog tables are not supported"
 msgstr "在系统表上用户定义的索引是不被支持的"
 
-#: catalog/index.c:753
+#: catalog/index.c:752
 #, c-format
 msgid "concurrent index creation on system catalog tables is not supported"
 msgstr "不支持在系统目录表上同时创建索引"
 
-#: catalog/index.c:771
+#: catalog/index.c:770
 #, c-format
 msgid "shared indexes cannot be created after initdb"
 msgstr "在 initdb 之后, 不能创建共享索引"
 
-#: catalog/index.c:785 commands/createas.c:100 commands/sequence.c:141
-#: parser/parse_utilcmd.c:185
+#: catalog/index.c:784 commands/createas.c:100 commands/sequence.c:141
+#: parser/parse_utilcmd.c:192
 #, c-format
 msgid "relation \"%s\" already exists, skipping"
 msgstr "关系 \"%s\" 已经存在, 跳过"
 
-#: catalog/index.c:821
+#: catalog/index.c:820
 #, c-format
-#| msgid "must be superuser to connect in binary upgrade mode"
 msgid "pg_class index OID value not set when in binary upgrade mode"
 msgstr "当处于二进制升级模式时没有设置pg_class的索引OID值"
 
-#: catalog/index.c:1423
+#: catalog/index.c:1422
 #, c-format
 msgid "DROP INDEX CONCURRENTLY must be first action in transaction"
 msgstr "DROP INDEX CONCURRENTLY在一个事务当中必须是最先执行"
 
-#: catalog/index.c:2007
+#: catalog/index.c:2004
 #, c-format
 msgid "building index \"%s\" on table \"%s\""
 msgstr "为表 \"%2$s\" 建立索引\"%1$s\""
 
-#: catalog/index.c:3262
+#: catalog/index.c:3315
 #, c-format
 msgid "cannot reindex temporary tables of other sessions"
 msgstr "不能重新创建其他会话的临时表上的索引"
 
-#: catalog/index.c:3387
+#: catalog/index.c:3440
 #, c-format
-#| msgid "table \"%s.%s\" was reindexed"
 msgid "index \"%s\" was reindexed"
 msgstr "索引\"%s\"已被重新索引"
 
-#: catalog/index.c:3389 commands/vacuumlazy.c:1135 commands/vacuumlazy.c:1211
-#: commands/vacuumlazy.c:1378 commands/vacuumlazy.c:1550
+#: catalog/index.c:3442 commands/vacuumlazy.c:1323 commands/vacuumlazy.c:1399
+#: commands/vacuumlazy.c:1588 commands/vacuumlazy.c:1789
 #, c-format
 msgid "%s."
 msgstr "%s"
 
 #: catalog/namespace.c:249 catalog/namespace.c:447 catalog/namespace.c:541
-#: commands/trigger.c:4528
+#: commands/trigger.c:4527
 #, c-format
 msgid "cross-database references are not implemented: \"%s.%s.%s\""
 msgstr "未实现跨数据库关联: \"%s.%s.%s\""
@@ -3716,19 +4105,19 @@ msgstr "无法在关系 \"%s.%s\" 上获得锁"
 msgid "could not obtain lock on relation \"%s\""
 msgstr "无法在关系 \"%s\" 上获得锁"
 
-#: catalog/namespace.c:414 parser/parse_relation.c:1134
+#: catalog/namespace.c:414 parser/parse_relation.c:1137
 #, c-format
 msgid "relation \"%s.%s\" does not exist"
 msgstr "关系 \"%s.%s\" 不存在"
 
-#: catalog/namespace.c:419 parser/parse_relation.c:1147
-#: parser/parse_relation.c:1155 utils/adt/regproc.c:1035
+#: catalog/namespace.c:419 parser/parse_relation.c:1150
+#: parser/parse_relation.c:1158 utils/adt/regproc.c:1034
 #, c-format
 msgid "relation \"%s\" does not exist"
 msgstr "关系 \"%s\" 不存在"
 
-#: catalog/namespace.c:487 catalog/namespace.c:2852 commands/extension.c:1394
-#: commands/extension.c:1400
+#: catalog/namespace.c:487 catalog/namespace.c:2841 commands/extension.c:1382
+#: commands/extension.c:1388
 #, c-format
 msgid "no schema has been selected to create in"
 msgstr "创建中没有选择模式"
@@ -3774,329 +4163,310 @@ msgstr "文本搜寻配置 \"%s\" 不存在"
 msgid "cross-database references are not implemented: %s"
 msgstr "未实现跨数据库关联: %s"
 
-#: catalog/namespace.c:2652 gram.y:13305 gram.y:14659 parser/parse_expr.c:796
+#: catalog/namespace.c:2652 gram.y:13434 gram.y:14791 parser/parse_expr.c:796
 #: parser/parse_target.c:1137
 #, c-format
 msgid "improper qualified name (too many dotted names): %s"
 msgstr "不合适的条件名称 (名字中太多的点符号): %s"
 
-#: catalog/namespace.c:2786
-#, c-format
-msgid "%s is already in schema \"%s\""
-msgstr "在模式\"%2$s\"中已存在 %1$s了"
-
-#: catalog/namespace.c:2794
+#: catalog/namespace.c:2783
 #, c-format
 msgid "cannot move objects into or out of temporary schemas"
 msgstr "无法将对象移入或移出临时模式"
 
-#: catalog/namespace.c:2800
+#: catalog/namespace.c:2789
 #, c-format
 msgid "cannot move objects into or out of TOAST schema"
 msgstr "无法将对象移入或移出TOAST模式"
 
-#: catalog/namespace.c:2873 commands/schemacmds.c:238
-#: commands/schemacmds.c:317 commands/tablecmds.c:735
+#: catalog/namespace.c:2862 commands/schemacmds.c:242
+#: commands/schemacmds.c:321 commands/tablecmds.c:740
 #, c-format
 msgid "schema \"%s\" does not exist"
 msgstr "模式 \"%s\" 不存在"
 
-#: catalog/namespace.c:2904
+#: catalog/namespace.c:2893
 #, c-format
 msgid "improper relation name (too many dotted names): %s"
 msgstr "不合适的关系名称 (名字中太多的点符号): %s"
 
-#: catalog/namespace.c:3369
+#: catalog/namespace.c:3358
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" does not exist"
 msgstr "编码 \"%2$s\" 中的排序规则 \"%1$s\" 不存在"
 
-#: catalog/namespace.c:3424
+#: catalog/namespace.c:3413
 #, c-format
 msgid "conversion \"%s\" does not exist"
 msgstr "编码转换 \"%s\" 不存在"
 
-#: catalog/namespace.c:3632
+#: catalog/namespace.c:3621
 #, c-format
 msgid "permission denied to create temporary tables in database \"%s\""
 msgstr "不允许在数据库 \"%s\" 中创建临时表"
 
-#: catalog/namespace.c:3648
+#: catalog/namespace.c:3637
 #, c-format
 msgid "cannot create temporary tables during recovery"
 msgstr "不能在恢复过程中创建临时表"
 
-#: catalog/namespace.c:3654
+#: catalog/namespace.c:3643
 #, c-format
-#| msgid "cannot create temporary tables during recovery"
 msgid "cannot create temporary tables in parallel mode"
 msgstr "并行模式中不能创建临时表"
 
-#: catalog/namespace.c:3898 commands/tablespace.c:1159 commands/variable.c:63
-#: replication/syncrep.c:700 utils/misc/guc.c:9625
+#: catalog/namespace.c:3887 commands/tablespace.c:1177 commands/variable.c:63
+#: utils/misc/guc.c:9853
 #, c-format
 msgid "List syntax is invalid."
 msgstr "列表语法无效."
 
-#: catalog/objectaddress.c:1021
+#: catalog/objectaddress.c:1065
+#| msgid "schema name cannot be qualified"
+msgid "access method name cannot be qualified"
+msgstr "不能限定访问方法名称"
+
+#: catalog/objectaddress.c:1068
 msgid "database name cannot be qualified"
 msgstr "不能限定数据库名称"
 
-#: catalog/objectaddress.c:1024 commands/extension.c:2423
+#: catalog/objectaddress.c:1071 commands/extension.c:2506
 #, c-format
 msgid "extension name cannot be qualified"
 msgstr "扩展名不合格"
 
-#: catalog/objectaddress.c:1027
+#: catalog/objectaddress.c:1074
 msgid "tablespace name cannot be qualified"
 msgstr "不能限定表空间名称"
 
-#: catalog/objectaddress.c:1030
+#: catalog/objectaddress.c:1077
 msgid "role name cannot be qualified"
 msgstr "不能限定角色名称"
 
-#: catalog/objectaddress.c:1033
+#: catalog/objectaddress.c:1080
 msgid "schema name cannot be qualified"
 msgstr "不能限定模式名称"
 
-#: catalog/objectaddress.c:1036
+#: catalog/objectaddress.c:1083
 msgid "language name cannot be qualified"
 msgstr "不能限定language名称"
 
-#: catalog/objectaddress.c:1039
+#: catalog/objectaddress.c:1086
 msgid "foreign-data wrapper name cannot be qualified"
 msgstr "foreign-data包装器名无法限定"
 
-#: catalog/objectaddress.c:1042
+#: catalog/objectaddress.c:1089
 msgid "server name cannot be qualified"
 msgstr "无法限定服务器名"
 
-#: catalog/objectaddress.c:1045
+#: catalog/objectaddress.c:1092
 msgid "event trigger name cannot be qualified"
 msgstr "事件触发器命名无法确定"
 
-#: catalog/objectaddress.c:1158 commands/lockcmds.c:94 commands/policy.c:94
-#: commands/policy.c:381 commands/tablecmds.c:214 commands/tablecmds.c:1294
-#: commands/tablecmds.c:4337 commands/tablecmds.c:7946
+#: catalog/objectaddress.c:1210 commands/lockcmds.c:94 commands/policy.c:94
+#: commands/policy.c:389 commands/policy.c:478 commands/tablecmds.c:217
+#: commands/tablecmds.c:1299 commands/tablecmds.c:4348
+#: commands/tablecmds.c:7979
 #, c-format
 msgid "\"%s\" is not a table"
 msgstr "\"%s\" 不是一个表"
 
-#: catalog/objectaddress.c:1165 commands/tablecmds.c:226
-#: commands/tablecmds.c:4367 commands/tablecmds.c:11946 commands/view.c:155
+#: catalog/objectaddress.c:1217 commands/tablecmds.c:229
+#: commands/tablecmds.c:4378 commands/tablecmds.c:12014 commands/view.c:155
 #, c-format
 msgid "\"%s\" is not a view"
 msgstr "\"%s\" 不是一个视图"
 
-#: catalog/objectaddress.c:1172 commands/matview.c:174
-#: commands/tablecmds.c:232 commands/tablecmds.c:11951
+#: catalog/objectaddress.c:1224 commands/matview.c:174
+#: commands/tablecmds.c:235 commands/tablecmds.c:12019
 #, c-format
 msgid "\"%s\" is not a materialized view"
 msgstr "\"%s\" 不是一个物化视图"
 
-#: catalog/objectaddress.c:1179 commands/tablecmds.c:250
-#: commands/tablecmds.c:4370 commands/tablecmds.c:11956
+#: catalog/objectaddress.c:1231 commands/tablecmds.c:253
+#: commands/tablecmds.c:4381 commands/tablecmds.c:12024
 #, c-format
 msgid "\"%s\" is not a foreign table"
 msgstr "\"%s\" 不是一个外部表"
 
-#: catalog/objectaddress.c:1324 catalog/objectaddress.c:1377
+#: catalog/objectaddress.c:1376 catalog/objectaddress.c:1429
 #, c-format
 msgid "column name must be qualified"
 msgstr "不能限定列名称"
 
-#: catalog/objectaddress.c:1420
+#: catalog/objectaddress.c:1472
 #, c-format
-#| msgid "column \"%s\" of relation \"%s\" does not exist"
 msgid "default value for column \"%s\" of relation \"%s\" does not exist"
 msgstr "关系\"%2$s\"的列\"%1$s\"的默认值不存在"
 
-#: catalog/objectaddress.c:1460 commands/functioncmds.c:128
-#: commands/tablecmds.c:242 commands/typecmds.c:3210 parser/parse_type.c:227
-#: parser/parse_type.c:256 parser/parse_type.c:824 utils/adt/acl.c:4373
-#: utils/adt/regproc.c:1226
+#: catalog/objectaddress.c:1512 commands/functioncmds.c:128
+#: commands/tablecmds.c:245 commands/typecmds.c:3214 parser/parse_type.c:226
+#: parser/parse_type.c:255 parser/parse_type.c:795 utils/adt/acl.c:4374
+#: utils/adt/regproc.c:1225
 #, c-format
 msgid "type \"%s\" does not exist"
 msgstr "类型 \"%s\" 不存在"
 
-#: catalog/objectaddress.c:1577
+#: catalog/objectaddress.c:1629
 #, c-format
-#| msgid "operator %d (%s, %s) of %s: %s"
 msgid "operator %d (%s, %s) of %s does not exist"
 msgstr "%4$s的操作符%1$d (%2$s,%3$s)不存在"
 
-#: catalog/objectaddress.c:1606
+#: catalog/objectaddress.c:1658
 #, c-format
-#| msgid "function %d (%s, %s) of %s: %s"
 msgid "function %d (%s, %s) of %s does not exist"
 msgstr "%4$s的函数%1$d (%2$s, %3$s)不存在"
 
-#: catalog/objectaddress.c:1655 catalog/objectaddress.c:1681
+#: catalog/objectaddress.c:1707 catalog/objectaddress.c:1733
 #, c-format
-#| msgid "mapping for token type \"%s\" does not exist"
 msgid "user mapping for user \"%s\" on server \"%s\" does not exist"
 msgstr "用户\"%s\"在服务器\"%s\"上的用户映射不存在"
 
-#: catalog/objectaddress.c:1670 commands/foreigncmds.c:430
-#: commands/foreigncmds.c:997 commands/foreigncmds.c:1359
-#: foreign/foreign.c:691
+#: catalog/objectaddress.c:1722 commands/foreigncmds.c:430
+#: commands/foreigncmds.c:997 commands/foreigncmds.c:1372
+#: foreign/foreign.c:798
 #, c-format
 msgid "server \"%s\" does not exist"
 msgstr "服务器\"%s\" 不存在"
 
-#: catalog/objectaddress.c:1742
+#: catalog/objectaddress.c:1794
 #, c-format
-#| msgid "unrecognized locktag type %d"
 msgid "unrecognized default ACL object type %c"
 msgstr "无法识别的默认ACL对象类型%c"
 
-#: catalog/objectaddress.c:1743
+#: catalog/objectaddress.c:1795
 #, c-format
-#| msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"."
 msgid "Valid object types are \"r\", \"S\", \"f\", and \"T\"."
 msgstr "有效的对象类型为\"r\"、\"S\"、\"f\"和\"T\"。"
 
-#: catalog/objectaddress.c:1789
+#: catalog/objectaddress.c:1841
 #, c-format
-#| msgid ""
-#| "default conversion function for encoding \"%s\" to \"%s\" does not exist"
 msgid "default ACL for user \"%s\" in schema \"%s\" on %s does not exist"
 msgstr "模式\"%2$s\"中用户\"%1$s\"在%3$s上的默认ACL不存在"
 
-#: catalog/objectaddress.c:1794
+#: catalog/objectaddress.c:1846
 #, c-format
-#| msgid "LDAP user \"%s\" does not exist"
 msgid "default ACL for user \"%s\" on %s does not exist"
 msgstr "用户\"%s\"在%s上的默认ACL不存在"
 
-#: catalog/objectaddress.c:1821 catalog/objectaddress.c:1877
-#: catalog/objectaddress.c:1932
+#: catalog/objectaddress.c:1873 catalog/objectaddress.c:1929
+#: catalog/objectaddress.c:1984
 #, c-format
-#| msgid "array must not contain nulls"
 msgid "name or argument lists may not contain nulls"
 msgstr "名称或者参数列表不能包含空值"
 
-#: catalog/objectaddress.c:1853
+#: catalog/objectaddress.c:1905
 #, c-format
-#| msgid "unsupported type \"%s\" on line %d"
 msgid "unsupported object type \"%s\""
 msgstr "不支持的对象类型\"%s\""
 
-#: catalog/objectaddress.c:1873 catalog/objectaddress.c:1891
+#: catalog/objectaddress.c:1925 catalog/objectaddress.c:1943
 #, c-format
 msgid "name list length must be exactly %d"
 msgstr "名字列表的长度必须正好是 %d"
 
-#: catalog/objectaddress.c:1895
+#: catalog/objectaddress.c:1947
 #, c-format
-#| msgid "argument %d cannot be null"
 msgid "large object OID may not be null"
 msgstr "大对象OID不能为空"
 
-#: catalog/objectaddress.c:1904
+#: catalog/objectaddress.c:1956 catalog/objectaddress.c:2016
+#: catalog/objectaddress.c:2023
 #, c-format
-msgid "name list must be of length at least %d"
-msgstr "名字列表的长度必须至少是 %d"
+msgid "name list length must be at least %d"
+msgstr "名称列表的长度必须至少为%d"
 
-#: catalog/objectaddress.c:1957 catalog/objectaddress.c:1977
+#: catalog/objectaddress.c:2009 catalog/objectaddress.c:2029
 #, c-format
-#| msgid "argument of %s must be a type name"
 msgid "argument list length must be exactly %d"
 msgstr "参数列表的长度必须正好为%d"
 
-#: catalog/objectaddress.c:1964 catalog/objectaddress.c:1971
-#, c-format
-#| msgid "length for type %s must be at least 1"
-msgid "name list length must be at least %d"
-msgstr "名称列表的长度必须至少为%d"
-
-#: catalog/objectaddress.c:2113 libpq/be-fsstubs.c:352
+#: catalog/objectaddress.c:2165 libpq/be-fsstubs.c:352
 #, c-format
 msgid "must be owner of large object %u"
 msgstr "必须是大对象%u的属主"
 
-#: catalog/objectaddress.c:2128 commands/functioncmds.c:1386
+#: catalog/objectaddress.c:2180 commands/functioncmds.c:1426
 #, c-format
 msgid "must be owner of type %s or type %s"
 msgstr "只能是类型 %s 或 %s 的所由者"
 
-#: catalog/objectaddress.c:2168 catalog/objectaddress.c:2184
+#: catalog/objectaddress.c:2220 catalog/objectaddress.c:2237
 #, c-format
 msgid "must be superuser"
 msgstr "必须是超级用户"
 
-#: catalog/objectaddress.c:2175
+#: catalog/objectaddress.c:2227
 #, c-format
 msgid "must have CREATEROLE privilege"
 msgstr "必须拥有CREATEROLE权限."
 
-#: catalog/objectaddress.c:2254
+#: catalog/objectaddress.c:2307
 #, c-format
-#| msgid "unrecognized locktag type %d"
 msgid "unrecognized object type \"%s\""
 msgstr "无法识别的对象类型\"%s\""
 
-#: catalog/objectaddress.c:2449
+#: catalog/objectaddress.c:2502
 #, c-format
 msgid " column %s"
 msgstr " 字段 %s"
 
-#: catalog/objectaddress.c:2455
+#: catalog/objectaddress.c:2508
 #, c-format
 msgid "function %s"
 msgstr "函数 %s"
 
-#: catalog/objectaddress.c:2460
+#: catalog/objectaddress.c:2513
 #, c-format
 msgid "type %s"
 msgstr "类型 %s"
 
-#: catalog/objectaddress.c:2490
+#: catalog/objectaddress.c:2543
 #, c-format
 msgid "cast from %s to %s"
 msgstr "%s 转换为 %s"
 
-#: catalog/objectaddress.c:2510
+#: catalog/objectaddress.c:2563
 #, c-format
 msgid "collation %s"
 msgstr "排序规则 %s"
 
-#: catalog/objectaddress.c:2534
+#: catalog/objectaddress.c:2587
 #, c-format
 msgid "constraint %s on %s"
 msgstr "在%2$s上的约束%1$s "
 
-#: catalog/objectaddress.c:2540
+#: catalog/objectaddress.c:2593
 #, c-format
 msgid "constraint %s"
 msgstr "约束 %s"
 
-#: catalog/objectaddress.c:2557
+#: catalog/objectaddress.c:2610
 #, c-format
 msgid "conversion %s"
 msgstr "编码转换 %s"
 
-#: catalog/objectaddress.c:2594
+#: catalog/objectaddress.c:2647
 #, c-format
 msgid "default for %s"
 msgstr "%s的缺省"
 
-#: catalog/objectaddress.c:2603
+#: catalog/objectaddress.c:2656
 #, c-format
 msgid "language %s"
 msgstr "语言 %s"
 
-#: catalog/objectaddress.c:2608
+#: catalog/objectaddress.c:2661
 #, c-format
 msgid "large object %u"
 msgstr "大对象 %u "
 
-#: catalog/objectaddress.c:2613
+#: catalog/objectaddress.c:2666
 #, c-format
 msgid "operator %s"
 msgstr "操作符 %s"
 
-#: catalog/objectaddress.c:2645
+#: catalog/objectaddress.c:2698
 #, c-format
 msgid "operator class %s for access method %s"
 msgstr "处理方法 %s 的操作符类 %s"
@@ -4105,7 +4475,7 @@ msgstr "处理方法 %s 的操作符类 %s"
 #. first two %s's are data type names, the third %s is the
 #. description of the operator family, and the last %s is the
 #. textual form of the operator with arguments.
-#: catalog/objectaddress.c:2695
+#: catalog/objectaddress.c:2748
 #, c-format
 msgid "operator %d (%s, %s) of %s: %s"
 msgstr "%5$s: %4$s中的操作符%1$d (%2$s,%3$s)"
@@ -4114,298 +4484,326 @@ msgstr "%5$s: %4$s中的操作符%1$d (%2$s,%3$s)"
 #. are data type names, the third %s is the description of the
 #. operator family, and the last %s is the textual form of the
 #. function with arguments.
-#: catalog/objectaddress.c:2745
+#: catalog/objectaddress.c:2798
 #, c-format
 msgid "function %d (%s, %s) of %s: %s"
 msgstr "%4$s: %5$s 的函数%1$d (%2$s, %3$s)"
 
-#: catalog/objectaddress.c:2785
+#: catalog/objectaddress.c:2838
 #, c-format
 msgid "rule %s on "
 msgstr "规则 %s 在 "
 
-#: catalog/objectaddress.c:2807
+#: catalog/objectaddress.c:2860
 #, c-format
-#| msgid "permission denied for language %s"
 msgid "transform for %s language %s"
 msgstr "用于把%s转换到语言%s的转换"
 
-#: catalog/objectaddress.c:2841
+#: catalog/objectaddress.c:2894
 #, c-format
 msgid "trigger %s on "
 msgstr "触发器 %s 在 "
 
-#: catalog/objectaddress.c:2858
+#: catalog/objectaddress.c:2911
 #, c-format
 msgid "schema %s"
 msgstr "模式 %s"
 
-#: catalog/objectaddress.c:2871
+#: catalog/objectaddress.c:2924
 #, c-format
 msgid "text search parser %s"
 msgstr "文本搜寻解析器 %s"
 
 # sql_help.h:301
-#: catalog/objectaddress.c:2886
+#: catalog/objectaddress.c:2939
 #, c-format
 msgid "text search dictionary %s"
 msgstr "文本搜寻字典 %s"
 
 # describe.c:1753
-#: catalog/objectaddress.c:2901
+#: catalog/objectaddress.c:2954
 #, c-format
 msgid "text search template %s"
 msgstr "文本搜寻模版 %s"
 
-#: catalog/objectaddress.c:2916
+#: catalog/objectaddress.c:2969
 #, c-format
 msgid "text search configuration %s"
 msgstr "文本搜寻配置 %s"
 
-#: catalog/objectaddress.c:2924
+#: catalog/objectaddress.c:2977
 #, c-format
 msgid "role %s"
 msgstr "角色 %s"
 
-#: catalog/objectaddress.c:2937
+#: catalog/objectaddress.c:2990
 #, c-format
 msgid "database %s"
 msgstr "数据库 %s"
 
 # describe.c:1342
-#: catalog/objectaddress.c:2949
+#: catalog/objectaddress.c:3002
 #, c-format
 msgid "tablespace %s"
 msgstr "表空间 %s"
 
-#: catalog/objectaddress.c:2958
+#: catalog/objectaddress.c:3011
 #, c-format
 msgid "foreign-data wrapper %s"
 msgstr "外部数据封装器 %s"
 
-#: catalog/objectaddress.c:2967
+#: catalog/objectaddress.c:3020
 #, c-format
 msgid "server %s"
 msgstr "服务器 %s"
 
-#: catalog/objectaddress.c:2995
+#: catalog/objectaddress.c:3048
 #, c-format
-#| msgid "user mapping for %s"
 msgid "user mapping for %s on server %s"
 msgstr "%s在服务器%s上的用户映射"
 
-#: catalog/objectaddress.c:3030
+#: catalog/objectaddress.c:3083
 #, c-format
 msgid "default privileges on new relations belonging to role %s"
 msgstr "在新的关系上的缺省权限属于角色%s"
 
-#: catalog/objectaddress.c:3035
+#: catalog/objectaddress.c:3088
 #, c-format
 msgid "default privileges on new sequences belonging to role %s"
 msgstr "在新的序列上的缺省权限属于角色%s"
 
-#: catalog/objectaddress.c:3040
+#: catalog/objectaddress.c:3093
 #, c-format
 msgid "default privileges on new functions belonging to role %s"
 msgstr "在新的函数上的缺省权限属于角色%s"
 
-#: catalog/objectaddress.c:3045
+#: catalog/objectaddress.c:3098
 #, c-format
 msgid "default privileges on new types belonging to role %s"
 msgstr "在新类型上的缺省权限属于角色 %s"
 
-#: catalog/objectaddress.c:3051
+#: catalog/objectaddress.c:3104
 #, c-format
 msgid "default privileges belonging to role %s"
 msgstr "缺省权限属于角色%s"
 
-#: catalog/objectaddress.c:3059
+#: catalog/objectaddress.c:3112
 #, c-format
 msgid " in schema %s"
 msgstr "在模式%s中"
 
-#: catalog/objectaddress.c:3076
+#: catalog/objectaddress.c:3129
 #, c-format
 msgid "extension %s"
 msgstr "扩展 %s"
 
 # describe.c:1549
-#: catalog/objectaddress.c:3089
+#: catalog/objectaddress.c:3142
 #, c-format
 msgid "event trigger %s"
 msgstr "事件触发器%s"
 
-#: catalog/objectaddress.c:3121
+#: catalog/objectaddress.c:3174
 #, c-format
-#| msgid "rule %s on "
 msgid "policy %s on "
 msgstr "策略%s在 "
 
-#: catalog/objectaddress.c:3184
+#: catalog/objectaddress.c:3192
+#, c-format
+#| msgid "access method \"%s\" does not exist"
+msgid "access method %s"
+msgstr "访问方法 %s"
+
+#: catalog/objectaddress.c:3252
 #, c-format
 msgid "table %s"
 msgstr "表 %s"
 
-#: catalog/objectaddress.c:3188
+#: catalog/objectaddress.c:3256
 #, c-format
 msgid "index %s"
 msgstr "索引 %s"
 
-#: catalog/objectaddress.c:3192
+#: catalog/objectaddress.c:3260
 #, c-format
 msgid "sequence %s"
 msgstr "序列 %s"
 
-#: catalog/objectaddress.c:3196
+#: catalog/objectaddress.c:3264
 #, c-format
 msgid "toast table %s"
 msgstr "toast 表 %s"
 
-#: catalog/objectaddress.c:3200
+#: catalog/objectaddress.c:3268
 #, c-format
 msgid "view %s"
 msgstr "视图 %s"
 
-#: catalog/objectaddress.c:3204
+#: catalog/objectaddress.c:3272
 #, c-format
 msgid "materialized view %s"
 msgstr "物化视图 %s"
 
-#: catalog/objectaddress.c:3208
+#: catalog/objectaddress.c:3276
 #, c-format
 msgid "composite type %s"
 msgstr "复合类型 %s"
 
-#: catalog/objectaddress.c:3212
+#: catalog/objectaddress.c:3280
 #, c-format
 msgid "foreign table %s"
 msgstr "外部表 %s"
 
-#: catalog/objectaddress.c:3217
+#: catalog/objectaddress.c:3285
 #, c-format
 msgid "relation %s"
 msgstr "关系 %s"
 
-#: catalog/objectaddress.c:3254
+#: catalog/objectaddress.c:3322
 #, c-format
 msgid "operator family %s for access method %s"
 msgstr "访问方法 %2$s 的操作符类 %1$s"
 
-#: catalog/pg_aggregate.c:118
+#: catalog/pg_aggregate.c:126
 #, c-format
 msgid "aggregates cannot have more than %d argument"
 msgid_plural "aggregates cannot have more than %d arguments"
 msgstr[0] "聚集函数的参数不能多于%d个"
 
-#: catalog/pg_aggregate.c:141 catalog/pg_aggregate.c:151
+#: catalog/pg_aggregate.c:149 catalog/pg_aggregate.c:159
 #, c-format
 msgid "cannot determine transition data type"
 msgstr "无法确定转换数据类型"
 
-#: catalog/pg_aggregate.c:142 catalog/pg_aggregate.c:152
+#: catalog/pg_aggregate.c:150 catalog/pg_aggregate.c:160
 #, c-format
 msgid ""
 "An aggregate using a polymorphic transition type must have at least one "
 "polymorphic argument."
 msgstr "使用多态转换类型的聚合函数必须至少有一个多态的参数"
 
-#: catalog/pg_aggregate.c:165
+#: catalog/pg_aggregate.c:173
 #, c-format
 msgid "a variadic ordered-set aggregate must use VARIADIC type ANY"
 msgstr "一个可变有序集聚集必须使用可变类型ANY"
 
-#: catalog/pg_aggregate.c:191
+#: catalog/pg_aggregate.c:199
 #, c-format
 msgid ""
 "a hypothetical-set aggregate must have direct arguments matching its "
 "aggregated arguments"
 msgstr "一个判定集聚集的直接参数必须与它的聚集参数相匹配"
 
-#: catalog/pg_aggregate.c:238 catalog/pg_aggregate.c:282
+#: catalog/pg_aggregate.c:246 catalog/pg_aggregate.c:290
 #, c-format
 msgid "return type of transition function %s is not %s"
 msgstr "转换函数的返回类型 %s 不是 %s"
 
-#: catalog/pg_aggregate.c:258 catalog/pg_aggregate.c:301
+#: catalog/pg_aggregate.c:266 catalog/pg_aggregate.c:309
 #, c-format
 msgid ""
 "must not omit initial value when transition function is strict and "
 "transition type is not compatible with input type"
 msgstr "当转换函数是受限制的并且转换类型与输入类型不兼容时,不能忽略初始化值"
 
-#: catalog/pg_aggregate.c:327
+#: catalog/pg_aggregate.c:335
 #, c-format
 msgid "return type of inverse transition function %s is not %s"
 msgstr "逆向转换函数的返回类型 %s 不是 %s"
 
-#: catalog/pg_aggregate.c:344 executor/nodeWindowAgg.c:2302
+#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:2305
 #, c-format
 msgid ""
 "strictness of aggregate's forward and inverse transition functions must match"
 msgstr "聚集函数的正向和逆向转换函数必须匹配"
 
-#: catalog/pg_aggregate.c:388 catalog/pg_aggregate.c:464
+#: catalog/pg_aggregate.c:396 catalog/pg_aggregate.c:547
 #, c-format
 msgid "final function with extra arguments must not be declared STRICT"
 msgstr "带参数的终止函数不能定义为STRICT"
 
-#: catalog/pg_aggregate.c:410 catalog/pg_proc.c:245 catalog/pg_proc.c:252
+#: catalog/pg_aggregate.c:426
+#, c-format
+#| msgid "return type of transition function %s is not %s"
+msgid "return type of combine function %s is not %s"
+msgstr "组合函数 %s 的返回类型不是 %s"
+
+#: catalog/pg_aggregate.c:437
+#, c-format
+#| msgid "final function with extra arguments must not be declared STRICT"
+msgid ""
+"combine function with \"%s\" transition type must not be declared STRICT"
+msgstr "带有 \"%s\" 转移类型的组合函数不能被声明为 STRICT"
+
+#: catalog/pg_aggregate.c:457
+#, c-format
+#| msgid "return type of transition function %s is not %s"
+msgid "return type of serialization function %s is not %s"
+msgstr "序列化函数 %s 的返回类型不是 %s"
+
+#: catalog/pg_aggregate.c:477
+#, c-format
+#| msgid "return type of transition function %s is not %s"
+msgid "return type of deserialization function %s is not %s"
+msgstr "反序列化函数 %s 的返回类型不是 %s"
+
+#: catalog/pg_aggregate.c:493 catalog/pg_proc.c:246 catalog/pg_proc.c:253
 #, c-format
 msgid "cannot determine result data type"
 msgstr "无法确定结构数据类型"
 
-#: catalog/pg_aggregate.c:411
+#: catalog/pg_aggregate.c:494
 #, c-format
 msgid ""
 "An aggregate returning a polymorphic type must have at least one polymorphic "
 "argument."
 msgstr "使用多态类型的聚合函数必须至少有一个多态的参数"
 
-#: catalog/pg_aggregate.c:423 catalog/pg_proc.c:258
+#: catalog/pg_aggregate.c:506 catalog/pg_proc.c:259
 #, c-format
 msgid "unsafe use of pseudo-type \"internal\""
 msgstr "使用伪类型\"internal\"的方式不安全"
 
-#: catalog/pg_aggregate.c:424 catalog/pg_proc.c:259
+#: catalog/pg_aggregate.c:507 catalog/pg_proc.c:260
 #, c-format
 msgid ""
 "A function returning \"internal\" must have at least one \"internal\" "
 "argument."
 msgstr "返回\"internal\"类型结果的函数必须至少有一个\"internal\" 类型的参数"
 
-#: catalog/pg_aggregate.c:477
+#: catalog/pg_aggregate.c:560
 #, c-format
 msgid ""
 "moving-aggregate implementation returns type %s, but plain implementation "
 "returns type %s"
 msgstr "moving-aggregate的实现返回类型为%s, 但是普通的实现返回类型为%s"
 
-#: catalog/pg_aggregate.c:488
+#: catalog/pg_aggregate.c:571
 #, c-format
 msgid "sort operator can only be specified for single-argument aggregates"
 msgstr "只能为单一参数的聚合函数而定义排序操作符."
 
-#: catalog/pg_aggregate.c:700 commands/typecmds.c:1702
-#: commands/typecmds.c:1753 commands/typecmds.c:1784 commands/typecmds.c:1807
-#: commands/typecmds.c:1828 commands/typecmds.c:1855 commands/typecmds.c:1882
-#: commands/typecmds.c:1959 commands/typecmds.c:2001 parser/parse_func.c:364
+#: catalog/pg_aggregate.c:816 commands/typecmds.c:1705
+#: commands/typecmds.c:1756 commands/typecmds.c:1787 commands/typecmds.c:1810
+#: commands/typecmds.c:1831 commands/typecmds.c:1858 commands/typecmds.c:1885
+#: commands/typecmds.c:1962 commands/typecmds.c:2004 parser/parse_func.c:364
 #: parser/parse_func.c:393 parser/parse_func.c:418 parser/parse_func.c:432
-#: parser/parse_func.c:507 parser/parse_func.c:518 parser/parse_func.c:1920
+#: parser/parse_func.c:507 parser/parse_func.c:518 parser/parse_func.c:1921
 #, c-format
 msgid "function %s does not exist"
 msgstr "函数 %s 不存在"
 
-#: catalog/pg_aggregate.c:706
+#: catalog/pg_aggregate.c:822
 #, c-format
 msgid "function %s returns a set"
 msgstr "函数 %s 返回一个组合"
 
-#: catalog/pg_aggregate.c:721
+#: catalog/pg_aggregate.c:837
 #, c-format
 msgid "function %s must accept VARIADIC ANY to be used in this aggregate"
 msgstr "函数%s必须接受VARIADIC ANY类型,用于聚集函数中"
 
-#: catalog/pg_aggregate.c:745
+#: catalog/pg_aggregate.c:861
 #, c-format
 msgid "function %s requires run-time type coercion"
 msgstr "函数 %s 需要运行时类型强制"
@@ -4420,27 +4818,27 @@ msgstr "编码 \"%2$s\" 的排序规则 \"%1$s\" 已经存在"
 msgid "collation \"%s\" already exists"
 msgstr "排序规则 \"%s\" 已经存在"
 
-#: catalog/pg_constraint.c:661
+#: catalog/pg_constraint.c:663
 #, c-format
 msgid "constraint \"%s\" for domain %s already exists"
 msgstr "域 %2$s 的约束 \"%1$s\" 已经存在"
 
-#: catalog/pg_constraint.c:794
+#: catalog/pg_constraint.c:797
 #, c-format
 msgid "table \"%s\" has multiple constraints named \"%s\""
 msgstr "表 \"%s\" 有多个名为 \"%s\" 的约束"
 
-#: catalog/pg_constraint.c:806
+#: catalog/pg_constraint.c:809
 #, c-format
 msgid "constraint \"%s\" for table \"%s\" does not exist"
 msgstr "表 \"%2$s\" 的 \"%1$s\" 约束不存在"
 
-#: catalog/pg_constraint.c:852
+#: catalog/pg_constraint.c:855
 #, c-format
 msgid "domain \"%s\" has multiple constraints named \"%s\""
 msgstr "域 \"%s\" 有多个名为 \"%s\" 的约束"
 
-#: catalog/pg_constraint.c:864
+#: catalog/pg_constraint.c:867
 #, c-format
 msgid "constraint \"%s\" for domain \"%s\" does not exist"
 msgstr "域 \"%2$s\" 的 \"%1$s\" 约束不存在"
@@ -4455,7 +4853,7 @@ msgstr "编码转换 \"%s\" 已经存在"
 msgid "default conversion for %s to %s already exists"
 msgstr "默认的 %s 到 %s 的转换已经存在"
 
-#: catalog/pg_depend.c:165 commands/extension.c:2945
+#: catalog/pg_depend.c:165 commands/extension.c:3028
 #, c-format
 msgid "%s is already a member of extension \"%s\""
 msgstr "\"%s\" 已经是扩展\"%s\"的成员"
@@ -4492,7 +4890,6 @@ msgstr "枚举标签\"%s\" 不存在"
 
 #: catalog/pg_enum.c:349
 #, c-format
-#| msgid "must be superuser to connect in binary upgrade mode"
 msgid "pg_enum OID value not set when in binary upgrade mode"
 msgstr "当处于二进制升级模式时没有设置pg_enum OID值"
 
@@ -4501,173 +4898,173 @@ msgstr "当处于二进制升级模式时没有设置pg_enum OID值"
 msgid "ALTER TYPE ADD BEFORE/AFTER is incompatible with binary upgrade"
 msgstr "ALTER TYPE ADD BEFORE/AFTER与二进制升级不兼容"
 
-#: catalog/pg_namespace.c:61 commands/schemacmds.c:246
+#: catalog/pg_namespace.c:61 commands/schemacmds.c:250
 #, c-format
 msgid "schema \"%s\" already exists"
 msgstr "模式 \"%s\" 已经存在"
 
-#: catalog/pg_operator.c:222 catalog/pg_operator.c:363
+#: catalog/pg_operator.c:219 catalog/pg_operator.c:360
 #, c-format
 msgid "\"%s\" is not a valid operator name"
 msgstr "\"%s\" 不是一个有效的操作符名称"
 
-#: catalog/pg_operator.c:372
+#: catalog/pg_operator.c:369
 #, c-format
 msgid "only binary operators can have commutators"
 msgstr "只有二进制操作符能有交换 (commutators)"
 
-#: catalog/pg_operator.c:376
+#: catalog/pg_operator.c:373 commands/operatorcmds.c:485
 #, c-format
 msgid "only binary operators can have join selectivity"
 msgstr "只有二进制操作符能有可选择性联合"
 
-#: catalog/pg_operator.c:380
+#: catalog/pg_operator.c:377
 #, c-format
 msgid "only binary operators can merge join"
 msgstr "只有二进制操作符可以合并联合"
 
-#: catalog/pg_operator.c:384
+#: catalog/pg_operator.c:381
 #, c-format
 msgid "only binary operators can hash"
 msgstr "只有二进制操作符可以散列"
 
-#: catalog/pg_operator.c:395
+#: catalog/pg_operator.c:392
 #, c-format
 msgid "only boolean operators can have negators"
 msgstr "只有布尔类型的操作符能够具有负号."
 
-#: catalog/pg_operator.c:399
+#: catalog/pg_operator.c:396 commands/operatorcmds.c:493
 #, c-format
 msgid "only boolean operators can have restriction selectivity"
 msgstr "只有布尔类型操作能够具有限制选择性"
 
-#: catalog/pg_operator.c:403
+#: catalog/pg_operator.c:400 commands/operatorcmds.c:497
 #, c-format
 msgid "only boolean operators can have join selectivity"
 msgstr "只有布尔类型操作能够具有连接选择性"
 
-#: catalog/pg_operator.c:407
+#: catalog/pg_operator.c:404
 #, c-format
 msgid "only boolean operators can merge join"
 msgstr "只有布尔类型操作符可以进行合并联合操作"
 
-#: catalog/pg_operator.c:411
+#: catalog/pg_operator.c:408
 #, c-format
 msgid "only boolean operators can hash"
 msgstr "只有布尔操作符可以进行散列操作"
 
-#: catalog/pg_operator.c:423
+#: catalog/pg_operator.c:420
 #, c-format
 msgid "operator %s already exists"
 msgstr "操作符 %s 已经存在"
 
-#: catalog/pg_operator.c:616
+#: catalog/pg_operator.c:617
 #, c-format
 msgid "operator cannot be its own negator or sort operator"
 msgstr "操作符不能否定自己或者排序分类操作符"
 
-#: catalog/pg_proc.c:133 parser/parse_func.c:1944 parser/parse_func.c:1984
+#: catalog/pg_proc.c:134 parser/parse_func.c:1945 parser/parse_func.c:1985
 #, c-format
 msgid "functions cannot have more than %d argument"
 msgid_plural "functions cannot have more than %d arguments"
 msgstr[0] "函数的参数不能多于%d个"
 
-#: catalog/pg_proc.c:246
+#: catalog/pg_proc.c:247
 #, c-format
 msgid ""
 "A function returning a polymorphic type must have at least one polymorphic "
 "argument."
 msgstr "返回一个多态类型的函数必须至少有一个多态参数"
 
-#: catalog/pg_proc.c:253
+#: catalog/pg_proc.c:254
 #, c-format
 msgid ""
 "A function returning \"anyrange\" must have at least one \"anyrange\" "
 "argument."
 msgstr "返回\"anyrange\"类型结果的函数必须至少有一个\"anyrange\" 类型的参数"
 
-#: catalog/pg_proc.c:271
+#: catalog/pg_proc.c:272
 #, c-format
 msgid "\"%s\" is already an attribute of type %s"
 msgstr "\"%s\" 已经是类型 %s 的一个属性"
 
-#: catalog/pg_proc.c:401
+#: catalog/pg_proc.c:403
 #, c-format
 msgid "function \"%s\" already exists with same argument types"
 msgstr "带相同参数类型的函数 \"%s\" 已经存在"
 
-#: catalog/pg_proc.c:415 catalog/pg_proc.c:438
+#: catalog/pg_proc.c:417 catalog/pg_proc.c:440
 #, c-format
 msgid "cannot change return type of existing function"
 msgstr "不能改变已经存在的函数的返回值类型"
 
-#: catalog/pg_proc.c:416 catalog/pg_proc.c:440 catalog/pg_proc.c:483
-#: catalog/pg_proc.c:507 catalog/pg_proc.c:534
+#: catalog/pg_proc.c:418 catalog/pg_proc.c:442 catalog/pg_proc.c:485
+#: catalog/pg_proc.c:509 catalog/pg_proc.c:536
 #, c-format
 msgid "Use DROP FUNCTION %s first."
 msgstr "请先使用 DROP FUNCTION %s."
 
-#: catalog/pg_proc.c:439
+#: catalog/pg_proc.c:441
 #, c-format
 msgid "Row type defined by OUT parameters is different."
 msgstr "由OUT模式参数定义的记录类型不同"
 
-#: catalog/pg_proc.c:481
+#: catalog/pg_proc.c:483
 #, c-format
 msgid "cannot change name of input parameter \"%s\""
 msgstr "无法改变输入参数\"%s\"的名称"
 
-#: catalog/pg_proc.c:506
+#: catalog/pg_proc.c:508
 #, c-format
 msgid "cannot remove parameter defaults from existing function"
 msgstr "不能从已存在的函数种删除参数缺正值"
 
-#: catalog/pg_proc.c:533
+#: catalog/pg_proc.c:535
 #, c-format
 msgid "cannot change data type of existing parameter default value"
 msgstr "不能改变已经存在参数缺省值的数据类型"
 
-#: catalog/pg_proc.c:546
+#: catalog/pg_proc.c:548
 #, c-format
 msgid "function \"%s\" is an aggregate function"
 msgstr "函数\"%s\" 是一个聚合函数"
 
-#: catalog/pg_proc.c:551
+#: catalog/pg_proc.c:553
 #, c-format
 msgid "function \"%s\" is not an aggregate function"
 msgstr "函数 \"%s\" 不是一个聚合函数"
 
-#: catalog/pg_proc.c:559
+#: catalog/pg_proc.c:561
 #, c-format
 msgid "function \"%s\" is a window function"
 msgstr "函数\"%s\"是一个窗口函数"
 
-#: catalog/pg_proc.c:564
+#: catalog/pg_proc.c:566
 #, c-format
 msgid "function \"%s\" is not a window function"
 msgstr "函数 \"%s\" 不是一个窗口函数"
 
-#: catalog/pg_proc.c:772
+#: catalog/pg_proc.c:774
 #, c-format
 msgid "there is no built-in function named \"%s\""
 msgstr "没有名为 \"%s\" 的内建函数"
 
-#: catalog/pg_proc.c:870
+#: catalog/pg_proc.c:872
 #, c-format
 msgid "SQL functions cannot return type %s"
 msgstr "SQL 函数无法返回 %s 类型"
 
-#: catalog/pg_proc.c:885
+#: catalog/pg_proc.c:887
 #, c-format
 msgid "SQL functions cannot have arguments of type %s"
 msgstr "SQL 函数不能有 %s 类型的参数"
 
-#: catalog/pg_proc.c:971 executor/functions.c:1421
+#: catalog/pg_proc.c:973 executor/functions.c:1424
 #, c-format
 msgid "SQL function \"%s\""
 msgstr "SQL 函数 \"%s\""
 
-#: catalog/pg_shdepend.c:692
+#: catalog/pg_shdepend.c:694
 #, c-format
 msgid ""
 "\n"
@@ -4679,52 +5076,51 @@ msgstr[0] ""
 "\n"
 "对象在 %d 个其它数据库中"
 
-#: catalog/pg_shdepend.c:1004
+#: catalog/pg_shdepend.c:1006
 #, c-format
 msgid "role %u was concurrently dropped"
 msgstr "角色%u被同时删除"
 
-#: catalog/pg_shdepend.c:1023
+#: catalog/pg_shdepend.c:1025
 #, c-format
 msgid "tablespace %u was concurrently dropped"
 msgstr "表空间 %u 被同时删除"
 
-#: catalog/pg_shdepend.c:1038
+#: catalog/pg_shdepend.c:1040
 #, c-format
 msgid "database %u was concurrently dropped"
 msgstr "数据库 %u 被同时删除"
 
-#: catalog/pg_shdepend.c:1083
+#: catalog/pg_shdepend.c:1085
 #, c-format
 msgid "owner of %s"
 msgstr "%s的属主"
 
-#: catalog/pg_shdepend.c:1085
+#: catalog/pg_shdepend.c:1087
 #, c-format
 msgid "privileges for %s"
 msgstr "%s的权限"
 
-#: catalog/pg_shdepend.c:1087
+#: catalog/pg_shdepend.c:1089
 #, c-format
-#| msgid "owner of %s"
 msgid "target of %s"
 msgstr "%s的目标"
 
 #. translator: %s will always be "database %s"
-#: catalog/pg_shdepend.c:1095
+#: catalog/pg_shdepend.c:1097
 #, c-format
 msgid "%d object in %s"
 msgid_plural "%d objects in %s"
 msgstr[0] "在%2$s中的%1$d个对象"
 
-#: catalog/pg_shdepend.c:1206
+#: catalog/pg_shdepend.c:1208
 #, c-format
 msgid ""
 "cannot drop objects owned by %s because they are required by the database "
 "system"
 msgstr "无法删除由%s所拥有的对象, 因为数据库系统需要这些对象"
 
-#: catalog/pg_shdepend.c:1309
+#: catalog/pg_shdepend.c:1323
 #, c-format
 msgid ""
 "cannot reassign ownership of objects owned by %s because they are required "
@@ -4733,7 +5129,6 @@ msgstr "无法再分配由%s所拥有的对象, 因为数据库系统需要这
 
 #: catalog/pg_type.c:136 catalog/pg_type.c:454
 #, c-format
-#| msgid "must be superuser to connect in binary upgrade mode"
 msgid "pg_type OID value not set when in binary upgrade mode"
 msgstr "当处于二进制升级模式时没有设置pg_type OID值"
 
@@ -4768,88 +5163,139 @@ msgstr "固定大小类型必需有明确的存储"
 msgid "could not form array type name for type \"%s\""
 msgstr "无法为类型\"%s\"来形成数组类型名称"
 
-#: catalog/toasting.c:104 commands/indexcmds.c:381 commands/tablecmds.c:4349
-#: commands/tablecmds.c:11834
+#: catalog/toasting.c:105 commands/indexcmds.c:389 commands/tablecmds.c:4360
+#: commands/tablecmds.c:11902
 #, c-format
 msgid "\"%s\" is not a table or materialized view"
 msgstr "\"%s\" 不是一个表或物化视图"
 
-#: catalog/toasting.c:157
+#: catalog/toasting.c:158
 #, c-format
 msgid "shared tables cannot be toasted after initdb"
 msgstr "在 initdb 之后, 不可以 toasted 共享表"
 
-#: commands/aggregatecmds.c:148
+#: commands/aggregatecmds.c:161
 #, c-format
 msgid "only ordered-set aggregates can be hypothetical"
 msgstr "只有有序集聚焦函数可用被用于判定"
 
-#: commands/aggregatecmds.c:171
+#: commands/aggregatecmds.c:188
 #, c-format
 msgid "aggregate attribute \"%s\" not recognized"
 msgstr "聚集属性 \"%s\" 不被认可"
 
-#: commands/aggregatecmds.c:181
+#: commands/aggregatecmds.c:198
 #, c-format
 msgid "aggregate stype must be specified"
 msgstr "聚集 stype 必须指定"
 
-#: commands/aggregatecmds.c:185
+#: commands/aggregatecmds.c:202
 #, c-format
 msgid "aggregate sfunc must be specified"
 msgstr "聚集 sfunc 必须指定"
 
-#: commands/aggregatecmds.c:197
+#: commands/aggregatecmds.c:214
 #, c-format
 msgid "aggregate msfunc must be specified when mstype is specified"
 msgstr "当mstype指定了的时候, 聚集 sfunc 必须指定"
 
-#: commands/aggregatecmds.c:201
+#: commands/aggregatecmds.c:218
 #, c-format
 msgid "aggregate minvfunc must be specified when mstype is specified"
 msgstr "当mstype指定了的时候, 聚集 minvfunc 必须指定"
 
-#: commands/aggregatecmds.c:208
+#: commands/aggregatecmds.c:225
 #, c-format
 msgid "aggregate msfunc must not be specified without mstype"
 msgstr "当mstype没被指定时, 聚集 msfunc 也不能指定"
 
-#: commands/aggregatecmds.c:212
+#: commands/aggregatecmds.c:229
 #, c-format
 msgid "aggregate minvfunc must not be specified without mstype"
 msgstr "没有mstype, 就不能指定聚集minvfunc"
 
-#: commands/aggregatecmds.c:216
+#: commands/aggregatecmds.c:233
 #, c-format
 msgid "aggregate mfinalfunc must not be specified without mstype"
 msgstr "没有mstype, 就不能指定聚集 mfinalfunc"
 
-#: commands/aggregatecmds.c:220
+#: commands/aggregatecmds.c:237
 #, c-format
 msgid "aggregate msspace must not be specified without mstype"
 msgstr "没有指定mstype,就不能指定聚集msspace"
 
-#: commands/aggregatecmds.c:224
+#: commands/aggregatecmds.c:241
 #, c-format
 msgid "aggregate minitcond must not be specified without mstype"
 msgstr "没有指定mstype,就不能指定minitcond"
 
-#: commands/aggregatecmds.c:244
+#: commands/aggregatecmds.c:261
 #, c-format
 msgid "aggregate input type must be specified"
 msgstr "必须指定聚合函数的输入参数类型"
 
-#: commands/aggregatecmds.c:274
+#: commands/aggregatecmds.c:291
 #, c-format
 msgid "basetype is redundant with aggregate input type specification"
 msgstr "如果带有聚合函数输入类型定义,那么基类型定义就是冗余的."
 
-#: commands/aggregatecmds.c:315 commands/aggregatecmds.c:335
+#: commands/aggregatecmds.c:332 commands/aggregatecmds.c:421
 #, c-format
 msgid "aggregate transition data type cannot be %s"
 msgstr "聚集转换数据类型不能为 %s"
 
-#: commands/alter.c:80 commands/event_trigger.c:230
+#: commands/aggregatecmds.c:347
+#, c-format
+msgid ""
+"a serialization type must only be specified when the aggregate transition "
+"data type is \"%s\""
+msgstr "只有当聚集转移数据类型是 \"%s\" 时,才必须指定一个序列化类型"
+
+#: commands/aggregatecmds.c:356
+#, c-format
+#| msgid "aggregate transition data type cannot be %s"
+msgid "aggregate serialization data type cannot be %s"
+msgstr "聚集序列化数据类型不能是 %s"
+
+#: commands/aggregatecmds.c:369
+#, c-format
+#| msgid "aggregate transition data type cannot be %s"
+msgid "aggregate serialization type cannot be \"%s\""
+msgstr "聚集序列化类型不能是 %s"
+
+#: commands/aggregatecmds.c:380
+#, c-format
+#| msgid "aggregate minvfunc must be specified when mstype is specified"
+msgid ""
+"aggregate serialization function must be specified when serialization type "
+"is specified"
+msgstr "当序列化类型被指定时必须指定聚集序列化函数"
+
+#: commands/aggregatecmds.c:385
+#, c-format
+#| msgid "aggregate minvfunc must be specified when mstype is specified"
+msgid ""
+"aggregate deserialization function must be specified when serialization type "
+"is specified"
+msgstr "当序列化类型被指定时必须指定聚集反序列化函数"
+
+#: commands/aggregatecmds.c:396
+#, c-format
+msgid "must specify serialization type when specifying serialization function"
+msgstr "在指定序列化函数时必须指定序列化类型"
+
+#: commands/aggregatecmds.c:402
+#, c-format
+msgid ""
+"must specify serialization type when specifying deserialization function"
+msgstr "在指定反序列化函数时必须指定序列化类型"
+
+#: commands/aggregatecmds.c:467 commands/functioncmds.c:570
+#, c-format
+msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE"
+msgstr "参数 \"parallel\" 必须为 SAFE、RESTRICTED 或者 UNSAFE"
+
+#: commands/alter.c:80 commands/event_trigger.c:231
 #, c-format
 msgid "event trigger \"%s\" already exists"
 msgstr "事件触发器 \"%s\" 已经存在"
@@ -4864,7 +5310,7 @@ msgstr "外部数据封装器\"%s\"已经存在"
 msgid "server \"%s\" already exists"
 msgstr "服务器 \"%s\" 已经存在"
 
-#: commands/alter.c:89 commands/proclang.c:363
+#: commands/alter.c:89 commands/proclang.c:366
 #, c-format
 msgid "language \"%s\" already exists"
 msgstr "语言 \"%s\" 已经存在"
@@ -4899,11 +5345,55 @@ msgstr "文本搜索配置\"%s\"已存在于方案\"%s\"中"
 msgid "must be superuser to rename %s"
 msgstr "必须为超级用户才能进行重命名\"%s\" "
 
-#: commands/alter.c:609
+#: commands/alter.c:656
 #, c-format
 msgid "must be superuser to set schema of %s"
 msgstr "只有超级用户能设置%s的模式"
 
+#: commands/amcmds.c:58
+#, c-format
+#| msgid "permission denied to create tablespace \"%s\""
+msgid "permission denied to create access method \"%s\""
+msgstr "权限不允许创建访问方法 \"%s\""
+
+#: commands/amcmds.c:60
+#, c-format
+#| msgid "Must be superuser to create a tablespace."
+msgid "Must be superuser to create an access method."
+msgstr "只有超级用户能创建访问方法。"
+
+#: commands/amcmds.c:68
+#, c-format
+#| msgid "access method \"%s\" does not exist"
+msgid "access method \"%s\" already exists"
+msgstr "访问方法 \"%s\" 已存在"
+
+#: commands/amcmds.c:124
+#, c-format
+#| msgid "must be superuser to drop superusers"
+msgid "must be superuser to drop access methods"
+msgstr "只有超级用户可以删除访问方法"
+
+#: commands/amcmds.c:175 commands/indexcmds.c:164 commands/indexcmds.c:495
+#: commands/opclasscmds.c:365 commands/opclasscmds.c:790
+#, c-format
+msgid "access method \"%s\" does not exist"
+msgstr "访问方式 \"%s\" 不存在"
+
+#: commands/amcmds.c:251
+#, c-format
+#| msgid "no function body specified"
+msgid "handler function is not specified"
+msgstr "没有指定处理器函数"
+
+#: commands/amcmds.c:263 commands/event_trigger.c:240
+#: commands/foreigncmds.c:489 commands/proclang.c:117 commands/proclang.c:288
+#: commands/trigger.c:441 parser/parse_clause.c:761
+#, c-format
+#| msgid "function %s should return type %s"
+msgid "function %s must return type %s"
+msgstr "函数 %s 必须返回类型 %s"
+
 #: commands/analyze.c:145
 #, c-format
 msgid "skipping analyze of \"%s\" --- lock not available"
@@ -4944,12 +5434,12 @@ msgstr "正在分析 \"%s.%s\"继承树"
 msgid "analyzing \"%s.%s\""
 msgstr "正在分析 \"%s.%s\""
 
-#: commands/analyze.c:645
+#: commands/analyze.c:651
 #, c-format
 msgid "automatic analyze of table \"%s.%s.%s\" system usage: %s"
 msgstr "自动分析表 \"%s.%s.%s\"的系统使用情况: %s"
 
-#: commands/analyze.c:1201
+#: commands/analyze.c:1207
 #, c-format
 msgid ""
 "\"%s\": scanned %d of %u pages, containing %.0f live rows and %.0f dead "
@@ -4958,138 +5448,138 @@ msgstr ""
 "\"%1$s\": 已经扫描了%3$u页的%2$d, 包含%4$.0f可用的记录和%5$.0f不能用的记录; "
 "在示例中有%6$d条记录,估算所有记录为%7$.0f ."
 
-#: commands/analyze.c:1280
+#: commands/analyze.c:1286
 #, c-format
 msgid ""
 "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree "
 "contains no child tables"
 msgstr "跳过\"%s.%s\"继承树的分析 --- 这个继承树不包含子表"
 
-#: commands/analyze.c:1369
+#: commands/analyze.c:1375
 #, c-format
 msgid ""
 "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree "
 "contains no analyzable child tables"
 msgstr "跳过\"%s.%s\"继承树的分析 --- 这个继承树包含不可分析的子表"
 
-#: commands/analyze.c:1417 executor/execQual.c:2900
+#: commands/analyze.c:1423 executor/execQual.c:2922
 msgid "could not convert row type"
 msgstr "无法转换记录类型"
 
-#: commands/async.c:553
+#: commands/async.c:558
 #, c-format
 msgid "channel name cannot be empty"
 msgstr "通道名称不能为空"
 
-#: commands/async.c:558
+#: commands/async.c:563
 #, c-format
 msgid "channel name too long"
 msgstr "通道名称太长"
 
-#: commands/async.c:565
+#: commands/async.c:570
 #, c-format
 msgid "payload string too long"
 msgstr "流量负载字符串太长"
 
-#: commands/async.c:751
+#: commands/async.c:756
 #, c-format
 msgid ""
 "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY"
 msgstr "无法在一个已经执行了LISTEN或UNLISTEN、NOTIFY操作的事务上执行PREPARE"
 
-#: commands/async.c:854
+#: commands/async.c:859
 #, c-format
 msgid "too many notifications in the NOTIFY queue"
 msgstr "在NOTIFY队列中的通知太多了"
 
-#: commands/async.c:1457
+#: commands/async.c:1489
 #, c-format
 msgid "NOTIFY queue is %.0f%% full"
 msgstr "NOTIFY队列达到了%.0f%%的容量"
 
-#: commands/async.c:1459
+#: commands/async.c:1491
 #, c-format
 msgid ""
 "The server process with PID %d is among those with the oldest transactions."
 msgstr "带有PID为%d的服务器进程在那些带有最老事务的进程中。"
 
-#: commands/async.c:1462
+#: commands/async.c:1494
 #, c-format
 msgid ""
 "The NOTIFY queue cannot be emptied until that process ends its current "
 "transaction."
 msgstr "在进程结束它所处理的当前事务前, NOTIFY队列不能为空."
 
-#: commands/cluster.c:127 commands/cluster.c:364
+#: commands/cluster.c:129 commands/cluster.c:366
 #, c-format
 msgid "cannot cluster temporary tables of other sessions"
 msgstr "无法为其它会话的临时表建簇"
 
-#: commands/cluster.c:157
+#: commands/cluster.c:159
 #, c-format
 msgid "there is no previously clustered index for table \"%s\""
 msgstr "在表 \"%s\" 中未找到先前建簇的索引"
 
-#: commands/cluster.c:171 commands/tablecmds.c:9256 commands/tablecmds.c:10953
+#: commands/cluster.c:173 commands/tablecmds.c:9288 commands/tablecmds.c:11004
 #, c-format
 msgid "index \"%s\" for table \"%s\" does not exist"
 msgstr "表 \"%2$s\" 的 \"%1$s\" 索引不存在"
 
-#: commands/cluster.c:353
+#: commands/cluster.c:355
 #, c-format
 msgid "cannot cluster a shared catalog"
 msgstr "无法在共享目录视图上进行聚簇操作"
 
-#: commands/cluster.c:368
+#: commands/cluster.c:370
 #, c-format
 msgid "cannot vacuum temporary tables of other sessions"
 msgstr "无法对其它会话的临时表进行清理操作"
 
-#: commands/cluster.c:431 commands/tablecmds.c:10963
+#: commands/cluster.c:433 commands/tablecmds.c:11014
 #, c-format
 msgid "\"%s\" is not an index for table \"%s\""
 msgstr "对于表 \"%2$s\" \"%1$s\" 不是一个索引"
 
-#: commands/cluster.c:439
+#: commands/cluster.c:441
 #, c-format
 msgid ""
 "cannot cluster on index \"%s\" because access method does not support "
 "clustering"
 msgstr "无法在索引\"%s\"进行聚簇操作,因为访问方法不支持进行聚簇操作"
 
-#: commands/cluster.c:451
+#: commands/cluster.c:453
 #, c-format
 msgid "cannot cluster on partial index \"%s\""
 msgstr "无法在部分索引 \"%s\"上进行聚簇操作"
 
-#: commands/cluster.c:465
+#: commands/cluster.c:467
 #, c-format
 msgid "cannot cluster on invalid index \"%s\""
 msgstr "无法在无效索引\"%s\"进行聚簇操作"
 
-#: commands/cluster.c:918
+#: commands/cluster.c:920
 #, c-format
 msgid "clustering \"%s.%s\" using index scan on \"%s\""
 msgstr "簇 \"%s.%s\" 正在 \"%s\"进行索引扫描"
 
-#: commands/cluster.c:924
+#: commands/cluster.c:926
 #, c-format
 msgid "clustering \"%s.%s\" using sequential scan and sort"
 msgstr "簇 \"%s.%s\"正在进行顺序扫描和排序"
 
-#: commands/cluster.c:929 commands/vacuumlazy.c:464
+#: commands/cluster.c:931 commands/vacuumlazy.c:476
 #, c-format
 msgid "vacuuming \"%s.%s\""
 msgstr "正在清理 (vacuum)  \"%s.%s\""
 
-#: commands/cluster.c:1088
+#: commands/cluster.c:1090
 #, c-format
 msgid ""
 "\"%s\": found %.0f removable, %.0f nonremovable row versions in %u pages"
 msgstr ""
 "\"%1$s\": 在%4$u个页中找到%2$.0f个可删除行版本,%3$.0f不可删除的行版本."
 
-#: commands/cluster.c:1092
+#: commands/cluster.c:1094
 #, c-format
 msgid ""
 "%.0f dead row versions cannot be removed yet.\n"
@@ -5126,13 +5616,13 @@ msgstr "在模式\"%2$s\"中已经存在排序规则\"%1$s\""
 #: commands/comment.c:62 commands/dbcommands.c:797 commands/dbcommands.c:962
 #: commands/dbcommands.c:1067 commands/dbcommands.c:1257
 #: commands/dbcommands.c:1477 commands/dbcommands.c:1594
-#: commands/dbcommands.c:2011 utils/init/postinit.c:826
-#: utils/init/postinit.c:928 utils/init/postinit.c:945
+#: commands/dbcommands.c:2011 utils/init/postinit.c:842
+#: utils/init/postinit.c:944 utils/init/postinit.c:961
 #, c-format
 msgid "database \"%s\" does not exist"
 msgstr "数据库 \"%s\" 不存在"
 
-#: commands/comment.c:101 commands/seclabel.c:116 parser/parse_utilcmd.c:727
+#: commands/comment.c:101 commands/seclabel.c:116 parser/parse_utilcmd.c:768
 #, c-format
 msgid ""
 "\"%s\" is not a table, view, materialized view, composite type, or foreign "
@@ -5166,57 +5656,58 @@ msgstr "目标编码 \"%s\" 不存在"
 
 #: commands/conversioncmds.c:88
 #, c-format
-msgid "encoding conversion function %s must return type \"void\""
-msgstr "编码转换函数%s必须返回类型\"void\""
+#| msgid "encoding conversion function %s must return type \"void\""
+msgid "encoding conversion function %s must return type %s"
+msgstr "编码转换函数 %s 必须返回类型 %s"
 
-#: commands/copy.c:365 commands/copy.c:377 commands/copy.c:411
-#: commands/copy.c:423
+#: commands/copy.c:362 commands/copy.c:374 commands/copy.c:408
+#: commands/copy.c:420
 #, c-format
 msgid "COPY BINARY is not supported to stdout or from stdin"
 msgstr "COPOY BINARY 不支持输出到标准输出或来自标准输入"
 
-#: commands/copy.c:523
+#: commands/copy.c:520
 #, c-format
 msgid "could not write to COPY program: %m"
 msgstr "无法写入 COPY 程序: %m"
 
-#: commands/copy.c:528
+#: commands/copy.c:525
 #, c-format
 msgid "could not write to COPY file: %m"
 msgstr "无法写入 COPY 文件: %m"
 
-#: commands/copy.c:541
+#: commands/copy.c:538
 #, c-format
 msgid "connection lost during COPY to stdout"
 msgstr "COPY 到标准输出的过程中联接中断"
 
-#: commands/copy.c:582
+#: commands/copy.c:579
 #, c-format
 msgid "could not read from COPY file: %m"
 msgstr "无法从COPY命令中文件进行读操作: %m"
 
-#: commands/copy.c:598 commands/copy.c:619 commands/copy.c:623
-#: tcop/postgres.c:352 tcop/postgres.c:388 tcop/postgres.c:415
+#: commands/copy.c:595 commands/copy.c:616 commands/copy.c:620
+#: tcop/postgres.c:341 tcop/postgres.c:377 tcop/postgres.c:404
 #, c-format
 msgid "unexpected EOF on client connection with an open transaction"
 msgstr "在客户端连接上的已打开事务中出现意外 EOF"
 
-#: commands/copy.c:636
+#: commands/copy.c:633
 #, c-format
 msgid "COPY from stdin failed: %s"
 msgstr "从标准输入上 COPY 失败: %s"
 
-#: commands/copy.c:652
+#: commands/copy.c:649
 #, c-format
 msgid "unexpected message type 0x%02X during COPY from stdin"
 msgstr "意外的信息类型 0x%02X, 在标准输入上 COPY 的过程中"
 
-#: commands/copy.c:808
+#: commands/copy.c:806
 #, c-format
 msgid "must be superuser to COPY to or from an external program"
 msgstr "必须成为超级用户才能 COPY 到外部程序或者从外部程序进行COPY"
 
-#: commands/copy.c:809 commands/copy.c:815
+#: commands/copy.c:807 commands/copy.c:813
 #, c-format
 msgid ""
 "Anyone can COPY to stdout or from stdin. psql's \\copy command also works "
@@ -5225,443 +5716,478 @@ msgstr ""
 "任何人可以 COPY 到标准输出或来自标准输入的 COPY. 任何人也可以使用 Psql 的 "
 "\\copy 命令."
 
-#: commands/copy.c:814
+#: commands/copy.c:812
 #, c-format
 msgid "must be superuser to COPY to or from a file"
 msgstr "必须成为超级用户才能 COPY 到文件或从文件 COPY"
 
-#: commands/copy.c:880
+#: commands/copy.c:878
 #, c-format
 msgid "COPY FROM not supported with row-level security"
 msgstr "在行级安全性下不支持COPY FROM"
 
-#: commands/copy.c:881
+#: commands/copy.c:879
 #, c-format
-#| msgid "Use triggers instead."
 msgid "Use INSERT statements instead."
 msgstr "请使用INSERT语句代替。"
 
-#: commands/copy.c:1021
+#: commands/copy.c:1019
 #, c-format
 msgid "COPY format \"%s\" not recognized"
 msgstr "没有识别COPY命令的格式\"%s\""
 
-#: commands/copy.c:1092 commands/copy.c:1106 commands/copy.c:1120
-#: commands/copy.c:1140
+#: commands/copy.c:1090 commands/copy.c:1104 commands/copy.c:1118
+#: commands/copy.c:1138
 #, c-format
 msgid "argument to option \"%s\" must be a list of column names"
 msgstr "选项 \"%s\"的参数必须是一个包含列名的列表"
 
-#: commands/copy.c:1153
+#: commands/copy.c:1151
 #, c-format
 msgid "argument to option \"%s\" must be a valid encoding name"
 msgstr "选项 \"%s\"的参数必须是一个有效的编码名"
 
-#: commands/copy.c:1159 commands/dbcommands.c:232 commands/dbcommands.c:1427
+#: commands/copy.c:1157 commands/dbcommands.c:232 commands/dbcommands.c:1427
 #, c-format
 msgid "option \"%s\" not recognized"
 msgstr "未识别选项\"%s\""
 
-#: commands/copy.c:1170
+#: commands/copy.c:1168
 #, c-format
 msgid "cannot specify DELIMITER in BINARY mode"
 msgstr "在 BINARY 模式中你不能指定 DELIMITER"
 
-#: commands/copy.c:1175
+#: commands/copy.c:1173
 #, c-format
 msgid "cannot specify NULL in BINARY mode"
 msgstr "在 BINARY 模式中你不能指定 NULL"
 
-#: commands/copy.c:1197
+#: commands/copy.c:1195
 #, c-format
 msgid "COPY delimiter must be a single one-byte character"
 msgstr "COPY命令中 的分隔符必需是单字节字符"
 
-#: commands/copy.c:1204
+#: commands/copy.c:1202
 #, c-format
 msgid "COPY delimiter cannot be newline or carriage return"
 msgstr "COPY 命令中的分隔符不能使新行或回车符"
 
-#: commands/copy.c:1210
+#: commands/copy.c:1208
 #, c-format
 msgid "COPY null representation cannot use newline or carriage return"
 msgstr "在COPY命令中空表达式中不能使用新行或换行回车."
 
-#: commands/copy.c:1227
+#: commands/copy.c:1225
 #, c-format
 msgid "COPY delimiter cannot be \"%s\""
 msgstr "COPY命令中的分隔符不能为\"%s\""
 
-#: commands/copy.c:1233
+#: commands/copy.c:1231
 #, c-format
 msgid "COPY HEADER available only in CSV mode"
 msgstr "只在CSV 模式中才能使用COPY HEADER命令"
 
-#: commands/copy.c:1239
+#: commands/copy.c:1237
 #, c-format
 msgid "COPY quote available only in CSV mode"
 msgstr "只有在CSV模式中才能在COPY命令中使用引号"
 
-#: commands/copy.c:1244
+#: commands/copy.c:1242
 #, c-format
 msgid "COPY quote must be a single one-byte character"
 msgstr "在COPY命令中的引号必须是单字节字符"
 
-#: commands/copy.c:1249
+#: commands/copy.c:1247
 #, c-format
 msgid "COPY delimiter and quote must be different"
 msgstr "COPY命令中的分隔符和引号不能一样."
 
-#: commands/copy.c:1255
+#: commands/copy.c:1253
 #, c-format
 msgid "COPY escape available only in CSV mode"
 msgstr "COPY 转义 (escape) 只在 CSV 模式中有效"
 
-#: commands/copy.c:1260
+#: commands/copy.c:1258
 #, c-format
 msgid "COPY escape must be a single one-byte character"
 msgstr "在COPY命令中的转义字符必须是单个单字节字符"
 
-#: commands/copy.c:1266
+#: commands/copy.c:1264
 #, c-format
 msgid "COPY force quote available only in CSV mode"
 msgstr "只有在CSV模式中才能在COPY命令中进行强制引用操作"
 
-#: commands/copy.c:1270
+#: commands/copy.c:1268
 #, c-format
 msgid "COPY force quote only available using COPY TO"
 msgstr "只有使用COPY TO命令时, COPY强制引用操作才有效"
 
-#: commands/copy.c:1276
+#: commands/copy.c:1274
 #, c-format
 msgid "COPY force not null available only in CSV mode"
 msgstr "只有在CSV模式中强制不为空的COPY命令才有效"
 
-#: commands/copy.c:1280
+#: commands/copy.c:1278
 #, c-format
 msgid "COPY force not null only available using COPY FROM"
 msgstr "只有在使用COPY FROM命令时,在COPY命令中的强制不可为空的操作才有效"
 
-#: commands/copy.c:1286
+#: commands/copy.c:1284
 #, c-format
 msgid "COPY force null available only in CSV mode"
 msgstr "只有在CSV模式中强制为空的COPY命令才有效"
 
-#: commands/copy.c:1291
+#: commands/copy.c:1289
 #, c-format
 msgid "COPY force null only available using COPY FROM"
 msgstr "只有在使用COPY FROM命令时,在COPY命令中的强制为空的操作才有效"
 
-#: commands/copy.c:1297
+#: commands/copy.c:1295
 #, c-format
 msgid "COPY delimiter must not appear in the NULL specification"
 msgstr "COPY分隔符不能出现NULL定义中"
 
-#: commands/copy.c:1304
+#: commands/copy.c:1302
 #, c-format
 msgid "CSV quote character must not appear in the NULL specification"
 msgstr "CSV引用字符不能出现在NULL定义中."
 
-#: commands/copy.c:1367
+#: commands/copy.c:1365
 #, c-format
 msgid "table \"%s\" does not have OIDs"
 msgstr "表 \"%s\" 没有 OID"
 
-#: commands/copy.c:1384
+#: commands/copy.c:1382
+#, c-format
+#| msgid "COPY (SELECT) WITH OIDS is not supported"
+msgid "COPY (query) WITH OIDS is not supported"
+msgstr "不支持 COPY (query) WITH OIDS"
+
+#: commands/copy.c:1402
+#, c-format
+#| msgid ""
+#| "DO INSTEAD NOTHING rules are not supported for data-modifying statements "
+#| "in WITH"
+msgid "DO INSTEAD NOTHING rules are not supported for COPY"
+msgstr "对 COPY 语句不支持 DO INSTEAD NOTHING 规则"
+
+#: commands/copy.c:1416
+#, c-format
+#| msgid ""
+#| "conditional DO INSTEAD rules are not supported for data-modifying "
+#| "statements in WITH"
+msgid "conditional DO INSTEAD rules are not supported for COPY"
+msgstr "对 COPY 语句不支持有条件的 DO INSTEAD 规则"
+
+#: commands/copy.c:1420
+#, c-format
+#| msgid ""
+#| "DO ALSO rules are not supported for data-modifying statements in WITH"
+msgid "DO ALSO rules are not supported for the COPY"
+msgstr "对 COPY 语句不支持 DO ALSO 规则"
+
+#: commands/copy.c:1425
 #, c-format
-msgid "COPY (SELECT) WITH OIDS is not supported"
-msgstr "不支持使用COPY (SELECT) WITH OIDS"
+#| msgid ""
+#| "multi-statement DO INSTEAD rules are not supported for data-modifying "
+#| "statements in WITH"
+msgid "multi-statement DO INSTEAD rules are not supported for COPY"
+msgstr "对 COPY 语句不支持多语句 DO INSTEAD 规则"
 
-#: commands/copy.c:1410
+#: commands/copy.c:1435
 #, c-format
 msgid "COPY (SELECT INTO) is not supported"
 msgstr "不支持使用COPY (SELECT INTO)命令."
 
-#: commands/copy.c:1440
+#: commands/copy.c:1452
+#, c-format
+#| msgid "WITH query \"%s\" does not have a RETURNING clause"
+msgid "COPY query must have a RETURNING clause"
+msgstr "COPY 查询必须有 RETURNING 子句"
+
+#: commands/copy.c:1480
 #, c-format
 msgid "relation referenced by COPY statement has changed"
 msgstr "COPY语句引用的关系已经改变"
 
-#: commands/copy.c:1498
+#: commands/copy.c:1538
 #, c-format
-msgid "FORCE QUOTE column \"%s\" not referenced by COPY"
-msgstr "COPY命令没有引用FORCE QUOTE的列\"%s\" ."
+#| msgid "FORCE QUOTE column \"%s\" not referenced by COPY"
+msgid "FORCE_QUOTE column \"%s\" not referenced by COPY"
+msgstr "FORCE_QUOTE 列 \"%s\" 没有被 COPY 引用"
 
-#: commands/copy.c:1520
+#: commands/copy.c:1560
 #, c-format
-msgid "FORCE NOT NULL column \"%s\" not referenced by COPY"
-msgstr "COPY命令没有引用FORCE NOT NULL的列\"%s\" ."
+#| msgid "FORCE NOT NULL column \"%s\" not referenced by COPY"
+msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY"
+msgstr "FORCE_NOT_NULL 列 \"%s\" 没有被 COPY 引用"
 
-#: commands/copy.c:1542
+#: commands/copy.c:1582
 #, c-format
-msgid "FORCE NULL column \"%s\" not referenced by COPY"
-msgstr "COPY命令没有引用FORCE NULL的列\"%s\" ."
+#| msgid "FORCE NULL column \"%s\" not referenced by COPY"
+msgid "FORCE_NULL column \"%s\" not referenced by COPY"
+msgstr "FORCE_NULL 列 \"%s\" 没有被 COPY 引用"
 
-#: commands/copy.c:1607
+#: commands/copy.c:1647
 #, c-format
 msgid "could not close pipe to external command: %m"
 msgstr "无法为外部命令: %m关闭管道"
 
-#: commands/copy.c:1611
+#: commands/copy.c:1651
 #, c-format
 msgid "program \"%s\" failed"
 msgstr "程序\"%s\"失败"
 
-#: commands/copy.c:1661
+#: commands/copy.c:1701
 #, c-format
 msgid "cannot copy from view \"%s\""
 msgstr "不可以从视图 \"%s\" 拷贝"
 
-#: commands/copy.c:1663 commands/copy.c:1669 commands/copy.c:1675
+#: commands/copy.c:1703 commands/copy.c:1709 commands/copy.c:1715
 #, c-format
 msgid "Try the COPY (SELECT ...) TO variant."
 msgstr "尝试不同形式的COPY (SELECT ...) TO命令"
 
-#: commands/copy.c:1667
+#: commands/copy.c:1707
 #, c-format
 msgid "cannot copy from materialized view \"%s\""
 msgstr "不可以从物化视图 \"%s\" 拷贝"
 
-#: commands/copy.c:1673
+#: commands/copy.c:1713
 #, c-format
 msgid "cannot copy from foreign table \"%s\""
 msgstr "不可以从外部表 \"%s\" 拷贝"
 
-#: commands/copy.c:1679
+#: commands/copy.c:1719
 #, c-format
 msgid "cannot copy from sequence \"%s\""
 msgstr "不可以从序列 \"%s\" 拷贝"
 
-#: commands/copy.c:1684
+#: commands/copy.c:1724
 #, c-format
 msgid "cannot copy from non-table relation \"%s\""
 msgstr "不可以从非表关系 \"%s\" 拷贝"
 
-#: commands/copy.c:1709 commands/copy.c:2747
+#: commands/copy.c:1749 commands/copy.c:2787
 #, c-format
 msgid "could not execute command \"%s\": %m"
 msgstr "无法执行命令 \"%s\": %m"
 
-#: commands/copy.c:1724
+#: commands/copy.c:1764
 #, c-format
 msgid "relative path not allowed for COPY to file"
 msgstr "COPY 到文件不允许相对路径"
 
-#: commands/copy.c:1732
+#: commands/copy.c:1772
 #, c-format
 msgid "could not open file \"%s\" for writing: %m"
 msgstr "为了写入, 无法打开文件 \"%s\": %m"
 
-#: commands/copy.c:1744 commands/copy.c:2770
+#: commands/copy.c:1784 commands/copy.c:2810
 #, c-format
 msgid "\"%s\" is a directory"
 msgstr "\"%s\" 是一个目录"
 
-#: commands/copy.c:2069
+#: commands/copy.c:2109
 #, c-format
 msgid "COPY %s, line %d, column %s"
 msgstr "COPY %s, 行 %d, 列 %s"
 
-#: commands/copy.c:2073 commands/copy.c:2120
+#: commands/copy.c:2113 commands/copy.c:2160
 #, c-format
 msgid "COPY %s, line %d"
 msgstr "COPY %s, 行 %d"
 
-#: commands/copy.c:2084
+#: commands/copy.c:2124
 #, c-format
 msgid "COPY %s, line %d, column %s: \"%s\""
 msgstr "COPY %s, 行 %d, 列 %s: \"%s\""
 
-#: commands/copy.c:2092
+#: commands/copy.c:2132
 #, c-format
 msgid "COPY %s, line %d, column %s: null input"
 msgstr "COPY %s, 行 %d, 列 %s: 空的输入"
 
-#: commands/copy.c:2114
+#: commands/copy.c:2154
 #, c-format
 msgid "COPY %s, line %d: \"%s\""
 msgstr "COPY %s, 行 %d: \"%s\""
 
-#: commands/copy.c:2198
+#: commands/copy.c:2238
 #, c-format
 msgid "cannot copy to view \"%s\""
 msgstr "不可以拷贝到视图 \"%s\""
 
-#: commands/copy.c:2203
+#: commands/copy.c:2243
 #, c-format
 msgid "cannot copy to materialized view \"%s\""
 msgstr "不可以拷贝到物化视图 \"%s\""
 
-#: commands/copy.c:2208
+#: commands/copy.c:2248
 #, c-format
 msgid "cannot copy to foreign table \"%s\""
 msgstr "不可以拷贝到外部表 \"%s\""
 
-#: commands/copy.c:2213
+#: commands/copy.c:2253
 #, c-format
 msgid "cannot copy to sequence \"%s\""
 msgstr "不可以拷贝到序列 \"%s\""
 
-#: commands/copy.c:2218
+#: commands/copy.c:2258
 #, c-format
 msgid "cannot copy to non-table relation \"%s\""
 msgstr "不可以拷贝到非表关系 \"%s\""
 
-#: commands/copy.c:2281
+#: commands/copy.c:2321
 #, c-format
 msgid "cannot perform FREEZE because of prior transaction activity"
 msgstr "由于前一个事务是活动的,无法执行FREEZE操作"
 
-#: commands/copy.c:2287
+#: commands/copy.c:2327
 #, c-format
 msgid ""
 "cannot perform FREEZE because the table was not created or truncated in the "
 "current subtransaction"
 msgstr "当前子事务中,因为表未建或被截短,无法执行FREEZE操作"
 
-#: commands/copy.c:2758 commands/extension.c:3037 utils/adt/genfile.c:134
-#, c-format
-msgid "could not open file \"%s\" for reading: %m"
-msgstr "为了读取, 无法打开文件 \"%s\": %m"
-
-#: commands/copy.c:2790
+#: commands/copy.c:2830
 #, c-format
 msgid "COPY file signature not recognized"
 msgstr "文件签字不被认可"
 
-#: commands/copy.c:2795
+#: commands/copy.c:2835
 #, c-format
 msgid "invalid COPY file header (missing flags)"
 msgstr "无效的 COPY 文件头 (缺少标志)"
 
-#: commands/copy.c:2801
+#: commands/copy.c:2841
 #, c-format
 msgid "unrecognized critical flags in COPY file header"
 msgstr "在 COPY 文件头有不认可的危险标志"
 
-#: commands/copy.c:2807
+#: commands/copy.c:2847
 #, c-format
 msgid "invalid COPY file header (missing length)"
 msgstr "无效的 COPY 文件头 (缺少长度)"
 
-#: commands/copy.c:2814
+#: commands/copy.c:2854
 #, c-format
 msgid "invalid COPY file header (wrong length)"
 msgstr "无效的 COPY 文件头 (错误长度)"
 
-#: commands/copy.c:2947 commands/copy.c:3654 commands/copy.c:3884
+#: commands/copy.c:2987 commands/copy.c:3694 commands/copy.c:3924
 #, c-format
 msgid "extra data after last expected column"
 msgstr "最后期望字段后有额外数据"
 
-#: commands/copy.c:2957
+#: commands/copy.c:2997
 #, c-format
 msgid "missing data for OID column"
 msgstr "OID列丢失数据"
 
-#: commands/copy.c:2963
+#: commands/copy.c:3003
 #, c-format
 msgid "null OID in COPY data"
 msgstr "在 COPY 数据中没有 OID"
 
-#: commands/copy.c:2973 commands/copy.c:3096
+#: commands/copy.c:3013 commands/copy.c:3136
 #, c-format
 msgid "invalid OID in COPY data"
 msgstr "在 COPY 数据中无效的 OID"
 
-#: commands/copy.c:2988
+#: commands/copy.c:3028
 #, c-format
 msgid "missing data for column \"%s\""
 msgstr "字段 \"%s\" 缺少数据"
 
-#: commands/copy.c:3071
+#: commands/copy.c:3111
 #, c-format
 msgid "received copy data after EOF marker"
 msgstr "在EOF标志后收到了复制数据"
 
-#: commands/copy.c:3078
+#: commands/copy.c:3118
 #, c-format
 msgid "row field count is %d, expected %d"
 msgstr "元组字段计数是 %d, 期望计数是 %d"
 
-#: commands/copy.c:3418 commands/copy.c:3435
+#: commands/copy.c:3458 commands/copy.c:3475
 #, c-format
 msgid "literal carriage return found in data"
 msgstr "在数据中找到了文字的回车换行符"
 
-#: commands/copy.c:3419 commands/copy.c:3436
+#: commands/copy.c:3459 commands/copy.c:3476
 #, c-format
 msgid "unquoted carriage return found in data"
 msgstr "在数据中找到了未用引号引起来的回车换行符"
 
-#: commands/copy.c:3421 commands/copy.c:3438
+#: commands/copy.c:3461 commands/copy.c:3478
 #, c-format
 msgid "Use \"\\r\" to represent carriage return."
 msgstr "使用\"\\r\"来代表换行回车"
 
-#: commands/copy.c:3422 commands/copy.c:3439
+#: commands/copy.c:3462 commands/copy.c:3479
 #, c-format
 msgid "Use quoted CSV field to represent carriage return."
 msgstr "使用以引号引起来的CSV字段代表换行回车."
 
-#: commands/copy.c:3451
+#: commands/copy.c:3491
 #, c-format
 msgid "literal newline found in data"
 msgstr "在数据中找到了文字形式的新行"
 
-#: commands/copy.c:3452
+#: commands/copy.c:3492
 #, c-format
 msgid "unquoted newline found in data"
 msgstr "在数据中找到了未用引号引起来的新行"
 
-#: commands/copy.c:3454
+#: commands/copy.c:3494
 #, c-format
 msgid "Use \"\\n\" to represent newline."
 msgstr "使用 \"\\n\" 表示新行."
 
-#: commands/copy.c:3455
+#: commands/copy.c:3495
 #, c-format
 msgid "Use quoted CSV field to represent newline."
 msgstr "使用用引号因起来的CSV字段来表示新行."
 
-#: commands/copy.c:3501 commands/copy.c:3537
+#: commands/copy.c:3541 commands/copy.c:3577
 #, c-format
 msgid "end-of-copy marker does not match previous newline style"
 msgstr "end-of-copy标示不匹配先前的新数据行的风格."
 
-#: commands/copy.c:3510 commands/copy.c:3526
+#: commands/copy.c:3550 commands/copy.c:3566
 #, c-format
 msgid "end-of-copy marker corrupt"
 msgstr "copy命令结束标记损坏"
 
-#: commands/copy.c:3968
+#: commands/copy.c:4008
 #, c-format
 msgid "unterminated CSV quoted field"
 msgstr "CSV 引号域没有结束"
 
-#: commands/copy.c:4045 commands/copy.c:4064
+#: commands/copy.c:4085 commands/copy.c:4104
 #, c-format
 msgid "unexpected EOF in COPY data"
 msgstr "在 COPY 数据中意外的 EOF"
 
-#: commands/copy.c:4054
+#: commands/copy.c:4094
 #, c-format
 msgid "invalid field size"
 msgstr "无效字段尺寸"
 
-#: commands/copy.c:4077
+#: commands/copy.c:4117
 #, c-format
 msgid "incorrect binary data format"
 msgstr "不正确的二进制数据格式"
 
-#: commands/copy.c:4388 commands/indexcmds.c:1008 commands/tablecmds.c:1458
-#: commands/tablecmds.c:2281 parser/parse_relation.c:3081
-#: parser/parse_relation.c:3101 utils/adt/tsvector_op.c:1417
+#: commands/copy.c:4428 commands/indexcmds.c:1053 commands/tablecmds.c:1463
+#: commands/tablecmds.c:2290 parser/parse_relation.c:3084
+#: parser/parse_relation.c:3104 utils/adt/tsvector_op.c:2222
 #, c-format
 msgid "column \"%s\" does not exist"
 msgstr "字段 \"%s\" 不存在"
 
-#: commands/copy.c:4395 commands/tablecmds.c:1484 commands/trigger.c:652
+#: commands/copy.c:4435 commands/tablecmds.c:1489 commands/trigger.c:651
 #: parser/parse_target.c:956 parser/parse_target.c:967
 #, c-format
 msgid "column \"%s\" specified more than once"
@@ -5674,7 +6200,6 @@ msgstr "指定了太多的列名"
 
 #: commands/createas.c:452
 #, c-format
-#| msgid "DISTINCT is not implemented for window functions"
 msgid "policies not yet implemented for this command"
 msgstr "还没有为该命令实现策略"
 
@@ -5699,8 +6224,8 @@ msgid "%s is not a valid encoding name"
 msgstr "%s 是一个无效编码名字"
 
 # fe-connect.c:2558
-#: commands/dbcommands.c:279 commands/dbcommands.c:1458 commands/user.c:271
-#: commands/user.c:635
+#: commands/dbcommands.c:279 commands/dbcommands.c:1458 commands/user.c:272
+#: commands/user.c:650
 #, c-format
 msgid "invalid connection limit: %d"
 msgstr "无效的连接限制:%d"
@@ -5875,21 +6400,19 @@ msgstr "在使用这条命令前,您必须把它们移动回数据库的缺省
 
 #: commands/dbcommands.c:1325 commands/dbcommands.c:1868
 #: commands/dbcommands.c:2072 commands/dbcommands.c:2120
-#: commands/tablespace.c:606
+#: commands/tablespace.c:610
 #, c-format
 msgid "some useless files may be left behind in old database directory \"%s\""
 msgstr "在原先的数据库目录\"%s\"可能留下了一些无用的文件"
 
 #: commands/dbcommands.c:1440
 #, c-format
-#| msgid "parameter \"%s\" cannot be set after connection start"
 msgid "option \"%s\" cannot be specified with other options"
 msgstr "选项\"%s\"不能和其他选项一起指定"
 
 # command.c:981
 #: commands/dbcommands.c:1494
 #, c-format
-#| msgid "too many connections for database \"%s\""
 msgid "cannot disallow connections for current database"
 msgstr "无法禁止到当前数据库的连接"
 
@@ -5954,8 +6477,8 @@ msgstr "%s 的参数必需是一个类型名"
 msgid "invalid argument for %s: \"%s\""
 msgstr "%s 的无效参数: \"%s\""
 
-#: commands/dropcmds.c:112 commands/functioncmds.c:1166
-#: utils/adt/ruleutils.c:1951
+#: commands/dropcmds.c:112 commands/functioncmds.c:1203
+#: utils/adt/ruleutils.c:1957
 #, c-format
 msgid "\"%s\" is an aggregate function"
 msgstr "\"%s\" 是一个聚合函数"
@@ -5965,19 +6488,19 @@ msgstr "\"%s\" 是一个聚合函数"
 msgid "Use DROP AGGREGATE to drop aggregate functions."
 msgstr "使用 DROP AGGREGATE 删除一个聚合函数."
 
-#: commands/dropcmds.c:165 commands/sequence.c:424 commands/tablecmds.c:2368
-#: commands/tablecmds.c:2519 commands/tablecmds.c:2561
-#: commands/tablecmds.c:11317 tcop/utility.c:1104
+#: commands/dropcmds.c:165 commands/sequence.c:424 commands/tablecmds.c:2377
+#: commands/tablecmds.c:2528 commands/tablecmds.c:2570
+#: commands/tablecmds.c:11379 tcop/utility.c:1119
 #, c-format
 msgid "relation \"%s\" does not exist, skipping"
 msgstr "关系 \"%s\" 不存在,忽略"
 
-#: commands/dropcmds.c:195 commands/dropcmds.c:292 commands/tablecmds.c:740
+#: commands/dropcmds.c:195 commands/dropcmds.c:292 commands/tablecmds.c:745
 #, c-format
 msgid "schema \"%s\" does not exist, skipping"
 msgstr "模式 \"%s\" 不存在"
 
-#: commands/dropcmds.c:237 commands/dropcmds.c:272 commands/tablecmds.c:243
+#: commands/dropcmds.c:237 commands/dropcmds.c:272 commands/tablecmds.c:246
 #, c-format
 msgid "type \"%s\" does not exist, skipping"
 msgstr "类型 \"%s\" 不存在"
@@ -6044,7 +6567,6 @@ msgstr "从类型 %s 到类型 %s 的类型转换不存在,跳过"
 
 #: commands/dropcmds.c:372
 #, c-format
-#| msgid "language \"%s\" does not exist, skipping"
 msgid "transform for type %s language \"%s\" does not exist, skipping"
 msgstr "用于类型%s、语言\"%s\"的转换不存在,跳过"
 
@@ -6055,7 +6577,6 @@ msgstr "关系 \"%2$s\"的触发器\"%1$s\"不存在,跳过"
 
 #: commands/dropcmds.c:389
 #, c-format
-#| msgid "rule \"%s\" for relation \"%s\" does not exist, skipping"
 msgid "policy \"%s\" for relation \"%s\" does not exist, skipping"
 msgstr "关系\"%2$s\"的策略\"%1$s\"不存在,跳过"
 
@@ -6090,103 +6611,70 @@ msgid ""
 "operator family \"%s\" does not exist for access method \"%s\", skipping"
 msgstr "访问方法\"%2$s\"的操作符表 \"%1$s\" 不存在, 跳过"
 
-#: commands/event_trigger.c:181
+#: commands/event_trigger.c:182
 #, c-format
 msgid "permission denied to create event trigger \"%s\""
 msgstr "创建事件触发器 \"%s\" 权限不够"
 
-#: commands/event_trigger.c:183
+#: commands/event_trigger.c:184
 #, c-format
 msgid "Must be superuser to create an event trigger."
 msgstr "只有超级用户能创建事件触发器."
 
-#: commands/event_trigger.c:192
+#: commands/event_trigger.c:193
 #, c-format
 msgid "unrecognized event name \"%s\""
 msgstr "无法识别的事件名:\"%s\""
 
-#: commands/event_trigger.c:209
+#: commands/event_trigger.c:210
 #, c-format
 msgid "unrecognized filter variable \"%s\""
 msgstr "不可识别的过滤器变量 \"%s\""
 
-#: commands/event_trigger.c:239
-#, c-format
-msgid "function \"%s\" must return type \"event_trigger\""
-msgstr "函数 %s 必需返回 \"event_trigger\" 类型"
-
-#: commands/event_trigger.c:264
+#: commands/event_trigger.c:265
 #, c-format
 msgid "filter value \"%s\" not recognized for filter variable \"%s\""
 msgstr "过滤器变量 \"%2$s\"中的过滤器值\"%1$s\"不能识别"
 
 #. translator: %s represents an SQL statement name
-#: commands/event_trigger.c:270 commands/event_trigger.c:340
+#: commands/event_trigger.c:271 commands/event_trigger.c:341
 #, c-format
 msgid "event triggers are not supported for %s"
 msgstr "事件触发器在%s中不被支持"
 
-#: commands/event_trigger.c:363
+#: commands/event_trigger.c:364
 #, c-format
 msgid "filter variable \"%s\" specified more than once"
 msgstr "过滤器变量 \"%s\" 被指定多次"
 
-#: commands/event_trigger.c:511 commands/event_trigger.c:555
-#: commands/event_trigger.c:648
+#: commands/event_trigger.c:512 commands/event_trigger.c:556
+#: commands/event_trigger.c:649
 #, c-format
 msgid "event trigger \"%s\" does not exist"
 msgstr "过滤器变量\"%s\" 不存在"
 
-#: commands/event_trigger.c:616
+#: commands/event_trigger.c:617
 #, c-format
 msgid "permission denied to change owner of event trigger \"%s\""
 msgstr "修改事件触发器的 \"%s\" 的属主权限不够"
 
-#: commands/event_trigger.c:618
+#: commands/event_trigger.c:619
 #, c-format
 msgid "The owner of an event trigger must be a superuser."
 msgstr "事件触发器的属主必须是超级用户."
 
-#: commands/event_trigger.c:1439
+#: commands/event_trigger.c:1442
 #, c-format
 msgid "%s can only be called in a sql_drop event trigger function"
 msgstr "%s只能在sql_drop事件触发器函数中被调用"
 
-#: commands/event_trigger.c:1446 commands/event_trigger.c:1997
-#: commands/extension.c:1645 commands/extension.c:1754
-#: commands/extension.c:1947 commands/prepare.c:701 executor/execQual.c:1735
-#: executor/execQual.c:1760 executor/execQual.c:2135 executor/execQual.c:5376
-#: executor/functions.c:1021 foreign/foreign.c:491
-#: replication/logical/logicalfuncs.c:312 replication/logical/origin.c:1410
-#: replication/slotfuncs.c:173 replication/walsender.c:2759
-#: utils/adt/jsonfuncs.c:1474 utils/adt/jsonfuncs.c:1606
-#: utils/adt/jsonfuncs.c:1796 utils/adt/jsonfuncs.c:1925
-#: utils/adt/jsonfuncs.c:2693 utils/adt/pgstatfuncs.c:547
-#: utils/fmgr/funcapi.c:61 utils/misc/guc.c:8196 utils/mmgr/portalmem.c:1052
-#, c-format
-msgid "set-valued function called in context that cannot accept a set"
-msgstr "在不能接受使用集合的环境中调用set-valued函数"
-
-#: commands/event_trigger.c:1450 commands/event_trigger.c:2001
-#: commands/extension.c:1649 commands/extension.c:1758
-#: commands/extension.c:1951 commands/prepare.c:705 foreign/foreign.c:496
-#: replication/logical/logicalfuncs.c:316 replication/logical/origin.c:1414
-#: replication/slotfuncs.c:177 replication/walsender.c:2763
-#: utils/adt/pgstatfuncs.c:551 utils/misc/guc.c:8200
-#: utils/mmgr/portalmem.c:1056
-#, c-format
-msgid "materialize mode required, but it is not allowed in this context"
-msgstr "要求使用物化模式,但是在这种环境下不允许使用."
-
-#: commands/event_trigger.c:1559 commands/event_trigger.c:1580
+#: commands/event_trigger.c:1562 commands/event_trigger.c:1583
 #, c-format
-#| msgid "%s can only be called in a sql_drop event trigger function"
 msgid "%s can only be called in a table_rewrite event trigger function"
 msgstr "%s只能在table_rewrite事件触发器函数中被调用"
 
-#: commands/event_trigger.c:1990
+#: commands/event_trigger.c:1993
 #, c-format
-#| msgid "%s can only be called in a sql_drop event trigger function"
 msgid "%s can only be called in an event trigger function"
 msgstr "%s只能在事件触发器函数中被调用"
 
@@ -6210,224 +6698,241 @@ msgstr "在EXPLAIN命令中BUFFERS和ANALYZE选项需要一起使用"
 msgid "EXPLAIN option TIMING requires ANALYZE"
 msgstr "在EXPLAIN命令中的TIMING选项需要ANALYZE"
 
-#: commands/extension.c:152 commands/extension.c:2635
+#: commands/extension.c:154 commands/extension.c:2718
 #, c-format
 msgid "extension \"%s\" does not exist"
 msgstr "扩展 \"%s\" 不存在"
 
-#: commands/extension.c:251 commands/extension.c:260 commands/extension.c:272
-#: commands/extension.c:282
+#: commands/extension.c:253 commands/extension.c:262 commands/extension.c:274
+#: commands/extension.c:284
 #, c-format
 msgid "invalid extension name: \"%s\""
 msgstr "无效扩展名: \"%s\""
 
-#: commands/extension.c:252
+#: commands/extension.c:254
 #, c-format
 msgid "Extension names must not be empty."
 msgstr "扩展名不能为空."
 
-#: commands/extension.c:261
+#: commands/extension.c:263
 #, c-format
 msgid "Extension names must not contain \"--\"."
 msgstr "扩展名不能包含\"--\"."
 
-#: commands/extension.c:273
+#: commands/extension.c:275
 #, c-format
 msgid "Extension names must not begin or end with \"-\"."
 msgstr "扩展名不能以 \"-\"作为开始或结束符."
 
-#: commands/extension.c:283
+#: commands/extension.c:285
 #, c-format
 msgid "Extension names must not contain directory separator characters."
 msgstr "扩展名不能包含目录分隔符."
 
-#: commands/extension.c:298 commands/extension.c:307 commands/extension.c:316
-#: commands/extension.c:326
+#: commands/extension.c:300 commands/extension.c:309 commands/extension.c:318
+#: commands/extension.c:328
 #, c-format
 msgid "invalid extension version name: \"%s\""
 msgstr "无效的扩展版本名: \"%s\""
 
-#: commands/extension.c:299
+#: commands/extension.c:301
 #, c-format
 msgid "Version names must not be empty."
 msgstr "版本名不能为空."
 
-#: commands/extension.c:308
+#: commands/extension.c:310
 #, c-format
 msgid "Version names must not contain \"--\"."
 msgstr "版本名不能包含\"--\"."
 
-#: commands/extension.c:317
+#: commands/extension.c:319
 #, c-format
 msgid "Version names must not begin or end with \"-\"."
 msgstr "版本名不能以 \"-\"作为开始或结束符."
 
-#: commands/extension.c:327
+#: commands/extension.c:329
 #, c-format
 msgid "Version names must not contain directory separator characters."
 msgstr "版本名不能包含目录分隔符."
 
-#: commands/extension.c:477
+#: commands/extension.c:479
 #, c-format
 msgid "could not open extension control file \"%s\": %m"
 msgstr "无法打开扩展控制文件 \"%s\": %m"
 
-#: commands/extension.c:499 commands/extension.c:509
+#: commands/extension.c:501 commands/extension.c:511
 #, c-format
 msgid "parameter \"%s\" cannot be set in a secondary extension control file"
 msgstr "第二扩展控制文件中, 无法设置参数 \"%s\""
 
-#: commands/extension.c:548
+#: commands/extension.c:550
 #, c-format
 msgid "\"%s\" is not a valid encoding name"
 msgstr "\"%s\" 是一个无效编码名"
 
-#: commands/extension.c:562
+#: commands/extension.c:564
 #, c-format
 msgid "parameter \"%s\" must be a list of extension names"
 msgstr "参数 \"%s\"必须是一个包含扩展名的列表"
 
-#: commands/extension.c:569
+#: commands/extension.c:571
 #, c-format
 msgid "unrecognized parameter \"%s\" in file \"%s\""
 msgstr "文件\"%2$s\"中出现未识别的参数 \"%1$s\""
 
-#: commands/extension.c:578
+#: commands/extension.c:580
 #, c-format
 msgid "parameter \"schema\" cannot be specified when \"relocatable\" is true"
 msgstr "当\"relocatable\"为真时,参数\"schema\"不允许被指定"
 
-#: commands/extension.c:719
+#: commands/extension.c:721
 #, c-format
 msgid ""
 "transaction control statements are not allowed within an extension script"
 msgstr "扩展脚本中不允许出现事务控制语句"
 
-#: commands/extension.c:787
+#: commands/extension.c:789
 #, c-format
 msgid "permission denied to create extension \"%s\""
 msgstr "创建扩展 \"%s\" 权限不够"
 
-#: commands/extension.c:789
+#: commands/extension.c:791
 #, c-format
 msgid "Must be superuser to create this extension."
 msgstr "只有超级用户能创建扩展."
 
-#: commands/extension.c:793
+#: commands/extension.c:795
 #, c-format
 msgid "permission denied to update extension \"%s\""
 msgstr "更新扩展 \"%s\" 权限不够"
 
-#: commands/extension.c:795
+#: commands/extension.c:797
 #, c-format
 msgid "Must be superuser to update this extension."
 msgstr "只有超级用户能更新扩展."
 
-#: commands/extension.c:1077
+#: commands/extension.c:1079
 #, c-format
 msgid ""
 "extension \"%s\" has no update path from version \"%s\" to version \"%s\""
 msgstr "扩展 \"%s\" 没有从版本\"%s\"到版本\"%s\"的更新路径"
 
-#: commands/extension.c:1205
-#, c-format
-msgid "extension \"%s\" already exists, skipping"
-msgstr "扩展 \"%s\" 已经存在,跳过"
-
-#: commands/extension.c:1212
-#, c-format
-msgid "extension \"%s\" already exists"
-msgstr "扩展 \"%s\" 已经存在"
-
-#: commands/extension.c:1223
-#, c-format
-msgid "nested CREATE EXTENSION is not supported"
-msgstr "不支持嵌套的CREATE EXTENSION"
-
-#: commands/extension.c:1278 commands/extension.c:2695
+#: commands/extension.c:1261 commands/extension.c:2778
 #, c-format
 msgid "version to install must be specified"
 msgstr "必须指定安装版本"
 
-#: commands/extension.c:1295
+#: commands/extension.c:1278
 #, c-format
 msgid "FROM version must be different from installation target version \"%s\""
 msgstr "FROM 版本与安装的目标版本 \"%s\" 必须不同"
 
-#: commands/extension.c:1350
+#: commands/extension.c:1343
 #, c-format
 msgid "extension \"%s\" must be installed in schema \"%s\""
 msgstr "扩展\"%s\"已经安装到模式\"%s\"中了"
 
-#: commands/extension.c:1434 commands/extension.c:2840
+#: commands/extension.c:1435
+#, c-format
+#| msgid "collation mismatch between explicit collations \"%s\" and \"%s\""
+msgid "cyclic dependency detected between extensions \"%s\" and \"%s\""
+msgstr "在扩展 \"%s\" 和 \"%s\" 之间检测到循环依赖"
+
+#: commands/extension.c:1440
+#, c-format
+#| msgid "invalid extension name: \"%s\""
+msgid "installing required extension \"%s\""
+msgstr "正在安装所需的扩展 \"%s\""
+
+#: commands/extension.c:1468 commands/extension.c:2923
 #, c-format
 msgid "required extension \"%s\" is not installed"
 msgstr "所需要的扩展\"%s\"没被安装"
 
-#: commands/extension.c:1597
+#: commands/extension.c:1470
+#, c-format
+#| msgid "Use ALTER ... CASCADE to alter the typed tables too."
+msgid "Use CREATE EXTENSION CASCADE to install required extensions too."
+msgstr "请使用 CREATE EXTENSION CASCADE 安装所需的扩展。"
+
+#: commands/extension.c:1534
+#, c-format
+msgid "extension \"%s\" already exists, skipping"
+msgstr "扩展 \"%s\" 已经存在,跳过"
+
+#: commands/extension.c:1541
+#, c-format
+msgid "extension \"%s\" already exists"
+msgstr "扩展 \"%s\" 已经存在"
+
+#: commands/extension.c:1552
+#, c-format
+msgid "nested CREATE EXTENSION is not supported"
+msgstr "不支持嵌套的CREATE EXTENSION"
+
+#: commands/extension.c:1680
 #, c-format
 msgid "cannot drop extension \"%s\" because it is being modified"
 msgstr "无法删除扩展\"%s\",因为它正被修改中"
 
-#: commands/extension.c:2068
+#: commands/extension.c:2151
 #, c-format
 msgid ""
 "pg_extension_config_dump() can only be called from an SQL script executed by "
 "CREATE EXTENSION"
 msgstr "pg_extension_config_dump() 只能在执行 CREATE EXTENSION的SQL脚本里调用"
 
-#: commands/extension.c:2080
+#: commands/extension.c:2163
 #, c-format
 msgid "OID %u does not refer to a table"
 msgstr "OID %u没有引用任何表"
 
-#: commands/extension.c:2085
+#: commands/extension.c:2168
 #, c-format
 msgid "table \"%s\" is not a member of the extension being created"
 msgstr "表\"%s\"不是被创建的任何一个扩展的成员"
 
-#: commands/extension.c:2450
+#: commands/extension.c:2533
 #, c-format
 msgid ""
 "cannot move extension \"%s\" into schema \"%s\" because the extension "
 "contains the schema"
 msgstr "不能将扩展 \"%s\" 转移到模式 \"%s\" 里,因为该扩展已经拥有该模式"
 
-#: commands/extension.c:2490 commands/extension.c:2553
+#: commands/extension.c:2573 commands/extension.c:2636
 #, c-format
 msgid "extension \"%s\" does not support SET SCHEMA"
 msgstr "扩展 \"%s\" 不支持SET SCHEMA操作"
 
-#: commands/extension.c:2555
+#: commands/extension.c:2638
 #, c-format
 msgid "%s is not in the extension's schema \"%s\""
 msgstr "扩展模式\"%2$s\"中不存在%1$s"
 
-#: commands/extension.c:2615
+#: commands/extension.c:2698
 #, c-format
 msgid "nested ALTER EXTENSION is not supported"
 msgstr "不支持使用嵌套的ALTER  EXTENSION"
 
-#: commands/extension.c:2706
+#: commands/extension.c:2789
 #, c-format
 msgid "version \"%s\" of extension \"%s\" is already installed"
 msgstr "扩展\"%2$s\"的版本\"%1$s\"已经安装"
 
-#: commands/extension.c:2957
+#: commands/extension.c:3040
 #, c-format
 msgid ""
 "cannot add schema \"%s\" to extension \"%s\" because the schema contains the "
 "extension"
 msgstr "无法为扩展\"%2$s\"添加模式\"%1$s\",因为该模式已经包含此扩展"
 
-#: commands/extension.c:2975
+#: commands/extension.c:3058
 #, c-format
 msgid "%s is not a member of extension \"%s\""
 msgstr "%s不是扩展的成员\"%s\""
 
-#: commands/extension.c:3031
+#: commands/extension.c:3114
 #, c-format
-#| msgid "variable \"%s\" is not declared"
 msgid "file \"%s\" is too large"
 msgstr "文件\"%s\"太大"
 
@@ -6456,16 +6961,11 @@ msgstr "只有超级用户可以更改外部数据封装器的属主"
 msgid "The owner of a foreign-data wrapper must be a superuser."
 msgstr "外部数据封装器的属主必须是超级用户."
 
-#: commands/foreigncmds.c:292 commands/foreigncmds.c:709 foreign/foreign.c:670
+#: commands/foreigncmds.c:292 commands/foreigncmds.c:709 foreign/foreign.c:777
 #, c-format
 msgid "foreign-data wrapper \"%s\" does not exist"
 msgstr "外部数据封装器 \"%s\" 不存在"
 
-#: commands/foreigncmds.c:489
-#, c-format
-msgid "function %s must return type \"fdw_handler\""
-msgstr "函数 %s 必须返回 \"fdw_handler\" 类型"
-
 #: commands/foreigncmds.c:584
 #, c-format
 msgid "permission denied to create foreign-data wrapper \"%s\""
@@ -6500,40 +7000,38 @@ msgid ""
 "dependent objects to become invalid"
 msgstr "改变外部数据封装器的验证能够使所它依赖对象的选项变为无效"
 
-#: commands/foreigncmds.c:1165
+#: commands/foreigncmds.c:1169
 #, c-format
 msgid "user mapping \"%s\" already exists for server %s"
 msgstr "对于服务器%2$s,用户映射\"%1$s\"已存在 "
 
-#: commands/foreigncmds.c:1259 commands/foreigncmds.c:1375
+#: commands/foreigncmds.c:1267 commands/foreigncmds.c:1388
 #, c-format
 msgid "user mapping \"%s\" does not exist for the server"
 msgstr "对于服务器来说,用户映射\"%s\"不存在"
 
-#: commands/foreigncmds.c:1362
+#: commands/foreigncmds.c:1375
 #, c-format
 msgid "server does not exist, skipping"
 msgstr "服务器不存在,跳过"
 
-#: commands/foreigncmds.c:1380
+#: commands/foreigncmds.c:1393
 #, c-format
 msgid "user mapping \"%s\" does not exist for the server, skipping"
 msgstr "用户映射\"%s\"对于服务器来说不存在,跳过"
 
-#: commands/foreigncmds.c:1532 foreign/foreign.c:360
+#: commands/foreigncmds.c:1545 foreign/foreign.c:467
 #, c-format
 msgid "foreign-data wrapper \"%s\" has no handler"
 msgstr "外部数据封装器 \"%s\"没有处理函数"
 
-#: commands/foreigncmds.c:1538
+#: commands/foreigncmds.c:1551
 #, c-format
-#| msgid "foreign-data wrapper \"%s\" does not exist"
 msgid "foreign-data wrapper \"%s\" does not support IMPORT FOREIGN SCHEMA"
 msgstr "外部数据包装器\"%s\"不支持IMPORT FOREIGN SCHEMA"
 
-#: commands/foreigncmds.c:1631
+#: commands/foreigncmds.c:1644
 #, c-format
-#| msgid "cannot insert into foreign table \"%s\""
 msgid "importing foreign table \"%s\""
 msgstr "导入外部表\"%s\""
 
@@ -6547,7 +7045,7 @@ msgstr "SQL 函数不能返回 shell 类型 %s"
 msgid "return type %s is only a shell"
 msgstr "返回类型 %s 只是一个 shell"
 
-#: commands/functioncmds.c:134 parser/parse_type.c:338
+#: commands/functioncmds.c:134 parser/parse_type.c:337
 #, c-format
 msgid "type modifier cannot be specified for shell type \"%s\""
 msgstr "不能为shell类型\"%s\"指定类型修改器"
@@ -6622,431 +7120,414 @@ msgstr "在参数缺省值中不能使用表引用"
 msgid "input parameters after one with a default value must also have defaults"
 msgstr "在带有缺省值参数后面的输入参数必须也带有缺省值."
 
-#: commands/functioncmds.c:670
+#: commands/functioncmds.c:701
 #, c-format
 msgid "no function body specified"
 msgstr "没有指定函数体"
 
-#: commands/functioncmds.c:680
+#: commands/functioncmds.c:711
 #, c-format
 msgid "no language specified"
 msgstr "没有指定语言"
 
-#: commands/functioncmds.c:705 commands/functioncmds.c:1205
+#: commands/functioncmds.c:736 commands/functioncmds.c:1243
 #, c-format
 msgid "COST must be positive"
 msgstr "COST必需为正数"
 
-#: commands/functioncmds.c:713 commands/functioncmds.c:1213
+#: commands/functioncmds.c:744 commands/functioncmds.c:1251
 #, c-format
 msgid "ROWS must be positive"
 msgstr "ROWS必需为正数"
 
-#: commands/functioncmds.c:752
+#: commands/functioncmds.c:785
 #, c-format
 msgid "unrecognized function attribute \"%s\" ignored"
 msgstr "忽略未认可的函数属性 \"%s\""
 
-#: commands/functioncmds.c:803
+#: commands/functioncmds.c:836
 #, c-format
 msgid "only one AS item needed for language \"%s\""
 msgstr "对于 \"%s\" 语言只能要求一个 AS 项目"
 
-#: commands/functioncmds.c:894 commands/functioncmds.c:2079
-#: commands/proclang.c:560
+#: commands/functioncmds.c:929 commands/functioncmds.c:2119
+#: commands/proclang.c:563
 #, c-format
 msgid "language \"%s\" does not exist"
 msgstr "语言 \"%s\" 不存在"
 
-#: commands/functioncmds.c:896 commands/functioncmds.c:2081
+#: commands/functioncmds.c:931 commands/functioncmds.c:2121
 #, c-format
 msgid "Use CREATE LANGUAGE to load the language into the database."
 msgstr "使用CREATE LANGUAGE向数据库加载语言."
 
-#: commands/functioncmds.c:931 commands/functioncmds.c:1197
+#: commands/functioncmds.c:966 commands/functioncmds.c:1235
 #, c-format
 msgid "only superuser can define a leakproof function"
 msgstr "只有超级用户才能定义一个密封函数"
 
-#: commands/functioncmds.c:975
+#: commands/functioncmds.c:1010
 #, c-format
 msgid "function result type must be %s because of OUT parameters"
 msgstr "因为OUT参数,函数的结果类型必须是%s"
 
-#: commands/functioncmds.c:988
+#: commands/functioncmds.c:1023
 #, c-format
 msgid "function result type must be specified"
 msgstr "必须指定函数返回结果的类型"
 
-#: commands/functioncmds.c:1042 commands/functioncmds.c:1217
+#: commands/functioncmds.c:1077 commands/functioncmds.c:1255
 #, c-format
 msgid "ROWS is not applicable when function does not return a set"
 msgstr "当转换函数不返回一个组合时,不适用ROWS"
 
-#: commands/functioncmds.c:1372
+#: commands/functioncmds.c:1412
 #, c-format
 msgid "source data type %s is a pseudo-type"
 msgstr "源数据类型 %s 是一个伪类型"
 
-#: commands/functioncmds.c:1378
+#: commands/functioncmds.c:1418
 #, c-format
 msgid "target data type %s is a pseudo-type"
 msgstr "目标数据类型 %s 是一个伪类型"
 
-#: commands/functioncmds.c:1402
+#: commands/functioncmds.c:1442
 #, c-format
 msgid "cast will be ignored because the source data type is a domain"
 msgstr "转换将被忽略,因为源数据类型是一个域"
 
-#: commands/functioncmds.c:1407
+#: commands/functioncmds.c:1447
 #, c-format
 msgid "cast will be ignored because the target data type is a domain"
 msgstr "转换将被忽略,因为目标数据类型是一个域"
 
-#: commands/functioncmds.c:1434
+#: commands/functioncmds.c:1474
 #, c-format
 msgid "cast function must take one to three arguments"
 msgstr "类型转换函数只能带一到三个参数"
 
-#: commands/functioncmds.c:1438
+#: commands/functioncmds.c:1478
 #, c-format
 msgid ""
 "argument of cast function must match or be binary-coercible from source data "
 "type"
 msgstr "功能指派函数的参数必须匹配或者是或者从源数据类型以二进制方式强制转换的"
 
-#: commands/functioncmds.c:1442
+#: commands/functioncmds.c:1482
 #, c-format
 msgid "second argument of cast function must be type integer"
 msgstr "类型转换函数的第二个参数必须为整型"
 
-#: commands/functioncmds.c:1446
+#: commands/functioncmds.c:1486
 #, c-format
 msgid "third argument of cast function must be type boolean"
 msgstr "类型转换函数的第三个参数必须为布尔类型"
 
-#: commands/functioncmds.c:1450
+#: commands/functioncmds.c:1490
 #, c-format
 msgid ""
 "return data type of cast function must match or be binary-coercible to "
 "target data type"
 msgstr "功能指派函数的返回数据类型必须匹配或者强制二进制方式转换的目标数据类型"
 
-#: commands/functioncmds.c:1461
+#: commands/functioncmds.c:1501
 #, c-format
 msgid "cast function must not be volatile"
 msgstr "类型转换函数不能为易失的 (volatile)"
 
-#: commands/functioncmds.c:1466
+#: commands/functioncmds.c:1506
 #, c-format
 msgid "cast function must not be an aggregate function"
 msgstr "转换函数不能是一个聚合函数"
 
-#: commands/functioncmds.c:1470
+#: commands/functioncmds.c:1510
 #, c-format
 msgid "cast function must not be a window function"
 msgstr "功能转换函数不能使窗口函数"
 
-#: commands/functioncmds.c:1474
+#: commands/functioncmds.c:1514
 #, c-format
 msgid "cast function must not return a set"
 msgstr "转换函数不能返回一个组合"
 
-#: commands/functioncmds.c:1500
+#: commands/functioncmds.c:1540
 #, c-format
 msgid "must be superuser to create a cast WITHOUT FUNCTION"
 msgstr "只有超级用户能创建一个非函数的类型转换"
 
-#: commands/functioncmds.c:1515
+#: commands/functioncmds.c:1555
 #, c-format
 msgid "source and target data types are not physically compatible"
 msgstr "源数据类型和目标数据类型不相容"
 
-#: commands/functioncmds.c:1530
+#: commands/functioncmds.c:1570
 #, c-format
 msgid "composite data types are not binary-compatible"
 msgstr "组合数据类型不是二进制兼容"
 
-#: commands/functioncmds.c:1536
+#: commands/functioncmds.c:1576
 #, c-format
 msgid "enum data types are not binary-compatible"
 msgstr "枚举数据类型不是二进制兼容"
 
-#: commands/functioncmds.c:1542
+#: commands/functioncmds.c:1582
 #, c-format
 msgid "array data types are not binary-compatible"
 msgstr "数组数据类型不是二进制兼容的"
 
-#: commands/functioncmds.c:1559
+#: commands/functioncmds.c:1599
 #, c-format
 msgid "domain data types must not be marked binary-compatible"
 msgstr "域数据类型不能标为二进制兼容"
 
-#: commands/functioncmds.c:1569
+#: commands/functioncmds.c:1609
 #, c-format
 msgid "source data type and target data type are the same"
 msgstr "源数据类型和目标数据类型相同"
 
-#: commands/functioncmds.c:1602
+#: commands/functioncmds.c:1642
 #, c-format
 msgid "cast from type %s to type %s already exists"
 msgstr "类型 %s 到 %s 的转换已经存在"
 
-#: commands/functioncmds.c:1677
+#: commands/functioncmds.c:1717
 #, c-format
 msgid "cast from type %s to type %s does not exist"
 msgstr "类型 %s 到类型 %s 的转换不存在"
 
-#: commands/functioncmds.c:1716
+#: commands/functioncmds.c:1756
 #, c-format
-#| msgid "cast function must not be volatile"
 msgid "transform function must not be volatile"
 msgstr "转换函数不能是不稳定的 (volatile)"
 
-#: commands/functioncmds.c:1720
+#: commands/functioncmds.c:1760
 #, c-format
-#| msgid "cast function must not be an aggregate function"
 msgid "transform function must not be an aggregate function"
 msgstr "转换函数不能是一个聚集函数"
 
-#: commands/functioncmds.c:1724
+#: commands/functioncmds.c:1764
 #, c-format
-#| msgid "cast function must not be a window function"
 msgid "transform function must not be a window function"
 msgstr "转换函数不能是一个窗口函数"
 
-#: commands/functioncmds.c:1728
+#: commands/functioncmds.c:1768
 #, c-format
-#| msgid "cast function must not return a set"
 msgid "transform function must not return a set"
 msgstr "转换函数不能返回一个集合"
 
-#: commands/functioncmds.c:1732
+#: commands/functioncmds.c:1772
 #, c-format
-#| msgid "cast function must take one to three arguments"
 msgid "transform function must take one argument"
 msgstr "转换函数必须有一个参数"
 
-#: commands/functioncmds.c:1736
+#: commands/functioncmds.c:1776
 #, c-format
-#| msgid "second argument of cast function must be type integer"
 msgid "first argument of transform function must be type \"internal\""
 msgstr "转换函数的第一个参数必须为类型\"internal\""
 
-#: commands/functioncmds.c:1773
+#: commands/functioncmds.c:1813
 #, c-format
-#| msgid "source data type %s is a pseudo-type"
 msgid "data type %s is a pseudo-type"
 msgstr "数据类型 %s是一个伪类型"
 
-#: commands/functioncmds.c:1779
+#: commands/functioncmds.c:1819
 #, c-format
-#| msgid "type %s is not a domain"
 msgid "data type %s is a domain"
 msgstr "数据类型%s是一个域"
 
-#: commands/functioncmds.c:1819
+#: commands/functioncmds.c:1859
 #, c-format
-#| msgid ""
-#| "return data type of cast function must match or be binary-coercible to "
-#| "target data type"
 msgid "return data type of FROM SQL function must be \"internal\""
 msgstr "FROM SQL函数的返回数据类型必须是\"internal\""
 
-#: commands/functioncmds.c:1844
+#: commands/functioncmds.c:1884
 #, c-format
-#| msgid ""
-#| "return data type of cast function must match or be binary-coercible to "
-#| "target data type"
 msgid "return data type of TO SQL function must be the transform data type"
 msgstr "TO SQL函数的返回数据类型必须是转换数据类型"
 
-#: commands/functioncmds.c:1871
+#: commands/functioncmds.c:1911
 #, c-format
-#| msgid "language \"%s\" already exists"
 msgid "transform for type %s language \"%s\" already exists"
 msgstr "类型%s语言\"%s\"的转换已经存在"
 
-#: commands/functioncmds.c:1962
+#: commands/functioncmds.c:2002
 #, c-format
-#| msgid "language \"%s\" does not exist"
 msgid "transform for type %s language \"%s\" does not exist"
 msgstr "类型%s语言\"%s\"的转换不存在"
 
-#: commands/functioncmds.c:2013
+#: commands/functioncmds.c:2053
 #, c-format
 msgid "function %s already exists in schema \"%s\""
 msgstr "在模式 \"%2$s\" 中函数 %1$s 已经存在"
 
-#: commands/functioncmds.c:2066
+#: commands/functioncmds.c:2106
 #, c-format
 msgid "no inline code specified"
 msgstr "没有指定内联代码"
 
-#: commands/functioncmds.c:2111
+#: commands/functioncmds.c:2151
 #, c-format
 msgid "language \"%s\" does not support inline code execution"
 msgstr "语言 \"%s\" 不支持执行内联代码"
 
-#: commands/indexcmds.c:159 commands/indexcmds.c:487
-#: commands/opclasscmds.c:360 commands/opclasscmds.c:786
-#: commands/opclasscmds.c:1749
-#, c-format
-msgid "access method \"%s\" does not exist"
-msgstr "访问方式 \"%s\" 不存在"
-
-#: commands/indexcmds.c:341
+#: commands/indexcmds.c:349
 #, c-format
 msgid "must specify at least one column"
 msgstr "必需至少指定一个字段"
 
-#: commands/indexcmds.c:345
+#: commands/indexcmds.c:353
 #, c-format
 msgid "cannot use more than %d columns in an index"
 msgstr "在一个索引中不能使用超过 %d 个字段"
 
-#: commands/indexcmds.c:376
+#: commands/indexcmds.c:384
 #, c-format
 msgid "cannot create index on foreign table \"%s\""
 msgstr "外部表\"%s\"上无法创建索引"
 
-#: commands/indexcmds.c:391
+#: commands/indexcmds.c:399
 #, c-format
 msgid "cannot create indexes on temporary tables of other sessions"
 msgstr "不能在其他会话的临时表上创建索引"
 
-#: commands/indexcmds.c:446 commands/tablecmds.c:540 commands/tablecmds.c:9567
+#: commands/indexcmds.c:454 commands/tablecmds.c:545 commands/tablecmds.c:9599
 #, c-format
 msgid "only shared relations can be placed in pg_global tablespace"
 msgstr "在pg_global表空间中只能放置共享关系"
 
-#: commands/indexcmds.c:479
+#: commands/indexcmds.c:487
 #, c-format
 msgid "substituting access method \"gist\" for obsolete method \"rtree\""
 msgstr "将已作废的方法\"rtree\"替换为访问方法\"gist\" "
 
-#: commands/indexcmds.c:496
+#: commands/indexcmds.c:505
 #, c-format
 msgid "hash indexes are not WAL-logged and their use is discouraged"
 msgstr "哈希索引不被WAL记录并且不鼓励使用它们"
 
-#: commands/indexcmds.c:501
+#: commands/indexcmds.c:510
 #, c-format
 msgid "access method \"%s\" does not support unique indexes"
 msgstr "存取方法 \"%s\" 不支持唯一索引"
 
-#: commands/indexcmds.c:506
+#: commands/indexcmds.c:515
 #, c-format
 msgid "access method \"%s\" does not support multicolumn indexes"
 msgstr "存取方法 \"%s\" 不支持多字段索引"
 
-#: commands/indexcmds.c:511
+#: commands/indexcmds.c:520
 #, c-format
 msgid "access method \"%s\" does not support exclusion constraints"
 msgstr "访问方法 \"%s\" 不支持排他约束"
 
-#: commands/indexcmds.c:590
+#: commands/indexcmds.c:590 commands/indexcmds.c:610
+#, c-format
+#| msgid "concurrent index creation on system catalog tables is not supported"
+msgid "index creation on system columns is not supported"
+msgstr "不支持在系统列上创建索引"
+
+#: commands/indexcmds.c:635
 #, c-format
 msgid "%s %s will create implicit index \"%s\" for table \"%s\""
 msgstr "%1$s %2$s 将要为表 \"%4$s\" 创建隐含索引 \"%3$s\""
 
-#: commands/indexcmds.c:937
+#: commands/indexcmds.c:982
 #, c-format
 msgid "functions in index predicate must be marked IMMUTABLE"
 msgstr "索引声明中函数必需标记为 IMMUTABLE"
 
-#: commands/indexcmds.c:1003 parser/parse_utilcmd.c:1844
+#: commands/indexcmds.c:1048 parser/parse_utilcmd.c:1894
 #, c-format
 msgid "column \"%s\" named in key does not exist"
 msgstr "在键字中命名的字段 \"%s\" 不存在"
 
-#: commands/indexcmds.c:1063
+#: commands/indexcmds.c:1108
 #, c-format
 msgid "functions in index expression must be marked IMMUTABLE"
 msgstr "索引表达式中函数必需标记为 IMMUTABLE"
 
-#: commands/indexcmds.c:1086
+#: commands/indexcmds.c:1131
 #, c-format
 msgid "could not determine which collation to use for index expression"
 msgstr "索引表达式上无法确定使用哪个排序规则"
 
-#: commands/indexcmds.c:1094 commands/typecmds.c:825 parser/parse_expr.c:2559
-#: parser/parse_type.c:551 parser/parse_utilcmd.c:2736 utils/adt/misc.c:546
+#: commands/indexcmds.c:1139 commands/typecmds.c:827 parser/parse_expr.c:2559
+#: parser/parse_type.c:550 parser/parse_utilcmd.c:2820 utils/adt/misc.c:666
 #, c-format
 msgid "collations are not supported by type %s"
 msgstr "类型%s不能使用排序规则"
 
-#: commands/indexcmds.c:1132
+#: commands/indexcmds.c:1177
 #, c-format
 msgid "operator %s is not commutative"
 msgstr "操作符%s不是可交换的"
 
-#: commands/indexcmds.c:1134
+#: commands/indexcmds.c:1179
 #, c-format
 msgid "Only commutative operators can be used in exclusion constraints."
 msgstr "只有可交换操作符能够在排他约束中使用."
 
-#: commands/indexcmds.c:1160
+#: commands/indexcmds.c:1205
 #, c-format
 msgid "operator %s is not a member of operator family \"%s\""
 msgstr "操作符%s不是操作符表\"%s\"的成员"
 
-#: commands/indexcmds.c:1163
+#: commands/indexcmds.c:1208
 #, c-format
 msgid ""
 "The exclusion operator must be related to the index operator class for the "
 "constraint."
 msgstr "排他操作符必须和用于约束的索引操作符级别相关联"
 
-#: commands/indexcmds.c:1198
+#: commands/indexcmds.c:1243
 #, c-format
 msgid "access method \"%s\" does not support ASC/DESC options"
 msgstr "访问方法 \"%s\" 不支持ASC/DESC选项"
 
-#: commands/indexcmds.c:1203
+#: commands/indexcmds.c:1248
 #, c-format
 msgid "access method \"%s\" does not support NULLS FIRST/LAST options"
 msgstr "访问方法 \"%s\" 不支持NULLS FIRST/LAST选项"
 
-#: commands/indexcmds.c:1259 commands/typecmds.c:1932
+#: commands/indexcmds.c:1304 commands/typecmds.c:1935
 #, c-format
 msgid "data type %s has no default operator class for access method \"%s\""
 msgstr "对访问方法 \"%2$s\" 数据类型 %1$s 没有默认的操作符表"
 
-#: commands/indexcmds.c:1261
+#: commands/indexcmds.c:1306
 #, c-format
 msgid ""
 "You must specify an operator class for the index or define a default "
 "operator class for the data type."
 msgstr "你必须指定一个操作符表给索引或定义一个默认的操作符表给数据类型."
 
-#: commands/indexcmds.c:1290 commands/indexcmds.c:1298
-#: commands/opclasscmds.c:204
+#: commands/indexcmds.c:1335 commands/indexcmds.c:1343
+#: commands/opclasscmds.c:205
 #, c-format
 msgid "operator class \"%s\" does not exist for access method \"%s\""
 msgstr "处理方法 \"%s\" 的操作符类 \"%s\" 不存在"
 
-#: commands/indexcmds.c:1311 commands/typecmds.c:1920
+#: commands/indexcmds.c:1356 commands/typecmds.c:1923
 #, c-format
 msgid "operator class \"%s\" does not accept data type %s"
 msgstr "操作符表 \"%s\" 不能处理数据类型 %s"
 
-#: commands/indexcmds.c:1401
+#: commands/indexcmds.c:1446
 #, c-format
 msgid "there are multiple default operator classes for data type %s"
 msgstr "数据类型 %s 有多个默认的操作符表"
 
-#: commands/indexcmds.c:1792
+#: commands/indexcmds.c:1837
 #, c-format
 msgid "table \"%s\" has no indexes"
 msgstr "表 \"%s\" 没有索引"
 
-#: commands/indexcmds.c:1847
+#: commands/indexcmds.c:1892
 #, c-format
 msgid "can only reindex the currently open database"
 msgstr "只能在当前打开的数据库上重建索引"
 
-#: commands/indexcmds.c:1949
+#: commands/indexcmds.c:1994
 #, c-format
 msgid "table \"%s.%s\" was reindexed"
 msgstr "表 \"%s.%s\" 已被重新索引"
@@ -7061,279 +7542,291 @@ msgstr "CONCURRENTLY 不能用于物化视图未被产生之前"
 msgid "CONCURRENTLY and WITH NO DATA options cannot be used together"
 msgstr "CONCURRENTLY 和 WITH NO DATA 两个选项不能同时使用"
 
-#: commands/matview.c:611
-#, c-format
-#| msgid "new data for \"%s\" contains duplicate rows without any null columns"
-msgid ""
-"new data for materialized view \"%s\" contains duplicate rows without any "
-"null columns"
-msgstr "物化视图\"%s\"的新数据包含重复的没有空值列的行"
-
-#: commands/matview.c:613
-#, c-format
-msgid "Row: %s"
-msgstr "行: %s"
-
 # describe.c:933
-#: commands/matview.c:701
+#: commands/matview.c:258
 #, c-format
 msgid "cannot refresh materialized view \"%s\" concurrently"
 msgstr "不能同时刷新物化视图 \"%s\""
 
-#: commands/matview.c:703
+#: commands/matview.c:261
 #, c-format
 msgid ""
 "Create a unique index with no WHERE clause on one or more columns of the "
 "materialized view."
 msgstr "在物化视图的一个或多个列上创建不带WHERE子句的唯一索引."
 
-#: commands/opclasscmds.c:125
+#: commands/matview.c:656
+#, c-format
+msgid ""
+"new data for materialized view \"%s\" contains duplicate rows without any "
+"null columns"
+msgstr "物化视图\"%s\"的新数据包含重复的没有空值列的行"
+
+#: commands/matview.c:658
+#, c-format
+msgid "Row: %s"
+msgstr "行: %s"
+
+#: commands/opclasscmds.c:126
 #, c-format
 msgid "operator family \"%s\" does not exist for access method \"%s\""
 msgstr "访问方法\"%2$s\"的操作符表 \"%1$s\" 不存在"
 
-#: commands/opclasscmds.c:263
+#: commands/opclasscmds.c:264
 #, c-format
 msgid "operator family \"%s\" for access method \"%s\" already exists"
 msgstr "访问方法 \"%2$s\" 操作符表 \"%1$s\" 已经存在"
 
-#: commands/opclasscmds.c:399
+#: commands/opclasscmds.c:404
 #, c-format
 msgid "must be superuser to create an operator class"
 msgstr "只有超级用户能创建一个操作符表"
 
-#: commands/opclasscmds.c:473 commands/opclasscmds.c:859
-#: commands/opclasscmds.c:992
+#: commands/opclasscmds.c:478 commands/opclasscmds.c:863
+#: commands/opclasscmds.c:996
 #, c-format
 msgid "invalid operator number %d, must be between 1 and %d"
 msgstr "无效的操作符号 %d, 必需在 1 到 %d 之间"
 
-#: commands/opclasscmds.c:524 commands/opclasscmds.c:910
-#: commands/opclasscmds.c:1007
+#: commands/opclasscmds.c:529 commands/opclasscmds.c:914
+#: commands/opclasscmds.c:1011
 #, c-format
 msgid "invalid procedure number %d, must be between 1 and %d"
 msgstr "无效的过程号 %d, 必需在 1 到 %d 之间"
 
-#: commands/opclasscmds.c:554
+#: commands/opclasscmds.c:559
 #, c-format
 msgid "storage type specified more than once"
 msgstr "存储类型指定了多次"
 
-#: commands/opclasscmds.c:581
+#: commands/opclasscmds.c:586
 #, c-format
 msgid ""
 "storage type cannot be different from data type for access method \"%s\""
 msgstr "存储类型应该和用于访问方法 \"%s\" 数据类型一样"
 
-#: commands/opclasscmds.c:597
+#: commands/opclasscmds.c:602
 #, c-format
 msgid "operator class \"%s\" for access method \"%s\" already exists"
 msgstr "访问方法 \"%2$s\" 操作符表 \"%1$s\" 已经存在"
 
-#: commands/opclasscmds.c:625
+#: commands/opclasscmds.c:630
 #, c-format
 msgid "could not make operator class \"%s\" be default for type %s"
 msgstr "无法把操作符表 \"%s\" 设置为类型 %s 的默认操作符表"
 
-#: commands/opclasscmds.c:628
+#: commands/opclasscmds.c:633
 #, c-format
 msgid "Operator class \"%s\" already is the default."
 msgstr "操作符表 \"%s\" 已经是默认的了."
 
-#: commands/opclasscmds.c:756
+#: commands/opclasscmds.c:760
 #, c-format
 msgid "must be superuser to create an operator family"
 msgstr "只有超级用户能创建一个操作符表"
 
-#: commands/opclasscmds.c:812
+#: commands/opclasscmds.c:816
 #, c-format
 msgid "must be superuser to alter an operator family"
 msgstr "只有超级用户能修改一个操作符表"
 
-#: commands/opclasscmds.c:875
+#: commands/opclasscmds.c:879
 #, c-format
 msgid "operator argument types must be specified in ALTER OPERATOR FAMILY"
 msgstr "在ALTER OPERATOR FAMILY中必须指定操作符参数类型"
 
-#: commands/opclasscmds.c:939
+#: commands/opclasscmds.c:943
 #, c-format
 msgid "STORAGE cannot be specified in ALTER OPERATOR FAMILY"
 msgstr "在ALTER OPERATOR FAMILY中无法指定参数STORAGE"
 
-#: commands/opclasscmds.c:1062
+#: commands/opclasscmds.c:1066
 #, c-format
 msgid "one or two argument types must be specified"
 msgstr "必须指定一个或两个参数类型"
 
-#: commands/opclasscmds.c:1088
+#: commands/opclasscmds.c:1092
 #, c-format
 msgid "index operators must be binary"
 msgstr "索引操作符必须为二进制"
 
-#: commands/opclasscmds.c:1113
+#: commands/opclasscmds.c:1111
 #, c-format
 msgid "access method \"%s\" does not support ordering operators"
 msgstr "访问方法 \"%s\" 不支持排序操作符"
 
-#: commands/opclasscmds.c:1126
+#: commands/opclasscmds.c:1122
 #, c-format
 msgid "index search operators must return boolean"
 msgstr "索引搜索操作符必须返回布尔值"
 
-#: commands/opclasscmds.c:1168
+#: commands/opclasscmds.c:1164
 #, c-format
 msgid "btree comparison procedures must have two arguments"
 msgstr "B树比较过程必须有两个参数"
 
-#: commands/opclasscmds.c:1172
+#: commands/opclasscmds.c:1168
 #, c-format
 msgid "btree comparison procedures must return integer"
 msgstr "B树比较过程必须返回整数"
 
-#: commands/opclasscmds.c:1189
+#: commands/opclasscmds.c:1185
 #, c-format
 msgid "btree sort support procedures must accept type \"internal\""
 msgstr "B树排序支持过程必须接受\"internal\"类型"
 
-#: commands/opclasscmds.c:1193
+#: commands/opclasscmds.c:1189
 #, c-format
 msgid "btree sort support procedures must return void"
 msgstr "B树排序支持过程必须返回void"
 
-#: commands/opclasscmds.c:1205
+#: commands/opclasscmds.c:1201
 #, c-format
 msgid "hash procedures must have one argument"
 msgstr "哈希存储过程必须有一个参数"
 
-#: commands/opclasscmds.c:1209
+#: commands/opclasscmds.c:1205
 #, c-format
 msgid "hash procedures must return integer"
 msgstr "哈希存储过程必须返回整数"
 
-#: commands/opclasscmds.c:1233
+#: commands/opclasscmds.c:1229
 #, c-format
 msgid "associated data types must be specified for index support procedure"
 msgstr "必须为索引支持的存储过程指定相关联的数据类型"
 
-#: commands/opclasscmds.c:1258
+#: commands/opclasscmds.c:1254
 #, c-format
 msgid "procedure number %d for (%s,%s) appears more than once"
 msgstr "对于(%2$s,%3$s)的存储过程号%1$d出现了多次 "
 
-#: commands/opclasscmds.c:1265
+#: commands/opclasscmds.c:1261
 #, c-format
 msgid "operator number %d for (%s,%s) appears more than once"
 msgstr "对于(%2$s,%3$s)操作符号%1$d出现过多次"
 
-#: commands/opclasscmds.c:1314
+#: commands/opclasscmds.c:1310
 #, c-format
 msgid "operator %d(%s,%s) already exists in operator family \"%s\""
 msgstr "在操作符表\"%4$s\"中已存在操作符 %1$d(%2$s,%3$s)"
 
-#: commands/opclasscmds.c:1430
+#: commands/opclasscmds.c:1426
 #, c-format
 msgid "function %d(%s,%s) already exists in operator family \"%s\""
 msgstr "在操作符表\"%4$s\"中已存在函数 %1$d(%2$s,%3$s)"
 
-#: commands/opclasscmds.c:1520
+#: commands/opclasscmds.c:1516
 #, c-format
 msgid "operator %d(%s,%s) does not exist in operator family \"%s\""
 msgstr "在操作符表\"%4$s\"中不存在操作符 %1$d(%2$s,%3$s)"
 
-#: commands/opclasscmds.c:1560
+#: commands/opclasscmds.c:1556
 #, c-format
 msgid "function %d(%s,%s) does not exist in operator family \"%s\""
 msgstr "在操作符表\"%4$s\"中不存在函数 %1$d(%2$s,%3$s)"
 
-#: commands/opclasscmds.c:1705
+#: commands/opclasscmds.c:1686
 #, c-format
 msgid ""
 "operator class \"%s\" for access method \"%s\" already exists in schema \"%s"
 "\""
 msgstr "访问方法 \"%s\" 的操作符表 \"%s\" 已经在模式 \"%s\" 存在了"
 
-#: commands/opclasscmds.c:1728
+#: commands/opclasscmds.c:1709
 #, c-format
 msgid ""
 "operator family \"%s\" for access method \"%s\" already exists in schema \"%s"
 "\""
 msgstr "对于访问方法 \"%2$s\" 的操作符表 \"%1$s\" 已经在模式 \"%3$s\" 存在了"
 
-#: commands/operatorcmds.c:109 commands/operatorcmds.c:117
+#: commands/operatorcmds.c:114 commands/operatorcmds.c:122
 #, c-format
 msgid "SETOF type not allowed for operator argument"
 msgstr "不允许将SETOF类型用于操作符参数"
 
-#: commands/operatorcmds.c:145
+#: commands/operatorcmds.c:152 commands/operatorcmds.c:457
 #, c-format
 msgid "operator attribute \"%s\" not recognized"
 msgstr "操作符属性 \"%s\" 不被认可"
 
-#: commands/operatorcmds.c:155
+#: commands/operatorcmds.c:163
 #, c-format
 msgid "operator procedure must be specified"
 msgstr "必须指定操作符过程"
 
-#: commands/operatorcmds.c:166
+#: commands/operatorcmds.c:174
 #, c-format
 msgid "at least one of leftarg or rightarg must be specified"
 msgstr "必须至少指定一个左参数 (leftarg) 或右参数 (rightarg)"
 
-#: commands/operatorcmds.c:234
+#: commands/operatorcmds.c:278
+#, c-format
+#| msgid "restriction estimator function %s must return type \"float8\""
+msgid "restriction estimator function %s must return type %s"
+msgstr "限制估算器函数 %s 必需返回类型 %s"
+
+#: commands/operatorcmds.c:324
 #, c-format
-msgid "restriction estimator function %s must return type \"float8\""
-msgstr "限制估算函数 %s 必需返回类型\"float8\""
+#| msgid "join estimator function %s must return type \"float8\""
+msgid "join estimator function %s must return type %s"
+msgstr "连接估算器函数 %s 必需返回类型 %s"
 
-#: commands/operatorcmds.c:273
+#: commands/operatorcmds.c:451
 #, c-format
-msgid "join estimator function %s must return type \"float8\""
-msgstr "连接估算函数 %s 必需返回类型\"float8\""
+#| msgid "operator attribute \"%s\" not recognized"
+msgid "operator attribute \"%s\" can not be changed"
+msgstr "操作符属性 \"%s\" 不能被更改"
 
-#: commands/policy.c:87 commands/policy.c:387 commands/tablecmds.c:965
-#: commands/tablecmds.c:1307 commands/tablecmds.c:2175
-#: commands/tablecmds.c:4319 commands/tablecmds.c:6248
-#: commands/tablecmds.c:11867 commands/tablecmds.c:11902
-#: commands/trigger.c:240 commands/trigger.c:1126 commands/trigger.c:1234
-#: rewrite/rewriteDefine.c:273 rewrite/rewriteDefine.c:905
+#: commands/policy.c:87 commands/policy.c:395 commands/policy.c:484
+#: commands/tablecmds.c:970 commands/tablecmds.c:1312
+#: commands/tablecmds.c:2184 commands/tablecmds.c:4330
+#: commands/tablecmds.c:6281 commands/tablecmds.c:11935
+#: commands/tablecmds.c:11970 commands/trigger.c:241 commands/trigger.c:1125
+#: commands/trigger.c:1233 rewrite/rewriteDefine.c:273
+#: rewrite/rewriteDefine.c:917
 #, c-format
 msgid "permission denied: \"%s\" is a system catalog"
 msgstr "权限不够: \"%s\" 是一个系统表"
 
 #: commands/policy.c:170
 #, c-format
-#| msgid "storage type specified more than once"
-msgid "ignoring roles specified other than public"
-msgstr "忽略所指定的除public之外的角色"
+#| msgid "ignoring roles specified other than public"
+msgid "ignoring specified roles other than PUBLIC"
+msgstr "忽略所指定的除 PUBLIC 之外的角色"
 
 #: commands/policy.c:171
 #, c-format
-msgid "All roles are members of the public role."
-msgstr "所有角色都是公共角色的成员。"
+#| msgid "All roles are members of the public role."
+msgid "All roles are members of the PUBLIC role."
+msgstr "所有角色都是 PUBLIC 角色的成员。"
+
+#: commands/policy.c:508
+#, c-format
+#| msgid "File \"%s\" could not be renamed to \"%s\": %m."
+msgid "role \"%s\" could not be removed from policy \"%s\" on \"%s\""
+msgstr "不能从 \"%3$s\" 上的策略 \"%2$s\" 中移除角色 \"%1$s\""
 
-#: commands/policy.c:451
+#: commands/policy.c:717
 #, c-format
-#| msgid "%s cannot be applied to VALUES"
 msgid "WITH CHECK cannot be applied to SELECT or DELETE"
 msgstr "不能把WITH CHECK应用到SELECT或者DELETE"
 
-#: commands/policy.c:460 commands/policy.c:760
+#: commands/policy.c:726 commands/policy.c:1026
 #, c-format
 msgid "only WITH CHECK expression allowed for INSERT"
 msgstr "对INSERT只允许WITH CHECK表达式"
 
-#: commands/policy.c:533 commands/policy.c:886
+#: commands/policy.c:799 commands/policy.c:1249
 #, c-format
-#| msgid "collation \"%s\" for encoding \"%s\" already exists"
 msgid "policy \"%s\" for table \"%s\" already exists"
 msgstr "用于表\"%2$s\"的策略\"%1$s\"已经存在"
 
-#: commands/policy.c:732 commands/policy.c:914 commands/policy.c:989
+#: commands/policy.c:998 commands/policy.c:1277 commands/policy.c:1352
 #, c-format
-#| msgid "index \"%s\" for table \"%s\" does not exist"
 msgid "policy \"%s\" for table \"%s\" does not exist"
 msgstr "用于表\"%2$s\"的策略\"%1$s\"不存在"
 
-#: commands/policy.c:750
+#: commands/policy.c:1016
 #, c-format
 msgid "only USING expression allowed for SELECT, DELETE"
 msgstr "对SELECT、DELETE只允许USING表达式"
@@ -7350,17 +7843,12 @@ msgstr "无效的游标名称: 不能为空"
 msgid "cursor \"%s\" does not exist"
 msgstr "游标 \"%s\" 不存在"
 
-#: commands/portalcmds.c:407
-#, c-format
-msgid "could not reposition held cursor"
-msgstr "无法定位游标"
-
 #: commands/prepare.c:71
 #, c-format
 msgid "invalid statement name: must not be empty"
 msgstr "无效的语句名称: 不能为空"
 
-#: commands/prepare.c:129 parser/parse_param.c:304 tcop/postgres.c:1355
+#: commands/prepare.c:129 parser/parse_param.c:304 tcop/postgres.c:1345
 #, c-format
 msgid "could not determine data type of parameter $%d"
 msgstr "无法确定参数 $%d 的数据类型"
@@ -7390,12 +7878,12 @@ msgstr "预计 %d 个参数, 但得到了 %d 个."
 msgid "parameter $%d of type %s cannot be coerced to the expected type %s"
 msgstr "类型 %2$s 的参数 $%1$d 不能强制到预计 (expected) 类型 %3$s"
 
-#: commands/prepare.c:464
+#: commands/prepare.c:465
 #, c-format
 msgid "prepared statement \"%s\" already exists"
 msgstr "准备好的语句 \"%s\" 已经存在"
 
-#: commands/prepare.c:503
+#: commands/prepare.c:504
 #, c-format
 msgid "prepared statement \"%s\" does not exist"
 msgstr "准备好的语句 \"%s\" 不存在"
@@ -7410,43 +7898,38 @@ msgstr "使用pg_pltemplate信息,而不是CREATE LANGUAGE的参数"
 msgid "must be superuser to create procedural language \"%s\""
 msgstr "只有有超级用户权限的用户才能创建过程语言\"%s\""
 
-#: commands/proclang.c:117 commands/proclang.c:285
-#, c-format
-msgid "function %s must return type \"language_handler\""
-msgstr "函数 %s 必须返回 \"language_handler\" 类型"
-
-#: commands/proclang.c:249
+#: commands/proclang.c:252
 #, c-format
 msgid "unsupported language \"%s\""
 msgstr "不支持语言 \"%s\""
 
-#: commands/proclang.c:251
+#: commands/proclang.c:254
 #, c-format
 msgid "The supported languages are listed in the pg_pltemplate system catalog."
 msgstr "在pg_pltemplate系统目录视图中列出了所支持的语言."
 
-#: commands/proclang.c:259
+#: commands/proclang.c:262
 #, c-format
 msgid "must be superuser to create custom procedural language"
 msgstr "只有有超级用户权限的用户才能创建过程语言"
 
-#: commands/proclang.c:278
+#: commands/proclang.c:281
 #, c-format
 msgid ""
 "changing return type of function %s from \"opaque\" to \"language_handler\""
 msgstr "函数 %s 的返回类型 \"opaque\" 改变成 \"language_handler\""
 
-#: commands/schemacmds.c:99 commands/schemacmds.c:262
+#: commands/schemacmds.c:103 commands/schemacmds.c:266
 #, c-format
 msgid "unacceptable schema name \"%s\""
 msgstr "不可访问的模式名字 \"%s\""
 
-#: commands/schemacmds.c:100 commands/schemacmds.c:263
+#: commands/schemacmds.c:104 commands/schemacmds.c:267
 #, c-format
 msgid "The prefix \"pg_\" is reserved for system schemas."
 msgstr "前缀 \"pg_\" 是保留给系统模式的."
 
-#: commands/schemacmds.c:114
+#: commands/schemacmds.c:118
 #, c-format
 msgid "schema \"%s\" already exists, skipping"
 msgstr "模式 \"%s\" 已存在, 跳过"
@@ -7557,936 +8040,941 @@ msgstr "序列的属主必须和与它相链接的表的属主相同."
 msgid "sequence must be in same schema as table it is linked to"
 msgstr "序列必须和与它相链接的表存放在同一个模式"
 
-#: commands/tablecmds.c:212
+#: commands/tablecmds.c:215
 #, c-format
 msgid "table \"%s\" does not exist"
 msgstr "表 \"%s\" 不存在"
 
-#: commands/tablecmds.c:213
+#: commands/tablecmds.c:216
 #, c-format
 msgid "table \"%s\" does not exist, skipping"
 msgstr "表 \"%s\" 不存在"
 
-#: commands/tablecmds.c:215
+#: commands/tablecmds.c:218
 msgid "Use DROP TABLE to remove a table."
 msgstr "请使用 DROP TABLE 删除一个表."
 
-#: commands/tablecmds.c:218
+#: commands/tablecmds.c:221
 #, c-format
 msgid "sequence \"%s\" does not exist"
 msgstr "序列 \"%s\" 不存在"
 
-#: commands/tablecmds.c:219
+#: commands/tablecmds.c:222
 #, c-format
 msgid "sequence \"%s\" does not exist, skipping"
 msgstr "序列 \"%s\" 不存在"
 
-#: commands/tablecmds.c:221
+#: commands/tablecmds.c:224
 msgid "Use DROP SEQUENCE to remove a sequence."
 msgstr "请使用 DROP SEQUENCE 删除一个序列."
 
-#: commands/tablecmds.c:224
+#: commands/tablecmds.c:227
 #, c-format
 msgid "view \"%s\" does not exist"
 msgstr "视图 \"%s\" 不存在"
 
-#: commands/tablecmds.c:225
+#: commands/tablecmds.c:228
 #, c-format
 msgid "view \"%s\" does not exist, skipping"
 msgstr "视图 \"%s\" 不存在"
 
-#: commands/tablecmds.c:227
+#: commands/tablecmds.c:230
 msgid "Use DROP VIEW to remove a view."
 msgstr "请使用 DROP VIEW 删除一个视图."
 
-#: commands/tablecmds.c:230
+#: commands/tablecmds.c:233
 #, c-format
 msgid "materialized view \"%s\" does not exist"
 msgstr "物化视图 \"%s\" 不存在"
 
-#: commands/tablecmds.c:231
+#: commands/tablecmds.c:234
 #, c-format
 msgid "materialized view \"%s\" does not exist, skipping"
 msgstr "物化视图 \"%s\" 不存在,跳过"
 
-#: commands/tablecmds.c:233
+#: commands/tablecmds.c:236
 msgid "Use DROP MATERIALIZED VIEW to remove a materialized view."
 msgstr "请使用 DROP MATERIALIZED VIEW 删除一个物化视图."
 
-#: commands/tablecmds.c:236 parser/parse_utilcmd.c:1593
+#: commands/tablecmds.c:239 parser/parse_utilcmd.c:1643
 #, c-format
 msgid "index \"%s\" does not exist"
 msgstr "索引 \"%s\" 不存在"
 
-#: commands/tablecmds.c:237
+#: commands/tablecmds.c:240
 #, c-format
 msgid "index \"%s\" does not exist, skipping"
 msgstr "索引 \"%s\" 不存在"
 
-#: commands/tablecmds.c:239
+#: commands/tablecmds.c:242
 msgid "Use DROP INDEX to remove an index."
 msgstr "请使用 DROP INDEX 删除一个索引."
 
-#: commands/tablecmds.c:244
+#: commands/tablecmds.c:247
 #, c-format
 msgid "\"%s\" is not a type"
 msgstr "\"%s\" 不是一个类型"
 
-#: commands/tablecmds.c:245
+#: commands/tablecmds.c:248
 msgid "Use DROP TYPE to remove a type."
 msgstr "请使用 DROP TYPE 删除一个类型."
 
-#: commands/tablecmds.c:248 commands/tablecmds.c:8455
-#: commands/tablecmds.c:11134
+#: commands/tablecmds.c:251 commands/tablecmds.c:8488
+#: commands/tablecmds.c:11196
 #, c-format
 msgid "foreign table \"%s\" does not exist"
 msgstr "外部表 \"%s\" 不存在"
 
-#: commands/tablecmds.c:249
+#: commands/tablecmds.c:252
 #, c-format
 msgid "foreign table \"%s\" does not exist, skipping"
 msgstr "外部表 \"%s\" 不存在, 跳过"
 
-#: commands/tablecmds.c:251
+#: commands/tablecmds.c:254
 msgid "Use DROP FOREIGN TABLE to remove a foreign table."
 msgstr "请使用 DROP FOREIGN TABLE 删除一个外部表."
 
-#: commands/tablecmds.c:488
+#: commands/tablecmds.c:493
 #, c-format
 msgid "ON COMMIT can only be used on temporary tables"
 msgstr "ON COMMIT 只能被用于临时表"
 
-#: commands/tablecmds.c:508
+#: commands/tablecmds.c:513
 #, c-format
 msgid "cannot create temporary table within security-restricted operation"
 msgstr "不能在安全限制的操作中创建临时表"
 
-#: commands/tablecmds.c:816
+#: commands/tablecmds.c:821
 #, c-format
 msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects"
 msgstr "DROP INDEX CONCURRENTLY不支持同时删除多个对象"
 
-#: commands/tablecmds.c:820
+#: commands/tablecmds.c:825
 #, c-format
 msgid "DROP INDEX CONCURRENTLY does not support CASCADE"
 msgstr "DROP INDEX CONCURRENTLY 不支持级联操作"
 
-#: commands/tablecmds.c:1079
+#: commands/tablecmds.c:1084
 #, c-format
 msgid "truncate cascades to table \"%s\""
 msgstr "级联截断表\"%s\""
 
-#: commands/tablecmds.c:1317
+#: commands/tablecmds.c:1322
 #, c-format
 msgid "cannot truncate temporary tables of other sessions"
 msgstr "不能缩短其他会话的临时表"
 
-#: commands/tablecmds.c:1523 parser/parse_utilcmd.c:1807
+#: commands/tablecmds.c:1528 parser/parse_utilcmd.c:1857
 #, c-format
-#| msgid "referenced relation \"%s\" is not a table or foreign table"
 msgid "inherited relation \"%s\" is not a table or foreign table"
 msgstr "被继承的关系\"%s\" 不是一个表或外部表"
 
-#: commands/tablecmds.c:1530 commands/tablecmds.c:10004
+#: commands/tablecmds.c:1535 commands/tablecmds.c:10055
 #, c-format
 msgid "cannot inherit from temporary relation \"%s\""
 msgstr "不能从临时关系 \"%s\" 继承"
 
-#: commands/tablecmds.c:1538 commands/tablecmds.c:10012
+#: commands/tablecmds.c:1543 commands/tablecmds.c:10063
 #, c-format
 msgid "cannot inherit from temporary relation of another session"
 msgstr "不能从另一个会话的临时关系继承"
 
-#: commands/tablecmds.c:1554 commands/tablecmds.c:10046
+#: commands/tablecmds.c:1559 commands/tablecmds.c:10097
 #, c-format
 msgid "relation \"%s\" would be inherited from more than once"
 msgstr "关系 \"%s\" 将被继承多次"
 
-#: commands/tablecmds.c:1602
+#: commands/tablecmds.c:1607
 #, c-format
 msgid "merging multiple inherited definitions of column \"%s\""
 msgstr "合并属性 \"%s\" 的多个继承定义"
 
-#: commands/tablecmds.c:1610
+#: commands/tablecmds.c:1615
 #, c-format
 msgid "inherited column \"%s\" has a type conflict"
 msgstr "继承属性 \"%s\" 类型冲突"
 
-#: commands/tablecmds.c:1612 commands/tablecmds.c:1633
-#: commands/tablecmds.c:1831 commands/tablecmds.c:1853
-#: parser/parse_coerce.c:1592 parser/parse_coerce.c:1612
-#: parser/parse_coerce.c:1632 parser/parse_coerce.c:1677
-#: parser/parse_coerce.c:1714 parser/parse_param.c:218
+#: commands/tablecmds.c:1617 commands/tablecmds.c:1640
+#: commands/tablecmds.c:1838 commands/tablecmds.c:1862
+#: parser/parse_coerce.c:1630 parser/parse_coerce.c:1650
+#: parser/parse_coerce.c:1670 parser/parse_coerce.c:1715
+#: parser/parse_coerce.c:1752 parser/parse_param.c:218
 #, c-format
 msgid "%s versus %s"
 msgstr "%s 对 %s"
 
-#: commands/tablecmds.c:1619
+#: commands/tablecmds.c:1626
 #, c-format
 msgid "inherited column \"%s\" has a collation conflict"
 msgstr "继承列 \"%s\" 出现排序规则冲突"
 
-#: commands/tablecmds.c:1621 commands/tablecmds.c:1841
-#: commands/tablecmds.c:4756
+#: commands/tablecmds.c:1628 commands/tablecmds.c:1850
+#: commands/tablecmds.c:4768
 #, c-format
 msgid "\"%s\" versus \"%s\""
 msgstr "\"%s\" 对 \"%s\""
 
-#: commands/tablecmds.c:1631
+#: commands/tablecmds.c:1638
 #, c-format
 msgid "inherited column \"%s\" has a storage parameter conflict"
 msgstr "继承列 \"%s\" 有一个存储参数冲突"
 
-#: commands/tablecmds.c:1744 parser/parse_utilcmd.c:894
-#: parser/parse_utilcmd.c:1238 parser/parse_utilcmd.c:1314
+#: commands/tablecmds.c:1751 parser/parse_utilcmd.c:938
+#: parser/parse_utilcmd.c:1287 parser/parse_utilcmd.c:1363
 #, c-format
 msgid "cannot convert whole-row table reference"
 msgstr "无法转换整行表引用"
 
-#: commands/tablecmds.c:1745 parser/parse_utilcmd.c:895
+#: commands/tablecmds.c:1752 parser/parse_utilcmd.c:939
 #, c-format
 msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"."
 msgstr "约束\"%s\"包含到表\"%s\"的整行引用."
 
-#: commands/tablecmds.c:1817
+#: commands/tablecmds.c:1824
 #, c-format
 msgid "merging column \"%s\" with inherited definition"
 msgstr "合并属性 \"%s\" 连同继承定义"
 
-#: commands/tablecmds.c:1821
+#: commands/tablecmds.c:1828
 #, c-format
-#| msgid "merging column \"%s\" with inherited definition"
 msgid "moving and merging column \"%s\" with inherited definition"
 msgstr "移动\"%s\"并且将它与继承的定义合并"
 
-#: commands/tablecmds.c:1822
+#: commands/tablecmds.c:1829
 #, c-format
 msgid "User-specified column moved to the position of the inherited column."
 msgstr "被移动到继承列位置的用户指定列。"
 
-#: commands/tablecmds.c:1829
+#: commands/tablecmds.c:1836
 #, c-format
 msgid "column \"%s\" has a type conflict"
 msgstr "属性 \"%s\" 类型冲突"
 
-#: commands/tablecmds.c:1839
+#: commands/tablecmds.c:1848
 #, c-format
 msgid "column \"%s\" has a collation conflict"
 msgstr "列 \"%s\" 出现排序规则冲突"
 
-#: commands/tablecmds.c:1851
+#: commands/tablecmds.c:1860
 #, c-format
 msgid "column \"%s\" has a storage parameter conflict"
 msgstr "列 \"%s\" 带有一个冲突的存储参数"
 
-#: commands/tablecmds.c:1903
+#: commands/tablecmds.c:1912
 #, c-format
 msgid "column \"%s\" inherits conflicting default values"
 msgstr "属性 \"%s\" 继承与默认值冲突"
 
-#: commands/tablecmds.c:1905
+#: commands/tablecmds.c:1914
 #, c-format
 msgid "To resolve the conflict, specify a default explicitly."
 msgstr "要解决冲突, 指定明确的默认值"
 
-#: commands/tablecmds.c:1952
+#: commands/tablecmds.c:1961
 #, c-format
 msgid ""
 "check constraint name \"%s\" appears multiple times but with different "
 "expressions"
 msgstr "检查约束名称\"%s\"出现多次,但是带有不同的表达式"
 
-#: commands/tablecmds.c:2146
+#: commands/tablecmds.c:2155
 #, c-format
 msgid "cannot rename column of typed table"
 msgstr "无法重新命名已确定类型表(typed table)的列"
 
-#: commands/tablecmds.c:2163
+#: commands/tablecmds.c:2172
 #, c-format
 msgid ""
 "\"%s\" is not a table, view, materialized view, composite type, index, or "
 "foreign table"
 msgstr "\"%s\" 不是一个表,视图,物化视图,组合类型,索引或者外部表"
 
-#: commands/tablecmds.c:2257
+#: commands/tablecmds.c:2266
 #, c-format
 msgid "inherited column \"%s\" must be renamed in child tables too"
 msgstr "在子表中继承属性 \"%s\" 也必需重命名"
 
-#: commands/tablecmds.c:2289
+#: commands/tablecmds.c:2298
 #, c-format
 msgid "cannot rename system column \"%s\""
 msgstr "不能对系统字段 \"%s\" 重命名"
 
-#: commands/tablecmds.c:2304
+#: commands/tablecmds.c:2313
 #, c-format
 msgid "cannot rename inherited column \"%s\""
 msgstr "不能对继承字段 \"%s\" 重命名"
 
-#: commands/tablecmds.c:2459
+#: commands/tablecmds.c:2468
 #, c-format
 msgid "inherited constraint \"%s\" must be renamed in child tables too"
 msgstr "继承约束 \"%s\" 在子表中也必须重命名"
 
-#: commands/tablecmds.c:2466
+#: commands/tablecmds.c:2475
 #, c-format
 msgid "cannot rename inherited constraint \"%s\""
 msgstr "无法重命名约束\"%s\""
 
 #. translator: first %s is a SQL command, eg ALTER TABLE
-#: commands/tablecmds.c:2692
+#: commands/tablecmds.c:2701
 #, c-format
 msgid ""
 "cannot %s \"%s\" because it is being used by active queries in this session"
 msgstr "无法%s \"%s\"  因为它正在被这个会话中的活动查询使用"
 
 #. translator: first %s is a SQL command, eg ALTER TABLE
-#: commands/tablecmds.c:2701
+#: commands/tablecmds.c:2710
 #, c-format
 msgid "cannot %s \"%s\" because it has pending trigger events"
 msgstr "无法%s \"%s\"因为它有一个待发生的触发器事件"
 
-#: commands/tablecmds.c:3775
+#: commands/tablecmds.c:3786
 #, c-format
 msgid "cannot rewrite system relation \"%s\""
 msgstr "不能改写系统关系 \"%s\""
 
-#: commands/tablecmds.c:3781
+#: commands/tablecmds.c:3792
 #, c-format
 msgid "cannot rewrite table \"%s\" used as a catalog table"
 msgstr "无法重写表\"%s\",以用作一个目录表"
 
-#: commands/tablecmds.c:3791
+#: commands/tablecmds.c:3802
 #, c-format
 msgid "cannot rewrite temporary tables of other sessions"
 msgstr "不能改写其他会话的临时表"
 
-#: commands/tablecmds.c:4059
+#: commands/tablecmds.c:4070
 #, c-format
 msgid "rewriting table \"%s\""
 msgstr "重写表 \"%s\""
 
-#: commands/tablecmds.c:4063
+#: commands/tablecmds.c:4074
 #, c-format
 msgid "verifying table \"%s\""
 msgstr "校验表\"%s\""
 
-#: commands/tablecmds.c:4177
+#: commands/tablecmds.c:4188
 #, c-format
 msgid "column \"%s\" contains null values"
 msgstr "字段 \"%s\" 包含空值"
 
-#: commands/tablecmds.c:4192 commands/tablecmds.c:7335
+#: commands/tablecmds.c:4203 commands/tablecmds.c:7368
 #, c-format
 msgid "check constraint \"%s\" is violated by some row"
 msgstr "一些行违反了检查约束 \"%s\""
 
-#: commands/tablecmds.c:4340 commands/trigger.c:234
-#: rewrite/rewriteDefine.c:267 rewrite/rewriteDefine.c:900
+#: commands/tablecmds.c:4351 commands/trigger.c:235
+#: rewrite/rewriteDefine.c:267 rewrite/rewriteDefine.c:912
 #, c-format
 msgid "\"%s\" is not a table or view"
 msgstr "\"%s\" 不是一个视图或视图"
 
-#: commands/tablecmds.c:4343 commands/trigger.c:1120 commands/trigger.c:1225
+#: commands/tablecmds.c:4354 commands/trigger.c:1119 commands/trigger.c:1224
 #, c-format
 msgid "\"%s\" is not a table, view, or foreign table"
 msgstr "\"%s\"不是表,视图或外部表"
 
-#: commands/tablecmds.c:4346
+#: commands/tablecmds.c:4357
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, or index"
 msgstr "\"%s\" 不是表,视图,物化视图,或者索引"
 
-#: commands/tablecmds.c:4352
+#: commands/tablecmds.c:4363
 #, c-format
 msgid "\"%s\" is not a table, materialized view, or index"
 msgstr "\"%s\" 不是一个表,物化视图或索引"
 
-#: commands/tablecmds.c:4355
+#: commands/tablecmds.c:4366
 #, c-format
-#| msgid "\"%s\" is not a table, materialized view, index, or foreign table"
 msgid "\"%s\" is not a table, materialized view, or foreign table"
 msgstr "\"%s\"不是表、物化视图或者外部表"
 
-#: commands/tablecmds.c:4358
+#: commands/tablecmds.c:4369
 #, c-format
 msgid "\"%s\" is not a table or foreign table"
 msgstr "\"%s\" 不是表或外部表"
 
-#: commands/tablecmds.c:4361
+#: commands/tablecmds.c:4372
 #, c-format
 msgid "\"%s\" is not a table, composite type, or foreign table"
 msgstr "\"%s\" 不是一个表,组合类型或者外部表"
 
-#: commands/tablecmds.c:4364 commands/tablecmds.c:5394
+#: commands/tablecmds.c:4375 commands/tablecmds.c:5427
 #, c-format
 msgid "\"%s\" is not a table, materialized view, index, or foreign table"
 msgstr "\"%s\"不是表,物化视图, 索引或外部表"
 
-#: commands/tablecmds.c:4374
+#: commands/tablecmds.c:4385
 #, c-format
 msgid "\"%s\" is of the wrong type"
 msgstr "\"%s\" 是一个错误类型"
 
-#: commands/tablecmds.c:4526 commands/tablecmds.c:4533
+#: commands/tablecmds.c:4537 commands/tablecmds.c:4544
 #, c-format
 msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it"
 msgstr "不能修改类型 \"%s\", 因为列 \"%s.%s\"正在使用它"
 
-#: commands/tablecmds.c:4540
+#: commands/tablecmds.c:4551
 #, c-format
 msgid ""
 "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type"
 msgstr "无法修改外部表\"%s\" ,因为列\"%s.%s\"使用它的行类型"
 
-#: commands/tablecmds.c:4547
+#: commands/tablecmds.c:4558
 #, c-format
 msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type"
 msgstr "无法修改表\"%s\" ,因为列\"%s.%s\"使用它的行类型"
 
-#: commands/tablecmds.c:4609
+#: commands/tablecmds.c:4620
 #, c-format
 msgid "cannot alter type \"%s\" because it is the type of a typed table"
 msgstr "无法修改已确定类型表(typed table)中列的类型\"%s\""
 
-#: commands/tablecmds.c:4611
+#: commands/tablecmds.c:4622
 #, c-format
 msgid "Use ALTER ... CASCADE to alter the typed tables too."
 msgstr "使用ALTER .. CASCADE 把类型表一并修改."
 
-#: commands/tablecmds.c:4655
+#: commands/tablecmds.c:4666
 #, c-format
 msgid "type %s is not a composite type"
 msgstr "类型 %s 不是复合类型"
 
-#: commands/tablecmds.c:4681
+#: commands/tablecmds.c:4692
 #, c-format
 msgid "cannot add column to typed table"
 msgstr "无法为已确定类型表(typed table)添加列"
 
-#: commands/tablecmds.c:4748 commands/tablecmds.c:10205
+#: commands/tablecmds.c:4760 commands/tablecmds.c:10256
 #, c-format
 msgid "child table \"%s\" has different type for column \"%s\""
 msgstr "子表 \"%s\" 的字段 \"%s\" 有不同的类型"
 
-#: commands/tablecmds.c:4754 commands/tablecmds.c:10212
+#: commands/tablecmds.c:4766 commands/tablecmds.c:10263
 #, c-format
 msgid "child table \"%s\" has different collation for column \"%s\""
 msgstr "子表 \"%s\" 的字段 \"%s\" 有不同的排序规则"
 
-#: commands/tablecmds.c:4764
+#: commands/tablecmds.c:4776
 #, c-format
 msgid "child table \"%s\" has a conflicting \"%s\" column"
 msgstr "子表\"%s\"有一个冲突列\"%s\""
 
-#: commands/tablecmds.c:4776
+#: commands/tablecmds.c:4788
 #, c-format
 msgid "merging definition of column \"%s\" for child \"%s\""
 msgstr "合并子表 \"%2$s\" 的字段 \"%1$s\" 定义"
 
-#: commands/tablecmds.c:4997
+#: commands/tablecmds.c:5015
 #, c-format
 msgid "column must be added to child tables too"
 msgstr "属性也必需加入到子表中"
 
-#: commands/tablecmds.c:5067
+#: commands/tablecmds.c:5090
+#, c-format
+#| msgid "column \"%s\" of relation \"%s\" already exists"
+msgid "column \"%s\" of relation \"%s\" already exists, skipping"
+msgstr "关系 \"%2$s\" 的列 \"%1$s\" 已经存在,跳过"
+
+#: commands/tablecmds.c:5097
 #, c-format
 msgid "column \"%s\" of relation \"%s\" already exists"
 msgstr "关系 \"%s\" 的属性 \"%s\" 已经存在"
 
-#: commands/tablecmds.c:5175 commands/tablecmds.c:5281
-#: commands/tablecmds.c:5339 commands/tablecmds.c:5453
-#: commands/tablecmds.c:5510 commands/tablecmds.c:5604
-#: commands/tablecmds.c:7853 commands/tablecmds.c:8478
+#: commands/tablecmds.c:5208 commands/tablecmds.c:5314
+#: commands/tablecmds.c:5372 commands/tablecmds.c:5486
+#: commands/tablecmds.c:5543 commands/tablecmds.c:5637
+#: commands/tablecmds.c:7886 commands/tablecmds.c:8511
 #, c-format
 msgid "cannot alter system column \"%s\""
 msgstr "不能更改系统字段 \"%s\""
 
-#: commands/tablecmds.c:5211
+#: commands/tablecmds.c:5244
 #, c-format
 msgid "column \"%s\" is in a primary key"
 msgstr "字段 \"%s\" 是一个主键"
 
-#: commands/tablecmds.c:5426
+#: commands/tablecmds.c:5459
 #, c-format
 msgid "statistics target %d is too low"
 msgstr "目标统计 %d 太低"
 
-#: commands/tablecmds.c:5434
+#: commands/tablecmds.c:5467
 #, c-format
 msgid "lowering statistics target to %d"
 msgstr "降低目标统计到 %d"
 
-#: commands/tablecmds.c:5584
+#: commands/tablecmds.c:5617
 #, c-format
 msgid "invalid storage type \"%s\""
 msgstr "无效存储类型 \"%s\""
 
-#: commands/tablecmds.c:5616
+#: commands/tablecmds.c:5649
 #, c-format
 msgid "column data type %s can only have storage PLAIN"
 msgstr "字段数据类型 %s 只能存储为明文 (PLAIN)"
 
-#: commands/tablecmds.c:5654
+#: commands/tablecmds.c:5687
 #, c-format
 msgid "cannot drop column from typed table"
 msgstr "无法从已确定类型表(typed table)中删除列"
 
-#: commands/tablecmds.c:5698
+#: commands/tablecmds.c:5731
 #, c-format
 msgid "column \"%s\" of relation \"%s\" does not exist, skipping"
 msgstr "关系 \"%2$s\" 的 列\"%1$s\"不存在"
 
-#: commands/tablecmds.c:5711
+#: commands/tablecmds.c:5744
 #, c-format
 msgid "cannot drop system column \"%s\""
 msgstr "不能删除系统字段 \"%s\""
 
-#: commands/tablecmds.c:5718
+#: commands/tablecmds.c:5751
 #, c-format
 msgid "cannot drop inherited column \"%s\""
 msgstr "不能删除继承字段 \"%s\""
 
-#: commands/tablecmds.c:5958
+#: commands/tablecmds.c:5991
 #, c-format
 msgid ""
 "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\""
 msgstr ""
 "ALTER TABLE / ADD CONSTRAINT USING INDEX 会把索引 \"%s\" 重命名为 \"%s\""
 
-#: commands/tablecmds.c:6171
+#: commands/tablecmds.c:6204
 #, c-format
 msgid "constraint must be added to child tables too"
 msgstr "必须也要对子表加上约束"
 
-#: commands/tablecmds.c:6242
+#: commands/tablecmds.c:6275
 #, c-format
 msgid "referenced relation \"%s\" is not a table"
 msgstr "关联的关系 \"%s\" 不是一个表"
 
-#: commands/tablecmds.c:6265
+#: commands/tablecmds.c:6298
 #, c-format
 msgid "constraints on permanent tables may reference only permanent tables"
 msgstr "永久表上的约束只能引用永久表"
 
-#: commands/tablecmds.c:6272
+#: commands/tablecmds.c:6305
 #, c-format
 msgid ""
 "constraints on unlogged tables may reference only permanent or unlogged "
 "tables"
 msgstr "无事务日志的表上的约束只能引用持久表或者无事务日志的表"
 
-#: commands/tablecmds.c:6278
+#: commands/tablecmds.c:6311
 #, c-format
 msgid "constraints on temporary tables may reference only temporary tables"
 msgstr "临时表上的约束只能引用临时表"
 
-#: commands/tablecmds.c:6282
+#: commands/tablecmds.c:6315
 #, c-format
 msgid ""
 "constraints on temporary tables must involve temporary tables of this session"
 msgstr "临时表上的约束只能引用该会话里的临时表"
 
-#: commands/tablecmds.c:6343
+#: commands/tablecmds.c:6376
 #, c-format
 msgid "number of referencing and referenced columns for foreign key disagree"
 msgstr "外键的关联数和关联字段不一致"
 
-#: commands/tablecmds.c:6450
+#: commands/tablecmds.c:6483
 #, c-format
 msgid "foreign key constraint \"%s\" cannot be implemented"
 msgstr "无法实现外键约束 \"%s\""
 
-#: commands/tablecmds.c:6453
+#: commands/tablecmds.c:6486
 #, c-format
 msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s."
 msgstr "关键字段 \"%s\" 和 \"%s\" 为混和类型: %s 和 %s."
 
-#: commands/tablecmds.c:6660 commands/tablecmds.c:6810
-#: commands/tablecmds.c:7692 commands/tablecmds.c:7748
+#: commands/tablecmds.c:6693 commands/tablecmds.c:6843
+#: commands/tablecmds.c:7725 commands/tablecmds.c:7781
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" does not exist"
 msgstr "关系 \"%2$s\" 的 约束\"%1$s\" 不存在"
 
-#: commands/tablecmds.c:6666
+#: commands/tablecmds.c:6699
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint"
 msgstr "关系 \"%2$s\" 的 约束\"%1$s\"不是外键约束"
 
-#: commands/tablecmds.c:6817
+#: commands/tablecmds.c:6850
 #, c-format
 msgid ""
 "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint"
 msgstr "关系 \"%2$s\" 的 约束\"%1$s\"不是外键,也不是check约束"
 
-#: commands/tablecmds.c:6885
+#: commands/tablecmds.c:6918
 #, c-format
 msgid "constraint must be validated on child tables too"
 msgstr "子表上的约束也必须进行验证"
 
-#: commands/tablecmds.c:6954
+#: commands/tablecmds.c:6987
 #, c-format
 msgid "column \"%s\" referenced in foreign key constraint does not exist"
 msgstr "在外键约束中的关联字段 \"%s\" 不存在"
 
-#: commands/tablecmds.c:6959
+#: commands/tablecmds.c:6992
 #, c-format
 msgid "cannot have more than %d keys in a foreign key"
 msgstr "在一个外键中不能超过 %d 个键"
 
-#: commands/tablecmds.c:7024
+#: commands/tablecmds.c:7057
 #, c-format
 msgid "cannot use a deferrable primary key for referenced table \"%s\""
 msgstr "无法为被引用的表\"%s\"使用可延迟的主键"
 
-#: commands/tablecmds.c:7041
+#: commands/tablecmds.c:7074
 #, c-format
 msgid "there is no primary key for referenced table \"%s\""
 msgstr "关联表 \"%s\" 没有主键"
 
-#: commands/tablecmds.c:7106
+#: commands/tablecmds.c:7139
 #, c-format
 msgid "foreign key referenced-columns list must not contain duplicates"
 msgstr "外键参照列的列表不能有重复值"
 
-#: commands/tablecmds.c:7200
+#: commands/tablecmds.c:7233
 #, c-format
 msgid "cannot use a deferrable unique constraint for referenced table \"%s\""
 msgstr "无法为被引用的表\"%s\"使用可延迟的唯一性约束"
 
-#: commands/tablecmds.c:7205
+#: commands/tablecmds.c:7238
 #, c-format
 msgid ""
 "there is no unique constraint matching given keys for referenced table \"%s\""
 msgstr "没有唯一约束与关联表 \"%s\" 给定的键值匹配"
 
-#: commands/tablecmds.c:7368
+#: commands/tablecmds.c:7401
 #, c-format
 msgid "validating foreign key constraint \"%s\""
 msgstr "正验证外键约束 \"%s\""
 
-#: commands/tablecmds.c:7664
+#: commands/tablecmds.c:7697
 #, c-format
 msgid "cannot drop inherited constraint \"%s\" of relation \"%s\""
 msgstr "不能删除关系\"%2$s\"的继承约束\"%1$s\""
 
-#: commands/tablecmds.c:7698
+#: commands/tablecmds.c:7731
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping"
 msgstr "关系 \"%2$s\" 的 约束\"%1$s\" 不存在"
 
-#: commands/tablecmds.c:7837
+#: commands/tablecmds.c:7870
 #, c-format
 msgid "cannot alter column type of typed table"
 msgstr "无法修改已确定类型表(typed table)中列的类型"
 
-#: commands/tablecmds.c:7860
+#: commands/tablecmds.c:7893
 #, c-format
 msgid "cannot alter inherited column \"%s\""
 msgstr "不能修改继承字段 \"%s\""
 
-#: commands/tablecmds.c:7909
+#: commands/tablecmds.c:7942
 #, c-format
-#| msgid "default for column \"%s\" cannot be cast automatically to type %s"
 msgid ""
 "result of USING clause for column \"%s\" cannot be cast automatically to "
 "type %s"
 msgstr "用于列\"%s\"的USING子句的结果不能被自动地转换成类型%s"
 
-#: commands/tablecmds.c:7912
+#: commands/tablecmds.c:7945
 #, c-format
-#| msgid "You might need to initdb."
 msgid "You might need to add an explicit cast."
 msgstr "您可能需要增加一个显式转换。"
 
-#: commands/tablecmds.c:7916
+#: commands/tablecmds.c:7949
 #, c-format
 msgid "column \"%s\" cannot be cast automatically to type %s"
 msgstr "字段 \"%s\" 不能自动转换成类型 %s"
 
 #. translator: USING is SQL, don't translate it
-#: commands/tablecmds.c:7919
+#: commands/tablecmds.c:7952
 #, c-format
-#| msgid "You might need to initdb."
 msgid "You might need to specify \"USING %s::%s\"."
 msgstr "您可能需要指定\"USING %s::%s\"。"
 
-#: commands/tablecmds.c:7972
+#: commands/tablecmds.c:8005
 #, c-format
 msgid "type of inherited column \"%s\" must be changed in child tables too"
 msgstr "在子表中继承字段 \"%s\" 的类型也必需改变"
 
-#: commands/tablecmds.c:8059
+#: commands/tablecmds.c:8092
 #, c-format
 msgid "cannot alter type of column \"%s\" twice"
 msgstr "不能更改字段 \"%s\" 的类型两遍"
 
-#: commands/tablecmds.c:8095
+#: commands/tablecmds.c:8128
 #, c-format
 msgid "default for column \"%s\" cannot be cast automatically to type %s"
 msgstr "字段 \"%s\" 的默认值不能转换成类型 %s"
 
-#: commands/tablecmds.c:8221
+#: commands/tablecmds.c:8254
 #, c-format
 msgid "cannot alter type of a column used by a view or rule"
 msgstr "不能使用视图或规则改变一个字段的类型"
 
-#: commands/tablecmds.c:8222 commands/tablecmds.c:8241
-#: commands/tablecmds.c:8259
+#: commands/tablecmds.c:8255 commands/tablecmds.c:8274
+#: commands/tablecmds.c:8292
 #, c-format
 msgid "%s depends on column \"%s\""
 msgstr "%s 倚赖于字段 \"%s\""
 
-#: commands/tablecmds.c:8240
+#: commands/tablecmds.c:8273
 #, c-format
 msgid "cannot alter type of a column used in a trigger definition"
 msgstr "无法更改触发器定义中的列类型"
 
-#: commands/tablecmds.c:8258
+#: commands/tablecmds.c:8291
 #, c-format
-#| msgid "cannot alter type of a column used in a trigger definition"
 msgid "cannot alter type of a column used in a policy definition"
 msgstr "无法修改被用在策略定义中的列的类型"
 
-#: commands/tablecmds.c:8923
+#: commands/tablecmds.c:8956
 #, c-format
 msgid "cannot change owner of index \"%s\""
 msgstr "无法改变索引\"%s\" 的属主"
 
-#: commands/tablecmds.c:8925
+#: commands/tablecmds.c:8958
 #, c-format
 msgid "Change the ownership of the index's table, instead."
 msgstr "可以改变索引表的所有权"
 
-#: commands/tablecmds.c:8941
+#: commands/tablecmds.c:8974
 #, c-format
 msgid "cannot change owner of sequence \"%s\""
 msgstr "无法改变序列 \"%s\"的属主"
 
-#: commands/tablecmds.c:8943 commands/tablecmds.c:11336
+#: commands/tablecmds.c:8976 commands/tablecmds.c:11398
 #, c-format
 msgid "Sequence \"%s\" is linked to table \"%s\"."
 msgstr "序列 \"%s\"已链接到表\"%s\"."
 
-#: commands/tablecmds.c:8955 commands/tablecmds.c:11977
+#: commands/tablecmds.c:8988 commands/tablecmds.c:12045
 #, c-format
 msgid "Use ALTER TYPE instead."
 msgstr "请使用ALTER TYPE"
 
-#: commands/tablecmds.c:8964
+#: commands/tablecmds.c:8997
 #, c-format
 msgid "\"%s\" is not a table, view, sequence, or foreign table"
 msgstr "\"%s\" 不是表,视图,序列或者外部表"
 
-#: commands/tablecmds.c:9308
+#: commands/tablecmds.c:9340
 #, c-format
 msgid "cannot have multiple SET TABLESPACE subcommands"
 msgstr "无法执行多个SET TABLESPACE子命令"
 
-#: commands/tablecmds.c:9381
+#: commands/tablecmds.c:9413
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, index, or TOAST table"
 msgstr "\"%s\"不是表,视图, 物化视图, 索引或TOAST表"
 
-#: commands/tablecmds.c:9414 commands/view.c:481
+#: commands/tablecmds.c:9446 commands/view.c:481
 #, c-format
 msgid "WITH CHECK OPTION is supported only on automatically updatable views"
 msgstr "WITH CHECK OPTION只能用于自动更新视图上"
 
-#: commands/tablecmds.c:9560
+#: commands/tablecmds.c:9592
 #, c-format
 msgid "cannot move system relation \"%s\""
 msgstr "不能删除系统关系 \"%s\""
 
-#: commands/tablecmds.c:9576
+#: commands/tablecmds.c:9608
 #, c-format
 msgid "cannot move temporary tables of other sessions"
 msgstr "不能在其他会话中删除临时表"
 
-#: commands/tablecmds.c:9704
+#: commands/tablecmds.c:9745
 #, c-format
 msgid "only tables, indexes, and materialized views exist in tablespaces"
 msgstr "只有表、索引以及物化视图存在于表空间当中"
 
-#: commands/tablecmds.c:9716
+#: commands/tablecmds.c:9757
 #, c-format
 msgid "cannot move relations in to or out of pg_global tablespace"
 msgstr "无法将关系移入或移出表空间pg_global"
 
-#: commands/tablecmds.c:9807
+#: commands/tablecmds.c:9848
 #, c-format
-#| msgid "aborting because lock on relation \"%s\".\"%s\" is not available"
 msgid "aborting because lock on relation \"%s.%s\" is not available"
 msgstr "由于关系\"%s.%s\"上的锁不可用而中止"
 
 # describe.c:1542
-#: commands/tablecmds.c:9823
+#: commands/tablecmds.c:9864
 #, c-format
 msgid "no matching relations in tablespace \"%s\" found"
 msgstr "表空间\"%s\"中没有找到符合的关系"
 
-#: commands/tablecmds.c:9887 storage/buffer/bufmgr.c:801
+#: commands/tablecmds.c:9938 storage/buffer/bufmgr.c:915
 #, c-format
 msgid "invalid page in block %u of relation %s"
 msgstr "关系 \"%2$s\" 中的块 %1$u 存在无效的页"
 
-#: commands/tablecmds.c:9969
+#: commands/tablecmds.c:10020
 #, c-format
 msgid "cannot change inheritance of typed table"
 msgstr "无法改变已确定类型表(typed table)的继承性"
 
-#: commands/tablecmds.c:10019
+#: commands/tablecmds.c:10070
 #, c-format
 msgid "cannot inherit to temporary relation of another session"
 msgstr "无法继承来自另一会话中的临时关系"
 
-#: commands/tablecmds.c:10073
+#: commands/tablecmds.c:10124
 #, c-format
 msgid "circular inheritance not allowed"
 msgstr "不允许循环继承"
 
-#: commands/tablecmds.c:10074
+#: commands/tablecmds.c:10125
 #, c-format
 msgid "\"%s\" is already a child of \"%s\"."
 msgstr "\"%s\" 已经是 \"%s\"的子表了."
 
-#: commands/tablecmds.c:10082
+#: commands/tablecmds.c:10133
 #, c-format
 msgid "table \"%s\" without OIDs cannot inherit from table \"%s\" with OIDs"
 msgstr "不带有OIDs的表\"%s\"无法从带有OIDs的表\"%s\"继承。"
 
-#: commands/tablecmds.c:10223
+#: commands/tablecmds.c:10274
 #, c-format
 msgid "column \"%s\" in child table must be marked NOT NULL"
 msgstr "在子表中的列\"%s\"必须标识为NOT NULL"
 
-#: commands/tablecmds.c:10239
+#: commands/tablecmds.c:10290
 #, c-format
 msgid "child table is missing column \"%s\""
 msgstr "在子表中没有列\"%s\""
 
-#: commands/tablecmds.c:10322
+#: commands/tablecmds.c:10373
 #, c-format
 msgid "child table \"%s\" has different definition for check constraint \"%s\""
 msgstr "子表 \"%s\" 对于检查约束\"%s\"有不同的定义"
 
-#: commands/tablecmds.c:10330
+#: commands/tablecmds.c:10381
 #, c-format
 msgid ""
 "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s"
 "\""
 msgstr "约束 \"%s\" 与子表中的非继承约束 \"%s\"相冲突"
 
-#: commands/tablecmds.c:10354
+#: commands/tablecmds.c:10405
 #, c-format
 msgid "child table is missing constraint \"%s\""
 msgstr "子表丢失约束\"%s\""
 
-#: commands/tablecmds.c:10438
+#: commands/tablecmds.c:10489
 #, c-format
 msgid "relation \"%s\" is not a parent of relation \"%s\""
 msgstr "关系 \"%s\" 不是关系\"%s\"的父表"
 
-#: commands/tablecmds.c:10672
+#: commands/tablecmds.c:10723
 #, c-format
 msgid "typed tables cannot inherit"
 msgstr "类型表不能继承"
 
-#: commands/tablecmds.c:10703
+#: commands/tablecmds.c:10754
 #, c-format
 msgid "table is missing column \"%s\""
 msgstr "表中没有列\"%s\""
 
-#: commands/tablecmds.c:10713
+#: commands/tablecmds.c:10764
 #, c-format
 msgid "table has column \"%s\" where type requires \"%s\""
 msgstr "表中含有列\"%s\",需要类型\"%s\""
 
-#: commands/tablecmds.c:10722
+#: commands/tablecmds.c:10773
 #, c-format
 msgid "table \"%s\" has different type for column \"%s\""
 msgstr "表\"%s\"中的列\"%s\"带有不同的类型"
 
-#: commands/tablecmds.c:10735
+#: commands/tablecmds.c:10786
 #, c-format
 msgid "table has extra column \"%s\""
 msgstr "表含有多余的列\"%s\""
 
-#: commands/tablecmds.c:10787
+#: commands/tablecmds.c:10838
 #, c-format
 msgid "\"%s\" is not a typed table"
 msgstr "\"%s\" 不是一个类型表"
 
-#: commands/tablecmds.c:10970
+#: commands/tablecmds.c:11022
 #, c-format
 msgid "cannot use non-unique index \"%s\" as replica identity"
 msgstr "不能将非唯一索引\"%s\"用作复制标识"
 
-#: commands/tablecmds.c:10976
+#: commands/tablecmds.c:11028
 #, c-format
 msgid "cannot use non-immediate index \"%s\" as replica identity"
 msgstr "不能把非立即索引\"%s\"用作复制标识"
 
-#: commands/tablecmds.c:10982
+#: commands/tablecmds.c:11034
 #, c-format
 msgid "cannot use expression index \"%s\" as replica identity"
 msgstr "不能将表达式索引\"%s\"用作复制标识"
 
-#: commands/tablecmds.c:10988
+#: commands/tablecmds.c:11040
 #, c-format
 msgid "cannot use partial index \"%s\" as replica identity"
 msgstr "不能将局部索引\"%s\"用作复制标识"
 
-#: commands/tablecmds.c:10994
+#: commands/tablecmds.c:11046
 #, c-format
 msgid "cannot use invalid index \"%s\" as replica identity"
 msgstr "不能将无效索引\"%s\"用作复制标识"
 
-#: commands/tablecmds.c:11012
+#: commands/tablecmds.c:11067
+#, c-format
+#| msgid ""
+#| "index \"%s\" cannot be used as replica identity because column \"%s\" is "
+#| "nullable"
+msgid ""
+"index \"%s\" cannot be used as replica identity because column %d is a "
+"system column"
+msgstr "索引 \"%s\" 不能用做复制标识,因为列 %d 是一个系统列"
+
+#: commands/tablecmds.c:11074
 #, c-format
 msgid ""
 "index \"%s\" cannot be used as replica identity because column \"%s\" is "
 "nullable"
 msgstr "索引 \"%s\" 不能用于复制标识,因为列\"%s\"非空"
 
-#: commands/tablecmds.c:11209
+#: commands/tablecmds.c:11271
 #, c-format
-#| msgid "could not convert table \"%s\" to a view because it is not empty"
 msgid "cannot change logged status of table \"%s\" because it is temporary"
 msgstr "无法更改表\"%s\"的已记录状态,因为它是临时表"
 
-#: commands/tablecmds.c:11268
+#: commands/tablecmds.c:11330
 #, c-format
-#| msgid "could not convert table \"%s\" to a view because it has child tables"
 msgid ""
 "could not change table \"%s\" to logged because it references unlogged table "
 "\"%s\""
 msgstr "无法把表\"%s\"更改为被日志记录,因为它引用了不被日志记录的表\"%s\""
 
-#: commands/tablecmds.c:11278
+#: commands/tablecmds.c:11340
 #, c-format
-#| msgid "could not convert table \"%s\" to a view because it has child tables"
 msgid ""
 "could not change table \"%s\" to unlogged because it references logged table "
 "\"%s\""
 msgstr "无法把表\"%s\"更改为不被日志记录,因为它引用了日志记录的表\"%s\""
 
-#: commands/tablecmds.c:11335
+#: commands/tablecmds.c:11397
 #, c-format
 msgid "cannot move an owned sequence into another schema"
 msgstr "无法将已分配的序列移动到另一个模式中"
 
-#: commands/tablecmds.c:11436
+#: commands/tablecmds.c:11502
 #, c-format
 msgid "relation \"%s\" already exists in schema \"%s\""
 msgstr "在模式\"%2$s\"中已经存在关系\"%1$s\""
 
-#: commands/tablecmds.c:11961
+#: commands/tablecmds.c:12029
 #, c-format
 msgid "\"%s\" is not a composite type"
 msgstr "\"%s\" 不是组合类型"
 
-#: commands/tablecmds.c:11991
+#: commands/tablecmds.c:12059
 #, c-format
 msgid ""
 "\"%s\" is not a table, view, materialized view, sequence, or foreign table"
@@ -8494,7 +8982,7 @@ msgstr "\"%s\" 不是表,视图,物化视图,序列或者外部表"
 
 #: commands/tablespace.c:162 commands/tablespace.c:179
 #: commands/tablespace.c:190 commands/tablespace.c:198
-#: commands/tablespace.c:625 replication/slot.c:914 storage/file/copydir.c:47
+#: commands/tablespace.c:629 replication/slot.c:969 storage/file/copydir.c:47
 #, c-format
 msgid "could not create directory \"%s\": %m"
 msgstr "无法创建目录 \"%s\": %m"
@@ -8519,284 +9007,277 @@ msgstr "创建表空间 \"%s\" 权限不够"
 msgid "Must be superuser to create a tablespace."
 msgstr "只有超级用户能创建表空间"
 
-#: commands/tablespace.c:267
+#: commands/tablespace.c:271
 #, c-format
 msgid "tablespace location cannot contain single quotes"
 msgstr "表空间路径不能包含单引号"
 
-#: commands/tablespace.c:277
+#: commands/tablespace.c:281
 #, c-format
 msgid "tablespace location must be an absolute path"
 msgstr "表空间路径必须为绝对路径"
 
-#: commands/tablespace.c:288
+#: commands/tablespace.c:292
 #, c-format
 msgid "tablespace location \"%s\" is too long"
 msgstr "表空间路径 \"%s\" 太长"
 
-#: commands/tablespace.c:295
+#: commands/tablespace.c:299
 #, c-format
-#| msgid "tablespace location must be an absolute path"
 msgid "tablespace location should not be inside the data directory"
 msgstr "表空间位置不应该位于数据目录内"
 
-#: commands/tablespace.c:304 commands/tablespace.c:938
+#: commands/tablespace.c:308 commands/tablespace.c:956
 #, c-format
 msgid "unacceptable tablespace name \"%s\""
 msgstr "不可访问的表空间名字 \"%s\""
 
-#: commands/tablespace.c:306 commands/tablespace.c:939
+#: commands/tablespace.c:310 commands/tablespace.c:957
 #, c-format
 msgid "The prefix \"pg_\" is reserved for system tablespaces."
 msgstr "前缀 \"pg_\" 是保留给系统表空间的."
 
-#: commands/tablespace.c:316 commands/tablespace.c:951
+#: commands/tablespace.c:320 commands/tablespace.c:969
 #, c-format
 msgid "tablespace \"%s\" already exists"
 msgstr "表空间 \"%s\" 已经存在"
 
-#: commands/tablespace.c:430 commands/tablespace.c:921
-#: commands/tablespace.c:1002 commands/tablespace.c:1071
-#: commands/tablespace.c:1204 commands/tablespace.c:1404
+#: commands/tablespace.c:434 commands/tablespace.c:939
+#: commands/tablespace.c:1020 commands/tablespace.c:1089
+#: commands/tablespace.c:1222 commands/tablespace.c:1422
 #, c-format
 msgid "tablespace \"%s\" does not exist"
 msgstr "表空间 \"%s\" 不存在"
 
-#: commands/tablespace.c:436
+#: commands/tablespace.c:440
 #, c-format
 msgid "tablespace \"%s\" does not exist, skipping"
 msgstr "表空间 \"%s\" 不存在,跳过"
 
-#: commands/tablespace.c:512
+#: commands/tablespace.c:516
 #, c-format
 msgid "tablespace \"%s\" is not empty"
 msgstr "表空间 \"%s\" 不是空的"
 
-#: commands/tablespace.c:584
+#: commands/tablespace.c:588
 #, c-format
 msgid "directory \"%s\" does not exist"
 msgstr "目录 \"%s\" 不存在"
 
-#: commands/tablespace.c:585
+#: commands/tablespace.c:589
 #, c-format
 msgid "Create this directory for the tablespace before restarting the server."
 msgstr "在重新启动服务器前为这个表空间创建该目录."
 
-#: commands/tablespace.c:590
+#: commands/tablespace.c:594
 #, c-format
 msgid "could not set permissions on directory \"%s\": %m"
 msgstr "无法为目录 \"%s\" 的设置权限: %m"
 
-#: commands/tablespace.c:620
+#: commands/tablespace.c:624
 #, c-format
 msgid "directory \"%s\" already in use as a tablespace"
 msgstr "目录 \"%s\" 以一个表空间的形式正在使用"
 
-#: commands/tablespace.c:744 commands/tablespace.c:757
-#: commands/tablespace.c:781 commands/tablespace.c:872
+#: commands/tablespace.c:748 commands/tablespace.c:761
+#: commands/tablespace.c:797 commands/tablespace.c:889
 #, c-format
 msgid "could not remove directory \"%s\": %m"
 msgstr "无法删除目录 \"%s\": %m"
 
-#: commands/tablespace.c:793 commands/tablespace.c:881
+#: commands/tablespace.c:810 commands/tablespace.c:898
 #, c-format
 msgid "could not remove symbolic link \"%s\": %m"
 msgstr "无法删除符号链接 \"%s\": %m"
 
-#: commands/tablespace.c:803 commands/tablespace.c:889
+#: commands/tablespace.c:820 commands/tablespace.c:907
 #, c-format
-#| msgid "\"%s\" is a directory"
 msgid "\"%s\" is not a directory or symbolic link"
 msgstr "\"%s\" 不是一个目录或者符号链接"
 
-#: commands/tablespace.c:1076
+#: commands/tablespace.c:1094
 #, c-format
 msgid "Tablespace \"%s\" does not exist."
 msgstr "表空间 \"%s\" 不存在."
 
-#: commands/tablespace.c:1503
+#: commands/tablespace.c:1521
 #, c-format
 msgid "directories for tablespace %u could not be removed"
 msgstr "表空间 %u 的目录不能被移除"
 
-#: commands/tablespace.c:1505
+#: commands/tablespace.c:1523
 #, c-format
 msgid "You can remove the directories manually if necessary."
 msgstr "如有必要您可以手动移除这些目录."
 
-#: commands/trigger.c:183
+#: commands/trigger.c:184
 #, c-format
 msgid "\"%s\" is a table"
 msgstr "\"%s\" 是一个表"
 
-#: commands/trigger.c:185
+#: commands/trigger.c:186
 #, c-format
 msgid "Tables cannot have INSTEAD OF triggers."
 msgstr "表不能使用INSTEAD OF触发器."
 
-#: commands/trigger.c:196 commands/trigger.c:203
+#: commands/trigger.c:197 commands/trigger.c:204
 #, c-format
 msgid "\"%s\" is a view"
 msgstr "\"%s\" 是一个视图"
 
-#: commands/trigger.c:198
+#: commands/trigger.c:199
 #, c-format
 msgid "Views cannot have row-level BEFORE or AFTER triggers."
 msgstr "视图不能使用行级 BEFORE 或 AFTER 触发器."
 
-#: commands/trigger.c:205
+#: commands/trigger.c:206
 #, c-format
 msgid "Views cannot have TRUNCATE triggers."
 msgstr "视图不能使用 TRUNCATE 触发器."
 
-#: commands/trigger.c:213 commands/trigger.c:220 commands/trigger.c:227
+#: commands/trigger.c:214 commands/trigger.c:221 commands/trigger.c:228
 #, c-format
 msgid "\"%s\" is a foreign table"
 msgstr "\"%s\" 是一个外部表"
 
-#: commands/trigger.c:215
+#: commands/trigger.c:216
 #, c-format
 msgid "Foreign tables cannot have INSTEAD OF triggers."
 msgstr "外部表不能使用INSTEAD OF触发器."
 
-#: commands/trigger.c:222
+#: commands/trigger.c:223
 #, c-format
 msgid "Foreign tables cannot have TRUNCATE triggers."
 msgstr "外部表不能使用 TRUNCATE 触发器."
 
-#: commands/trigger.c:229
+#: commands/trigger.c:230
 #, c-format
 msgid "Foreign tables cannot have constraint triggers."
 msgstr "外部表不能使用约束触发器."
 
-#: commands/trigger.c:292
+#: commands/trigger.c:293
 #, c-format
 msgid "TRUNCATE FOR EACH ROW triggers are not supported"
 msgstr "不支持使用TRUNCATE FOR EACH ROW触发器"
 
-#: commands/trigger.c:300
+#: commands/trigger.c:301
 #, c-format
 msgid "INSTEAD OF triggers must be FOR EACH ROW"
 msgstr "INSTEAD OF 触发器必须使用 FOR EACH ROW"
 
-#: commands/trigger.c:304
+#: commands/trigger.c:305
 #, c-format
 msgid "INSTEAD OF triggers cannot have WHEN conditions"
 msgstr "INSTEAD OF 触发器不能使用 WHEN 条件子句"
 
-#: commands/trigger.c:308
+#: commands/trigger.c:309
 #, c-format
 msgid "INSTEAD OF triggers cannot have column lists"
 msgstr "INSTEAD OF 触发器不能带有字段列表"
 
-#: commands/trigger.c:367 commands/trigger.c:380
+#: commands/trigger.c:366 commands/trigger.c:379
 #, c-format
 msgid "statement trigger's WHEN condition cannot reference column values"
 msgstr "语句级触发器的WHEN条件中不能引用列的值。"
 
-#: commands/trigger.c:372
+#: commands/trigger.c:371
 #, c-format
 msgid "INSERT trigger's WHEN condition cannot reference OLD values"
 msgstr "在INSERT触发器的WHEN条件中不能引用OLD值。"
 
-#: commands/trigger.c:385
+#: commands/trigger.c:384
 #, c-format
 msgid "DELETE trigger's WHEN condition cannot reference NEW values"
 msgstr "在DELETE触发器的WHEN条件中不能引用NEW值。"
 
-#: commands/trigger.c:390
+#: commands/trigger.c:389
 #, c-format
 msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns"
 msgstr "BEFORE类型触发器的WHERE条件不能引用NEW系统列"
 
-#: commands/trigger.c:435
+#: commands/trigger.c:434
 #, c-format
 msgid "changing return type of function %s from \"opaque\" to \"trigger\""
 msgstr "改变函数 %s 的返回类型 \"opaque\" 为 \"trigger\""
 
-#: commands/trigger.c:442
-#, c-format
-msgid "function %s must return type \"trigger\""
-msgstr "函数 %s 必需返回 \"trigger\" 类型"
-
-#: commands/trigger.c:554 commands/trigger.c:1304
+#: commands/trigger.c:553 commands/trigger.c:1303
 #, c-format
 msgid "trigger \"%s\" for relation \"%s\" already exists"
 msgstr "对于关系 \"%2$s\" 的 \"%1$s\" 触发器已经存在"
 
-#: commands/trigger.c:839
+#: commands/trigger.c:838
 msgid "Found referenced table's UPDATE trigger."
 msgstr "找到被引用表的UPDATE触发器"
 
-#: commands/trigger.c:840
+#: commands/trigger.c:839
 msgid "Found referenced table's DELETE trigger."
 msgstr "找到被引用表的DELETE触发器"
 
-#: commands/trigger.c:841
+#: commands/trigger.c:840
 msgid "Found referencing table's trigger."
 msgstr "找到正在引用表的触发器"
 
-#: commands/trigger.c:950 commands/trigger.c:966
+#: commands/trigger.c:949 commands/trigger.c:965
 #, c-format
 msgid "ignoring incomplete trigger group for constraint \"%s\" %s"
 msgstr "对于\"%s\" %s,忽略未完成的触发器组"
 
-#: commands/trigger.c:978
+#: commands/trigger.c:977
 #, c-format
 msgid "converting trigger group into constraint \"%s\" %s"
 msgstr "正在将触发器组转换为约束\"%s\" %s"
 
-#: commands/trigger.c:1191 commands/trigger.c:1352 commands/trigger.c:1470
+#: commands/trigger.c:1190 commands/trigger.c:1351 commands/trigger.c:1469
 #, c-format
 msgid "trigger \"%s\" for table \"%s\" does not exist"
 msgstr "表 \"%2$s\" 的 \"%1$s\" 触发器不存在"
 
-#: commands/trigger.c:1435
+#: commands/trigger.c:1434
 #, c-format
 msgid "permission denied: \"%s\" is a system trigger"
 msgstr "权限不够: \"%s\" 是一个系统触发器"
 
-#: commands/trigger.c:1931
+#: commands/trigger.c:1930
 #, c-format
 msgid "trigger function %u returned null value"
 msgstr "触发器函数 %u 返回了空值"
 
-#: commands/trigger.c:1990 commands/trigger.c:2189 commands/trigger.c:2393
-#: commands/trigger.c:2665
+#: commands/trigger.c:1989 commands/trigger.c:2188 commands/trigger.c:2392
+#: commands/trigger.c:2664
 #, c-format
 msgid "BEFORE STATEMENT trigger cannot return a value"
 msgstr "BEFORE STATEMENT 触发器不能返回一个值"
 
-#: commands/trigger.c:2727 executor/nodeModifyTable.c:631
-#: executor/nodeModifyTable.c:919
+#: commands/trigger.c:2726 executor/nodeModifyTable.c:664
+#: executor/nodeModifyTable.c:957
 #, c-format
 msgid ""
 "tuple to be updated was already modified by an operation triggered by the "
 "current command"
 msgstr "待更新元组值已经被当前命令触发的操作修改了"
 
-#: commands/trigger.c:2728 executor/nodeModifyTable.c:632
-#: executor/nodeModifyTable.c:920
+#: commands/trigger.c:2727 executor/nodeModifyTable.c:665
+#: executor/nodeModifyTable.c:958
 #, c-format
 msgid ""
 "Consider using an AFTER trigger instead of a BEFORE trigger to propagate "
 "changes to other rows."
 msgstr "考虑使用AFTER触发器代替BEFORE触发器,来改变其它行的值."
 
-#: commands/trigger.c:2742 executor/execMain.c:2344
-#: executor/nodeLockRows.c:216 executor/nodeModifyTable.c:183
-#: executor/nodeModifyTable.c:644 executor/nodeModifyTable.c:932
-#: executor/nodeModifyTable.c:1099
+#: commands/trigger.c:2741 executor/execMain.c:2369
+#: executor/nodeLockRows.c:216 executor/nodeModifyTable.c:200
+#: executor/nodeModifyTable.c:677 executor/nodeModifyTable.c:970
+#: executor/nodeModifyTable.c:1136
 #, c-format
 msgid "could not serialize access due to concurrent update"
 msgstr "由于同步更新而无法串行访问"
 
-#: commands/trigger.c:4580
+#: commands/trigger.c:4579
 #, c-format
 msgid "constraint \"%s\" is not deferrable"
 msgstr "约束 \"%s\" 不可展缓"
 
-#: commands/trigger.c:4603
+#: commands/trigger.c:4602
 #, c-format
 msgid "constraint \"%s\" does not exist"
 msgstr "约束 \"%s\" 不存在"
@@ -8897,607 +9378,606 @@ msgstr "符号类型\"%s\"的映射不存在, 跳过"
 msgid "invalid parameter list format: \"%s\""
 msgstr "无效参数列表格式: \"%s\""
 
-#: commands/typecmds.c:179
+#: commands/typecmds.c:181
 #, c-format
 msgid "must be superuser to create a base type"
 msgstr "只有超级用户能创建基类型"
 
-#: commands/typecmds.c:286 commands/typecmds.c:1419
+#: commands/typecmds.c:288 commands/typecmds.c:1421
 #, c-format
 msgid "type attribute \"%s\" not recognized"
 msgstr "类型属性 \"%s\" 不被认可"
 
-#: commands/typecmds.c:340
+#: commands/typecmds.c:342
 #, c-format
 msgid "invalid type category \"%s\": must be simple ASCII"
 msgstr "无效的类型目录 \"%s\": 必须是简单ASCII"
 
-#: commands/typecmds.c:359
+#: commands/typecmds.c:361
 #, c-format
 msgid "array element type cannot be %s"
 msgstr "排列元素类型不能为 %s"
 
-#: commands/typecmds.c:391
+#: commands/typecmds.c:393
 #, c-format
 msgid "alignment \"%s\" not recognized"
 msgstr "alignment \"%s\" 不被认可"
 
-#: commands/typecmds.c:408
+#: commands/typecmds.c:410
 #, c-format
 msgid "storage \"%s\" not recognized"
 msgstr "存储 \"%s\" 不被认可"
 
-#: commands/typecmds.c:419
+#: commands/typecmds.c:421
 #, c-format
 msgid "type input function must be specified"
 msgstr "类型输入函数必需指定"
 
-#: commands/typecmds.c:423
+#: commands/typecmds.c:425
 #, c-format
 msgid "type output function must be specified"
 msgstr "类型输出函数必需指定"
 
-#: commands/typecmds.c:428
+#: commands/typecmds.c:430
 #, c-format
 msgid ""
 "type modifier output function is useless without a type modifier input "
 "function"
 msgstr "如果没有类型修改器的输入函数,那么类型修改器的输出函数没有用"
 
-#: commands/typecmds.c:451
+#: commands/typecmds.c:453 commands/typecmds.c:470
 #, c-format
-msgid "changing return type of function %s from \"opaque\" to %s"
-msgstr "改变函数 %s 的返回类型 \"opaque\" 为 %s"
+#| msgid "changing return type of function %s from \"opaque\" to %s"
+msgid "changing return type of function %s from %s to %s"
+msgstr "把函数 %1$s 的返回类型从 %2$s 改成 %3$s"
 
-#: commands/typecmds.c:458
+#: commands/typecmds.c:460
 #, c-format
 msgid "type input function %s must return type %s"
 msgstr "类型输入函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:468
-#, c-format
-msgid "changing return type of function %s from \"opaque\" to \"cstring\""
-msgstr "改变函数 %s 的返回类型 \"opaque\" 为 \"cstring\""
-
-#: commands/typecmds.c:475
+#: commands/typecmds.c:477
 #, c-format
-msgid "type output function %s must return type \"cstring\""
-msgstr "类型输出函数 %s 必需返回类型 \"cstring\""
+#| msgid "type input function %s must return type %s"
+msgid "type output function %s must return type %s"
+msgstr "类型输出函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:484
+#: commands/typecmds.c:486
 #, c-format
 msgid "type receive function %s must return type %s"
 msgstr "类型接收函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:493
+#: commands/typecmds.c:495
 #, c-format
-msgid "type send function %s must return type \"bytea\""
-msgstr "类型发送函数 %s 必需返回类型 \"bytea\""
+#| msgid "type input function %s must return type %s"
+msgid "type send function %s must return type %s"
+msgstr "类型发送函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:558
+#: commands/typecmds.c:560
 #, c-format
-#| msgid "cast function must not be volatile"
 msgid "type input function %s should not be volatile"
 msgstr "类型输入函数%s不能是不稳定的 (volatile)"
 
-#: commands/typecmds.c:563
+#: commands/typecmds.c:565
 #, c-format
-#| msgid "cast function must not be volatile"
 msgid "type output function %s should not be volatile"
 msgstr "类型输出函数%s不能是不稳定的 (volatile)"
 
-#: commands/typecmds.c:568
+#: commands/typecmds.c:570
 #, c-format
-#| msgid "type receive function %s must return type %s"
 msgid "type receive function %s should not be volatile"
 msgstr "类型接收函数%s不应该是不稳定的"
 
-#: commands/typecmds.c:573
+#: commands/typecmds.c:575
 #, c-format
-#| msgid "cast function must not be volatile"
 msgid "type send function %s should not be volatile"
 msgstr "类型发送函数%s不应该是不稳定的"
 
-#: commands/typecmds.c:578
+#: commands/typecmds.c:580
 #, c-format
-#| msgid "cast function must not be volatile"
 msgid "type modifier input function %s should not be volatile"
 msgstr "类型修饰输入函数%s不应该是不稳定的"
 
-#: commands/typecmds.c:583
+#: commands/typecmds.c:585
 #, c-format
-#| msgid ""
-#| "type modifier output function is useless without a type modifier input "
-#| "function"
 msgid "type modifier output function %s should not be volatile"
 msgstr "类型修饰输出函数%s不应该是不稳定的"
 
-#: commands/typecmds.c:805
+#: commands/typecmds.c:807
 #, c-format
 msgid "\"%s\" is not a valid base type for a domain"
 msgstr "对于一个域, \"%s\" 不是一个有效的基本类型"
 
-#: commands/typecmds.c:891
+#: commands/typecmds.c:893
 #, c-format
 msgid "multiple default expressions"
 msgstr "多遍默认表达式"
 
-#: commands/typecmds.c:953 commands/typecmds.c:962
+#: commands/typecmds.c:955 commands/typecmds.c:964
 #, c-format
 msgid "conflicting NULL/NOT NULL constraints"
 msgstr "NULL/NOT NULL 约束冲突"
 
-#: commands/typecmds.c:978
+#: commands/typecmds.c:980
 #, c-format
 msgid "check constraints for domains cannot be marked NO INHERIT"
 msgstr "域的CHECK约束不能标为NO INHERIT"
 
-#: commands/typecmds.c:987 commands/typecmds.c:2518
+#: commands/typecmds.c:989 commands/typecmds.c:2522
 #, c-format
 msgid "unique constraints not possible for domains"
 msgstr "唯一约束对于域不可用"
 
-#: commands/typecmds.c:993 commands/typecmds.c:2524
+#: commands/typecmds.c:995 commands/typecmds.c:2528
 #, c-format
 msgid "primary key constraints not possible for domains"
 msgstr "不可为域使用主键约束"
 
-#: commands/typecmds.c:999 commands/typecmds.c:2530
+#: commands/typecmds.c:1001 commands/typecmds.c:2534
 #, c-format
 msgid "exclusion constraints not possible for domains"
 msgstr "排他约束对于域不可用"
 
-#: commands/typecmds.c:1005 commands/typecmds.c:2536
+#: commands/typecmds.c:1007 commands/typecmds.c:2540
 #, c-format
 msgid "foreign key constraints not possible for domains"
 msgstr "外键约束对于域不可用"
 
-#: commands/typecmds.c:1014 commands/typecmds.c:2545
+#: commands/typecmds.c:1016 commands/typecmds.c:2549
 #, c-format
 msgid "specifying constraint deferrability not supported for domains"
 msgstr "所指定的约束延迟对域不支持"
 
-#: commands/typecmds.c:1289 utils/cache/typcache.c:1579
+#: commands/typecmds.c:1291 utils/cache/typcache.c:1634
 #, c-format
 msgid "%s is not an enum"
 msgstr "%s 不是枚举"
 
-#: commands/typecmds.c:1427
+#: commands/typecmds.c:1429
 #, c-format
 msgid "type attribute \"subtype\" is required"
 msgstr "类型属性 \"subtype\" 不是必需的"
 
-#: commands/typecmds.c:1432
+#: commands/typecmds.c:1434
 #, c-format
 msgid "range subtype cannot be %s"
 msgstr "范围子类型不能为 %s"
 
-#: commands/typecmds.c:1451
+#: commands/typecmds.c:1453
 #, c-format
 msgid "range collation specified but subtype does not support collation"
 msgstr "已指定了范围排序规则但是子类型并不支持排序"
 
-#: commands/typecmds.c:1684
+#: commands/typecmds.c:1687
 #, c-format
 msgid "changing argument type of function %s from \"opaque\" to \"cstring\""
 msgstr "改变函数 %s 的参数类型 \"opaque\" 为 \"cstring\""
 
-#: commands/typecmds.c:1735
+#: commands/typecmds.c:1738
 #, c-format
 msgid "changing argument type of function %s from \"opaque\" to %s"
 msgstr "改变函数 %s 的参数类型 \"opaque\" 为 %s"
 
-#: commands/typecmds.c:1834
+#: commands/typecmds.c:1837
 #, c-format
-msgid "typmod_in function %s must return type \"integer\""
-msgstr "typmod_in类型函数 %s 必需返回 \"trigger\" 类型"
+#| msgid "type input function %s must return type %s"
+msgid "typmod_in function %s must return type %s"
+msgstr "typmod_in 函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:1861
+#: commands/typecmds.c:1864
 #, c-format
-msgid "typmod_out function %s must return type \"cstring\""
-msgstr "typmod_out类型函数 %s 必需返回类型 \"cstring\""
+#| msgid "typmod_out function %s must return type \"cstring\""
+msgid "typmod_out function %s must return type %s"
+msgstr "typmod_out 函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:1888
+#: commands/typecmds.c:1891
 #, c-format
-msgid "type analyze function %s must return type \"boolean\""
-msgstr "类型 analyze 函数 %s 必需返回类型 \"boolean\""
+#| msgid "type analyze function %s must return type \"boolean\""
+msgid "type analyze function %s must return type %s"
+msgstr "类型分析函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:1934
+#: commands/typecmds.c:1937
 #, c-format
 msgid ""
 "You must specify an operator class for the range type or define a default "
 "operator class for the subtype."
 msgstr "你必须为范围类型指定一个操作符类或者为子类型定义一个默认的操作符类."
 
-#: commands/typecmds.c:1965
+#: commands/typecmds.c:1968
 #, c-format
 msgid "range canonical function %s must return range type"
 msgstr "范围的标准函数%s必须返回范围类型"
 
-#: commands/typecmds.c:1971
+#: commands/typecmds.c:1974
 #, c-format
 msgid "range canonical function %s must be immutable"
 msgstr "范围的标准函数%s必须是不可变的"
 
-#: commands/typecmds.c:2007
+#: commands/typecmds.c:2010
 #, c-format
-msgid "range subtype diff function %s must return type double precision"
-msgstr "范围子类型的diff函数%s必须返回double precision(双精浮点)类型"
+#| msgid "range subtype diff function %s must return type double precision"
+msgid "range subtype diff function %s must return type %s"
+msgstr "范围子类型的 diff 函数 %s 必须返回类型 %s"
 
-#: commands/typecmds.c:2013
+#: commands/typecmds.c:2017
 #, c-format
 msgid "range subtype diff function %s must be immutable"
 msgstr "范围的子类型diff函数%s必须是不可变的"
 
-#: commands/typecmds.c:2040
+#: commands/typecmds.c:2044
 #, c-format
-#| msgid "must be superuser to connect in binary upgrade mode"
 msgid "pg_type array OID value not set when in binary upgrade mode"
 msgstr "当处于二进制升级模式时没有设置pg_type的数组OID值"
 
-#: commands/typecmds.c:2344
+#: commands/typecmds.c:2348
 #, c-format
 msgid "column \"%s\" of table \"%s\" contains null values"
 msgstr "表 \"%2$s\" 的字段 \"%1$s\" 包含空值"
 
-#: commands/typecmds.c:2459 commands/typecmds.c:2642
+#: commands/typecmds.c:2463 commands/typecmds.c:2646
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" does not exist"
 msgstr "域 \"%2$s\" 的 约束\"%1$s\" 不存在"
 
-#: commands/typecmds.c:2463
+#: commands/typecmds.c:2467
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping"
 msgstr "域 \"%2$s\" 的 约束\"%1$s\" 不存在, 跳过"
 
-#: commands/typecmds.c:2648
+#: commands/typecmds.c:2652
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" is not a check constraint"
 msgstr "域 \"%2$s\" 的 约束\"%1$s\" 不是一个check约束"
 
-#: commands/typecmds.c:2754
+#: commands/typecmds.c:2758
 #, c-format
 msgid ""
 "column \"%s\" of table \"%s\" contains values that violate the new constraint"
 msgstr "表 \"%2$s\" 的字段 \"%1$s\" 包含的值违反了新约束"
 
-#: commands/typecmds.c:2967 commands/typecmds.c:3224 commands/typecmds.c:3432
+#: commands/typecmds.c:2971 commands/typecmds.c:3228 commands/typecmds.c:3417
 #, c-format
 msgid "%s is not a domain"
 msgstr "%s 不是一个域"
 
-#: commands/typecmds.c:3001
+#: commands/typecmds.c:3005
 #, c-format
 msgid "constraint \"%s\" for domain \"%s\" already exists"
 msgstr "域 \"%2$s\" 的约束 \"%1$s\" 已经存在"
 
-#: commands/typecmds.c:3051
+#: commands/typecmds.c:3055
 #, c-format
 msgid "cannot use table references in domain check constraint"
 msgstr "在域检查约束中不可以使用表关联"
 
-#: commands/typecmds.c:3154 commands/typecmds.c:3236 commands/typecmds.c:3545
+#: commands/typecmds.c:3158 commands/typecmds.c:3240 commands/typecmds.c:3534
 #, c-format
 msgid "%s is a table's row type"
 msgstr "%s 是一个表的记录类型"
 
-#: commands/typecmds.c:3156 commands/typecmds.c:3238 commands/typecmds.c:3547
+#: commands/typecmds.c:3160 commands/typecmds.c:3242 commands/typecmds.c:3536
 #, c-format
 msgid "Use ALTER TABLE instead."
 msgstr "请使用 ALTER TABLE命令代替."
 
-#: commands/typecmds.c:3163 commands/typecmds.c:3245 commands/typecmds.c:3464
+#: commands/typecmds.c:3167 commands/typecmds.c:3249 commands/typecmds.c:3449
 #, c-format
 msgid "cannot alter array type %s"
 msgstr "不能更改数组类型%s"
 
-#: commands/typecmds.c:3165 commands/typecmds.c:3247 commands/typecmds.c:3466
+#: commands/typecmds.c:3169 commands/typecmds.c:3251 commands/typecmds.c:3451
 #, c-format
 msgid "You can alter type %s, which will alter the array type as well."
 msgstr "您能够修改类型%s, 因而也能修改数组类型"
 
-#: commands/typecmds.c:3531
+#: commands/typecmds.c:3519
 #, c-format
 msgid "type \"%s\" already exists in schema \"%s\""
 msgstr "在于模式\"%2$s\"中已存在类型\"%1$s\""
 
-#: commands/user.c:148
+#: commands/user.c:149
 #, c-format
 msgid "SYSID can no longer be specified"
 msgstr "不能再指定SYSID"
 
-#: commands/user.c:290
+#: commands/user.c:291
 #, c-format
 msgid "must be superuser to create superusers"
 msgstr "只有超级用户能创建另一个超级用户"
 
-#: commands/user.c:297
+#: commands/user.c:298
 #, c-format
 msgid "must be superuser to create replication users"
 msgstr "只有超级用户能创建复制用户"
 
-#: commands/user.c:304 commands/user.c:678
+#: commands/user.c:305 commands/user.c:693
 #, c-format
-#| msgid "must be superuser to create a base type"
 msgid "must be superuser to change bypassrls attribute"
 msgstr "只有超级用户能更改绕过行级安全性属性(bypassrls)"
 
-#: commands/user.c:311
+#: commands/user.c:312
 #, c-format
 msgid "permission denied to create role"
 msgstr "创建角色的权限不够"
 
-#: commands/user.c:324 commands/user.c:1153
+#: commands/user.c:322 commands/user.c:1176 commands/user.c:1183 gram.y:13599
+#: gram.y:13634
+#, c-format
+msgid "role name \"%s\" is reserved"
+msgstr "角色名称 \"%s\" 被保留了"
+
+#: commands/user.c:324 commands/user.c:1178 commands/user.c:1185
+#, c-format
+#| msgid "role name \"%s\" is reserved"
+msgid "Role names starting with \"pg_\" are reserved."
+msgstr "以 \"pg_\" 开始的角色名是被保留的。"
+
+#: commands/user.c:336 commands/user.c:1191
 #, c-format
 msgid "role \"%s\" already exists"
 msgstr "角色\"%s\" 已经存在"
 
-#: commands/user.c:402
+#: commands/user.c:414
 #, c-format
-#| msgid "must be superuser to connect in binary upgrade mode"
 msgid "pg_authid OID value not set when in binary upgrade mode"
 msgstr "当处于二进制升级模式时没有设置pg_authid的OID值"
 
-#: commands/user.c:664 commands/user.c:878 commands/user.c:1394
-#: commands/user.c:1540
+#: commands/user.c:679 commands/user.c:896 commands/user.c:1443
+#: commands/user.c:1589
 #, c-format
 msgid "must be superuser to alter superusers"
 msgstr "只有超级用户能修改超级用户"
 
-#: commands/user.c:671
+#: commands/user.c:686
 #, c-format
 msgid "must be superuser to alter replication users"
 msgstr "只有超级用户能修改复制用户"
 
-#: commands/user.c:694 commands/user.c:886
+#: commands/user.c:709 commands/user.c:904
 #, c-format
 msgid "permission denied"
 msgstr "权限不够"
 
-#: commands/user.c:916
+#: commands/user.c:934
 #, c-format
 msgid "must be superuser to alter settings globally"
 msgstr "只有超级用户可以做全局的alter settings操作"
 
-#: commands/user.c:938
+#: commands/user.c:956
 #, c-format
 msgid "permission denied to drop role"
 msgstr "删除角色的权限不够"
 
-#: commands/user.c:962
+#: commands/user.c:980
 #, c-format
-#| msgid "cannot assign new default tablespace \"%s\""
-msgid "cannot use special role specifier in \"%s\""
-msgstr "不能在\"%s\"中使用特殊的角色说明符"
+#| msgid "cannot use special role specifier in \"%s\""
+msgid "cannot use special role specifier in DROP ROLE"
+msgstr "不能在 DROP ROLE 中使用特殊角色说明符"
 
-#: commands/user.c:972 commands/user.c:1128 commands/variable.c:799
-#: commands/variable.c:871 utils/adt/acl.c:5120 utils/adt/acl.c:5172
-#: utils/adt/acl.c:5205 utils/adt/acl.c:5223 utils/init/miscinit.c:494
+#: commands/user.c:990 commands/user.c:1147 commands/variable.c:805
+#: commands/variable.c:880 utils/adt/acl.c:5121 utils/adt/acl.c:5173
+#: utils/adt/acl.c:5206 utils/adt/acl.c:5224 utils/init/miscinit.c:502
 #, c-format
 msgid "role \"%s\" does not exist"
 msgstr "角色 \"%s\" 不存在"
 
-#: commands/user.c:977
+#: commands/user.c:995
 #, c-format
 msgid "role \"%s\" does not exist, skipping"
 msgstr "角色 \"%s\" 不存在"
 
-#: commands/user.c:989 commands/user.c:993
+#: commands/user.c:1007 commands/user.c:1011
 #, c-format
 msgid "current user cannot be dropped"
 msgstr "当前用户不能被删除"
 
-#: commands/user.c:997
+#: commands/user.c:1015
 #, c-format
 msgid "session user cannot be dropped"
 msgstr "会话用户不能被删除"
 
-#: commands/user.c:1008
+#: commands/user.c:1026
 #, c-format
 msgid "must be superuser to drop superusers"
 msgstr "只有超级用户可以删除超级用户"
 
-#: commands/user.c:1024
+#: commands/user.c:1042
 #, c-format
 msgid "role \"%s\" cannot be dropped because some objects depend on it"
 msgstr "无法删除\"%s\"因为有其它对象倚赖它"
 
-#: commands/user.c:1143
+#: commands/user.c:1163
 #, c-format
 msgid "session user cannot be renamed"
 msgstr "无法重命名会话用户"
 
-#: commands/user.c:1147
+#: commands/user.c:1167
 #, c-format
 msgid "current user cannot be renamed"
 msgstr "无法重新命名当前用户"
 
-#: commands/user.c:1163
+#: commands/user.c:1201
 #, c-format
 msgid "must be superuser to rename superusers"
 msgstr "只有超级用户可以对超级用户重命名"
 
-#: commands/user.c:1170
+#: commands/user.c:1208
 #, c-format
 msgid "permission denied to rename role"
 msgstr "重命名角色的权限不够"
 
-#: commands/user.c:1191
+#: commands/user.c:1229
 #, c-format
 msgid "MD5 password cleared because of role rename"
 msgstr "由于对角色重命名, 需要清除以MD5方式加密的口令"
 
-#: commands/user.c:1253
+#: commands/user.c:1299
 #, c-format
 msgid "column names cannot be included in GRANT/REVOKE ROLE"
 msgstr "在GRANT/REVOKE ROLE中不能包含列名"
 
-#: commands/user.c:1291
+#: commands/user.c:1337
 #, c-format
 msgid "permission denied to drop objects"
 msgstr "删除对象的权限不足"
 
-#: commands/user.c:1318 commands/user.c:1327
+#: commands/user.c:1364 commands/user.c:1376
 #, c-format
 msgid "permission denied to reassign objects"
 msgstr "重新分配对象的权限不足"
 
-#: commands/user.c:1402 commands/user.c:1548
+#: commands/user.c:1451 commands/user.c:1597
 #, c-format
 msgid "must have admin option on role \"%s\""
 msgstr "在角色\"%s\"上必须有admin选项"
 
-#: commands/user.c:1419
+#: commands/user.c:1468
 #, c-format
 msgid "must be superuser to set grantor"
 msgstr "只有超级用户能设置授权者"
 
-#: commands/user.c:1444
+#: commands/user.c:1493
 #, c-format
 msgid "role \"%s\" is a member of role \"%s\""
 msgstr "角色\"%s\" 是角色\"%s\"的成员"
 
-#: commands/user.c:1459
+#: commands/user.c:1508
 #, c-format
 msgid "role \"%s\" is already a member of role \"%s\""
 msgstr "角色\"%s\" 已经是角色\"%s\"的成员"
 
-#: commands/user.c:1570
+#: commands/user.c:1619
 #, c-format
 msgid "role \"%s\" is not a member of role \"%s\""
 msgstr "角色 \"%s\"不是角色 \"%s\"的成员"
 
 #: commands/vacuum.c:185
 #, c-format
-#| msgid "%s: cannot be executed by \"root\"\n"
 msgid "%s cannot be executed from VACUUM or ANALYZE"
 msgstr "不能从VACUUM或ANALYZE执行%s"
 
-#: commands/vacuum.c:527
+#: commands/vacuum.c:528
 #, c-format
 msgid "oldest xmin is far in the past"
 msgstr "最旧的xmin已经过去很久"
 
-#: commands/vacuum.c:528
+#: commands/vacuum.c:529
 #, c-format
 msgid "Close open transactions soon to avoid wraparound problems."
 msgstr "立即关闭已打开的事物, 以避免 wraparound 问题."
 
-#: commands/vacuum.c:567
+#: commands/vacuum.c:568
 #, c-format
 msgid "oldest multixact is far in the past"
 msgstr "最旧的多事务已经过去很久"
 
-#: commands/vacuum.c:568
+#: commands/vacuum.c:569
 #, c-format
 msgid ""
 "Close open transactions with multixacts soon to avoid wraparound problems."
 msgstr "立即关闭已打开的事务, 以避免重叠问题."
 
-#: commands/vacuum.c:1130
+#: commands/vacuum.c:1131
 #, c-format
 msgid "some databases have not been vacuumed in over 2 billion transactions"
 msgstr "一些数据库在超过 20 亿笔事物后没有做清理 (vacuum)."
 
-#: commands/vacuum.c:1131
+#: commands/vacuum.c:1132
 #, c-format
 msgid "You might have already suffered transaction-wraparound data loss."
 msgstr "您可能已经遇到了由于事务重叠而造成的数据丢失."
 
-#: commands/vacuum.c:1252
+#: commands/vacuum.c:1253
 #, c-format
 msgid "skipping vacuum of \"%s\" --- lock not available"
 msgstr "跳过对 \"%s\" 的压缩处理 --- 无法获取相应锁"
 
-#: commands/vacuum.c:1278
+#: commands/vacuum.c:1279
 #, c-format
 msgid "skipping \"%s\" --- only superuser can vacuum it"
 msgstr "忽略 \"%s\" --- 只有超级用户能够清理 (vacuum)"
 
-#: commands/vacuum.c:1282
+#: commands/vacuum.c:1283
 #, c-format
 msgid "skipping \"%s\" --- only superuser or database owner can vacuum it"
 msgstr "忽略 \"%s\" --- 只有超级用户或数据库属主能够清理 (vacuum)"
 
-#: commands/vacuum.c:1286
+#: commands/vacuum.c:1287
 #, c-format
 msgid "skipping \"%s\" --- only table or database owner can vacuum it"
 msgstr "忽略 \"%s\" --- 只有表或数据库属主能够清理 (vacuum)"
 
-#: commands/vacuum.c:1304
+#: commands/vacuum.c:1305
 #, c-format
 msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables"
 msgstr "忽略 \"%s\" --- 无法清理 (vacuum) 非表或者特殊的系统表"
 
-#: commands/vacuumlazy.c:358
+#: commands/vacuumlazy.c:363
 #, c-format
-#| msgid "automatic vacuum of table \"%s.%s.%s\""
 msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n"
 msgstr "自动清理表\"%s.%s.%s\":索引扫描:%d\n"
 
-#: commands/vacuumlazy.c:363
+#: commands/vacuumlazy.c:368
 #, c-format
-msgid "pages: %u removed, %u remain, %u skipped due to pins\n"
-msgstr "页面:%u被移除,%u保留,%u由于被占用而跳过\n"
+#| msgid "pages: %u removed, %u remain, %u skipped due to pins\n"
+msgid ""
+"pages: %u removed, %u remain, %u skipped due to pins, %u skipped frozen\n"
+msgstr "页面:%u 被移除,%u 保留,%u 由于被占用而跳过,%u 被跳过的已被冻结\n"
 
-#: commands/vacuumlazy.c:368
+#: commands/vacuumlazy.c:374
 #, c-format
 msgid ""
 "tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable\n"
 msgstr "元组:%.0f被移除,%.0f保留,%.0f已经死亡但还不能被移除\n"
 
-#: commands/vacuumlazy.c:373
+#: commands/vacuumlazy.c:379
 #, c-format
 msgid "buffer usage: %d hits, %d misses, %d dirtied\n"
 msgstr "缓冲区使用:%d次命中,%d次失效,%d次脏\n"
 
-#: commands/vacuumlazy.c:377
+#: commands/vacuumlazy.c:383
 #, c-format
 msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"
 msgstr "平均读取率:%.3f MB/s,平均写入率:%.3f MB/s\n"
 
-#: commands/vacuumlazy.c:379
+#: commands/vacuumlazy.c:385
 #, c-format
-#| msgid "statement: %s"
 msgid "system usage: %s"
 msgstr "系统用法:%s"
 
-#: commands/vacuumlazy.c:701
+#: commands/vacuumlazy.c:837
 #, c-format
 msgid "relation \"%s\" page %u is uninitialized --- fixing"
 msgstr "关系 \"%s\" 页 %u 没有初始化 --- 修复"
 
-#: commands/vacuumlazy.c:1113
+#: commands/vacuumlazy.c:1301
 #, c-format
 msgid "\"%s\": removed %.0f row versions in %u pages"
 msgstr "\"%1$s\": 在%3$u页中已删除%2$.0f行版本号"
 
-#: commands/vacuumlazy.c:1123
+#: commands/vacuumlazy.c:1311
 #, c-format
-#| msgid ""
-#| "%.0f dead row versions cannot be removed yet.\n"
-#| "%s."
 msgid "%.0f dead row versions cannot be removed yet.\n"
 msgstr "%.0f的死亡行版本还不能被移除。\n"
 
-#: commands/vacuumlazy.c:1125
+#: commands/vacuumlazy.c:1313
 #, c-format
 msgid "There were %.0f unused item pointers.\n"
 msgstr "有%.0f个未用的项指针。\n"
 
-#: commands/vacuumlazy.c:1127
+#: commands/vacuumlazy.c:1315
 #, c-format
 msgid "Skipped %u page due to buffer pins.\n"
 msgid_plural "Skipped %u pages due to buffer pins.\n"
 msgstr[0] "由于缓冲区占用而跳过%u个页面。\n"
 
-#: commands/vacuumlazy.c:1131
+#: commands/vacuumlazy.c:1319
 #, c-format
 msgid "%u page is entirely empty.\n"
 msgid_plural "%u pages are entirely empty.\n"
 msgstr[0] "%u 个页面完全为空。\n"
 
-#: commands/vacuumlazy.c:1139
+#: commands/vacuumlazy.c:1327
 #, c-format
 msgid ""
 "\"%s\": found %.0f removable, %.0f nonremovable row versions in %u out of %u "
@@ -9505,22 +9985,22 @@ msgid ""
 msgstr ""
 "\"%1$s\": 在超出%5$u页的%4$u中找到可删除版本号%2$.0f, 不可删除的版本号%3$.0f"
 
-#: commands/vacuumlazy.c:1208
+#: commands/vacuumlazy.c:1396
 #, c-format
 msgid "\"%s\": removed %d row versions in %d pages"
 msgstr "\"%1$s\": 在%3$d个页中已删除%2$d记录版本"
 
-#: commands/vacuumlazy.c:1375
+#: commands/vacuumlazy.c:1585
 #, c-format
 msgid "scanned index \"%s\" to remove %d row versions"
 msgstr "扫描索引\"%s\"来删除%d记录版本"
 
-#: commands/vacuumlazy.c:1421
+#: commands/vacuumlazy.c:1631
 #, c-format
 msgid "index \"%s\" now contains %.0f row versions in %u pages"
 msgstr "索引\"%1$s\"在%3$u个页中包含了行版本号%2$.0f"
 
-#: commands/vacuumlazy.c:1425
+#: commands/vacuumlazy.c:1635
 #, c-format
 msgid ""
 "%.0f index row versions were removed.\n"
@@ -9531,22 +10011,22 @@ msgstr ""
 "%u个索引页已经被删除,%u当前可重用.\n"
 "%s."
 
-#: commands/vacuumlazy.c:1482
+#: commands/vacuumlazy.c:1721
 #, c-format
 msgid "\"%s\": stopping truncate due to conflicting lock request"
 msgstr "\"%s\":由于与锁请求相冲突,停止截断操作"
 
-#: commands/vacuumlazy.c:1547
+#: commands/vacuumlazy.c:1786
 #, c-format
 msgid "\"%s\": truncated %u to %u pages"
 msgstr "\"%s\": 将%u截断到%u pages"
 
-#: commands/vacuumlazy.c:1603
+#: commands/vacuumlazy.c:1842
 #, c-format
 msgid "\"%s\": suspending truncate due to conflicting lock request"
 msgstr "\"%s\":由于与锁请求相冲突,暂停截断操作"
 
-#: commands/variable.c:164 utils/misc/guc.c:9649
+#: commands/variable.c:164 utils/misc/guc.c:9877
 #, c-format
 msgid "Unrecognized key word: \"%s\"."
 msgstr "未知的关键字: \"%s\"."
@@ -9581,63 +10061,63 @@ msgstr "PostgreSQL 不支持闰秒"
 msgid "UTC timezone offset is out of range."
 msgstr "UTC时区偏移已超出范围"
 
-#: commands/variable.c:495
+#: commands/variable.c:497
 #, c-format
 msgid "cannot set transaction read-write mode inside a read-only transaction"
 msgstr "不能在一个只读事物里面设置读写模式"
 
-#: commands/variable.c:502
+#: commands/variable.c:504
 #, c-format
 msgid "transaction read-write mode must be set before any query"
 msgstr "执行任意查询前必须设置事务的读写模式"
 
-#: commands/variable.c:509
+#: commands/variable.c:511
 #, c-format
 msgid "cannot set transaction read-write mode during recovery"
 msgstr "在恢复操作期间不能设置事务的读写模式"
 
-#: commands/variable.c:558
+#: commands/variable.c:560
 #, c-format
 msgid "SET TRANSACTION ISOLATION LEVEL must be called before any query"
 msgstr "SET TRANSACTION ISOLATION LEVEL 必须在任何查询之前调用"
 
-#: commands/variable.c:565
+#: commands/variable.c:567
 #, c-format
 msgid "SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction"
 msgstr "SET TRANSACTION ISOLATION LEVEL 不能在子事物中调用"
 
-#: commands/variable.c:572 storage/lmgr/predicate.c:1586
+#: commands/variable.c:574 storage/lmgr/predicate.c:1587
 #, c-format
 msgid "cannot use serializable mode in a hot standby"
 msgstr "热备过程中无法使用可串行化模式"
 
-#: commands/variable.c:573
+#: commands/variable.c:575
 #, c-format
 msgid "You can use REPEATABLE READ instead."
 msgstr "您必须使用REPEATABLE READ来代替"
 
-#: commands/variable.c:621
+#: commands/variable.c:623
 #, c-format
 msgid ""
 "SET TRANSACTION [NOT] DEFERRABLE cannot be called within a subtransaction"
 msgstr "SET TRANSACTION [NOT] DEFERRABLE 不能在子事物中调用"
 
-#: commands/variable.c:627
+#: commands/variable.c:629
 #, c-format
 msgid "SET TRANSACTION [NOT] DEFERRABLE must be called before any query"
 msgstr "SET TRANSACTION [NOT] DEFERRABLE 必须在任何查询之前调用"
 
-#: commands/variable.c:709
+#: commands/variable.c:711
 #, c-format
 msgid "Conversion between %s and %s is not supported."
 msgstr "不支持 %s 和 %s 之间的编码转换."
 
-#: commands/variable.c:716
+#: commands/variable.c:718
 #, c-format
 msgid "Cannot change \"client_encoding\" now."
 msgstr "现在无法改变 \"client_encoding\" 值."
 
-#: commands/variable.c:889
+#: commands/variable.c:898
 #, c-format
 msgid "permission denied to set role \"%s\""
 msgstr "设置角色\"%s\"的权限不足"
@@ -9733,13 +10213,13 @@ msgstr "没有在记录上对游标\"%s\"进行定位"
 msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\""
 msgstr "游标\"%s\"不对表\"%s\"进行可更新扫描"
 
-#: executor/execCurrent.c:231 executor/execQual.c:1156
+#: executor/execCurrent.c:231 executor/execQual.c:1178
 #, c-format
 msgid ""
 "type of parameter %d (%s) does not match that when preparing the plan (%s)"
 msgstr "第%d个参数(%s)的类型与正在执行计划(%s)中的不匹配"
 
-#: executor/execCurrent.c:243 executor/execQual.c:1168
+#: executor/execCurrent.c:243 executor/execQual.c:1190
 #, c-format
 msgid "no value found for parameter %d"
 msgstr "没有找到参数 %d 的值"
@@ -9751,54 +10231,52 @@ msgid ""
 "constraints as arbiters"
 msgstr "ON CONFLICT不支持可延迟唯一约束/排除约束作为仲裁者"
 
-#: executor/execIndexing.c:814
+#: executor/execIndexing.c:816
 #, c-format
 msgid "could not create exclusion constraint \"%s\""
 msgstr "无法创建排他约束\"%s\""
 
-#: executor/execIndexing.c:817
+#: executor/execIndexing.c:819
 #, c-format
 msgid "Key %s conflicts with key %s."
 msgstr "键%s与另外一个键%s冲突"
 
-#: executor/execIndexing.c:819
+#: executor/execIndexing.c:821
 #, c-format
-#| msgid "Key %s conflicts with key %s."
 msgid "Key conflicts exist."
 msgstr "存在键冲突。"
 
-#: executor/execIndexing.c:825
+#: executor/execIndexing.c:827
 #, c-format
 msgid "conflicting key value violates exclusion constraint \"%s\""
 msgstr "互相冲突的键值违反排他约束\"%s\""
 
-#: executor/execIndexing.c:828
+#: executor/execIndexing.c:830
 #, c-format
 msgid "Key %s conflicts with existing key %s."
 msgstr "键%s与已存在的键%s冲突"
 
-#: executor/execIndexing.c:830
+#: executor/execIndexing.c:832
 #, c-format
-#| msgid "Key %s conflicts with existing key %s."
 msgid "Key conflicts with existing key."
 msgstr "与现有键发生键冲突。"
 
-#: executor/execMain.c:1025
+#: executor/execMain.c:1027
 #, c-format
 msgid "cannot change sequence \"%s\""
 msgstr "不可以改变序列 \"%s\""
 
-#: executor/execMain.c:1031
+#: executor/execMain.c:1033
 #, c-format
 msgid "cannot change TOAST relation \"%s\""
 msgstr "不可以改变 TOAST 关系 \"%s\""
 
-#: executor/execMain.c:1049 rewrite/rewriteHandler.c:2631
+#: executor/execMain.c:1051 rewrite/rewriteHandler.c:2648
 #, c-format
 msgid "cannot insert into view \"%s\""
 msgstr "无法插入到视图\"%s\""
 
-#: executor/execMain.c:1051 rewrite/rewriteHandler.c:2634
+#: executor/execMain.c:1053 rewrite/rewriteHandler.c:2651
 #, c-format
 msgid ""
 "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or "
@@ -9807,12 +10285,12 @@ msgstr ""
 "启用向视图插入操作, 要提供INSTEAD OF INSERT触发器或者提供一个无条件的 ON "
 "INSERT DO INSTEAD 规则."
 
-#: executor/execMain.c:1057 rewrite/rewriteHandler.c:2639
+#: executor/execMain.c:1059 rewrite/rewriteHandler.c:2656
 #, c-format
 msgid "cannot update view \"%s\""
 msgstr "无法更新视图\"%s\""
 
-#: executor/execMain.c:1059 rewrite/rewriteHandler.c:2642
+#: executor/execMain.c:1061 rewrite/rewriteHandler.c:2659
 #, c-format
 msgid ""
 "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an "
@@ -9821,12 +10299,12 @@ msgstr ""
 "启用对视图的更新操作, 需要提供INSTEAD OF UPDATE触发器或者一个无条件的 ON "
 "UPDATE DO INSTEAD 规则."
 
-#: executor/execMain.c:1065 rewrite/rewriteHandler.c:2647
+#: executor/execMain.c:1067 rewrite/rewriteHandler.c:2664
 #, c-format
 msgid "cannot delete from view \"%s\""
 msgstr "无法删除视图\"%s\""
 
-#: executor/execMain.c:1067 rewrite/rewriteHandler.c:2650
+#: executor/execMain.c:1069 rewrite/rewriteHandler.c:2667
 #, c-format
 msgid ""
 "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an "
@@ -9836,305 +10314,298 @@ msgstr ""
 "DELETE DO INSTEAD 规则."
 
 # describe.c:933
-#: executor/execMain.c:1078
+#: executor/execMain.c:1080
 #, c-format
 msgid "cannot change materialized view \"%s\""
 msgstr "不能改变物化视图 \"%s\""
 
-#: executor/execMain.c:1090
+#: executor/execMain.c:1092
 #, c-format
 msgid "cannot insert into foreign table \"%s\""
 msgstr "不能插值到外部表 \"%s\""
 
-#: executor/execMain.c:1096
+#: executor/execMain.c:1098
 #, c-format
 msgid "foreign table \"%s\" does not allow inserts"
 msgstr "外部表 \"%s\" 不允许插入操作"
 
-#: executor/execMain.c:1103
+#: executor/execMain.c:1105
 #, c-format
 msgid "cannot update foreign table \"%s\""
 msgstr "无法更新外部表 \"%s\""
 
-#: executor/execMain.c:1109
+#: executor/execMain.c:1111
 #, c-format
 msgid "foreign table \"%s\" does not allow updates"
 msgstr "外部表 \"%s\" 不允许更新"
 
-#: executor/execMain.c:1116
+#: executor/execMain.c:1118
 #, c-format
 msgid "cannot delete from foreign table \"%s\""
 msgstr "不能从外部表 \"%s\" 删除数据"
 
-#: executor/execMain.c:1122
+#: executor/execMain.c:1124
 #, c-format
 msgid "foreign table \"%s\" does not allow deletes"
 msgstr "外部表 \"%s\" 不允许删除数据"
 
-#: executor/execMain.c:1133
+#: executor/execMain.c:1135
 #, c-format
 msgid "cannot change relation \"%s\""
 msgstr "无法改变关系 \"%s\""
 
-#: executor/execMain.c:1159
+#: executor/execMain.c:1161
 #, c-format
 msgid "cannot lock rows in sequence \"%s\""
 msgstr "无法锁定序列\"%s\"中的行"
 
-#: executor/execMain.c:1166
+#: executor/execMain.c:1168
 #, c-format
 msgid "cannot lock rows in TOAST relation \"%s\""
 msgstr "无法锁定TOAST 关系 \"%s\"中的行"
 
-#: executor/execMain.c:1173
+#: executor/execMain.c:1175
 #, c-format
 msgid "cannot lock rows in view \"%s\""
 msgstr "无法锁定 \"%s\" 中的行"
 
-#: executor/execMain.c:1181
+#: executor/execMain.c:1183
 #, c-format
 msgid "cannot lock rows in materialized view \"%s\""
 msgstr "无法锁定物化视图 \"%s\" 中的行"
 
-#: executor/execMain.c:1190 executor/execMain.c:2578
+#: executor/execMain.c:1192 executor/execMain.c:2603
 #: executor/nodeLockRows.c:132
 #, c-format
 msgid "cannot lock rows in foreign table \"%s\""
 msgstr "无法锁定外部表 \"%s\"中的行"
 
-#: executor/execMain.c:1196
+#: executor/execMain.c:1198
 #, c-format
 msgid "cannot lock rows in relation \"%s\""
 msgstr "无法锁定关系 \"%s\"中的行"
 
-#: executor/execMain.c:1696
+#: executor/execMain.c:1721
 #, c-format
 msgid "null value in column \"%s\" violates not-null constraint"
 msgstr "在字段 \"%s\" 中空值违反了非空约束"
 
-#: executor/execMain.c:1698 executor/execMain.c:1724 executor/execMain.c:1813
+#: executor/execMain.c:1723 executor/execMain.c:1749 executor/execMain.c:1838
 #, c-format
 msgid "Failing row contains %s."
 msgstr "失败, 行包含%s."
 
-#: executor/execMain.c:1722
+#: executor/execMain.c:1747
 #, c-format
 msgid "new row for relation \"%s\" violates check constraint \"%s\""
 msgstr "关系 \"%s\" 的新列违反了检查约束 \"%s\""
 
-#: executor/execMain.c:1811
+#: executor/execMain.c:1836
 #, c-format
-#| msgid "new row violates WITH CHECK OPTION for view \"%s\""
 msgid "new row violates check option for view \"%s\""
 msgstr "新行违反了视图\"%s\"的检查选项"
 
-#: executor/execMain.c:1821
+#: executor/execMain.c:1846
 #, c-format
-#| msgid "%s %s will create implicit index \"%s\" for table \"%s\""
 msgid "new row violates row-level security policy \"%s\" for table \"%s\""
 msgstr "新行违背了表\"%2$s\"的行级安全性策略\"%1$s\""
 
-#: executor/execMain.c:1826
+#: executor/execMain.c:1851
 #, c-format
 msgid "new row violates row-level security policy for table \"%s\""
 msgstr "新行违背了表\"%s\"的行级安全策略"
 
-#: executor/execMain.c:1833
+#: executor/execMain.c:1858
 #, c-format
 msgid ""
 "new row violates row-level security policy \"%s\" (USING expression) for "
 "table \"%s\""
 msgstr "新行违背了表\"%s\"的行级安全策略\"%s\"(USING expression)"
 
-#: executor/execMain.c:1838
+#: executor/execMain.c:1863
 #, c-format
 msgid ""
 "new row violates row-level security policy (USING expression) for table \"%s"
 "\""
 msgstr "新行违背了表\"%s\"的行级安全策略(USING expression)"
 
-#: executor/execQual.c:300 executor/execQual.c:328 executor/execQual.c:3191
-#: utils/adt/array_userfuncs.c:472 utils/adt/arrayfuncs.c:263
-#: utils/adt/arrayfuncs.c:561 utils/adt/arrayfuncs.c:1291
-#: utils/adt/arrayfuncs.c:3335 utils/adt/arrayfuncs.c:5219
-#: utils/adt/arrayfuncs.c:5742
+#: executor/execQual.c:302 executor/execQual.c:339 executor/execQual.c:3213
+#: utils/adt/array_userfuncs.c:472 utils/adt/arrayfuncs.c:260
+#: utils/adt/arrayfuncs.c:558 utils/adt/arrayfuncs.c:1288
+#: utils/adt/arrayfuncs.c:3361 utils/adt/arrayfuncs.c:5245
+#: utils/adt/arrayfuncs.c:5768
 #, c-format
 msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
 msgstr "数组的维数(%d)超过最大允许值(%d)"
 
-#: executor/execQual.c:313 executor/execQual.c:341
+#: executor/execQual.c:324 executor/execQual.c:360
 #, c-format
 msgid "array subscript in assignment must not be null"
 msgstr "在分配中的数组下标不能为空"
 
-#: executor/execQual.c:635 executor/execQual.c:4116
+#: executor/execQual.c:657 executor/execQual.c:4138
 #, c-format
 msgid "attribute %d has wrong type"
 msgstr "属性%d的类型错误"
 
-#: executor/execQual.c:636 executor/execQual.c:4117
+#: executor/execQual.c:658 executor/execQual.c:4139
 #, c-format
 msgid "Table has type %s, but query expects %s."
 msgstr "表具有类型%s,但是查询期望类型%s."
 
-#: executor/execQual.c:829 executor/execQual.c:846 executor/execQual.c:1046
+#: executor/execQual.c:851 executor/execQual.c:868 executor/execQual.c:1068
 #: executor/nodeModifyTable.c:95 executor/nodeModifyTable.c:105
 #: executor/nodeModifyTable.c:122 executor/nodeModifyTable.c:130
 #, c-format
 msgid "table row type and query-specified row type do not match"
 msgstr "表记录类型和查询指定记录不匹配"
 
-#: executor/execQual.c:830
+#: executor/execQual.c:852
 #, c-format
 msgid "Table row contains %d attribute, but query expects %d."
 msgid_plural "Table row contains %d attributes, but query expects %d."
 msgstr[0] "在表记录中包含%d个属性, 但是查询期望%d个属性"
 
-#: executor/execQual.c:847 executor/nodeModifyTable.c:106
+#: executor/execQual.c:869 executor/nodeModifyTable.c:106
 #, c-format
 msgid "Table has type %s at ordinal position %d, but query expects %s."
 msgstr "表在位置%2$d具有类型%1$s,但是查询期望类型%3$s."
 
-#: executor/execQual.c:1047 executor/execQual.c:1643
+#: executor/execQual.c:1069 executor/execQual.c:1665
 #, c-format
 msgid "Physical storage mismatch on dropped attribute at ordinal position %d."
 msgstr "在顺序位置%d上已删除属性与物理存储上的不匹配."
 
-#: executor/execQual.c:1322 parser/parse_func.c:115 parser/parse_func.c:542
-#: parser/parse_func.c:894
+#: executor/execQual.c:1344 parser/parse_func.c:115 parser/parse_func.c:542
+#: parser/parse_func.c:895
 #, c-format
 msgid "cannot pass more than %d argument to a function"
 msgid_plural "cannot pass more than %d arguments to a function"
 msgstr[0] "向函数传递的参数不多于%d个"
 
-#: executor/execQual.c:1511
+#: executor/execQual.c:1533
 #, c-format
 msgid "functions and operators can take at most one set argument"
 msgstr "函数和操作符最多带一组参数"
 
-#: executor/execQual.c:1561
+#: executor/execQual.c:1583
 #, c-format
 msgid ""
 "function returning setof record called in context that cannot accept type "
 "record"
 msgstr "调用用于返回setof记录的函数的环境不能接受使用记录类型"
 
-#: executor/execQual.c:1616 executor/execQual.c:1632 executor/execQual.c:1642
+#: executor/execQual.c:1638 executor/execQual.c:1654 executor/execQual.c:1664
 #, c-format
 msgid "function return row and query-specified return row do not match"
 msgstr "指定查询返回记录和实际函数返回记录不匹配"
 
-#: executor/execQual.c:1617
+#: executor/execQual.c:1639
 #, c-format
 msgid "Returned row contains %d attribute, but query expects %d."
 msgid_plural "Returned row contains %d attributes, but query expects %d."
 msgstr[0] "在所返回的记录中包含了%d个属性,但是查询期望有%d个属性"
 
-#: executor/execQual.c:1633
+#: executor/execQual.c:1655
 #, c-format
 msgid "Returned type %s at ordinal position %d, but query expects %s."
 msgstr "在顺序位置%2$d的返回类型是%1$s, 但是查询期望使用类型%3$s."
 
-#: executor/execQual.c:1875 executor/execQual.c:2306
+#: executor/execQual.c:1897 executor/execQual.c:2328
 #, c-format
 msgid "table-function protocol for materialize mode was not followed"
 msgstr "没有跟随针对物化模式的表函数协议"
 
-#: executor/execQual.c:1895 executor/execQual.c:2313
+#: executor/execQual.c:1917 executor/execQual.c:2335
 #, c-format
 msgid "unrecognized table-function returnMode: %d"
 msgstr "未认可的表函数返回模式 (returnMode): %d"
 
-#: executor/execQual.c:2223
+#: executor/execQual.c:2245
 #, c-format
 msgid "function returning set of rows cannot return null value"
 msgstr "函数返回值为多列时不能返回空值"
 
-#: executor/execQual.c:2280
+#: executor/execQual.c:2302
 #, c-format
 msgid "rows returned by function are not all of the same row type"
 msgstr "函数返回的记录不完全属于相同的记录类型"
 
-#: executor/execQual.c:2495
+#: executor/execQual.c:2517
 #, c-format
 msgid "IS DISTINCT FROM does not support set arguments"
 msgstr "IS DISTINCT FROM 不支持一组参数"
 
-#: executor/execQual.c:2572
+#: executor/execQual.c:2594
 #, c-format
 msgid "op ANY/ALL (array) does not support set arguments"
 msgstr "操作符 ANY/ALL (数组) 不支持设置参数"
 
-#: executor/execQual.c:3169
+#: executor/execQual.c:3191
 #, c-format
 msgid "cannot merge incompatible arrays"
 msgstr "无法合并不兼容的排列"
 
-#: executor/execQual.c:3170
+#: executor/execQual.c:3192
 #, c-format
 msgid ""
 "Array with element type %s cannot be included in ARRAY construct with "
 "element type %s."
 msgstr "元素类型为 %s 的 ARRAY 结构中不能包含带有元素类型为 %s 的数组."
 
-#: executor/execQual.c:3211 executor/execQual.c:3238
+#: executor/execQual.c:3233 executor/execQual.c:3260
 #, c-format
 msgid ""
 "multidimensional arrays must have array expressions with matching dimensions"
 msgstr "多维数组必须有符合维度的数组表达式"
 
-#: executor/execQual.c:3753
+#: executor/execQual.c:3775
 #, c-format
 msgid "NULLIF does not support set arguments"
 msgstr "NULLIF 不支持一组参数"
 
-#: executor/execQual.c:3986 utils/adt/domains.c:136
+#: executor/execQual.c:4008 utils/adt/domains.c:136
 #, c-format
 msgid "domain %s does not allow null values"
 msgstr "域 %s 不允许空值"
 
-#: executor/execQual.c:4016 utils/adt/domains.c:173
+#: executor/execQual.c:4038 utils/adt/domains.c:173
 #, c-format
 msgid "value for domain %s violates check constraint \"%s\""
 msgstr "域 %s 的值违反了检查约束 \"%s\""
 
-#: executor/execQual.c:4371
+#: executor/execQual.c:4393
 #, c-format
 msgid "WHERE CURRENT OF is not supported for this table type"
 msgstr "这种表类型不能使用WHERE CURRENT OF"
 
-#: executor/execQual.c:4518 parser/parse_agg.c:596 parser/parse_agg.c:626
-#, c-format
-msgid "aggregate function calls cannot be nested"
-msgstr "不允许嵌套调用聚合函数"
-
-#: executor/execQual.c:4580 parser/parse_agg.c:742
+#: executor/execQual.c:4590 parser/parse_agg.c:743
 #, c-format
 msgid "window function calls cannot be nested"
 msgstr "不允许嵌套调用窗口函数"
 
-#: executor/execQual.c:4792
+#: executor/execQual.c:4802
 #, c-format
 msgid "target type is not an array"
 msgstr "目标类型不是一个数组"
 
-#: executor/execQual.c:4907
+#: executor/execQual.c:4917
 #, c-format
 msgid "ROW() column has type %s instead of type %s"
 msgstr "ROW() 列类型 %s 替换为 %s"
 
-#: executor/execQual.c:5042 utils/adt/arrayfuncs.c:3777
-#: utils/adt/arrayfuncs.c:6315 utils/adt/rowtypes.c:927
+#: executor/execQual.c:5052 utils/adt/arrayfuncs.c:3803
+#: utils/adt/arrayfuncs.c:6341 utils/adt/rowtypes.c:927
 #, c-format
 msgid "could not identify a comparison function for type %s"
 msgstr "无法为类型 %s 确认一个比对函数"
 
-#: executor/execUtils.c:831
+#: executor/execUtils.c:819
 #, c-format
 msgid "materialized view \"%s\" has not been populated"
 msgstr "物化视图 \"%s\"未被初始化"
 
-#: executor/execUtils.c:833
+#: executor/execUtils.c:821
 #, c-format
 msgid "Use the REFRESH MATERIALIZED VIEW command."
 msgstr "使用命令 REFRESH MATERIALIZED VIEW."
@@ -10145,87 +10616,98 @@ msgid "could not determine actual type of argument declared %s"
 msgstr "无法确定声明为 %s 的参数的实际类型"
 
 #. translator: %s is a SQL statement name
-#: executor/functions.c:506
+#: executor/functions.c:508
 #, c-format
 msgid "%s is not allowed in a SQL function"
 msgstr "%s 不允许在一个 SQL 函数中"
 
 #. translator: %s is a SQL statement name
-#: executor/functions.c:513 executor/spi.c:1368 executor/spi.c:2158
+#: executor/functions.c:515 executor/spi.c:1368 executor/spi.c:2158
 #, c-format
 msgid "%s is not allowed in a non-volatile function"
 msgstr "%s 在一个 non-valatile 函数中是不允许的"
 
-#: executor/functions.c:641
+#: executor/functions.c:643
 #, c-format
 msgid ""
 "could not determine actual result type for function declared to return type "
 "%s"
 msgstr "无法确定实际结果类型为函数声明返回类型 %s"
 
-#: executor/functions.c:1405
+#: executor/functions.c:1408
 #, c-format
 msgid "SQL function \"%s\" statement %d"
 msgstr "SQL 函数 \"%s\" 语句 %d"
 
-#: executor/functions.c:1431
+#: executor/functions.c:1434
 #, c-format
 msgid "SQL function \"%s\" during startup"
 msgstr "SQL 函数 \"%s\" 在启动的时候"
 
-#: executor/functions.c:1590 executor/functions.c:1627
-#: executor/functions.c:1639 executor/functions.c:1752
-#: executor/functions.c:1785 executor/functions.c:1815
+#: executor/functions.c:1593 executor/functions.c:1630
+#: executor/functions.c:1642 executor/functions.c:1755
+#: executor/functions.c:1788 executor/functions.c:1818
 #, c-format
 msgid "return type mismatch in function declared to return %s"
 msgstr "函数返回类型和声明类型 %s 不匹配"
 
-#: executor/functions.c:1592
+#: executor/functions.c:1595
 #, c-format
 msgid ""
 "Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING."
 msgstr "函数的最后语句必须是 SELECT 或 INSERT/UPDATE/DELETE RETURNING."
 
-#: executor/functions.c:1629
+#: executor/functions.c:1632
 #, c-format
 msgid "Final statement must return exactly one column."
 msgstr "最终的语句必须返回一列."
 
-#: executor/functions.c:1641
+#: executor/functions.c:1644
 #, c-format
 msgid "Actual return type is %s."
 msgstr "实际返回类型是 %s."
 
-#: executor/functions.c:1754
+#: executor/functions.c:1757
 #, c-format
 msgid "Final statement returns too many columns."
 msgstr "最终的语句的返回列太多."
 
-#: executor/functions.c:1787
+#: executor/functions.c:1790
 #, c-format
 msgid "Final statement returns %s instead of %s at column %d."
 msgstr "最终语句在第 %3$d 列返回 %1$s 而不是 %2$s"
 
-#: executor/functions.c:1817
+#: executor/functions.c:1820
 #, c-format
 msgid "Final statement returns too few columns."
 msgstr "最终的语句返回的列太少."
 
-#: executor/functions.c:1866
+#: executor/functions.c:1869
 #, c-format
 msgid "return type %s is not supported for SQL functions"
 msgstr "SQL 函数不支持返回类型 %s"
 
-#: executor/nodeAgg.c:2450 executor/nodeWindowAgg.c:2286
+#: executor/nodeAgg.c:3011
+#, c-format
+#| msgid "final function with extra arguments must not be declared STRICT"
+msgid "combine function for aggregate %u must to be declared as strict"
+msgstr "聚集 %u 的组合函数必须被声明为严格"
+
+#: executor/nodeAgg.c:3055 executor/nodeWindowAgg.c:2289
 #, c-format
 msgid "aggregate %u needs to have compatible input type and transition type"
 msgstr "聚集 %u 需要有兼容的输入类型和转换类型"
 
-#: executor/nodeCustom.c:147 executor/nodeCustom.c:158
+#: executor/nodeAgg.c:3127 parser/parse_agg.c:597 parser/parse_agg.c:627
+#, c-format
+msgid "aggregate function calls cannot be nested"
+msgstr "不允许嵌套调用聚合函数"
+
+#: executor/nodeCustom.c:148 executor/nodeCustom.c:159
 #, c-format
-#| msgid "extension \"%s\" does not support SET SCHEMA"
-msgid "custom-scan \"%s\" does not support MarkPos"
-msgstr "自定义扫描\"%s\"不支持MarkPos"
+#| msgid "custom-scan \"%s\" does not support MarkPos"
+msgid "custom scan \"%s\" does not support MarkPos"
+msgstr "自定义扫描 \"%s\" 不支持 MarkPos"
 
 #: executor/nodeHashjoin.c:823 executor/nodeHashjoin.c:853
 #, c-format
@@ -10244,7 +10726,6 @@ msgstr "无法从散列联接 (hash-join) 临时文件读取: %m"
 
 #: executor/nodeIndexonlyscan.c:179
 #, c-format
-#| msgid "window functions are not allowed in index predicates"
 msgid "lossy distance functions are not supported in index-only scans"
 msgstr "在只用索引扫描中不支持有损距离函数"
 
@@ -10283,12 +10764,12 @@ msgstr "在顺序位置%d上查询为已删除的列提供了一个值"
 msgid "Query has too few columns."
 msgstr "查询中的列太少了"
 
-#: executor/nodeModifyTable.c:1080
+#: executor/nodeModifyTable.c:1117
 #, c-format
 msgid "ON CONFLICT DO UPDATE command cannot affect row a second time"
 msgstr "ON CONFLICT DO UPDATE命令无法再次影响行"
 
-#: executor/nodeModifyTable.c:1081
+#: executor/nodeModifyTable.c:1118
 #, c-format
 msgid ""
 "Ensure that no rows proposed for insertion within the same command have "
@@ -10297,7 +10778,6 @@ msgstr "确保在具有重复受约束值的同一个命令中不会插入行。
 
 #: executor/nodeSamplescan.c:307
 #, c-format
-#| msgid "argument %d cannot be null"
 msgid "TABLESAMPLE parameter cannot be null"
 msgstr "TABLESAMPLE参数不能为空值"
 
@@ -10373,57 +10853,57 @@ msgstr "不支持DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE "
 msgid "Scrollable cursors must be READ ONLY."
 msgstr "可滚动游标必须为只读."
 
-#: executor/spi.c:2450
+#: executor/spi.c:2459
 #, c-format
 msgid "SQL statement \"%s\""
 msgstr "SQL 语句 \"%s\""
 
-#: foreign/foreign.c:192
+#: foreign/foreign.c:314
 #, c-format
 msgid "user mapping not found for \"%s\""
 msgstr "没有找到对于\"%s\"的用户映射"
 
-#: foreign/foreign.c:643
+#: foreign/foreign.c:750
 #, c-format
 msgid "invalid option \"%s\""
 msgstr "无效选项 \"%s\""
 
-#: foreign/foreign.c:644
+#: foreign/foreign.c:751
 #, c-format
 msgid "Valid options in this context are: %s"
 msgstr "这个环境中有效选项是:%s"
 
-#: gram.y:1009
+#: gram.y:1004
 #, c-format
 msgid "unrecognized role option \"%s\""
 msgstr "无法识别的角色选项\"%s\""
 
-#: gram.y:1285 gram.y:1300
+#: gram.y:1280 gram.y:1295
 #, c-format
 msgid "CREATE SCHEMA IF NOT EXISTS cannot include schema elements"
 msgstr "CREATE SCHEMA IF NOT EXISTS不能包含方案(schema)元素"
 
-#: gram.y:1445
+#: gram.y:1440
 #, c-format
 msgid "current database cannot be changed"
 msgstr "不能改变当前使用的数据库"
 
-#: gram.y:1569
+#: gram.y:1564
 #, c-format
 msgid "time zone interval must be HOUR or HOUR TO MINUTE"
 msgstr "时区间隔必须为 HOUR 或者 HOUR TO MINUTE"
 
-#: gram.y:2584 gram.y:2613
+#: gram.y:2602 gram.y:2631
 #, c-format
 msgid "STDIN/STDOUT not allowed with PROGRAM"
 msgstr "STDIN/STDOUT 不允许与PROGRAM一起使用"
 
-#: gram.y:2879 gram.y:2886 gram.y:10153 gram.y:10161
+#: gram.y:2897 gram.y:2904 gram.y:10275 gram.y:10283
 #, c-format
 msgid "GLOBAL is deprecated in temporary table creation"
 msgstr "GLOBAL在临时表中的创建中已经被废弃使用"
 
-#: gram.y:3325 utils/adt/ri_triggers.c:316 utils/adt/ri_triggers.c:373
+#: gram.y:3345 utils/adt/ri_triggers.c:316 utils/adt/ri_triggers.c:373
 #: utils/adt/ri_triggers.c:792 utils/adt/ri_triggers.c:1015
 #: utils/adt/ri_triggers.c:1171 utils/adt/ri_triggers.c:1352
 #: utils/adt/ri_triggers.c:1517 utils/adt/ri_triggers.c:1693
@@ -10434,253 +10914,247 @@ msgstr "GLOBAL在临时表中的创建中已经被废弃使用"
 msgid "MATCH PARTIAL not yet implemented"
 msgstr "MATCH PARTIAL 仍未实现"
 
-#: gram.y:4759
+#: gram.y:4800
 msgid "duplicate trigger events specified"
 msgstr "重复指定触发器事件"
 
-#: gram.y:4852 parser/parse_utilcmd.c:2657 parser/parse_utilcmd.c:2683
+#: gram.y:4893 parser/parse_utilcmd.c:2741 parser/parse_utilcmd.c:2767
 #, c-format
 msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
 msgstr "约束声明 INITIALLY DEFERRED 必须为 DEFERRABLE"
 
-#: gram.y:4859
+#: gram.y:4900
 #, c-format
 msgid "conflicting constraint properties"
 msgstr "约束属性冲突"
 
-#: gram.y:4991
+#: gram.y:5032
 #, c-format
 msgid "CREATE ASSERTION is not yet implemented"
 msgstr "CREATE ASSERTION 仍未实现"
 
-#: gram.y:5007
+#: gram.y:5048
 #, c-format
 msgid "DROP ASSERTION is not yet implemented"
 msgstr "DROP ASSERTION 仍未实现"
 
-#: gram.y:5353
+#: gram.y:5394
 #, c-format
 msgid "RECHECK is no longer required"
 msgstr "不再需要RECHECK选项了"
 
 # describe.c:289
-#: gram.y:5354
+#: gram.y:5395
 #, c-format
 msgid "Update your data type."
 msgstr "更改您的数据类型"
 
-#: gram.y:6931
+#: gram.y:6973
 #, c-format
 msgid "aggregates cannot have output arguments"
 msgstr "聚合函数不能使用输出参数"
 
-#: gram.y:7246 utils/adt/regproc.c:774 utils/adt/regproc.c:815
+#: gram.y:7292 utils/adt/regproc.c:774 utils/adt/regproc.c:815
 #, c-format
 msgid "missing argument"
 msgstr "缺少参数"
 
-#: gram.y:7247 utils/adt/regproc.c:775 utils/adt/regproc.c:816
+#: gram.y:7293 utils/adt/regproc.c:775 utils/adt/regproc.c:816
 #, c-format
 msgid "Use NONE to denote the missing argument of a unary operator."
 msgstr "使用 NONE 表示一元操作符缺少的参数."
 
-#: gram.y:8721 gram.y:8739
+#: gram.y:8843 gram.y:8861
 #, c-format
 msgid "WITH CHECK OPTION not supported on recursive views"
 msgstr "递归视图不能使用WITH CHECK OPTION"
 
-#: gram.y:9745 parser/parse_expr.c:1468
+#: gram.y:9867 parser/parse_expr.c:1468
 #, c-format
 msgid "number of columns does not match number of values"
 msgstr "列的数量与值的数量不匹配"
 
-#: gram.y:10261
+#: gram.y:10383
 #, c-format
 msgid "LIMIT #,# syntax is not supported"
 msgstr "不支持 LIMIT #,# 语法"
 
-#: gram.y:10262
+#: gram.y:10384
 #, c-format
 msgid "Use separate LIMIT and OFFSET clauses."
 msgstr "LIMIT和OFFSET子句要分隔开"
 
-#: gram.y:10525 gram.y:10550
+#: gram.y:10647 gram.y:10672
 #, c-format
 msgid "VALUES in FROM must have an alias"
 msgstr "FROM中的VALUES子句必须有一个别名"
 
-#: gram.y:10526 gram.y:10551
+#: gram.y:10648 gram.y:10673
 #, c-format
 msgid "For example, FROM (VALUES ...) [AS] foo."
 msgstr "例如, FROM (SELECT ...) [AS] foo."
 
-#: gram.y:10531 gram.y:10556
+#: gram.y:10653 gram.y:10678
 #, c-format
 msgid "subquery in FROM must have an alias"
 msgstr "FROM 中的子查询必须有一个别名"
 
-#: gram.y:10532 gram.y:10557
+#: gram.y:10654 gram.y:10679
 #, c-format
 msgid "For example, FROM (SELECT ...) [AS] foo."
 msgstr "例如, FROM (SELECT ...) [AS] foo."
 
-#: gram.y:11131
+#: gram.y:11253
 #, c-format
 msgid "precision for type float must be at least 1 bit"
 msgstr "浮点类型的精确度必须至少 1 位"
 
-#: gram.y:11140
+#: gram.y:11262
 #, c-format
 msgid "precision for type float must be less than 54 bits"
 msgstr "浮点类型的精确度必须小于 54 位"
 
-#: gram.y:11644
+#: gram.y:11766
 #, c-format
 msgid "wrong number of parameters on left side of OVERLAPS expression"
 msgstr "OVERLAPS 表达式左边的参数个数不对"
 
-#: gram.y:11649
+#: gram.y:11771
 #, c-format
 msgid "wrong number of parameters on right side of OVERLAPS expression"
 msgstr "OVERLAPS 表达式右边的参数个数不对"
 
-#: gram.y:11826
+#: gram.y:11948
 #, c-format
 msgid "UNIQUE predicate is not yet implemented"
 msgstr "没有实现UNIQUE谓词"
 
-#: gram.y:12158
+#: gram.y:12280
 #, c-format
 msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP"
 msgstr "WITHIN GROUP不允许多个 ORDER BY 子句"
 
-#: gram.y:12163
+#: gram.y:12285
 #, c-format
 msgid "cannot use DISTINCT with WITHIN GROUP"
 msgstr "不能将 DISTINCT 和 WITHIN GROUP混在一起使用"
 
-#: gram.y:12168
+#: gram.y:12290
 #, c-format
 msgid "cannot use VARIADIC with WITHIN GROUP"
 msgstr "不能将 VARIADIC 和 WITHIN GROUP在一起混用"
 
-#: gram.y:12674
+#: gram.y:12796
 #, c-format
 msgid "RANGE PRECEDING is only supported with UNBOUNDED"
 msgstr "UNBOUNDED不支持RANGE PRECEDING"
 
-#: gram.y:12680
+#: gram.y:12802
 #, c-format
 msgid "RANGE FOLLOWING is only supported with UNBOUNDED"
 msgstr "UNBOUNDED不支持RANGE FOLLOWING"
 
-#: gram.y:12707 gram.y:12730
+#: gram.y:12829 gram.y:12852
 #, c-format
 msgid "frame start cannot be UNBOUNDED FOLLOWING"
 msgstr "框架的起始位置不能被执行UNBOUNDED FOLLOWING操作."
 
-#: gram.y:12712
+#: gram.y:12834
 #, c-format
 msgid "frame starting from following row cannot end with current row"
 msgstr "从后面记录启动的窗口框架(frame)不能以当前记录结束"
 
-#: gram.y:12735
+#: gram.y:12857
 #, c-format
 msgid "frame end cannot be UNBOUNDED PRECEDING"
 msgstr "框架的结束位置不能被执行UNBOUNDED FOLLOWING操作."
 
-#: gram.y:12741
+#: gram.y:12863
 #, c-format
 msgid "frame starting from current row cannot have preceding rows"
 msgstr "从当前记录启动的窗口框架(frame)不能拥有正在处理的记录"
 
-#: gram.y:12748
+#: gram.y:12870
 #, c-format
 msgid "frame starting from following row cannot have preceding rows"
 msgstr "从后面记录启动的窗口框架(frame)不能拥有正在处理的记录"
 
-#: gram.y:13406
+#: gram.y:13535
 #, c-format
 msgid "type modifier cannot have parameter name"
 msgstr "类型修改器不能有参数名称"
 
-#: gram.y:13412
+#: gram.y:13541
 #, c-format
 msgid "type modifier cannot have ORDER BY"
 msgstr "类型修改器不能有ORDER BY"
 
-#: gram.y:13470 gram.y:13505
-#, c-format
-msgid "role name \"%s\" is reserved"
-msgstr "角色名称 \"%s\" 被保留了"
-
-#: gram.y:13476 gram.y:13482
+#: gram.y:13605 gram.y:13611
 #, c-format
-#| msgid "%s cannot be applied to a join"
 msgid "%s cannot be used as a role name here"
 msgstr "在这里%s不能被用做一个角色名"
 
-#: gram.y:14101 gram.y:14290
+#: gram.y:14233 gram.y:14422
 msgid "improper use of \"*\""
 msgstr "对\"*\"的使用不正确"
 
-#: gram.y:14253 gram.y:14270 tsearch/spell.c:518 tsearch/spell.c:535
-#: tsearch/spell.c:552 tsearch/spell.c:569 tsearch/spell.c:591
+#: gram.y:14385 gram.y:14402 tsearch/spell.c:954 tsearch/spell.c:971
+#: tsearch/spell.c:988 tsearch/spell.c:1005 tsearch/spell.c:1070
 #, c-format
 msgid "syntax error"
 msgstr "语法错误"
 
-#: gram.y:14354
+#: gram.y:14486
 #, c-format
 msgid ""
 "an ordered-set aggregate with a VARIADIC direct argument must have one "
 "VARIADIC aggregated argument of the same data type"
 msgstr "带可变直接参数的有序集聚集函数必须有一个 相同类型的VARIADIC 聚集参数 "
 
-#: gram.y:14391
+#: gram.y:14523
 #, c-format
 msgid "multiple ORDER BY clauses not allowed"
 msgstr "不允许多个 ORDER BY 子句"
 
-#: gram.y:14402
+#: gram.y:14534
 #, c-format
 msgid "multiple OFFSET clauses not allowed"
 msgstr "不允许多个 OFFSET 子句"
 
-#: gram.y:14411
+#: gram.y:14543
 #, c-format
 msgid "multiple LIMIT clauses not allowed"
 msgstr "不允许多个 LIMIT 子句"
 
-#: gram.y:14420
+#: gram.y:14552
 #, c-format
 msgid "multiple WITH clauses not allowed"
 msgstr "不允许使用多个WITH子句"
 
-#: gram.y:14600
+#: gram.y:14732
 #, c-format
 msgid "OUT and INOUT arguments aren't allowed in TABLE functions"
 msgstr "在TABLE函数中不允许使用OUT或INOUT模式的参数"
 
-#: gram.y:14701
+#: gram.y:14833
 #, c-format
 msgid "multiple COLLATE clauses not allowed"
 msgstr "不允许多个 COLLATE 子句"
 
 #. translator: %s is CHECK, UNIQUE, or similar
-#: gram.y:14739 gram.y:14752
+#: gram.y:14871 gram.y:14884
 #, c-format
 msgid "%s constraints cannot be marked DEFERRABLE"
 msgstr "%s约束不能标为DEFERRABLE"
 
 #. translator: %s is CHECK, UNIQUE, or similar
-#: gram.y:14765
+#: gram.y:14897
 #, c-format
 msgid "%s constraints cannot be marked NOT VALID"
 msgstr "%s约束不能标为NOT VALID"
 
 #. translator: %s is CHECK, UNIQUE, or similar
-#: gram.y:14778
+#: gram.y:14910
 #, c-format
 msgid "%s constraints cannot be marked NO INHERIT"
 msgstr "%s约束不能标为NO INHERIT"
@@ -10690,9 +11164,9 @@ msgstr "%s约束不能标为NO INHERIT"
 msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %u"
 msgstr "未认可的配置参数 \"%s\", 文件\"%s\", 行%u"
 
-#: guc-file.l:352 utils/misc/guc.c:5720 utils/misc/guc.c:5912
-#: utils/misc/guc.c:6002 utils/misc/guc.c:6092 utils/misc/guc.c:6200
-#: utils/misc/guc.c:6295
+#: guc-file.l:352 utils/misc/guc.c:5893 utils/misc/guc.c:6085
+#: utils/misc/guc.c:6175 utils/misc/guc.c:6265 utils/misc/guc.c:6373
+#: utils/misc/guc.c:6468
 #, c-format
 msgid "parameter \"%s\" cannot be changed without restarting the server"
 msgstr "在没有启动服务器的情况下,不能改变参数 \"%s\" "
@@ -10729,7 +11203,7 @@ msgid ""
 "could not open configuration file \"%s\": maximum nesting depth exceeded"
 msgstr "无法打开配置文件 \"%s\": 已超过最大的嵌套深度"
 
-#: guc-file.l:595 libpq/hba.c:1764
+#: guc-file.l:595 libpq/hba.c:1808
 #, c-format
 msgid "could not open configuration file \"%s\": %m"
 msgstr "无法打开配置文件 \"%s\": %m"
@@ -10764,96 +11238,102 @@ msgstr "无法打开配置文件目录 \"%s\": %m"
 msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes."
 msgstr "无法为包含%d字节的字符串缓冲区扩大%d个更多字节."
 
-#: libpq/auth.c:235
+#: libpq/auth.c:251
 #, c-format
 msgid "authentication failed for user \"%s\": host rejected"
 msgstr "用户 \"%s\" 认证失败: 主机拒绝"
 
-#: libpq/auth.c:238
+#: libpq/auth.c:254
 #, c-format
 msgid "\"trust\" authentication failed for user \"%s\""
 msgstr "用户 \"%s\" \"trust\" 认证失败"
 
-#: libpq/auth.c:241
+#: libpq/auth.c:257
 #, c-format
 msgid "Ident authentication failed for user \"%s\""
 msgstr "用户 \"%s\" Ident 认证失败"
 
-#: libpq/auth.c:244
+#: libpq/auth.c:260
 #, c-format
 msgid "Peer authentication failed for user \"%s\""
 msgstr "对用户\"%s\"的对等认证失败"
 
-#: libpq/auth.c:248
+#: libpq/auth.c:264
 #, c-format
 msgid "password authentication failed for user \"%s\""
 msgstr "用户 \"%s\" Password 认证失败"
 
-#: libpq/auth.c:253
+#: libpq/auth.c:269
 #, c-format
 msgid "GSSAPI authentication failed for user \"%s\""
 msgstr "对于用户\"%s\"的GSSAPI 认证失败"
 
-#: libpq/auth.c:256
+#: libpq/auth.c:272
 #, c-format
 msgid "SSPI authentication failed for user \"%s\""
 msgstr "对于用户 \"%s\" 的 SSPI 认证失败"
 
-#: libpq/auth.c:259
+#: libpq/auth.c:275
 #, c-format
 msgid "PAM authentication failed for user \"%s\""
 msgstr "用户 \"%s\" 认证 PAM 失败"
 
-#: libpq/auth.c:262
+#: libpq/auth.c:278
+#, c-format
+#| msgid "SSPI authentication failed for user \"%s\""
+msgid "BSD authentication failed for user \"%s\""
+msgstr "对于用户 \"%s\" 的 BSD 认证失败"
+
+#: libpq/auth.c:281
 #, c-format
 msgid "LDAP authentication failed for user \"%s\""
 msgstr "对于用户 \"%s\"的LDAP认证失败"
 
-#: libpq/auth.c:265
+#: libpq/auth.c:284
 #, c-format
 msgid "certificate authentication failed for user \"%s\""
 msgstr "用户 \"%s\" 的认证失败"
 
-#: libpq/auth.c:268
+#: libpq/auth.c:287
 #, c-format
 msgid "RADIUS authentication failed for user \"%s\""
 msgstr "用户 \"%s\" 的RADIUS认证失败"
 
-#: libpq/auth.c:271
+#: libpq/auth.c:290
 #, c-format
 msgid "authentication failed for user \"%s\": invalid authentication method"
 msgstr "用户 \"%s\" 认证失败: 无效的认证方式"
 
-#: libpq/auth.c:275
+#: libpq/auth.c:294
 #, c-format
 msgid "Connection matched pg_hba.conf line %d: \"%s\""
 msgstr "与Connection相匹配的文件行位于 pg_hba.conf %d: \"%s\""
 
-#: libpq/auth.c:330
+#: libpq/auth.c:349
 #, c-format
 msgid "connection requires a valid client certificate"
 msgstr "连接中需要一个有效的客户端认证"
 
-#: libpq/auth.c:372
+#: libpq/auth.c:391
 #, c-format
 msgid ""
 "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s"
 msgstr "pg_hba.conf中的记录拒绝来自主机\"%s\",用户 \"%s\",%s的复制连接"
 
-#: libpq/auth.c:374 libpq/auth.c:390 libpq/auth.c:448 libpq/auth.c:466
+#: libpq/auth.c:393 libpq/auth.c:409 libpq/auth.c:467 libpq/auth.c:485
 msgid "SSL off"
 msgstr "SSL 关闭"
 
-#: libpq/auth.c:374 libpq/auth.c:390 libpq/auth.c:448 libpq/auth.c:466
+#: libpq/auth.c:393 libpq/auth.c:409 libpq/auth.c:467 libpq/auth.c:485
 msgid "SSL on"
 msgstr "SSL 开启"
 
-#: libpq/auth.c:378
+#: libpq/auth.c:397
 #, c-format
 msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\""
 msgstr "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\"的复制连接"
 
-#: libpq/auth.c:387
+#: libpq/auth.c:406
 #, c-format
 msgid ""
 "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s"
@@ -10861,401 +11341,426 @@ msgid ""
 msgstr ""
 "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\", 数据库\"%s\", %s的复制连接"
 
-#: libpq/auth.c:394
+#: libpq/auth.c:413
 #, c-format
 msgid ""
 "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\""
 msgstr "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\", 数据库\"%s\"的复制连接"
 
-#: libpq/auth.c:423
+#: libpq/auth.c:442
 #, c-format
 msgid "Client IP address resolved to \"%s\", forward lookup matches."
 msgstr "客户端IP地址解析为 \"%s\", 与转发查找结果相匹配."
 
-#: libpq/auth.c:426
+#: libpq/auth.c:445
 #, c-format
 msgid "Client IP address resolved to \"%s\", forward lookup not checked."
 msgstr "客户端IP地址解析为 \"%s\", 转发查找结果没有检查."
 
-#: libpq/auth.c:429
+#: libpq/auth.c:448
 #, c-format
 msgid "Client IP address resolved to \"%s\", forward lookup does not match."
 msgstr "客户端IP地址解析为 \"%s\", 与转发查找结果不匹配."
 
 # fe-misc.c:702
-#: libpq/auth.c:432
+#: libpq/auth.c:451
 #, c-format
 msgid "Could not translate client host name \"%s\" to IP address: %s."
 msgstr "无法解析主机名 \"%s\" 对应的IP地址: %s."
 
 # fe-connect.c:1283
-#: libpq/auth.c:437
+#: libpq/auth.c:456
 #, c-format
 msgid "Could not resolve client IP address to a host name: %s."
 msgstr "无法解析客户端地址主机名: %s."
 
-#: libpq/auth.c:446
+#: libpq/auth.c:465
 #, c-format
 msgid ""
 "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s"
 "\", %s"
 msgstr "没有来自主机 \"%s\", 用户\"%s\", %s的复制连接的pg_hba.conf记录"
 
-#: libpq/auth.c:453
+#: libpq/auth.c:472
 #, c-format
 msgid ""
 "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\""
 msgstr "没有来自主机 \"%s\", 用户\"%s\"的复制连接的pg_hba.conf记录"
 
-#: libpq/auth.c:463
+#: libpq/auth.c:482
 #, c-format
 msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s"
 msgstr ""
 "没有用于主机 \"%s\", 用户 \"%s\", 数据库 \"%s\", %s 的 pg_hba.conf 记录"
 
-#: libpq/auth.c:471
+#: libpq/auth.c:490
 #, c-format
 msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\""
 msgstr "没有用于主机 \"%s\", 用户 \"%s\", 数据库 \"%s\" 的 pg_hba.conf 记录"
 
-#: libpq/auth.c:514 libpq/hba.c:1180
+#: libpq/auth.c:533 libpq/hba.c:1180
 #, c-format
 msgid ""
 "MD5 authentication is not supported when \"db_user_namespace\" is enabled"
 msgstr "当启用 \"db_user_namespace\" 时不支持 MD5 认证"
 
-#: libpq/auth.c:640
+#: libpq/auth.c:667
 #, c-format
 msgid "expected password response, got message type %d"
 msgstr "期望得到口令回应,但是得到了消息类型%d."
 
-#: libpq/auth.c:668
+#: libpq/auth.c:695
 #, c-format
 msgid "invalid password packet size"
 msgstr "无效的口令包尺寸"
 
-#: libpq/auth.c:798
+#: libpq/auth.c:825
 #, c-format
 msgid "GSSAPI is not supported in protocol version 2"
 msgstr "在协议版本2中不支持使用GSSAPI"
 
-#: libpq/auth.c:858
+#: libpq/auth.c:885
 #, c-format
 msgid "expected GSS response, got message type %d"
 msgstr "期望GSS回应,但是得到了信息类型%d"
 
-#: libpq/auth.c:919
+#: libpq/auth.c:946
 msgid "accepting GSS security context failed"
 msgstr "接收GSS安全环境失败"
 
-#: libpq/auth.c:945
+#: libpq/auth.c:972
 msgid "retrieving GSS user name failed"
 msgstr "获取GSS用户名失败"
 
-#: libpq/auth.c:1062
+#: libpq/auth.c:1091
 #, c-format
 msgid "SSPI is not supported in protocol version 2"
 msgstr "在协议版本2中不支持使用SSPI"
 
-#: libpq/auth.c:1077
+#: libpq/auth.c:1106
 msgid "could not acquire SSPI credentials"
 msgstr "无法获得SSPI证书"
 
-#: libpq/auth.c:1095
+#: libpq/auth.c:1124
 #, c-format
 msgid "expected SSPI response, got message type %d"
 msgstr "期望SSPI回应,但是得到了消息类型%d"
 
-#: libpq/auth.c:1167
+#: libpq/auth.c:1196
 msgid "could not accept SSPI security context"
 msgstr "无法访问SSPI安全环境"
 
-#: libpq/auth.c:1229
+#: libpq/auth.c:1258
 msgid "could not get token from SSPI security context"
 msgstr "无法从SSPI安全环境中获取令牌(token)"
 
-#: libpq/auth.c:1474
+#: libpq/auth.c:1377 libpq/auth.c:1396
+#, c-format
+#| msgid "could not parse file name \"%s\""
+msgid "could not translate name"
+msgstr "不能翻译名称"
+
+#: libpq/auth.c:1409
+#, c-format
+#| msgid "channel name too long"
+msgid "realm name too long"
+msgstr "realm 名称太长"
+
+#: libpq/auth.c:1424
+#, c-format
+#| msgid "encoding name too long"
+msgid "translated account name too long"
+msgstr "翻译的账户名太长"
+
+#: libpq/auth.c:1610
 #, c-format
 msgid "could not create socket for Ident connection: %m"
 msgstr "无法为 Ident 联接创建套接字: %m"
 
-#: libpq/auth.c:1489
+#: libpq/auth.c:1625
 #, c-format
 msgid "could not bind to local address \"%s\": %m"
 msgstr "无法绑定到本地地址 \"%s\": %m"
 
-#: libpq/auth.c:1501
+#: libpq/auth.c:1637
 #, c-format
 msgid "could not connect to Ident server at address \"%s\", port %s: %m"
 msgstr "无法联接到地址为 \"%s\", 端口为 %s 的 Ident 服务器: %m"
 
-#: libpq/auth.c:1523
+#: libpq/auth.c:1659
 #, c-format
 msgid "could not send query to Ident server at address \"%s\", port %s: %m"
 msgstr "无法发送查询到地址为 \"%s\", 端口为 %s 的 Ident 服务器: %m"
 
-#: libpq/auth.c:1540
+#: libpq/auth.c:1676
 #, c-format
 msgid ""
 "could not receive response from Ident server at address \"%s\", port %s: %m"
 msgstr "无法从地址为 \"%s\", 端口为 %s 的 Ident 服务器接收应答: %m"
 
-#: libpq/auth.c:1550
+#: libpq/auth.c:1686
 #, c-format
 msgid "invalidly formatted response from Ident server: \"%s\""
 msgstr "从 Ident 服务器接收的无效格式应答: \"%s\""
 
 # fe-auth.c:640
-#: libpq/auth.c:1590
+#: libpq/auth.c:1726
 #, c-format
 msgid "peer authentication is not supported on this platform"
 msgstr "对等认证在这个平台上不支持"
 
-#: libpq/auth.c:1594
+#: libpq/auth.c:1730
 #, c-format
 msgid "could not get peer credentials: %m"
 msgstr "无法获得同等 (peer) 证书: %m"
 
-#: libpq/auth.c:1603
+#: libpq/auth.c:1739
 #, c-format
-#| msgid "could not to look up local user ID %ld: %s"
 msgid "could not look up local user ID %ld: %s"
 msgstr "无法查找本地用户ID %ld:%s"
 
-#: libpq/auth.c:1687 libpq/auth.c:1958 libpq/auth.c:2314
+#: libpq/auth.c:1823 libpq/auth.c:2149 libpq/auth.c:2509
 #, c-format
 msgid "empty password returned by client"
 msgstr "客户端返回了空口令"
 
-#: libpq/auth.c:1697
+#: libpq/auth.c:1833
 #, c-format
 msgid "error from underlying PAM layer: %s"
 msgstr "来自 PAM 层下面的错误: %s"
 
-#: libpq/auth.c:1766
+#: libpq/auth.c:1914
 #, c-format
 msgid "could not create PAM authenticator: %s"
 msgstr "无法创建 PAM 类型器: %s"
 
-#: libpq/auth.c:1777
+#: libpq/auth.c:1925
 #, c-format
 msgid "pam_set_item(PAM_USER) failed: %s"
 msgstr "pam_set_item(PAM_USER) 失败: %s"
 
-#: libpq/auth.c:1788
+#: libpq/auth.c:1936
+#, c-format
+#| msgid "pam_set_item(PAM_USER) failed: %s"
+msgid "pam_set_item(PAM_RHOST) failed: %s"
+msgstr "pam_set_item(PAM_RHOST) 失败: %s"
+
+#: libpq/auth.c:1947
 #, c-format
 msgid "pam_set_item(PAM_CONV) failed: %s"
 msgstr "pam_set_item(PAM_CONV) 失败: %s"
 
-#: libpq/auth.c:1799
+#: libpq/auth.c:1958
 #, c-format
 msgid "pam_authenticate failed: %s"
 msgstr "pam_authenticate 失败: %s"
 
-#: libpq/auth.c:1810
+#: libpq/auth.c:1969
 #, c-format
 msgid "pam_acct_mgmt failed: %s"
 msgstr "pam_acct_mgmt 失败: %s"
 
-#: libpq/auth.c:1821
+#: libpq/auth.c:1980
 #, c-format
 msgid "could not release PAM authenticator: %s"
 msgstr "无法释放 PAM 类型器: %s"
 
-#: libpq/auth.c:1854
+#: libpq/auth.c:2045
 #, c-format
 msgid "could not initialize LDAP: %m"
 msgstr "无法初始化LDAP: %m"
 
-#: libpq/auth.c:1857
+#: libpq/auth.c:2048
 #, c-format
 msgid "could not initialize LDAP: error code %d"
 msgstr "无法初始化LDAP: 错误代码%d"
 
-#: libpq/auth.c:1867
+#: libpq/auth.c:2058
 #, c-format
 msgid "could not set LDAP protocol version: %s"
 msgstr "无法设置LDAP协议版本: %s"
 
-#: libpq/auth.c:1896
+#: libpq/auth.c:2087
 #, c-format
 msgid "could not load wldap32.dll"
 msgstr "无法加载wldap32.dll"
 
-#: libpq/auth.c:1904
+#: libpq/auth.c:2095
 #, c-format
 msgid "could not load function _ldap_start_tls_sA in wldap32.dll"
 msgstr "无法加载在wldap32.dll中的函数_ldap_start_tls_sA"
 
-#: libpq/auth.c:1905
+#: libpq/auth.c:2096
 #, c-format
 msgid "LDAP over SSL is not supported on this platform."
 msgstr "在此平台上不支持在SSL连接上的LDAP"
 
-#: libpq/auth.c:1920
+#: libpq/auth.c:2111
 #, c-format
 msgid "could not start LDAP TLS session: %s"
 msgstr "无法启动LDAP TLS会话: %s"
 
-#: libpq/auth.c:1942
+#: libpq/auth.c:2133
 #, c-format
 msgid "LDAP server not specified"
 msgstr "没有指定LDAP服务器"
 
-#: libpq/auth.c:1995
+#: libpq/auth.c:2186
 #, c-format
 msgid "invalid character in user name for LDAP authentication"
 msgstr "在需要进行LDAP认证的用户名中出现无效字符"
 
-#: libpq/auth.c:2010
+#: libpq/auth.c:2201
 #, c-format
 msgid ""
 "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": "
 "%s"
 msgstr "无法在服务器\"%2$s\"上为ldapbinddn\"%1$s\"执行初始化LDAP绑定: %3$s"
 
-#: libpq/auth.c:2034
+#: libpq/auth.c:2225
 #, c-format
 msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s"
 msgstr "无法在服务器\"%2$s\"上为过滤器\"%1$s\"进行的搜索LDAP:%3$s"
 
-#: libpq/auth.c:2045
+#: libpq/auth.c:2236
 #, c-format
 msgid "LDAP user \"%s\" does not exist"
 msgstr "LDAP用户\"%s\" 不存在"
 
-#: libpq/auth.c:2046
+#: libpq/auth.c:2237
 #, c-format
 msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries."
 msgstr "在服务器\"%2$s\"上为过滤器\"%1$s\"进行的LDAP搜索无结果."
 
-#: libpq/auth.c:2050
+#: libpq/auth.c:2241
 #, c-format
 msgid "LDAP user \"%s\" is not unique"
 msgstr "LDAP用户\"%s\" 不是唯一的"
 
-#: libpq/auth.c:2051
+#: libpq/auth.c:2242
 #, c-format
 msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry."
 msgid_plural ""
 "LDAP search for filter \"%s\" on server \"%s\" returned %d entries."
 msgstr[0] "在服务器\"%2$s\"上为过滤器\"%1$s\"进行的LDAP搜索返回%3$d条结果."
 
-#: libpq/auth.c:2069
+#: libpq/auth.c:2260
 #, c-format
 msgid ""
 "could not get dn for the first entry matching \"%s\" on server \"%s\": %s"
 msgstr "无法为在服务器\"%2$s\"上第一个与\"%1$s\"匹配的项获取dn: %3$s"
 
-#: libpq/auth.c:2089
+#: libpq/auth.c:2280
 #, c-format
 msgid "could not unbind after searching for user \"%s\" on server \"%s\": %s"
 msgstr "在服务器 \"%2$s\"上搜索用户\"%1$s\"后无法解除绑定:%3$s"
 
-#: libpq/auth.c:2119
+#: libpq/auth.c:2310
 #, c-format
 msgid "LDAP login failed for user \"%s\" on server \"%s\": %s"
 msgstr "用户 \"%s\" 在服务器 \"%s\" 进行LDAP登录失败:%s"
 
-#: libpq/auth.c:2147
+#: libpq/auth.c:2338
 #, c-format
 msgid ""
 "certificate authentication failed for user \"%s\": client certificate "
 "contains no user name"
 msgstr "用户\"%s\"的认证鉴权失败: 客户端认证没有包含用户名"
 
-#: libpq/auth.c:2270
+#: libpq/auth.c:2465
 #, c-format
 msgid "RADIUS server not specified"
 msgstr "没有指定RADIUS服务器"
 
-#: libpq/auth.c:2277
+#: libpq/auth.c:2472
 #, c-format
 msgid "RADIUS secret not specified"
 msgstr "没有指定RADIUS机密(secret) "
 
-#: libpq/auth.c:2293 libpq/hba.c:1590
+#: libpq/auth.c:2488 libpq/hba.c:1634
 #, c-format
 msgid "could not translate RADIUS server name \"%s\" to address: %s"
 msgstr "无法将RADIUS服务器名称 \"%s\" 翻译为相应地址:%s"
 
-#: libpq/auth.c:2321
+#: libpq/auth.c:2516
 #, c-format
+#| msgid ""
+#| "RADIUS authentication does not support passwords longer than 16 characters"
 msgid ""
-"RADIUS authentication does not support passwords longer than 16 characters"
-msgstr "RADIUS认证不支持长度超过16个字符的口令"
+"RADIUS authentication does not support passwords longer than %d characters"
+msgstr "RADIUS 认证不支持长度超过 %d 个字符的口令"
 
-#: libpq/auth.c:2332
+#: libpq/auth.c:2528
 #, c-format
 msgid "could not generate random encryption vector"
 msgstr "无法产生随机加密向量"
 
-#: libpq/auth.c:2355
+#: libpq/auth.c:2563
 #, c-format
 msgid "could not perform MD5 encryption of password"
 msgstr "无法执行口令的MD5加密"
 
-#: libpq/auth.c:2377
+#: libpq/auth.c:2588
 #, c-format
 msgid "could not create RADIUS socket: %m"
 msgstr "无法创建RADIUS套接字: %m"
 
-#: libpq/auth.c:2398
+#: libpq/auth.c:2609
 #, c-format
 msgid "could not bind local RADIUS socket: %m"
 msgstr "无法绑定本地RADIUS套接字: %m"
 
-#: libpq/auth.c:2408
+#: libpq/auth.c:2619
 #, c-format
 msgid "could not send RADIUS packet: %m"
 msgstr "无法发送RADIUS包: %m"
 
-#: libpq/auth.c:2441 libpq/auth.c:2466
+#: libpq/auth.c:2652 libpq/auth.c:2677
 #, c-format
 msgid "timeout waiting for RADIUS response"
 msgstr "在等待RADIUS回应包时超时"
 
-#: libpq/auth.c:2459
+#: libpq/auth.c:2670
 #, c-format
 msgid "could not check status on RADIUS socket: %m"
 msgstr "无法在RADIUS套接字上检查状态: %m"
 
-#: libpq/auth.c:2488
+#: libpq/auth.c:2699
 #, c-format
 msgid "could not read RADIUS response: %m"
 msgstr "无法读取RADIUS回应包: %m"
 
-#: libpq/auth.c:2500 libpq/auth.c:2504
+#: libpq/auth.c:2711 libpq/auth.c:2715
 #, c-format
 msgid "RADIUS response was sent from incorrect port: %d"
 msgstr "RADIUS回应数据包是从不正确的端口中发出的: %d"
 
-#: libpq/auth.c:2513
+#: libpq/auth.c:2724
 #, c-format
 msgid "RADIUS response too short: %d"
 msgstr "RADIUS回应包的长度太短:%d"
 
-#: libpq/auth.c:2520
+#: libpq/auth.c:2731
 #, c-format
 msgid "RADIUS response has corrupt length: %d (actual length %d)"
 msgstr "RADIUS回应包的长度不正确:%d(实际长度是%d)"
 
-#: libpq/auth.c:2528
+#: libpq/auth.c:2739
 #, c-format
 msgid "RADIUS response is to a different request: %d (should be %d)"
 msgstr "RADIUS回应包发送到了一个不同的请求上:%d (应该是%d)"
 
-#: libpq/auth.c:2553
+#: libpq/auth.c:2764
 #, c-format
 msgid "could not perform MD5 encryption of received packet"
 msgstr "无法执行所接收数据包的MD5加密"
 
-#: libpq/auth.c:2562
+#: libpq/auth.c:2773
 #, c-format
 msgid "RADIUS response has incorrect MD5 signature"
 msgstr "RADIUS回应包带有不正确的MD5签名"
 
-#: libpq/auth.c:2579
+#: libpq/auth.c:2790
 #, c-format
 msgid "RADIUS response has invalid code (%d) for user \"%s\""
 msgstr "对于用户\"%2$s\"来说RADIUS回应包带有无效编码(%1$d) "
@@ -11353,122 +11858,165 @@ msgstr "无法装载服务器认证文件 \"%s\": %s"
 msgid "could not access private key file \"%s\": %m"
 msgstr "无法处理私钥文件 \"%s\": %m"
 
-#: libpq/be-secure-openssl.c:221
+#: libpq/be-secure-openssl.c:212
+#, c-format
+#| msgid "%s: file \"%s\" is not a regular file\n"
+msgid "private key file \"%s\" is not a regular file"
+msgstr "私钥文件 \"%s\" 不是一个常规文件"
+
+#: libpq/be-secure-openssl.c:224
+#, c-format
+msgid "private key file \"%s\" must be owned by the database user or root"
+msgstr "私钥文件 \"%s\" 必须由数据库用户或者 root 所拥有"
+
+#: libpq/be-secure-openssl.c:244
 #, c-format
 msgid "private key file \"%s\" has group or world access"
 msgstr "私钥文件\"%s\"具有由所在组或全局范围访问的权限"
 
-#: libpq/be-secure-openssl.c:223
+#: libpq/be-secure-openssl.c:246
 #, c-format
-msgid "Permissions should be u=rw (0600) or less."
-msgstr "权限应该为u=rw (0600)或者更少"
+msgid ""
+"File must have permissions u=rw (0600) or less if owned by the database "
+"user, or permissions u=rw,g=r (0640) or less if owned by root."
+msgstr ""
+"如果文件被数据库用户所拥有,它必须具有权限 u=rw (0600) 或者更低;如果被 root "
+"所拥有,它必须具有权限 u=rw,g=r (0640) 或者更低。"
 
-#: libpq/be-secure-openssl.c:230
+#: libpq/be-secure-openssl.c:253
 #, c-format
 msgid "could not load private key file \"%s\": %s"
 msgstr "无法装载私钥文件 \"%s\": %s"
 
-#: libpq/be-secure-openssl.c:235
+#: libpq/be-secure-openssl.c:258
 #, c-format
 msgid "check of private key failed: %s"
 msgstr "检查私钥失败: %s"
 
-#: libpq/be-secure-openssl.c:264
+#: libpq/be-secure-openssl.c:287
 #, c-format
 msgid "could not load root certificate file \"%s\": %s"
 msgstr "无法装载根 (root) 认证文件 \"%s\": %s"
 
-#: libpq/be-secure-openssl.c:288
+#: libpq/be-secure-openssl.c:311
 #, c-format
 msgid "SSL certificate revocation list file \"%s\" ignored"
 msgstr "忽略SSL认证撤销列表文件 \"%s\""
 
-#: libpq/be-secure-openssl.c:290
+#: libpq/be-secure-openssl.c:313
 #, c-format
 msgid "SSL library does not support certificate revocation lists."
 msgstr "SSL库不支持认证撤销列表"
 
-#: libpq/be-secure-openssl.c:295
+#: libpq/be-secure-openssl.c:318
 #, c-format
 msgid "could not load SSL certificate revocation list file \"%s\": %s"
 msgstr "无法装载根 (root)证书取消列表文件 \"%s\": %s"
 
-#: libpq/be-secure-openssl.c:341
+#: libpq/be-secure-openssl.c:365
 #, c-format
 msgid "could not initialize SSL connection: %s"
 msgstr "无法初始化 SSL 联接: %s"
 
-#: libpq/be-secure-openssl.c:349
+#: libpq/be-secure-openssl.c:373
 #, c-format
 msgid "could not set SSL socket: %s"
 msgstr "无法创建 SSL 套接字: %s"
 
-#: libpq/be-secure-openssl.c:383
+#: libpq/be-secure-openssl.c:427
 #, c-format
 msgid "could not accept SSL connection: %m"
 msgstr "无法访问 SSL 联接: %m"
 
-#: libpq/be-secure-openssl.c:387 libpq/be-secure-openssl.c:398
+#: libpq/be-secure-openssl.c:431 libpq/be-secure-openssl.c:442
 #, c-format
 msgid "could not accept SSL connection: EOF detected"
 msgstr "无法访问 SSL 联接: 发现 EOF"
 
-#: libpq/be-secure-openssl.c:392
+#: libpq/be-secure-openssl.c:436
 #, c-format
 msgid "could not accept SSL connection: %s"
 msgstr "无法访问 SSL 联接: %s"
 
-#: libpq/be-secure-openssl.c:403 libpq/be-secure-openssl.c:541
-#: libpq/be-secure-openssl.c:598
+#: libpq/be-secure-openssl.c:447 libpq/be-secure-openssl.c:588
+#: libpq/be-secure-openssl.c:648
 #, c-format
 msgid "unrecognized SSL error code: %d"
 msgstr "未知的 SSL 错误码: %d"
 
-#: libpq/be-secure-openssl.c:447
+#: libpq/be-secure-openssl.c:491
 #, c-format
 msgid "SSL certificate's common name contains embedded null"
 msgstr "在SSL认证的普通名称中包含嵌入的空值"
 
-#: libpq/be-secure-openssl.c:458
+#: libpq/be-secure-openssl.c:502
 #, c-format
 msgid "SSL connection from \"%s\""
 msgstr "来自 \"%s\" 的 SSL 联接"
 
-#: libpq/be-secure-openssl.c:532 libpq/be-secure-openssl.c:589
+#: libpq/be-secure-openssl.c:579 libpq/be-secure-openssl.c:639
 #, c-format
 msgid "SSL error: %s"
 msgstr "SSL 错误: %s"
 
-#: libpq/be-secure-openssl.c:937
+#: libpq/be-secure-openssl.c:988
 #, c-format
 msgid "ECDH: unrecognized curve name: %s"
 msgstr "ECDH: 无法识别的曲线名: %s"
 
 # fe-connect.c:891
-#: libpq/be-secure-openssl.c:942
+#: libpq/be-secure-openssl.c:993
 #, c-format
 msgid "ECDH: could not create key"
 msgstr "ECDH: 无法创建键"
 
-#: libpq/be-secure-openssl.c:966
+#: libpq/be-secure-openssl.c:1017
 msgid "no SSL error reported"
 msgstr "没有报告SSL错误"
 
-#: libpq/be-secure-openssl.c:970
+#: libpq/be-secure-openssl.c:1021
 #, c-format
 msgid "SSL error code %lu"
 msgstr "SSL错误代码 %lu"
 
-#: libpq/crypt.c:60
+#: libpq/be-secure.c:171 libpq/be-secure.c:256
+#, c-format
+#| msgid "terminating connection due to administrator command"
+msgid "terminating connection due to unexpected postmaster exit"
+msgstr "由于意外的 postmaster 退出而终止连接"
+
+#: libpq/crypt.c:54
+#, c-format
+#| msgid "role \"%s\" does not exist"
+msgid "Role \"%s\" does not exist."
+msgstr "角色 \"%s\" 不存在。"
+
+#: libpq/crypt.c:64
 #, c-format
 msgid "User \"%s\" has no password assigned."
 msgstr "用户 \"%s\" 没有分配密码."
 
-#: libpq/crypt.c:150
+#: libpq/crypt.c:79
+#, c-format
+#| msgid "User \"%s\" has an expired password."
+msgid "User \"%s\" has an empty password."
+msgstr "用户 \"%s\" 的密码为空。"
+
+#: libpq/crypt.c:159
 #, c-format
 msgid "User \"%s\" has an expired password."
 msgstr "User \"%s\" 密码过期."
 
+# command.c:915
+# command.c:939
+# startup.c:187
+# startup.c:205
+#: libpq/crypt.c:167
+#, c-format
+#| msgid "Password for user %s: "
+msgid "Password does not match for user \"%s\"."
+msgstr "用户 \"%s\" 的口令不匹配。"
+
 #: libpq/hba.c:188
 #, c-format
 msgid "authentication file token too long, skipping: \"%s\""
@@ -11489,11 +12037,11 @@ msgstr "认证文件文本行太长"
 #: libpq/hba.c:914 libpq/hba.c:926 libpq/hba.c:945 libpq/hba.c:966
 #: libpq/hba.c:977 libpq/hba.c:1032 libpq/hba.c:1050 libpq/hba.c:1062
 #: libpq/hba.c:1079 libpq/hba.c:1089 libpq/hba.c:1103 libpq/hba.c:1119
-#: libpq/hba.c:1134 libpq/hba.c:1145 libpq/hba.c:1181 libpq/hba.c:1213
-#: libpq/hba.c:1224 libpq/hba.c:1244 libpq/hba.c:1255 libpq/hba.c:1272
-#: libpq/hba.c:1310 libpq/hba.c:1347 libpq/hba.c:1357 libpq/hba.c:1413
-#: libpq/hba.c:1425 libpq/hba.c:1438 libpq/hba.c:1521 libpq/hba.c:1592
-#: libpq/hba.c:1610 libpq/hba.c:1631 tsearch/ts_locale.c:182
+#: libpq/hba.c:1134 libpq/hba.c:1145 libpq/hba.c:1181 libpq/hba.c:1219
+#: libpq/hba.c:1230 libpq/hba.c:1250 libpq/hba.c:1261 libpq/hba.c:1278
+#: libpq/hba.c:1327 libpq/hba.c:1364 libpq/hba.c:1374 libpq/hba.c:1430
+#: libpq/hba.c:1442 libpq/hba.c:1455 libpq/hba.c:1547 libpq/hba.c:1636
+#: libpq/hba.c:1654 libpq/hba.c:1675 tsearch/ts_locale.c:182
 #, c-format
 msgid "line %d of configuration file \"%s\""
 msgstr "配置文件\"%2$s\"的第%1$d行"
@@ -11645,38 +12193,38 @@ msgstr "认证类型指定了多个值"
 msgid "Specify exactly one authentication type per line."
 msgstr "每行精确指定一个认证类型."
 
-#: libpq/hba.c:1211
+#: libpq/hba.c:1217
 #, c-format
 msgid "invalid authentication method \"%s\""
 msgstr "无效认证方法\"%s\""
 
 # fe-auth.c:640
-#: libpq/hba.c:1222
+#: libpq/hba.c:1228
 #, c-format
 msgid "invalid authentication method \"%s\": not supported by this build"
 msgstr "这个版本的编译安装不支持无效的认证方法\"%s\""
 
-#: libpq/hba.c:1243
+#: libpq/hba.c:1249
 #, c-format
 msgid "gssapi authentication is not supported on local sockets"
 msgstr "在本地套接字上不支持gssapi认证"
 
-#: libpq/hba.c:1254
+#: libpq/hba.c:1260
 #, c-format
 msgid "peer authentication is only supported on local sockets"
 msgstr "对等认证只支持在本地套接字的情形下使用"
 
-#: libpq/hba.c:1271
+#: libpq/hba.c:1277
 #, c-format
 msgid "cert authentication is only supported on hostssl connections"
 msgstr "只有在hostssl连接上才支持cert认证"
 
-#: libpq/hba.c:1309
+#: libpq/hba.c:1326
 #, c-format
 msgid "authentication option not in name=value format: %s"
 msgstr "认证选项的格式不是名称=值:%s"
 
-#: libpq/hba.c:1346
+#: libpq/hba.c:1363
 #, c-format
 msgid ""
 "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, or "
@@ -11686,7 +12234,7 @@ msgstr ""
 "ldapsearchattribute或ldapurl"
 
 # fe-auth.c:640
-#: libpq/hba.c:1356
+#: libpq/hba.c:1373
 #, c-format
 msgid ""
 "authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix"
@@ -11695,169 +12243,173 @@ msgstr ""
 "在认证方法\"ldap\"中需要设置参数 \"ldapbasedn\", \"ldapprefix\"或\"ldapsuffix"
 "\""
 
-#: libpq/hba.c:1399
+#: libpq/hba.c:1416
 msgid "ident, peer, gssapi, sspi, and cert"
 msgstr "ident, peer, gssapi, sspi和cert"
 
-#: libpq/hba.c:1412
+#: libpq/hba.c:1429
 #, c-format
 msgid "clientcert can only be configured for \"hostssl\" rows"
 msgstr "只能为\"hostssl\" 记录配置clientcert "
 
-#: libpq/hba.c:1423
+#: libpq/hba.c:1440
 #, c-format
 msgid ""
 "client certificates can only be checked if a root certificate store is "
 "available"
 msgstr "只有在根认证有效的情况下才能检查客户端认证"
 
-#: libpq/hba.c:1437
+#: libpq/hba.c:1454
 #, c-format
 msgid "clientcert can not be set to 0 when using \"cert\" authentication"
 msgstr "当使用\"cert\"认证时clientcert不能设置为0"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: libpq/hba.c:1464
+#: libpq/hba.c:1490
 #, c-format
 msgid "could not parse LDAP URL \"%s\": %s"
 msgstr "无法解析LDAP URL \"%s\": %s"
 
-#: libpq/hba.c:1472
+#: libpq/hba.c:1498
 #, c-format
 msgid "unsupported LDAP URL scheme: %s"
 msgstr "不支持的LDAP URL模式: %s"
 
-#: libpq/hba.c:1488
+#: libpq/hba.c:1514
 #, c-format
 msgid "filters not supported in LDAP URLs"
 msgstr "LDAP的URL不支持过滤器"
 
-#: libpq/hba.c:1496
+#: libpq/hba.c:1522
 #, c-format
 msgid "LDAP URLs not supported on this platform"
 msgstr "LDAP URL不能用于此平台"
 
-#: libpq/hba.c:1520
+#: libpq/hba.c:1546
 #, c-format
 msgid "invalid LDAP port number: \"%s\""
 msgstr "无效LDAP端口号: \"%s\""
 
-#: libpq/hba.c:1560 libpq/hba.c:1567
+#: libpq/hba.c:1586 libpq/hba.c:1593
 msgid "gssapi and sspi"
 msgstr "gssapi, 和sspi"
 
-#: libpq/hba.c:1609
+#: libpq/hba.c:1602 libpq/hba.c:1611
+msgid "sspi"
+msgstr "sspi"
+
+#: libpq/hba.c:1653
 #, c-format
 msgid "invalid RADIUS port number: \"%s\""
 msgstr "无效RADIUS端口号: \"%s\""
 
-#: libpq/hba.c:1629
+#: libpq/hba.c:1673
 #, c-format
 msgid "unrecognized authentication option name: \"%s\""
 msgstr "未知认证选项名称:\"%s\""
 
-#: libpq/hba.c:1814
+#: libpq/hba.c:1859
 #, c-format
 msgid "configuration file \"%s\" contains no entries"
 msgstr "配置文件 \"%s\" 没有配置项"
 
-#: libpq/hba.c:1910
+#: libpq/hba.c:1955
 #, c-format
 msgid "invalid regular expression \"%s\": %s"
 msgstr "无效的正则表达式\"%s\": %s"
 
-#: libpq/hba.c:1970
+#: libpq/hba.c:2015
 #, c-format
 msgid "regular expression match for \"%s\" failed: %s"
 msgstr "正则表达式匹配\"%s\"失败:%s"
 
-#: libpq/hba.c:1989
+#: libpq/hba.c:2034
 #, c-format
 msgid ""
 "regular expression \"%s\" has no subexpressions as requested by "
 "backreference in \"%s\""
 msgstr "正则表达式\"%s\"没有在\"%s\"中的后项引用所要求的子表达式."
 
-#: libpq/hba.c:2086
+#: libpq/hba.c:2131
 #, c-format
 msgid "provided user name (%s) and authenticated user name (%s) do not match"
 msgstr "所提供的用户名(%s)和被认证的用户名(%s) 不匹配"
 
-#: libpq/hba.c:2106
+#: libpq/hba.c:2151
 #, c-format
 msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\""
 msgstr "对于以\"%3$s\"身份认证为的用户\"%2$s\",在用户映射\"%1$s\"中没有匹配"
 
-#: libpq/hba.c:2141
+#: libpq/hba.c:2186
 #, c-format
 msgid "could not open usermap file \"%s\": %m"
 msgstr "无法打开用户映射文件\"%s\": %m"
 
-#: libpq/pqcomm.c:201
+#: libpq/pqcomm.c:202
 #, c-format
 msgid "could not set socket to nonblocking mode: %m"
 msgstr "无法将套接字设为非阻塞模式: %m"
 
-#: libpq/pqcomm.c:348
+#: libpq/pqcomm.c:354
 #, c-format
 msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)"
 msgstr "Unix域的套接字路径 \"%s\" 超长(最大为%d字节)"
 
-#: libpq/pqcomm.c:369
+#: libpq/pqcomm.c:375
 #, c-format
 msgid "could not translate host name \"%s\", service \"%s\" to address: %s"
 msgstr "无法解析主机名 \"%s\", 服务 \"%s\" 到地址: %s"
 
-#: libpq/pqcomm.c:373
+#: libpq/pqcomm.c:379
 #, c-format
 msgid "could not translate service \"%s\" to address: %s"
 msgstr "无法解析服务 \"%s\" 到地址: %s"
 
-#: libpq/pqcomm.c:400
+#: libpq/pqcomm.c:406
 #, c-format
 msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded"
 msgstr "无法绑定所有需要的地址:超过最大数量MAXLISTEN (%d)"
 
-#: libpq/pqcomm.c:409
+#: libpq/pqcomm.c:415
 msgid "IPv4"
 msgstr "IPv4"
 
-#: libpq/pqcomm.c:413
+#: libpq/pqcomm.c:419
 msgid "IPv6"
 msgstr "IPv6"
 
-#: libpq/pqcomm.c:418
+#: libpq/pqcomm.c:424
 msgid "Unix"
 msgstr "Unix"
 
-#: libpq/pqcomm.c:423
+#: libpq/pqcomm.c:429
 #, c-format
 msgid "unrecognized address family %d"
 msgstr "不认可的地址族 %d"
 
 #. translator: %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:434
+#: libpq/pqcomm.c:440
 #, c-format
 msgid "could not create %s socket: %m"
 msgstr "无法创建 %s 套接字: %m"
 
-#: libpq/pqcomm.c:459
+#: libpq/pqcomm.c:465
 #, c-format
 msgid "setsockopt(SO_REUSEADDR) failed: %m"
 msgstr "setsockopt(SO_REUSEADDR) 失败: %m"
 
-#: libpq/pqcomm.c:474
+#: libpq/pqcomm.c:480
 #, c-format
 msgid "setsockopt(IPV6_V6ONLY) failed: %m"
 msgstr "setsockopt(IPV6_V6ONLY) 失败: %m"
 
 #. translator: %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:493
+#: libpq/pqcomm.c:499
 #, c-format
 msgid "could not bind %s socket: %m"
 msgstr "无法绑定 %s 套接字: %m"
 
-#: libpq/pqcomm.c:496
+#: libpq/pqcomm.c:502
 #, c-format
 msgid ""
 "Is another postmaster already running on port %d? If not, remove socket file "
@@ -11866,7 +12418,7 @@ msgstr ""
 "是否有其它 postmaster 已经在端口 %d 上运行了? 如果没有, 删除套接字文件 \"%s"
 "\" 然后再重试."
 
-#: libpq/pqcomm.c:499
+#: libpq/pqcomm.c:505
 #, c-format
 msgid ""
 "Is another postmaster already running on port %d? If not, wait a few seconds "
@@ -11876,64 +12428,62 @@ msgstr ""
 "重试."
 
 #. translator: %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:532
+#: libpq/pqcomm.c:538
 #, c-format
 msgid "could not listen on %s socket: %m"
 msgstr "无法在 %s 套接字上监听: %m"
 
-#: libpq/pqcomm.c:617
+#: libpq/pqcomm.c:623
 #, c-format
 msgid "group \"%s\" does not exist"
 msgstr "组 \"%s\" 不存在"
 
-#: libpq/pqcomm.c:627
+#: libpq/pqcomm.c:633
 #, c-format
 msgid "could not set group of file \"%s\": %m"
 msgstr "无法设置文件 \"%s\" 的组: %m"
 
-#: libpq/pqcomm.c:638
+#: libpq/pqcomm.c:644
 #, c-format
 msgid "could not set permissions of file \"%s\": %m"
 msgstr "无法设置文件 \"%s\" 的权限: %m"
 
-#: libpq/pqcomm.c:668
+#: libpq/pqcomm.c:674
 #, c-format
 msgid "could not accept new connection: %m"
 msgstr "无法访问新联接: %m"
 
-#: libpq/pqcomm.c:847
+#: libpq/pqcomm.c:885
 #, c-format
-#| msgid "unexpected EOF on client connection"
 msgid "there is no client connection"
 msgstr "没有客户端连接"
 
-#: libpq/pqcomm.c:898 libpq/pqcomm.c:994
+#: libpq/pqcomm.c:936 libpq/pqcomm.c:1032
 #, c-format
 msgid "could not receive data from client: %m"
 msgstr "无法从客户端获得数据: %m"
 
-#: libpq/pqcomm.c:1139 tcop/postgres.c:3902
+#: libpq/pqcomm.c:1177 tcop/postgres.c:3906
 #, c-format
-#| msgid "terminating connection because of crash of another server process"
 msgid "terminating connection because protocol synchronization was lost"
 msgstr "由于协议同步丢失而中断连接"
 
-#: libpq/pqcomm.c:1205
+#: libpq/pqcomm.c:1243
 #, c-format
 msgid "unexpected EOF within message length word"
 msgstr "在信息长度字里有意外的 EOF"
 
-#: libpq/pqcomm.c:1216
+#: libpq/pqcomm.c:1254
 #, c-format
 msgid "invalid message length"
 msgstr "无效的信息长度"
 
-#: libpq/pqcomm.c:1238 libpq/pqcomm.c:1251
+#: libpq/pqcomm.c:1276 libpq/pqcomm.c:1289
 #, c-format
 msgid "incomplete message from client"
 msgstr "从客户端过来的不完整信息"
 
-#: libpq/pqcomm.c:1384
+#: libpq/pqcomm.c:1422
 #, c-format
 msgid "could not send data to client: %m"
 msgstr "无法发送数据给客户端: %m"
@@ -11944,7 +12494,7 @@ msgid "no data left in message"
 msgstr "信息中已经没有数据了"
 
 #: libpq/pqformat.c:556 libpq/pqformat.c:574 libpq/pqformat.c:595
-#: utils/adt/arrayfuncs.c:1460 utils/adt/rowtypes.c:563
+#: utils/adt/arrayfuncs.c:1457 utils/adt/rowtypes.c:563
 #, c-format
 msgid "insufficient data left in message"
 msgstr "信息中剩下的数据不够"
@@ -11959,12 +12509,12 @@ msgstr "信息中的无效字串"
 msgid "invalid message format"
 msgstr "无效的信息格式"
 
-#: main/main.c:259
+#: main/main.c:264
 #, c-format
 msgid "%s: WSAStartup failed: %d\n"
 msgstr "%s: WSAStartup 失败: %d\n"
 
-#: main/main.c:306
+#: main/main.c:327
 #, c-format
 msgid ""
 "%s is the PostgreSQL server.\n"
@@ -11973,7 +12523,7 @@ msgstr ""
 "%s 是 PostgreSQL 服务器.\n"
 "\n"
 
-#: main/main.c:307
+#: main/main.c:328
 #, c-format
 msgid ""
 "Usage:\n"
@@ -11984,114 +12534,114 @@ msgstr ""
 "  %s [选项]...\n"
 "\n"
 
-#: main/main.c:308
+#: main/main.c:329
 #, c-format
 msgid "Options:\n"
 msgstr "选项:\n"
 
-#: main/main.c:309
+#: main/main.c:330
 #, c-format
 msgid "  -B NBUFFERS        number of shared buffers\n"
 msgstr "  -B NBUFFERS        共享缓冲区的数量\n"
 
-#: main/main.c:310
+#: main/main.c:331
 #, c-format
 msgid "  -c NAME=VALUE      set run-time parameter\n"
 msgstr "  -c NAME=VALUE      设置运行时参数\n"
 
-#: main/main.c:311
+#: main/main.c:332
 #, c-format
 msgid "  -C NAME            print value of run-time parameter, then exit\n"
 msgstr "  -C NAME            打印运行时参数, 然后退出\n"
 
-#: main/main.c:312
+#: main/main.c:333
 #, c-format
 msgid "  -d 1-5             debugging level\n"
 msgstr "  -d 1-5             调试级别\n"
 
-#: main/main.c:313
+#: main/main.c:334
 #, c-format
 msgid "  -D DATADIR         database directory\n"
 msgstr "  -D DATADIR         数据库目录\n"
 
-#: main/main.c:314
+#: main/main.c:335
 #, c-format
 msgid "  -e                 use European date input format (DMY)\n"
 msgstr "  -e                 使用欧洲日期输入格式 (DMY)\n"
 
-#: main/main.c:315
+#: main/main.c:336
 #, c-format
 msgid "  -F                 turn fsync off\n"
 msgstr "  -F                关闭 fsync\n"
 
-#: main/main.c:316
+#: main/main.c:337
 #, c-format
 msgid "  -h HOSTNAME        host name or IP address to listen on\n"
 msgstr "  -h HOSTNAME        侦听的主机名或者 IP 地址\n"
 
-#: main/main.c:317
+#: main/main.c:338
 #, c-format
 msgid "  -i                 enable TCP/IP connections\n"
 msgstr "  -i                 打开 TCP/IP 连接\n"
 
-#: main/main.c:318
+#: main/main.c:339
 #, c-format
 msgid "  -k DIRECTORY       Unix-domain socket location\n"
 msgstr "  -k DIRECTORY       Unix 域套接字的目录位置\n"
 
-#: main/main.c:320
+#: main/main.c:341
 #, c-format
 msgid "  -l                 enable SSL connections\n"
 msgstr "  -l                  开启 SSL 连接\n"
 
-#: main/main.c:322
+#: main/main.c:343
 #, c-format
 msgid "  -N MAX-CONNECT     maximum number of allowed connections\n"
 msgstr "  -N MAX-CONNECT     允许建立的最大连接数目\n"
 
-#: main/main.c:323
+#: main/main.c:344
 #, c-format
 msgid ""
 "  -o OPTIONS         pass \"OPTIONS\" to each server process (obsolete)\n"
 msgstr ""
 "  -o OPTIONS          把 \"OPTIONS\" 传递给每一个后端服务器进程(已作废)\n"
 
-#: main/main.c:324
+#: main/main.c:345
 #, c-format
 msgid "  -p PORT            port number to listen on\n"
 msgstr "  -p PORT            监听的端口号\n"
 
-#: main/main.c:325
+#: main/main.c:346
 #, c-format
 msgid "  -s                 show statistics after each query\n"
 msgstr "  -s                 每个查询后显示统计信息\n"
 
-#: main/main.c:326
+#: main/main.c:347
 #, c-format
 msgid "  -S WORK-MEM        set amount of memory for sorts (in kB)\n"
 msgstr "  -S WORK-MEM        设置排序内存数量 (单位为 kB)\n"
 
-#: main/main.c:327
+#: main/main.c:348
 #, c-format
 msgid "  -V, --version      output version information, then exit\n"
 msgstr "  -V, --version      输出版本信息,然后退出\n"
 
-#: main/main.c:328
+#: main/main.c:349
 #, c-format
 msgid "  --NAME=VALUE       set run-time parameter\n"
 msgstr "  --NAME=VALUE       设置运行时参数\n"
 
-#: main/main.c:329
+#: main/main.c:350
 #, c-format
 msgid "  --describe-config  describe configuration parameters, then exit\n"
 msgstr "  --describe-config  描述配置参数, 然后退出\n"
 
-#: main/main.c:330
+#: main/main.c:351
 #, c-format
 msgid "  -?, --help         show this help, then exit\n"
 msgstr "  -?, --help         显示帮助信息,然后退出\n"
 
-#: main/main.c:332
+#: main/main.c:353
 #, c-format
 msgid ""
 "\n"
@@ -12100,45 +12650,45 @@ msgstr ""
 "\n"
 "开发人员选项:\n"
 
-#: main/main.c:333
+#: main/main.c:354
 #, c-format
 msgid "  -f s|i|n|m|h       forbid use of some plan types\n"
 msgstr "  -f s|i|n|m|h       禁止一些计划类型的使用\n"
 
-#: main/main.c:334
+#: main/main.c:355
 #, c-format
 msgid ""
 "  -n                 do not reinitialize shared memory after abnormal exit\n"
 msgstr "  -n                 在异常退出之后不再重新初始化共享内存\n"
 
-#: main/main.c:335
+#: main/main.c:356
 #, c-format
 msgid "  -O                 allow system table structure changes\n"
 msgstr "  -O                  允许改变系统表结构\n"
 
-#: main/main.c:336
+#: main/main.c:357
 #, c-format
 msgid "  -P                 disable system indexes\n"
 msgstr "  -P                 关闭系统索引\n"
 
-#: main/main.c:337
+#: main/main.c:358
 #, c-format
 msgid "  -t pa|pl|ex        show timings after each query\n"
 msgstr "  -t pa|pl|ex        每个查询后显示计时\n"
 
-#: main/main.c:338
+#: main/main.c:359
 #, c-format
 msgid ""
 "  -T                 send SIGSTOP to all backend processes if one dies\n"
 msgstr ""
 "  -T                 如果一个后端进程退出, 那么向所有后端进程发送 SIGSTOP\n"
 
-#: main/main.c:339
+#: main/main.c:360
 #, c-format
 msgid "  -W NUM             wait NUM seconds to allow attach from a debugger\n"
 msgstr "  -W NUM            等待 NUM 秒, 以便允许调试器加入调试\n"
 
-#: main/main.c:341
+#: main/main.c:362
 #, c-format
 msgid ""
 "\n"
@@ -12148,40 +12698,40 @@ msgstr ""
 "单用户模式的选项:\n"
 
 # help.c:109
-#: main/main.c:342
+#: main/main.c:363
 #, c-format
 msgid ""
 "  --single           selects single-user mode (must be first argument)\n"
 msgstr "  --single           选择单用户模式(必须是第一个参数)\n"
 
 # help.c:136
-#: main/main.c:343
+#: main/main.c:364
 #, c-format
 msgid "  DBNAME             database name (defaults to user name)\n"
 msgstr "  DBNAME             数据库名称(对用户名缺省)\n"
 
-#: main/main.c:344
+#: main/main.c:365
 #, c-format
 msgid "  -d 0-5             override debugging level\n"
 msgstr "  -d 0-5             覆盖调试级别\n"
 
-#: main/main.c:345
+#: main/main.c:366
 #, c-format
 msgid "  -E                 echo statement before execution\n"
 msgstr "  -E                 执行前显示语句\n"
 
-#: main/main.c:346
+#: main/main.c:367
 #, c-format
 msgid ""
 "  -j                 do not use newline as interactive query delimiter\n"
 msgstr "  -j                 不使用新行作为交互查询的分隔符\n"
 
-#: main/main.c:347 main/main.c:352
+#: main/main.c:368 main/main.c:373
 #, c-format
 msgid "  -r FILENAME        send stdout and stderr to given file\n"
 msgstr "  -r FILENAME        把标准输出和标准错误发送到指定的文件中\n"
 
-#: main/main.c:349
+#: main/main.c:370
 #, c-format
 msgid ""
 "\n"
@@ -12190,25 +12740,25 @@ msgstr ""
 "\n"
 "引导模式的选项:\n"
 
-#: main/main.c:350
+#: main/main.c:371
 #, c-format
 msgid ""
 "  --boot             selects bootstrapping mode (must be first argument)\n"
 msgstr "  --boot             选择引导模式(必须是第一个参数)\n"
 
-#: main/main.c:351
+#: main/main.c:372
 #, c-format
 msgid ""
 "  DBNAME             database name (mandatory argument in bootstrapping "
 "mode)\n"
 msgstr "  DBNAME             数据库名称(在引导模式中是必选参数)\n"
 
-#: main/main.c:353
+#: main/main.c:374
 #, c-format
 msgid "  -x NUM             internal use\n"
 msgstr "  -x NUM             内部使用\n"
 
-#: main/main.c:355
+#: main/main.c:376
 #, c-format
 msgid ""
 "\n"
@@ -12224,7 +12774,7 @@ msgstr ""
 "\n"
 "请向 <pgsql-bugs@postgresql.org> 报告臭虫.\n"
 
-#: main/main.c:369
+#: main/main.c:390
 #, c-format
 msgid ""
 "\"root\" execution of the PostgreSQL server is not permitted.\n"
@@ -12237,12 +12787,12 @@ msgstr ""
 "可能的系统安全性问题. 参阅文档获取更多\n"
 "有关如何正确启动服务器的信息.\n"
 
-#: main/main.c:386
+#: main/main.c:407
 #, c-format
 msgid "%s: real and effective user IDs must match\n"
 msgstr "%s: 真实和有效用户标识必须相互匹配\n"
 
-#: main/main.c:393
+#: main/main.c:414
 #, c-format
 msgid ""
 "Execution of PostgreSQL by a user with administrative permissions is not\n"
@@ -12256,35 +12806,44 @@ msgstr ""
 "可能的系统安全性问题. 参阅文档获取更多\n"
 "有关如何正确启动服务器的信息.\n"
 
-#: nodes/nodeFuncs.c:118 nodes/nodeFuncs.c:149 parser/parse_coerce.c:1782
-#: parser/parse_coerce.c:1810 parser/parse_coerce.c:1886
+#: nodes/extensible.c:66
+#, c-format
+#| msgid "extension \"%s\" already exists"
+msgid "extensible node type \"%s\" already exists"
+msgstr "可扩展节点类型 \"%s\" 已存在"
+
+#: nodes/extensible.c:114
+#, c-format
+#| msgid "extension \"%s\" does not exist"
+msgid "ExtensibleNodeMethods \"%s\" was not registered"
+msgstr "ExtensibleNodeMethods \"%s\" 没有注册"
+
+#: nodes/nodeFuncs.c:123 nodes/nodeFuncs.c:154 parser/parse_coerce.c:1820
+#: parser/parse_coerce.c:1848 parser/parse_coerce.c:1924
 #: parser/parse_expr.c:1981 parser/parse_func.c:597 parser/parse_oper.c:952
 #, c-format
 msgid "could not find array type for data type %s"
 msgstr "无法为数据类型 %s 找到数组类型"
 
-#: optimizer/path/allpaths.c:2272
+#: optimizer/path/allpaths.c:2608
 #, c-format
-#| msgid "WHERE CURRENT OF is not supported for this table type"
 msgid "WHERE CURRENT OF is not supported on a view with no underlying relation"
 msgstr "在一个没有基础关系的视图上不支持WHERE CURRENT OF"
 
-#: optimizer/path/allpaths.c:2277
+#: optimizer/path/allpaths.c:2613
 #, c-format
-#| msgid "WHERE CURRENT OF is not supported for this table type"
 msgid ""
 "WHERE CURRENT OF is not supported on a view with more than one underlying "
 "relation"
 msgstr "在一个有多于一个基础关系的视图上不支持WHERE CURRENT OF"
 
-#: optimizer/path/allpaths.c:2282
+#: optimizer/path/allpaths.c:2618
 #, c-format
-#| msgid "WHERE CURRENT OF is not supported for this table type"
 msgid ""
 "WHERE CURRENT OF is not supported on a view with grouping or aggregation"
 msgstr "在一个带有分组或者聚集的视图上不支持WHERE CURRENT OF"
 
-#: optimizer/path/joinrels.c:740
+#: optimizer/path/joinrels.c:802
 #, c-format
 msgid ""
 "FULL JOIN is only supported with merge-joinable or hash-joinable join "
@@ -12292,108 +12851,104 @@ msgid ""
 msgstr "只有在合并连接或哈希连接的查询条件中才支持FULL JOIN"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: optimizer/plan/initsplan.c:1083
+#: optimizer/plan/initsplan.c:1124
 #, c-format
 msgid "%s cannot be applied to the nullable side of an outer join"
 msgstr "%s 不能用于外连接中的空值一边"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: optimizer/plan/planner.c:1324 parser/analyze.c:1481 parser/analyze.c:1679
+#: optimizer/plan/planner.c:1473 parser/analyze.c:1481 parser/analyze.c:1679
 #: parser/analyze.c:2460
 #, c-format
 msgid "%s is not allowed with UNION/INTERSECT/EXCEPT"
 msgstr "%s不允许使用UNION/INTERSECT/EXCEPT"
 
-#: optimizer/plan/planner.c:3580
+#: optimizer/plan/planner.c:3752
 #, c-format
 msgid "could not implement GROUP BY"
 msgstr "无法实现GROUP BY语句"
 
-#: optimizer/plan/planner.c:3581 optimizer/plan/planner.c:3749
-#: optimizer/prep/prepunion.c:828
+#: optimizer/plan/planner.c:3753 optimizer/plan/planner.c:4095
+#: optimizer/prep/prepunion.c:927
 #, c-format
 msgid ""
 "Some of the datatypes only support hashing, while others only support "
 "sorting."
 msgstr "一些数据类型只支持哈希,同时另外一些数据类型只支持排序."
 
-#: optimizer/plan/planner.c:3748
+#: optimizer/plan/planner.c:4094
 #, c-format
 msgid "could not implement DISTINCT"
 msgstr "无法实现DISTINCT语句"
 
-#: optimizer/plan/planner.c:4354
+#: optimizer/plan/planner.c:4633
 #, c-format
 msgid "could not implement window PARTITION BY"
 msgstr "无法实现与窗口函数一同使用PARTITION BY子句"
 
-#: optimizer/plan/planner.c:4355
+#: optimizer/plan/planner.c:4634
 #, c-format
 msgid "Window partitioning columns must be of sortable datatypes."
 msgstr "窗口分区列必须属于可排序的数据类型"
 
-#: optimizer/plan/planner.c:4359
+#: optimizer/plan/planner.c:4638
 #, c-format
 msgid "could not implement window ORDER BY"
 msgstr "无法实现与窗口函数一同使用ORDER BY 语句"
 
-#: optimizer/plan/planner.c:4360
+#: optimizer/plan/planner.c:4639
 #, c-format
 msgid "Window ordering columns must be of sortable datatypes."
 msgstr "窗口的排序列必须属于可排序的数据类型"
 
-#: optimizer/plan/setrefs.c:411
+#: optimizer/plan/setrefs.c:423
 #, c-format
 msgid "too many range table entries"
 msgstr "太多范围表"
 
-#: optimizer/prep/prepunion.c:421
+#: optimizer/prep/prepunion.c:480
 #, c-format
 msgid "could not implement recursive UNION"
 msgstr "无法实现递归UNION操作"
 
-#: optimizer/prep/prepunion.c:422
+#: optimizer/prep/prepunion.c:481
 #, c-format
 msgid "All column datatypes must be hashable."
 msgstr "所有列的数据类型必须可进行哈希计算."
 
 #. translator: %s is UNION, INTERSECT, or EXCEPT
-#: optimizer/prep/prepunion.c:827
+#: optimizer/prep/prepunion.c:926
 #, c-format
 msgid "could not implement %s"
 msgstr "无法实现%s"
 
-#: optimizer/util/clauses.c:4597
+#: optimizer/util/clauses.c:4965
 #, c-format
 msgid "SQL function \"%s\" during inlining"
 msgstr "SQL 函数 \"%s\" 在内联 (inlining) 期间"
 
-#: optimizer/util/plancat.c:108
+#: optimizer/util/plancat.c:114
 #, c-format
 msgid "cannot access temporary or unlogged relations during recovery"
 msgstr "无法在恢复过程中访问临时关系或非事务日志关系"
 
-#: optimizer/util/plancat.c:498
+#: optimizer/util/plancat.c:591
 #, c-format
 msgid "system columns cannot be used in an ON CONFLICT clause"
 msgstr "在ON CONFLICT子句中不能使用系统列"
 
-#: optimizer/util/plancat.c:516
+#: optimizer/util/plancat.c:609
 #, c-format
 msgid "constraint in ON CONFLICT clause has no associated index"
 msgstr "ON CONFLICT子句中的约束没有相关的索引"
 
-#: optimizer/util/plancat.c:568
+#: optimizer/util/plancat.c:661
 #, c-format
-#| msgid "access method \"%s\" does not support exclusion constraints"
 msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints"
 msgstr "ON CONFLICT DO UPDATE不支持和排除约束一起使用"
 
-#: optimizer/util/plancat.c:675
+#: optimizer/util/plancat.c:768
 #, c-format
-#| msgid ""
-#| "there is no unique constraint matching given keys for referenced table "
-#| "\"%s\""
 msgid ""
 "there is no unique or exclusion constraint matching the ON CONFLICT "
 "specification"
@@ -12602,415 +13157,388 @@ msgstr "%s 不能用于WITH查询"
 msgid "relation \"%s\" in %s clause not found in FROM clause"
 msgstr "子句%2$s中的关系 \"%1$s\" 在FROM子句中无法找到"
 
-#: parser/parse_agg.c:207 parser/parse_oper.c:220
+#: parser/parse_agg.c:208 parser/parse_oper.c:220
 #, c-format
 msgid "could not identify an ordering operator for type %s"
 msgstr "无法为类型%s识别顺序操作符"
 
-#: parser/parse_agg.c:209
+#: parser/parse_agg.c:210
 #, c-format
 msgid "Aggregates with DISTINCT must be able to sort their inputs."
 msgstr "带有DISTINCT关键字的聚合函数必须能够对它们的输入进行排序"
 
-#: parser/parse_agg.c:244
+#: parser/parse_agg.c:245
 #, c-format
 msgid "GROUPING must have fewer than 32 arguments"
 msgstr "GROUPING的参数不能超过32个"
 
-#: parser/parse_agg.c:347
+#: parser/parse_agg.c:348
 msgid "aggregate functions are not allowed in JOIN conditions"
 msgstr "聚合函数不允许出现在 JOIN 条件中"
 
-#: parser/parse_agg.c:349
-#| msgid "window functions are not allowed in JOIN conditions"
+#: parser/parse_agg.c:350
 msgid "grouping operations are not allowed in JOIN conditions"
 msgstr "JOIN条件中不允许分组操作"
 
-#: parser/parse_agg.c:361
+#: parser/parse_agg.c:362
 msgid ""
 "aggregate functions are not allowed in FROM clause of their own query level"
 msgstr "聚合函数不允许出现在它们自己查询级别的FROM子句中"
 
-#: parser/parse_agg.c:363
-#| msgid ""
-#| "aggregate functions are not allowed in FROM clause of their own query "
-#| "level"
+#: parser/parse_agg.c:364
 msgid ""
 "grouping operations are not allowed in FROM clause of their own query level"
 msgstr "分组操作不允许出现在它们所在查询级别的FROM子句中"
 
-#: parser/parse_agg.c:368
+#: parser/parse_agg.c:369
 msgid "aggregate functions are not allowed in functions in FROM"
 msgstr "聚合函数不允许出现在FROM子句中的函数里"
 
-#: parser/parse_agg.c:370
-#| msgid "window functions are not allowed in functions in FROM"
+#: parser/parse_agg.c:371
 msgid "grouping operations are not allowed in functions in FROM"
 msgstr "分组操作不允许出现在FROM中的函数内"
 
-#: parser/parse_agg.c:378
-#| msgid "aggregate functions are not allowed in index expressions"
+#: parser/parse_agg.c:379
 msgid "aggregate functions are not allowed in policy expressions"
 msgstr "策略表达式中不允许聚集函数"
 
-#: parser/parse_agg.c:380
-#| msgid "window functions are not allowed in index expressions"
+#: parser/parse_agg.c:381
 msgid "grouping operations are not allowed in policy expressions"
 msgstr "策略表达式中不允许分组操作"
 
-#: parser/parse_agg.c:397
+#: parser/parse_agg.c:398
 msgid "aggregate functions are not allowed in window RANGE"
 msgstr "在聚合函数不允许出现在窗口范围子句里"
 
-#: parser/parse_agg.c:399
-#| msgid "aggregate functions are not allowed in window RANGE"
+#: parser/parse_agg.c:400
 msgid "grouping operations are not allowed in window RANGE"
 msgstr "窗口RANGE中不允许分组操作"
 
-#: parser/parse_agg.c:404
+#: parser/parse_agg.c:405
 msgid "aggregate functions are not allowed in window ROWS"
 msgstr "聚合函数不允许出现在窗口ROWS子句里"
 
-#: parser/parse_agg.c:406
-#| msgid "aggregate functions are not allowed in window ROWS"
+#: parser/parse_agg.c:407
 msgid "grouping operations are not allowed in window ROWS"
 msgstr "窗口ROWS中不允许分组操作"
 
-#: parser/parse_agg.c:439
+#: parser/parse_agg.c:440
 msgid "aggregate functions are not allowed in check constraints"
 msgstr "聚合函数不允许出现在check约束中"
 
-#: parser/parse_agg.c:441
-#| msgid "window functions are not allowed in check constraints"
+#: parser/parse_agg.c:442
 msgid "grouping operations are not allowed in check constraints"
 msgstr "检查约束中不允许分组操作"
 
-#: parser/parse_agg.c:448
+#: parser/parse_agg.c:449
 msgid "aggregate functions are not allowed in DEFAULT expressions"
 msgstr "聚合函数不允许出现在DEFAULT表达式中"
 
-#: parser/parse_agg.c:450
-#| msgid "window functions are not allowed in DEFAULT expressions"
+#: parser/parse_agg.c:451
 msgid "grouping operations are not allowed in DEFAULT expressions"
 msgstr "DEFAULT表达式中不允许分组操作"
 
-#: parser/parse_agg.c:455
+#: parser/parse_agg.c:456
 msgid "aggregate functions are not allowed in index expressions"
 msgstr "聚合函数不允许出现在索引表达式中"
 
-#: parser/parse_agg.c:457
-#| msgid "window functions are not allowed in index expressions"
+#: parser/parse_agg.c:458
 msgid "grouping operations are not allowed in index expressions"
 msgstr "索引表达式中不允许分组操作"
 
-#: parser/parse_agg.c:462
+#: parser/parse_agg.c:463
 msgid "aggregate functions are not allowed in index predicates"
 msgstr "聚合函数不允许出现在索引判定子句当中"
 
-#: parser/parse_agg.c:464
-#| msgid "window functions are not allowed in index predicates"
+#: parser/parse_agg.c:465
 msgid "grouping operations are not allowed in index predicates"
 msgstr "索引谓词中不允许分组操作"
 
-#: parser/parse_agg.c:469
+#: parser/parse_agg.c:470
 msgid "aggregate functions are not allowed in transform expressions"
 msgstr "聚合函数不允许出现在转换表达式中"
 
-#: parser/parse_agg.c:471
-#| msgid "window functions are not allowed in transform expressions"
+#: parser/parse_agg.c:472
 msgid "grouping operations are not allowed in transform expressions"
 msgstr "转换表达式中不允许分组操作"
 
-#: parser/parse_agg.c:476
+#: parser/parse_agg.c:477
 msgid "aggregate functions are not allowed in EXECUTE parameters"
 msgstr "聚合函数不允许出现在EXECUTE参数中"
 
-#: parser/parse_agg.c:478
-#| msgid "window functions are not allowed in EXECUTE parameters"
+#: parser/parse_agg.c:479
 msgid "grouping operations are not allowed in EXECUTE parameters"
 msgstr "EXECUTE参数中不允许分组操作"
 
-#: parser/parse_agg.c:483
+#: parser/parse_agg.c:484
 msgid "aggregate functions are not allowed in trigger WHEN conditions"
 msgstr "聚合函数不允许出现在触发器WHEN条件中"
 
-#: parser/parse_agg.c:485
-#| msgid "window functions are not allowed in trigger WHEN conditions"
+#: parser/parse_agg.c:486
 msgid "grouping operations are not allowed in trigger WHEN conditions"
 msgstr "触发器WHEN条件中不允许分组操作"
 
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_agg.c:508 parser/parse_clause.c:1548
+#: parser/parse_agg.c:509 parser/parse_clause.c:1550
 #, c-format
 msgid "aggregate functions are not allowed in %s"
 msgstr "聚合函数不允许出现在%s中"
 
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_agg.c:511
+#: parser/parse_agg.c:512
 #, c-format
-#| msgid "window functions are not allowed in %s"
 msgid "grouping operations are not allowed in %s"
 msgstr "%s中不允许分组操作"
 
-#: parser/parse_agg.c:619
+#: parser/parse_agg.c:620
 #, c-format
 msgid ""
 "outer-level aggregate cannot contain a lower-level variable in its direct "
 "arguments"
 msgstr "outer-level 聚集函数在其直接参数里不能包含更低级别的变量"
 
-#: parser/parse_agg.c:690
+#: parser/parse_agg.c:691
 #, c-format
 msgid "aggregate function calls cannot contain window function calls"
 msgstr "对于聚合函数调用不能包含窗口函数的调用"
 
-#: parser/parse_agg.c:768
+#: parser/parse_agg.c:769
 msgid "window functions are not allowed in JOIN conditions"
 msgstr "窗口函数不允许出现在JOIN条件中"
 
-#: parser/parse_agg.c:775
+#: parser/parse_agg.c:776
 msgid "window functions are not allowed in functions in FROM"
 msgstr "窗口函数不允许出现在FROM的函数中"
 
-#: parser/parse_agg.c:781
-#| msgid "window functions are not allowed in index expressions"
+#: parser/parse_agg.c:782
 msgid "window functions are not allowed in policy expressions"
 msgstr "策略表达式中不允许窗口函数"
 
-#: parser/parse_agg.c:793
+#: parser/parse_agg.c:794
 msgid "window functions are not allowed in window definitions"
 msgstr "窗口函数不允许出现在窗口定义中"
 
-#: parser/parse_agg.c:824
+#: parser/parse_agg.c:825
 msgid "window functions are not allowed in check constraints"
 msgstr "窗口函数不允许出现在check约束中"
 
-#: parser/parse_agg.c:828
+#: parser/parse_agg.c:829
 msgid "window functions are not allowed in DEFAULT expressions"
 msgstr "窗口函数不允许出现在DEFAULT表达式中"
 
-#: parser/parse_agg.c:831
+#: parser/parse_agg.c:832
 msgid "window functions are not allowed in index expressions"
 msgstr "在窗口函数不允许出现在索引表达式中"
 
-#: parser/parse_agg.c:834
+#: parser/parse_agg.c:835
 msgid "window functions are not allowed in index predicates"
 msgstr "在窗口函数不允许出现在索引判定子句中"
 
-#: parser/parse_agg.c:837
+#: parser/parse_agg.c:838
 msgid "window functions are not allowed in transform expressions"
 msgstr "窗口函数不允许出现在转换表达式中"
 
-#: parser/parse_agg.c:840
+#: parser/parse_agg.c:841
 msgid "window functions are not allowed in EXECUTE parameters"
 msgstr "窗口函数不允许出现在EXECUTE参数中"
 
-#: parser/parse_agg.c:843
+#: parser/parse_agg.c:844
 msgid "window functions are not allowed in trigger WHEN conditions"
 msgstr "窗口函数不允许出现在触发器WHEN条件中"
 
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_agg.c:863 parser/parse_clause.c:1557
+#: parser/parse_agg.c:864 parser/parse_clause.c:1559
 #, c-format
 msgid "window functions are not allowed in %s"
 msgstr "窗口函数不允许出现在%s中"
 
-#: parser/parse_agg.c:897 parser/parse_clause.c:2394
+#: parser/parse_agg.c:898 parser/parse_clause.c:2396
 #, c-format
 msgid "window \"%s\" does not exist"
 msgstr "窗口\"%s\"不存在"
 
-#: parser/parse_agg.c:982
+#: parser/parse_agg.c:983
 #, c-format
 msgid "too many grouping sets present (maximum 4096)"
 msgstr "出现过多分组集合(最大4096个)"
 
-#: parser/parse_agg.c:1131
+#: parser/parse_agg.c:1132
 #, c-format
 msgid ""
 "aggregate functions are not allowed in a recursive query's recursive term"
 msgstr "聚合函数不允许出现在递归查询的递归项中"
 
-#: parser/parse_agg.c:1324
+#: parser/parse_agg.c:1325
 #, c-format
 msgid ""
 "column \"%s.%s\" must appear in the GROUP BY clause or be used in an "
 "aggregate function"
 msgstr "字段 \"%s.%s\" 必须出现在 GROUP BY 子句中或者在聚合函数中使用"
 
-#: parser/parse_agg.c:1327
+#: parser/parse_agg.c:1328
 #, c-format
 msgid ""
 "Direct arguments of an ordered-set aggregate must use only grouped columns."
 msgstr "有序聚集函数的直接参数必须使用分组列."
 
-#: parser/parse_agg.c:1332
+#: parser/parse_agg.c:1333
 #, c-format
 msgid "subquery uses ungrouped column \"%s.%s\" from outer query"
 msgstr "子查询使用了外层查询中的非分组列 \"%s.%s\" "
 
-#: parser/parse_agg.c:1496
+#: parser/parse_agg.c:1497
 #, c-format
 msgid ""
 "arguments to GROUPING must be grouping expressions of the associated query "
 "level"
 msgstr "GROUPING的参数必须是相关查询层次的分组表达式"
 
-#: parser/parse_clause.c:647
+#: parser/parse_clause.c:649
 #, c-format
 msgid "multiple column definition lists are not allowed for the same function"
 msgstr "多列定义列表不允许了现在相同的函数中"
 
-#: parser/parse_clause.c:680
+#: parser/parse_clause.c:682
 #, c-format
 msgid ""
 "ROWS FROM() with multiple functions cannot have a column definition list"
 msgstr "带多函数的ROWS FROM() 不能带有列定义列表"
 
-#: parser/parse_clause.c:681
+#: parser/parse_clause.c:683
 #, c-format
 msgid ""
 "Put a separate column definition list for each function inside ROWS FROM()."
 msgstr "在ROWS FROM()里为每个函数放置独立的列定义列表."
 
-#: parser/parse_clause.c:687
+#: parser/parse_clause.c:689
 #, c-format
 msgid "UNNEST() with multiple arguments cannot have a column definition list"
 msgstr "带多个参数的UNNEST()  不能带有列定义列表"
 
-#: parser/parse_clause.c:688
+#: parser/parse_clause.c:690
 #, c-format
 msgid ""
 "Use separate UNNEST() calls inside ROWS FROM(), and attach a column "
 "definition list to each one."
 msgstr "在ROWS FROM()里使用独立的UNNEST()调用, 并为每个调用附上一个列定义列表."
 
-#: parser/parse_clause.c:695
+#: parser/parse_clause.c:697
 #, c-format
 msgid "WITH ORDINALITY cannot be used with a column definition list"
 msgstr "WITH ORDINALITY 不能使用列定义列表"
 
-#: parser/parse_clause.c:696
+#: parser/parse_clause.c:698
 #, c-format
 msgid "Put the column definition list inside ROWS FROM()."
 msgstr "在 ROWS FROM()时旋转列定义列表."
 
-#: parser/parse_clause.c:751
+#: parser/parse_clause.c:753
 #, c-format
-#| msgid "access method \"%s\" does not exist"
 msgid "tablesample method %s does not exist"
 msgstr "表采样方法\"%s\"不存在"
 
-#: parser/parse_clause.c:759
-#, c-format
-#| msgid "function %s must return type \"fdw_handler\""
-msgid "function %s must return type \"tsm_handler\""
-msgstr "函数%s必须返回\"tsm_handler\"类型"
-
 # fe-auth.c:640
-#: parser/parse_clause.c:773
+#: parser/parse_clause.c:775
 #, c-format
-#| msgid "authentication method \"%s\" requires argument \"%s\" to be set"
 msgid "tablesample method %s requires %d argument, not %d"
 msgid_plural "tablesample method %s requires %d arguments, not %d"
 msgstr[0] "表采样方法%s要求%d个参数,而不是%d个"
 
-#: parser/parse_clause.c:807
+#: parser/parse_clause.c:809
 #, c-format
-#| msgid "access method \"%s\" does not support ASC/DESC options"
 msgid "tablesample method %s does not support REPEATABLE"
 msgstr "表采样方法%s不支持REPEATABLE"
 
-#: parser/parse_clause.c:938
+#: parser/parse_clause.c:940
 #, c-format
 msgid "TABLESAMPLE clause can only be applied to tables and materialized views"
 msgstr "TABLESAMPLE子句只能被应用于表和物化视图"
 
-#: parser/parse_clause.c:1108
+#: parser/parse_clause.c:1110
 #, c-format
 msgid "column name \"%s\" appears more than once in USING clause"
 msgstr "在 USING 子句中字段名 \"%s\" 出现多次"
 
-#: parser/parse_clause.c:1123
+#: parser/parse_clause.c:1125
 #, c-format
 msgid "common column name \"%s\" appears more than once in left table"
 msgstr "共同的字段名 \"%s\" 在左边的表中出现了多次"
 
-#: parser/parse_clause.c:1132
+#: parser/parse_clause.c:1134
 #, c-format
 msgid "column \"%s\" specified in USING clause does not exist in left table"
 msgstr "USING 子句中指定的字段 \"%s\" 在左边的表中不存在"
 
-#: parser/parse_clause.c:1146
+#: parser/parse_clause.c:1148
 #, c-format
 msgid "common column name \"%s\" appears more than once in right table"
 msgstr "共同的字段名 \"%s\" 在右边的表中出现了多次"
 
-#: parser/parse_clause.c:1155
+#: parser/parse_clause.c:1157
 #, c-format
 msgid "column \"%s\" specified in USING clause does not exist in right table"
 msgstr "USING 子句中指定的字段 \"%s\" 在右边的表中不存在"
 
-#: parser/parse_clause.c:1209
+#: parser/parse_clause.c:1211
 #, c-format
 msgid "column alias list for \"%s\" has too many entries"
 msgstr "\"%s\" 的字段别名列表有太多记录"
 
 #. translator: %s is name of a SQL construct, eg LIMIT
-#: parser/parse_clause.c:1518
+#: parser/parse_clause.c:1520
 #, c-format
 msgid "argument of %s must not contain variables"
 msgstr "%s 的参数不能包含变量"
 
 #. translator: first %s is name of a SQL construct, eg ORDER BY
-#: parser/parse_clause.c:1683
+#: parser/parse_clause.c:1685
 #, c-format
 msgid "%s \"%s\" is ambiguous"
 msgstr "%s \"%s\" 是不明确的"
 
 #. translator: %s is name of a SQL construct, eg ORDER BY
-#: parser/parse_clause.c:1712
+#: parser/parse_clause.c:1714
 #, c-format
 msgid "non-integer constant in %s"
 msgstr "在 %s 中的非整数常量"
 
 #. translator: %s is name of a SQL construct, eg ORDER BY
-#: parser/parse_clause.c:1734
+#: parser/parse_clause.c:1736
 #, c-format
 msgid "%s position %d is not in select list"
 msgstr "%s 位置%d不在select列表中."
 
-#: parser/parse_clause.c:2176
+#: parser/parse_clause.c:2178
 #, c-format
 msgid "CUBE is limited to 12 elements"
 msgstr "CUBE被限制为12个元素"
 
-#: parser/parse_clause.c:2382
+#: parser/parse_clause.c:2384
 #, c-format
 msgid "window \"%s\" is already defined"
 msgstr "已经定义窗口\"%s\""
 
-#: parser/parse_clause.c:2444
+#: parser/parse_clause.c:2446
 #, c-format
 msgid "cannot override PARTITION BY clause of window \"%s\""
 msgstr "无法覆盖窗口\"%s\"的PARTITION BY子句"
 
-#: parser/parse_clause.c:2456
+#: parser/parse_clause.c:2458
 #, c-format
 msgid "cannot override ORDER BY clause of window \"%s\""
 msgstr "无法覆盖窗口 \"%s\"的ORDER BY子句"
 
-#: parser/parse_clause.c:2486 parser/parse_clause.c:2492
+#: parser/parse_clause.c:2488 parser/parse_clause.c:2494
 #, c-format
 msgid "cannot copy window \"%s\" because it has a frame clause"
 msgstr "因为已有frame子句,无法复制窗口\"%s\""
 
-#: parser/parse_clause.c:2494
+#: parser/parse_clause.c:2496
 #, c-format
 msgid "Omit the parentheses in this OVER clause."
 msgstr "在这个 OVER 子句里忽略其父语句."
 
-#: parser/parse_clause.c:2560
+#: parser/parse_clause.c:2562
 #, c-format
 msgid ""
 "in an aggregate with DISTINCT, ORDER BY expressions must appear in argument "
@@ -13018,181 +13546,177 @@ msgid ""
 msgstr ""
 "在带有DISTINCT子句的聚合函数中,ORDER BY子句后面的表达式必须在参数列表中出现"
 
-#: parser/parse_clause.c:2561
+#: parser/parse_clause.c:2563
 #, c-format
 msgid "for SELECT DISTINCT, ORDER BY expressions must appear in select list"
 msgstr "在查询列表中必须出现SELECT DISTINCT, ORDER BY表达式"
 
-#: parser/parse_clause.c:2594
+#: parser/parse_clause.c:2596
 #, c-format
 msgid "an aggregate with DISTINCT must have at least one argument"
 msgstr "带有DISTINCT关键字的聚合函数必须至少有一个参数"
 
-#: parser/parse_clause.c:2595
+#: parser/parse_clause.c:2597
 #, c-format
 msgid "SELECT DISTINCT must have at least one column"
 msgstr "SELECT DISTINCT 至少拥有一列"
 
-#: parser/parse_clause.c:2661 parser/parse_clause.c:2693
+#: parser/parse_clause.c:2663 parser/parse_clause.c:2695
 #, c-format
 msgid "SELECT DISTINCT ON expressions must match initial ORDER BY expressions"
 msgstr "表达式SELECT DISTINCT ON必须匹配初始化的ORDER BY表达式"
 
-#: parser/parse_clause.c:2772
+#: parser/parse_clause.c:2774
 #, c-format
-#| msgid "%s is not allowed with DISTINCT clause"
 msgid "ASC/DESC is not allowed in ON CONFLICT clause"
 msgstr "ON CONFLICT子句中不允许ASC/DESC"
 
-#: parser/parse_clause.c:2778
+#: parser/parse_clause.c:2780
 #, c-format
-#| msgid "%s is not allowed with DISTINCT clause"
 msgid "NULLS FIRST/LAST is not allowed in ON CONFLICT clause"
 msgstr "ON CONFLICT子句中不允许NULLS FIRST/LAST"
 
-#: parser/parse_clause.c:2858
+#: parser/parse_clause.c:2860
 #, c-format
 msgid ""
 "ON CONFLICT DO UPDATE requires inference specification or constraint name"
 msgstr "ON CONFLICT DO UPDATE需要推理规范或者约束名称"
 
-#: parser/parse_clause.c:2859
+#: parser/parse_clause.c:2861
 #, c-format
 msgid "For example, ON CONFLICT (column_name)."
 msgstr "例如:ON CONFLICT (column_name)。"
 
-#: parser/parse_clause.c:2870
+#: parser/parse_clause.c:2872
 #, c-format
-#| msgid "LIKE is not supported for creating foreign tables"
 msgid "ON CONFLICT is not supported with system catalog tables"
 msgstr "系统目录表不支持ON CONFLICT"
 
-#: parser/parse_clause.c:2878
+#: parser/parse_clause.c:2880
 #, c-format
-#| msgid "cannot rewrite table \"%s\" used as a catalog table"
 msgid "ON CONFLICT is not supported on table \"%s\" used as a catalog table"
 msgstr "在用作目录表的表\"%s\"上不支持ON CONFLICT"
 
-#: parser/parse_clause.c:3010
+#: parser/parse_clause.c:3012
 #, c-format
 msgid "operator %s is not a valid ordering operator"
 msgstr "操作符%s不时有效的排序操作符"
 
-#: parser/parse_clause.c:3012
+#: parser/parse_clause.c:3014
 #, c-format
 msgid ""
 "Ordering operators must be \"<\" or \">\" members of btree operator families."
 msgstr "顺序操作符必须是btree操作符家族的成员\"<\"或\">\"."
 
-#: parser/parse_coerce.c:933 parser/parse_coerce.c:963
-#: parser/parse_coerce.c:981 parser/parse_coerce.c:996
+#: parser/parse_coerce.c:971 parser/parse_coerce.c:1001
+#: parser/parse_coerce.c:1019 parser/parse_coerce.c:1034
 #: parser/parse_expr.c:2015 parser/parse_expr.c:2528 parser/parse_target.c:874
 #, c-format
 msgid "cannot cast type %s to %s"
 msgstr "无法把类型 %s 转换为 %s"
 
-#: parser/parse_coerce.c:966
+#: parser/parse_coerce.c:1004
 #, c-format
 msgid "Input has too few columns."
 msgstr "输入字段太少"
 
-#: parser/parse_coerce.c:984
+#: parser/parse_coerce.c:1022
 #, c-format
 msgid "Cannot cast type %s to %s in column %d."
 msgstr "不能把第 %3$d 个字段的类型 %1$s 转换为 %2$s."
 
-#: parser/parse_coerce.c:999
+#: parser/parse_coerce.c:1037
 #, c-format
 msgid "Input has too many columns."
 msgstr "输入字段太多"
 
 #. translator: first %s is name of a SQL construct, eg WHERE
-#: parser/parse_coerce.c:1042
+#: parser/parse_coerce.c:1080
 #, c-format
 msgid "argument of %s must be type boolean, not type %s"
 msgstr "%s 的参数必需是布尔类型, 而不是 %s 类型"
 
 #. translator: %s is name of a SQL construct, eg WHERE
 #. translator: %s is name of a SQL construct, eg LIMIT
-#: parser/parse_coerce.c:1052 parser/parse_coerce.c:1101
+#: parser/parse_coerce.c:1090 parser/parse_coerce.c:1139
 #, c-format
 msgid "argument of %s must not return a set"
 msgstr "%s 的参数不能返回一个组合"
 
 #. translator: first %s is name of a SQL construct, eg LIMIT
-#: parser/parse_coerce.c:1089
+#: parser/parse_coerce.c:1127
 #, c-format
 msgid "argument of %s must be type %s, not type %s"
 msgstr "%s 的参数必需是类型%s, 而不是类型%s "
 
 #. translator: first %s is name of a SQL construct, eg CASE
-#: parser/parse_coerce.c:1222
+#: parser/parse_coerce.c:1260
 #, c-format
 msgid "%s types %s and %s cannot be matched"
 msgstr "%s 的类型 %s 和 %s 不匹配"
 
 #. translator: first %s is name of a SQL construct, eg CASE
-#: parser/parse_coerce.c:1289
+#: parser/parse_coerce.c:1327
 #, c-format
 msgid "%s could not convert type %s to %s"
 msgstr "%s 无法转换类型 %s 为 %s"
 
-#: parser/parse_coerce.c:1591
+#: parser/parse_coerce.c:1629
 #, c-format
 msgid "arguments declared \"anyelement\" are not all alike"
 msgstr "参数声明的 \"anyelement\" 不全相同"
 
-#: parser/parse_coerce.c:1611
+#: parser/parse_coerce.c:1649
 #, c-format
 msgid "arguments declared \"anyarray\" are not all alike"
 msgstr "参数声明的 \"anyarray\" 不全相同"
 
-#: parser/parse_coerce.c:1631
+#: parser/parse_coerce.c:1669
 #, c-format
 msgid "arguments declared \"anyrange\" are not all alike"
 msgstr "声明为 \"anyarray\" 的参数不全相同"
 
-#: parser/parse_coerce.c:1660 parser/parse_coerce.c:1871
-#: parser/parse_coerce.c:1905
+#: parser/parse_coerce.c:1698 parser/parse_coerce.c:1909
+#: parser/parse_coerce.c:1943
 #, c-format
 msgid "argument declared \"anyarray\" is not an array but type %s"
 msgstr "参数声明的 \"anyarray\" 不是一个数组, 但是类型为 %s"
 
-#: parser/parse_coerce.c:1676
+#: parser/parse_coerce.c:1714
 #, c-format
 msgid ""
 "argument declared \"anyarray\" is not consistent with argument declared "
 "\"anyelement\""
 msgstr "参数声明的 \"anyarray\" 和参数声明的 \"anyelement\" 不一致"
 
-#: parser/parse_coerce.c:1697 parser/parse_coerce.c:1918
+#: parser/parse_coerce.c:1735 parser/parse_coerce.c:1956
 #, c-format
 msgid "argument declared \"anyrange\" is not a range type but type %s"
 msgstr "声明为 \"anyarray\" 的参数的类型不是范围类型, 其类型为 %s"
 
-#: parser/parse_coerce.c:1713
+#: parser/parse_coerce.c:1751
 #, c-format
 msgid ""
 "argument declared \"anyrange\" is not consistent with argument declared "
 "\"anyelement\""
 msgstr "声明为 \"anyarray\" 的参数和声明为 \"anyelement\"的参数 不一致"
 
-#: parser/parse_coerce.c:1733
+#: parser/parse_coerce.c:1771
 #, c-format
 msgid "could not determine polymorphic type because input has type \"unknown\""
 msgstr "无法确定多态类型, 因为输入类型为 \"unknown\""
 
-#: parser/parse_coerce.c:1743
+#: parser/parse_coerce.c:1781
 #, c-format
 msgid "type matched to anynonarray is an array type: %s"
 msgstr "与anynonarray匹配的类型是一个数组类型:%s"
 
-#: parser/parse_coerce.c:1753
+#: parser/parse_coerce.c:1791
 #, c-format
 msgid "type matched to anyenum is not an enum type: %s"
 msgstr "匹配anyenum的类型不是枚举类型:%s"
 
-#: parser/parse_coerce.c:1793 parser/parse_coerce.c:1823
+#: parser/parse_coerce.c:1831 parser/parse_coerce.c:1861
 #, c-format
 msgid "could not find range type for data type %s"
 msgstr "无法为数据类型 %s 找到范围类型"
@@ -13327,8 +13851,8 @@ msgstr "在递归查询中没有实现FOR UPDATE/SHARE "
 msgid "recursive reference to query \"%s\" must not appear more than once"
 msgstr "对查询\"%s\"的递归引用不能出现多次"
 
-#: parser/parse_expr.c:387 parser/parse_relation.c:3080
-#: parser/parse_relation.c:3100
+#: parser/parse_expr.c:387 parser/parse_relation.c:3083
+#: parser/parse_relation.c:3103
 #, c-format
 msgid "column %s.%s does not exist"
 msgstr "字段 %s.%s 不存在"
@@ -13353,8 +13877,8 @@ msgstr "将列符号.%s应用到类型%s(这个类型不是组合类型)"
 msgid "row expansion via \"*\" is not supported here"
 msgstr "不支持通过\"*\"实现的记录扩展"
 
-#: parser/parse_expr.c:767 parser/parse_relation.c:666
-#: parser/parse_relation.c:766 parser/parse_target.c:1109
+#: parser/parse_expr.c:767 parser/parse_relation.c:667
+#: parser/parse_relation.c:767 parser/parse_target.c:1109
 #, c-format
 msgid "column reference \"%s\" is ambiguous"
 msgstr "字段关联 \"%s\" 是不明确的"
@@ -13617,52 +14141,52 @@ msgstr "没有匹配指定名称和参数类型的函数. 您也许需要增加
 msgid "VARIADIC argument must be an array"
 msgstr "参数VARIADIC 必须是一个数组"
 
-#: parser/parse_func.c:668 parser/parse_func.c:732
+#: parser/parse_func.c:669 parser/parse_func.c:733
 #, c-format
 msgid "%s(*) must be used to call a parameterless aggregate function"
 msgstr "%s(*)必须用来调用没有参数的聚合函数"
 
-#: parser/parse_func.c:675
+#: parser/parse_func.c:676
 #, c-format
 msgid "aggregates cannot return sets"
 msgstr "聚合函数可以不返回集合"
 
-#: parser/parse_func.c:690
+#: parser/parse_func.c:691
 #, c-format
 msgid "aggregates cannot use named arguments"
 msgstr "聚合函数不能使用已命名的参数"
 
-#: parser/parse_func.c:722
+#: parser/parse_func.c:723
 #, c-format
 msgid "DISTINCT is not implemented for window functions"
 msgstr "对于窗口函数,没有实现DISTINCT"
 
-#: parser/parse_func.c:742
+#: parser/parse_func.c:743
 #, c-format
 msgid "aggregate ORDER BY is not implemented for window functions"
 msgstr "对于窗口函数,没有实现在按照聚合函数进行ORDER BY操作的功能"
 
-#: parser/parse_func.c:751
+#: parser/parse_func.c:752
 #, c-format
 msgid "FILTER is not implemented for non-aggregate window functions"
 msgstr "FILTER在非聚合窗口函数里并未被实现"
 
-#: parser/parse_func.c:757
+#: parser/parse_func.c:758
 #, c-format
 msgid "window functions cannot return sets"
 msgstr "窗口函数不能返回集合"
 
-#: parser/parse_func.c:2007
+#: parser/parse_func.c:2008
 #, c-format
 msgid "aggregate %s(*) does not exist"
 msgstr "聚合函数 %s(*) 不存在"
 
-#: parser/parse_func.c:2012
+#: parser/parse_func.c:2013
 #, c-format
 msgid "aggregate %s does not exist"
 msgstr "聚合函数 %s(*) 不存在"
 
-#: parser/parse_func.c:2031
+#: parser/parse_func.c:2032
 #, c-format
 msgid "function %s is not an aggregate"
 msgstr "函数 \"%s\" 不是一个聚合函数"
@@ -13677,12 +14201,12 @@ msgstr "目标列表最多可以有 %d 个字段"
 msgid "cannot subscript type %s because it is not an array"
 msgstr "无法下标类型 %s, 因为它不是一个数组"
 
-#: parser/parse_node.c:356 parser/parse_node.c:383
+#: parser/parse_node.c:356 parser/parse_node.c:393
 #, c-format
 msgid "array subscript must have type integer"
 msgstr "数组下标必须为整数类型"
 
-#: parser/parse_node.c:407
+#: parser/parse_node.c:424
 #, c-format
 msgid "array assignment requires type %s but expression is of type %s"
 msgstr "数组分配要求类型%s,但是表达式属于类型%s"
@@ -13699,8 +14223,8 @@ msgid "Use an explicit ordering operator or modify the query."
 msgstr "使用显式操作符或修改查询"
 
 #: parser/parse_oper.c:226 utils/adt/array_userfuncs.c:782
-#: utils/adt/array_userfuncs.c:920 utils/adt/arrayfuncs.c:3613
-#: utils/adt/arrayfuncs.c:4051 utils/adt/arrayfuncs.c:6029
+#: utils/adt/array_userfuncs.c:920 utils/adt/arrayfuncs.c:3639
+#: utils/adt/arrayfuncs.c:4077 utils/adt/arrayfuncs.c:6055
 #: utils/adt/rowtypes.c:1167
 #, c-format
 msgid "could not identify an equality operator for type %s"
@@ -13770,12 +14294,12 @@ msgstr "表关联 %u 是不明确的"
 msgid "table name \"%s\" specified more than once"
 msgstr "表名 \"%s\" 被指定多次"
 
-#: parser/parse_relation.c:424 parser/parse_relation.c:3020
+#: parser/parse_relation.c:424 parser/parse_relation.c:3023
 #, c-format
 msgid "invalid reference to FROM-clause entry for table \"%s\""
 msgstr "对于表 \"%s\"的FROM子句项的引用无效 "
 
-#: parser/parse_relation.c:427 parser/parse_relation.c:3025
+#: parser/parse_relation.c:427 parser/parse_relation.c:3028
 #, c-format
 msgid ""
 "There is an entry for table \"%s\", but it cannot be referenced from this "
@@ -13787,83 +14311,82 @@ msgstr "这里有一个对于表\"%s\"的项,但是不能从查询的这个部
 msgid "The combining JOIN type must be INNER or LEFT for a LATERAL reference."
 msgstr "在LATERAL引用里,组合的JOIN必须是INNER或LEFT JOIN类型."
 
-#: parser/parse_relation.c:704
+#: parser/parse_relation.c:705
 #, c-format
 msgid "system column \"%s\" reference in check constraint is invalid"
 msgstr "check约束中的系统列\"%s\"参照是无效的"
 
-#: parser/parse_relation.c:1062 parser/parse_relation.c:1342
-#: parser/parse_relation.c:1844
+#: parser/parse_relation.c:1065 parser/parse_relation.c:1345
+#: parser/parse_relation.c:1847
 #, c-format
 msgid "table \"%s\" has %d columns available but %d columns specified"
 msgstr "表 \"%s\" 有 %d 个有效字段, 但指定了 %d 个字段"
 
-#: parser/parse_relation.c:1149
+#: parser/parse_relation.c:1152
 #, c-format
 msgid ""
 "There is a WITH item named \"%s\", but it cannot be referenced from this "
 "part of the query."
 msgstr "这里有一个名称为\"%s\"的WITH成员,但是不能从查询的这个部分引用它."
 
-#: parser/parse_relation.c:1151
+#: parser/parse_relation.c:1154
 #, c-format
 msgid ""
 "Use WITH RECURSIVE, or re-order the WITH items to remove forward references."
 msgstr "使用WITH RECURSIVE或重新排序WITH成员来删除前向引用."
 
-#: parser/parse_relation.c:1462
+#: parser/parse_relation.c:1465
 #, c-format
 msgid ""
 "a column definition list is only allowed for functions returning \"record\""
 msgstr "一个字段定义列表只允许返回 \"record\" 的函数"
 
-#: parser/parse_relation.c:1471
+#: parser/parse_relation.c:1474
 #, c-format
 msgid "a column definition list is required for functions returning \"record\""
 msgstr "一个字段定义列表需要返回 \"record\" 的函数"
 
-#: parser/parse_relation.c:1550
+#: parser/parse_relation.c:1553
 #, c-format
 msgid "function \"%s\" in FROM has unsupported return type %s"
 msgstr "FROM 中的函数 \"%s\" 不支持返回类型 %s"
 
-#: parser/parse_relation.c:1672
+#: parser/parse_relation.c:1675
 #, c-format
 msgid "VALUES lists \"%s\" have %d columns available but %d columns specified"
 msgstr "VALUES列表\"%s\"中有%d列有效, 但指定了%d个列."
 
-#: parser/parse_relation.c:1727
+#: parser/parse_relation.c:1730
 #, c-format
 msgid "joins can have at most %d columns"
 msgstr "连接最多可以有 %d 个字段"
 
-#: parser/parse_relation.c:1817
+#: parser/parse_relation.c:1820
 #, c-format
 msgid "WITH query \"%s\" does not have a RETURNING clause"
 msgstr "WITH 查询 \"%s\" 没有RETURNING子句"
 
-#: parser/parse_relation.c:2649 parser/parse_relation.c:2804
+#: parser/parse_relation.c:2652 parser/parse_relation.c:2807
 #, c-format
 msgid "column %d of relation \"%s\" does not exist"
 msgstr "在关系\"%2$s\"中的列 %1$d 不存在"
 
-#: parser/parse_relation.c:3023
+#: parser/parse_relation.c:3026
 #, c-format
 msgid "Perhaps you meant to reference the table alias \"%s\"."
 msgstr "可能您是要引用表的化名 \"%s\"."
 
-#: parser/parse_relation.c:3031
+#: parser/parse_relation.c:3034
 #, c-format
 msgid "missing FROM-clause entry for table \"%s\""
 msgstr "对于表\"%s\",丢失FROM子句项"
 
-#: parser/parse_relation.c:3083
+#: parser/parse_relation.c:3086
 #, c-format
-#| msgid "Perhaps you meant to reference the table alias \"%s\"."
 msgid "Perhaps you meant to reference the column \"%s.%s\"."
 msgstr "也许您想要引用列\"%s.%s\"。"
 
-#: parser/parse_relation.c:3085
+#: parser/parse_relation.c:3088
 #, c-format
 msgid ""
 "There is a column named \"%s\" in table \"%s\", but it cannot be referenced "
@@ -13871,9 +14394,8 @@ msgid ""
 msgstr ""
 "表\"%2$s\"中存在一列,名为\"%1$s\", 但是这个表名并不能从这部分查询里引用."
 
-#: parser/parse_relation.c:3102
+#: parser/parse_relation.c:3105
 #, c-format
-#| msgid "Perhaps you meant to reference the table alias \"%s\"."
 msgid ""
 "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"."
 msgstr "也许您想要引用列\"%s.%s\"或者列\"%s.%s\"。"
@@ -13930,283 +14452,268 @@ msgstr "子字段 \"%s\" 的类型为 %s, 但表达式的类型为 %s"
 msgid "SELECT * with no tables specified is not valid"
 msgstr "SELECT * 没有指定表是无效的"
 
-#: parser/parse_type.c:84
+#: parser/parse_type.c:83
 #, c-format
 msgid "improper %%TYPE reference (too few dotted names): %s"
 msgstr "不合适的 %%TYPE 关联 (名字中点符号太少): %s"
 
-#: parser/parse_type.c:106
+#: parser/parse_type.c:105
 #, c-format
 msgid "improper %%TYPE reference (too many dotted names): %s"
 msgstr "不合适的 %%TYPE 关联 (名字中太多点符号): %s"
 
-#: parser/parse_type.c:141
+#: parser/parse_type.c:140
 #, c-format
 msgid "type reference %s converted to %s"
 msgstr "类型关联 %s 转换为 %s"
 
-#: parser/parse_type.c:262 parser/parse_type.c:834 utils/cache/typcache.c:230
+#: parser/parse_type.c:261 parser/parse_type.c:805 utils/cache/typcache.c:239
 #, c-format
 msgid "type \"%s\" is only a shell"
 msgstr "类型 \"%s\" 只是一个 shell"
 
-#: parser/parse_type.c:347
+#: parser/parse_type.c:346
 #, c-format
 msgid "type modifier is not allowed for type \"%s\""
 msgstr "对于类型\"%s\"不允许使用类型修改器"
 
-#: parser/parse_type.c:389
+#: parser/parse_type.c:388
 #, c-format
 msgid "type modifiers must be simple constants or identifiers"
 msgstr "类型修改器必须是简单的常量或标示符."
 
-#: parser/parse_type.c:700 parser/parse_type.c:799
+#: parser/parse_type.c:671 parser/parse_type.c:770
 #, c-format
 msgid "invalid type name \"%s\""
 msgstr "无效的类型名字 \"%s\""
 
-#: parser/parse_utilcmd.c:358
+#: parser/parse_utilcmd.c:399
 #, c-format
 msgid "array of serial is not implemented"
 msgstr "未实现序号数组"
 
-#: parser/parse_utilcmd.c:406
+#: parser/parse_utilcmd.c:447
 #, c-format
 msgid "%s will create implicit sequence \"%s\" for serial column \"%s.%s\""
 msgstr "%1$s 将为 serial 字段 \"%3$s.%4$s\" 创建隐含序列 \"%2$s\""
 
-#: parser/parse_utilcmd.c:500 parser/parse_utilcmd.c:512
+#: parser/parse_utilcmd.c:541 parser/parse_utilcmd.c:553
 #, c-format
 msgid ""
 "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\""
 msgstr "表 \"%2$s\" 的字段 \"%1$s\" 声明 NULL/NOT NULL 冲突"
 
-#: parser/parse_utilcmd.c:524
+#: parser/parse_utilcmd.c:565
 #, c-format
 msgid "multiple default values specified for column \"%s\" of table \"%s\""
 msgstr "对表 \"%2$s\" 的字段 \"%1$s\" 指定了多遍默认值"
 
-#: parser/parse_utilcmd.c:541 parser/parse_utilcmd.c:632
+#: parser/parse_utilcmd.c:582 parser/parse_utilcmd.c:673
 #, c-format
-#| msgid "constraints are not supported on foreign tables"
 msgid "primary key constraints are not supported on foreign tables"
 msgstr "外部表上不支持主键约束"
 
-#: parser/parse_utilcmd.c:550 parser/parse_utilcmd.c:642
+#: parser/parse_utilcmd.c:591 parser/parse_utilcmd.c:683
 #, c-format
-#| msgid "constraints are not supported on foreign tables"
 msgid "unique constraints are not supported on foreign tables"
 msgstr "外部表上不支持唯一约束"
 
-#: parser/parse_utilcmd.c:567 parser/parse_utilcmd.c:666
+#: parser/parse_utilcmd.c:608 parser/parse_utilcmd.c:707
 #, c-format
-#| msgid "constraints are not supported on foreign tables"
 msgid "foreign key constraints are not supported on foreign tables"
 msgstr "外部表上不支持外键约束"
 
-#: parser/parse_utilcmd.c:652
+#: parser/parse_utilcmd.c:693
 #, c-format
-#| msgid "constraints are not supported on foreign tables"
 msgid "exclusion constraints are not supported on foreign tables"
 msgstr "外部表上不支持排除约束"
 
-#: parser/parse_utilcmd.c:716
+#: parser/parse_utilcmd.c:757
 #, c-format
 msgid "LIKE is not supported for creating foreign tables"
 msgstr "LIKE不能用于创建外部表"
 
-#: parser/parse_utilcmd.c:1239 parser/parse_utilcmd.c:1315
+#: parser/parse_utilcmd.c:1288 parser/parse_utilcmd.c:1364
 #, c-format
 msgid "Index \"%s\" contains a whole-row table reference."
 msgstr "索引 \"%s\" 包含一个整行表引用."
 
-#: parser/parse_utilcmd.c:1584
+#: parser/parse_utilcmd.c:1634
 #, c-format
 msgid "cannot use an existing index in CREATE TABLE"
 msgstr " CREATE TABLE语句不能使用一个已存在的索引"
 
-#: parser/parse_utilcmd.c:1604
+#: parser/parse_utilcmd.c:1654
 #, c-format
 msgid "index \"%s\" is already associated with a constraint"
 msgstr "index \"%s\"与某个约束已经关联"
 
-#: parser/parse_utilcmd.c:1612
+#: parser/parse_utilcmd.c:1662
 #, c-format
 msgid "index \"%s\" does not belong to table \"%s\""
 msgstr "索引 \"%s\" 不属于表\"%s\""
 
-#: parser/parse_utilcmd.c:1619
+#: parser/parse_utilcmd.c:1669
 #, c-format
 msgid "index \"%s\" is not valid"
 msgstr "索引 \"%s\" 无效"
 
-#: parser/parse_utilcmd.c:1625
+#: parser/parse_utilcmd.c:1675
 #, c-format
 msgid "\"%s\" is not a unique index"
 msgstr "\"%s\" 不是唯一索引"
 
-#: parser/parse_utilcmd.c:1626 parser/parse_utilcmd.c:1633
-#: parser/parse_utilcmd.c:1640 parser/parse_utilcmd.c:1710
+#: parser/parse_utilcmd.c:1676 parser/parse_utilcmd.c:1683
+#: parser/parse_utilcmd.c:1690 parser/parse_utilcmd.c:1760
 #, c-format
 msgid "Cannot create a primary key or unique constraint using such an index."
 msgstr "无法使用该索引创建主键或唯一约束."
 
-#: parser/parse_utilcmd.c:1632
+#: parser/parse_utilcmd.c:1682
 #, c-format
 msgid "index \"%s\" contains expressions"
 msgstr "索引 \"%s\" 含有表达式"
 
-#: parser/parse_utilcmd.c:1639
+#: parser/parse_utilcmd.c:1689
 #, c-format
 msgid "\"%s\" is a partial index"
 msgstr "\"%s\" 是一个部分索引"
 
-#: parser/parse_utilcmd.c:1651
+#: parser/parse_utilcmd.c:1701
 #, c-format
 msgid "\"%s\" is a deferrable index"
 msgstr "\"%s\" 不是一个延迟索引"
 
-#: parser/parse_utilcmd.c:1652
+#: parser/parse_utilcmd.c:1702
 #, c-format
 msgid "Cannot create a non-deferrable constraint using a deferrable index."
 msgstr "无法为使用可延迟索引的约束创建非可延迟约束"
 
-#: parser/parse_utilcmd.c:1709
+#: parser/parse_utilcmd.c:1759
 #, c-format
 msgid "index \"%s\" does not have default sorting behavior"
 msgstr "索引 \"%s\"没有缺省的排序行为"
 
-#: parser/parse_utilcmd.c:1856
+#: parser/parse_utilcmd.c:1906
 #, c-format
 msgid "column \"%s\" appears twice in primary key constraint"
 msgstr "在主键约束中字段 \"%s\" 出现了两次"
 
-#: parser/parse_utilcmd.c:1862
+#: parser/parse_utilcmd.c:1912
 #, c-format
 msgid "column \"%s\" appears twice in unique constraint"
 msgstr "字段 \"%s\" 在唯一约束中出现两次"
 
-#: parser/parse_utilcmd.c:2032
+#: parser/parse_utilcmd.c:2116
 #, c-format
 msgid "index expression cannot return a set"
 msgstr "索引表达式不能返回一个集合"
 
-#: parser/parse_utilcmd.c:2043
+#: parser/parse_utilcmd.c:2127
 #, c-format
 msgid ""
 "index expressions and predicates can refer only to the table being indexed"
 msgstr "索引表达式和声明只能指向要建索引的表"
 
-#: parser/parse_utilcmd.c:2089
+#: parser/parse_utilcmd.c:2173
 #, c-format
 msgid "rules on materialized views are not supported"
 msgstr "物化视图不能使用规则(rules)"
 
-#: parser/parse_utilcmd.c:2150
+#: parser/parse_utilcmd.c:2234
 #, c-format
 msgid "rule WHERE condition cannot contain references to other relations"
 msgstr "规则的WHERE条件不能包含到其它关系的引用"
 
-#: parser/parse_utilcmd.c:2222
+#: parser/parse_utilcmd.c:2306
 #, c-format
 msgid ""
 "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE "
 "actions"
 msgstr "带有WHERE 条件的规则只允许有操作 SELECT, INSERT, UPDATE, 或者 DELETE "
 
-#: parser/parse_utilcmd.c:2240 parser/parse_utilcmd.c:2339
-#: rewrite/rewriteHandler.c:478 rewrite/rewriteManip.c:1018
+#: parser/parse_utilcmd.c:2324 parser/parse_utilcmd.c:2423
+#: rewrite/rewriteHandler.c:485 rewrite/rewriteManip.c:1015
 #, c-format
 msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented"
 msgstr "条件工具语句 UNION/INTERSECT/EXCEPT 没有实现"
 
-#: parser/parse_utilcmd.c:2258
+#: parser/parse_utilcmd.c:2342
 #, c-format
 msgid "ON SELECT rule cannot use OLD"
 msgstr "规则ON SELECT不能使用关键词OLD"
 
-#: parser/parse_utilcmd.c:2262
+#: parser/parse_utilcmd.c:2346
 #, c-format
 msgid "ON SELECT rule cannot use NEW"
 msgstr "规则ON SELECT不能使用关键词NEW"
 
-#: parser/parse_utilcmd.c:2271
+#: parser/parse_utilcmd.c:2355
 #, c-format
 msgid "ON INSERT rule cannot use OLD"
 msgstr "规则ON INSERT不能使用关键词OLD"
 
-#: parser/parse_utilcmd.c:2277
+#: parser/parse_utilcmd.c:2361
 #, c-format
 msgid "ON DELETE rule cannot use NEW"
 msgstr "规则ON DELETE不能使用关键词NEW"
 
-#: parser/parse_utilcmd.c:2305
+#: parser/parse_utilcmd.c:2389
 #, c-format
 msgid "cannot refer to OLD within WITH query"
 msgstr "WITH查询中无法引用OLD"
 
-#: parser/parse_utilcmd.c:2312
+#: parser/parse_utilcmd.c:2396
 #, c-format
 msgid "cannot refer to NEW within WITH query"
 msgstr "WITH 查询无法引用NEW"
 
-#: parser/parse_utilcmd.c:2515
+#: parser/parse_utilcmd.c:2599
 #, c-format
 msgid "transform expression must not return a set"
 msgstr "转换表达式不能返回一个组合"
 
-#: parser/parse_utilcmd.c:2629
+#: parser/parse_utilcmd.c:2713
 #, c-format
 msgid "misplaced DEFERRABLE clause"
 msgstr "DEFERRABLE 子句位置错误"
 
-#: parser/parse_utilcmd.c:2634 parser/parse_utilcmd.c:2649
+#: parser/parse_utilcmd.c:2718 parser/parse_utilcmd.c:2733
 #, c-format
 msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed"
 msgstr "不允许多个 DEFERRABLE/NOT DEFERRABLE 子句"
 
-#: parser/parse_utilcmd.c:2644
+#: parser/parse_utilcmd.c:2728
 #, c-format
 msgid "misplaced NOT DEFERRABLE clause"
 msgstr "NOT DEFERRABLE 子句位置错误"
 
-#: parser/parse_utilcmd.c:2665
+#: parser/parse_utilcmd.c:2749
 #, c-format
 msgid "misplaced INITIALLY DEFERRED clause"
 msgstr "INITIALLY DEFERRED 子句位置错误"
 
-#: parser/parse_utilcmd.c:2670 parser/parse_utilcmd.c:2696
+#: parser/parse_utilcmd.c:2754 parser/parse_utilcmd.c:2780
 #, c-format
 msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed"
 msgstr "不允许多个 INITIALLY IMMEDIATE/DEFERRED 子句"
 
-#: parser/parse_utilcmd.c:2691
+#: parser/parse_utilcmd.c:2775
 #, c-format
 msgid "misplaced INITIALLY IMMEDIATE clause"
 msgstr "INITIALLY IMMEDIATE 子句位置错误"
 
-#: parser/parse_utilcmd.c:2882
+#: parser/parse_utilcmd.c:2966
 #, c-format
 msgid ""
 "CREATE specifies a schema (%s) different from the one being created (%s)"
 msgstr "CREATE 指定的模式 (%s) 和将要创建的 (%s) 不同"
 
-#: parser/scansup.c:194
+#: parser/scansup.c:204
 #, c-format
 msgid "identifier \"%s\" will be truncated to \"%s\""
 msgstr "标识符\"%s\"将会被截断为\"%s\""
 
-#: port/pg_latch.c:344 port/unix_latch.c:344
-#, c-format
-msgid "poll() failed: %m"
-msgstr "poll()失败: %m"
-
-#: port/pg_latch.c:440 port/unix_latch.c:440
-#: replication/libpqwalreceiver/libpqwalreceiver.c:374
-#, c-format
-msgid "select() failed: %m"
-msgstr "执行select()失败: %m"
-
 #: port/pg_sema.c:113 port/sysv_sema.c:113
 #, c-format
 msgid "could not create semaphores: %m"
@@ -14353,32 +14860,17 @@ msgstr "生成崩溃转储文件\"%s\"\n"
 msgid "could not write crash dump to file \"%s\": error code %lu\n"
 msgstr "无法写入崩溃转储文件 \"%s\": 错误码 %lu\n"
 
-#: port/win32/security.c:43
-#, c-format
-msgid "could not open process token: error code %lu\n"
-msgstr "无法打开进程令牌 (token): 错误码 %lu\n"
-
-#: port/win32/security.c:63
-#, c-format
-msgid "could not get SID for Administrators group: error code %lu\n"
-msgstr "无法获取管理员组的 SID: 错误码 %lu\n"
-
-#: port/win32/security.c:72
-#, c-format
-msgid "could not get SID for PowerUsers group: error code %lu\n"
-msgstr "无法获取PowerUsers组的 SID: 错误码 %lu\n"
-
-#: port/win32/signal.c:193
+#: port/win32/signal.c:194
 #, c-format
 msgid "could not create signal listener pipe for PID %d: error code %lu"
 msgstr "无法为进程PID %d 创建信号监听管道: 错误码为 %lu"
 
-#: port/win32/signal.c:273 port/win32/signal.c:305
+#: port/win32/signal.c:274 port/win32/signal.c:306
 #, c-format
 msgid "could not create signal listener pipe: error code %lu; retrying\n"
 msgstr "无法创建信号监听管道: 错误码 %lu; 重试\n"
 
-#: port/win32/signal.c:316
+#: port/win32/signal.c:317
 #, c-format
 msgid "could not create signal dispatch thread: error code %lu\n"
 msgstr "无法创建信号分发线程: 错误码 %lu\n"
@@ -14556,35 +15048,33 @@ msgid ""
 "Consider increasing the configuration parameter \"max_worker_processes\"."
 msgstr "考虑增大配置参数 \"max_worker_processes\"的值."
 
-#: postmaster/checkpointer.c:470
+#: postmaster/checkpointer.c:465
 #, c-format
 msgid "checkpoints are occurring too frequently (%d second apart)"
 msgid_plural "checkpoints are occurring too frequently (%d seconds apart)"
 msgstr[0] "检查点事件发生过于频繁(%d 秒间隔)"
 
-#: postmaster/checkpointer.c:474
+#: postmaster/checkpointer.c:469
 #, c-format
-#| msgid ""
-#| "Consider increasing the configuration parameter \"max_worker_processes\"."
 msgid "Consider increasing the configuration parameter \"max_wal_size\"."
 msgstr "考虑增大配置参数 \"max_wal_size\"的值。"
 
-#: postmaster/checkpointer.c:621
+#: postmaster/checkpointer.c:616
 #, c-format
 msgid "transaction log switch forced (archive_timeout=%d)"
 msgstr "强制切换事务日志 (archive_timeout=%d)"
 
-#: postmaster/checkpointer.c:1081
+#: postmaster/checkpointer.c:1074
 #, c-format
 msgid "checkpoint request failed"
 msgstr "检查点请求失败"
 
-#: postmaster/checkpointer.c:1082
+#: postmaster/checkpointer.c:1075
 #, c-format
 msgid "Consult recent messages in the server log for details."
 msgstr "详细信息请参考服务器日志."
 
-#: postmaster/checkpointer.c:1277
+#: postmaster/checkpointer.c:1270
 #, c-format
 msgid "compacted fsync request queue from %d entries to %d entries"
 msgstr "将fsync请求队列从%d压缩至%d项"
@@ -14622,7 +15112,7 @@ msgstr "执行失败的归档命令是: %s"
 msgid "archive command was terminated by exception 0x%X"
 msgstr "归档命令被异常 0x%X 终止"
 
-#: postmaster/pgarch.c:598 postmaster/postmaster.c:3459
+#: postmaster/pgarch.c:598 postmaster/postmaster.c:3478
 #, c-format
 msgid ""
 "See C include file \"ntstatus.h\" for a description of the hexadecimal value."
@@ -14723,196 +15213,194 @@ msgstr "当缺乏可用套接字时取消统计收集器"
 msgid "could not fork statistics collector: %m"
 msgstr "无法派生 (fork) 统计收集器: %m"
 
-#: postmaster/pgstat.c:1233 postmaster/pgstat.c:1257 postmaster/pgstat.c:1290
-#, c-format
-msgid "must be superuser to reset statistics counters"
-msgstr "必须为超级用户才可以重置统计计数器"
-
-#: postmaster/pgstat.c:1266
+#: postmaster/pgstat.c:1262
 #, c-format
 msgid "unrecognized reset target: \"%s\""
 msgstr "未识别的重置目标:\"%s\""
 
-#: postmaster/pgstat.c:1267
+#: postmaster/pgstat.c:1263
 #, c-format
 msgid "Target must be \"archiver\" or \"bgwriter\"."
 msgstr "目标必须是\"archiver\"或\"bgwriter\"."
 
-#: postmaster/pgstat.c:3425
+#: postmaster/pgstat.c:3578
 #, c-format
 msgid "could not read statistics message: %m"
 msgstr "无法读取统计信息: %m"
 
-#: postmaster/pgstat.c:3756 postmaster/pgstat.c:3933
+#: postmaster/pgstat.c:3909 postmaster/pgstat.c:4086
 #, c-format
 msgid "could not open temporary statistics file \"%s\": %m"
 msgstr "无法打开临时统计文件 \"%s\": %m"
 
-#: postmaster/pgstat.c:3824 postmaster/pgstat.c:3978
+#: postmaster/pgstat.c:3977 postmaster/pgstat.c:4131
 #, c-format
 msgid "could not write temporary statistics file \"%s\": %m"
 msgstr "无法写临时统计文件 \"%s\": %m"
 
-#: postmaster/pgstat.c:3833 postmaster/pgstat.c:3987
+#: postmaster/pgstat.c:3986 postmaster/pgstat.c:4140
 #, c-format
 msgid "could not close temporary statistics file \"%s\": %m"
 msgstr "无法关闭临时统计文件 \"%s\": %m"
 
-#: postmaster/pgstat.c:3841 postmaster/pgstat.c:3995
+#: postmaster/pgstat.c:3994 postmaster/pgstat.c:4148
 #, c-format
 msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m"
 msgstr "无法把临时统计文件 \"%s\" 重命名为 \"%s\": %m"
 
-#: postmaster/pgstat.c:4077 postmaster/pgstat.c:4260 postmaster/pgstat.c:4415
+#: postmaster/pgstat.c:4230 postmaster/pgstat.c:4413 postmaster/pgstat.c:4568
 #, c-format
 msgid "could not open statistics file \"%s\": %m"
 msgstr "无法打开统计文件 \"%s\": %m"
 
-#: postmaster/pgstat.c:4089 postmaster/pgstat.c:4099 postmaster/pgstat.c:4109
-#: postmaster/pgstat.c:4130 postmaster/pgstat.c:4145 postmaster/pgstat.c:4201
-#: postmaster/pgstat.c:4272 postmaster/pgstat.c:4292 postmaster/pgstat.c:4310
-#: postmaster/pgstat.c:4326 postmaster/pgstat.c:4344 postmaster/pgstat.c:4360
-#: postmaster/pgstat.c:4427 postmaster/pgstat.c:4439 postmaster/pgstat.c:4451
-#: postmaster/pgstat.c:4476 postmaster/pgstat.c:4498
+#: postmaster/pgstat.c:4242 postmaster/pgstat.c:4252 postmaster/pgstat.c:4262
+#: postmaster/pgstat.c:4283 postmaster/pgstat.c:4298 postmaster/pgstat.c:4354
+#: postmaster/pgstat.c:4425 postmaster/pgstat.c:4445 postmaster/pgstat.c:4463
+#: postmaster/pgstat.c:4479 postmaster/pgstat.c:4497 postmaster/pgstat.c:4513
+#: postmaster/pgstat.c:4580 postmaster/pgstat.c:4592 postmaster/pgstat.c:4604
+#: postmaster/pgstat.c:4629 postmaster/pgstat.c:4651
 #, c-format
 msgid "corrupted statistics file \"%s\""
 msgstr "统计文件损坏\"%s\""
 
-#: postmaster/pgstat.c:4615
+#: postmaster/pgstat.c:4768
 #, c-format
 msgid ""
 "using stale statistics instead of current ones because stats collector is "
 "not responding"
 msgstr "由于统计收集器无响应而使用旧的统计信息来代替当前的统计信息"
 
-#: postmaster/pgstat.c:4933
+#: postmaster/pgstat.c:5086
 #, c-format
 msgid "database hash table corrupted during cleanup --- abort"
 msgstr "清理过程中数据库散列表毁坏 --- 终止"
 
-#: postmaster/postmaster.c:670
+#: postmaster/postmaster.c:676
 #, c-format
 msgid "%s: invalid argument for option -f: \"%s\"\n"
 msgstr "%s: 选项-f的参数无效: \"%s\"\n"
 
-#: postmaster/postmaster.c:756
+#: postmaster/postmaster.c:762
 #, c-format
 msgid "%s: invalid argument for option -t: \"%s\"\n"
 msgstr "%s: -t选项的参数无效: \"%s\"\n"
 
-#: postmaster/postmaster.c:807
+#: postmaster/postmaster.c:813
 #, c-format
 msgid "%s: invalid argument: \"%s\"\n"
 msgstr "%s: 无效参数: \"%s\"\n"
 
-#: postmaster/postmaster.c:842
+#: postmaster/postmaster.c:848
 #, c-format
 msgid "%s: superuser_reserved_connections must be less than max_connections\n"
 msgstr "%s: 超级用户保留联接数必须小于最大联接数\n"
 
-#: postmaster/postmaster.c:847
+#: postmaster/postmaster.c:853
 #, c-format
 msgid "%s: max_wal_senders must be less than max_connections\n"
 msgstr "%s: max_wal_senders必须小于最大连接数\n"
 
-#: postmaster/postmaster.c:852
+#: postmaster/postmaster.c:858
 #, c-format
 msgid "WAL archival cannot be enabled when wal_level is \"minimal\""
 msgstr "当wal_level是\"minimal\"时无法启用WAL归档"
 
-#: postmaster/postmaster.c:855
+#: postmaster/postmaster.c:861
 #, c-format
+#| msgid ""
+#| "WAL streaming (max_wal_senders > 0) requires wal_level \"archive\", "
+#| "\"hot_standby\", or \"logical\""
 msgid ""
-"WAL streaming (max_wal_senders > 0) requires wal_level \"archive\", "
-"\"hot_standby\", or \"logical\""
+"WAL streaming (max_wal_senders > 0) requires wal_level \"replica\" or "
+"\"logical\""
 msgstr ""
-"WAL 流复制的设置(max_wal_senders > 0)要求将wal_level设置为\"archive\"或"
-"\"hot_standby\"或\"logical\""
+"WAL 流复制(max_wal_senders > 0)要求将 wal_level 设置为 \"replica\" 或 "
+"\"logical\""
 
-#: postmaster/postmaster.c:863
+#: postmaster/postmaster.c:869
 #, c-format
 msgid "%s: invalid datetoken tables, please fix\n"
 msgstr "%s: 无效的 datetoken 表, 请修复\n"
 
-#: postmaster/postmaster.c:955 postmaster/postmaster.c:1053
-#: utils/init/miscinit.c:1400
+#: postmaster/postmaster.c:961 postmaster/postmaster.c:1059
+#: utils/init/miscinit.c:1429
 #, c-format
 msgid "invalid list syntax in parameter \"%s\""
 msgstr "在参数\"%s\"中列表语法无效"
 
-#: postmaster/postmaster.c:986
+#: postmaster/postmaster.c:992
 #, c-format
 msgid "could not create listen socket for \"%s\""
 msgstr "无法为 \"%s\" 创建监听套接字"
 
 # fe-connect.c:891
-#: postmaster/postmaster.c:992
+#: postmaster/postmaster.c:998
 #, c-format
 msgid "could not create any TCP/IP sockets"
 msgstr "无法创建TCP/IP套接字"
 
-#: postmaster/postmaster.c:1075
+#: postmaster/postmaster.c:1081
 #, c-format
 msgid "could not create Unix-domain socket in directory \"%s\""
 msgstr "在目录\"%s\"下不能创建Unix域的网络套接字"
 
-#: postmaster/postmaster.c:1081
+#: postmaster/postmaster.c:1087
 #, c-format
 msgid "could not create any Unix-domain sockets"
 msgstr "无法创建 Unix域 套接字"
 
-#: postmaster/postmaster.c:1093
+#: postmaster/postmaster.c:1099
 #, c-format
 msgid "no socket created for listening"
 msgstr "没有为监听创建套接字"
 
 # fe-lobj.c:412
-#: postmaster/postmaster.c:1133
+#: postmaster/postmaster.c:1139
 #, c-format
 msgid "could not create I/O completion port for child queue"
 msgstr "无法为子队列创建I/O完成端口"
 
-#: postmaster/postmaster.c:1162
+#: postmaster/postmaster.c:1168
 #, c-format
 msgid "%s: could not change permissions of external PID file \"%s\": %s\n"
 msgstr "%s: 无法改变外部PID文件 \"%s\" 的权限: %s\n"
 
-#: postmaster/postmaster.c:1166
+#: postmaster/postmaster.c:1172
 #, c-format
 msgid "%s: could not write external PID file \"%s\": %s\n"
 msgstr "%s: 无法写入外部 PID 文件 \"%s\": %s\n"
 
-#: postmaster/postmaster.c:1217
+#: postmaster/postmaster.c:1223
 #, c-format
 msgid "ending log output to stderr"
 msgstr "终止日志输出到标准错误输出设备"
 
-#: postmaster/postmaster.c:1218
+#: postmaster/postmaster.c:1224
 #, c-format
 msgid "Future log output will go to log destination \"%s\"."
 msgstr "后续的日志输出将进入到目标日志 \"%s\"."
 
-#: postmaster/postmaster.c:1244 utils/init/postinit.c:200
+#: postmaster/postmaster.c:1250 utils/init/postinit.c:214
 #, c-format
 msgid "could not load pg_hba.conf"
 msgstr "无法加载pg_hba.conf"
 
-#: postmaster/postmaster.c:1270
+#: postmaster/postmaster.c:1276
 #, c-format
 msgid "postmaster became multithreaded during startup"
 msgstr "在启动期间postmaster变成多线程的"
 
-#: postmaster/postmaster.c:1271
+#: postmaster/postmaster.c:1277
 #, c-format
 msgid "Set the LC_ALL environment variable to a valid locale."
 msgstr "设定LC_ALL环境变量为一个合法的区域。"
 
-#: postmaster/postmaster.c:1368
+#: postmaster/postmaster.c:1374
 #, c-format
 msgid "%s: could not locate matching postgres executable"
 msgstr "%s: 无法找到匹配的 postgres 执行文件"
 
-#: postmaster/postmaster.c:1391 utils/misc/tzparser.c:341
+#: postmaster/postmaster.c:1397 utils/misc/tzparser.c:341
 #, c-format
 msgid ""
 "This may indicate an incomplete PostgreSQL installation, or that the file "
@@ -14921,42 +15409,42 @@ msgstr ""
 "这可能表示PostgreSQL安装未完成,或者文件\"%s\"已经从正确的位置移动到另外的位"
 "置了."
 
-#: postmaster/postmaster.c:1419
+#: postmaster/postmaster.c:1425
 #, c-format
 msgid "data directory \"%s\" does not exist"
 msgstr "数据目录 \"%s\" 不存在"
 
-#: postmaster/postmaster.c:1424
+#: postmaster/postmaster.c:1430
 #, c-format
 msgid "could not read permissions of directory \"%s\": %m"
 msgstr "没有读取目录 \"%s\" 的权限: %m"
 
-#: postmaster/postmaster.c:1432
+#: postmaster/postmaster.c:1438
 #, c-format
 msgid "specified data directory \"%s\" is not a directory"
 msgstr "所指定的数据目录 \"%s\"不是一个目录."
 
-#: postmaster/postmaster.c:1448
+#: postmaster/postmaster.c:1454
 #, c-format
 msgid "data directory \"%s\" has wrong ownership"
 msgstr "data目录 \"%s\"的所有者权限错误."
 
-#: postmaster/postmaster.c:1450
+#: postmaster/postmaster.c:1456
 #, c-format
 msgid "The server must be started by the user that owns the data directory."
 msgstr "服务器必须由拥有data目录的用户启动"
 
-#: postmaster/postmaster.c:1470
+#: postmaster/postmaster.c:1476
 #, c-format
 msgid "data directory \"%s\" has group or world access"
 msgstr "组或其他用户都可以访问数据目录 \"%s\""
 
-#: postmaster/postmaster.c:1472
+#: postmaster/postmaster.c:1478
 #, c-format
 msgid "Permissions should be u=rwx (0700)."
 msgstr "权限应该为 u=rwx (0700)."
 
-#: postmaster/postmaster.c:1483
+#: postmaster/postmaster.c:1489
 #, c-format
 msgid ""
 "%s: could not find the database system\n"
@@ -14967,369 +15455,366 @@ msgstr ""
 "预期在目录 \"%s\" 找到,\n"
 "但是无法打开文件 \"%s\": %s\n"
 
-#: postmaster/postmaster.c:1660
+#: postmaster/postmaster.c:1666
 #, c-format
 msgid "select() failed in postmaster: %m"
 msgstr "postmaster select() 失败: %m"
 
-#: postmaster/postmaster.c:1810
+#: postmaster/postmaster.c:1816
 #, c-format
 msgid ""
 "performing immediate shutdown because data directory lock file is invalid"
 msgstr "由于数据目录锁文件非法而执行立即关闭"
 
-#: postmaster/postmaster.c:1888 postmaster/postmaster.c:1919
+#: postmaster/postmaster.c:1894 postmaster/postmaster.c:1925
 #, c-format
 msgid "incomplete startup packet"
 msgstr "不完整的启动包"
 
-#: postmaster/postmaster.c:1900
+#: postmaster/postmaster.c:1906
 #, c-format
 msgid "invalid length of startup packet"
 msgstr "无效的启动包长度"
 
-#: postmaster/postmaster.c:1958
+#: postmaster/postmaster.c:1964
 #, c-format
 msgid "failed to send SSL negotiation response: %m"
 msgstr "发送 SSL 协商响应失败: %m"
 
-#: postmaster/postmaster.c:1987
+#: postmaster/postmaster.c:1993
 #, c-format
 msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u"
 msgstr "不支持的前端协议 %u.%u: 服务端支持 %u.0 到 %u.%u"
 
-#: postmaster/postmaster.c:2050 utils/misc/guc.c:5484 utils/misc/guc.c:5577
-#: utils/misc/guc.c:6869 utils/misc/guc.c:9555 utils/misc/guc.c:9589
+#: postmaster/postmaster.c:2056 utils/misc/guc.c:5657 utils/misc/guc.c:5750
+#: utils/misc/guc.c:7047 utils/misc/guc.c:9783 utils/misc/guc.c:9817
 #, c-format
 msgid "invalid value for parameter \"%s\": \"%s\""
 msgstr "参数 \"%s\" 的值无效: \"%s\""
 
-#: postmaster/postmaster.c:2053
+#: postmaster/postmaster.c:2059
 #, c-format
-#| msgid "Valid values are: false, 0, true, 1, database."
 msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"."
 msgstr "有效值为:\"false\"、0、\"true\"、1、\"database\"。"
 
-#: postmaster/postmaster.c:2073
+#: postmaster/postmaster.c:2079
 #, c-format
 msgid "invalid startup packet layout: expected terminator as last byte"
 msgstr "无效的启动包格式: 预计结束符为最后一个字节"
 
-#: postmaster/postmaster.c:2101
+#: postmaster/postmaster.c:2107
 #, c-format
 msgid "no PostgreSQL user name specified in startup packet"
 msgstr "在启动包中没有指定 PostgreSQL 用户名"
 
-#: postmaster/postmaster.c:2160
+#: postmaster/postmaster.c:2166
 #, c-format
 msgid "the database system is starting up"
 msgstr "数据库系统启动中"
 
-#: postmaster/postmaster.c:2165
+#: postmaster/postmaster.c:2171
 #, c-format
 msgid "the database system is shutting down"
 msgstr "数据库系统停止中"
 
-#: postmaster/postmaster.c:2170
+#: postmaster/postmaster.c:2176
 #, c-format
 msgid "the database system is in recovery mode"
 msgstr "数据库系统在恢复模式中"
 
-#: postmaster/postmaster.c:2175 storage/ipc/procarray.c:284
-#: storage/ipc/sinvaladt.c:298 storage/lmgr/proc.c:334
+#: postmaster/postmaster.c:2181 storage/ipc/procarray.c:297
+#: storage/ipc/sinvaladt.c:298 storage/lmgr/proc.c:340
 #, c-format
 msgid "sorry, too many clients already"
 msgstr "对不起, 已经有太多的客户"
 
-#: postmaster/postmaster.c:2237
+#: postmaster/postmaster.c:2243
 #, c-format
 msgid "wrong key in cancel request for process %d"
 msgstr "对于进程 %d,在取消请求中的键值错误"
 
-#: postmaster/postmaster.c:2245
+#: postmaster/postmaster.c:2251
 #, c-format
 msgid "PID %d in cancel request did not match any process"
 msgstr "没有进程与取消请求中的PID %d 相匹配"
 
-#: postmaster/postmaster.c:2465
+#: postmaster/postmaster.c:2471
 #, c-format
 msgid "received SIGHUP, reloading configuration files"
 msgstr "接收到 SIGHUP, 重载配置文件"
 
-#: postmaster/postmaster.c:2490
+#: postmaster/postmaster.c:2496
 #, c-format
 msgid "pg_hba.conf not reloaded"
 msgstr "没有重新加载pg_hba.conf"
 
-#: postmaster/postmaster.c:2494
+#: postmaster/postmaster.c:2500
 #, c-format
 msgid "pg_ident.conf not reloaded"
 msgstr "pg_ident.conf 没有重新加载"
 
-#: postmaster/postmaster.c:2535
+#: postmaster/postmaster.c:2541
 #, c-format
 msgid "received smart shutdown request"
 msgstr "接到到智能 (smart) 停止请求"
 
-#: postmaster/postmaster.c:2587
+#: postmaster/postmaster.c:2596
 #, c-format
 msgid "received fast shutdown request"
 msgstr "接收到快速 (fast) 停止请求"
 
-#: postmaster/postmaster.c:2613
+#: postmaster/postmaster.c:2625
 #, c-format
 msgid "aborting any active transactions"
 msgstr "中断任何激活事务"
 
-#: postmaster/postmaster.c:2647
+#: postmaster/postmaster.c:2659
 #, c-format
 msgid "received immediate shutdown request"
 msgstr "接收到立即 (immediate) 停止请求"
 
-#: postmaster/postmaster.c:2708
+#: postmaster/postmaster.c:2723
 #, c-format
-#| msgid "shut down in recovery"
 msgid "shutdown at recovery target"
 msgstr "在恢复目标处关闭"
 
-#: postmaster/postmaster.c:2724 postmaster/postmaster.c:2747
+#: postmaster/postmaster.c:2739 postmaster/postmaster.c:2762
 msgid "startup process"
 msgstr "启动进程"
 
-#: postmaster/postmaster.c:2727
+#: postmaster/postmaster.c:2742
 #, c-format
 msgid "aborting startup due to startup process failure"
 msgstr "由于启动进程失败, 终止启动"
 
-#: postmaster/postmaster.c:2788
+#: postmaster/postmaster.c:2803
 #, c-format
 msgid "database system is ready to accept connections"
 msgstr "数据库系统准备接受连接"
 
-#: postmaster/postmaster.c:2803
+#: postmaster/postmaster.c:2822
 msgid "background writer process"
 msgstr "后台写入进程"
 
-#: postmaster/postmaster.c:2857
+#: postmaster/postmaster.c:2876
 msgid "checkpointer process"
 msgstr "检查点(checkpointer)进程"
 
-#: postmaster/postmaster.c:2873
+#: postmaster/postmaster.c:2892
 msgid "WAL writer process"
 msgstr "WAL写入进程"
 
-#: postmaster/postmaster.c:2887
+#: postmaster/postmaster.c:2906
 msgid "WAL receiver process"
 msgstr "WAL接收进程"
 
-#: postmaster/postmaster.c:2902
+#: postmaster/postmaster.c:2921
 msgid "autovacuum launcher process"
 msgstr "autovacuum启动进程"
 
-#: postmaster/postmaster.c:2917
+#: postmaster/postmaster.c:2936
 msgid "archiver process"
 msgstr "归档进程"
 
-#: postmaster/postmaster.c:2933
+#: postmaster/postmaster.c:2952
 msgid "statistics collector process"
 msgstr "统计收集器进程"
 
-#: postmaster/postmaster.c:2947
+#: postmaster/postmaster.c:2966
 msgid "system logger process"
 msgstr "系统日志进程"
 
-#: postmaster/postmaster.c:3009
+#: postmaster/postmaster.c:3028
 msgid "worker process"
 msgstr "工作进程"
 
-#: postmaster/postmaster.c:3092 postmaster/postmaster.c:3112
-#: postmaster/postmaster.c:3119 postmaster/postmaster.c:3137
+#: postmaster/postmaster.c:3111 postmaster/postmaster.c:3131
+#: postmaster/postmaster.c:3138 postmaster/postmaster.c:3156
 msgid "server process"
 msgstr "服务器进程"
 
-#: postmaster/postmaster.c:3191
+#: postmaster/postmaster.c:3210
 #, c-format
 msgid "terminating any other active server processes"
 msgstr "中断任何其它已激活的服务器进程"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3447
+#: postmaster/postmaster.c:3466
 #, c-format
 msgid "%s (PID %d) exited with exit code %d"
 msgstr "%s (PID %d) 已退出, 退出代码 %d"
 
-#: postmaster/postmaster.c:3449 postmaster/postmaster.c:3460
-#: postmaster/postmaster.c:3471 postmaster/postmaster.c:3480
-#: postmaster/postmaster.c:3490
+#: postmaster/postmaster.c:3468 postmaster/postmaster.c:3479
+#: postmaster/postmaster.c:3490 postmaster/postmaster.c:3499
+#: postmaster/postmaster.c:3509
 #, c-format
 msgid "Failed process was running: %s"
 msgstr "失败进程:%s正在运行"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3457
+#: postmaster/postmaster.c:3476
 #, c-format
 msgid "%s (PID %d) was terminated by exception 0x%X"
 msgstr "%s (PID %d) 被异常 0x%X 终止"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3467
+#: postmaster/postmaster.c:3486
 #, c-format
 msgid "%s (PID %d) was terminated by signal %d: %s"
 msgstr "%s (PID %d) 被信号 %d 中断: %s"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3478
+#: postmaster/postmaster.c:3497
 #, c-format
 msgid "%s (PID %d) was terminated by signal %d"
 msgstr "%s (PID %d) 被信号 %d 中断"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3488
+#: postmaster/postmaster.c:3507
 #, c-format
 msgid "%s (PID %d) exited with unrecognized status %d"
 msgstr "%s (PID %d) 已退出, 意外状态 %d"
 
-#: postmaster/postmaster.c:3675
+#: postmaster/postmaster.c:3694
 #, c-format
 msgid "abnormal database system shutdown"
 msgstr "数据库系统异常关闭"
 
-#: postmaster/postmaster.c:3715
+#: postmaster/postmaster.c:3734
 #, c-format
 msgid "all server processes terminated; reinitializing"
 msgstr "所有的服务器进程被中止; 重新初始化"
 
-#: postmaster/postmaster.c:3927
+#: postmaster/postmaster.c:3946
 #, c-format
 msgid "could not fork new process for connection: %m"
 msgstr "无法为联接派生新进程: %m"
 
-#: postmaster/postmaster.c:3969
+#: postmaster/postmaster.c:3988
 msgid "could not fork new process for connection: "
 msgstr "无法为联接派生新进程: "
 
-#: postmaster/postmaster.c:4075
+#: postmaster/postmaster.c:4102
 #, c-format
 msgid "connection received: host=%s port=%s"
 msgstr "已接收到连接: 主机=%s 端口=%s"
 
-#: postmaster/postmaster.c:4080
+#: postmaster/postmaster.c:4107
 #, c-format
 msgid "connection received: host=%s"
 msgstr "已接收到连接: 主机=%s"
 
-#: postmaster/postmaster.c:4369
+#: postmaster/postmaster.c:4390
 #, c-format
 msgid "could not execute server process \"%s\": %m"
 msgstr "无法执行服务器进程 \"%s\": %m"
 
-#: postmaster/postmaster.c:4929
+#: postmaster/postmaster.c:4955
 #, c-format
 msgid "database system is ready to accept read only connections"
 msgstr "数据库系统准备接受只读请求的连接"
 
-#: postmaster/postmaster.c:5212
+#: postmaster/postmaster.c:5242
 #, c-format
 msgid "could not fork startup process: %m"
 msgstr "无法派生启动进程: %m"
 
-#: postmaster/postmaster.c:5216
+#: postmaster/postmaster.c:5246
 #, c-format
 msgid "could not fork background writer process: %m"
 msgstr "无法 fork 后台写入进程: %m"
 
-#: postmaster/postmaster.c:5220
+#: postmaster/postmaster.c:5250
 #, c-format
 msgid "could not fork checkpointer process: %m"
 msgstr "无法派生检查点进程: %m"
 
-#: postmaster/postmaster.c:5224
+#: postmaster/postmaster.c:5254
 #, c-format
 msgid "could not fork WAL writer process: %m"
 msgstr "无法派生WAL写入进程: %m"
 
-#: postmaster/postmaster.c:5228
+#: postmaster/postmaster.c:5258
 #, c-format
 msgid "could not fork WAL receiver process: %m"
 msgstr "无法派生WAL接收进程: %m"
 
-#: postmaster/postmaster.c:5232
+#: postmaster/postmaster.c:5262
 #, c-format
 msgid "could not fork process: %m"
 msgstr "无法派生进程: %m"
 
-#: postmaster/postmaster.c:5394 postmaster/postmaster.c:5417
+#: postmaster/postmaster.c:5424 postmaster/postmaster.c:5447
 #, c-format
 msgid "database connection requirement not indicated during registration"
 msgstr "在注册阶段没有指定需要的数据库连接"
 
-#: postmaster/postmaster.c:5401 postmaster/postmaster.c:5424
+#: postmaster/postmaster.c:5431 postmaster/postmaster.c:5454
 #, c-format
 msgid "invalid processing mode in background worker"
 msgstr "后台工作进程中的无效处理模式"
 
-#: postmaster/postmaster.c:5476
+#: postmaster/postmaster.c:5506
 #, c-format
 msgid "starting background worker process \"%s\""
 msgstr "启动后台工作进程\"%s\""
 
-#: postmaster/postmaster.c:5487
+#: postmaster/postmaster.c:5517
 #, c-format
 msgid "could not fork worker process: %m"
 msgstr "无法创建工作进程:%m"
 
-#: postmaster/postmaster.c:5863
+#: postmaster/postmaster.c:5895
 #, c-format
 msgid "could not duplicate socket %d for use in backend: error code %d"
 msgstr "无法为后端使用复制套接字 %d: 错误码为 %d"
 
-#: postmaster/postmaster.c:5895
+#: postmaster/postmaster.c:5927
 #, c-format
 msgid "could not create inherited socket: error code %d\n"
 msgstr "无法创建继承套接字: 错误码为 %d\n"
 
-#: postmaster/postmaster.c:5924
+#: postmaster/postmaster.c:5956
 #, c-format
-#| msgid "could not read from backend variables file \"%s\": %s\n"
 msgid "could not open backend variables file \"%s\": %s\n"
 msgstr "无法打开后端变量文件\"%s\":%s\n"
 
-#: postmaster/postmaster.c:5931
+#: postmaster/postmaster.c:5963
 #, c-format
 msgid "could not read from backend variables file \"%s\": %s\n"
 msgstr "无法从后端可变 (variables) 文件 \"%s\" 读取: %s\n"
 
-#: postmaster/postmaster.c:5940
+#: postmaster/postmaster.c:5972
 #, c-format
 msgid "could not remove file \"%s\": %s\n"
 msgstr "无法删除文件 \"%s\": %s\n"
 
-#: postmaster/postmaster.c:5957
+#: postmaster/postmaster.c:5989
 #, c-format
 msgid "could not map view of backend variables: error code %lu\n"
 msgstr "无法映射后端变量视图: 错误码为 %lu\n"
 
-#: postmaster/postmaster.c:5966
+#: postmaster/postmaster.c:5998
 #, c-format
 msgid "could not unmap view of backend variables: error code %lu\n"
 msgstr "无法取消后端变量视图的映射: 错误码为 %lu\n"
 
-#: postmaster/postmaster.c:5973
+#: postmaster/postmaster.c:6005
 #, c-format
 msgid "could not close handle to backend parameter variables: error code %lu\n"
 msgstr "无法关闭后端参数变量的句柄: 错误码为 %lu\n"
 
-#: postmaster/postmaster.c:6132
+#: postmaster/postmaster.c:6166
 #, c-format
 msgid "could not read exit code for process\n"
 msgstr "无法为进程读取退出代码\n"
 
-#: postmaster/postmaster.c:6137
+#: postmaster/postmaster.c:6171
 #, c-format
 msgid "could not post child completion status\n"
 msgstr "无法传递子队列的结束状态\n"
@@ -15394,80 +15879,79 @@ msgstr "取消自动轮寻 (使用 SIGHUP re-enable)"
 msgid "could not determine which collation to use for regular expression"
 msgstr "无法确定正规表达式中使用何种排序规则"
 
-#: repl_gram.y:257 repl_gram.y:284
+#: repl_gram.y:260 repl_gram.y:292
 #, c-format
 msgid "invalid timeline %u"
 msgstr "无效时间线%u"
 
-#: repl_scanner.l:119
+#: repl_scanner.l:120
 msgid "invalid streaming start location"
 msgstr "无效的流起始位置"
 
-#: repl_scanner.l:170 scan.l:667
+#: repl_scanner.l:171 scan.l:671
 msgid "unterminated quoted string"
 msgstr "未结束的引用字符串"
 
-#: repl_scanner.l:180
+#: repl_scanner.l:181
 #, c-format
 msgid "syntax error: unexpected character \"%s\""
 msgstr "语法错误: 遇到意外字符\"%s\""
 
-#: replication/basebackup.c:227
+#: replication/basebackup.c:230
 #, c-format
 msgid "could not stat control file \"%s\": %m"
 msgstr "无法统计控制文件 \"%s\": %m"
 
-#: replication/basebackup.c:336
+#: replication/basebackup.c:339
 #, c-format
 msgid "could not find any WAL files"
 msgstr "无法找到任何WAL文件"
 
-#: replication/basebackup.c:349 replication/basebackup.c:363
-#: replication/basebackup.c:372
+#: replication/basebackup.c:352 replication/basebackup.c:366
+#: replication/basebackup.c:375
 #, c-format
 msgid "could not find WAL file \"%s\""
 msgstr "找不到WAL文件\"%s\""
 
-#: replication/basebackup.c:411 replication/basebackup.c:437
+#: replication/basebackup.c:414 replication/basebackup.c:440
 #, c-format
 msgid "unexpected WAL file size \"%s\""
 msgstr "意外的WAL文件大小\"%s\""
 
-#: replication/basebackup.c:423 replication/basebackup.c:1169
+#: replication/basebackup.c:426 replication/basebackup.c:1172
 #, c-format
 msgid "base backup could not send data, aborting backup"
 msgstr "基础备份无法发送数据,终止备份"
 
-#: replication/basebackup.c:525 replication/basebackup.c:534
-#: replication/basebackup.c:543 replication/basebackup.c:552
-#: replication/basebackup.c:561 replication/basebackup.c:572
-#: replication/basebackup.c:589
+#: replication/basebackup.c:528 replication/basebackup.c:537
+#: replication/basebackup.c:546 replication/basebackup.c:555
+#: replication/basebackup.c:564 replication/basebackup.c:575
+#: replication/basebackup.c:592
 #, c-format
 msgid "duplicate option \"%s\""
 msgstr "重复选项 \"%s\""
 
-#: replication/basebackup.c:578 utils/misc/guc.c:5494
+#: replication/basebackup.c:581 utils/misc/guc.c:5667
 #, c-format
 msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)"
 msgstr "%d 超出了参数 \"%s\" (%d .. %d) 的有效范围"
 
-#: replication/basebackup.c:852 replication/basebackup.c:954
+#: replication/basebackup.c:855 replication/basebackup.c:957
 #, c-format
 msgid "could not stat file or directory \"%s\": %m"
 msgstr "无法统计文件或目录\"%s\": %m"
 
-#: replication/basebackup.c:1121
+#: replication/basebackup.c:1124
 #, c-format
 msgid "skipping special file \"%s\""
 msgstr "跳过特殊文件 \"%s\""
 
-#: replication/basebackup.c:1232
+#: replication/basebackup.c:1235
 #, c-format
-#| msgid "file name too long: \"%s\"\n"
 msgid "file name too long for tar format: \"%s\""
 msgstr "文件名对于tar格式超长:\"%s\""
 
-#: replication/basebackup.c:1237
+#: replication/basebackup.c:1240
 #, c-format
 msgid ""
 "symbolic link target too long for tar format: file name \"%s\", target \"%s\""
@@ -15547,109 +16031,119 @@ msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields."
 msgstr ""
 "期望得到带有两个字段的一条记录,但是现在得到了%d条记录,每条带有%d个字段."
 
-# fe-misc.c:450 fe-misc.c:642 fe-misc.c:798
 #: replication/libpqwalreceiver/libpqwalreceiver.c:334
 #, c-format
-msgid "socket not open"
-msgstr "套接字未打开"
+#| msgid "invalid mask length: %d"
+msgid "invalid socket: %s"
+msgstr "无效的套接字:%s"
+
+#: replication/libpqwalreceiver/libpqwalreceiver.c:374
+#: storage/ipc/latch.c:1271
+#, c-format
+msgid "select() failed: %m"
+msgstr "执行select()失败: %m"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:507
+#: replication/libpqwalreceiver/libpqwalreceiver.c:497
+#: replication/libpqwalreceiver/libpqwalreceiver.c:524
 #: replication/libpqwalreceiver/libpqwalreceiver.c:530
-#: replication/libpqwalreceiver/libpqwalreceiver.c:536
 #, c-format
 msgid "could not receive data from WAL stream: %s"
 msgstr "无法从WAL流中获得数据: %s"
 
 # fe-misc.c:702
-#: replication/libpqwalreceiver/libpqwalreceiver.c:555
+#: replication/libpqwalreceiver/libpqwalreceiver.c:549
 #, c-format
 msgid "could not send data to WAL stream: %s"
 msgstr "无法向WAL流:%s发送数据"
 
-#: replication/logical/logical.c:80
+#: replication/logical/logical.c:83
 #, c-format
 msgid "logical decoding requires wal_level >= logical"
 msgstr "逻辑解码要求wal_level >= logical"
 
-#: replication/logical/logical.c:85
+#: replication/logical/logical.c:88
 #, c-format
 msgid "logical decoding requires a database connection"
 msgstr "逻辑解码需要一个数据库连接"
 
-#: replication/logical/logical.c:103
+#: replication/logical/logical.c:106
 #, c-format
 msgid "logical decoding cannot be used while in recovery"
 msgstr "逻辑解码不能用于恢复操作"
 
-#: replication/logical/logical.c:234 replication/logical/logical.c:383
+#: replication/logical/logical.c:238 replication/logical/logical.c:342
 #, c-format
 msgid "cannot use physical replication slot for logical decoding"
 msgstr "逻辑解码不能使用物理复制槽"
 
-#: replication/logical/logical.c:239 replication/logical/logical.c:388
+#: replication/logical/logical.c:243 replication/logical/logical.c:347
 #, c-format
 msgid "replication slot \"%s\" was not created in this database"
 msgstr "复制槽\"%s\"不能用于此数据库"
 
-#: replication/logical/logical.c:246
+#: replication/logical/logical.c:250
 #, c-format
 msgid ""
 "cannot create logical replication slot in transaction that has performed "
 "writes"
 msgstr "已经执行了写操作的事务里,不能创建逻辑复制槽"
 
-#: replication/logical/logical.c:425
+#: replication/logical/logical.c:384
 #, c-format
 msgid "starting logical decoding for slot \"%s\""
 msgstr "开始为槽\"%s\"进行逻辑解码"
 
-#: replication/logical/logical.c:427
+#: replication/logical/logical.c:386
 #, c-format
 msgid "streaming transactions committing after %X/%X, reading WAL from %X/%X"
 msgstr "流事务在%X/%X后提交,从%X/%X位置读"
 
-#: replication/logical/logical.c:562
+#: replication/logical/logical.c:521
 #, c-format
 msgid ""
 "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X"
 msgstr "槽 \"%s\", 输出插件 \"%s\", 在 %s 回调, 关联的 LSN 地址为%X/%X"
 
-#: replication/logical/logical.c:569
+#: replication/logical/logical.c:528
 #, c-format
 msgid "slot \"%s\", output plugin \"%s\", in the %s callback"
 msgstr "槽 \"%s\", 输出插件 \"%s\", 在 %s 回调"
 
-#: replication/logical/logicalfuncs.c:192 replication/walsender.c:2126
-#, c-format
-msgid "could not read from log segment %s, offset %u, length %lu: %m"
-msgstr "无法在日志段%s,偏移量为%u, 长度为%lu的位置上进行读操作: %m"
-
-#: replication/logical/logicalfuncs.c:211 replication/slotfuncs.c:32
+#: replication/logical/logicalfuncs.c:113 replication/slotfuncs.c:32
 #, c-format
 msgid "must be superuser or replication role to use replication slots"
 msgstr "只有超级用户或者拥有复制角色的用户才能使用复制槽"
 
-#: replication/logical/logicalfuncs.c:341
+#: replication/logical/logicalfuncs.c:152
+#, c-format
+#| msgid "field name must not be null"
+msgid "slot name must not be null"
+msgstr "槽名称不能为空"
+
+#: replication/logical/logicalfuncs.c:168
+#, c-format
+#| msgid "typmod array must not contain nulls"
+msgid "options array must not be null"
+msgstr "选项数组不能为空"
+
+#: replication/logical/logicalfuncs.c:199
 #, c-format
 msgid "array must be one-dimensional"
 msgstr "数组必须是一维的"
 
-#: replication/logical/logicalfuncs.c:347
+#: replication/logical/logicalfuncs.c:205
 #, c-format
 msgid "array must not contain nulls"
 msgstr "数组不能包含空值"
 
-#: replication/logical/logicalfuncs.c:363 utils/adt/json.c:2263
-#: utils/adt/jsonb.c:1362
+#: replication/logical/logicalfuncs.c:221 utils/adt/json.c:2277
+#: utils/adt/jsonb.c:1356
 #, c-format
 msgid "array must have even number of elements"
 msgstr "数组必须包含偶数个元素"
 
-#: replication/logical/logicalfuncs.c:406
+#: replication/logical/logicalfuncs.c:261
 #, c-format
-#| msgid ""
-#| "logical decoding output plugin \"%s\" produces binary output, but \"%s\" "
-#| "expects textual data"
 msgid ""
 "logical decoding output plugin \"%s\" produces binary output, but function "
 "\"%s\" expects textual data"
@@ -15657,26 +16151,22 @@ msgstr "逻辑解码输出插件\"%s\"产生二进制输出,但是函数\"%s\"
 
 #: replication/logical/origin.c:181
 #, c-format
-#| msgid "must be superuser to alter replication users"
 msgid "only superusers can query or manipulate replication origins"
 msgstr "只有超级用户能查询或者操纵复制源头"
 
 #: replication/logical/origin.c:186
 #, c-format
-#| msgid "cannot use a logical replication slot for physical replication"
 msgid ""
 "cannot query or manipulate replication origin when max_replication_slots = 0"
 msgstr "当max_replication_slots = 0时无法查询或者操纵复制源头"
 
 #: replication/logical/origin.c:191
 #, c-format
-#| msgid "cannot execute %s during recovery"
 msgid "cannot manipulate replication origins during recovery"
 msgstr "无法在恢复期间操作复制源头"
 
 #: replication/logical/origin.c:316
 #, c-format
-#| msgid "could not find parent extension for %s\n"
 msgid "could not find free replication origin OID"
 msgstr "无法找到空闲的复制源头OID"
 
@@ -15685,84 +16175,78 @@ msgstr "无法找到空闲的复制源头OID"
 msgid "could not drop replication origin with OID %d, in use by PID %d"
 msgstr "无法删除具有OID %d的复制源头,PID %d正在使用它"
 
-#: replication/logical/origin.c:690
+#: replication/logical/origin.c:671
 #, c-format
-#| msgid "replication slot file \"%s\" has wrong magic %u instead of %u"
 msgid "replication checkpoint has wrong magic %u instead of %u"
 msgstr "复制检查点具有错误的magic值%u而不是%u"
 
-#: replication/logical/origin.c:722
+#: replication/logical/origin.c:703
 #, c-format
-#| msgid "could not read file \"%s\", read %d of %u: %m"
 msgid "could not read file \"%s\": read %d of %zu"
 msgstr "无法读取文件\"%1$s\":读取了%3$zu中的%2$d"
 
-#: replication/logical/origin.c:731
+#: replication/logical/origin.c:712
 #, c-format
-#| msgid "Free one or increase max_replication_slots."
 msgid "could not find free replication state, increase max_replication_slots"
 msgstr "无法找到空闲的复制状态,请增加max_replication_slots的值"
 
-#: replication/logical/origin.c:749
+#: replication/logical/origin.c:730
 #, c-format
-#| msgid "replication slot file \"%s\" has wrong magic %u instead of %u"
 msgid "replication slot checkpoint has wrong checksum %u, expected %u"
 msgstr "复制槽检查点具有错误的校验和%u,正确的应该是%u"
 
-#: replication/logical/origin.c:873
+#: replication/logical/origin.c:854
 #, c-format
-#| msgid "replication slot \"%s\" is already active"
 msgid "replication origin with OID %d is already active for PID %d"
 msgstr "OID为%d的复制源头已经被用于PID %d"
 
-#: replication/logical/origin.c:884 replication/logical/origin.c:1064
+#: replication/logical/origin.c:865 replication/logical/origin.c:1045
 #, c-format
 msgid ""
 "could not find free replication state slot for replication origin with OID %u"
 msgstr "无法为带有OID %u的复制源头找到空闲的复制状态槽"
 
-#: replication/logical/origin.c:886 replication/logical/origin.c:1066
-#: replication/slot.c:1241
+#: replication/logical/origin.c:867 replication/logical/origin.c:1047
+#: replication/slot.c:1288
 #, c-format
 msgid "Increase max_replication_slots and try again."
 msgstr "增大 max_replication_slots的值再重试."
 
-#: replication/logical/origin.c:1023
+#: replication/logical/origin.c:1004
 #, c-format
 msgid "cannot setup replication origin when one is already setup"
 msgstr "在已经设置了一个复制源头的情况下无法再设置复制源头"
 
-#: replication/logical/origin.c:1052
+#: replication/logical/origin.c:1033
 #, c-format
-#| msgid "replication slot \"%s\" is already active"
 msgid "replication identifier %d is already active for PID %d"
 msgstr "复制标识符%d已经被用于PID %d"
 
-#: replication/logical/origin.c:1098 replication/logical/origin.c:1293
-#: replication/logical/origin.c:1313
+#: replication/logical/origin.c:1079 replication/logical/origin.c:1274
+#: replication/logical/origin.c:1294
 #, c-format
 msgid "no replication origin is configured"
 msgstr "没有配置复制源头"
 
-#: replication/logical/reorderbuffer.c:2170
+#: replication/logical/reorderbuffer.c:2309
 #, c-format
 msgid "could not write to data file for XID %u: %m"
 msgstr "无法将XID %u:%m写入数据文件"
 
-#: replication/logical/reorderbuffer.c:2266
-#: replication/logical/reorderbuffer.c:2286
+#: replication/logical/reorderbuffer.c:2405
+#: replication/logical/reorderbuffer.c:2425
 #, c-format
 msgid "could not read from reorderbuffer spill file: %m"
 msgstr "无法读取重排缓冲的溢出文件:%m"
 
-#: replication/logical/reorderbuffer.c:2270
-#: replication/logical/reorderbuffer.c:2290
+#: replication/logical/reorderbuffer.c:2409
+#: replication/logical/reorderbuffer.c:2429
 #, c-format
 msgid ""
 "could not read from reorderbuffer spill file: read %d instead of %u bytes"
 msgstr "无法读取重排缓冲的溢出文件, 读到了%d字节,而不是%u字节"
 
-#: replication/logical/reorderbuffer.c:2894
+#: replication/logical/reorderbuffer.c:3084
 #, c-format
 msgid "could not read from file \"%s\": read %d instead of %d bytes"
 msgstr "无法读文件\"%s\": 读到了%d字节,而不是%d字节"
@@ -15774,331 +16258,344 @@ msgid_plural ""
 "exported logical decoding snapshot: \"%s\" with %u transaction IDs"
 msgstr[0] "导出逻辑解码快照: \"%s\" 带有 %u 个事务 ID"
 
-#: replication/logical/snapbuild.c:904 replication/logical/snapbuild.c:1269
-#: replication/logical/snapbuild.c:1800
+#: replication/logical/snapbuild.c:919 replication/logical/snapbuild.c:1284
+#: replication/logical/snapbuild.c:1815
 #, c-format
 msgid "logical decoding found consistent point at %X/%X"
 msgstr "在 %X/%X处,逻辑解码发现一致点"
 
-#: replication/logical/snapbuild.c:906
+#: replication/logical/snapbuild.c:921
 #, c-format
 msgid "Transaction ID %u finished; no more running transactions."
 msgstr "事务ID %u已结束;已没有正运行的事务."
 
-#: replication/logical/snapbuild.c:1271
+#: replication/logical/snapbuild.c:1286
 #, c-format
 msgid "There are no running transactions."
 msgstr "没有正运行的事务."
 
-#: replication/logical/snapbuild.c:1333
+#: replication/logical/snapbuild.c:1348
 #, c-format
 msgid "logical decoding found initial starting point at %X/%X"
 msgstr "逻辑解码在 %X/%X发现初始化的起始点"
 
-#: replication/logical/snapbuild.c:1335
+#: replication/logical/snapbuild.c:1350
 #, c-format
 msgid "%u transaction needs to finish."
 msgid_plural "%u transactions need to finish."
 msgstr[0] "有%u笔事务需要结束."
 
-#: replication/logical/snapbuild.c:1674 replication/logical/snapbuild.c:1700
-#: replication/logical/snapbuild.c:1714 replication/logical/snapbuild.c:1728
+#: replication/logical/snapbuild.c:1689 replication/logical/snapbuild.c:1715
+#: replication/logical/snapbuild.c:1729 replication/logical/snapbuild.c:1743
 #, c-format
 msgid "could not read file \"%s\", read %d of %d: %m"
 msgstr "无法读取文件 \"%1$s\", 从%3$d:%4$m中读取了%2$d"
 
-#: replication/logical/snapbuild.c:1680
+#: replication/logical/snapbuild.c:1695
 #, c-format
-#| msgid "snapbuild state file \"%s\" has wrong magic %u instead of %u"
 msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u"
 msgstr "快照构建状态文件\"%s\"具有错误的magic号:%u而不是%u"
 
-#: replication/logical/snapbuild.c:1685
+#: replication/logical/snapbuild.c:1700
 #, c-format
-#| msgid "snapbuild state file \"%s\" has unsupported version %u instead of %u"
 msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u"
 msgstr "快照构建状态文件\"%s\"具有不被支持的版本:%u而不是%u"
 
-#: replication/logical/snapbuild.c:1741
+#: replication/logical/snapbuild.c:1756
 #, c-format
-#| msgid "snapbuild state file %s: checksum mismatch, is %u, should be %u"
 msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u"
 msgstr "快照构建状态文件\"%s\"的校验和不匹配:现在的值是%u,正确值应该是%u"
 
-#: replication/logical/snapbuild.c:1802
+#: replication/logical/snapbuild.c:1817
 #, c-format
 msgid "Logical decoding will begin using saved snapshot."
 msgstr "逻辑解码将从使用已存的快照开始."
 
-#: replication/logical/snapbuild.c:1875
+#: replication/logical/snapbuild.c:1890
 #, c-format
 msgid "could not parse file name \"%s\""
 msgstr "无法解析文件名 \"%s\""
 
-#: replication/slot.c:174
+#: replication/slot.c:183
 #, c-format
 msgid "replication slot name \"%s\" is too short"
 msgstr "复制槽名 \"%s\" 太短"
 
-#: replication/slot.c:183
+#: replication/slot.c:192
 #, c-format
 msgid "replication slot name \"%s\" is too long"
 msgstr "复制槽名 \"%s\" 太长"
 
-#: replication/slot.c:196
+#: replication/slot.c:205
 #, c-format
 msgid "replication slot name \"%s\" contains invalid character"
 msgstr "复制槽名 \"%s\"中包含无效的数据"
 
-#: replication/slot.c:198
+#: replication/slot.c:207
 #, c-format
-#| msgid ""
-#| "Replication slot names may only contain letters, numbers, and the "
-#| "underscore character."
 msgid ""
 "Replication slot names may only contain lower case letters, numbers, and the "
 "underscore character."
 msgstr "复制槽的名字只能包含小写字母、数字以及下划线字符。"
 
-#: replication/slot.c:245
+#: replication/slot.c:254
 #, c-format
 msgid "replication slot \"%s\" already exists"
 msgstr "复制槽名 \"%s\" 已经存在"
 
-#: replication/slot.c:255
+#: replication/slot.c:264
 #, c-format
 msgid "all replication slots are in use"
 msgstr "所有的复制槽都在使用中"
 
-#: replication/slot.c:256
+#: replication/slot.c:265
 #, c-format
 msgid "Free one or increase max_replication_slots."
 msgstr "释放一个槽或者增大max_replication_slots的值."
 
-#: replication/slot.c:348
+#: replication/slot.c:351
 #, c-format
 msgid "replication slot \"%s\" does not exist"
 msgstr "复制槽名 \"%s\" 不存在"
 
-#: replication/slot.c:352
+#: replication/slot.c:355
 #, c-format
-#| msgid "replication slot \"%s\" is already active"
-msgid "replication slot \"%s\" is already active for PID %d"
-msgstr "复制槽\"%s\"已经被用于PID %d"
+#| msgid "replication slot \"%s\" is already active for PID %d"
+msgid "replication slot \"%s\" is active for PID %d"
+msgstr "复制槽 \"%s\" 正用于 PID %d"
 
-#: replication/slot.c:501 replication/slot.c:857 replication/slot.c:1202
+#: replication/slot.c:501 replication/slot.c:912 replication/slot.c:1249
 #, c-format
 msgid "could not remove directory \"%s\""
 msgstr "无法删除目录 \"%s\""
 
-#: replication/slot.c:776
+#: replication/slot.c:761
 #, c-format
 msgid "replication slots can only be used if max_replication_slots > 0"
 msgstr "复制槽只有当 max_replication_slots > 0时才能使用"
 
-#: replication/slot.c:781
+#: replication/slot.c:766
 #, c-format
-msgid "replication slots can only be used if wal_level >= archive"
-msgstr "复制槽只有当 wal_level >= archive时才能使用"
+#| msgid "replication slots can only be used if wal_level >= archive"
+msgid "replication slots can only be used if wal_level >= replica"
+msgstr "复制槽只有当 wal_level >= replica 时才能使用"
 
-#: replication/slot.c:1134 replication/slot.c:1172
+#: replication/slot.c:1181 replication/slot.c:1219
 #, c-format
 msgid "could not read file \"%s\", read %d of %u: %m"
 msgstr "无法读取文件 \"%s\", 读到了%d字节,从%u:%m处"
 
-#: replication/slot.c:1143
+#: replication/slot.c:1190
 #, c-format
-#| msgid "replication slot file \"%s\" has wrong magic %u instead of %u"
 msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u"
 msgstr "复制槽文件\"%s\"具有错误的magic号:%u,正确的应该是%u"
 
-#: replication/slot.c:1150
+#: replication/slot.c:1197
 #, c-format
 msgid "replication slot file \"%s\" has unsupported version %u"
 msgstr "复制槽文件 \"%s\" 的版本号%u不被支持"
 
-#: replication/slot.c:1157
+#: replication/slot.c:1204
 #, c-format
 msgid "replication slot file \"%s\" has corrupted length %u"
 msgstr "复制槽文件 \"%s\" 的长度 %u已损坏"
 
-#: replication/slot.c:1187
+#: replication/slot.c:1234
 #, c-format
-#| msgid "replication slot file %s: checksum mismatch, is %u, should be %u"
 msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u"
 msgstr "复制槽文件\"%s\"的校验和不匹配:值为 %u,正确值应该是 %u"
 
-#: replication/slot.c:1240
+#: replication/slot.c:1287
 #, c-format
 msgid "too many replication slots active before shutdown"
 msgstr "关闭前有太多活动的复制槽"
 
-#: replication/syncrep.c:199
+#: replication/syncrep.c:228
 #, c-format
 msgid ""
 "canceling the wait for synchronous replication and terminating connection "
 "due to administrator command"
 msgstr "取消等待同步复制,听从管理员命令终断连接"
 
-#: replication/syncrep.c:200 replication/syncrep.c:217
+#: replication/syncrep.c:229 replication/syncrep.c:246
 #, c-format
 msgid ""
 "The transaction has already committed locally, but might not have been "
 "replicated to the standby."
 msgstr "事务已经在本地提交, 但有可能还没完成到备用节点的复制."
 
-#: replication/syncrep.c:216
+#: replication/syncrep.c:245
 #, c-format
 msgid "canceling wait for synchronous replication due to user request"
 msgstr "听从用户请求,取消等待同步复制"
 
-#: replication/syncrep.c:346
+#: replication/syncrep.c:380
 #, c-format
 msgid "standby \"%s\" now has synchronous standby priority %u"
 msgstr "备用节点 \"%s\" 现在拥有同步备用优先级: %u"
 
-#: replication/syncrep.c:480
+#: replication/syncrep.c:440
+#, c-format
+#| msgid "standby \"%s\" is now the synchronous standby with priority %u"
+msgid "standby \"%s\" is now a synchronous standby with priority %u"
+msgstr "后备 \"%s\" 现在是具有优先级 %u 的一个同步后备"
+
+#: replication/syncrep.c:969
+#, c-format
+msgid "synchronous_standby_names parser returned %d"
+msgstr "synchronous_standby_names 解析器返回 %d"
+
+#: replication/syncrep.c:1014
+#, c-format
+msgid ""
+"The configured number of synchronous standbys (%d) exceeds the number of "
+"names of potential synchronous ones (%d)"
+msgstr "配置的同步后备的数量(%d)超过了潜在同步后备的名称数量(%d)"
+
+#: replication/syncrep.c:1016
 #, c-format
-msgid "standby \"%s\" is now the synchronous standby with priority %u"
-msgstr "备用节点 \"%s\" 现在是拥有同步备用优先级: %u的备用节点"
+#| msgid "List of names of potential synchronous standbys."
+msgid ""
+"Specify more names of potential synchronous standbys in "
+"synchronous_standby_names."
+msgstr "在 synchronous_standby_names 中指定更多潜在同步后备的名称。"
 
-#: replication/walreceiver.c:167
+#: replication/walreceiver.c:172
 #, c-format
 msgid "terminating walreceiver process due to administrator command"
 msgstr "由于管理员命令中断walreceiver进程"
 
-#: replication/walreceiver.c:321
+#: replication/walreceiver.c:324
 #, c-format
 msgid "highest timeline %u of the primary is behind recovery timeline %u"
 msgstr "主服务器上的最高时间线%u还在恢复时间线%u的后边"
 
-#: replication/walreceiver.c:356
+#: replication/walreceiver.c:357
 #, c-format
 msgid "started streaming WAL from primary at %X/%X on timeline %u"
 msgstr "在时间点: %X/%X (时间安排%u)启动日志的流操作"
 
-#: replication/walreceiver.c:361
+#: replication/walreceiver.c:362
 #, c-format
 msgid "restarted WAL streaming at %X/%X on timeline %u"
 msgstr "在%X/%X处时间线%u上重启WAL流操作"
 
-#: replication/walreceiver.c:395
+#: replication/walreceiver.c:391
 #, c-format
 msgid "cannot continue WAL streaming, recovery has already ended"
 msgstr "无法继续进行WAL流复制操作,恢复已经结束"
 
-#: replication/walreceiver.c:432
+#: replication/walreceiver.c:428
 #, c-format
 msgid "replication terminated by primary server"
 msgstr "复制由主用服务器终止"
 
-#: replication/walreceiver.c:433
+#: replication/walreceiver.c:429
 #, c-format
 msgid "End of WAL reached on timeline %u at %X/%X."
 msgstr "WAL结束时,到了时间线%u和地址%X/%X."
 
-#: replication/walreceiver.c:480
+#: replication/walreceiver.c:523
 #, c-format
 msgid "terminating walreceiver due to timeout"
 msgstr "由于超时, 中止walreceiver进程"
 
-#: replication/walreceiver.c:520
+#: replication/walreceiver.c:563
 #, c-format
 msgid "primary server contains no more WAL on requested timeline %u"
 msgstr "主服务器 在时间点 %u不再有WAL"
 
-#: replication/walreceiver.c:535 replication/walreceiver.c:895
+#: replication/walreceiver.c:578 replication/walreceiver.c:936
 #, c-format
 msgid "could not close log segment %s: %m"
 msgstr "无法关闭日志段%s: %m"
 
-#: replication/walreceiver.c:660
+#: replication/walreceiver.c:702
 #, c-format
 msgid "fetching timeline history file for timeline %u from primary server"
 msgstr "从主服务器的时间点%u获取时间点历史文件"
 
-#: replication/walreceiver.c:949
+#: replication/walreceiver.c:990
 #, c-format
 msgid "could not write to log segment %s at offset %u, length %lu: %m"
 msgstr "无法在偏移量 %2$u,长度 %3$lu写入日志文件%1$s, 段:%4$m"
 
-#: replication/walsender.c:483
+#: replication/walsender.c:485
 #, c-format
 msgid "could not seek to beginning of file \"%s\": %m"
 msgstr "无法查找到文件\"%s\"的起始位置: %m"
 
-#: replication/walsender.c:534
+#: replication/walsender.c:536
 #, c-format
 msgid "cannot use a logical replication slot for physical replication"
 msgstr "物理复制操作不能使用逻辑复制槽"
 
-#: replication/walsender.c:597
+#: replication/walsender.c:599
 #, c-format
 msgid ""
 "requested starting point %X/%X on timeline %u is not in this server's history"
 msgstr "请求的起始点%X/%X, 时间线%u,不在该服务器的时间线历史记录里"
 
-#: replication/walsender.c:601
+#: replication/walsender.c:603
 #, c-format
 msgid "This server's history forked from timeline %u at %X/%X."
 msgstr "服务器的历史时间线在时间线%u,地址%X/%X处产生了分支."
 
-#: replication/walsender.c:646
+#: replication/walsender.c:648
 #, c-format
 msgid ""
 "requested starting point %X/%X is ahead of the WAL flush position of this "
 "server %X/%X"
 msgstr "请求的起始点 %X/%X 位于该服务器的WAL刷新位置%X/%X之前"
 
-#: replication/walsender.c:965
+#: replication/walsender.c:974
 #, c-format
 msgid "terminating walsender process after promotion"
 msgstr "在提升后, 中断walreceiver进程"
 
-#: replication/walsender.c:1292
+#: replication/walsender.c:1300
 #, c-format
-#| msgid "%s: could not send replication command \"%s\": %s"
 msgid "received replication command: %s"
 msgstr "收到的复制命令:%s"
 
-#: replication/walsender.c:1385 replication/walsender.c:1401
+#: replication/walsender.c:1393 replication/walsender.c:1409
 #, c-format
 msgid "unexpected EOF on standby connection"
 msgstr "在备用服务器连接上的出现意外的EOF"
 
-#: replication/walsender.c:1415
+#: replication/walsender.c:1423
 #, c-format
 msgid "unexpected standby message type \"%c\", after receiving CopyDone"
 msgstr "在接收CopyDone后出现意外的消息类型\"%c\""
 
-#: replication/walsender.c:1453
+#: replication/walsender.c:1461
 #, c-format
 msgid "invalid standby message type \"%c\""
 msgstr "无效的备用节点消息类型 \"%c\""
 
-#: replication/walsender.c:1494
+#: replication/walsender.c:1502
 #, c-format
 msgid "unexpected message type \"%c\""
 msgstr "意外的消息类型\"%c\""
 
-#: replication/walsender.c:1781
+#: replication/walsender.c:1786
 #, c-format
 msgid "terminating walsender process due to replication timeout"
 msgstr "由于复制超时, 中断walreceiver进程"
 
-#: replication/walsender.c:1874
+#: replication/walsender.c:1879
 #, c-format
 msgid "standby \"%s\" has now caught up with primary"
 msgstr "备用节点 \"%s\" 现在遇上了主节点"
 
-#: replication/walsender.c:1975
+#: replication/walsender.c:1982
 #, c-format
 msgid ""
 "number of requested standby connections exceeds max_wal_senders (currently "
 "%d)"
 msgstr "所要求的备用服务器连接数超过了参数max_wal_senders的值(当前设置为%d)"
 
-#: rewrite/rewriteDefine.c:112 rewrite/rewriteDefine.c:961
+#: rewrite/rewriteDefine.c:112 rewrite/rewriteDefine.c:973
 #, c-format
 msgid "rule \"%s\" for relation \"%s\" already exists"
 msgstr "关系 \"%2$s\" 的规则 \"%1$s\" 已经存在"
@@ -16191,14 +16688,12 @@ msgstr "无法把表 \"%s\" 转换为视图, 因为它有子表"
 
 #: rewrite/rewriteDefine.c:459
 #, c-format
-#| msgid "could not convert table \"%s\" to a view because it has child tables"
 msgid ""
 "could not convert table \"%s\" to a view because it has row security enabled"
 msgstr "无法把表\"%s\"转换为视图,因为它的行级安全性被启用"
 
 #: rewrite/rewriteDefine.c:465
 #, c-format
-#| msgid "could not convert table \"%s\" to a view because it has child tables"
 msgid ""
 "could not convert table \"%s\" to a view because it has row security policies"
 msgstr "无法把表\"%s\"转换为视图,因为它有行级安全性策略"
@@ -16228,266 +16723,271 @@ msgstr "SELECT 规则的目标列表的记录太多"
 msgid "RETURNING list has too many entries"
 msgstr "RETURNING列表中的项太多."
 
-#: rewrite/rewriteDefine.c:684
+#: rewrite/rewriteDefine.c:695
 #, c-format
 msgid "cannot convert relation containing dropped columns to view"
 msgstr "无法转换包含已删除字段的关系为视图"
 
-#: rewrite/rewriteDefine.c:690
+#: rewrite/rewriteDefine.c:696
+#, c-format
+#| msgid "cannot convert relation containing dropped columns to view"
+msgid ""
+"cannot create a RETURNING list for a relation containing dropped columns"
+msgstr "无法为一个包含有被删除列的关系创建一个 RETURNING 列表"
+
+#: rewrite/rewriteDefine.c:702
 #, c-format
 msgid ""
 "SELECT rule's target entry %d has different column name from column \"%s\""
 msgstr "SELECT 规则的目标记录 %d 的字段名和字段 \"%s\" 不同"
 
-#: rewrite/rewriteDefine.c:692
+#: rewrite/rewriteDefine.c:704
 #, c-format
 msgid "SELECT target entry is named \"%s\"."
 msgstr "SELECT 目标项命名为\"%s\","
 
-#: rewrite/rewriteDefine.c:701
+#: rewrite/rewriteDefine.c:713
 #, c-format
 msgid "SELECT rule's target entry %d has different type from column \"%s\""
 msgstr "SELECT 规则的目标记录 %d 和字段 \"%s\" 的类型不同"
 
-#: rewrite/rewriteDefine.c:703
+#: rewrite/rewriteDefine.c:715
 #, c-format
 msgid "RETURNING list's entry %d has different type from column \"%s\""
 msgstr "RETURNING列表中的第%d项与列\"%s\"的类型不同"
 
-#: rewrite/rewriteDefine.c:706 rewrite/rewriteDefine.c:730
+#: rewrite/rewriteDefine.c:718 rewrite/rewriteDefine.c:742
 #, c-format
 msgid "SELECT target entry has type %s, but column has type %s."
 msgstr "SELECT 目标项类型为%s, 但其列类型为%s."
 
-#: rewrite/rewriteDefine.c:709 rewrite/rewriteDefine.c:734
+#: rewrite/rewriteDefine.c:721 rewrite/rewriteDefine.c:746
 #, c-format
 msgid "RETURNING list entry has type %s, but column has type %s."
 msgstr "RETURNING列表项类型为%s, 但是其列类型为%s."
 
-#: rewrite/rewriteDefine.c:725
+#: rewrite/rewriteDefine.c:737
 #, c-format
 msgid "SELECT rule's target entry %d has different size from column \"%s\""
 msgstr "SELECT 规则的目标记录 %d 与字段 \"%s\" 的大小不同"
 
-#: rewrite/rewriteDefine.c:727
+#: rewrite/rewriteDefine.c:739
 #, c-format
 msgid "RETURNING list's entry %d has different size from column \"%s\""
 msgstr "在RETURNING列表中的第%d项的大小与列 \"%s\"不同"
 
-#: rewrite/rewriteDefine.c:744
+#: rewrite/rewriteDefine.c:756
 #, c-format
 msgid "SELECT rule's target list has too few entries"
 msgstr "SELECT 规则的目标列表记录数太少"
 
-#: rewrite/rewriteDefine.c:745
+#: rewrite/rewriteDefine.c:757
 #, c-format
 msgid "RETURNING list has too few entries"
 msgstr "RETURNING 列表后面的项太少"
 
-#: rewrite/rewriteDefine.c:837 rewrite/rewriteDefine.c:952
+#: rewrite/rewriteDefine.c:849 rewrite/rewriteDefine.c:964
 #: rewrite/rewriteSupport.c:112
 #, c-format
 msgid "rule \"%s\" for relation \"%s\" does not exist"
 msgstr "关系 \"%2$s\" 的 \"%1$s\" 规则不存在"
 
-#: rewrite/rewriteDefine.c:971
+#: rewrite/rewriteDefine.c:983
 #, c-format
 msgid "renaming an ON SELECT rule is not allowed"
 msgstr "不允许重命名一个ON SELECT规则"
 
-#: rewrite/rewriteHandler.c:521
+#: rewrite/rewriteHandler.c:528
 #, c-format
 msgid ""
 "WITH query name \"%s\" appears in both a rule action and the query being "
 "rewritten"
 msgstr "WITH 查询名 \"%s\" 看起来好像在某规则行为和查询重写里同时出现"
 
-#: rewrite/rewriteHandler.c:581
+#: rewrite/rewriteHandler.c:588
 #, c-format
 msgid "cannot have RETURNING lists in multiple rules"
 msgstr "无法在多个规则中拥有RETURNING列表"
 
-#: rewrite/rewriteHandler.c:921 rewrite/rewriteHandler.c:939
+#: rewrite/rewriteHandler.c:928 rewrite/rewriteHandler.c:946
 #, c-format
 msgid "multiple assignments to same column \"%s\""
 msgstr "对同一列\"%s\"进行了多次分配"
 
-#: rewrite/rewriteHandler.c:1714 rewrite/rewriteHandler.c:3307
+#: rewrite/rewriteHandler.c:1721 rewrite/rewriteHandler.c:3331
 #, c-format
 msgid "infinite recursion detected in rules for relation \"%s\""
 msgstr "在关系 \"%s\" 的规则中发现无限循环"
 
-#: rewrite/rewriteHandler.c:1799
+#: rewrite/rewriteHandler.c:1806
 #, c-format
-#| msgid "infinite recursion detected in rules for relation \"%s\""
 msgid "infinite recursion detected in policy for relation \"%s\""
 msgstr "在关系\"%s\"的策略中检测到无限循环"
 
-#: rewrite/rewriteHandler.c:2113
+#: rewrite/rewriteHandler.c:2123
 msgid "Junk view columns are not updatable."
 msgstr "废弃视图列不可更新."
 
-#: rewrite/rewriteHandler.c:2118
+#: rewrite/rewriteHandler.c:2128
 msgid ""
 "View columns that are not columns of their base relation are not updatable."
 msgstr "不属于基础关系的列的那些视图列不能用于更新操作."
 
-#: rewrite/rewriteHandler.c:2121
+#: rewrite/rewriteHandler.c:2131
 msgid "View columns that refer to system columns are not updatable."
 msgstr "引用系统列的视图列不能用于更新操作."
 
-#: rewrite/rewriteHandler.c:2124
+#: rewrite/rewriteHandler.c:2134
 msgid "View columns that return whole-row references are not updatable."
 msgstr "返回整行引用的视图列不能更新"
 
-#: rewrite/rewriteHandler.c:2182
+#: rewrite/rewriteHandler.c:2192
 msgid "Views containing DISTINCT are not automatically updatable."
 msgstr "包含DISTINCT的视图列不能自动更新."
 
-#: rewrite/rewriteHandler.c:2185
+#: rewrite/rewriteHandler.c:2195
 msgid "Views containing GROUP BY are not automatically updatable."
 msgstr "包含 GROUP BY 的视图列不能自动更新."
 
-#: rewrite/rewriteHandler.c:2188
+#: rewrite/rewriteHandler.c:2198
 msgid "Views containing HAVING are not automatically updatable."
 msgstr "包含 HAVING 的视图列不能自动更新."
 
-#: rewrite/rewriteHandler.c:2191
+#: rewrite/rewriteHandler.c:2201
 msgid ""
 "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable."
 msgstr "包含 UNION, INTERSECT, 或 EXCEPT 不能用于自动更新."
 
-#: rewrite/rewriteHandler.c:2194
+#: rewrite/rewriteHandler.c:2204
 msgid "Views containing WITH are not automatically updatable."
 msgstr "包含 WITH 的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2197
+#: rewrite/rewriteHandler.c:2207
 msgid "Views containing LIMIT or OFFSET are not automatically updatable."
 msgstr "包含 LIMIT 或 OFFSET 的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2209
+#: rewrite/rewriteHandler.c:2219
 msgid "Views that return aggregate functions are not automatically updatable."
 msgstr "返回聚集函数的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2212
+#: rewrite/rewriteHandler.c:2222
 msgid "Views that return window functions are not automatically updatable."
 msgstr "返回窗口函数的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2215
+#: rewrite/rewriteHandler.c:2225
 msgid ""
 "Views that return set-returning functions are not automatically updatable."
 msgstr "返回自返回函数的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2222 rewrite/rewriteHandler.c:2226
-#: rewrite/rewriteHandler.c:2233
+#: rewrite/rewriteHandler.c:2232 rewrite/rewriteHandler.c:2236
+#: rewrite/rewriteHandler.c:2243
 msgid ""
 "Views that do not select from a single table or view are not automatically "
 "updatable."
 msgstr "不来自单表或单视图的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2236
-#| msgid "Views containing WITH are not automatically updatable."
+#: rewrite/rewriteHandler.c:2246
 msgid "Views containing TABLESAMPLE are not automatically updatable."
 msgstr "包含TABLESAMPLE的视图不能自动更新。"
 
-#: rewrite/rewriteHandler.c:2260
+#: rewrite/rewriteHandler.c:2270
 msgid "Views that have no updatable columns are not automatically updatable."
 msgstr "没有更新列的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2707
+#: rewrite/rewriteHandler.c:2724
 #, c-format
 msgid "cannot insert into column \"%s\" of view \"%s\""
 msgstr "无法插入列\"%s\"到视图\"%s\""
 
-#: rewrite/rewriteHandler.c:2715
+#: rewrite/rewriteHandler.c:2732
 #, c-format
 msgid "cannot update column \"%s\" of view \"%s\""
 msgstr "无法更新视图 \"%2$s\" 的字段 \"%1$s\""
 
-#: rewrite/rewriteHandler.c:3106
+#: rewrite/rewriteHandler.c:3130
 #, c-format
 msgid ""
 "DO INSTEAD NOTHING rules are not supported for data-modifying statements in "
 "WITH"
 msgstr "DO INSTEAD NOTHING规则不支持在WITH子句中执行数据修改操作"
 
-#: rewrite/rewriteHandler.c:3120
+#: rewrite/rewriteHandler.c:3144
 #, c-format
 msgid ""
 "conditional DO INSTEAD rules are not supported for data-modifying statements "
 "in WITH"
 msgstr "DO INSTEAD 条件规则不支持在WITH子句中执行数据修改操作"
 
-#: rewrite/rewriteHandler.c:3124
+#: rewrite/rewriteHandler.c:3148
 #, c-format
 msgid "DO ALSO rules are not supported for data-modifying statements in WITH"
 msgstr "DO ALSO 规则不支持在WITH子句中执行数据修改操作"
 
-#: rewrite/rewriteHandler.c:3129
+#: rewrite/rewriteHandler.c:3153
 #, c-format
 msgid ""
 "multi-statement DO INSTEAD rules are not supported for data-modifying "
 "statements in WITH"
 msgstr "多语句 DO INSTEAD 规则不支持在WITH子句中执行数据修改操作"
 
-#: rewrite/rewriteHandler.c:3344
+#: rewrite/rewriteHandler.c:3368
 #, c-format
 msgid "cannot perform INSERT RETURNING on relation \"%s\""
 msgstr "无法在关系\"%s\"上执行INSERT RETURNING "
 
-#: rewrite/rewriteHandler.c:3346
+#: rewrite/rewriteHandler.c:3370
 #, c-format
 msgid ""
 "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause."
 msgstr "您需要一个无条件, 且带有RETURNING子句的ON INSERT DO INSTEAD的规则."
 
-#: rewrite/rewriteHandler.c:3351
+#: rewrite/rewriteHandler.c:3375
 #, c-format
 msgid "cannot perform UPDATE RETURNING on relation \"%s\""
 msgstr "无法在关系\"%s\"执行UPDATE RETURNING"
 
-#: rewrite/rewriteHandler.c:3353
+#: rewrite/rewriteHandler.c:3377
 #, c-format
 msgid ""
 "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause."
 msgstr "您需要一个无条件的 ON UPDATE DO INSTEAD 规则."
 
-#: rewrite/rewriteHandler.c:3358
+#: rewrite/rewriteHandler.c:3382
 #, c-format
 msgid "cannot perform DELETE RETURNING on relation \"%s\""
 msgstr "无法在关系 \"%s\"上执行DELETE RETURNING"
 
-#: rewrite/rewriteHandler.c:3360
+#: rewrite/rewriteHandler.c:3384
 #, c-format
 msgid ""
 "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause."
 msgstr "您需要一个无条件, 且带有RETURNING子句的ON DELETE DO INSTEAD 规则."
 
-#: rewrite/rewriteHandler.c:3378
+#: rewrite/rewriteHandler.c:3402
 #, c-format
 msgid ""
 "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or "
 "UPDATE rules"
 msgstr "无法对具有INSERT或者UPDATE规则的表使用带有ON CONFLICT子句的INSERT"
 
-#: rewrite/rewriteHandler.c:3435
+#: rewrite/rewriteHandler.c:3459
 #, c-format
 msgid ""
 "WITH cannot be used in a query that is rewritten by rules into multiple "
 "queries"
 msgstr "WITH 不能用于按规则可重写为多个查询的查询语句中"
 
-#: rewrite/rewriteManip.c:1006
+#: rewrite/rewriteManip.c:1003
 #, c-format
 msgid "conditional utility statements are not implemented"
 msgstr "条件工具语句没有实现"
 
-#: rewrite/rewriteManip.c:1172
+#: rewrite/rewriteManip.c:1169
 #, c-format
 msgid "WHERE CURRENT OF on a view is not implemented"
 msgstr "未实现在视图上的WHERE CURRENT OF操作"
 
-#: rewrite/rewriteManip.c:1437
+#: rewrite/rewriteManip.c:1434
 #, c-format
 msgid ""
 "NEW variables in ON UPDATE rules cannot reference columns that are part of a "
@@ -16510,24 +17010,24 @@ msgstr "有多条规则的名字是 \"%s\""
 msgid "Specify a relation name as well as a rule name."
 msgstr "指定一个关系名称, 和规则名称一样."
 
-#: scan.l:432
+#: scan.l:433
 msgid "unterminated /* comment"
 msgstr "/* 注释没有结束"
 
-#: scan.l:461
+#: scan.l:462
 msgid "unterminated bit string literal"
 msgstr "未结束的bit字符串常量"
 
-#: scan.l:482
+#: scan.l:483
 msgid "unterminated hexadecimal string literal"
 msgstr "未结束的16进制字符串常量"
 
-#: scan.l:532
+#: scan.l:533
 #, c-format
 msgid "unsafe use of string constant with Unicode escapes"
 msgstr "这种使用带有Unicode转义字符的字符串常量的方法不安全."
 
-#: scan.l:533
+#: scan.l:534
 #, c-format
 msgid ""
 "String constants with Unicode escapes cannot be used when "
@@ -16536,101 +17036,101 @@ msgstr ""
 "当参数standard_conforming_strings处于关闭状态时,无法使用带有Unicode转义字符"
 "的字符串常量."
 
-#: scan.l:577 scan.l:773
+#: scan.l:580 scan.l:779
 msgid "invalid Unicode escape character"
 msgstr "无效Unicode转义字符"
 
-#: scan.l:602 scan.l:610 scan.l:618 scan.l:619 scan.l:620 scan.l:1329
-#: scan.l:1356 scan.l:1360 scan.l:1398 scan.l:1402 scan.l:1424
+#: scan.l:606 scan.l:614 scan.l:622 scan.l:623 scan.l:624 scan.l:1338
+#: scan.l:1365 scan.l:1369 scan.l:1407 scan.l:1411 scan.l:1433
 msgid "invalid Unicode surrogate pair"
 msgstr "无效的Unicode代理项对(surrogate pair)"
 
-#: scan.l:624
+#: scan.l:628
 #, c-format
 msgid "invalid Unicode escape"
 msgstr "无效的Unicode转义字符"
 
-#: scan.l:625
+#: scan.l:629
 #, c-format
 msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX."
 msgstr "Unicode转义字符必须是\\uXXXX或\\UXXXXXXXX."
 
-#: scan.l:636
+#: scan.l:640
 #, c-format
 msgid "unsafe use of \\' in a string literal"
 msgstr "在字符串常量中使用\\不安全"
 
-#: scan.l:637
+#: scan.l:641
 #, c-format
 msgid ""
 "Use '' to write quotes in strings. \\' is insecure in client-only encodings."
 msgstr "使用''在字符串中表示引号,在只有客户端使用的编码中使用\\'不安全."
 
-#: scan.l:712
+#: scan.l:716
 msgid "unterminated dollar-quoted string"
 msgstr "未结束的用$符号引用的字符串"
 
-#: scan.l:729 scan.l:753 scan.l:768
+#: scan.l:733 scan.l:759 scan.l:774
 msgid "zero-length delimited identifier"
 msgstr "长度为0的分隔标示符"
 
-#: scan.l:788
+#: scan.l:794
 msgid "unterminated quoted identifier"
 msgstr "未结束的引用标识符"
 
-#: scan.l:919
+#: scan.l:925
 msgid "operator too long"
 msgstr "操作符太长"
 
 #. translator: %s is typically the translation of "syntax error"
-#: scan.l:1072
+#: scan.l:1078
 #, c-format
 msgid "%s at end of input"
 msgstr "%s 在输入的末尾"
 
 #. translator: first %s is typically the translation of "syntax error"
-#: scan.l:1080
+#: scan.l:1086 syncrep_scanner.l:115
 #, c-format
 msgid "%s at or near \"%s\""
 msgstr "%s 在 \"%s\" 或附近的"
 
-#: scan.l:1245 scan.l:1277
+#: scan.l:1252 scan.l:1284
 msgid ""
 "Unicode escape values cannot be used for code point values above 007F when "
 "the server encoding is not UTF8"
 msgstr "当服务器的编码不是UTF8时,无法为在007F以上的码点值使用Unicode转义值."
 
-#: scan.l:1273 scan.l:1416
+#: scan.l:1280 scan.l:1425
 msgid "invalid Unicode escape value"
 msgstr "无效的Unicode转义值"
 
-#: scan.l:1472
+#: scan.l:1482
 #, c-format
 msgid "nonstandard use of \\' in a string literal"
 msgstr "在字符串常量中以不标准的方法使用\\'"
 
-#: scan.l:1473
+#: scan.l:1483
 #, c-format
 msgid ""
 "Use '' to write quotes in strings, or use the escape string syntax (E'...')."
 msgstr "使用''或者转义字符串语法(E'...')将字符串引起来."
 
-#: scan.l:1482
+#: scan.l:1492
 #, c-format
 msgid "nonstandard use of \\\\ in a string literal"
 msgstr "在字符串常量中以不标准的方法使用\\\\ "
 
-#: scan.l:1483
+#: scan.l:1493
 #, c-format
 msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'."
 msgstr "为反斜线使用转移字符串语法,例如.,E'\\\\'."
 
-#: scan.l:1497
+#: scan.l:1507
 #, c-format
 msgid "nonstandard use of escape in a string literal"
 msgstr "在字符串常量中以不标准的方法使用转义字符"
 
-#: scan.l:1498
+#: scan.l:1508
 #, c-format
 msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'."
 msgstr "对转移字符使用转义字符串语法,例如 E'\\r\\n'."
@@ -16661,96 +17161,125 @@ msgstr "未识别Snowball参数: \"%s\""
 msgid "missing Language parameter"
 msgstr "缺少语言参数"
 
-#: storage/buffer/bufmgr.c:442 storage/buffer/bufmgr.c:555
+#: storage/buffer/bufmgr.c:544 storage/buffer/bufmgr.c:657
 #, c-format
 msgid "cannot access temporary tables of other sessions"
 msgstr "无法访问其它会话的临时表"
 
-#: storage/buffer/bufmgr.c:704
+#: storage/buffer/bufmgr.c:807
 #, c-format
 msgid "unexpected data beyond EOF in block %u of relation %s"
 msgstr "关系 \"%2$s\" 的块 %1$u 中的EOF后面出现未期望的数据"
 
-#: storage/buffer/bufmgr.c:706
+#: storage/buffer/bufmgr.c:809
 #, c-format
 msgid ""
 "This has been seen to occur with buggy kernels; consider updating your "
 "system."
 msgstr "这是由于内核缺陷所致;请考虑更新您的操作系统."
 
-#: storage/buffer/bufmgr.c:793
+#: storage/buffer/bufmgr.c:907
 #, c-format
 msgid "invalid page in block %u of relation %s; zeroing out page"
 msgstr "关系 \"%2$s\" 中的块 %1$u 无效的页;正在对页进行清零操作"
 
-#: storage/buffer/bufmgr.c:3569
+#: storage/buffer/bufmgr.c:3951
 #, c-format
 msgid "could not write block %u of %s"
 msgstr "无法写入%2$s的块%1$u"
 
-#: storage/buffer/bufmgr.c:3571
+#: storage/buffer/bufmgr.c:3953
 #, c-format
 msgid "Multiple failures --- write error might be permanent."
 msgstr "多次失败 --- 写错误可能是永久性的"
 
-#: storage/buffer/bufmgr.c:3592 storage/buffer/bufmgr.c:3611
+#: storage/buffer/bufmgr.c:3974 storage/buffer/bufmgr.c:3993
 #, c-format
 msgid "writing block %u of relation %s"
 msgstr "写入关系%2$s的块%1$u"
 
-#: storage/buffer/localbuf.c:189
+#: storage/buffer/bufmgr.c:4317
+#, c-format
+#| msgid "snapshot_id"
+msgid "snapshot too old"
+msgstr "快照太旧"
+
+#: storage/buffer/localbuf.c:198
 #, c-format
 msgid "no empty local buffer available"
 msgstr "没有可用的本地缓冲区"
 
+#: storage/file/fd.c:436 storage/file/fd.c:508 storage/file/fd.c:544
+#, c-format
+#| msgid "could not redirect stdout: %m"
+msgid "could not flush dirty data: %m"
+msgstr "无法刷出脏数据:%m"
+
+#: storage/file/fd.c:466
+#, c-format
+#| msgid "could not determine input data type"
+msgid "could not determine dirty data size: %m"
+msgstr "无法确定脏数据的尺寸:%m"
+
+#: storage/file/fd.c:518
+#, c-format
+#| msgid "could not uncompress data: %s\n"
+msgid "could not munmap() while flushing data: %m"
+msgstr "在刷写数据时不能 munmap():%m"
+
+#: storage/file/fd.c:682
+#, c-format
+msgid "could not link file \"%s\" to \"%s\": %m"
+msgstr "无法把文件 \"%s\" 链接到 \"%s\": %m"
+
 # fe-misc.c:389 fe-misc.c:423 fe-misc.c:838
-#: storage/file/fd.c:528
+#: storage/file/fd.c:776
 #, c-format
 msgid "getrlimit failed: %m"
 msgstr "函数getrlimit执行失败: %m"
 
-#: storage/file/fd.c:618
+#: storage/file/fd.c:866
 #, c-format
 msgid "insufficient file descriptors available to start server process"
 msgstr "启动服务器进程的有效文件描述符不足"
 
-#: storage/file/fd.c:619
+#: storage/file/fd.c:867
 #, c-format
 msgid "System allows %d, we need at least %d."
 msgstr "系统允许 %d, 我们至少需要 %d."
 
-#: storage/file/fd.c:660 storage/file/fd.c:1694 storage/file/fd.c:1787
-#: storage/file/fd.c:1935
+#: storage/file/fd.c:908 storage/file/fd.c:2001 storage/file/fd.c:2094
+#: storage/file/fd.c:2242
 #, c-format
 msgid "out of file descriptors: %m; release and retry"
 msgstr "超出文件描述符: %m; 释放再重试"
 
-#: storage/file/fd.c:1234
+#: storage/file/fd.c:1482
 #, c-format
 msgid "temporary file: path \"%s\", size %lu"
 msgstr "临时文件: 路径 \"%s\", 大小%lu"
 
-#: storage/file/fd.c:1383
+#: storage/file/fd.c:1656
 #, c-format
 msgid "temporary file size exceeds temp_file_limit (%dkB)"
 msgstr "临时文件大小超过最大允许值temp_file_limit(%dkB)"
 
-#: storage/file/fd.c:1670 storage/file/fd.c:1720
+#: storage/file/fd.c:1977 storage/file/fd.c:2027
 #, c-format
 msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\""
 msgstr "试图打开文件 \"%2$s\"超出了最大描述符范围值 (%1$d)"
 
-#: storage/file/fd.c:1760
+#: storage/file/fd.c:2067
 #, c-format
 msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\""
 msgstr "试图执行命令 \"%2$s\"时,超出了最大描述符范围值 (%1$d)"
 
-#: storage/file/fd.c:1911
+#: storage/file/fd.c:2218
 #, c-format
 msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\""
 msgstr "试图打开目录 \"%2$s\"时,超出了最大描述符范围值 (%1$d)"
 
-#: storage/file/fd.c:1997
+#: storage/file/fd.c:2304
 #, c-format
 msgid "could not read directory \"%s\": %m"
 msgstr "无法读取目录 \"%s\": %m"
@@ -16832,28 +17361,45 @@ msgstr "无法创建共享内存段\"%s\": %m"
 msgid "could not duplicate handle for \"%s\": %m"
 msgstr "无法复制句柄 \"%s\": %m"
 
-#: storage/ipc/shm_toc.c:108 storage/ipc/shm_toc.c:189 storage/ipc/shmem.c:205
-#: storage/lmgr/lock.c:867 storage/lmgr/lock.c:901 storage/lmgr/lock.c:2598
-#: storage/lmgr/lock.c:3714 storage/lmgr/lock.c:3779 storage/lmgr/lock.c:4069
-#: storage/lmgr/predicate.c:2328 storage/lmgr/predicate.c:2343
-#: storage/lmgr/predicate.c:3735 storage/lmgr/predicate.c:4878
-#: storage/lmgr/proc.c:200 utils/hash/dynahash.c:998
+#: storage/ipc/latch.c:769
+#, c-format
+#| msgid "poll() failed: %m"
+msgid "epoll_ctl() failed: %m"
+msgstr "epoll_ctl() 失败:%m"
+
+#: storage/ipc/latch.c:993
+#, c-format
+#| msgid "poll() failed: %m"
+msgid "epoll_wait() failed: %m"
+msgstr "epoll_wait() 失败:%m"
+
+#: storage/ipc/latch.c:1113
+#, c-format
+msgid "poll() failed: %m"
+msgstr "poll()失败: %m"
+
+#: storage/ipc/shm_toc.c:108 storage/ipc/shm_toc.c:189 storage/ipc/shmem.c:210
+#: storage/lmgr/lock.c:883 storage/lmgr/lock.c:917 storage/lmgr/lock.c:2682
+#: storage/lmgr/lock.c:4007 storage/lmgr/lock.c:4072 storage/lmgr/lock.c:4364
+#: storage/lmgr/predicate.c:2329 storage/lmgr/predicate.c:2344
+#: storage/lmgr/predicate.c:3736 storage/lmgr/predicate.c:4879
+#: storage/lmgr/proc.c:203 utils/hash/dynahash.c:1045
 #, c-format
 msgid "out of shared memory"
 msgstr "共享内存用尽"
 
-#: storage/ipc/shmem.c:361 storage/ipc/shmem.c:412
+#: storage/ipc/shmem.c:366 storage/ipc/shmem.c:417
 #, c-format
 msgid ""
 "not enough shared memory for data structure \"%s\" (%zu bytes requested)"
 msgstr "没有足够的共享内存提供给数据结构\"%s\" (需要%zu个字节)"
 
-#: storage/ipc/shmem.c:380
+#: storage/ipc/shmem.c:385
 #, c-format
 msgid "could not create ShmemIndex entry for data structure \"%s\""
 msgstr "无法为数据结构\"%s\"创建ShmemIndex项"
 
-#: storage/ipc/shmem.c:395
+#: storage/ipc/shmem.c:400
 #, c-format
 msgid ""
 "ShmemIndex entry size is wrong for data structure \"%s\": expected %zu, "
@@ -16861,17 +17407,17 @@ msgid ""
 msgstr ""
 "对于数据结构\"%s\"来说ShmemIndex项的大小错误:所期望的值是%zu,实的值是%zu"
 
-#: storage/ipc/shmem.c:440 storage/ipc/shmem.c:459
+#: storage/ipc/shmem.c:445 storage/ipc/shmem.c:464
 #, c-format
 msgid "requested shared memory size overflows size_t"
 msgstr "所要求的共享内存大小超过size_t"
 
-#: storage/ipc/standby.c:500 tcop/postgres.c:2974
+#: storage/ipc/standby.c:527 tcop/postgres.c:2963
 #, c-format
 msgid "canceling statement due to conflict with recovery"
 msgstr "由于与恢复操作冲突,正在取消语句命令"
 
-#: storage/ipc/standby.c:501 tcop/postgres.c:2274
+#: storage/ipc/standby.c:528 tcop/postgres.c:2265
 #, c-format
 msgid "User transaction caused buffer deadlock with recovery."
 msgstr "用户事务造成了恢复操作期间缓冲区的死锁"
@@ -16896,144 +17442,143 @@ msgstr "无效的根源设置: %d"
 msgid "invalid large object write request size: %d"
 msgstr "无效的大对象写请求大小: %d"
 
-#: storage/lmgr/deadlock.c:925
+#: storage/lmgr/deadlock.c:1109
 #, c-format
 msgid "Process %d waits for %s on %s; blocked by process %d."
 msgstr "进程%1$d等待在%3$s上的%2$s; 由进程%4$d阻塞."
 
-#: storage/lmgr/deadlock.c:944
+#: storage/lmgr/deadlock.c:1128
 #, c-format
 msgid "Process %d: %s"
 msgstr "进程 %d: %s"
 
-#: storage/lmgr/deadlock.c:953
+#: storage/lmgr/deadlock.c:1137
 #, c-format
 msgid "deadlock detected"
 msgstr "检测到死锁"
 
-#: storage/lmgr/deadlock.c:956
+#: storage/lmgr/deadlock.c:1140
 #, c-format
 msgid "See server log for query details."
 msgstr "详细信息请查看服务器日志."
 
-#: storage/lmgr/lmgr.c:684
+#: storage/lmgr/lmgr.c:719
 #, c-format
 msgid "while updating tuple (%u,%u) in relation \"%s\""
 msgstr "当更新关系\"%3$s\"的元组(%1$u, %2$u)时"
 
-#: storage/lmgr/lmgr.c:687
+#: storage/lmgr/lmgr.c:722
 #, c-format
 msgid "while deleting tuple (%u,%u) in relation \"%s\""
 msgstr "当删除关系\"%3$s\"的元组(%1$u, %2$u)时"
 
-#: storage/lmgr/lmgr.c:690
+#: storage/lmgr/lmgr.c:725
 #, c-format
 msgid "while locking tuple (%u,%u) in relation \"%s\""
 msgstr "当锁定关系\"%3$s\"的元组(%1$u, %2$u)时"
 
-#: storage/lmgr/lmgr.c:693
+#: storage/lmgr/lmgr.c:728
 #, c-format
 msgid "while locking updated version (%u,%u) of tuple in relation \"%s\""
 msgstr "在锁定关系\"%3$s\"中的元组的更新版本 (%1$u,%2$u) 时"
 
-#: storage/lmgr/lmgr.c:696
+#: storage/lmgr/lmgr.c:731
 #, c-format
 msgid "while inserting index tuple (%u,%u) in relation \"%s\""
 msgstr "在往关系\"%3$s\"中插入索引元组 (%1$u,%2$u) 时"
 
-#: storage/lmgr/lmgr.c:699
+#: storage/lmgr/lmgr.c:734
 #, c-format
 msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\""
 msgstr "在检查关系\"%3$s\"中元组(%1$u, %2$u)的唯一性时"
 
-#: storage/lmgr/lmgr.c:702
+#: storage/lmgr/lmgr.c:737
 #, c-format
 msgid "while rechecking updated tuple (%u,%u) in relation \"%s\""
 msgstr "重新检查关系 \"%3$s\"中已更新的元组(%1$u, %2$u)时"
 
-#: storage/lmgr/lmgr.c:705
+#: storage/lmgr/lmgr.c:740
 #, c-format
 msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\""
 msgstr "在检查关系\"%3$s\"中的元组(%1$u, %2$u)的排它性依赖时"
 
-#: storage/lmgr/lmgr.c:925
+#: storage/lmgr/lmgr.c:960
 #, c-format
 msgid "relation %u of database %u"
 msgstr "数据库%2$u的关系%1$u"
 
-#: storage/lmgr/lmgr.c:931
+#: storage/lmgr/lmgr.c:966
 #, c-format
 msgid "extension of relation %u of database %u"
 msgstr "数据库%2$u的关系%1$u的扩展"
 
-#: storage/lmgr/lmgr.c:937
+#: storage/lmgr/lmgr.c:972
 #, c-format
 msgid "page %u of relation %u of database %u"
 msgstr "数据库%3$u的关系%2$u的页%1$u"
 
-#: storage/lmgr/lmgr.c:944
+#: storage/lmgr/lmgr.c:979
 #, c-format
 msgid "tuple (%u,%u) of relation %u of database %u"
 msgstr "数据库%4$u的关系%3$u中的元组(%1$u,%2$u)"
 
-#: storage/lmgr/lmgr.c:952
+#: storage/lmgr/lmgr.c:987
 #, c-format
 msgid "transaction %u"
 msgstr "事务 %u"
 
 # sql_help.h:101
 # sql_help.h:413
-#: storage/lmgr/lmgr.c:957
+#: storage/lmgr/lmgr.c:992
 #, c-format
 msgid "virtual transaction %d/%u"
 msgstr "虚拟事务 %d/%u"
 
-#: storage/lmgr/lmgr.c:963
+#: storage/lmgr/lmgr.c:998
 #, c-format
-#| msgid "could not access status of transaction %u"
 msgid "speculative token %u of transaction %u"
 msgstr "事务%2$u的推测记号是%1$u"
 
-#: storage/lmgr/lmgr.c:969
+#: storage/lmgr/lmgr.c:1004
 #, c-format
 msgid "object %u of class %u of database %u"
 msgstr "数据库%3$u的类%2$u的对象%1$u"
 
-#: storage/lmgr/lmgr.c:977
+#: storage/lmgr/lmgr.c:1012
 #, c-format
 msgid "user lock [%u,%u,%u]"
 msgstr "用户锁[%u,%u,%u]"
 
-#: storage/lmgr/lmgr.c:984
+#: storage/lmgr/lmgr.c:1019
 #, c-format
 msgid "advisory lock [%u,%u,%u,%u]"
 msgstr "建议锁 [%u,%u,%u,%u]"
 
-#: storage/lmgr/lmgr.c:992
+#: storage/lmgr/lmgr.c:1027
 #, c-format
 msgid "unrecognized locktag type %d"
 msgstr "未知的locktag 类型  %d"
 
-#: storage/lmgr/lock.c:716
+#: storage/lmgr/lock.c:732
 #, c-format
 msgid ""
 "cannot acquire lock mode %s on database objects while recovery is in progress"
 msgstr "在恢复操作的过程中不能在数据库对象上获取锁模式%s"
 
-#: storage/lmgr/lock.c:718
+#: storage/lmgr/lock.c:734
 #, c-format
 msgid ""
 "Only RowExclusiveLock or less can be acquired on database objects during "
 "recovery."
 msgstr "在恢复操作期间只有在数据对象上获取RowExclusiveLock或者更低级别的锁。"
 
-#: storage/lmgr/lock.c:868 storage/lmgr/lock.c:902 storage/lmgr/lock.c:2599
-#: storage/lmgr/lock.c:3715 storage/lmgr/lock.c:3780 storage/lmgr/lock.c:4070
+#: storage/lmgr/lock.c:884 storage/lmgr/lock.c:918 storage/lmgr/lock.c:2683
+#: storage/lmgr/lock.c:4008 storage/lmgr/lock.c:4073 storage/lmgr/lock.c:4365
 #, c-format
 msgid "You might need to increase max_locks_per_transaction."
 msgstr "您可能需要增加参数max_locks_per_transaction."
 
-#: storage/lmgr/lock.c:3040 storage/lmgr/lock.c:3152
+#: storage/lmgr/lock.c:3124 storage/lmgr/lock.c:3240
 #, c-format
 msgid ""
 "cannot PREPARE while holding both session-level and transaction-level locks "
@@ -17059,36 +17604,36 @@ msgid ""
 "conflict"
 msgstr "RWConflictPool(读写冲突池)没有足够的元素来记录可能的读/写冲突"
 
-#: storage/lmgr/predicate.c:908
+#: storage/lmgr/predicate.c:909
 #, c-format
 msgid "memory for serializable conflict tracking is nearly exhausted"
 msgstr "串行化冲突跟踪所需要的内存几乎耗尽"
 
-#: storage/lmgr/predicate.c:909
+#: storage/lmgr/predicate.c:910
 #, c-format
 msgid ""
 "There might be an idle transaction or a forgotten prepared transaction "
 "causing this."
 msgstr "可能是由于空闲事务或者一个忘了准备的事务导致此问题."
 
-#: storage/lmgr/predicate.c:1189 storage/lmgr/predicate.c:1260
+#: storage/lmgr/predicate.c:1190 storage/lmgr/predicate.c:1261
 #, c-format
 msgid ""
 "not enough shared memory for elements of data structure \"%s\" (%zu bytes "
 "requested)"
 msgstr "没有足够的共享内存供数据结构\"%s\"使用 (它需要%zu个字节)"
 
-#: storage/lmgr/predicate.c:1548
+#: storage/lmgr/predicate.c:1549
 #, c-format
 msgid "deferrable snapshot was unsafe; trying a new one"
 msgstr "可延缓的快照不安全;请尝试使用新的快照"
 
-#: storage/lmgr/predicate.c:1587
+#: storage/lmgr/predicate.c:1588
 #, c-format
 msgid "\"default_transaction_isolation\" is set to \"serializable\"."
 msgstr "\"default_transaction_isolation\"被设置为\"可串行化\"."
 
-#: storage/lmgr/predicate.c:1588
+#: storage/lmgr/predicate.c:1589
 #, c-format
 msgid ""
 "You can use \"SET default_transaction_isolation = 'repeatable read'\" to "
@@ -17097,63 +17642,63 @@ msgstr ""
 "您可以使用 \"SET default_transaction_isolation = 'repeatable read'\"来改变缺"
 "省值."
 
-#: storage/lmgr/predicate.c:1627
+#: storage/lmgr/predicate.c:1628
 #, c-format
 msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE"
 msgstr "快照导入事务不能是可延缓的只读事务"
 
-#: storage/lmgr/predicate.c:1705 utils/time/snapmgr.c:431
-#: utils/time/snapmgr.c:437
+#: storage/lmgr/predicate.c:1706 utils/time/snapmgr.c:535
+#: utils/time/snapmgr.c:541
 #, c-format
 msgid "could not import the requested snapshot"
 msgstr "无法导入请求的快照"
 
-#: storage/lmgr/predicate.c:1706 utils/time/snapmgr.c:438
+#: storage/lmgr/predicate.c:1707 utils/time/snapmgr.c:542
 #, c-format
 msgid "The source transaction %u is not running anymore."
 msgstr "源事务 %u 不再运行."
 
-#: storage/lmgr/predicate.c:2329 storage/lmgr/predicate.c:2344
-#: storage/lmgr/predicate.c:3736
+#: storage/lmgr/predicate.c:2330 storage/lmgr/predicate.c:2345
+#: storage/lmgr/predicate.c:3737
 #, c-format
 msgid "You might need to increase max_pred_locks_per_transaction."
 msgstr "您可能需要增大参数max_pred_locks_per_transaction的值."
 
-#: storage/lmgr/predicate.c:3890 storage/lmgr/predicate.c:3979
-#: storage/lmgr/predicate.c:3987 storage/lmgr/predicate.c:4026
-#: storage/lmgr/predicate.c:4265 storage/lmgr/predicate.c:4602
-#: storage/lmgr/predicate.c:4614 storage/lmgr/predicate.c:4656
-#: storage/lmgr/predicate.c:4694
+#: storage/lmgr/predicate.c:3891 storage/lmgr/predicate.c:3980
+#: storage/lmgr/predicate.c:3988 storage/lmgr/predicate.c:4027
+#: storage/lmgr/predicate.c:4266 storage/lmgr/predicate.c:4603
+#: storage/lmgr/predicate.c:4615 storage/lmgr/predicate.c:4657
+#: storage/lmgr/predicate.c:4695
 #, c-format
 msgid ""
 "could not serialize access due to read/write dependencies among transactions"
 msgstr "由于多个事务间的读/写依赖而无法串行访问"
 
-#: storage/lmgr/predicate.c:3892 storage/lmgr/predicate.c:3981
-#: storage/lmgr/predicate.c:3989 storage/lmgr/predicate.c:4028
-#: storage/lmgr/predicate.c:4267 storage/lmgr/predicate.c:4604
-#: storage/lmgr/predicate.c:4616 storage/lmgr/predicate.c:4658
-#: storage/lmgr/predicate.c:4696
+#: storage/lmgr/predicate.c:3893 storage/lmgr/predicate.c:3982
+#: storage/lmgr/predicate.c:3990 storage/lmgr/predicate.c:4029
+#: storage/lmgr/predicate.c:4268 storage/lmgr/predicate.c:4605
+#: storage/lmgr/predicate.c:4617 storage/lmgr/predicate.c:4659
+#: storage/lmgr/predicate.c:4697
 #, c-format
 msgid "The transaction might succeed if retried."
 msgstr "该事务如果重试,有可能成功."
 
-#: storage/lmgr/proc.c:1164
+#: storage/lmgr/proc.c:1263
 #, c-format
 msgid "Process %d waits for %s on %s."
 msgstr "进程%1$d等待在%3$s上的%2$s"
 
-#: storage/lmgr/proc.c:1175
+#: storage/lmgr/proc.c:1274
 #, c-format
 msgid "sending cancel to blocking autovacuum PID %d"
 msgstr "向阻塞的自动清理(autovacuum)进程%d发送取消(cancel)请求"
 
-#: storage/lmgr/proc.c:1193 utils/adt/misc.c:146
+#: storage/lmgr/proc.c:1292 utils/adt/misc.c:270
 #, c-format
 msgid "could not send signal to process %d: %m"
 msgstr "无法发送信号到进程 %d: %m"
 
-#: storage/lmgr/proc.c:1295
+#: storage/lmgr/proc.c:1394
 #, c-format
 msgid ""
 "process %d avoided deadlock for %s on %s by rearranging queue order after "
@@ -17161,23 +17706,23 @@ msgid ""
 msgstr ""
 "进程%1$d在%4$ld.%5$03d ms通过重新安排序列顺序来避免在%3$s上的%2$s的死锁"
 
-#: storage/lmgr/proc.c:1310
+#: storage/lmgr/proc.c:1409
 #, c-format
 msgid ""
 "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms"
 msgstr "进程%1$d在%4$ld.%5$03d ms等待在%3$s上的%2$s同时监测到死锁"
 
-#: storage/lmgr/proc.c:1319
+#: storage/lmgr/proc.c:1418
 #, c-format
 msgid "process %d still waiting for %s on %s after %ld.%03d ms"
 msgstr "进程%1$d在%4$ld.%5$03d ms仍然等待在%3$s上的%2$s"
 
-#: storage/lmgr/proc.c:1326
+#: storage/lmgr/proc.c:1425
 #, c-format
 msgid "process %d acquired %s on %s after %ld.%03d ms"
 msgstr "进程%1$d在%4$ld.%5$03d ms后获取在%3$s上的%2$s"
 
-#: storage/lmgr/proc.c:1342
+#: storage/lmgr/proc.c:1441
 #, c-format
 msgid "process %d failed to acquire %s on %s after %ld.%03d ms"
 msgstr "进程%1$d在%4$ld.%5$03d ms后获取在%3$s上的%2$s失败"
@@ -17212,11 +17757,10 @@ msgstr "已损坏的成员指针: 偏移量 = %u, 大小 = %u"
 
 #: storage/page/bufpage.c:965
 #, c-format
-#| msgid "corrupted item pointer: offset = %u, size = %u"
 msgid "corrupted item pointer: offset = %u, length = %u"
 msgstr "损坏的项指针:偏移量 = %u,长度 = %u"
 
-#: storage/smgr/md.c:442 storage/smgr/md.c:913
+#: storage/smgr/md.c:442 storage/smgr/md.c:962
 #, c-format
 msgid "could not truncate file \"%s\": %m"
 msgstr "无法截断文件 \"%s\": %m"
@@ -17226,7 +17770,7 @@ msgstr "无法截断文件 \"%s\": %m"
 msgid "cannot extend file \"%s\" beyond %u blocks"
 msgstr "扩展文件\"%s\"的大小不能超过%u个数据块"
 
-#: storage/smgr/md.c:531 storage/smgr/md.c:692 storage/smgr/md.c:767
+#: storage/smgr/md.c:531 storage/smgr/md.c:743 storage/smgr/md.c:818
 #, c-format
 msgid "could not seek to block %u in file \"%s\": %m"
 msgstr "无法在文件\"%2$s\"中查找到数据块%1$u: %3$m"
@@ -17236,7 +17780,7 @@ msgstr "无法在文件\"%2$s\"中查找到数据块%1$u: %3$m"
 msgid "could not extend file \"%s\": %m"
 msgstr "无法扩展文件 \"%s\": %m"
 
-#: storage/smgr/md.c:541 storage/smgr/md.c:548 storage/smgr/md.c:794
+#: storage/smgr/md.c:541 storage/smgr/md.c:548 storage/smgr/md.c:845
 #, c-format
 msgid "Check free disk space."
 msgstr "检查空闲磁盘控件."
@@ -17246,47 +17790,47 @@ msgstr "检查空闲磁盘控件."
 msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u"
 msgstr "无法扩展文件\"%1$s\": 只能在块%4$u上写%3$d字节的%2$d"
 
-#: storage/smgr/md.c:710
+#: storage/smgr/md.c:761
 #, c-format
 msgid "could not read block %u in file \"%s\": %m"
 msgstr "无法在文件\"%2$s\"中读取块%1$u: %3$m"
 
-#: storage/smgr/md.c:726
+#: storage/smgr/md.c:777
 #, c-format
 msgid "could not read block %u in file \"%s\": read only %d of %d bytes"
 msgstr "无法读取文件\"%2$s\"的块%1$u:只读取了%4$d字节的%3$d"
 
-#: storage/smgr/md.c:785
+#: storage/smgr/md.c:836
 #, c-format
 msgid "could not write block %u in file \"%s\": %m"
 msgstr "无法在文件 \"%2$s\"中写入块%1$u: %3$m"
 
-#: storage/smgr/md.c:790
+#: storage/smgr/md.c:841
 #, c-format
 msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes"
 msgstr "无法对文件\"%2$s\"写操作数据块%1$u: 只写了%4$d字节的%3$d"
 
-#: storage/smgr/md.c:889
+#: storage/smgr/md.c:938
 #, c-format
 msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now"
 msgstr "无法将文件\"%s\"截断到%u个数据块;它现在只有%u个数据块"
 
-#: storage/smgr/md.c:938
+#: storage/smgr/md.c:987
 #, c-format
 msgid "could not truncate file \"%s\" to %u blocks: %m"
 msgstr "无法将文件\"%s\"截断到%u个数据块: %m"
 
-#: storage/smgr/md.c:1218
+#: storage/smgr/md.c:1267
 #, c-format
 msgid "could not fsync file \"%s\" but retrying: %m"
 msgstr "无法对文件\"%s\"进行fsync操作但是正在重新尝试: %m"
 
-#: storage/smgr/md.c:1381
+#: storage/smgr/md.c:1430
 #, c-format
 msgid "could not forward fsync request because request queue is full"
 msgstr "请求队列已满,无法转发fsync请求"
 
-#: storage/smgr/md.c:1776
+#: storage/smgr/md.c:1825
 #, c-format
 msgid "could not open file \"%s\" (target block %u): %m"
 msgstr "无法打开文件\"%s\"(目标数据块%u): %m"
@@ -17296,9 +17840,9 @@ msgstr "无法打开文件\"%s\"(目标数据块%u): %m"
 msgid "invalid argument size %d in function call message"
 msgstr "在函数调用信息中, 参数大小 %d 是无效的"
 
-#: tcop/fastpath.c:291 tcop/postgres.c:1003 tcop/postgres.c:1313
-#: tcop/postgres.c:1571 tcop/postgres.c:1975 tcop/postgres.c:2342
-#: tcop/postgres.c:2417
+#: tcop/fastpath.c:291 tcop/postgres.c:992 tcop/postgres.c:1303
+#: tcop/postgres.c:1561 tcop/postgres.c:1966 tcop/postgres.c:2333
+#: tcop/postgres.c:2408
 #, c-format
 msgid ""
 "current transaction is aborted, commands ignored until end of transaction "
@@ -17310,8 +17854,8 @@ msgstr "当前事务被终止, 事务块结束之前的查询被忽略"
 msgid "fastpath function call: \"%s\" (OID %u)"
 msgstr "快捷路径函数调用: \"%s\" (OID %u)"
 
-#: tcop/fastpath.c:401 tcop/postgres.c:1173 tcop/postgres.c:1438
-#: tcop/postgres.c:1816 tcop/postgres.c:2033
+#: tcop/fastpath.c:401 tcop/postgres.c:1163 tcop/postgres.c:1428
+#: tcop/postgres.c:1807 tcop/postgres.c:2024
 #, c-format
 msgid "duration: %s ms"
 msgstr "执行时间: %s ms"
@@ -17336,23 +17880,23 @@ msgstr "函数调用信息为包含 %d 个参数的格式, 但给定了 %d 个
 msgid "incorrect binary data format in function argument %d"
 msgstr "函数参数 %d 为不正确的二进制数据格式"
 
-#: tcop/postgres.c:363 tcop/postgres.c:399 tcop/postgres.c:426
+#: tcop/postgres.c:352 tcop/postgres.c:388 tcop/postgres.c:415
 #, c-format
 msgid "unexpected EOF on client connection"
 msgstr "在客户端联接上的意外 EOF"
 
-#: tcop/postgres.c:449 tcop/postgres.c:461 tcop/postgres.c:472
-#: tcop/postgres.c:484 tcop/postgres.c:4268
+#: tcop/postgres.c:438 tcop/postgres.c:450 tcop/postgres.c:461
+#: tcop/postgres.c:473 tcop/postgres.c:4297
 #, c-format
 msgid "invalid frontend message type %d"
 msgstr "无效前端信息类型 %d"
 
-#: tcop/postgres.c:944
+#: tcop/postgres.c:933
 #, c-format
 msgid "statement: %s"
 msgstr "语句: %s"
 
-#: tcop/postgres.c:1178
+#: tcop/postgres.c:1168
 #, c-format
 msgid "duration: %s ms  statement: %s"
 msgstr "执行时间: %s ms 语句: %s"
@@ -17370,123 +17914,123 @@ msgstr "执行时间: %s ms 语句: %s"
 # common.c:170
 # copy.c:530
 # copy.c:575
-#: tcop/postgres.c:1228
+#: tcop/postgres.c:1218
 #, c-format
 msgid "parse %s: %s"
 msgstr "解析 %s: %s"
 
-#: tcop/postgres.c:1286
+#: tcop/postgres.c:1276
 #, c-format
 msgid "cannot insert multiple commands into a prepared statement"
 msgstr "无法插入多条命令到一个准备好的语句中"
 
-#: tcop/postgres.c:1443
+#: tcop/postgres.c:1433
 #, c-format
 msgid "duration: %s ms  parse %s: %s"
 msgstr "执行时间: %s ms  解析 %s: %s"
 
-#: tcop/postgres.c:1488
+#: tcop/postgres.c:1478
 #, c-format
 msgid "bind %s to %s"
 msgstr "将%s绑定到%s"
 
-#: tcop/postgres.c:1507 tcop/postgres.c:2323
+#: tcop/postgres.c:1497 tcop/postgres.c:2314
 #, c-format
 msgid "unnamed prepared statement does not exist"
 msgstr "未命名的准备语句不存在"
 
-#: tcop/postgres.c:1549
+#: tcop/postgres.c:1539
 #, c-format
 msgid "bind message has %d parameter formats but %d parameters"
 msgstr "绑定信息有%d个参数格式,但是实际上有%d个参数"
 
-#: tcop/postgres.c:1555
+#: tcop/postgres.c:1545
 #, c-format
 msgid ""
 "bind message supplies %d parameters, but prepared statement \"%s\" requires "
 "%d"
 msgstr "绑定消息提供了%d个参数,但是已准备好语句\"%s\" 要求%d个参数"
 
-#: tcop/postgres.c:1723
+#: tcop/postgres.c:1714
 #, c-format
 msgid "incorrect binary data format in bind parameter %d"
 msgstr "在绑定参数%d中出现不正确的二进制数据"
 
-#: tcop/postgres.c:1821
+#: tcop/postgres.c:1812
 #, c-format
 msgid "duration: %s ms  bind %s%s%s: %s"
 msgstr "执行时间: %s ms 绑定%s%s%s: %s"
 
-#: tcop/postgres.c:1869 tcop/postgres.c:2403
+#: tcop/postgres.c:1860 tcop/postgres.c:2394
 #, c-format
 msgid "portal \"%s\" does not exist"
 msgstr "入口 \"%s\" 不存在"
 
-#: tcop/postgres.c:1954
+#: tcop/postgres.c:1945
 #, c-format
 msgid "%s %s%s%s: %s"
 msgstr "%s %s%s%s: %s"
 
-#: tcop/postgres.c:1956 tcop/postgres.c:2041
+#: tcop/postgres.c:1947 tcop/postgres.c:2032
 msgid "execute fetch from"
 msgstr "执行FETCH操作"
 
-#: tcop/postgres.c:1957 tcop/postgres.c:2042
+#: tcop/postgres.c:1948 tcop/postgres.c:2033
 msgid "execute"
 msgstr "执行"
 
-#: tcop/postgres.c:2038
+#: tcop/postgres.c:2029
 #, c-format
 msgid "duration: %s ms  %s %s%s%s: %s"
 msgstr "执行时间: %s ms %s%s%s%s: %s"
 
-#: tcop/postgres.c:2164
+#: tcop/postgres.c:2155
 #, c-format
 msgid "prepare: %s"
 msgstr "准备: %s"
 
-#: tcop/postgres.c:2227
+#: tcop/postgres.c:2218
 #, c-format
 msgid "parameters: %s"
 msgstr "参数: %s"
 
-#: tcop/postgres.c:2246
+#: tcop/postgres.c:2237
 #, c-format
 msgid "abort reason: recovery conflict"
 msgstr "中断原因:与恢复操作相冲突"
 
-#: tcop/postgres.c:2262
+#: tcop/postgres.c:2253
 #, c-format
 msgid "User was holding shared buffer pin for too long."
 msgstr "用户所持有共享缓存锁的时间太长了."
 
-#: tcop/postgres.c:2265
+#: tcop/postgres.c:2256
 #, c-format
 msgid "User was holding a relation lock for too long."
 msgstr "用户对一个关系正在持有的锁的时间太长了."
 
-#: tcop/postgres.c:2268
+#: tcop/postgres.c:2259
 #, c-format
 msgid "User was or might have been using tablespace that must be dropped."
 msgstr "用户正在使用一个必须被删除的表空间"
 
-#: tcop/postgres.c:2271
+#: tcop/postgres.c:2262
 #, c-format
 msgid "User query might have needed to see row versions that must be removed."
 msgstr "用户查询可能需要看到而必须被删除的行版本号"
 
 # large_obj.c:36
-#: tcop/postgres.c:2277
+#: tcop/postgres.c:2268
 #, c-format
 msgid "User was connected to a database that must be dropped."
 msgstr "用户连接到必须被删除的数据库"
 
-#: tcop/postgres.c:2606
+#: tcop/postgres.c:2597
 #, c-format
 msgid "terminating connection because of crash of another server process"
 msgstr "中断联接, 因为其它服务器进程崩溃"
 
-#: tcop/postgres.c:2607
+#: tcop/postgres.c:2598
 #, c-format
 msgid ""
 "The postmaster has commanded this server process to roll back the current "
@@ -17496,77 +18040,83 @@ msgstr ""
 "Postmaster 命令此服务器进程回滚当前事物并退出, 因为其它服务器进程不正常的退出"
 "可能毁坏了共享内存."
 
-#: tcop/postgres.c:2611 tcop/postgres.c:2917
+#: tcop/postgres.c:2602 tcop/postgres.c:2906
 #, c-format
 msgid ""
 "In a moment you should be able to reconnect to the database and repeat your "
 "command."
 msgstr "一会儿你将可以重联接数据库并且重复你的命令."
 
-#: tcop/postgres.c:2697
+#: tcop/postgres.c:2688
 #, c-format
 msgid "floating-point exception"
 msgstr "浮点异常"
 
-#: tcop/postgres.c:2698
+#: tcop/postgres.c:2689
 #, c-format
 msgid ""
 "An invalid floating-point operation was signaled. This probably means an out-"
 "of-range result or an invalid operation, such as division by zero."
 msgstr "无效的浮点数操作.这表示结果越界或者进行了无效的操作,例如除零."
 
-#: tcop/postgres.c:2862
+#: tcop/postgres.c:2851
 #, c-format
 msgid "canceling authentication due to timeout"
 msgstr "由于超时,正在取消认证鉴权命令"
 
-#: tcop/postgres.c:2866
+#: tcop/postgres.c:2855
 #, c-format
 msgid "terminating autovacuum process due to administrator command"
 msgstr "由于管理员命令中断autovacuum进程"
 
-#: tcop/postgres.c:2872 tcop/postgres.c:2882 tcop/postgres.c:2915
+#: tcop/postgres.c:2861 tcop/postgres.c:2871 tcop/postgres.c:2904
 #, c-format
 msgid "terminating connection due to conflict with recovery"
 msgstr "由于与恢复操作相冲突而中断连接"
 
-#: tcop/postgres.c:2888
+#: tcop/postgres.c:2877
 #, c-format
 msgid "terminating connection due to administrator command"
 msgstr "由于管理员命令中断联接"
 
 # common.c:298
-#: tcop/postgres.c:2898
+#: tcop/postgres.c:2887
 #, c-format
 msgid "connection to client lost"
 msgstr "丢失了到客户端的连接"
 
-#: tcop/postgres.c:2951
+#: tcop/postgres.c:2940
 #, c-format
 msgid "canceling statement due to lock timeout"
 msgstr "由于锁超时,取消语句操作"
 
-#: tcop/postgres.c:2958
+#: tcop/postgres.c:2947
 #, c-format
 msgid "canceling statement due to statement timeout"
 msgstr "由于语句执行超时,正在取消查询命令"
 
-#: tcop/postgres.c:2965
+#: tcop/postgres.c:2954
 #, c-format
 msgid "canceling autovacuum task"
 msgstr "正在取消自动清理任务"
 
-#: tcop/postgres.c:2988
+#: tcop/postgres.c:2977
 #, c-format
 msgid "canceling statement due to user request"
 msgstr "由于用户请求而正在取消查询"
 
-#: tcop/postgres.c:3098
+#: tcop/postgres.c:2987
+#, c-format
+#| msgid "terminating connection due to administrator command"
+msgid "terminating connection due to idle-in-transaction timeout"
+msgstr "由于空载事务超时而终止连接"
+
+#: tcop/postgres.c:3101
 #, c-format
 msgid "stack depth limit exceeded"
 msgstr "堆栈深度超过限制"
 
-#: tcop/postgres.c:3099
+#: tcop/postgres.c:3102
 #, c-format
 msgid ""
 "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), "
@@ -17575,106 +18125,105 @@ msgstr ""
 "在确定了平台的堆栈深度限制是足够大后,增加配置参数 \"max_stack_depth\"的值(当"
 "前值为%dkB)."
 
-#: tcop/postgres.c:3162
+#: tcop/postgres.c:3165
 #, c-format
 msgid "\"max_stack_depth\" must not exceed %ldkB."
 msgstr "\"max_stack_depth\"不能超过%ldkB."
 
-#: tcop/postgres.c:3164
+#: tcop/postgres.c:3167
 #, c-format
 msgid ""
 "Increase the platform's stack depth limit via \"ulimit -s\" or local "
 "equivalent."
 msgstr "通过命令\"ulimit -s\"或本地相同的命令来增加平台的堆栈深度限制."
 
-#: tcop/postgres.c:3524
+#: tcop/postgres.c:3527
 #, c-format
 msgid "invalid command-line argument for server process: %s"
 msgstr "服务器进程:%s的无效命令行参数"
 
-#: tcop/postgres.c:3525 tcop/postgres.c:3531
+#: tcop/postgres.c:3528 tcop/postgres.c:3534
 #, c-format
 msgid "Try \"%s --help\" for more information."
 msgstr "请用 \"%s --help\" 获取更多的信息."
 
-#: tcop/postgres.c:3529
+#: tcop/postgres.c:3532
 #, c-format
 msgid "%s: invalid command-line argument: %s"
 msgstr "%s: 无效的命令行参数:%s"
 
-#: tcop/postgres.c:3590
+#: tcop/postgres.c:3594
 #, c-format
 msgid "%s: no database nor user name specified"
 msgstr "%s: 没有指定数据库, 也没有指定用户名"
 
-#: tcop/postgres.c:4176
+#: tcop/postgres.c:4205
 #, c-format
 msgid "invalid CLOSE message subtype %d"
 msgstr "无效的 CLOSE 信息子类型 %d"
 
-#: tcop/postgres.c:4211
+#: tcop/postgres.c:4240
 #, c-format
 msgid "invalid DESCRIBE message subtype %d"
 msgstr "无效的 DESCRIBE 信息子类型 %d"
 
-#: tcop/postgres.c:4289
+#: tcop/postgres.c:4318
 #, c-format
 msgid "fastpath function calls not supported in a replication connection"
 msgstr "复制连接不能使用fastpath函数调用"
 
-#: tcop/postgres.c:4293
+#: tcop/postgres.c:4322
 #, c-format
 msgid "extended query protocol not supported in a replication connection"
 msgstr "扩展的查询协议在复制连接里不支持"
 
-#: tcop/postgres.c:4463
+#: tcop/postgres.c:4492
 #, c-format
 msgid ""
 "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s"
 "%s"
 msgstr "断开连接: 会话时间: %d:%02d:%02d.%03d user=%s database=%s host=%s%s%s"
 
-#: tcop/pquery.c:662
+#: tcop/pquery.c:663
 #, c-format
 msgid "bind message has %d result formats but query has %d columns"
 msgstr "绑定信息有%d个结果格式,但是在查询中有%d列."
 
-#: tcop/pquery.c:968
+#: tcop/pquery.c:965
 #, c-format
 msgid "cursor can only scan forward"
 msgstr "游标能够只向前扫描"
 
-#: tcop/pquery.c:969
+#: tcop/pquery.c:966
 #, c-format
 msgid "Declare it with SCROLL option to enable backward scan."
 msgstr "带 SCROLL 选项声明允许向后扫描"
 
 #. translator: %s is name of a SQL command, eg CREATE
-#: tcop/utility.c:233
+#: tcop/utility.c:235
 #, c-format
 msgid "cannot execute %s in a read-only transaction"
 msgstr "不能在一个只读模式的事务中执行%s"
 
 #. translator: %s is name of a SQL command, eg CREATE
-#: tcop/utility.c:251
+#: tcop/utility.c:253
 #, c-format
-#| msgid "cannot execute %s during recovery"
 msgid "cannot execute %s during a parallel operation"
 msgstr "并行操作期间不能执行%s"
 
 #. translator: %s is name of a SQL command, eg CREATE
-#: tcop/utility.c:270
+#: tcop/utility.c:272
 #, c-format
 msgid "cannot execute %s during recovery"
 msgstr "无法在恢复期间执行%s"
 
 #. translator: %s is name of a SQL command, eg PREPARE
-#: tcop/utility.c:288
+#: tcop/utility.c:290
 #, c-format
 msgid "cannot execute %s within security-restricted operation"
 msgstr "无法在安全限制操作中执行%s"
 
-#: tcop/utility.c:742
+#: tcop/utility.c:744
 #, c-format
 msgid "must be superuser to do CHECKPOINT"
 msgstr "只有超级用户可以做 CHECKPOINT"
@@ -17801,37 +18350,70 @@ msgstr "未识别的同义词字典参数 \"%s\""
 msgid "missing Dictionary parameter"
 msgstr "丢失字典参数"
 
-#: tsearch/spell.c:276
+#: tsearch/spell.c:382 tsearch/spell.c:399 tsearch/spell.c:408
+#: tsearch/spell.c:1034
+#, c-format
+#| msgid "invalid data in file \"%s\""
+msgid "invalid affix flag \"%s\""
+msgstr "无效的词缀标志 \"%s\""
+
+#: tsearch/spell.c:386 tsearch/spell.c:1038
+#, c-format
+#| msgid "%s: transfer rate \"%s\" is out of range\n"
+msgid "affix flag \"%s\" is out of range"
+msgstr "词缀标志 \"%s\" 超过范围"
+
+#: tsearch/spell.c:416
+#, c-format
+#| msgid "invalid data in file \"%s\""
+msgid "invalid character in affix flag \"%s\""
+msgstr "词缀标志 \"%s\" 中有无效字符"
+
+#: tsearch/spell.c:436
+#, c-format
+msgid "invalid affix flag \"%s\" with long flag value"
+msgstr "无效的具有 long 标志值的词缀标志 \"%s\""
+
+#: tsearch/spell.c:523
 #, c-format
 msgid "could not open dictionary file \"%s\": %m"
 msgstr "无法打开字典文件 \"%s\": %m"
 
-#: tsearch/spell.c:439 utils/adt/regexp.c:204
+#: tsearch/spell.c:740 utils/adt/regexp.c:204
 #, c-format
 msgid "invalid regular expression: %s"
 msgstr "无效的正则表达式: %s"
 
-#: tsearch/spell.c:596
+#: tsearch/spell.c:1161 tsearch/spell.c:1716
 #, c-format
-msgid "multibyte flag character is not allowed"
-msgstr "不允许使用多字节标志字符"
+#| msgid "invalid cidr value: \"%s\""
+msgid "invalid affix alias \"%s\""
+msgstr "无效的词缀别名 \"%s\""
 
-#: tsearch/spell.c:632 tsearch/spell.c:690 tsearch/spell.c:787
+#: tsearch/spell.c:1210 tsearch/spell.c:1280 tsearch/spell.c:1422
 #, c-format
 msgid "could not open affix file \"%s\": %m"
 msgstr "无法打开affix文件 \"%s\": %m"
 
-#: tsearch/spell.c:678
+#: tsearch/spell.c:1264
 #, c-format
-msgid "Ispell dictionary supports only default flag value"
-msgstr "Ispell 字典只支持缺省标记值"
+#| msgid "Ispell dictionary supports only default flag value"
+msgid "Ispell dictionary supports only default, long and num flag value"
+msgstr "Ispell 字典只支持 default、long 和 num 标志值"
 
-#: tsearch/spell.c:901
+#: tsearch/spell.c:1307
+#, c-format
+#| msgid "%s: invalid number of parallel jobs\n"
+msgid "invalid number of flag vector aliases"
+msgstr "标志向量别名的数量无效"
+
+#: tsearch/spell.c:1538
 #, c-format
 msgid "affix file contains both old-style and new-style commands"
 msgstr "附加文件同时包含老式和新式命令"
 
-#: tsearch/to_tsany.c:163 utils/adt/tsvector.c:270 utils/adt/tsvector_op.c:530
+#: tsearch/to_tsany.c:170 utils/adt/tsvector.c:270
+#: utils/adt/tsvector_op.c:1064
 #, c-format
 msgid "string is too long for tsvector (%d bytes, max %d bytes)"
 msgstr "字符串对于tsvector来说太长了(当前 %d字节, 最大允许值是%d字节)"
@@ -17846,14 +18428,14 @@ msgstr "配置文件\"%2$s\"的第%1$d行: \"%3$s\""
 msgid "conversion from wchar_t to server encoding failed: %m"
 msgstr "从wchar_t转换到服务器编码失败: %m"
 
-#: tsearch/ts_parse.c:390 tsearch/ts_parse.c:397 tsearch/ts_parse.c:560
-#: tsearch/ts_parse.c:567
+#: tsearch/ts_parse.c:390 tsearch/ts_parse.c:397 tsearch/ts_parse.c:566
+#: tsearch/ts_parse.c:573
 #, c-format
 msgid "word is too long to be indexed"
 msgstr "词太长以至于不能作为索引"
 
-#: tsearch/ts_parse.c:391 tsearch/ts_parse.c:398 tsearch/ts_parse.c:561
-#: tsearch/ts_parse.c:568
+#: tsearch/ts_parse.c:391 tsearch/ts_parse.c:398 tsearch/ts_parse.c:567
+#: tsearch/ts_parse.c:574
 #, c-format
 msgid "Words longer than %d characters are ignored."
 msgstr "超出%d个字符长度的词被忽略."
@@ -17874,175 +18456,180 @@ msgstr "无法打开stop-word 文件 \"%s\": %m"
 msgid "text search parser does not support headline creation"
 msgstr "文本搜索解析器不支持标题创建"
 
-#: tsearch/wparser_def.c:2557
+#: tsearch/wparser_def.c:2583
 #, c-format
 msgid "unrecognized headline parameter: \"%s\""
 msgstr "未识别的标题参数: \"%s\""
 
-#: tsearch/wparser_def.c:2566
+#: tsearch/wparser_def.c:2592
 #, c-format
 msgid "MinWords should be less than MaxWords"
 msgstr "MinWords的值应该小于MaxWords的值"
 
-#: tsearch/wparser_def.c:2570
+#: tsearch/wparser_def.c:2596
 #, c-format
 msgid "MinWords should be positive"
 msgstr "MinWord应该是正数."
 
-#: tsearch/wparser_def.c:2574
+#: tsearch/wparser_def.c:2600
 #, c-format
 msgid "ShortWord should be >= 0"
 msgstr "ShortWord应该大于等于0"
 
-#: tsearch/wparser_def.c:2578
+#: tsearch/wparser_def.c:2604
 #, c-format
 msgid "MaxFragments should be >= 0"
 msgstr "MaxFragments应该大于等于0"
 
-#: utils/adt/acl.c:169 utils/adt/name.c:91
+#: utils/adt/acl.c:170 utils/adt/name.c:91
 #, c-format
 msgid "identifier too long"
 msgstr "标识符太长"
 
-#: utils/adt/acl.c:170 utils/adt/name.c:92
+#: utils/adt/acl.c:171 utils/adt/name.c:92
 #, c-format
 msgid "Identifier must be less than %d characters."
 msgstr "标识符必须小于 %d 个字符."
 
-#: utils/adt/acl.c:256
+#: utils/adt/acl.c:257
 #, c-format
 msgid "unrecognized key word: \"%s\""
 msgstr "未知的键值: \"%s\""
 
-#: utils/adt/acl.c:257
+#: utils/adt/acl.c:258
 #, c-format
 msgid "ACL key word must be \"group\" or \"user\"."
 msgstr "ACL 键值必须为 \"group\" 或者 \"user\"."
 
-#: utils/adt/acl.c:262
+#: utils/adt/acl.c:263
 #, c-format
 msgid "missing name"
 msgstr "缺少名字"
 
-#: utils/adt/acl.c:263
+#: utils/adt/acl.c:264
 #, c-format
 msgid "A name must follow the \"group\" or \"user\" key word."
 msgstr "一个名字必须为 \"group\" 或者 \"user\" 键值."
 
-#: utils/adt/acl.c:269
+#: utils/adt/acl.c:270
 #, c-format
 msgid "missing \"=\" sign"
 msgstr "缺少 \"=\" 符号"
 
-#: utils/adt/acl.c:322
+#: utils/adt/acl.c:323
 #, c-format
 msgid "invalid mode character: must be one of \"%s\""
 msgstr "无效的模式字符: 必须是 \"%s\" 其中的一个"
 
-#: utils/adt/acl.c:344
+#: utils/adt/acl.c:345
 #, c-format
 msgid "a name must follow the \"/\" sign"
 msgstr "名字必须再 \"/\" 符号后"
 
-#: utils/adt/acl.c:352
+#: utils/adt/acl.c:353
 #, c-format
 msgid "defaulting grantor to user ID %u"
 msgstr "缺省将授权者身份给予用户ID %u"
 
-#: utils/adt/acl.c:543
+#: utils/adt/acl.c:544
 #, c-format
 msgid "ACL array contains wrong data type"
 msgstr "ACL数组包含错误数据类型"
 
-#: utils/adt/acl.c:547
+#: utils/adt/acl.c:548
 #, c-format
 msgid "ACL arrays must be one-dimensional"
 msgstr "ACL数组必须是一维数组"
 
-#: utils/adt/acl.c:551
+#: utils/adt/acl.c:552
 #, c-format
 msgid "ACL arrays must not contain null values"
 msgstr "ACL数组不能包含空值"
 
-#: utils/adt/acl.c:575
+#: utils/adt/acl.c:576
 #, c-format
 msgid "extra garbage at the end of the ACL specification"
 msgstr "在ACL定义的结束部分的多余的无用部分"
 
-#: utils/adt/acl.c:1195
+#: utils/adt/acl.c:1196
 #, c-format
 msgid "grant options cannot be granted back to your own grantor"
 msgstr "不能将grant选项授予您自己的授予者 "
 
-#: utils/adt/acl.c:1256
+#: utils/adt/acl.c:1257
 #, c-format
 msgid "dependent privileges exist"
 msgstr "存在依赖权限"
 
-#: utils/adt/acl.c:1257
+#: utils/adt/acl.c:1258
 #, c-format
 msgid "Use CASCADE to revoke them too."
 msgstr "使用CASCADE回收这些权限"
 
-#: utils/adt/acl.c:1536
+#: utils/adt/acl.c:1537
 #, c-format
 msgid "aclinsert is no longer supported"
 msgstr "不再支持 aclinsert"
 
-#: utils/adt/acl.c:1546
+#: utils/adt/acl.c:1547
 #, c-format
 msgid "aclremove is no longer supported"
 msgstr "不再支持 aclremove"
 
-#: utils/adt/acl.c:1632 utils/adt/acl.c:1686
+#: utils/adt/acl.c:1633 utils/adt/acl.c:1687
 #, c-format
 msgid "unrecognized privilege type: \"%s\""
 msgstr "未知的权限类型: \"%s\""
 
-#: utils/adt/acl.c:3426 utils/adt/regproc.c:123 utils/adt/regproc.c:144
+#: utils/adt/acl.c:3427 utils/adt/regproc.c:123 utils/adt/regproc.c:144
 #: utils/adt/regproc.c:319
 #, c-format
 msgid "function \"%s\" does not exist"
 msgstr "函数 \"%s\" 不存在"
 
-#: utils/adt/acl.c:4880
+#: utils/adt/acl.c:4881
 #, c-format
 msgid "must be member of role \"%s\""
 msgstr "必须是角色\"%s\"的成员"
 
-#: utils/adt/array_expanded.c:276 utils/adt/arrayfuncs.c:934
-#: utils/adt/arrayfuncs.c:1522 utils/adt/arrayfuncs.c:3225
-#: utils/adt/arrayfuncs.c:3363 utils/adt/arrayfuncs.c:5838
-#: utils/adt/arrayfuncs.c:6149 utils/adt/arrayutils.c:93
+#: utils/adt/acl.c:5279 utils/adt/acl.c:5285
+#, c-format
+#| msgid "role name \"%s\" is reserved"
+msgid "role \"%s\" is reserved"
+msgstr "角色 \"%s\" 是被保留的"
+
+#: utils/adt/array_expanded.c:276 utils/adt/arrayfuncs.c:931
+#: utils/adt/arrayfuncs.c:1519 utils/adt/arrayfuncs.c:3251
+#: utils/adt/arrayfuncs.c:3389 utils/adt/arrayfuncs.c:5864
+#: utils/adt/arrayfuncs.c:6175 utils/adt/arrayutils.c:93
 #: utils/adt/arrayutils.c:102 utils/adt/arrayutils.c:109
 #, c-format
 msgid "array size exceeds the maximum allowed (%d)"
 msgstr "数组的大小超过了最大允许值(%d)"
 
 #: utils/adt/array_userfuncs.c:67 utils/adt/array_userfuncs.c:529
-#: utils/adt/array_userfuncs.c:609 utils/adt/json.c:1745 utils/adt/json.c:1840
-#: utils/adt/json.c:1878 utils/adt/jsonb.c:1126 utils/adt/jsonb.c:1155
-#: utils/adt/jsonb.c:1596 utils/adt/jsonb.c:1760 utils/adt/jsonb.c:1770
+#: utils/adt/array_userfuncs.c:609 utils/adt/json.c:1759 utils/adt/json.c:1854
+#: utils/adt/json.c:1892 utils/adt/jsonb.c:1126 utils/adt/jsonb.c:1155
+#: utils/adt/jsonb.c:1591 utils/adt/jsonb.c:1755 utils/adt/jsonb.c:1765
 #, c-format
 msgid "could not determine input data type"
 msgstr "无法确定输入数据类型"
 
 #: utils/adt/array_userfuncs.c:72
 #, c-format
-#| msgid "target type is not an array"
 msgid "input data type is not an array"
 msgstr "输入数据类型不是一个数组"
 
 #: utils/adt/array_userfuncs.c:120 utils/adt/array_userfuncs.c:174
-#: utils/adt/arrayfuncs.c:1325 utils/adt/float.c:1161 utils/adt/float.c:1220
-#: utils/adt/float.c:2771 utils/adt/float.c:2787 utils/adt/int.c:623
+#: utils/adt/arrayfuncs.c:1322 utils/adt/float.c:1221 utils/adt/float.c:1280
+#: utils/adt/float.c:3509 utils/adt/float.c:3525 utils/adt/int.c:623
 #: utils/adt/int.c:652 utils/adt/int.c:673 utils/adt/int.c:704
 #: utils/adt/int.c:737 utils/adt/int.c:759 utils/adt/int.c:907
 #: utils/adt/int.c:928 utils/adt/int.c:955 utils/adt/int.c:995
 #: utils/adt/int.c:1016 utils/adt/int.c:1043 utils/adt/int.c:1076
-#: utils/adt/int.c:1159 utils/adt/int8.c:1298 utils/adt/numeric.c:2903
-#: utils/adt/numeric.c:2912 utils/adt/varbit.c:1173 utils/adt/varbit.c:1565
-#: utils/adt/varlena.c:1045 utils/adt/varlena.c:2582
+#: utils/adt/int.c:1159 utils/adt/int8.c:1298 utils/adt/numeric.c:2907
+#: utils/adt/numeric.c:2916 utils/adt/varbit.c:1173 utils/adt/varbit.c:1565
+#: utils/adt/varlena.c:1055 utils/adt/varlena.c:2807
 #, c-format
 msgid "integer out of range"
 msgstr "整数超出范围"
@@ -18082,267 +18669,262 @@ msgstr "带有不同成员维度的数组对于串联操作不兼容"
 msgid "Arrays with differing dimensions are not compatible for concatenation."
 msgstr "带有不同维度的数组对于串联操作不兼容."
 
-#: utils/adt/array_userfuncs.c:468 utils/adt/arrayfuncs.c:1287
-#: utils/adt/arrayfuncs.c:3331 utils/adt/arrayfuncs.c:5738
+#: utils/adt/array_userfuncs.c:468 utils/adt/arrayfuncs.c:1284
+#: utils/adt/arrayfuncs.c:3357 utils/adt/arrayfuncs.c:5764
 #, c-format
 msgid "invalid number of dimensions: %d"
 msgstr "无效的大小值: %d"
 
 #: utils/adt/array_userfuncs.c:725 utils/adt/array_userfuncs.c:876
 #, c-format
-#| msgid "removing elements from multidimensional arrays is not supported"
 msgid "searching for elements in multidimensional arrays is not supported"
 msgstr "不支持在多维数组中搜索元素"
 
 #: utils/adt/array_userfuncs.c:749
 #, c-format
-#| msgid "field name must not be null"
 msgid "initial position must not be null"
 msgstr "初始位置不能为空"
 
-#: utils/adt/arrayfuncs.c:271 utils/adt/arrayfuncs.c:285
-#: utils/adt/arrayfuncs.c:296 utils/adt/arrayfuncs.c:318
-#: utils/adt/arrayfuncs.c:333 utils/adt/arrayfuncs.c:347
-#: utils/adt/arrayfuncs.c:353 utils/adt/arrayfuncs.c:360
-#: utils/adt/arrayfuncs.c:491 utils/adt/arrayfuncs.c:507
-#: utils/adt/arrayfuncs.c:518 utils/adt/arrayfuncs.c:533
-#: utils/adt/arrayfuncs.c:554 utils/adt/arrayfuncs.c:584
-#: utils/adt/arrayfuncs.c:591 utils/adt/arrayfuncs.c:599
-#: utils/adt/arrayfuncs.c:633 utils/adt/arrayfuncs.c:656
-#: utils/adt/arrayfuncs.c:676 utils/adt/arrayfuncs.c:788
-#: utils/adt/arrayfuncs.c:797 utils/adt/arrayfuncs.c:827
-#: utils/adt/arrayfuncs.c:842 utils/adt/arrayfuncs.c:895
+#: utils/adt/arrayfuncs.c:268 utils/adt/arrayfuncs.c:282
+#: utils/adt/arrayfuncs.c:293 utils/adt/arrayfuncs.c:315
+#: utils/adt/arrayfuncs.c:330 utils/adt/arrayfuncs.c:344
+#: utils/adt/arrayfuncs.c:350 utils/adt/arrayfuncs.c:357
+#: utils/adt/arrayfuncs.c:488 utils/adt/arrayfuncs.c:504
+#: utils/adt/arrayfuncs.c:515 utils/adt/arrayfuncs.c:530
+#: utils/adt/arrayfuncs.c:551 utils/adt/arrayfuncs.c:581
+#: utils/adt/arrayfuncs.c:588 utils/adt/arrayfuncs.c:596
+#: utils/adt/arrayfuncs.c:630 utils/adt/arrayfuncs.c:653
+#: utils/adt/arrayfuncs.c:673 utils/adt/arrayfuncs.c:785
+#: utils/adt/arrayfuncs.c:794 utils/adt/arrayfuncs.c:824
+#: utils/adt/arrayfuncs.c:839 utils/adt/arrayfuncs.c:892
 #, c-format
 msgid "malformed array literal: \"%s\""
 msgstr "有缺陷的数组常量:\"%s\""
 
-#: utils/adt/arrayfuncs.c:272
+#: utils/adt/arrayfuncs.c:269
 #, c-format
 msgid "\"[\" must introduce explicitly-specified array dimensions."
 msgstr "\"[\"必须引入显式指定的数组规模。"
 
-#: utils/adt/arrayfuncs.c:286
+#: utils/adt/arrayfuncs.c:283
 #, c-format
-#| msgid "missing dimension value"
 msgid "Missing array dimension value."
 msgstr "缺少数组尺寸值。"
 
-#: utils/adt/arrayfuncs.c:297 utils/adt/arrayfuncs.c:334
+#: utils/adt/arrayfuncs.c:294 utils/adt/arrayfuncs.c:331
 #, c-format
-#| msgid "missing \"]\" in array dimensions"
 msgid "Missing \"%s\" after array dimensions."
 msgstr "数组维度后缺少\"%s\""
 
-#: utils/adt/arrayfuncs.c:306 utils/adt/arrayfuncs.c:2848
-#: utils/adt/arrayfuncs.c:2876 utils/adt/arrayfuncs.c:2891
+#: utils/adt/arrayfuncs.c:303 utils/adt/arrayfuncs.c:2870
+#: utils/adt/arrayfuncs.c:2902 utils/adt/arrayfuncs.c:2917
 #, c-format
 msgid "upper bound cannot be less than lower bound"
 msgstr "上限不能小于底限"
 
-#: utils/adt/arrayfuncs.c:319
+#: utils/adt/arrayfuncs.c:316
 #, c-format
-#| msgid "array value must start with \"{\" or dimension information"
 msgid "Array value must start with \"{\" or dimension information."
 msgstr "数组值必须以 \"{\" 或者维度信息开始。"
 
-#: utils/adt/arrayfuncs.c:348
+#: utils/adt/arrayfuncs.c:345
 #, c-format
 msgid "Array contents must start with \"{\"."
 msgstr "数组内容必须以\"{\"开始。"
 
-#: utils/adt/arrayfuncs.c:354 utils/adt/arrayfuncs.c:361
+#: utils/adt/arrayfuncs.c:351 utils/adt/arrayfuncs.c:358
 #, c-format
-#| msgid "array dimensions incompatible with array literal"
 msgid "Specified array dimensions do not match array contents."
 msgstr "指定的数组维数与数组内容不匹配"
 
-#: utils/adt/arrayfuncs.c:492 utils/adt/arrayfuncs.c:519
+#: utils/adt/arrayfuncs.c:489 utils/adt/arrayfuncs.c:516
 #: utils/adt/rangetypes.c:2124 utils/adt/rangetypes.c:2132
 #: utils/adt/rowtypes.c:208 utils/adt/rowtypes.c:216
 #, c-format
 msgid "Unexpected end of input."
 msgstr "意外的输入末尾"
 
-#: utils/adt/arrayfuncs.c:508 utils/adt/arrayfuncs.c:555
-#: utils/adt/arrayfuncs.c:585 utils/adt/arrayfuncs.c:634
+#: utils/adt/arrayfuncs.c:505 utils/adt/arrayfuncs.c:552
+#: utils/adt/arrayfuncs.c:582 utils/adt/arrayfuncs.c:631
 #, c-format
-#| msgid "unexpected \"=\""
 msgid "Unexpected \"%c\" character."
 msgstr "意外的\"%c\"字符"
 
-#: utils/adt/arrayfuncs.c:534 utils/adt/arrayfuncs.c:657
+#: utils/adt/arrayfuncs.c:531 utils/adt/arrayfuncs.c:654
 #, c-format
-#| msgid "unexpected delimiter"
 msgid "Unexpected array element."
 msgstr "意外的数组元素。"
 
-#: utils/adt/arrayfuncs.c:592
+#: utils/adt/arrayfuncs.c:589
 #, c-format
 msgid "Unmatched \"%c\" character."
 msgstr "不匹配的\"%c\"字符。"
 
-#: utils/adt/arrayfuncs.c:600
+#: utils/adt/arrayfuncs.c:597
 #, c-format
-#| msgid ""
-#| "multidimensional arrays must have array expressions with matching "
-#| "dimensions"
 msgid "Multidimensional arrays must have sub-arrays with matching dimensions."
 msgstr "多维数组必须有具有匹配维度的子数组"
 
-#: utils/adt/arrayfuncs.c:677
+#: utils/adt/arrayfuncs.c:674
 #, c-format
-#| msgid "Junk after right parenthesis."
 msgid "Junk after closing right brace."
 msgstr "结尾的右括号后的是无用的内容。"
 
-#: utils/adt/arrayfuncs.c:1298
+#: utils/adt/arrayfuncs.c:1295
 #, c-format
 msgid "invalid array flags"
 msgstr "无效的数组标记"
 
-#: utils/adt/arrayfuncs.c:1306
+#: utils/adt/arrayfuncs.c:1303
 #, c-format
 msgid "wrong element type"
 msgstr "错误的元素类型"
 
-#: utils/adt/arrayfuncs.c:1356 utils/adt/rangetypes.c:334
-#: utils/cache/lsyscache.c:2586
+#: utils/adt/arrayfuncs.c:1353 utils/adt/rangetypes.c:334
+#: utils/cache/lsyscache.c:2651
 #, c-format
 msgid "no binary input function available for type %s"
 msgstr "没有类型 %s 的有效二进制输入函数"
 
-#: utils/adt/arrayfuncs.c:1496
+#: utils/adt/arrayfuncs.c:1493
 #, c-format
 msgid "improper binary format in array element %d"
 msgstr "数组元素 %d 为不正确的二进制格式"
 
-#: utils/adt/arrayfuncs.c:1577 utils/adt/rangetypes.c:339
-#: utils/cache/lsyscache.c:2619
+#: utils/adt/arrayfuncs.c:1574 utils/adt/rangetypes.c:339
+#: utils/cache/lsyscache.c:2684
 #, c-format
 msgid "no binary output function available for type %s"
 msgstr "没有类型 %s 的有效二进制输出函数"
 
-#: utils/adt/arrayfuncs.c:2048
+#: utils/adt/arrayfuncs.c:2052
 #, c-format
 msgid "slices of fixed-length arrays not implemented"
 msgstr "没有实现固定长度数组的部分"
 
-#: utils/adt/arrayfuncs.c:2226 utils/adt/arrayfuncs.c:2248
-#: utils/adt/arrayfuncs.c:2297 utils/adt/arrayfuncs.c:2533
-#: utils/adt/arrayfuncs.c:2830 utils/adt/arrayfuncs.c:5718
-#: utils/adt/arrayfuncs.c:5750 utils/adt/arrayfuncs.c:5767
-#: utils/adt/json.c:2276 utils/adt/json.c:2351 utils/adt/jsonb.c:1375
-#: utils/adt/jsonb.c:1461 utils/adt/jsonfuncs.c:3528
-#: utils/adt/jsonfuncs.c:3573
+#: utils/adt/arrayfuncs.c:2230 utils/adt/arrayfuncs.c:2252
+#: utils/adt/arrayfuncs.c:2301 utils/adt/arrayfuncs.c:2537
+#: utils/adt/arrayfuncs.c:2848 utils/adt/arrayfuncs.c:5744
+#: utils/adt/arrayfuncs.c:5776 utils/adt/arrayfuncs.c:5793
+#: utils/adt/json.c:2290 utils/adt/json.c:2365 utils/adt/jsonb.c:1369
+#: utils/adt/jsonb.c:1455 utils/adt/jsonfuncs.c:3537
+#: utils/adt/jsonfuncs.c:3582 utils/adt/jsonfuncs.c:3629
 #, c-format
 msgid "wrong number of array subscripts"
 msgstr "错误的数组下标"
 
-#: utils/adt/arrayfuncs.c:2231 utils/adt/arrayfuncs.c:2339
-#: utils/adt/arrayfuncs.c:2597 utils/adt/arrayfuncs.c:2881
+#: utils/adt/arrayfuncs.c:2235 utils/adt/arrayfuncs.c:2343
+#: utils/adt/arrayfuncs.c:2601 utils/adt/arrayfuncs.c:2907
 #, c-format
 msgid "array subscript out of range"
 msgstr "数组下标超出范围"
 
-#: utils/adt/arrayfuncs.c:2236
+#: utils/adt/arrayfuncs.c:2240
 #, c-format
 msgid "cannot assign null value to an element of a fixed-length array"
 msgstr "无法将空值分配给固定长度数组的成员"
 
-#: utils/adt/arrayfuncs.c:2784
+#: utils/adt/arrayfuncs.c:2795
 #, c-format
 msgid "updates on slices of fixed-length arrays not implemented"
 msgstr "没有实现在固定长度数组部分上的更新操作"
 
-#: utils/adt/arrayfuncs.c:2820 utils/adt/arrayfuncs.c:2907
+#: utils/adt/arrayfuncs.c:2826
+#, c-format
+#| msgid "array subscript must have type integer"
+msgid "array slice subscript must provide both boundaries"
+msgstr "数组切片下标必须提供两个边界"
+
+#: utils/adt/arrayfuncs.c:2827
+#, c-format
+msgid ""
+"When assigning to a slice of an empty array value, slice boundaries must be "
+"fully specified."
+msgstr "在给一个空数组值的切片赋值时,必须完全指定切片的边界。"
+
+#: utils/adt/arrayfuncs.c:2838 utils/adt/arrayfuncs.c:2933
 #, c-format
 msgid "source array too small"
 msgstr "源数组太小"
 
-#: utils/adt/arrayfuncs.c:3487
+#: utils/adt/arrayfuncs.c:3513
 #, c-format
 msgid "null array element not allowed in this context"
 msgstr "不支持空数组元素"
 
-#: utils/adt/arrayfuncs.c:3589 utils/adt/arrayfuncs.c:3760
-#: utils/adt/arrayfuncs.c:4034
+#: utils/adt/arrayfuncs.c:3615 utils/adt/arrayfuncs.c:3786
+#: utils/adt/arrayfuncs.c:4060
 #, c-format
 msgid "cannot compare arrays of different element types"
 msgstr "无法比较不同元素类型的数组"
 
-#: utils/adt/arrayfuncs.c:3936 utils/adt/rangetypes.c:1253
+#: utils/adt/arrayfuncs.c:3962 utils/adt/rangetypes.c:1253
 #, c-format
 msgid "could not identify a hash function for type %s"
 msgstr "无法为类型 %s 确认一个哈希函数"
 
-#: utils/adt/arrayfuncs.c:5130
+#: utils/adt/arrayfuncs.c:5156
 #, c-format
-#| msgid "target type is not an array"
 msgid "data type %s is not an array type"
 msgstr "数据类型%s不是一个数组类型"
 
-#: utils/adt/arrayfuncs.c:5187
+#: utils/adt/arrayfuncs.c:5213
 #, c-format
-#| msgid "cannot concatenate incompatible arrays"
 msgid "cannot accumulate null arrays"
 msgstr "无法累计空值数组"
 
-#: utils/adt/arrayfuncs.c:5215
+#: utils/adt/arrayfuncs.c:5241
 #, c-format
-#| msgid "cannot concatenate incompatible arrays"
 msgid "cannot accumulate empty arrays"
 msgstr "无法累计空数组"
 
-#: utils/adt/arrayfuncs.c:5244 utils/adt/arrayfuncs.c:5250
+#: utils/adt/arrayfuncs.c:5270 utils/adt/arrayfuncs.c:5276
 #, c-format
-#| msgid "cannot compare arrays of different element types"
 msgid "cannot accumulate arrays of different dimensionality"
 msgstr "无法累积不同维度的数组"
 
-#: utils/adt/arrayfuncs.c:5616 utils/adt/arrayfuncs.c:5656
+#: utils/adt/arrayfuncs.c:5642 utils/adt/arrayfuncs.c:5682
 #, c-format
 msgid "dimension array or low bound array cannot be null"
 msgstr "维度数组或低界数组不能为空(null)"
 
-#: utils/adt/arrayfuncs.c:5719 utils/adt/arrayfuncs.c:5751
+#: utils/adt/arrayfuncs.c:5745 utils/adt/arrayfuncs.c:5777
 #, c-format
 msgid "Dimension array must be one dimensional."
 msgstr "维度数组必须是一维"
 
-#: utils/adt/arrayfuncs.c:5724 utils/adt/arrayfuncs.c:5756
+#: utils/adt/arrayfuncs.c:5750 utils/adt/arrayfuncs.c:5782
 #, c-format
 msgid "wrong range of array subscripts"
 msgstr "无效的数组下标范围"
 
-#: utils/adt/arrayfuncs.c:5725 utils/adt/arrayfuncs.c:5757
+#: utils/adt/arrayfuncs.c:5751 utils/adt/arrayfuncs.c:5783
 #, c-format
 msgid "Lower bound of dimension array must be one."
 msgstr "维度数组的低界必须是1"
 
-#: utils/adt/arrayfuncs.c:5730 utils/adt/arrayfuncs.c:5762
+#: utils/adt/arrayfuncs.c:5756 utils/adt/arrayfuncs.c:5788
 #, c-format
 msgid "dimension values cannot be null"
 msgstr "维度值不能为空"
 
-#: utils/adt/arrayfuncs.c:5768
+#: utils/adt/arrayfuncs.c:5794
 #, c-format
 msgid "Low bound array has different size than dimensions array."
 msgstr "低界数组的大小与多维数组不同"
 
-#: utils/adt/arrayfuncs.c:6014
+#: utils/adt/arrayfuncs.c:6040
 #, c-format
 msgid "removing elements from multidimensional arrays is not supported"
 msgstr "不支持多维数组中删除元素的操作"
 
-#: utils/adt/arrayfuncs.c:6291
+#: utils/adt/arrayfuncs.c:6317
 #, c-format
-#| msgid "argument must be empty or one-dimensional array"
 msgid "thresholds must be one-dimensional array"
 msgstr "thresholds必须是一维数组"
 
-#: utils/adt/arrayfuncs.c:6296
+#: utils/adt/arrayfuncs.c:6322
 #, c-format
-#| msgid "typmod array must not contain nulls"
 msgid "thresholds array must not contain NULLs"
 msgstr "thresholds数组不能包含空值"
 
@@ -18378,13 +18960,14 @@ msgstr "无效的货币类型输入语法: \"%s\""
 
 #: utils/adt/cash.c:607 utils/adt/cash.c:657 utils/adt/cash.c:708
 #: utils/adt/cash.c:757 utils/adt/cash.c:809 utils/adt/cash.c:859
-#: utils/adt/float.c:788 utils/adt/float.c:852 utils/adt/float.c:2530
-#: utils/adt/float.c:2593 utils/adt/geo_ops.c:4152 utils/adt/int.c:719
+#: utils/adt/float.c:848 utils/adt/float.c:912 utils/adt/float.c:3268
+#: utils/adt/float.c:3331 utils/adt/geo_ops.c:4085 utils/adt/int.c:719
 #: utils/adt/int.c:861 utils/adt/int.c:969 utils/adt/int.c:1058
 #: utils/adt/int.c:1097 utils/adt/int.c:1125 utils/adt/int8.c:597
 #: utils/adt/int8.c:657 utils/adt/int8.c:897 utils/adt/int8.c:1005
-#: utils/adt/int8.c:1094 utils/adt/int8.c:1202 utils/adt/numeric.c:5917
-#: utils/adt/numeric.c:6200 utils/adt/timestamp.c:3349
+#: utils/adt/int8.c:1094 utils/adt/int8.c:1202 utils/adt/numeric.c:6800
+#: utils/adt/numeric.c:7089 utils/adt/numeric.c:8090
+#: utils/adt/timestamp.c:3446
 #, c-format
 msgid "division by zero"
 msgstr "除以零"
@@ -18395,7 +18978,7 @@ msgid "\"char\" out of range"
 msgstr "\"char\" 超出范围"
 
 #: utils/adt/date.c:67 utils/adt/timestamp.c:94 utils/adt/varbit.c:52
-#: utils/adt/varchar.c:44
+#: utils/adt/varchar.c:45
 #, c-format
 msgid "invalid type modifier"
 msgstr "无效的类型修改器"
@@ -18410,144 +18993,164 @@ msgstr "TIME(%d)%s 精确度不能为负数"
 msgid "TIME(%d)%s precision reduced to maximum allowed, %d"
 msgstr "TIME(%d)%s精度减少到最大允许值,%d"
 
-#: utils/adt/date.c:141 utils/adt/datetime.c:1208 utils/adt/datetime.c:2079
+#: utils/adt/date.c:141 utils/adt/datetime.c:1277 utils/adt/datetime.c:2148
 #, c-format
 msgid "date/time value \"current\" is no longer supported"
 msgstr "日期/时间值 \"current\" 不再被支持了"
 
-#: utils/adt/date.c:166 utils/adt/formatting.c:3523
+#: utils/adt/date.c:167 utils/adt/date.c:175 utils/adt/formatting.c:3535
+#: utils/adt/formatting.c:3544
 #, c-format
 msgid "date out of range: \"%s\""
 msgstr "时间戳超出范围: \"%s\""
 
-#: utils/adt/date.c:216 utils/adt/xml.c:2029
+#: utils/adt/date.c:222 utils/adt/date.c:456 utils/adt/date.c:480
+#: utils/adt/xml.c:2029
 #, c-format
 msgid "date out of range"
 msgstr "日期超出范围"
 
-#: utils/adt/date.c:258 utils/adt/timestamp.c:592
+#: utils/adt/date.c:264 utils/adt/timestamp.c:593
 #, c-format
 msgid "date field value out of range: %d-%02d-%02d"
 msgstr "日期字段值超出范围: %d-%02d-%02d"
 
-#: utils/adt/date.c:264 utils/adt/timestamp.c:598
+#: utils/adt/date.c:271 utils/adt/date.c:280 utils/adt/timestamp.c:599
 #, c-format
 msgid "date out of range: %d-%02d-%02d"
 msgstr "日期超出范围: %d-%02d-%02d"
 
-#: utils/adt/date.c:417
+#: utils/adt/date.c:431
 #, c-format
 msgid "cannot subtract infinite dates"
 msgstr "无法减去无限大的日期"
 
-#: utils/adt/date.c:474 utils/adt/date.c:511
+#: utils/adt/date.c:509 utils/adt/date.c:544 utils/adt/date.c:566
+#: utils/adt/date.c:2629 utils/adt/date.c:2643
 #, c-format
 msgid "date out of range for timestamp"
 msgstr "日期超出了时间戳的范围"
 
-#: utils/adt/date.c:970 utils/adt/date.c:1016 utils/adt/date.c:1616
-#: utils/adt/date.c:1652 utils/adt/date.c:2524 utils/adt/formatting.c:3399
-#: utils/adt/formatting.c:3431 utils/adt/formatting.c:3499
-#: utils/adt/json.c:1520 utils/adt/json.c:1542 utils/adt/jsonb.c:823
-#: utils/adt/jsonb.c:847 utils/adt/nabstime.c:455 utils/adt/nabstime.c:498
-#: utils/adt/nabstime.c:528 utils/adt/nabstime.c:571 utils/adt/timestamp.c:224
-#: utils/adt/timestamp.c:267 utils/adt/timestamp.c:716
-#: utils/adt/timestamp.c:745 utils/adt/timestamp.c:784
-#: utils/adt/timestamp.c:2938 utils/adt/timestamp.c:2959
-#: utils/adt/timestamp.c:2972 utils/adt/timestamp.c:2981
-#: utils/adt/timestamp.c:3038 utils/adt/timestamp.c:3061
-#: utils/adt/timestamp.c:3074 utils/adt/timestamp.c:3085
-#: utils/adt/timestamp.c:3610 utils/adt/timestamp.c:3739
-#: utils/adt/timestamp.c:3780 utils/adt/timestamp.c:3868
-#: utils/adt/timestamp.c:3914 utils/adt/timestamp.c:4025
-#: utils/adt/timestamp.c:4349 utils/adt/timestamp.c:4465
-#: utils/adt/timestamp.c:4475 utils/adt/timestamp.c:4560
-#: utils/adt/timestamp.c:4679 utils/adt/timestamp.c:4689
-#: utils/adt/timestamp.c:5005 utils/adt/timestamp.c:5019
-#: utils/adt/timestamp.c:5144 utils/adt/timestamp.c:5151
-#: utils/adt/timestamp.c:5177 utils/adt/timestamp.c:5181
-#: utils/adt/timestamp.c:5250 utils/adt/xml.c:2051 utils/adt/xml.c:2058
+#: utils/adt/date.c:1022 utils/adt/date.c:1068 utils/adt/date.c:1678
+#: utils/adt/date.c:1714 utils/adt/date.c:1748 utils/adt/date.c:2592
+#: utils/adt/formatting.c:3410 utils/adt/formatting.c:3442
+#: utils/adt/formatting.c:3510 utils/adt/json.c:1534 utils/adt/json.c:1556
+#: utils/adt/jsonb.c:823 utils/adt/jsonb.c:847 utils/adt/nabstime.c:455
+#: utils/adt/nabstime.c:498 utils/adt/nabstime.c:528 utils/adt/nabstime.c:571
+#: utils/adt/timestamp.c:224 utils/adt/timestamp.c:268
+#: utils/adt/timestamp.c:726 utils/adt/timestamp.c:735
+#: utils/adt/timestamp.c:820 utils/adt/timestamp.c:860
+#: utils/adt/timestamp.c:3021 utils/adt/timestamp.c:3042
+#: utils/adt/timestamp.c:3055 utils/adt/timestamp.c:3064
+#: utils/adt/timestamp.c:3072 utils/adt/timestamp.c:3127
+#: utils/adt/timestamp.c:3150 utils/adt/timestamp.c:3163
+#: utils/adt/timestamp.c:3174 utils/adt/timestamp.c:3182
+#: utils/adt/timestamp.c:3756 utils/adt/timestamp.c:3885
+#: utils/adt/timestamp.c:3926 utils/adt/timestamp.c:4014
+#: utils/adt/timestamp.c:4060 utils/adt/timestamp.c:4171
+#: utils/adt/timestamp.c:4578 utils/adt/timestamp.c:4694
+#: utils/adt/timestamp.c:4704 utils/adt/timestamp.c:4800
+#: utils/adt/timestamp.c:4919 utils/adt/timestamp.c:4929
+#: utils/adt/timestamp.c:5250 utils/adt/timestamp.c:5264
+#: utils/adt/timestamp.c:5269 utils/adt/timestamp.c:5283
+#: utils/adt/timestamp.c:5366 utils/adt/timestamp.c:5398
+#: utils/adt/timestamp.c:5405 utils/adt/timestamp.c:5431
+#: utils/adt/timestamp.c:5435 utils/adt/timestamp.c:5504
+#: utils/adt/timestamp.c:5508 utils/adt/timestamp.c:5522
+#: utils/adt/timestamp.c:5560 utils/adt/xml.c:2051 utils/adt/xml.c:2058
 #: utils/adt/xml.c:2078 utils/adt/xml.c:2085
 #, c-format
 msgid "timestamp out of range"
 msgstr "时间戳超出范围"
 
-#: utils/adt/date.c:1042
+#: utils/adt/date.c:1094
 #, c-format
 msgid "cannot convert reserved abstime value to date"
 msgstr "不能转换保留 abstime 值为 date"
 
-#: utils/adt/date.c:1196 utils/adt/date.c:1203 utils/adt/date.c:2014
-#: utils/adt/date.c:2021
+#: utils/adt/date.c:1112 utils/adt/date.c:1118
+#, c-format
+#| msgid "date out of range for timestamp"
+msgid "abstime out of range for date"
+msgstr "abstime 超过了日期范围"
+
+#: utils/adt/date.c:1258 utils/adt/date.c:1265 utils/adt/date.c:2082
+#: utils/adt/date.c:2089
 #, c-format
 msgid "time out of range"
 msgstr "时间超出范围"
 
-#: utils/adt/date.c:1264 utils/adt/timestamp.c:617
+#: utils/adt/date.c:1326 utils/adt/timestamp.c:618
 #, c-format
 msgid "time field value out of range: %d:%02d:%02g"
 msgstr "日期/时间值超出范围:  %d:%02d:%02g"
 
-#: utils/adt/date.c:1892 utils/adt/date.c:1909
+#: utils/adt/date.c:1960 utils/adt/date.c:1977
 #, c-format
 msgid "\"time\" units \"%s\" not recognized"
 msgstr "\"time\" 单位 \"%s\" 不被认可"
 
-#: utils/adt/date.c:2030
+#: utils/adt/date.c:2098
 #, c-format
 msgid "time zone displacement out of range"
 msgstr "时间区域置换超出范围"
 
-#: utils/adt/date.c:2654 utils/adt/date.c:2671
+#: utils/adt/date.c:2740 utils/adt/date.c:2757
 #, c-format
 msgid "\"time with time zone\" units \"%s\" not recognized"
 msgstr "\"time with time zone\" 单位 \"%s\" 不被认可"
 
-#: utils/adt/date.c:2744 utils/adt/datetime.c:925 utils/adt/datetime.c:1805
-#: utils/adt/datetime.c:4566 utils/adt/timestamp.c:531
-#: utils/adt/timestamp.c:558 utils/adt/timestamp.c:5031
-#: utils/adt/timestamp.c:5261
+#: utils/adt/date.c:2830 utils/adt/datetime.c:994 utils/adt/datetime.c:1874
+#: utils/adt/datetime.c:4700 utils/adt/timestamp.c:532
+#: utils/adt/timestamp.c:559 utils/adt/timestamp.c:5275
+#: utils/adt/timestamp.c:5514
 #, c-format
 msgid "time zone \"%s\" not recognized"
 msgstr "时区 \"%s\" 不被认可"
 
-#: utils/adt/date.c:2784 utils/adt/timestamp.c:5102 utils/adt/timestamp.c:5287
+#: utils/adt/date.c:2870 utils/adt/timestamp.c:5351 utils/adt/timestamp.c:5545
 #, c-format
 msgid "interval time zone \"%s\" must not include months or days"
 msgstr "间隔时区\"%s\"不能包含月或天"
 
-#: utils/adt/datetime.c:1680
+#: utils/adt/datetime.c:1749
 #, c-format
 msgid "time zone abbreviation \"%s\" is not used in time zone \"%s\""
 msgstr "时区缩写\"%s\"不能用于时区\"%s\""
 
-#: utils/adt/datetime.c:3766 utils/adt/datetime.c:3773
+#: utils/adt/datetime.c:3835 utils/adt/datetime.c:3842
 #, c-format
 msgid "date/time field value out of range: \"%s\""
 msgstr "日期/时间值超出范围: \"%s\""
 
-#: utils/adt/datetime.c:3775
+#: utils/adt/datetime.c:3844
 #, c-format
 msgid "Perhaps you need a different \"datestyle\" setting."
 msgstr "也许你需要不同的 \"datesytle\" 设置."
 
-#: utils/adt/datetime.c:3780
+#: utils/adt/datetime.c:3849
 #, c-format
 msgid "interval field value out of range: \"%s\""
 msgstr "间隔字段超出范围: \"%s\""
 
-#: utils/adt/datetime.c:3786
+#: utils/adt/datetime.c:3855
 #, c-format
 msgid "time zone displacement out of range: \"%s\""
 msgstr "时间区域置换超出范围: \"%s\""
 
 #. translator: first %s is inet or cidr
-#: utils/adt/datetime.c:3793 utils/adt/network.c:58
+#: utils/adt/datetime.c:3862 utils/adt/float.c:454 utils/adt/float.c:537
+#: utils/adt/float.c:563 utils/adt/geo_ops.c:156 utils/adt/geo_ops.c:166
+#: utils/adt/geo_ops.c:178 utils/adt/geo_ops.c:210 utils/adt/geo_ops.c:255
+#: utils/adt/geo_ops.c:265 utils/adt/geo_ops.c:935 utils/adt/geo_ops.c:1321
+#: utils/adt/geo_ops.c:1356 utils/adt/geo_ops.c:1364 utils/adt/geo_ops.c:3422
+#: utils/adt/geo_ops.c:4555 utils/adt/geo_ops.c:4571 utils/adt/geo_ops.c:4578
+#: utils/adt/network.c:58
 #, c-format
 msgid "invalid input syntax for type %s: \"%s\""
 msgstr "无效的类型 %s 输入语法: \"%s\""
 
-#: utils/adt/datetime.c:4568
+#: utils/adt/datetime.c:4702
 #, c-format
 msgid ""
 "This time zone name appears in the configuration file for time zone "
@@ -18559,11 +19162,30 @@ msgstr "缩写时区 \"%s\"对应的时区名出现在配置文件中."
 msgid "invalid Datum pointer"
 msgstr "无效的 Datum 指针"
 
-#: utils/adt/dbsize.c:108
+#: utils/adt/dbsize.c:110
 #, c-format
 msgid "could not open tablespace directory \"%s\": %m"
 msgstr "无法打开表空间目录 \"%s\": %m"
 
+#: utils/adt/dbsize.c:757 utils/adt/dbsize.c:776 utils/adt/dbsize.c:828
+#, c-format
+#| msgid "invalid cidr value: \"%s\""
+msgid "invalid size: \"%s\""
+msgstr "无效的尺寸: \"%s\""
+
+#: utils/adt/dbsize.c:829
+#, c-format
+#| msgid "invalid time zone name: \"%s\""
+msgid "Invalid size unit: \"%s\"."
+msgstr "无效的尺寸单位: \"%s\"."
+
+#: utils/adt/dbsize.c:830
+#, c-format
+#| msgid ""
+#| "Valid units for this parameter are \"kB\", \"MB\", \"GB\", and \"TB\"."
+msgid "Valid units are \"bytes\", \"kB\", \"MB\", \"GB\", and \"TB\"."
+msgstr "有效的单位是 \"bytes\"、\"kB\"、\"MB\"、\"GB\" 以及 \"TB\"。"
+
 #: utils/adt/domains.c:85
 #, c-format
 msgid "type %s is not a domain"
@@ -18591,13 +19213,11 @@ msgstr "在解码base64序列时遇到意料之外的\"=\""
 
 #: utils/adt/encode.c:307
 #, c-format
-#| msgid "invalid source encoding name \"%s\""
 msgid "invalid symbol \"%c\" while decoding base64 sequence"
 msgstr "在解码base64序列时遇到无效符号\"%c\""
 
 #: utils/adt/encode.c:327
 #, c-format
-#| msgid "invalid end sequence"
 msgid "invalid base64 end sequence"
 msgstr "无效base64结束序列"
 
@@ -18606,8 +19226,8 @@ msgstr "无效base64结束序列"
 msgid "Input data is missing padding, is truncated, or is otherwise corrupted."
 msgstr "输入数据缺少填充,或者已经被截断,又或者已被损坏。"
 
-#: utils/adt/encode.c:442 utils/adt/encode.c:507 utils/adt/varlena.c:287
-#: utils/adt/varlena.c:328
+#: utils/adt/encode.c:442 utils/adt/encode.c:507 utils/adt/varlena.c:297
+#: utils/adt/varlena.c:338
 #, c-format
 msgid "invalid input syntax for type bytea"
 msgstr "无效的 bytea 类型输入语法"
@@ -18634,93 +19254,88 @@ msgstr "无法确定实际的枚举类型"
 msgid "enum %s contains no values"
 msgstr "枚举 \"%s\" 没有值"
 
-#: utils/adt/float.c:55
+#: utils/adt/float.c:58
 #, c-format
 msgid "value out of range: overflow"
 msgstr "值超出范围: 上溢"
 
-#: utils/adt/float.c:60
+#: utils/adt/float.c:63
 #, c-format
 msgid "value out of range: underflow"
 msgstr "值超出范围: 下溢"
 
-#: utils/adt/float.c:218 utils/adt/float.c:292 utils/adt/float.c:316
+#: utils/adt/float.c:237 utils/adt/float.c:311 utils/adt/float.c:335
 #, c-format
 msgid "invalid input syntax for type real: \"%s\""
 msgstr "无效的实数类型输入语法: \"%s\""
 
-#: utils/adt/float.c:286
+#: utils/adt/float.c:305
 #, c-format
 msgid "\"%s\" is out of range for type real"
 msgstr "\"%s\" 超出实数类型的范围"
 
-#: utils/adt/float.c:417 utils/adt/float.c:491 utils/adt/float.c:515
-#: utils/adt/numeric.c:5373 utils/adt/numeric.c:5399
-#, c-format
-msgid "invalid input syntax for type double precision: \"%s\""
-msgstr "无效的双精度类型输入语法: \"%s\""
-
-#: utils/adt/float.c:485
+#: utils/adt/float.c:530
 #, c-format
 msgid "\"%s\" is out of range for type double precision"
 msgstr "\"%s\" 超出双精度类型的范围"
 
-#: utils/adt/float.c:1179 utils/adt/float.c:1237 utils/adt/int.c:349
+#: utils/adt/float.c:1239 utils/adt/float.c:1297 utils/adt/int.c:349
 #: utils/adt/int.c:775 utils/adt/int.c:804 utils/adt/int.c:825
 #: utils/adt/int.c:845 utils/adt/int.c:879 utils/adt/int.c:1174
-#: utils/adt/int8.c:1323 utils/adt/numeric.c:3000 utils/adt/numeric.c:3009
+#: utils/adt/int8.c:1323 utils/adt/numeric.c:3004 utils/adt/numeric.c:3013
 #, c-format
 msgid "smallint out of range"
 msgstr "smallint 超出范围"
 
-#: utils/adt/float.c:1363 utils/adt/numeric.c:6599
+#: utils/adt/float.c:1423 utils/adt/numeric.c:7522
 #, c-format
 msgid "cannot take square root of a negative number"
 msgstr "无法为负数做平方根"
 
-#: utils/adt/float.c:1405 utils/adt/numeric.c:2820
+#: utils/adt/float.c:1465 utils/adt/numeric.c:2807
 #, c-format
 msgid "zero raised to a negative power is undefined"
 msgstr "被提升到负乘方的最低点没有定义."
 
-#: utils/adt/float.c:1409 utils/adt/numeric.c:2826
+#: utils/adt/float.c:1469 utils/adt/numeric.c:2813
 #, c-format
 msgid "a negative number raised to a non-integer power yields a complex result"
 msgstr "被升为非整数的平方的负数产生了一个复杂结果."
 
-#: utils/adt/float.c:1475 utils/adt/float.c:1505 utils/adt/numeric.c:6817
+#: utils/adt/float.c:1535 utils/adt/float.c:1565 utils/adt/numeric.c:7787
 #, c-format
 msgid "cannot take logarithm of zero"
 msgstr "无法取零的对数"
 
-#: utils/adt/float.c:1479 utils/adt/float.c:1509 utils/adt/numeric.c:6821
+#: utils/adt/float.c:1539 utils/adt/float.c:1569 utils/adt/numeric.c:7791
 #, c-format
 msgid "cannot take logarithm of a negative number"
 msgstr "无法取负数的对数"
 
-#: utils/adt/float.c:1536 utils/adt/float.c:1557 utils/adt/float.c:1578
-#: utils/adt/float.c:1600 utils/adt/float.c:1621 utils/adt/float.c:1642
-#: utils/adt/float.c:1664 utils/adt/float.c:1685
+#: utils/adt/float.c:1599 utils/adt/float.c:1629 utils/adt/float.c:1721
+#: utils/adt/float.c:1747 utils/adt/float.c:1774 utils/adt/float.c:1800
+#: utils/adt/float.c:1922 utils/adt/float.c:1957 utils/adt/float.c:2110
+#: utils/adt/float.c:2163 utils/adt/float.c:2226 utils/adt/float.c:2280
 #, c-format
 msgid "input is out of range"
 msgstr "输入超出范围"
 
-#: utils/adt/float.c:2747 utils/adt/numeric.c:1454
+#: utils/adt/float.c:3485 utils/adt/numeric.c:1447
 #, c-format
 msgid "count must be greater than zero"
 msgstr "总数必须大于零"
 
-#: utils/adt/float.c:2752 utils/adt/numeric.c:1461
+#: utils/adt/float.c:3490 utils/adt/numeric.c:1454
 #, c-format
 msgid "operand, lower bound, and upper bound cannot be NaN"
 msgstr "操作数,下限和上限不能是NaN"
 
-#: utils/adt/float.c:2758
+#: utils/adt/float.c:3496
 #, c-format
 msgid "lower and upper bounds must be finite"
 msgstr "地位和高位边界必须是有限的."
 
-#: utils/adt/float.c:2796 utils/adt/numeric.c:1474
+#: utils/adt/float.c:3534 utils/adt/numeric.c:1467
 #, c-format
 msgid "lower bound cannot equal upper bound"
 msgstr "下限不能等于上限"
@@ -18895,48 +19510,47 @@ msgstr "值必须是在范围%d到%d之间."
 msgid "The given value did not match any of the allowed values for this field."
 msgstr "给定的值与这个字段所允许的值不匹配."
 
-#: utils/adt/formatting.c:2551 utils/adt/formatting.c:2571
-#: utils/adt/formatting.c:2591 utils/adt/formatting.c:2611
-#: utils/adt/formatting.c:2630 utils/adt/formatting.c:2649
-#: utils/adt/formatting.c:2672 utils/adt/formatting.c:2690
-#: utils/adt/formatting.c:2708 utils/adt/formatting.c:2726
-#: utils/adt/formatting.c:2743 utils/adt/formatting.c:2760
+#: utils/adt/formatting.c:2558 utils/adt/formatting.c:2578
+#: utils/adt/formatting.c:2598 utils/adt/formatting.c:2618
+#: utils/adt/formatting.c:2637 utils/adt/formatting.c:2656
+#: utils/adt/formatting.c:2680 utils/adt/formatting.c:2698
+#: utils/adt/formatting.c:2716 utils/adt/formatting.c:2734
+#: utils/adt/formatting.c:2751 utils/adt/formatting.c:2768
 #, c-format
-#| msgid "payload string too long"
 msgid "localized string format value too long"
 msgstr "本地化字符串格式值太长"
 
-#: utils/adt/formatting.c:3044
+#: utils/adt/formatting.c:3055
 #, c-format
 msgid "\"TZ\"/\"tz\"/\"OF\" format patterns are not supported in to_date"
 msgstr "在to_date中不支持\"TZ\"/\"tz\"/\"OF\"的格式模式"
 
-#: utils/adt/formatting.c:3152
+#: utils/adt/formatting.c:3163
 #, c-format
 msgid "invalid input string for \"Y,YYY\""
 msgstr "对于\"Y,YYY\", 所输入的字符串无效"
 
-#: utils/adt/formatting.c:3655
+#: utils/adt/formatting.c:3674
 #, c-format
 msgid "hour \"%d\" is invalid for the 12-hour clock"
 msgstr "对于12小时制的钟表,小时数\"%d\"无效"
 
-#: utils/adt/formatting.c:3657
+#: utils/adt/formatting.c:3676
 #, c-format
 msgid "Use the 24-hour clock, or give an hour between 1 and 12."
 msgstr "使用24小时制的钟表,或者将小时数限定在1到12之间."
 
-#: utils/adt/formatting.c:3752
+#: utils/adt/formatting.c:3771
 #, c-format
 msgid "cannot calculate day of year without year information"
 msgstr "没有年份信息无法计算年的天数"
 
-#: utils/adt/formatting.c:4601
+#: utils/adt/formatting.c:4620
 #, c-format
 msgid "\"EEEE\" not supported for input"
 msgstr "不支持为输入使用\"EEEE\""
 
-#: utils/adt/formatting.c:4613
+#: utils/adt/formatting.c:4632
 #, c-format
 msgid "\"RN\" not supported for input"
 msgstr "不支持为输入使用\"RN\""
@@ -18983,129 +19597,83 @@ msgstr "只有超级用户才能获取文件信息"
 msgid "must be superuser to get directory listings"
 msgstr "只有超级用户才能获取目录列表"
 
-#: utils/adt/geo_ops.c:300 utils/adt/geo_ops.c:1399 utils/adt/geo_ops.c:3497
-#: utils/adt/geo_ops.c:4312 utils/adt/geo_ops.c:5256
-#, c-format
-msgid "too many points requested"
-msgstr "要求了太多的点"
-
-#: utils/adt/geo_ops.c:323
-#, c-format
-msgid "could not format \"path\" value"
-msgstr "无法格式化 \"path\" 值"
-
-#: utils/adt/geo_ops.c:398
-#, c-format
-msgid "invalid input syntax for type box: \"%s\""
-msgstr "无效的 box 类型输入语法: \"%s\""
-
-#: utils/adt/geo_ops.c:993
-#, c-format
-msgid "invalid line specification: must be two distinct points"
-msgstr "无效的线规格: 必须是两个不同的点"
-
-#: utils/adt/geo_ops.c:1002
+#: utils/adt/geo_ops.c:940
 #, c-format
 msgid "invalid line specification: A and B cannot both be zero"
 msgstr "无效的行规格: A和B不能同时为0"
 
-#: utils/adt/geo_ops.c:1007
+#: utils/adt/geo_ops.c:948
 #, c-format
-msgid "invalid input syntax for type line: \"%s\""
-msgstr "无效的 line 类型输入语法: \"%s\""
+msgid "invalid line specification: must be two distinct points"
+msgstr "无效的线规格: 必须是两个不同的点"
 
-#: utils/adt/geo_ops.c:1379 utils/adt/geo_ops.c:1410
+#: utils/adt/geo_ops.c:1342 utils/adt/geo_ops.c:3432 utils/adt/geo_ops.c:4245
+#: utils/adt/geo_ops.c:5173
 #, c-format
-msgid "invalid input syntax for type path: \"%s\""
-msgstr "无效的 path 类型输入语法: \"%s\""
+msgid "too many points requested"
+msgstr "要求了太多的点"
 
-#: utils/adt/geo_ops.c:1449
+#: utils/adt/geo_ops.c:1404
 #, c-format
 msgid "invalid number of points in external \"path\" value"
 msgstr "在外部 \"path\" 值中的点数量无效."
 
-#: utils/adt/geo_ops.c:1792
-#, c-format
-msgid "invalid input syntax for type point: \"%s\""
-msgstr "无效的 point 类型输入语法: \"%s\""
-
-#: utils/adt/geo_ops.c:2020
-#, c-format
-msgid "invalid input syntax for type lseg: \"%s\""
-msgstr "无效的 lseg 类型输入语法: \"%s\""
-
-#: utils/adt/geo_ops.c:2620
+#: utils/adt/geo_ops.c:2555
 #, c-format
 msgid "function \"dist_lb\" not implemented"
 msgstr "函数 \"dist_lb\" 没有实现"
 
-#: utils/adt/geo_ops.c:3072
+#: utils/adt/geo_ops.c:3007
 #, c-format
 msgid "function \"close_sl\" not implemented"
 msgstr "函数 \"close_sl\" 没有实现"
 
-#: utils/adt/geo_ops.c:3174
+#: utils/adt/geo_ops.c:3109
 #, c-format
 msgid "function \"close_lb\" not implemented"
 msgstr "函数 \"close_lb\" 没有实现"
 
-#: utils/adt/geo_ops.c:3463
+#: utils/adt/geo_ops.c:3398
 #, c-format
 msgid "cannot create bounding box for empty polygon"
 msgstr "无法为空多边形创建 bounding box"
 
-#: utils/adt/geo_ops.c:3488 utils/adt/geo_ops.c:3508
-#, c-format
-msgid "invalid input syntax for type polygon: \"%s\""
-msgstr "无效的 polygon 类型输入语法: \"%s\""
-
-#: utils/adt/geo_ops.c:3548
+#: utils/adt/geo_ops.c:3479
 #, c-format
 msgid "invalid number of points in external \"polygon\" value"
 msgstr "在外部\"polygon\" 值中的点数量无效."
 
-#: utils/adt/geo_ops.c:4071
+#: utils/adt/geo_ops.c:4004
 #, c-format
 msgid "function \"poly_distance\" not implemented"
 msgstr "函数 \"poly_distance\" 没有实现"
 
-#: utils/adt/geo_ops.c:4424
+#: utils/adt/geo_ops.c:4357
 #, c-format
 msgid "function \"path_center\" not implemented"
 msgstr "函数 \"path_center\" 没有实现"
 
-#: utils/adt/geo_ops.c:4441
+#: utils/adt/geo_ops.c:4374
 #, c-format
 msgid "open path cannot be converted to polygon"
 msgstr "打开的路径不能转换为多态型"
 
-#: utils/adt/geo_ops.c:4618 utils/adt/geo_ops.c:4628 utils/adt/geo_ops.c:4643
-#: utils/adt/geo_ops.c:4649
-#, c-format
-msgid "invalid input syntax for type circle: \"%s\""
-msgstr "无效的 circle 类型输入语法: \"%s\""
-
-#: utils/adt/geo_ops.c:4671 utils/adt/geo_ops.c:4679
-#, c-format
-msgid "could not format \"circle\" value"
-msgstr "无法格式化 \"circle\" 的值"
-
-#: utils/adt/geo_ops.c:4706
+#: utils/adt/geo_ops.c:4623
 #, c-format
 msgid "invalid radius in external \"circle\" value"
 msgstr "在外部\"circle\" 值中的半径无效"
 
-#: utils/adt/geo_ops.c:5242
+#: utils/adt/geo_ops.c:5159
 #, c-format
 msgid "cannot convert circle with radius zero to polygon"
 msgstr "无法将半径为0的圆转换为多边类型"
 
-#: utils/adt/geo_ops.c:5247
+#: utils/adt/geo_ops.c:5164
 #, c-format
 msgid "must request at least 2 points"
 msgstr "必须要求至少两个点."
 
-#: utils/adt/geo_ops.c:5291
+#: utils/adt/geo_ops.c:5208
 #, c-format
 msgid "cannot convert empty polygon to circle"
 msgstr "无法转换空的多边形到圆形"
@@ -19125,8 +19693,8 @@ msgstr "无效的int2vector数据"
 msgid "oidvector has too many elements"
 msgstr "oidvector 有太多元素"
 
-#: utils/adt/int.c:1362 utils/adt/int8.c:1460 utils/adt/numeric.c:1362
-#: utils/adt/timestamp.c:5348 utils/adt/timestamp.c:5429
+#: utils/adt/int.c:1362 utils/adt/int8.c:1460 utils/adt/numeric.c:1355
+#: utils/adt/timestamp.c:5611 utils/adt/timestamp.c:5692
 #, c-format
 msgid "step size cannot equal zero"
 msgstr "单步执行大小不能等于0"
@@ -19150,7 +19718,7 @@ msgstr "值 \"%s\" 超出 bigint 类型范围"
 #: utils/adt/int8.c:964 utils/adt/int8.c:991 utils/adt/int8.c:1031
 #: utils/adt/int8.c:1052 utils/adt/int8.c:1079 utils/adt/int8.c:1112
 #: utils/adt/int8.c:1140 utils/adt/int8.c:1161 utils/adt/int8.c:1188
-#: utils/adt/int8.c:1361 utils/adt/int8.c:1400 utils/adt/numeric.c:2955
+#: utils/adt/int8.c:1361 utils/adt/int8.c:1400 utils/adt/numeric.c:2959
 #: utils/adt/varbit.c:1645
 #, c-format
 msgid "bigint out of range"
@@ -19161,178 +19729,174 @@ msgstr "bigint 超出范围"
 msgid "OID out of range"
 msgstr "OID 超出范围"
 
-#: utils/adt/json.c:777 utils/adt/json.c:817 utils/adt/json.c:832
-#: utils/adt/json.c:843 utils/adt/json.c:853 utils/adt/json.c:904
-#: utils/adt/json.c:935 utils/adt/json.c:953 utils/adt/json.c:965
-#: utils/adt/json.c:977 utils/adt/json.c:1116 utils/adt/json.c:1130
-#: utils/adt/json.c:1141 utils/adt/json.c:1149 utils/adt/json.c:1157
-#: utils/adt/json.c:1165 utils/adt/json.c:1173 utils/adt/json.c:1181
-#: utils/adt/json.c:1189 utils/adt/json.c:1197 utils/adt/json.c:1227
+#: utils/adt/json.c:785 utils/adt/json.c:825 utils/adt/json.c:840
+#: utils/adt/json.c:851 utils/adt/json.c:861 utils/adt/json.c:912
+#: utils/adt/json.c:943 utils/adt/json.c:961 utils/adt/json.c:973
+#: utils/adt/json.c:985 utils/adt/json.c:1130 utils/adt/json.c:1144
+#: utils/adt/json.c:1155 utils/adt/json.c:1163 utils/adt/json.c:1171
+#: utils/adt/json.c:1179 utils/adt/json.c:1187 utils/adt/json.c:1195
+#: utils/adt/json.c:1203 utils/adt/json.c:1211 utils/adt/json.c:1241
 #, c-format
 msgid "invalid input syntax for type json"
 msgstr "json类型使用了无效的输入语法"
 
-#: utils/adt/json.c:778
+#: utils/adt/json.c:786
 #, c-format
 msgid "Character with value 0x%02x must be escaped."
 msgstr "值为 0x%02x 的字符必须进行转义处理."
 
-#: utils/adt/json.c:818
+#: utils/adt/json.c:826
 #, c-format
 msgid "\"\\u\" must be followed by four hexadecimal digits."
 msgstr "\"\\u\" 后必须紧跟有效的十六进制数数字"
 
-#: utils/adt/json.c:833
+#: utils/adt/json.c:841
 #, c-format
 msgid "Unicode high surrogate must not follow a high surrogate."
 msgstr "Unicode 的高位代理项不能紧随另一个高位代理项."
 
-#: utils/adt/json.c:844 utils/adt/json.c:854 utils/adt/json.c:905
-#: utils/adt/json.c:966 utils/adt/json.c:978
+#: utils/adt/json.c:852 utils/adt/json.c:862 utils/adt/json.c:913
+#: utils/adt/json.c:974 utils/adt/json.c:986
 #, c-format
 msgid "Unicode low surrogate must follow a high surrogate."
 msgstr "Unicode 代位代理项必须紧随一个高位代理项."
 
-#: utils/adt/json.c:869 utils/adt/json.c:892
+#: utils/adt/json.c:877 utils/adt/json.c:900
 #, c-format
-#| msgid "invalid Unicode escape value"
 msgid "unsupported Unicode escape sequence"
 msgstr "不支持的Unicode转义序列"
 
-#: utils/adt/json.c:870
+#: utils/adt/json.c:878
 #, c-format
-#| msgid "open path cannot be converted to polygon"
 msgid "\\u0000 cannot be converted to text."
 msgstr "\\u0000不能被转换为文本。"
 
-#: utils/adt/json.c:893
+#: utils/adt/json.c:901
 #, c-format
 msgid ""
 "Unicode escape values cannot be used for code point values above 007F when "
 "the server encoding is not UTF8."
 msgstr "当服务器的编码不是UTF8时,Unicode转义值就不能用作007F以上的码点值."
 
-#: utils/adt/json.c:936 utils/adt/json.c:954
+#: utils/adt/json.c:944 utils/adt/json.c:962
 #, c-format
 msgid "Escape sequence \"\\%s\" is invalid."
 msgstr "转义序列 \"\\%s\" 无效."
 
-#: utils/adt/json.c:1117
+#: utils/adt/json.c:1131
 #, c-format
 msgid "The input string ended unexpectedly."
 msgstr "输入字符串意外终止."
 
-#: utils/adt/json.c:1131
+#: utils/adt/json.c:1145
 #, c-format
 msgid "Expected end of input, but found \"%s\"."
 msgstr "期望输入结束,结果发现是\"%s\"."
 
-#: utils/adt/json.c:1142
+#: utils/adt/json.c:1156
 #, c-format
 msgid "Expected JSON value, but found \"%s\"."
 msgstr "期望 是JSON值, 但结果发现是\"%s\"."
 
-#: utils/adt/json.c:1150 utils/adt/json.c:1198
+#: utils/adt/json.c:1164 utils/adt/json.c:1212
 #, c-format
 msgid "Expected string, but found \"%s\"."
 msgstr "期望是字符串, 但发现结果是\"%s\"."
 
-#: utils/adt/json.c:1158
+#: utils/adt/json.c:1172
 #, c-format
 msgid "Expected array element or \"]\", but found \"%s\"."
 msgstr "期望为数组元素或者\"]\",但发现结果是\"%s\"."
 
-#: utils/adt/json.c:1166
+#: utils/adt/json.c:1180
 #, c-format
 msgid "Expected \",\" or \"]\", but found \"%s\"."
 msgstr "期望是\",\" 或 \"]\",但发现结果是\"%s\"."
 
-#: utils/adt/json.c:1174
+#: utils/adt/json.c:1188
 #, c-format
 msgid "Expected string or \"}\", but found \"%s\"."
 msgstr "期望是字符串或\"}\",但发现结果是\"%s\"."
 
-#: utils/adt/json.c:1182
+#: utils/adt/json.c:1196
 #, c-format
 msgid "Expected \":\", but found \"%s\"."
 msgstr "期望得到 \":\",但发现结果是\"%s\"."
 
-#: utils/adt/json.c:1190
+#: utils/adt/json.c:1204
 #, c-format
 msgid "Expected \",\" or \"}\", but found \"%s\"."
 msgstr "期望是 \",\" 或 \"}\",但发现结果是\"%s\"."
 
-#: utils/adt/json.c:1228
+#: utils/adt/json.c:1242
 #, c-format
 msgid "Token \"%s\" is invalid."
 msgstr "令牌 \"%s\" 无效."
 
-#: utils/adt/json.c:1300
+#: utils/adt/json.c:1314
 #, c-format
 msgid "JSON data, line %d: %s%s%s"
 msgstr "JSON数据, 行 %d: %s%s%s"
 
-#: utils/adt/json.c:1455 utils/adt/jsonb.c:724
+#: utils/adt/json.c:1469 utils/adt/jsonb.c:724
 #, c-format
 msgid "key value must be scalar, not array, composite, or json"
 msgstr "键值必须是标量,不能是数组、复合值或json值"
 
-#: utils/adt/json.c:1992
+#: utils/adt/json.c:2006
 #, c-format
-#| msgid "could not determine data type for argument %d"
 msgid "could not determine data type for argument 1"
 msgstr "无法确定参数1的数据类型"
 
-#: utils/adt/json.c:2002
+#: utils/adt/json.c:2016
 #, c-format
-#| msgid "could not determine data type for argument %d"
 msgid "could not determine data type for argument 2"
 msgstr "无法确定参数2的数据类型"
 
-#: utils/adt/json.c:2026 utils/adt/jsonb.c:1786
+#: utils/adt/json.c:2040 utils/adt/jsonb.c:1781
 #, c-format
 msgid "field name must not be null"
 msgstr "字段名不能为空"
 
-#: utils/adt/json.c:2103
+#: utils/adt/json.c:2117
 #, c-format
 msgid "argument list must have even number of elements"
 msgstr "参数列表的元素个数必须为偶数"
 
-#: utils/adt/json.c:2104
+#: utils/adt/json.c:2118
 #, c-format
 msgid ""
 "The arguments of json_build_object() must consist of alternating keys and "
 "values."
 msgstr "json_build_object()的参数必须包含可替代的键和对应的值."
 
-#: utils/adt/json.c:2128 utils/adt/json.c:2149 utils/adt/json.c:2208
+#: utils/adt/json.c:2142 utils/adt/json.c:2163 utils/adt/json.c:2222
 #, c-format
 msgid "could not determine data type for argument %d"
 msgstr "无法确定参数 %d 的数据类型"
 
-#: utils/adt/json.c:2134
+#: utils/adt/json.c:2148
 #, c-format
 msgid "argument %d cannot be null"
 msgstr "参数%d不能为空"
 
-#: utils/adt/json.c:2135
+#: utils/adt/json.c:2149
 #, c-format
 msgid "Object keys should be text."
 msgstr "对象的键必须是文本"
 
-#: utils/adt/json.c:2270 utils/adt/jsonb.c:1369
+#: utils/adt/json.c:2284 utils/adt/jsonb.c:1363
 #, c-format
 msgid "array must have two columns"
 msgstr "数组必须有两列"
 
-#: utils/adt/json.c:2294 utils/adt/json.c:2378 utils/adt/jsonb.c:1393
-#: utils/adt/jsonb.c:1488
+#: utils/adt/json.c:2308 utils/adt/json.c:2392 utils/adt/jsonb.c:1387
+#: utils/adt/jsonb.c:1482
 #, c-format
 msgid "null value not allowed for object key"
 msgstr "空值不能用于对象的键当中"
 
-#: utils/adt/json.c:2367 utils/adt/jsonb.c:1477
+#: utils/adt/json.c:2381 utils/adt/jsonb.c:1471
 #, c-format
 msgid "mismatched array dimensions"
 msgstr "不匹配的数组维数"
@@ -19350,31 +19914,21 @@ msgstr "因为实现方面的限制,jsonb字符串不能超过%d个字节."
 
 #: utils/adt/jsonb.c:1182
 #, c-format
-#| msgid "invalid number of points in external \"path\" value"
 msgid "invalid number of arguments: object must be matched key value pairs"
 msgstr "无效的参数数量:对象必须是匹配的键值对"
 
-#: utils/adt/jsonb.c:1196
+#: utils/adt/jsonb.c:1195
 #, c-format
-#| msgid "argument %d cannot be null"
 msgid "argument %d: key must not be null"
 msgstr "参数%d:键不能为空"
 
-#: utils/adt/jsonb.c:1218
+#: utils/adt/jsonb.c:1214 utils/adt/jsonb.c:1237 utils/adt/jsonb.c:1297
 #, c-format
-#| msgid "could not determine input data type"
 msgid "argument %d: could not determine data type"
 msgstr "参数%d:不能确定数据类型"
 
-#: utils/adt/jsonb.c:1241 utils/adt/jsonb.c:1303
-#, c-format
-#| msgid "could not determine input data type"
-msgid "arg %d: could not determine data type"
-msgstr "参数%d:不能确定数据类型"
-
-#: utils/adt/jsonb.c:1839
+#: utils/adt/jsonb.c:1834
 #, c-format
-#| msgid "Object keys should be text."
 msgid "object keys must be strings"
 msgstr "对象键必须是字符串"
 
@@ -19399,125 +19953,143 @@ msgstr "jsonb数组的元素的总大小超过了最大值%u字节"
 msgid "total size of jsonb object elements exceeds the maximum of %u bytes"
 msgstr "jsonb对象元素的总大小不能超过最大 %u 字节"
 
-#: utils/adt/jsonfuncs.c:296 utils/adt/jsonfuncs.c:461
-#: utils/adt/jsonfuncs.c:2056 utils/adt/jsonfuncs.c:2497
-#: utils/adt/jsonfuncs.c:3003
+#: utils/adt/jsonfuncs.c:305 utils/adt/jsonfuncs.c:470
+#: utils/adt/jsonfuncs.c:2065 utils/adt/jsonfuncs.c:2506
+#: utils/adt/jsonfuncs.c:3012
 #, c-format
 msgid "cannot call %s on a scalar"
 msgstr "无法在标量上调用%s"
 
-#: utils/adt/jsonfuncs.c:301 utils/adt/jsonfuncs.c:448
-#: utils/adt/jsonfuncs.c:2486
+#: utils/adt/jsonfuncs.c:310 utils/adt/jsonfuncs.c:457
+#: utils/adt/jsonfuncs.c:2495
 #, c-format
 msgid "cannot call %s on an array"
 msgstr "无法在数组上调用%s"
 
-#: utils/adt/jsonfuncs.c:1364 utils/adt/jsonfuncs.c:1399
+#: utils/adt/jsonfuncs.c:1373 utils/adt/jsonfuncs.c:1408
 #, c-format
 msgid "cannot get array length of a scalar"
 msgstr "无法得到一个标题的数组长度"
 
-#: utils/adt/jsonfuncs.c:1368 utils/adt/jsonfuncs.c:1387
+#: utils/adt/jsonfuncs.c:1377 utils/adt/jsonfuncs.c:1396
 #, c-format
 msgid "cannot get array length of a non-array"
 msgstr "无法从一个非数组里得到数组的长度"
 
-#: utils/adt/jsonfuncs.c:1464
+#: utils/adt/jsonfuncs.c:1473
 #, c-format
 msgid "cannot call %s on a non-object"
 msgstr "不能在非对象上调用 %s "
 
-#: utils/adt/jsonfuncs.c:1482 utils/adt/jsonfuncs.c:2169
-#: utils/adt/jsonfuncs.c:2706
+#: utils/adt/jsonfuncs.c:1491 utils/adt/jsonfuncs.c:2178
+#: utils/adt/jsonfuncs.c:2715
 #, c-format
 msgid ""
 "function returning record called in context that cannot accept type record"
 msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用"
 
-#: utils/adt/jsonfuncs.c:1725
+#: utils/adt/jsonfuncs.c:1734
 #, c-format
 msgid "cannot deconstruct an array as an object"
 msgstr "不能将一个数组析构为一个对象"
 
-#: utils/adt/jsonfuncs.c:1737
+#: utils/adt/jsonfuncs.c:1746
 #, c-format
 msgid "cannot deconstruct a scalar"
 msgstr "无法析构一个标量"
 
-#: utils/adt/jsonfuncs.c:1783
+#: utils/adt/jsonfuncs.c:1792
 #, c-format
 msgid "cannot extract elements from a scalar"
 msgstr "无法从标题值时提取元素"
 
-#: utils/adt/jsonfuncs.c:1787
+#: utils/adt/jsonfuncs.c:1796
 #, c-format
 msgid "cannot extract elements from an object"
 msgstr "无法从一个对象里提取元素"
 
-#: utils/adt/jsonfuncs.c:2043 utils/adt/jsonfuncs.c:2802
+#: utils/adt/jsonfuncs.c:2052 utils/adt/jsonfuncs.c:2811
 #, c-format
 msgid "cannot call %s on a non-array"
 msgstr "非数组上不能调用%s"
 
-#: utils/adt/jsonfuncs.c:2130 utils/adt/jsonfuncs.c:2682
+#: utils/adt/jsonfuncs.c:2139 utils/adt/jsonfuncs.c:2691
 #, c-format
 msgid "first argument of %s must be a row type"
 msgstr "%s 的第一个参数必需是一个行类型"
 
-#: utils/adt/jsonfuncs.c:2171
+#: utils/adt/jsonfuncs.c:2180
 #, c-format
 msgid ""
 "Try calling the function in the FROM clause using a column definition list."
 msgstr "试图在FROM子句时在,使用列定义列表调用该函数."
 
-#: utils/adt/jsonfuncs.c:2818 utils/adt/jsonfuncs.c:2985
+#: utils/adt/jsonfuncs.c:2827 utils/adt/jsonfuncs.c:2994
 #, c-format
 msgid "argument of %s must be an array of objects"
 msgstr "%s 的参数必须是一个对象数组"
 
-#: utils/adt/jsonfuncs.c:2842
+#: utils/adt/jsonfuncs.c:2851
 #, c-format
 msgid "cannot call %s on an object"
 msgstr "不能在一个对象上调用%s"
 
-#: utils/adt/jsonfuncs.c:3409 utils/adt/jsonfuncs.c:3462
+#: utils/adt/jsonfuncs.c:3418 utils/adt/jsonfuncs.c:3471
 #, c-format
-#| msgid "cannot delete from view \"%s\""
 msgid "cannot delete from scalar"
 msgstr "无法从标量删除"
 
-#: utils/adt/jsonfuncs.c:3467
+#: utils/adt/jsonfuncs.c:3476
 #, c-format
-#| msgid "cannot delete from foreign table \"%s\""
-msgid "cannot delete from object using integer subscript"
-msgstr "ä¸\8dè\83½ä»\8e对象使ç\94¨æ\95´æ\95°ä¸\8bæ \87删除"
+#| msgid "cannot delete from object using integer subscript"
+msgid "cannot delete from object using integer index"
+msgstr "ä¸\8dè\83½ä½¿ç\94¨æ\95´æ\95°ç´¢å¼\95ä»\8e对象删除"
 
-#: utils/adt/jsonfuncs.c:3533
+#: utils/adt/jsonfuncs.c:3542 utils/adt/jsonfuncs.c:3634
 #, c-format
-#| msgid "cannot get array length of a scalar"
 msgid "cannot set path in scalar"
 msgstr "无法在标量中设置路径"
 
-#: utils/adt/jsonfuncs.c:3578
+#: utils/adt/jsonfuncs.c:3587
 #, c-format
-#| msgid "cannot deconstruct a scalar"
 msgid "cannot delete path in scalar"
 msgstr "无法在标量中删除路径"
 
 # fe-connect.c:2558
-#: utils/adt/jsonfuncs.c:3703
+#: utils/adt/jsonfuncs.c:3757
 #, c-format
-#| msgid "invalid combination of date conventions"
 msgid "invalid concatenation of jsonb objects"
 msgstr "jsonb对象的无效串接"
 
-#: utils/adt/levenshtein.c:127
+#: utils/adt/jsonfuncs.c:3791
 #, c-format
-#| msgid "total size of jsonb array elements exceeds the maximum of %u bytes"
-msgid "argument exceeds the maximum length of %d bytes"
-msgstr "参数超过了%d字节的最大长度"
+msgid "path element at position %d is null"
+msgstr "位置 %d 的路径元素为空"
 
-#: utils/adt/like.c:212 utils/adt/selfuncs.c:5275
+#: utils/adt/jsonfuncs.c:3877
+#, c-format
+#| msgid "cannot reopen stdin\n"
+msgid "cannot replace existing key"
+msgstr "不能替换已经存在的键"
+
+#: utils/adt/jsonfuncs.c:3878
+#, c-format
+msgid "Try using the function jsonb_set to replace key value."
+msgstr "尝试使用 jsonb_set 来替换键值。"
+
+#: utils/adt/jsonfuncs.c:3960
+#, c-format
+#| msgid "plpy.prepare: type name at ordinal position %d is not a string"
+msgid "path element at position %d is not an integer: \"%s\""
+msgstr "位置 %d 的路径元素不是一个整数:\"%s\""
+
+#: utils/adt/levenshtein.c:133
+#, c-format
+#| msgid "argument exceeds the maximum length of %d bytes"
+msgid "levenshtein argument exceeds maximum length of %d characters"
+msgstr "levenshtein 参数超过了 %d 字符的最大长度"
+
+#: utils/adt/like.c:212 utils/adt/selfuncs.c:5329
 #, c-format
 msgid "could not determine which collation to use for ILIKE"
 msgstr "无法确定ILIKE使用哪种排序规则"
@@ -19537,7 +20109,7 @@ msgstr "无效的逃逸字符串"
 msgid "Escape string must be empty or one character."
 msgstr "逃逸字符串必须为空或者一个字符."
 
-#: utils/adt/lockfuncs.c:422
+#: utils/adt/lockfuncs.c:545
 #, c-format
 msgid "cannot use advisory locks during a parallel operation"
 msgstr "在并行操作期间无法使用咨询锁"
@@ -19552,80 +20124,101 @@ msgstr "无效的 macaddr 类型输入语法: \"%s\""
 msgid "invalid octet value in \"macaddr\" value: \"%s\""
 msgstr "在 \"macaddr\" 值中的无效八位值: \"%s\""
 
-#: utils/adt/misc.c:116
+#: utils/adt/misc.c:239
 #, c-format
 msgid "PID %d is not a PostgreSQL server process"
 msgstr "PID %d 不是 PostgreSQL 服务器进程"
 
-#: utils/adt/misc.c:166
+#: utils/adt/misc.c:290
 #, c-format
-#| msgid "must be superuser to create superusers"
 msgid "must be a superuser to cancel superuser query"
 msgstr "只有超级用户才能取消超级用户的查询"
 
-#: utils/adt/misc.c:171
+#: utils/adt/misc.c:295
 #, c-format
-msgid "must be a member of the role whose query is being canceled"
-msgstr "必须是其查询被取消的角色的一个成员"
+#| msgid "must be a member of the role whose query is being canceled"
+msgid ""
+"must be a member of the role whose query is being canceled or member of "
+"pg_signal_backend"
+msgstr "必须是其查询被取消的角色的一个成员或者 pg_signal_backend 的一个成员"
 
-#: utils/adt/misc.c:190
+#: utils/adt/misc.c:314
 #, c-format
-#| msgid "must be superuser to create superusers"
 msgid "must be a superuser to terminate superuser process"
 msgstr "只有超级用户中止超级用户的进程"
 
-#: utils/adt/misc.c:195
-#, c-format
-#| msgid "table \"%s\" is not a member of the extension being created"
-msgid "must be a member of the role whose process is being terminated"
-msgstr "必须是拥有被中断进程的角色的一个成员"
-
-#: utils/adt/misc.c:209
+#: utils/adt/misc.c:319
 #, c-format
-msgid "must be superuser to signal the postmaster"
-msgstr "只有超级用户可以发送信号到postmaster进程"
+#| msgid "must be a member of the role whose process is being terminated"
+msgid ""
+"must be a member of the role whose process is being terminated or member of "
+"pg_signal_backend"
+msgstr "必须是其进程被终止的角色的一个成员或者 pg_signal_backend 的一个成员"
 
-#: utils/adt/misc.c:214
+#: utils/adt/misc.c:336
 #, c-format
 msgid "failed to send signal to postmaster: %m"
 msgstr "无法发送信号到postmaster进程: %m"
 
-#: utils/adt/misc.c:231
-#, c-format
-msgid "must be superuser to rotate log files"
-msgstr "只有超级用户能切换日志文件"
-
-#: utils/adt/misc.c:236
+#: utils/adt/misc.c:356
 #, c-format
 msgid "rotation not possible because log collection not active"
 msgstr "日志切换无法进行,因为没有激活日志收集功能"
 
-#: utils/adt/misc.c:273
+#: utils/adt/misc.c:393
 #, c-format
 msgid "global tablespace never has databases"
 msgstr "全局表空间没有数据库"
 
-#: utils/adt/misc.c:294
+#: utils/adt/misc.c:414
 #, c-format
 msgid "%u is not a tablespace OID"
 msgstr "%u 不是一个表空间 OID"
 
-#: utils/adt/misc.c:491
+#: utils/adt/misc.c:611
 msgid "unreserved"
 msgstr "未保留"
 
-#: utils/adt/misc.c:495
+#: utils/adt/misc.c:615
 msgid "unreserved (cannot be function or type name)"
 msgstr "未保留(不能是函数或者类型名称)"
 
-#: utils/adt/misc.c:499
+#: utils/adt/misc.c:619
 msgid "reserved (can be function or type name)"
 msgstr "已保留(可以是函数或类型名称)"
 
-#: utils/adt/misc.c:503
+#: utils/adt/misc.c:623
 msgid "reserved"
 msgstr "已保留"
 
+#: utils/adt/misc.c:797 utils/adt/misc.c:811 utils/adt/misc.c:850
+#: utils/adt/misc.c:856 utils/adt/misc.c:862 utils/adt/misc.c:885
+#, c-format
+#| msgid "invalid snapshot identifier: \"%s\""
+msgid "string is not a valid identifier: \"%s\""
+msgstr "字符串不是一个合法的标识符:\"%s\""
+
+#: utils/adt/misc.c:799
+#, c-format
+msgid "String has unclosed double quotes."
+msgstr "字符串有未封闭的双引号。"
+
+#: utils/adt/misc.c:813
+#, c-format
+#| msgid "Extension names must not be empty."
+msgid "Quoted identifier must not be empty."
+msgstr "被引用的标识符不能为空。"
+
+#: utils/adt/misc.c:852
+#, c-format
+msgid "No valid identifier before \".\" symbol."
+msgstr "\".\" 符号前没有合法的标识符。"
+
+#: utils/adt/misc.c:858
+#, c-format
+msgid "No valid identifier after \".\" symbol."
+msgstr "\".\" 符号后没有合法的标识符。"
+
 #: utils/adt/nabstime.c:136
 #, c-format
 msgid "invalid time zone name: \"%s\""
@@ -19702,7 +20295,6 @@ msgstr "无法格式化cidr值: %m"
 
 #: utils/adt/network.c:917
 #, c-format
-#| msgid "cannot OR inet values of different sizes"
 msgid "cannot merge addresses from different families"
 msgstr "无法合并来自不同族的地址"
 
@@ -19726,103 +20318,100 @@ msgstr "结果超出范围"
 msgid "cannot subtract inet values of different sizes"
 msgstr "无法为不同大小的inet类型值进行减法运算"
 
-#: utils/adt/numeric.c:549 utils/adt/numeric.c:576 utils/adt/numeric.c:4604
-#: utils/adt/numeric.c:4627 utils/adt/numeric.c:4651 utils/adt/numeric.c:4658
+#: utils/adt/numeric.c:542 utils/adt/numeric.c:569 utils/adt/numeric.c:5394
+#: utils/adt/numeric.c:5417 utils/adt/numeric.c:5441 utils/adt/numeric.c:5448
 #, c-format
 msgid "invalid input syntax for type numeric: \"%s\""
 msgstr "无效的数字类型输入语法: \"%s\""
 
-#: utils/adt/numeric.c:766
+#: utils/adt/numeric.c:759
 #, c-format
 msgid "invalid length in external \"numeric\" value"
 msgstr "无效的外部 \"numeric\" 值长度"
 
-#: utils/adt/numeric.c:779
+#: utils/adt/numeric.c:772
 #, c-format
 msgid "invalid sign in external \"numeric\" value"
 msgstr "无效的外部 \"numeric\" 值符号"
 
-#: utils/adt/numeric.c:785
+#: utils/adt/numeric.c:778
 #, c-format
-#| msgid "invalid length in external \"numeric\" value"
 msgid "invalid scale in external \"numeric\" value"
 msgstr "外部\"numeric\"值中范围无效"
 
-#: utils/adt/numeric.c:794
+#: utils/adt/numeric.c:787
 #, c-format
 msgid "invalid digit in external \"numeric\" value"
 msgstr "无效的外部 \"numeric\" 值位数"
 
-#: utils/adt/numeric.c:985 utils/adt/numeric.c:999
+#: utils/adt/numeric.c:978 utils/adt/numeric.c:992
 #, c-format
 msgid "NUMERIC precision %d must be between 1 and %d"
 msgstr "NUMERIC %d 的精度必须在 1 和 %d 之间"
 
-#: utils/adt/numeric.c:990
+#: utils/adt/numeric.c:983
 #, c-format
 msgid "NUMERIC scale %d must be between 0 and precision %d"
 msgstr "NUMERIC 数值范围 %d 必须在 0 和精度 %d 之间"
 
 # fe-exec.c:2055
-#: utils/adt/numeric.c:1008
+#: utils/adt/numeric.c:1001
 #, c-format
 msgid "invalid NUMERIC type modifier"
 msgstr "无效的NUMERIC类型修改器"
 
-#: utils/adt/numeric.c:1340
+#: utils/adt/numeric.c:1333
 #, c-format
-#| msgid "timestamp cannot be NaN"
 msgid "start value cannot be NaN"
 msgstr "开始值不能是NaN"
 
-#: utils/adt/numeric.c:1345
+#: utils/adt/numeric.c:1338
 #, c-format
-#| msgid "timestamp cannot be NaN"
 msgid "stop value cannot be NaN"
 msgstr "停止值不能是NaN"
 
-#: utils/adt/numeric.c:1355
+#: utils/adt/numeric.c:1348
 #, c-format
-#| msgid "step size cannot equal zero"
 msgid "step size cannot be NaN"
 msgstr "步长不能是NaN"
 
-#: utils/adt/numeric.c:2550 utils/adt/numeric.c:5104 utils/adt/numeric.c:7132
+#: utils/adt/numeric.c:2543 utils/adt/numeric.c:5894 utils/adt/numeric.c:7597
+#: utils/adt/numeric.c:8126 utils/adt/numeric.c:8199
 #, c-format
 msgid "value overflows numeric format"
 msgstr "值溢出数字格式"
 
-#: utils/adt/numeric.c:2881
+#: utils/adt/numeric.c:2885
 #, c-format
 msgid "cannot convert NaN to integer"
 msgstr "无法转化 NaN 为整数"
 
-#: utils/adt/numeric.c:2947
+#: utils/adt/numeric.c:2951
 #, c-format
 msgid "cannot convert NaN to bigint"
 msgstr "无法转换 NaN 为 bigint"
 
-#: utils/adt/numeric.c:2992
+#: utils/adt/numeric.c:2996
 #, c-format
 msgid "cannot convert NaN to smallint"
 msgstr "无法转换 NaN 为 smallint"
 
-#: utils/adt/numeric.c:5174
+#: utils/adt/numeric.c:5964
 #, c-format
 msgid "numeric field overflow"
 msgstr "数字字段溢出"
 
-#: utils/adt/numeric.c:5175
+#: utils/adt/numeric.c:5965
 #, c-format
 msgid ""
 "A field with precision %d, scale %d must round to an absolute value less "
 "than %s%d."
 msgstr "精度为%d,范围是%d的字段必须四舍五入到小于%s%d的绝对值."
 
-#: utils/adt/numeric.c:6689
+#: utils/adt/numeric.c:6236 utils/adt/numeric.c:6262
 #, c-format
-msgid "argument for function \"exp\" too big"
-msgstr "对于函数 \"exp\" 参数太大"
+msgid "invalid input syntax for type double precision: \"%s\""
+msgstr "无效的双精度类型输入语法: \"%s\""
 
 #: utils/adt/numutils.c:75
 #, c-format
@@ -19880,41 +20469,41 @@ msgstr "不允许使用空字符"
 msgid "percentile value %g is not between 0 and 1"
 msgstr "百分比值 %g 不在0和1之间"
 
-#: utils/adt/pg_locale.c:911
+#: utils/adt/pg_locale.c:917
 #, c-format
 msgid "Apply system library package updates."
 msgstr "应用系统库包更新。"
 
-#: utils/adt/pg_locale.c:1116
+#: utils/adt/pg_locale.c:1122
 #, c-format
 msgid "could not create locale \"%s\": %m"
 msgstr "无法创建本地化环境 \"%s\": %m"
 
-#: utils/adt/pg_locale.c:1119
+#: utils/adt/pg_locale.c:1125
 #, c-format
 msgid ""
 "The operating system could not find any locale data for the locale name \"%s"
 "\"."
 msgstr "操作系统无法找到本地化名 \"%s\"对应的任何本地化数据."
 
-#: utils/adt/pg_locale.c:1206
+#: utils/adt/pg_locale.c:1212
 #, c-format
 msgid ""
 "collations with different collate and ctype values are not supported on this "
 "platform"
 msgstr "在此平台上不支持带有不同collate和ctype值的排序规则"
 
-#: utils/adt/pg_locale.c:1221
+#: utils/adt/pg_locale.c:1227
 #, c-format
 msgid "nondefault collations are not supported on this platform"
 msgstr "在这个平台上不支持使用非缺省的排序规则"
 
-#: utils/adt/pg_locale.c:1392
+#: utils/adt/pg_locale.c:1398
 #, c-format
 msgid "invalid multibyte character for locale"
 msgstr "无效的多字节字符, 对于 locale"
 
-#: utils/adt/pg_locale.c:1393
+#: utils/adt/pg_locale.c:1399
 #, c-format
 msgid ""
 "The server's LC_CTYPE locale is probably incompatible with the database "
@@ -19926,12 +20515,17 @@ msgstr "服务器本地 LC_CTYPE 可能与数据库编码不兼容."
 msgid "invalid input syntax for type pg_lsn: \"%s\""
 msgstr "类型 pg_lsn: \"%s\"使用了无效的输入语法"
 
-#: utils/adt/pg_upgrade_support.c:39
+#: utils/adt/pg_upgrade_support.c:40
 #, c-format
-#| msgid "must be superuser to connect in binary upgrade mode"
 msgid "function can only be called when server is in binary upgrade mode"
 msgstr "只有当服务器处于二进制升级模式时才能调用函数"
 
+#: utils/adt/pgstatfuncs.c:569
+#, c-format
+#| msgid "invalid locale name: \"%s\""
+msgid "invalid command name: \"%s\""
+msgstr "无效的命令名:\"%s\""
+
 #: utils/adt/pseudotypes.c:95
 #, c-format
 msgid "cannot accept a value of type any"
@@ -19999,76 +20593,84 @@ msgstr "无法显示一个 fdw_handler 类型值"
 
 #: utils/adt/pseudotypes.c:384
 #, c-format
-#| msgid "cannot accept a value of type fdw_handler"
+#| msgid "cannot accept a value of type tsm_handler"
+msgid "cannot accept a value of type index_am_handler"
+msgstr "无法接受一个类型 index_am_handler 的值"
+
+#: utils/adt/pseudotypes.c:397
+#, c-format
+#| msgid "cannot display a value of type tsm_handler"
+msgid "cannot display a value of type index_am_handler"
+msgstr "无法显示一个类型 index_am_handler 的值"
+
+#: utils/adt/pseudotypes.c:411
+#, c-format
 msgid "cannot accept a value of type tsm_handler"
 msgstr "无法接受一个类型tsm_handler的值"
 
-#: utils/adt/pseudotypes.c:397
+#: utils/adt/pseudotypes.c:424
 #, c-format
-#| msgid "cannot display a value of type fdw_handler"
 msgid "cannot display a value of type tsm_handler"
 msgstr "无法显示一个类型tsm_handler的值"
 
-#: utils/adt/pseudotypes.c:411
+#: utils/adt/pseudotypes.c:438
 #, c-format
 msgid "cannot accept a value of type internal"
 msgstr "无法接受一个 internal 类型值"
 
-#: utils/adt/pseudotypes.c:424
+#: utils/adt/pseudotypes.c:451
 #, c-format
 msgid "cannot display a value of type internal"
 msgstr "无法显示一个 internal 类型值"
 
-#: utils/adt/pseudotypes.c:438
+#: utils/adt/pseudotypes.c:465
 #, c-format
 msgid "cannot accept a value of type opaque"
 msgstr "无法接受一个 opaque 类型值"
 
-#: utils/adt/pseudotypes.c:451
+#: utils/adt/pseudotypes.c:478
 #, c-format
 msgid "cannot display a value of type opaque"
 msgstr "无法显示一个 opaque 类型值"
 
-#: utils/adt/pseudotypes.c:465
+#: utils/adt/pseudotypes.c:492
 #, c-format
 msgid "cannot accept a value of type anyelement"
 msgstr "无法接受一个 anyelement 类型值"
 
-#: utils/adt/pseudotypes.c:478
+#: utils/adt/pseudotypes.c:505
 #, c-format
 msgid "cannot display a value of type anyelement"
 msgstr "无法显示一个 anyelement 类型值"
 
-#: utils/adt/pseudotypes.c:491
+#: utils/adt/pseudotypes.c:518
 #, c-format
 msgid "cannot accept a value of type anynonarray"
 msgstr "无法接受一个anynonarray类型值"
 
-#: utils/adt/pseudotypes.c:504
+#: utils/adt/pseudotypes.c:531
 #, c-format
 msgid "cannot display a value of type anynonarray"
 msgstr "无法显示一个anynonarray类型的值"
 
-#: utils/adt/pseudotypes.c:517
+#: utils/adt/pseudotypes.c:544
 #, c-format
 msgid "cannot accept a value of a shell type"
 msgstr "无法接受一个shell类型的值"
 
-#: utils/adt/pseudotypes.c:530
+#: utils/adt/pseudotypes.c:557
 #, c-format
 msgid "cannot display a value of a shell type"
 msgstr "无法显示一个shell类型值"
 
-#: utils/adt/pseudotypes.c:552 utils/adt/pseudotypes.c:577
-#: utils/adt/pseudotypes.c:605 utils/adt/pseudotypes.c:633
+#: utils/adt/pseudotypes.c:579 utils/adt/pseudotypes.c:604
+#: utils/adt/pseudotypes.c:632 utils/adt/pseudotypes.c:660
 #, c-format
-#| msgid "cannot accept a value of type any"
 msgid "cannot accept a value of type %s"
 msgstr "无法接受一个类型%s的值"
 
-#: utils/adt/pseudotypes.c:620 utils/adt/pseudotypes.c:646
+#: utils/adt/pseudotypes.c:647 utils/adt/pseudotypes.c:673
 #, c-format
-#| msgid "cannot accept a value of type any"
 msgid "cannot output a value of type %s"
 msgstr "无法输出一个类型%s的值"
 
@@ -20137,7 +20739,7 @@ msgstr "太多逗号."
 msgid "Junk after right parenthesis or bracket."
 msgstr "右大括号或右中括弧后的内容无用."
 
-#: utils/adt/regexp.c:285 utils/adt/regexp.c:1288 utils/adt/varlena.c:3588
+#: utils/adt/regexp.c:285 utils/adt/regexp.c:1288 utils/adt/varlena.c:3829
 #, c-format
 msgid "regular expression failed: %s"
 msgstr "正则表达式失败: %s"
@@ -20162,8 +20764,8 @@ msgstr "多个函数名为 \"%s\""
 msgid "more than one operator named %s"
 msgstr "多个操作符名为 %s"
 
-#: utils/adt/regproc.c:779 utils/adt/regproc.c:820 utils/adt/regproc.c:1962
-#: utils/adt/ruleutils.c:8154 utils/adt/ruleutils.c:8279
+#: utils/adt/regproc.c:779 utils/adt/regproc.c:820 utils/adt/regproc.c:2006
+#: utils/adt/ruleutils.c:8173 utils/adt/ruleutils.c:8298
 #, c-format
 msgid "too many arguments"
 msgstr "太多参数"
@@ -20173,28 +20775,29 @@ msgstr "太多参数"
 msgid "Provide two argument types for operator."
 msgstr "为操作符提供两个参数类型."
 
-#: utils/adt/regproc.c:1797 utils/adt/regproc.c:1802 utils/adt/varlena.c:2859
-#: utils/adt/varlena.c:2864
+#: utils/adt/regproc.c:1594 utils/adt/regproc.c:1618 utils/adt/regproc.c:1715
+#: utils/adt/regproc.c:1739 utils/adt/regproc.c:1841 utils/adt/regproc.c:1846
+#: utils/adt/varlena.c:3084 utils/adt/varlena.c:3089
 #, c-format
 msgid "invalid name syntax"
 msgstr "无效的名字语法"
 
-#: utils/adt/regproc.c:1860
+#: utils/adt/regproc.c:1904
 #, c-format
 msgid "expected a left parenthesis"
 msgstr "需要一个左括弧"
 
-#: utils/adt/regproc.c:1876
+#: utils/adt/regproc.c:1920
 #, c-format
 msgid "expected a right parenthesis"
 msgstr "需要一个右括弧"
 
-#: utils/adt/regproc.c:1895
+#: utils/adt/regproc.c:1939
 #, c-format
 msgid "expected a type name"
 msgstr "需要一个类型名字"
 
-#: utils/adt/regproc.c:1927
+#: utils/adt/regproc.c:1971
 #, c-format
 msgid "improper type name"
 msgstr "不正确的类型名字"
@@ -20259,7 +20862,6 @@ msgstr "键值对(%s)=(%s)没有在表\"%s\"中出现."
 
 #: utils/adt/ri_triggers.c:3324
 #, c-format
-#| msgid "Key (%s)=(%s) is not present in table \"%s\"."
 msgid "Key is not present in table \"%s\"."
 msgstr "表\"%s\"中没有出现键。"
 
@@ -20277,7 +20879,6 @@ msgstr "键值对(%s)=(%s)仍然是从表\"%s\"引用的."
 
 #: utils/adt/ri_triggers.c:3338
 #, c-format
-#| msgid "Key (%s)=(%s) is still referenced from table \"%s\"."
 msgid "Key is still referenced from table \"%s\"."
 msgstr "表\"%s\"中仍然有对键的引用。"
 
@@ -20339,17 +20940,17 @@ msgstr "在记录列%3$d上不能对不相似的列类型%1$s和%2$s进行比较
 msgid "cannot compare record types with different numbers of columns"
 msgstr "无法比较不同元素类型的数组"
 
-#: utils/adt/ruleutils.c:4147
+#: utils/adt/ruleutils.c:4153
 #, c-format
 msgid "rule \"%s\" has unsupported event type %d"
 msgstr "规则 \"%s\" 不支持事件类型 %d"
 
-#: utils/adt/selfuncs.c:5260
+#: utils/adt/selfuncs.c:5314
 #, c-format
 msgid "case insensitive matching not supported on type bytea"
 msgstr "在类型bytea上不支持对不区分大小写的匹配"
 
-#: utils/adt/selfuncs.c:5363
+#: utils/adt/selfuncs.c:5417
 #, c-format
 msgid "regular-expression matching not supported on type bytea"
 msgstr "在 bytea 类型上不支持正则表达式匹配"
@@ -20369,129 +20970,134 @@ msgstr "TIMESTAMP(%d)%s 精确度不能为负数"
 msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d"
 msgstr "将TIMESTAMP(%d)%s减少到最大允许值,%d"
 
-#: utils/adt/timestamp.c:170 utils/adt/timestamp.c:444
+#: utils/adt/timestamp.c:170 utils/adt/timestamp.c:445
 #, c-format
 msgid "timestamp out of range: \"%s\""
 msgstr "时间戳超出范围: \"%s\""
 
-#: utils/adt/timestamp.c:188 utils/adt/timestamp.c:462
-#: utils/adt/timestamp.c:917
+#: utils/adt/timestamp.c:188 utils/adt/timestamp.c:463
+#: utils/adt/timestamp.c:993
 #, c-format
 msgid "date/time value \"%s\" is no longer supported"
 msgstr "日期/时间值 \"%s\" 不再被支持"
 
-#: utils/adt/timestamp.c:258
+#: utils/adt/timestamp.c:258 utils/adt/timestamp.c:754
 #, c-format
 msgid "timestamp cannot be NaN"
 msgstr "时间戳不能是NaN"
 
-#: utils/adt/timestamp.c:379
+#: utils/adt/timestamp.c:380
 #, c-format
 msgid "timestamp(%d) precision must be between %d and %d"
 msgstr "timestamp(%d) 的精确度必需在 %d 到 %d 之间"
 
-#: utils/adt/timestamp.c:512
+#: utils/adt/timestamp.c:513
 #, c-format
 msgid "invalid input syntax for numeric time zone: \"%s\""
 msgstr "数字时区使用了无效的输入语法: \"%s\""
 
-#: utils/adt/timestamp.c:514
+#: utils/adt/timestamp.c:515
 #, c-format
 msgid "Numeric time zones must have \"-\" or \"+\" as first character."
 msgstr "数字时区必须是以\"-\" or \"+\" 作为第一个字符."
 
-#: utils/adt/timestamp.c:527
+#: utils/adt/timestamp.c:528
 #, c-format
 msgid "numeric time zone \"%s\" out of range"
 msgstr "数字时区\"%s\"超出范围"
 
-#: utils/adt/timestamp.c:630 utils/adt/timestamp.c:640
+#: utils/adt/timestamp.c:631 utils/adt/timestamp.c:641
+#: utils/adt/timestamp.c:653
 #, c-format
 msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g"
 msgstr "时间戳超出范围:%d-%02d-%02d %d:%02d:%02g"
 
-#: utils/adt/timestamp.c:911 utils/adt/timestamp.c:1482
-#: utils/adt/timestamp.c:1985 utils/adt/timestamp.c:3125
-#: utils/adt/timestamp.c:3130 utils/adt/timestamp.c:3135
-#: utils/adt/timestamp.c:3185 utils/adt/timestamp.c:3192
-#: utils/adt/timestamp.c:3199 utils/adt/timestamp.c:3219
-#: utils/adt/timestamp.c:3226 utils/adt/timestamp.c:3233
-#: utils/adt/timestamp.c:3262 utils/adt/timestamp.c:3269
-#: utils/adt/timestamp.c:3314 utils/adt/timestamp.c:3605
-#: utils/adt/timestamp.c:3734 utils/adt/timestamp.c:4125
+#: utils/adt/timestamp.c:770 utils/adt/timestamp.c:776
+#: utils/adt/timestamp.c:791
+#, c-format
+#| msgid "timestamp out of range: \"%s\""
+msgid "timestamp out of range: \"%g\""
+msgstr "时间戳超出范围: \"%g\""
+
+#: utils/adt/timestamp.c:987 utils/adt/timestamp.c:1558
+#: utils/adt/timestamp.c:2068 utils/adt/timestamp.c:3220
+#: utils/adt/timestamp.c:3225 utils/adt/timestamp.c:3230
+#: utils/adt/timestamp.c:3280 utils/adt/timestamp.c:3287
+#: utils/adt/timestamp.c:3294 utils/adt/timestamp.c:3314
+#: utils/adt/timestamp.c:3321 utils/adt/timestamp.c:3328
+#: utils/adt/timestamp.c:3358 utils/adt/timestamp.c:3366
+#: utils/adt/timestamp.c:3411 utils/adt/timestamp.c:3751
+#: utils/adt/timestamp.c:3880 utils/adt/timestamp.c:4271
 #, c-format
 msgid "interval out of range"
 msgstr "interval 超出范围"
 
-#: utils/adt/timestamp.c:1052 utils/adt/timestamp.c:1085
+#: utils/adt/timestamp.c:1128 utils/adt/timestamp.c:1161
 #, c-format
 msgid "invalid INTERVAL type modifier"
 msgstr "无效的INTERVAL类型修改器"
 
-#: utils/adt/timestamp.c:1068
+#: utils/adt/timestamp.c:1144
 #, c-format
 msgid "INTERVAL(%d) precision must not be negative"
 msgstr "INTERVAL(%d) 的精确度不能为负数"
 
-#: utils/adt/timestamp.c:1074
+#: utils/adt/timestamp.c:1150
 #, c-format
 msgid "INTERVAL(%d) precision reduced to maximum allowed, %d"
 msgstr "将INTERVAL(%d)减少到最大允许值,%d"
 
-#: utils/adt/timestamp.c:1426
+#: utils/adt/timestamp.c:1502
 #, c-format
 msgid "interval(%d) precision must be between %d and %d"
 msgstr "interval(%d) 的精确度必需在 %d 到 %d 之间"
 
-#: utils/adt/timestamp.c:2714
+#: utils/adt/timestamp.c:2797
 #, c-format
 msgid "cannot subtract infinite timestamps"
 msgstr "无法减去无限长的时间戳"
 
-#: utils/adt/timestamp.c:3860 utils/adt/timestamp.c:4486
-#: utils/adt/timestamp.c:4506
+#: utils/adt/timestamp.c:4006 utils/adt/timestamp.c:4531
+#: utils/adt/timestamp.c:4715 utils/adt/timestamp.c:4740
 #, c-format
 msgid "timestamp units \"%s\" not supported"
 msgstr "不支持时间戳单位 \"%s\""
 
-#: utils/adt/timestamp.c:3874 utils/adt/timestamp.c:4516
+#: utils/adt/timestamp.c:4020 utils/adt/timestamp.c:4485
+#: utils/adt/timestamp.c:4750
 #, c-format
 msgid "timestamp units \"%s\" not recognized"
 msgstr "时间戳单位 \"%s\" 不被认可"
 
-#: utils/adt/timestamp.c:4014 utils/adt/timestamp.c:4697
-#: utils/adt/timestamp.c:4718
+#: utils/adt/timestamp.c:4160 utils/adt/timestamp.c:4526
+#: utils/adt/timestamp.c:4937 utils/adt/timestamp.c:4963
 #, c-format
 msgid "timestamp with time zone units \"%s\" not supported"
 msgstr "不支持带时区的时间戳单位 \"%s\""
 
-#: utils/adt/timestamp.c:4031 utils/adt/timestamp.c:4727
+#: utils/adt/timestamp.c:4177 utils/adt/timestamp.c:4480
+#: utils/adt/timestamp.c:4972
 #, c-format
 msgid "timestamp with time zone units \"%s\" not recognized"
 msgstr "带时区的时间戳单位 \"%s\" 不被认可"
 
-#: utils/adt/timestamp.c:4112
+#: utils/adt/timestamp.c:4258
 #, c-format
 msgid ""
 "interval units \"%s\" not supported because months usually have fractional "
 "weeks"
 msgstr "时间间隔的单位 \"%s\"不支持使用,因为月以周来计算时,通常带有分数值"
 
-#: utils/adt/timestamp.c:4118 utils/adt/timestamp.c:4833
+#: utils/adt/timestamp.c:4264 utils/adt/timestamp.c:5078
 #, c-format
 msgid "interval units \"%s\" not supported"
 msgstr "不支持 \"%s\" 的 interval 单位"
 
-#: utils/adt/timestamp.c:4134 utils/adt/timestamp.c:4860
+#: utils/adt/timestamp.c:4280 utils/adt/timestamp.c:5105
 #, c-format
 msgid "interval units \"%s\" not recognized"
 msgstr "interval 单位 \"%s\" 不被认可"
 
-#: utils/adt/timestamp.c:5024 utils/adt/timestamp.c:5254
-#, c-format
-msgid "could not convert to time zone \"%s\""
-msgstr "无法转换到时间区域\"%s\""
-
 #: utils/adt/trigfuncs.c:42
 #, c-format
 msgid "suppress_redundant_updates_trigger: must be called as trigger"
@@ -20517,70 +21123,80 @@ msgstr "suppress_redundant_updates_trigger: 必须为每条记录调用"
 msgid "gtsvector_in not implemented"
 msgstr "没有实现gtsvector_in"
 
-#: utils/adt/tsquery.c:155 utils/adt/tsquery.c:390
-#: utils/adt/tsvector_parser.c:133
+#: utils/adt/tsquery.c:166
+#, c-format
+msgid "distance in phrase operator should not be greater than %d"
+msgstr "短语操作符中的距离不应该大于 %d"
+
+#: utils/adt/tsquery.c:254 utils/adt/tsquery.c:513
+#: utils/adt/tsvector_parser.c:141
 #, c-format
 msgid "syntax error in tsquery: \"%s\""
 msgstr "在tsquery中的语法错误:\"%s\""
 
-#: utils/adt/tsquery.c:176
+#: utils/adt/tsquery.c:275
 #, c-format
 msgid "no operand in tsquery: \"%s\""
 msgstr "在tsquery中没有操作数:\"%s\""
 
-#: utils/adt/tsquery.c:248
+#: utils/adt/tsquery.c:358
 #, c-format
 msgid "value is too big in tsquery: \"%s\""
 msgstr "在tsquery中的值太大了:\"%s\""
 
-#: utils/adt/tsquery.c:253
+#: utils/adt/tsquery.c:363
 #, c-format
 msgid "operand is too long in tsquery: \"%s\""
 msgstr "在tsquery中操作数太长了: \"%s\""
 
-#: utils/adt/tsquery.c:281
+#: utils/adt/tsquery.c:391
 #, c-format
 msgid "word is too long in tsquery: \"%s\""
 msgstr "在tsquery中的词太长了:\"%s\" "
 
-#: utils/adt/tsquery.c:510
+#: utils/adt/tsquery.c:648
 #, c-format
 msgid "text-search query doesn't contain lexemes: \"%s\""
 msgstr "文本搜索查询没有包含词汇单位:\"%s\""
 
-#: utils/adt/tsquery.c:521 utils/adt/tsquery_util.c:340
+#: utils/adt/tsquery.c:659 utils/adt/tsquery_util.c:347
 #, c-format
 msgid "tsquery is too large"
 msgstr "tsquery查询太大"
 
-#: utils/adt/tsquery_cleanup.c:287
+#: utils/adt/tsquery_cleanup.c:580
 #, c-format
 msgid ""
 "text-search query contains only stop words or doesn't contain lexemes, "
 "ignored"
 msgstr "文本搜索查询只包含结束词或者不包含词汇单位, 被忽略"
 
-#: utils/adt/tsquery_rewrite.c:293
+#: utils/adt/tsquery_op.c:122
+#, c-format
+msgid "distance in phrase operator should be non-negative and less than %d"
+msgstr "短语操作符中的距离应该为非负并且小于 %d"
+
+#: utils/adt/tsquery_rewrite.c:292
 #, c-format
 msgid "ts_rewrite query must return two tsquery columns"
 msgstr "ts_rewrite查询必须返回两个tsquery字段的记录"
 
-#: utils/adt/tsrank.c:410
+#: utils/adt/tsrank.c:412
 #, c-format
 msgid "array of weight must be one-dimensional"
 msgstr "权重数组必须为空或者一维数组"
 
-#: utils/adt/tsrank.c:415
+#: utils/adt/tsrank.c:417
 #, c-format
 msgid "array of weight is too short"
 msgstr "权重数组太短了."
 
-#: utils/adt/tsrank.c:420
+#: utils/adt/tsrank.c:422
 #, c-format
 msgid "array of weight must not contain nulls"
 msgstr "权重数组不能包含空值"
 
-#: utils/adt/tsrank.c:429 utils/adt/tsrank.c:756
+#: utils/adt/tsrank.c:431 utils/adt/tsrank.c:862
 #, c-format
 msgid "weight out of range"
 msgstr "权重 超出范围"
@@ -20595,84 +21211,95 @@ msgstr "词太长了(%ld字节, 最大 %ld 字节)"
 msgid "string is too long for tsvector (%ld bytes, max %ld bytes)"
 msgstr "字符串对于tsvector来说太长了(当前 %ld字节, 最大允许值是%ld字节)"
 
-#: utils/adt/tsvector_op.c:1173
+#: utils/adt/tsvector_op.c:317 utils/adt/tsvector_op.c:565
+#: utils/adt/tsvector_op.c:731
+#, c-format
+#| msgid "array must not contain nulls"
+msgid "lexeme array may not contain nulls"
+msgstr "词位数组不能包含空值"
+
+#: utils/adt/tsvector_op.c:789
+#, c-format
+#| msgid "array must not contain nulls"
+msgid "weight array may not contain nulls"
+msgstr "权重数组不能包含空值"
+
+#: utils/adt/tsvector_op.c:1976
 #, c-format
 msgid "ts_stat query must return one tsvector column"
 msgstr "ts_stat查询必须在tsvector类型列上返回"
 
-#: utils/adt/tsvector_op.c:1353
+#: utils/adt/tsvector_op.c:2158
 #, c-format
 msgid "tsvector column \"%s\" does not exist"
 msgstr "tsvector字段 \"%s\" 不存在"
 
-#: utils/adt/tsvector_op.c:1359
+#: utils/adt/tsvector_op.c:2164
 #, c-format
 msgid "column \"%s\" is not of tsvector type"
 msgstr "列\"%s\"不属于tsvector类型"
 
-#: utils/adt/tsvector_op.c:1371
+#: utils/adt/tsvector_op.c:2176
 #, c-format
 msgid "configuration column \"%s\" does not exist"
 msgstr "配置字段 \"%s\" 不存在"
 
-#: utils/adt/tsvector_op.c:1377
+#: utils/adt/tsvector_op.c:2182
 #, c-format
 msgid "column \"%s\" is not of regconfig type"
 msgstr "列\"%s\"不属于regconfig类型"
 
-#: utils/adt/tsvector_op.c:1384
+#: utils/adt/tsvector_op.c:2189
 #, c-format
 msgid "configuration column \"%s\" must not be null"
 msgstr "配置列\"%s\"不能为空"
 
-#: utils/adt/tsvector_op.c:1397
+#: utils/adt/tsvector_op.c:2202
 #, c-format
 msgid "text search configuration name \"%s\" must be schema-qualified"
 msgstr "文本搜索配置名称\"%s\"必须是模式限定的。"
 
-#: utils/adt/tsvector_op.c:1422
+#: utils/adt/tsvector_op.c:2227
 #, c-format
 msgid "column \"%s\" is not of a character type"
 msgstr "字段 \"%s\"不属于字符类型"
 
-#: utils/adt/tsvector_parser.c:134
+#: utils/adt/tsvector_parser.c:142
 #, c-format
 msgid "syntax error in tsvector: \"%s\""
 msgstr "在tsvector中的语法错误:\"%s\" "
 
-#: utils/adt/tsvector_parser.c:199
+#: utils/adt/tsvector_parser.c:207
 #, c-format
 msgid "there is no escaped character: \"%s\""
 msgstr "那里没有转义的字符: \"%s\""
 
-#: utils/adt/tsvector_parser.c:316
+#: utils/adt/tsvector_parser.c:324
 #, c-format
 msgid "wrong position info in tsvector: \"%s\""
 msgstr "在tsvector中的错误位置信息: \"%s\""
 
 #: utils/adt/txid.c:339
 #, c-format
-#| msgid "invalid input syntax for type tid: \"%s\""
 msgid "invalid input syntax for type txid_snapshot: \"%s\""
 msgstr "类型txid_snapshot的无效输入语法:\"%s\""
 
 #: utils/adt/txid.c:534
 #, c-format
-#| msgid "invalid external \"cidr\" value"
 msgid "invalid external txid_snapshot data"
 msgstr "无效的外部txid_snapshot数据"
 
-#: utils/adt/uuid.c:128
+#: utils/adt/uuid.c:145
 #, c-format
 msgid "invalid input syntax for uuid: \"%s\""
 msgstr "uuid的输入语法无效:\"%s\" "
 
-#: utils/adt/varbit.c:57 utils/adt/varchar.c:49
+#: utils/adt/varbit.c:57 utils/adt/varchar.c:50
 #, c-format
 msgid "length for type %s must be at least 1"
 msgstr "类型 %s 的长度至少为 1"
 
-#: utils/adt/varbit.c:62 utils/adt/varchar.c:53
+#: utils/adt/varbit.c:62 utils/adt/varchar.c:54
 #, c-format
 msgid "length for type %s cannot exceed %d"
 msgstr "类型 %s 的长度不能超过 %d"
@@ -20707,9 +21334,9 @@ msgstr "无效的外部位串长度"
 msgid "bit string too long for type bit varying(%d)"
 msgstr "bit字符串对于可变bit类型(%d)来说太长了."
 
-#: utils/adt/varbit.c:1066 utils/adt/varbit.c:1168 utils/adt/varlena.c:832
-#: utils/adt/varlena.c:896 utils/adt/varlena.c:1040 utils/adt/varlena.c:2510
-#: utils/adt/varlena.c:2577
+#: utils/adt/varbit.c:1066 utils/adt/varbit.c:1168 utils/adt/varlena.c:842
+#: utils/adt/varlena.c:906 utils/adt/varlena.c:1050 utils/adt/varlena.c:2735
+#: utils/adt/varlena.c:2802
 #, c-format
 msgid "negative substring length not allowed"
 msgstr "不允许子串长度为负数"
@@ -20734,78 +21361,91 @@ msgstr "无法为不同大小的字符串进行异或 (XOR) 位运算"
 msgid "bit index %d out of valid range (0..%d)"
 msgstr "比特索引 %d 超出有效范围 (0..%d)"
 
-#: utils/adt/varbit.c:1802 utils/adt/varlena.c:2777
+#: utils/adt/varbit.c:1802 utils/adt/varlena.c:3002
 #, c-format
 msgid "new bit must be 0 or 1"
 msgstr "新的位必须为 0 或 1"
 
-#: utils/adt/varchar.c:153 utils/adt/varchar.c:306
+#: utils/adt/varchar.c:154 utils/adt/varchar.c:307
 #, c-format
 msgid "value too long for type character(%d)"
 msgstr "对于字符类型来说这个值太长了(%d)"
 
-#: utils/adt/varchar.c:468 utils/adt/varchar.c:622
+#: utils/adt/varchar.c:469 utils/adt/varchar.c:623
 #, c-format
 msgid "value too long for type character varying(%d)"
 msgstr "对于可变字符类型来说,值太长了(%d)"
 
-#: utils/adt/varlena.c:1410 utils/adt/varlena.c:1799
+#: utils/adt/varlena.c:1420 utils/adt/varlena.c:1825
 #, c-format
 msgid "could not determine which collation to use for string comparison"
 msgstr "无法确定字符串比较中使用哪种排序规则"
 
-#: utils/adt/varlena.c:1468 utils/adt/varlena.c:1481
+#: utils/adt/varlena.c:1478 utils/adt/varlena.c:1491
 #, c-format
 msgid "could not convert string to UTF-16: error code %lu"
 msgstr "无法将字符串转换为UTF-16编码: 错误码 %lu"
 
-#: utils/adt/varlena.c:1496
+#: utils/adt/varlena.c:1506
 #, c-format
 msgid "could not compare Unicode strings: %m"
 msgstr "无法比较Unicode类型字符串: %m"
 
-#: utils/adt/varlena.c:2655 utils/adt/varlena.c:2686 utils/adt/varlena.c:2722
-#: utils/adt/varlena.c:2765
+#: utils/adt/varlena.c:2880 utils/adt/varlena.c:2911 utils/adt/varlena.c:2947
+#: utils/adt/varlena.c:2990
 #, c-format
 msgid "index %d out of valid range, 0..%d"
 msgstr "索引 %d 超出有效范围, 0..%d"
 
-#: utils/adt/varlena.c:3684
+#: utils/adt/varlena.c:3925
 #, c-format
 msgid "field position must be greater than zero"
 msgstr "字段的位置必须大于0"
 
-#: utils/adt/varlena.c:4563
+#: utils/adt/varlena.c:4804
+#, c-format
+#| msgid "unterminated format specifier"
+msgid "unterminated format() type specifier"
+msgstr "未结束的 format() 类型说明符"
+
+#: utils/adt/varlena.c:4805 utils/adt/varlena.c:4939 utils/adt/varlena.c:5060
 #, c-format
-msgid "unterminated format specifier"
-msgstr "未结束的格式标识器"
+msgid "For a single \"%%\" use \"%%%%\"."
+msgstr "对于单个 \"%%\" 应使用 \"%%%%\"。"
 
-#: utils/adt/varlena.c:4695 utils/adt/varlena.c:4815
+#: utils/adt/varlena.c:4937 utils/adt/varlena.c:5058
 #, c-format
-msgid "unrecognized conversion type specifier \"%c\""
-msgstr "不能识别的转换类型标识符 \"%c\""
+#| msgid "unrecognized conversion type specifier \"%c\""
+msgid "unrecognized format() type specifier \"%c\""
+msgstr "未识别的 format() 类型说明符 \"%c\""
 
-#: utils/adt/varlena.c:4707 utils/adt/varlena.c:4764
+#: utils/adt/varlena.c:4950
+#, c-format
+#| msgid "too few arguments for format"
+msgid "too few arguments for format()"
+msgstr "format() 的参数太少"
+
+#: utils/adt/varlena.c:5007
 #, c-format
 msgid "too few arguments for format"
 msgstr "格式化的参数太少"
 
-#: utils/adt/varlena.c:4858 utils/adt/varlena.c:5041
+#: utils/adt/varlena.c:5102 utils/adt/varlena.c:5285
 #, c-format
 msgid "number is out of range"
 msgstr "数字超出范围"
 
-#: utils/adt/varlena.c:4922 utils/adt/varlena.c:4950
+#: utils/adt/varlena.c:5166 utils/adt/varlena.c:5194
 #, c-format
 msgid "format specifies argument 0, but arguments are numbered from 1"
 msgstr "格式指定了参数 0, 但参数值序号从 1开始记起"
 
-#: utils/adt/varlena.c:4943
+#: utils/adt/varlena.c:5187
 #, c-format
 msgid "width argument position must be ended by \"$\""
 msgstr "width参数位置必须以\"$\"结束"
 
-#: utils/adt/varlena.c:4988
+#: utils/adt/varlena.c:5232
 #, c-format
 msgid "null values cannot be formatted as an SQL identifier"
 msgstr "null值不能格式化为SQL标识符"
@@ -20966,38 +21606,38 @@ msgstr "URI或者命名空间名称不可为空."
 msgid "could not register XML namespace with name \"%s\" and URI \"%s\""
 msgstr "无法以名称\"%s\"和URI\"%s\"来注册XML命名空间"
 
-#: utils/cache/lsyscache.c:2515 utils/cache/lsyscache.c:2548
-#: utils/cache/lsyscache.c:2581 utils/cache/lsyscache.c:2614
+#: utils/cache/lsyscache.c:2580 utils/cache/lsyscache.c:2613
+#: utils/cache/lsyscache.c:2646 utils/cache/lsyscache.c:2679
 #, c-format
 msgid "type %s is only a shell"
 msgstr "类型 %s 只是一个 shell"
 
-#: utils/cache/lsyscache.c:2520
+#: utils/cache/lsyscache.c:2585
 #, c-format
 msgid "no input function available for type %s"
 msgstr "没有有效的 %s 类型输入函数"
 
-#: utils/cache/lsyscache.c:2553
+#: utils/cache/lsyscache.c:2618
 #, c-format
 msgid "no output function available for type %s"
 msgstr "没有有效的 %s 类型输出函数"
 
-#: utils/cache/plancache.c:725
+#: utils/cache/plancache.c:745
 #, c-format
 msgid "cached plan must not change result type"
 msgstr "已缓冲的计划不能改变结果类型"
 
-#: utils/cache/relcache.c:5021
+#: utils/cache/relcache.c:5135
 #, c-format
 msgid "could not create relation-cache initialization file \"%s\": %m"
 msgstr "无法创建 relation-cache 初始化文件 \"%s\": %m"
 
-#: utils/cache/relcache.c:5023
+#: utils/cache/relcache.c:5137
 #, c-format
 msgid "Continuing anyway, but there's something wrong."
 msgstr "仍继续, 但肯定有些错误存在."
 
-#: utils/cache/relcache.c:5256
+#: utils/cache/relcache.c:5365
 #, c-format
 msgid "could not remove cache file \"%s\": %m"
 msgstr "无法删除缓存文件 \"%s\": %m"
@@ -21042,12 +21682,12 @@ msgstr "无法将关系映射文件\"%s\"的内容刷新到磁盘: %m"
 msgid "could not close relation mapping file \"%s\": %m"
 msgstr "无法关闭关系映射文件\"%s\": %m"
 
-#: utils/cache/typcache.c:1156
+#: utils/cache/typcache.c:1211
 #, c-format
 msgid "type %s is not composite"
 msgstr "类型 %s 不是复合类型"
 
-#: utils/cache/typcache.c:1170
+#: utils/cache/typcache.c:1225
 #, c-format
 msgid "record type has not been registered"
 msgstr "记录类型没有注册"
@@ -21062,189 +21702,189 @@ msgstr "TRAP: ExceptionalCondition: 错误参数\n"
 msgid "TRAP: %s(\"%s\", File: \"%s\", Line: %d)\n"
 msgstr "TRAP: %s(\"%s\", 文件: \"%s\", 行数: %d)\n"
 
-#: utils/error/elog.c:316 utils/error/elog.c:1297
+#: utils/error/elog.c:322 utils/error/elog.c:1306
 #, c-format
 msgid "error occurred at %s:%d before error message processing is available\n"
 msgstr "能得到错误消息处理之前, 错误出现在%s:%d\n"
 
-#: utils/error/elog.c:1864
+#: utils/error/elog.c:1880
 #, c-format
 msgid "could not reopen file \"%s\" as stderr: %m"
 msgstr "无法作为标准错误重新打开文件 \"%s\": %m"
 
-#: utils/error/elog.c:1877
+#: utils/error/elog.c:1893
 #, c-format
 msgid "could not reopen file \"%s\" as stdout: %m"
 msgstr "无法作为标准输出重新打开文件 \"%s\": %m"
 
-#: utils/error/elog.c:2353 utils/error/elog.c:2370 utils/error/elog.c:2386
+#: utils/error/elog.c:2380 utils/error/elog.c:2397 utils/error/elog.c:2413
 msgid "[unknown]"
 msgstr "[未知]"
 
-#: utils/error/elog.c:2825 utils/error/elog.c:3124 utils/error/elog.c:3232
+#: utils/error/elog.c:2872 utils/error/elog.c:3171 utils/error/elog.c:3279
 msgid "missing error text"
 msgstr "缺少错误信息"
 
-#: utils/error/elog.c:2828 utils/error/elog.c:2831 utils/error/elog.c:3235
-#: utils/error/elog.c:3238
+#: utils/error/elog.c:2875 utils/error/elog.c:2878 utils/error/elog.c:3282
+#: utils/error/elog.c:3285
 #, c-format
 msgid " at character %d"
 msgstr " 第 %d 个字符处"
 
-#: utils/error/elog.c:2841 utils/error/elog.c:2848
+#: utils/error/elog.c:2888 utils/error/elog.c:2895
 msgid "DETAIL:  "
 msgstr "详细信息:  "
 
-#: utils/error/elog.c:2855
+#: utils/error/elog.c:2902
 msgid "HINT:  "
 msgstr "提示:  "
 
-#: utils/error/elog.c:2862
+#: utils/error/elog.c:2909
 msgid "QUERY:  "
 msgstr "查询:  "
 
-#: utils/error/elog.c:2869
+#: utils/error/elog.c:2916
 msgid "CONTEXT:  "
 msgstr "上下文:  "
 
-#: utils/error/elog.c:2879
+#: utils/error/elog.c:2926
 #, c-format
 msgid "LOCATION:  %s, %s:%d\n"
 msgstr "位置:  %s, %s:%d\n"
 
-#: utils/error/elog.c:2886
+#: utils/error/elog.c:2933
 #, c-format
 msgid "LOCATION:  %s:%d\n"
 msgstr "位置:  %s:%d\n"
 
-#: utils/error/elog.c:2900
+#: utils/error/elog.c:2947
 msgid "STATEMENT:  "
 msgstr "语句:  "
 
 #. translator: This string will be truncated at 47
 #. characters expanded.
-#: utils/error/elog.c:3353
+#: utils/error/elog.c:3400
 #, c-format
 msgid "operating system error %d"
 msgstr "操作系统错误 %d"
 
-#: utils/error/elog.c:3548
+#: utils/error/elog.c:3595
 msgid "DEBUG"
 msgstr "调试"
 
-#: utils/error/elog.c:3552
+#: utils/error/elog.c:3599
 msgid "LOG"
 msgstr "日志"
 
-#: utils/error/elog.c:3555
+#: utils/error/elog.c:3602
 msgid "INFO"
 msgstr "信息"
 
-#: utils/error/elog.c:3558
+#: utils/error/elog.c:3605
 msgid "NOTICE"
 msgstr "注意"
 
-#: utils/error/elog.c:3561
+#: utils/error/elog.c:3608
 msgid "WARNING"
 msgstr "警告"
 
-#: utils/error/elog.c:3564
+#: utils/error/elog.c:3611
 msgid "ERROR"
 msgstr "错误"
 
-#: utils/error/elog.c:3567
+#: utils/error/elog.c:3614
 msgid "FATAL"
 msgstr "致命错误"
 
-#: utils/error/elog.c:3570
+#: utils/error/elog.c:3617
 msgid "PANIC"
 msgstr "比致命错误还过分的错误"
 
-#: utils/fmgr/dfmgr.c:121
+#: utils/fmgr/dfmgr.c:117
 #, c-format
 msgid "could not find function \"%s\" in file \"%s\""
 msgstr "在文件 \"%2$s\" 中无法找到函数 \"%1$s\""
 
-#: utils/fmgr/dfmgr.c:200 utils/fmgr/dfmgr.c:409 utils/fmgr/dfmgr.c:457
+#: utils/fmgr/dfmgr.c:196 utils/fmgr/dfmgr.c:405 utils/fmgr/dfmgr.c:453
 #, c-format
 msgid "could not access file \"%s\": %m"
 msgstr "无法访问文件 \"%s\": %m"
 
-#: utils/fmgr/dfmgr.c:238
+#: utils/fmgr/dfmgr.c:234
 #, c-format
 msgid "could not load library \"%s\": %s"
 msgstr "无法加载库 \"%s\": %s"
 
-#: utils/fmgr/dfmgr.c:270
+#: utils/fmgr/dfmgr.c:266
 #, c-format
 msgid "incompatible library \"%s\": missing magic block"
 msgstr "库\"%s\"不兼容:丢失魔法块"
 
-#: utils/fmgr/dfmgr.c:272
+#: utils/fmgr/dfmgr.c:268
 #, c-format
 msgid "Extension libraries are required to use the PG_MODULE_MAGIC macro."
 msgstr "需要扩展库来使用宏PG_MODULE_MAGIC。"
 
-#: utils/fmgr/dfmgr.c:308
+#: utils/fmgr/dfmgr.c:304
 #, c-format
 msgid "incompatible library \"%s\": version mismatch"
 msgstr "库 \"%s\"不兼容:版本不匹配"
 
-#: utils/fmgr/dfmgr.c:310
+#: utils/fmgr/dfmgr.c:306
 #, c-format
 msgid "Server is version %d.%d, library is version %d.%d."
 msgstr "服务器版本是%d.%d,库的版本是%d.%d."
 
-#: utils/fmgr/dfmgr.c:329
+#: utils/fmgr/dfmgr.c:325
 #, c-format
 msgid "Server has FUNC_MAX_ARGS = %d, library has %d."
 msgstr "服务器有FUNC_MAX_ARGS = %d, 库有%d"
 
-#: utils/fmgr/dfmgr.c:338
+#: utils/fmgr/dfmgr.c:334
 #, c-format
 msgid "Server has INDEX_MAX_KEYS = %d, library has %d."
 msgstr "服务器有INDEX_MAX_KEYS = %d, 库有%d"
 
-#: utils/fmgr/dfmgr.c:347
+#: utils/fmgr/dfmgr.c:343
 #, c-format
 msgid "Server has NAMEDATALEN = %d, library has %d."
 msgstr "服务器有NAMEDATALEN = %d, 库有%d"
 
-#: utils/fmgr/dfmgr.c:356
+#: utils/fmgr/dfmgr.c:352
 #, c-format
 msgid "Server has FLOAT4PASSBYVAL = %s, library has %s."
 msgstr "服务器有FLOAT4PASSBYVAL = %s, 库有%s."
 
-#: utils/fmgr/dfmgr.c:365
+#: utils/fmgr/dfmgr.c:361
 #, c-format
 msgid "Server has FLOAT8PASSBYVAL = %s, library has %s."
 msgstr "服务器有FLOAT8PASSBYVAL = %s, 库有%s."
 
-#: utils/fmgr/dfmgr.c:372
+#: utils/fmgr/dfmgr.c:368
 msgid "Magic block has unexpected length or padding difference."
 msgstr "Magic块带有未期望的长度或者填充的方式不同."
 
-#: utils/fmgr/dfmgr.c:375
+#: utils/fmgr/dfmgr.c:371
 #, c-format
 msgid "incompatible library \"%s\": magic block mismatch"
 msgstr "不兼容的库\"%s\": 魔法块不匹配"
 
-#: utils/fmgr/dfmgr.c:539
+#: utils/fmgr/dfmgr.c:535
 #, c-format
 msgid "access to library \"%s\" is not allowed"
 msgstr "不允许对库 \"%s\"进行访问"
 
-#: utils/fmgr/dfmgr.c:565
+#: utils/fmgr/dfmgr.c:561
 #, c-format
 msgid "invalid macro name in dynamic library path: %s"
 msgstr "动态库路径中无效的宏名字: %s"
 
-#: utils/fmgr/dfmgr.c:605
+#: utils/fmgr/dfmgr.c:601
 #, c-format
 msgid "zero-length component in parameter \"dynamic_library_path\""
 msgstr "在参数\"dynamic_library_path\"的组件长度为零"
 
-#: utils/fmgr/dfmgr.c:624
+#: utils/fmgr/dfmgr.c:620
 #, c-format
 msgid "component in parameter \"dynamic_library_path\" is not an absolute path"
 msgstr "在参数\"dynamic_library_path\"中的组成部分不是绝对路径."
@@ -21291,57 +21931,67 @@ msgstr "没有提供字段别名"
 msgid "could not determine row description for function returning record"
 msgstr "无法确定函数返回记录的行描述"
 
-#: utils/init/miscinit.c:120
+#: utils/init/miscinit.c:121
 #, c-format
 msgid "could not change directory to \"%s\": %m"
 msgstr "无法跳转到目录 \"%s\" 中: %m"
 
-#: utils/init/miscinit.c:441 utils/misc/guc.c:5839
+#: utils/init/miscinit.c:449 utils/misc/guc.c:6012
 #, c-format
 msgid "cannot set parameter \"%s\" within security-restricted operation"
 msgstr "无法在对安全有严格限制的操作中设置参数\"%s\" "
 
-#: utils/init/miscinit.c:522
+#: utils/init/miscinit.c:510
+#, c-format
+msgid "role with OID %u does not exist"
+msgstr "OID为%u的角色不存在"
+
+#: utils/init/miscinit.c:540
 #, c-format
 msgid "role \"%s\" is not permitted to log in"
 msgstr "不允许角色\"%s\" 进行登录"
 
-#: utils/init/miscinit.c:540
+#: utils/init/miscinit.c:558
 #, c-format
 msgid "too many connections for role \"%s\""
 msgstr "由角色\"%s\"发起的连接太多了"
 
-#: utils/init/miscinit.c:600
+#: utils/init/miscinit.c:618
 #, c-format
 msgid "permission denied to set session authorization"
 msgstr "设置会话认证权限不允许"
 
-#: utils/init/miscinit.c:683
+#: utils/init/miscinit.c:701
 #, c-format
 msgid "invalid role OID: %u"
 msgstr "无效的角色OID:%u"
 
-#: utils/init/miscinit.c:813
+#: utils/init/miscinit.c:755
+#, c-format
+msgid "database system is shut down"
+msgstr "数据库系统已关闭"
+
+#: utils/init/miscinit.c:842
 #, c-format
 msgid "could not create lock file \"%s\": %m"
 msgstr "无法创建锁文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:827
+#: utils/init/miscinit.c:856
 #, c-format
 msgid "could not open lock file \"%s\": %m"
 msgstr "无法打开锁文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:833
+#: utils/init/miscinit.c:862
 #, c-format
 msgid "could not read lock file \"%s\": %m"
 msgstr "无法读取锁文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:841
+#: utils/init/miscinit.c:870
 #, c-format
 msgid "lock file \"%s\" is empty"
 msgstr "锁文件 \"%s\" 为空"
 
-#: utils/init/miscinit.c:842
+#: utils/init/miscinit.c:871
 #, c-format
 msgid ""
 "Either another server is starting, or the lock file is the remnant of a "
@@ -21349,37 +21999,37 @@ msgid ""
 msgstr ""
 "或者另一个服务正在启动,或者锁文件是因为前一次服务器启动崩溃时产生导致的."
 
-#: utils/init/miscinit.c:889
+#: utils/init/miscinit.c:918
 #, c-format
 msgid "lock file \"%s\" already exists"
 msgstr "锁文件 \"%s\" 已经存在"
 
-#: utils/init/miscinit.c:893
+#: utils/init/miscinit.c:922
 #, c-format
 msgid "Is another postgres (PID %d) running in data directory \"%s\"?"
 msgstr "是否其它 postgres (PID %d) 运行在数据目录 \"%s\"?"
 
-#: utils/init/miscinit.c:895
+#: utils/init/miscinit.c:924
 #, c-format
 msgid "Is another postmaster (PID %d) running in data directory \"%s\"?"
 msgstr "是否其它 postmaster (PID %d) 运行在数据目录 \"%s\"?"
 
-#: utils/init/miscinit.c:898
+#: utils/init/miscinit.c:927
 #, c-format
 msgid "Is another postgres (PID %d) using socket file \"%s\"?"
 msgstr "是否其它 postgres (PID %d) 使用套接字文件 \"%s\"?"
 
-#: utils/init/miscinit.c:900
+#: utils/init/miscinit.c:929
 #, c-format
 msgid "Is another postmaster (PID %d) using socket file \"%s\"?"
 msgstr "是否其它 postmaster (PID %d) 使用套接字文件 \"%s\"?"
 
-#: utils/init/miscinit.c:936
+#: utils/init/miscinit.c:965
 #, c-format
 msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use"
 msgstr "先前存在的共享内存块 (key %lu, ID %lu) 仍在使用中"
 
-#: utils/init/miscinit.c:939
+#: utils/init/miscinit.c:968
 #, c-format
 msgid ""
 "If you're sure there are no old server processes still running, remove the "
@@ -21387,74 +22037,72 @@ msgid ""
 msgstr ""
 "如果你确认没有旧的服务器进程在运行, 删除共享内存块,或者只删除文件 \"%s\"."
 
-#: utils/init/miscinit.c:955
+#: utils/init/miscinit.c:984
 #, c-format
 msgid "could not remove old lock file \"%s\": %m"
 msgstr "无法删除旧的锁文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:957
+#: utils/init/miscinit.c:986
 #, c-format
 msgid ""
 "The file seems accidentally left over, but it could not be removed. Please "
 "remove the file by hand and try again."
 msgstr "文件像是意外留下的, 但是不能删除它. 请手工删除此文件, 然后再重试一次."
 
-#: utils/init/miscinit.c:993 utils/init/miscinit.c:1004
-#: utils/init/miscinit.c:1014
+#: utils/init/miscinit.c:1022 utils/init/miscinit.c:1033
+#: utils/init/miscinit.c:1043
 #, c-format
 msgid "could not write lock file \"%s\": %m"
 msgstr "无法写入锁文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:1143 utils/init/miscinit.c:1272 utils/misc/guc.c:8578
+#: utils/init/miscinit.c:1172 utils/init/miscinit.c:1301 utils/misc/guc.c:8806
 #, c-format
 msgid "could not read from file \"%s\": %m"
 msgstr "无法读取文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:1262
+#: utils/init/miscinit.c:1291
 #, c-format
-#| msgid "could not open file \"%s\": %m"
 msgid "could not open file \"%s\": %m; continuing anyway"
 msgstr "无法打开文件\"%s\":%m;仍然继续"
 
-#: utils/init/miscinit.c:1285
+#: utils/init/miscinit.c:1314
 #, c-format
-#| msgid "archive file \"%s\" has wrong size: %lu instead of %lu"
 msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld"
 msgstr "锁文件\"%s\"包含错误的PID:应该是%ld而不是%ld"
 
-#: utils/init/miscinit.c:1327 utils/init/miscinit.c:1340
+#: utils/init/miscinit.c:1356 utils/init/miscinit.c:1369
 #, c-format
 msgid "\"%s\" is not a valid data directory"
 msgstr "\"%s\" 不是一个有效的数据目录"
 
-#: utils/init/miscinit.c:1329
+#: utils/init/miscinit.c:1358
 #, c-format
 msgid "File \"%s\" is missing."
 msgstr "文件 \"%s\" 丢失."
 
-#: utils/init/miscinit.c:1342
+#: utils/init/miscinit.c:1371
 #, c-format
 msgid "File \"%s\" does not contain valid data."
 msgstr "文件 \"%s\" 没有包含有效数据."
 
-#: utils/init/miscinit.c:1344
+#: utils/init/miscinit.c:1373
 #, c-format
 msgid "You might need to initdb."
 msgstr "您需要初始化数据库 (initdb)."
 
-#: utils/init/miscinit.c:1352
+#: utils/init/miscinit.c:1381
 #, c-format
 msgid ""
 "The data directory was initialized by PostgreSQL version %ld.%ld, which is "
 "not compatible with this version %s."
 msgstr "数据目录是以 PostgreSQL 版本 %ld.%ld 初始化的, 它于当前版本 %s 不兼容."
 
-#: utils/init/miscinit.c:1423
+#: utils/init/miscinit.c:1452
 #, c-format
 msgid "loaded library \"%s\""
 msgstr "已加载的库 \"%s\""
 
-#: utils/init/postinit.c:238
+#: utils/init/postinit.c:252
 #, c-format
 msgid ""
 "replication connection authorized: user=%s SSL enabled (protocol=%s, cipher="
@@ -21464,21 +22112,21 @@ msgstr ""
 "%s)"
 
 # help.c:48
-#: utils/init/postinit.c:240 utils/init/postinit.c:254
+#: utils/init/postinit.c:254 utils/init/postinit.c:268
 msgid "off"
 msgstr "关闭"
 
 # help.c:48
-#: utils/init/postinit.c:240 utils/init/postinit.c:254
+#: utils/init/postinit.c:254 utils/init/postinit.c:268
 msgid "on"
 msgstr "开启"
 
-#: utils/init/postinit.c:244
+#: utils/init/postinit.c:258
 #, c-format
 msgid "replication connection authorized: user=%s"
 msgstr "复制连接已经授权: 用户=%s"
 
-#: utils/init/postinit.c:252
+#: utils/init/postinit.c:266
 #, c-format
 msgid ""
 "connection authorized: user=%s database=%s SSL enabled (protocol=%s, cipher="
@@ -21487,48 +22135,48 @@ msgstr ""
 "连接授权: user=%s database=%s SSL 启用 (protocol=%s, cipher=%s, compression="
 "%s)"
 
-#: utils/init/postinit.c:258
+#: utils/init/postinit.c:272
 #, c-format
 msgid "connection authorized: user=%s database=%s"
 msgstr "联接认证: 主机=%s 数据库=%s"
 
-#: utils/init/postinit.c:290
+#: utils/init/postinit.c:304
 #, c-format
 msgid "database \"%s\" has disappeared from pg_database"
 msgstr "关于数据库\"%s\"的记录在系统目录视图pg_database中不存在"
 
-#: utils/init/postinit.c:292
+#: utils/init/postinit.c:306
 #, c-format
 msgid "Database OID %u now seems to belong to \"%s\"."
 msgstr "数据库OID%u现在属于\"%s\"."
 
-#: utils/init/postinit.c:312
+#: utils/init/postinit.c:326
 #, c-format
 msgid "database \"%s\" is not currently accepting connections"
 msgstr "数据库 \"%s\" 当前不接受联接"
 
-#: utils/init/postinit.c:325
+#: utils/init/postinit.c:339
 #, c-format
 msgid "permission denied for database \"%s\""
 msgstr "访问数据库\"%s\"的权限不够"
 
-#: utils/init/postinit.c:326
+#: utils/init/postinit.c:340
 #, c-format
 msgid "User does not have CONNECT privilege."
 msgstr "用户没有CONNECT权限."
 
 # command.c:981
-#: utils/init/postinit.c:343
+#: utils/init/postinit.c:357
 #, c-format
 msgid "too many connections for database \"%s\""
 msgstr "到数据库 \"%s\"的连接太多了"
 
-#: utils/init/postinit.c:365 utils/init/postinit.c:372
+#: utils/init/postinit.c:379 utils/init/postinit.c:386
 #, c-format
 msgid "database locale is incompatible with operating system"
 msgstr "数据库所使用的语言环境和操作系统的不兼容"
 
-#: utils/init/postinit.c:366
+#: utils/init/postinit.c:380
 #, c-format
 msgid ""
 "The database was initialized with LC_COLLATE \"%s\",  which is not "
@@ -21536,13 +22184,13 @@ msgid ""
 msgstr ""
 "数据库集群是以 LC_COLLATE \"%s\"来初始化的,这个排序规则无法由setlocale()识别"
 
-#: utils/init/postinit.c:368 utils/init/postinit.c:375
+#: utils/init/postinit.c:382 utils/init/postinit.c:389
 #, c-format
 msgid ""
 "Recreate the database with another locale or install the missing locale."
 msgstr "以另外一种语言环境重新创建数据库,或者安装丢失的语言环境."
 
-#: utils/init/postinit.c:373
+#: utils/init/postinit.c:387
 #, c-format
 msgid ""
 "The database was initialized with LC_CTYPE \"%s\",  which is not recognized "
@@ -21551,64 +22199,64 @@ msgstr ""
 "数据库集群是带 LC_CTYPE \"%s\" 初始化的, 但此 LC_CTYPE 是不被 setlocale() 认"
 "可的."
 
-#: utils/init/postinit.c:699
+#: utils/init/postinit.c:715
 #, c-format
 msgid "no roles are defined in this database system"
 msgstr "当前数据库系统中没有定义角色"
 
-#: utils/init/postinit.c:700
+#: utils/init/postinit.c:716
 #, c-format
 msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;."
 msgstr "您应该立即运行 CREATE USER \"%s\" SUPERUSER;."
 
-#: utils/init/postinit.c:736
+#: utils/init/postinit.c:752
 #, c-format
 msgid "new replication connections are not allowed during database shutdown"
 msgstr "在数据库服务器关闭期间不允许接受新的复制连接"
 
-#: utils/init/postinit.c:740
+#: utils/init/postinit.c:756
 #, c-format
 msgid "must be superuser to connect during database shutdown"
 msgstr "只有超级用户才能在数据库关闭期间连接数据库"
 
-#: utils/init/postinit.c:750
+#: utils/init/postinit.c:766
 #, c-format
 msgid "must be superuser to connect in binary upgrade mode"
 msgstr "只有超级用户才能以二进制升级模式进行连接"
 
-#: utils/init/postinit.c:764
+#: utils/init/postinit.c:780
 #, c-format
 msgid ""
 "remaining connection slots are reserved for non-replication superuser "
 "connections"
 msgstr "已保留的连接位置为执行非复制请求的超级用户预留"
 
-#: utils/init/postinit.c:774
+#: utils/init/postinit.c:790
 #, c-format
 msgid "must be superuser or replication role to start walsender"
 msgstr "只有超级用户或者拥有复制角色的用户才能启动 walsender"
 
-#: utils/init/postinit.c:843
+#: utils/init/postinit.c:859
 #, c-format
 msgid "database %u does not exist"
 msgstr "数据库%u不存在"
 
-#: utils/init/postinit.c:929
+#: utils/init/postinit.c:945
 #, c-format
 msgid "It seems to have just been dropped or renamed."
 msgstr "它已经被删除或者改名了."
 
-#: utils/init/postinit.c:947
+#: utils/init/postinit.c:963
 #, c-format
 msgid "The database subdirectory \"%s\" is missing."
 msgstr "数据库子目录 \"%s\" 丢失."
 
-#: utils/init/postinit.c:952
+#: utils/init/postinit.c:968
 #, c-format
 msgid "could not access directory \"%s\": %m"
 msgstr "无法访问目录 \"%s\": %m"
 
-#: utils/mb/conv.c:360 utils/mb/conv.c:546
+#: utils/mb/conv.c:405 utils/mb/conv.c:591
 #, c-format
 msgid "invalid encoding number: %d"
 msgstr "无效编码编号: %d"
@@ -21678,280 +22326,284 @@ msgid ""
 "encoding \"%s\""
 msgstr "编码\"%2$s\"的字符0x%1$s在编码\"%3$s\"没有相对应值"
 
-#: utils/misc/guc.c:535
+#: utils/misc/guc.c:548
 msgid "Ungrouped"
 msgstr "取消组"
 
-#: utils/misc/guc.c:537
+#: utils/misc/guc.c:550
 msgid "File Locations"
 msgstr "文件位置"
 
-#: utils/misc/guc.c:539
+#: utils/misc/guc.c:552
 msgid "Connections and Authentication"
 msgstr "联接和认证"
 
-#: utils/misc/guc.c:541
+#: utils/misc/guc.c:554
 msgid "Connections and Authentication / Connection Settings"
 msgstr "联接和认证 / 联接设置"
 
-#: utils/misc/guc.c:543
+#: utils/misc/guc.c:556
 msgid "Connections and Authentication / Security and Authentication"
 msgstr "联接和认证 / 安全和认证"
 
-#: utils/misc/guc.c:545
+#: utils/misc/guc.c:558
 msgid "Resource Usage"
 msgstr "资源使用"
 
-#: utils/misc/guc.c:547
+#: utils/misc/guc.c:560
 msgid "Resource Usage / Memory"
 msgstr "资源使用 / 内存"
 
-#: utils/misc/guc.c:549
+#: utils/misc/guc.c:562
 msgid "Resource Usage / Disk"
 msgstr "资源使用/磁盘"
 
-#: utils/misc/guc.c:551
+#: utils/misc/guc.c:564
 msgid "Resource Usage / Kernel Resources"
 msgstr "资源使用 / 内核资源"
 
-#: utils/misc/guc.c:553
+#: utils/misc/guc.c:566
 msgid "Resource Usage / Cost-Based Vacuum Delay"
 msgstr "资源使用 / 基于开销的Vacuum延迟"
 
-#: utils/misc/guc.c:555
+#: utils/misc/guc.c:568
 msgid "Resource Usage / Background Writer"
 msgstr "资源使用 / 后台写入进程"
 
-#: utils/misc/guc.c:557
+#: utils/misc/guc.c:570
 msgid "Resource Usage / Asynchronous Behavior"
 msgstr "资源使用 / 异步系统行为"
 
-#: utils/misc/guc.c:559
+#: utils/misc/guc.c:572
 msgid "Write-Ahead Log"
 msgstr "Write-Ahead 日志"
 
-#: utils/misc/guc.c:561
+#: utils/misc/guc.c:574
 msgid "Write-Ahead Log / Settings"
 msgstr "Write-Ahead 日志 / 设置"
 
-#: utils/misc/guc.c:563
+#: utils/misc/guc.c:576
 msgid "Write-Ahead Log / Checkpoints"
 msgstr "Write-Ahead 日志 / Checkpoints"
 
-#: utils/misc/guc.c:565
+#: utils/misc/guc.c:578
 msgid "Write-Ahead Log / Archiving"
 msgstr "Write-Ahead 日志 / 归档"
 
-#: utils/misc/guc.c:567
+#: utils/misc/guc.c:580
 msgid "Replication"
 msgstr "复制"
 
-#: utils/misc/guc.c:569
+#: utils/misc/guc.c:582
 msgid "Replication / Sending Servers"
 msgstr "复制/发送服务器"
 
-#: utils/misc/guc.c:571
+#: utils/misc/guc.c:584
 msgid "Replication / Master Server"
 msgstr "复制/主服务器"
 
-#: utils/misc/guc.c:573
+#: utils/misc/guc.c:586
 msgid "Replication / Standby Servers"
 msgstr "复制 / 备用服务器"
 
-#: utils/misc/guc.c:575
+#: utils/misc/guc.c:588
 msgid "Query Tuning"
 msgstr "查询调整"
 
-#: utils/misc/guc.c:577
+#: utils/misc/guc.c:590
 msgid "Query Tuning / Planner Method Configuration"
 msgstr "查询调整 / 规划器方法配置"
 
-#: utils/misc/guc.c:579
+#: utils/misc/guc.c:592
 msgid "Query Tuning / Planner Cost Constants"
 msgstr "查询调整 / Planner Cost Constants"
 
-#: utils/misc/guc.c:581
+#: utils/misc/guc.c:594
 msgid "Query Tuning / Genetic Query Optimizer"
 msgstr "查询调整 / 基因查询优化"
 
-#: utils/misc/guc.c:583
+#: utils/misc/guc.c:596
 msgid "Query Tuning / Other Planner Options"
 msgstr "查询调整 / 其它规划器选项"
 
-#: utils/misc/guc.c:585
+#: utils/misc/guc.c:598
 msgid "Reporting and Logging"
 msgstr "报告和日志"
 
-#: utils/misc/guc.c:587
+#: utils/misc/guc.c:600
 msgid "Reporting and Logging / Where to Log"
 msgstr "报告和日志 / 日志位置"
 
-#: utils/misc/guc.c:589
+#: utils/misc/guc.c:602
 msgid "Reporting and Logging / When to Log"
 msgstr "报告和日志 / 日志时间"
 
-#: utils/misc/guc.c:591
+#: utils/misc/guc.c:604
 msgid "Reporting and Logging / What to Log"
 msgstr "报告和日志 / 日志内容"
 
-#: utils/misc/guc.c:593
+#: utils/misc/guc.c:606
 msgid "Process Title"
 msgstr "进程标题"
 
-#: utils/misc/guc.c:595
+#: utils/misc/guc.c:608
 msgid "Statistics"
 msgstr "统计信息"
 
-#: utils/misc/guc.c:597
+#: utils/misc/guc.c:610
 msgid "Statistics / Monitoring"
 msgstr "统计信息 / 监控"
 
-#: utils/misc/guc.c:599
+#: utils/misc/guc.c:612
 msgid "Statistics / Query and Index Statistics Collector"
 msgstr "统计信息 / 查询和索引统计收集器"
 
-#: utils/misc/guc.c:601
+#: utils/misc/guc.c:614
 msgid "Autovacuum"
 msgstr "Autovacuum"
 
-#: utils/misc/guc.c:603
+#: utils/misc/guc.c:616
 msgid "Client Connection Defaults"
 msgstr "客户端联接默认"
 
-#: utils/misc/guc.c:605
+#: utils/misc/guc.c:618
 msgid "Client Connection Defaults / Statement Behavior"
 msgstr "客户端联接默认 / 语句动作"
 
-#: utils/misc/guc.c:607
+#: utils/misc/guc.c:620
 msgid "Client Connection Defaults / Locale and Formatting"
 msgstr "客户端联接默认 / 本地化和格式化"
 
-#: utils/misc/guc.c:609
+#: utils/misc/guc.c:622
 msgid "Client Connection Defaults / Shared Library Preloading"
 msgstr "客户端联接默认 / 共享库预先加载"
 
-#: utils/misc/guc.c:611
+#: utils/misc/guc.c:624
 msgid "Client Connection Defaults / Other Defaults"
 msgstr "客户端联接默认 / 其它默认"
 
-#: utils/misc/guc.c:613
+#: utils/misc/guc.c:626
 msgid "Lock Management"
 msgstr "锁管理"
 
-#: utils/misc/guc.c:615
+#: utils/misc/guc.c:628
 msgid "Version and Platform Compatibility"
 msgstr "版本和平台兼容性"
 
-#: utils/misc/guc.c:617
+#: utils/misc/guc.c:630
 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions"
 msgstr "版本和平台兼容性 / 上一个 PostgreSQL 版本"
 
-#: utils/misc/guc.c:619
+#: utils/misc/guc.c:632
 msgid "Version and Platform Compatibility / Other Platforms and Clients"
 msgstr "版本和平台兼容性 / 其它平台和客户端"
 
-#: utils/misc/guc.c:621
+#: utils/misc/guc.c:634
 msgid "Error Handling"
 msgstr "错误处理"
 
-#: utils/misc/guc.c:623
+#: utils/misc/guc.c:636
 msgid "Preset Options"
 msgstr "预置选项"
 
-#: utils/misc/guc.c:625
+#: utils/misc/guc.c:638
 msgid "Customized Options"
 msgstr "定制选项"
 
-#: utils/misc/guc.c:627
+#: utils/misc/guc.c:640
 msgid "Developer Options"
 msgstr "开发人员选项"
 
-#: utils/misc/guc.c:684
+#: utils/misc/guc.c:697
 msgid "Valid units for this parameter are \"kB\", \"MB\", \"GB\", and \"TB\"."
 msgstr "这个参数的有效单位是\"kB\", \"MB\", \"GB\"和\"TB\"."
 
-#: utils/misc/guc.c:711
+#: utils/misc/guc.c:724
 msgid ""
 "Valid units for this parameter are \"ms\", \"s\", \"min\", \"h\", and \"d\"."
 msgstr "这个参数可使用的有效单元是\"ms\", \"s\", \"min\", \"h\", 和\"d\"."
 
-#: utils/misc/guc.c:770
+#: utils/misc/guc.c:783
 msgid "Enables the planner's use of sequential-scan plans."
 msgstr "启用查询计划器的顺序扫描计划."
 
-#: utils/misc/guc.c:779
+#: utils/misc/guc.c:792
 msgid "Enables the planner's use of index-scan plans."
 msgstr "启用查询计划器的索引扫描计划."
 
-#: utils/misc/guc.c:788
+#: utils/misc/guc.c:801
 msgid "Enables the planner's use of index-only-scan plans."
 msgstr "启用查询计划器的仅索引扫描计划."
 
-#: utils/misc/guc.c:797
+#: utils/misc/guc.c:810
 msgid "Enables the planner's use of bitmap-scan plans."
 msgstr "启用查询计划器的位图扫描计划."
 
-#: utils/misc/guc.c:806
+#: utils/misc/guc.c:819
 msgid "Enables the planner's use of TID scan plans."
 msgstr "启用查询计划器的TID扫描计划."
 
-#: utils/misc/guc.c:815
+#: utils/misc/guc.c:828
 msgid "Enables the planner's use of explicit sort steps."
 msgstr "启用查询计划器的显式排序步骤."
 
-#: utils/misc/guc.c:824
+#: utils/misc/guc.c:837
 msgid "Enables the planner's use of hashed aggregation plans."
 msgstr "启用查询计划器的哈希聚合计划."
 
-#: utils/misc/guc.c:833
+#: utils/misc/guc.c:846
 msgid "Enables the planner's use of materialization."
 msgstr "启用查询计划器的实体化使用."
 
-#: utils/misc/guc.c:842
+#: utils/misc/guc.c:855
 msgid "Enables the planner's use of nested-loop join plans."
 msgstr "启用查询计划器的嵌套循环连接计划."
 
-#: utils/misc/guc.c:851
+#: utils/misc/guc.c:864
 msgid "Enables the planner's use of merge join plans."
 msgstr "启用查询计划器的合并连接计划."
 
-#: utils/misc/guc.c:860
+#: utils/misc/guc.c:873
 msgid "Enables the planner's use of hash join plans."
 msgstr "启用查询计划器的哈希连接计划."
 
-#: utils/misc/guc.c:869
+#: utils/misc/guc.c:882
+msgid "Enables use of foreign keys for estimating joins."
+msgstr "启用外键来估计连接。"
+
+#: utils/misc/guc.c:892
 msgid "Enables genetic query optimization."
 msgstr "启用基因查询优化."
 
-#: utils/misc/guc.c:870
+#: utils/misc/guc.c:893
 msgid "This algorithm attempts to do planning without exhaustive searching."
 msgstr "算法企图执行不带有无穷搜索的计划."
 
-#: utils/misc/guc.c:880
+#: utils/misc/guc.c:903
 msgid "Shows whether the current user is a superuser."
 msgstr "显示当前用户是否是超级用户."
 
-#: utils/misc/guc.c:890
+#: utils/misc/guc.c:913
 msgid "Enables advertising the server via Bonjour."
 msgstr "启用通过Bonjour的方式来宣布数据库服务器在网络中的存在."
 
-#: utils/misc/guc.c:899
+#: utils/misc/guc.c:922
 msgid "Collects transaction commit time."
 msgstr "收集事务提交时间。"
 
-#: utils/misc/guc.c:908
+#: utils/misc/guc.c:931
 msgid "Enables SSL connections."
 msgstr "启用 SSL 联接."
 
-#: utils/misc/guc.c:917
+#: utils/misc/guc.c:940
 msgid "Give priority to server ciphersuite order."
 msgstr "为服务器密码组的顺序提供优先."
 
-#: utils/misc/guc.c:926
+#: utils/misc/guc.c:949
 msgid "Forces synchronization of updates to disk."
 msgstr "强制和磁盘同步更新"
 
-#: utils/misc/guc.c:927
+#: utils/misc/guc.c:950
 msgid ""
 "The server will use the fsync() system call in several places to make sure "
 "that updates are physically written to disk. This insures that a database "
@@ -21961,11 +22613,11 @@ msgstr ""
 "服务器将在多个位置使用系统调用fsync()来确定更新操作已经将数据写入磁盘.这将确"
 "保在操作系统或硬件崩溃后数据库集群将恢复到一个一致性状态. "
 
-#: utils/misc/guc.c:938
+#: utils/misc/guc.c:961
 msgid "Continues processing after a checksum failure."
 msgstr "校验失败后继续处理."
 
-#: utils/misc/guc.c:939
+#: utils/misc/guc.c:962
 msgid ""
 "Detection of a checksum failure normally causes PostgreSQL to report an "
 "error, aborting the current transaction. Setting ignore_checksum_failure to "
@@ -21978,11 +22630,11 @@ msgstr ""
 "继续处理当前事务.这种情况将导致系统崩溃或者其它严重问题,这也只有在启用校验时"
 "才有效."
 
-#: utils/misc/guc.c:953
+#: utils/misc/guc.c:976
 msgid "Continues processing past damaged page headers."
 msgstr "继续处理已损坏的页头."
 
-#: utils/misc/guc.c:954
+#: utils/misc/guc.c:977
 msgid ""
 "Detection of a damaged page header normally causes PostgreSQL to report an "
 "error, aborting the current transaction. Setting zero_damaged_pages to true "
@@ -21995,11 +22647,11 @@ msgstr ""
 "并且能够继续处理当前事务.这种情况将使毁坏数据,因为这样通常会使所有的记录在已"
 "损坏的页上存放."
 
-#: utils/misc/guc.c:967
+#: utils/misc/guc.c:990
 msgid "Writes full pages to WAL when first modified after a checkpoint."
 msgstr "在检查点事件发生后发生第一次修改数据时,把所有的页写到WAL文件中"
 
-#: utils/misc/guc.c:968
+#: utils/misc/guc.c:991
 msgid ""
 "A page write in process during an operating system crash might be only "
 "partially written to disk.  During recovery, the row changes stored in WAL "
@@ -22010,7 +22662,7 @@ msgstr ""
 "文件中所保存的已改变记录不足以进行恢复.当对WAL发生检查点事件后进行第一次修改"
 "操作时这个选项可以写入页。这样将允许进行完全恢复."
 
-#: utils/misc/guc.c:981
+#: utils/misc/guc.c:1004
 msgid ""
 "Writes full pages to WAL when first modified after a checkpoint, even for a "
 "non-critical modifications."
@@ -22018,144 +22670,142 @@ msgstr ""
 "在检查点事件发生后发生第一次修改数据甚至是非关键修改时,把所有的页写到WAL文件"
 "中"
 
-#: utils/misc/guc.c:991
+#: utils/misc/guc.c:1014
 msgid "Compresses full-page writes written in WAL file."
 msgstr "压缩写入WAL文件的整页写。"
 
-#: utils/misc/guc.c:1001
+#: utils/misc/guc.c:1024
 msgid "Logs each checkpoint."
 msgstr "记录每一个检查点事件"
 
-#: utils/misc/guc.c:1010
+#: utils/misc/guc.c:1033
 msgid "Logs each successful connection."
 msgstr "记录每一个成功的联接."
 
-#: utils/misc/guc.c:1019
+#: utils/misc/guc.c:1042
 msgid "Logs end of a session, including duration."
 msgstr "对会话的结束时间和整个会话的持续时间进行日志记录"
 
-#: utils/misc/guc.c:1028
-#| msgid "Logs each query's execution plan."
+#: utils/misc/guc.c:1051
 msgid "Logs each replication command."
 msgstr "记录每一个复制命令。"
 
-#: utils/misc/guc.c:1037
-#| msgid "Shows whether the current user is a superuser."
+#: utils/misc/guc.c:1060
 msgid "Shows whether the running server has assertion checks enabled."
 msgstr "显示正在运行的服务器是否启用了断言检查。"
 
-#: utils/misc/guc.c:1052
+#: utils/misc/guc.c:1075
 msgid "Terminate session on any error."
 msgstr "只要遇错即终止会话."
 
-#: utils/misc/guc.c:1061
+#: utils/misc/guc.c:1084
 msgid "Reinitialize server after backend crash."
 msgstr "后端服务器崩溃时重新初始化服务器."
 
-#: utils/misc/guc.c:1071
+#: utils/misc/guc.c:1094
 msgid "Logs the duration of each completed SQL statement."
 msgstr "记录每一条完成了的 SQL 语句过程."
 
-#: utils/misc/guc.c:1080
+#: utils/misc/guc.c:1103
 msgid "Logs each query's parse tree."
 msgstr "对每个查询的分析树进行日志记录"
 
-#: utils/misc/guc.c:1089
+#: utils/misc/guc.c:1112
 msgid "Logs each query's rewritten parse tree."
 msgstr "对每个查询的重写分析树进行日志记录"
 
-#: utils/misc/guc.c:1098
+#: utils/misc/guc.c:1121
 msgid "Logs each query's execution plan."
 msgstr "记录每一个查询的执行计划"
 
-#: utils/misc/guc.c:1107
+#: utils/misc/guc.c:1130
 msgid "Indents parse and plan tree displays."
 msgstr "显示缩进的解析和计划树"
 
-#: utils/misc/guc.c:1116
+#: utils/misc/guc.c:1139
 msgid "Writes parser performance statistics to the server log."
 msgstr "把分析器性能统计信息写入到服务器日志中."
 
-#: utils/misc/guc.c:1125
+#: utils/misc/guc.c:1148
 msgid "Writes planner performance statistics to the server log."
 msgstr "把规划器性能统计信息写入到服务器日志中."
 
-#: utils/misc/guc.c:1134
+#: utils/misc/guc.c:1157
 msgid "Writes executor performance statistics to the server log."
 msgstr "把执行器 (executor) 性能统计信息写入到服务器日志中."
 
-#: utils/misc/guc.c:1143
+#: utils/misc/guc.c:1166
 msgid "Writes cumulative performance statistics to the server log."
 msgstr "把 cumulative 性能统计信息写入到服务器日志中."
 
-#: utils/misc/guc.c:1153
+#: utils/misc/guc.c:1176
 msgid ""
 "Logs system resource usage statistics (memory and CPU) on various B-tree "
 "operations."
 msgstr "基于可变的B-树操作的日志系统资源使用统计 (内存和CPU) ."
 
-#: utils/misc/guc.c:1165
+#: utils/misc/guc.c:1188
 msgid "Collects information about executing commands."
 msgstr "收集执行命令的统计信息."
 
-#: utils/misc/guc.c:1166
+#: utils/misc/guc.c:1189
 msgid ""
 "Enables the collection of information on the currently executing command of "
 "each session, along with the time at which that command began execution."
 msgstr "在每个会话当前正在执行的命令上启用信息收集, 并带有命令开始执行的时间."
 
-#: utils/misc/guc.c:1176
+#: utils/misc/guc.c:1199
 msgid "Collects statistics on database activity."
 msgstr "在数据库上正在执行的事务上收集统计信息."
 
-#: utils/misc/guc.c:1185
+#: utils/misc/guc.c:1208
 msgid "Collects timing statistics for database I/O activity."
 msgstr "为数据库I/O活动进行时间统计."
 
-#: utils/misc/guc.c:1195
+#: utils/misc/guc.c:1218
 msgid "Updates the process title to show the active SQL command."
 msgstr "更新进程标题来显示处于活动状态的SQL命令"
 
-#: utils/misc/guc.c:1196
+#: utils/misc/guc.c:1219
 msgid ""
 "Enables updating of the process title every time a new SQL command is "
 "received by the server."
 msgstr "每一次服务器开始运行新的SQL命令时启用进程标题的更新."
 
-#: utils/misc/guc.c:1205
+#: utils/misc/guc.c:1228
 msgid "Starts the autovacuum subprocess."
 msgstr "启动autovacuum子进程."
 
-#: utils/misc/guc.c:1215
+#: utils/misc/guc.c:1238
 msgid "Generates debugging output for LISTEN and NOTIFY."
 msgstr "为 LISTEN 和 NOTIFY 生成出错信息."
 
-#: utils/misc/guc.c:1227
+#: utils/misc/guc.c:1250
 msgid "Emits information about lock usage."
 msgstr "发出有关锁使用的信息."
 
-#: utils/misc/guc.c:1237
+#: utils/misc/guc.c:1260
 msgid "Emits information about user lock usage."
 msgstr "发出有关用户锁使用情况的信息."
 
-#: utils/misc/guc.c:1247
+#: utils/misc/guc.c:1270
 msgid "Emits information about lightweight lock usage."
 msgstr "发出有关轻量锁使用的相关信息."
 
-#: utils/misc/guc.c:1257
+#: utils/misc/guc.c:1280
 msgid ""
 "Dumps information about all current locks when a deadlock timeout occurs."
 msgstr "输出死锁超时发生时所有当前锁的相关信息."
 
-#: utils/misc/guc.c:1269
+#: utils/misc/guc.c:1292
 msgid "Logs long lock waits."
 msgstr "对长时间的锁等待记日志"
 
-#: utils/misc/guc.c:1279
+#: utils/misc/guc.c:1302
 msgid "Logs the host name in the connection logs."
 msgstr "在联接日志中记录主机名."
 
-#: utils/misc/guc.c:1280
+#: utils/misc/guc.c:1303
 msgid ""
 "By default, connection logs only show the IP address of the connecting host. "
 "If you want them to show the host name you can turn this on, but depending "
@@ -22165,15 +22815,15 @@ msgstr ""
 "在缺省情况下,连接日志只显示每个正在连接主机的IP地址.如果想要显示主机名,那么"
 "必须把它打开,但是这取决于主机名解析的设置,这在性能上不会有影响."
 
-#: utils/misc/guc.c:1291
+#: utils/misc/guc.c:1314
 msgid "Causes subtables to be included by default in various commands."
 msgstr "使子表在不同的命令中被缺省包含"
 
-#: utils/misc/guc.c:1300
+#: utils/misc/guc.c:1323
 msgid "Encrypt passwords."
 msgstr "加密口令."
 
-#: utils/misc/guc.c:1301
+#: utils/misc/guc.c:1324
 msgid ""
 "When a password is specified in CREATE USER or ALTER USER without writing "
 "either ENCRYPTED or UNENCRYPTED, this parameter determines whether the "
@@ -22182,11 +22832,11 @@ msgstr ""
 "当在 CREATE USER 或者 ALTER USER 语句中指定的口令没有用 ENCRYPTED 或者 "
 "UNENCRYPTED, 此参数确定口令是否加密."
 
-#: utils/misc/guc.c:1311
+#: utils/misc/guc.c:1334
 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"."
 msgstr "\"expr=NULL\" 看作为 \"expr IS NULL\"."
 
-#: utils/misc/guc.c:1312
+#: utils/misc/guc.c:1335
 msgid ""
 "When turned on, expressions of the form expr = NULL (or NULL = expr) are "
 "treated as expr IS NULL, that is, they return true if expr evaluates to the "
@@ -22197,48 +22847,47 @@ msgstr ""
 "行处理, 那就是说,如果expr计算为空值那么会返回true,否则返回为false。表达式"
 "expr = NULL的正确行为应该是永远返回为空(未知)"
 
-#: utils/misc/guc.c:1324
+#: utils/misc/guc.c:1347
 msgid "Enables per-database user names."
 msgstr "启用每个数据库的用户名"
 
-#: utils/misc/guc.c:1333
+#: utils/misc/guc.c:1356
 msgid "Sets the default read-only status of new transactions."
 msgstr "为新事物设置默认的只读状态."
 
-#: utils/misc/guc.c:1342
+#: utils/misc/guc.c:1365
 msgid "Sets the current transaction's read-only status."
 msgstr "设置当前事务的只读状态."
 
-#: utils/misc/guc.c:1352
+#: utils/misc/guc.c:1375
 msgid "Sets the default deferrable status of new transactions."
 msgstr "为新事物设置默认的可延迟状态."
 
-#: utils/misc/guc.c:1361
+#: utils/misc/guc.c:1384
 msgid ""
 "Whether to defer a read-only serializable transaction until it can be "
 "executed with no possible serialization failures."
 msgstr ""
 "是否要延期执行一个只读可串行化事务,直到执行时不会出现任何可串行化失败."
 
-#: utils/misc/guc.c:1371
+#: utils/misc/guc.c:1394
 msgid "Enable row security."
 msgstr "启用行安全。"
 
 # sql_help.h:117
-#: utils/misc/guc.c:1372
-#| msgid "define or change a security label applied to an object"
+#: utils/misc/guc.c:1395
 msgid "When enabled, row security will be applied to all users."
 msgstr "当被启用时,行安全性将被应用到所有用户。"
 
-#: utils/misc/guc.c:1380
+#: utils/misc/guc.c:1403
 msgid "Check function bodies during CREATE FUNCTION."
 msgstr "在创建函数过程中检查函数体."
 
-#: utils/misc/guc.c:1389
+#: utils/misc/guc.c:1412
 msgid "Enable input of NULL elements in arrays."
 msgstr "在数组中启用空值成员输入"
 
-#: utils/misc/guc.c:1390
+#: utils/misc/guc.c:1413
 msgid ""
 "When turned on, unquoted NULL in an array input value means a null value; "
 "otherwise it is taken literally."
@@ -22246,135 +22895,143 @@ msgstr ""
 "当打开这个选项的时候,在数组输入值中没有引用的NULL表示空值;否则是按照字面上的"
 "含义进行解释."
 
-#: utils/misc/guc.c:1400
+#: utils/misc/guc.c:1423
 msgid "Create new tables with OIDs by default."
 msgstr "缺省下使用OIDs来创建表."
 
-#: utils/misc/guc.c:1409
+#: utils/misc/guc.c:1432
 msgid ""
 "Start a subprocess to capture stderr output and/or csvlogs into log files."
 msgstr "启动一个子进程用来捕获stderr输出或csvlogs,写到到日志文件中."
 
-#: utils/misc/guc.c:1418
+#: utils/misc/guc.c:1441
 msgid "Truncate existing log files of same name during log rotation."
 msgstr "在日志切换期间截断相同名称的日志文件"
 
-#: utils/misc/guc.c:1429
+#: utils/misc/guc.c:1452
 msgid "Emit information about resource usage in sorting."
 msgstr "发出在排序中关于资源使用的信息."
 
-#: utils/misc/guc.c:1443
+#: utils/misc/guc.c:1466
 msgid "Generate debugging output for synchronized scanning."
 msgstr "为同步扫描生成调试信息."
 
-#: utils/misc/guc.c:1458
+#: utils/misc/guc.c:1481
 msgid "Enable bounded sorting using heap sort."
 msgstr "使用堆排序来启用有界排序."
 
-#: utils/misc/guc.c:1471
+#: utils/misc/guc.c:1494
 msgid "Emit WAL-related debugging output."
 msgstr "发出与WAL相关的调试信息输出"
 
-#: utils/misc/guc.c:1483
+#: utils/misc/guc.c:1506
 msgid "Datetimes are integer based."
 msgstr "日期时间类型值是基于整数类型的"
 
-#: utils/misc/guc.c:1498
+#: utils/misc/guc.c:1521
 msgid ""
 "Sets whether Kerberos and GSSAPI user names should be treated as case-"
 "insensitive."
 msgstr "设置 Kerberos和GSSAPI的用户名是否应该区分大小写."
 
-#: utils/misc/guc.c:1508
+#: utils/misc/guc.c:1531
 msgid "Warn about backslash escapes in ordinary string literals."
 msgstr "在顺序字符串文字中关于反斜线转义的警告"
 
-#: utils/misc/guc.c:1518
+#: utils/misc/guc.c:1541
 msgid "Causes '...' strings to treat backslashes literally."
 msgstr "使字符串'...' 按照字面含义处理反斜线"
 
-#: utils/misc/guc.c:1529
+#: utils/misc/guc.c:1552
 msgid "Enable synchronized sequential scans."
 msgstr "启用同步序列扫描"
 
-#: utils/misc/guc.c:1539
+#: utils/misc/guc.c:1562
 msgid "Allows connections and queries during recovery."
 msgstr "允许在恢复期间进行连接和查询."
 
-#: utils/misc/guc.c:1549
+#: utils/misc/guc.c:1572
 msgid ""
 "Allows feedback from a hot standby to the primary that will avoid query "
 "conflicts."
 msgstr "允许来自热备节点到主节点的响应,以避免查询冲突."
 
-#: utils/misc/guc.c:1559
+#: utils/misc/guc.c:1582
 msgid "Allows modifications of the structure of system tables."
 msgstr "允许修改系统表的结构."
 
-#: utils/misc/guc.c:1570
+#: utils/misc/guc.c:1593
 msgid "Disables reading from system indexes."
 msgstr "禁止从系统索引中进行读操作"
 
-#: utils/misc/guc.c:1571
+#: utils/misc/guc.c:1594
 msgid ""
 "It does not prevent updating the indexes, so it is safe to use.  The worst "
 "consequence is slowness."
 msgstr "这不能防止更新索引,所以应该安全的使用。最糟糕的结果是使系统性能变慢."
 
-#: utils/misc/guc.c:1582
+#: utils/misc/guc.c:1605
 msgid ""
 "Enables backward compatibility mode for privilege checks on large objects."
 msgstr "为在大对象上的权限检查启用向后兼容模式."
 
-#: utils/misc/guc.c:1583
+#: utils/misc/guc.c:1606
 msgid ""
 "Skips privilege checks when reading or modifying large objects, for "
 "compatibility with PostgreSQL releases prior to 9.0."
 msgstr ""
 "为了与9.0版本之前的PostgreSQL相兼容,在读取或修改大对象时候不进行权限检查"
 
-#: utils/misc/guc.c:1593
+#: utils/misc/guc.c:1616
 msgid ""
 "Emit a warning for constructs that changed meaning since PostgreSQL 9.4."
 msgstr "为从PostgreSQL 9.4以来改变了含义的结构发出一个警告。"
 
-#: utils/misc/guc.c:1603
+#: utils/misc/guc.c:1626
 msgid "When generating SQL fragments, quote all identifiers."
 msgstr "在生成SQL片段时,对所有标识符加引号括起来."
 
-#: utils/misc/guc.c:1613
+#: utils/misc/guc.c:1636
 msgid "Shows whether data checksums are turned on for this cluster."
 msgstr "显示当前簇是否开启数据校验和."
 
-#: utils/misc/guc.c:1633
+#: utils/misc/guc.c:1647
+msgid "Add sequence number to syslog messages to avoid duplicate suppression."
+msgstr "向 syslog 消息中增加序号以避免抑制重复。"
+
+#: utils/misc/guc.c:1657
+msgid "Split messages sent to syslog by lines and to fit into 1024 bytes."
+msgstr "将发送给 syslog 的消息用行分离并且让每个部分适合于 1024 字节。"
+
+#: utils/misc/guc.c:1676
 msgid ""
 "Forces a switch to the next xlog file if a new file has not been started "
 "within N seconds."
 msgstr "如果新的文件没有在N秒内启动,那么强制切换到下一个xlog文件."
 
-#: utils/misc/guc.c:1644
+#: utils/misc/guc.c:1687
 msgid "Waits N seconds on connection startup after authentication."
 msgstr "完成认证后,在启动的连接上等待N秒"
 
-#: utils/misc/guc.c:1645 utils/misc/guc.c:2147
+#: utils/misc/guc.c:1688 utils/misc/guc.c:2211
 msgid "This allows attaching a debugger to the process."
 msgstr "允许将调试器添加到进程"
 
-#: utils/misc/guc.c:1654
+#: utils/misc/guc.c:1697
 msgid "Sets the default statistics target."
 msgstr "设置默认统计对象."
 
-#: utils/misc/guc.c:1655
+#: utils/misc/guc.c:1698
 msgid ""
 "This applies to table columns that have not had a column-specific target set "
 "via ALTER TABLE SET STATISTICS."
 msgstr "在没有通过ALTER TABLE SET STATISTICS产生列定义目标集合的列上使用."
 
-#: utils/misc/guc.c:1664
+#: utils/misc/guc.c:1707
 msgid "Sets the FROM-list size beyond which subqueries are not collapsed."
 msgstr "所设置的FROM列表大小超过子查询所允许的最大长度"
 
-#: utils/misc/guc.c:1666
+#: utils/misc/guc.c:1709
 msgid ""
 "The planner will merge subqueries into upper queries if the resulting FROM "
 "list would have no more than this many items."
@@ -22382,11 +23039,11 @@ msgstr ""
 "如果所产生的FROM列表成员不超过上层查询的相应的数量,那么计划器会把子查询合并到"
 "上层查询中."
 
-#: utils/misc/guc.c:1676
+#: utils/misc/guc.c:1719
 msgid "Sets the FROM-list size beyond which JOIN constructs are not flattened."
 msgstr "设置的FROM列表大小超过没有展平的JOIN结构大小."
 
-#: utils/misc/guc.c:1678
+#: utils/misc/guc.c:1721
 msgid ""
 "The planner will flatten explicit JOIN constructs into lists of FROM items "
 "whenever a list of no more than this many items would result."
@@ -22394,77 +23051,77 @@ msgstr ""
 "无论什么时候产生不超过这个数量的成员,计划器都将显式的JOIN结构展平到FROM子句后"
 "面的成员列表中."
 
-#: utils/misc/guc.c:1688
+#: utils/misc/guc.c:1731
 msgid "Sets the threshold of FROM items beyond which GEQO is used."
 msgstr "设置超过GEQO使用的FROM列表成员数量门限值."
 
-#: utils/misc/guc.c:1697
+#: utils/misc/guc.c:1740
 msgid "GEQO: effort is used to set the default for other GEQO parameters."
 msgstr "GEQO: 为其它GEQO参数设置缺省值"
 
-#: utils/misc/guc.c:1706
+#: utils/misc/guc.c:1749
 msgid "GEQO: number of individuals in the population."
 msgstr "GEQO: 人群 (population) 个体 (individual) 数"
 
-#: utils/misc/guc.c:1707 utils/misc/guc.c:1716
+#: utils/misc/guc.c:1750 utils/misc/guc.c:1759
 msgid "Zero selects a suitable default value."
 msgstr "没有选择出一个合适的缺省值"
 
-#: utils/misc/guc.c:1715
+#: utils/misc/guc.c:1758
 msgid "GEQO: number of iterations of the algorithm."
 msgstr "GEQO: 算法的迭代次数"
 
-#: utils/misc/guc.c:1726
+#: utils/misc/guc.c:1769
 msgid "Sets the time to wait on a lock before checking for deadlock."
 msgstr "在检查死锁前设置在一个锁上的等待时间."
 
-#: utils/misc/guc.c:1737
+#: utils/misc/guc.c:1780
 msgid ""
 "Sets the maximum delay before canceling queries when a hot standby server is "
 "processing archived WAL data."
 msgstr "当热备服务器在处理已归档的WAL数据时,在取消查询请求前设置最大的延迟."
 
-#: utils/misc/guc.c:1748
+#: utils/misc/guc.c:1791
 msgid ""
 "Sets the maximum delay before canceling queries when a hot standby server is "
 "processing streamed WAL data."
 msgstr ""
 "当热备服务器在处理通过流复制的WAL数据时,在取消查询请求前设置最大的延迟."
 
-#: utils/misc/guc.c:1759
+#: utils/misc/guc.c:1802
 msgid ""
 "Sets the maximum interval between WAL receiver status reports to the primary."
 msgstr "为WAL接受进程的状态报告(向主节点)设置最大时间间隔."
 
-#: utils/misc/guc.c:1770
+#: utils/misc/guc.c:1813
 msgid "Sets the maximum wait time to receive data from the primary."
 msgstr "设置从主节点上接收数据的最大等待时间."
 
-#: utils/misc/guc.c:1781
+#: utils/misc/guc.c:1824
 msgid "Sets the maximum number of concurrent connections."
 msgstr "设置并发联接的最大个数."
 
-#: utils/misc/guc.c:1791
+#: utils/misc/guc.c:1834
 msgid "Sets the number of connection slots reserved for superusers."
 msgstr "设置为超级用户保留的联接数."
 
-#: utils/misc/guc.c:1805
+#: utils/misc/guc.c:1848
 msgid "Sets the number of shared memory buffers used by the server."
 msgstr "设置服务器使用的共享内存缓冲区的数量."
 
-#: utils/misc/guc.c:1816
+#: utils/misc/guc.c:1859
 msgid "Sets the maximum number of temporary buffers used by each session."
 msgstr "设置每个会话可使用的临时缓冲区的最大数量."
 
-#: utils/misc/guc.c:1827
+#: utils/misc/guc.c:1870
 msgid "Sets the TCP port the server listens on."
 msgstr "设置服务器监听的 TCP 端口号."
 
-#: utils/misc/guc.c:1837
+#: utils/misc/guc.c:1880
 msgid "Sets the access permissions of the Unix-domain socket."
 msgstr "设置 Unix-domain 套接字的访问权限."
 
-#: utils/misc/guc.c:1838
+#: utils/misc/guc.c:1881
 msgid ""
 "Unix-domain sockets use the usual Unix file system permission set. The "
 "parameter value is expected to be a numeric mode specification in the form "
@@ -22474,11 +23131,11 @@ msgstr ""
 "Unix-domain 套接字使用普通的Unix文件许可集合.参数值应该是数值模式定义, 它的形"
 "式应该是系统调用chmod和umask可接受的.(为了使用习惯上以0开头的八进制格式数值)"
 
-#: utils/misc/guc.c:1852
+#: utils/misc/guc.c:1895
 msgid "Sets the file permissions for log files."
 msgstr "设置日志文件的文件访问权限."
 
-#: utils/misc/guc.c:1853
+#: utils/misc/guc.c:1896
 msgid ""
 "The parameter value is expected to be a numeric mode specification in the "
 "form accepted by the chmod and umask system calls. (To use the customary "
@@ -22487,125 +23144,140 @@ msgstr ""
 "参数值期望使用数值模式来指定, 它的形式应该是系统调用chmod和umask可接受的.(为"
 "了使用习惯上以0开头的八进制格式数值)"
 
-#: utils/misc/guc.c:1866
+#: utils/misc/guc.c:1909
 msgid "Sets the maximum memory to be used for query workspaces."
 msgstr "设置查询工作空间使用的最大内存数."
 
-#: utils/misc/guc.c:1867
+#: utils/misc/guc.c:1910
 msgid ""
 "This much memory can be used by each internal sort operation and hash table "
 "before switching to temporary disk files."
 msgstr ""
 "这些内存将可以由每一个内部排序操作和转换到临时磁盘文件之前的散列表来使用"
 
-#: utils/misc/guc.c:1879
+#: utils/misc/guc.c:1922
 msgid "Sets the maximum memory to be used for maintenance operations."
 msgstr "设置维护操作使用的最大内存数."
 
-#: utils/misc/guc.c:1880
+#: utils/misc/guc.c:1923
 msgid "This includes operations such as VACUUM and CREATE INDEX."
 msgstr "此处动作包括 VACUUM 和 CREATE INDEX."
 
-#: utils/misc/guc.c:1895
+#: utils/misc/guc.c:1933
+#| msgid "Sets the maximum number of temporary buffers used by each session."
+msgid ""
+"Sets the maximum number of tuples to be sorted using replacement selection."
+msgstr "设定要使用替换选择进行排序的最大元组数。"
+
+#: utils/misc/guc.c:1934
+msgid "When more tuples than this are present, quicksort will be used."
+msgstr "当存在超过这么多个元组时,将使用快速排序。"
+
+#: utils/misc/guc.c:1948
 msgid "Sets the maximum stack depth, in kilobytes."
 msgstr "设置最大的堆栈深度,单位是千字节."
 
-#: utils/misc/guc.c:1906
+#: utils/misc/guc.c:1959
 msgid "Limits the total size of all temporary files used by each session."
 msgstr "为每个会话可使用的所有临时文件限制最大大小."
 
-#: utils/misc/guc.c:1907
+#: utils/misc/guc.c:1960
 msgid "-1 means no limit."
 msgstr "-1 意指没有限制."
 
-#: utils/misc/guc.c:1917
+#: utils/misc/guc.c:1970
 msgid "Vacuum cost for a page found in the buffer cache."
 msgstr "在缓冲区缓存中找到对于一个页进行清理的开销."
 
-#: utils/misc/guc.c:1927
+#: utils/misc/guc.c:1980
 msgid "Vacuum cost for a page not found in the buffer cache."
 msgstr "在缓冲区缓存中没有找到对于一个页进行清理的开销."
 
-#: utils/misc/guc.c:1937
+#: utils/misc/guc.c:1990
 msgid "Vacuum cost for a page dirtied by vacuum."
 msgstr "由vacuum进程对脏页进行清理的开销."
 
-#: utils/misc/guc.c:1947
+#: utils/misc/guc.c:2000
 msgid "Vacuum cost amount available before napping."
 msgstr "在暂停前可用的清理开销总量."
 
-#: utils/misc/guc.c:1957
+#: utils/misc/guc.c:2010
 msgid "Vacuum cost delay in milliseconds."
 msgstr "Vacuum开销延迟是以毫秒为单位"
 
-#: utils/misc/guc.c:1968
+#: utils/misc/guc.c:2021
 msgid "Vacuum cost delay in milliseconds, for autovacuum."
 msgstr "对于autovacuum来说,Vacuum开销延迟是以毫秒为单位"
 
-#: utils/misc/guc.c:1979
+#: utils/misc/guc.c:2032
 msgid "Vacuum cost amount available before napping, for autovacuum."
 msgstr "对于autovacuum进程,在暂停前前进行清理有效开销总量."
 
-#: utils/misc/guc.c:1989
+#: utils/misc/guc.c:2042
 msgid ""
 "Sets the maximum number of simultaneously open files for each server process."
 msgstr "设置每一个服务器进程同时打开文件的最大个数."
 
-#: utils/misc/guc.c:2002
+#: utils/misc/guc.c:2055
 msgid "Sets the maximum number of simultaneously prepared transactions."
 msgstr "设置同步的已准备好事务的最大个数."
 
-#: utils/misc/guc.c:2013
+#: utils/misc/guc.c:2066
 msgid "Sets the minimum OID of tables for tracking locks."
 msgstr "设置跟踪锁的表的最小OID."
 
-#: utils/misc/guc.c:2014
+#: utils/misc/guc.c:2067
 msgid "Is used to avoid output on system tables."
 msgstr "用于避免输出到系统表."
 
-#: utils/misc/guc.c:2023
+#: utils/misc/guc.c:2076
 msgid "Sets the OID of the table with unconditionally lock tracing."
 msgstr "设置无条件锁追踪的表的OID."
 
-#: utils/misc/guc.c:2035
+#: utils/misc/guc.c:2088
 msgid "Sets the maximum allowed duration of any statement."
 msgstr "设置任何语句执行时间的最大值 (单位毫秒)."
 
-#: utils/misc/guc.c:2036 utils/misc/guc.c:2047
+#: utils/misc/guc.c:2089 utils/misc/guc.c:2100 utils/misc/guc.c:2111
 msgid "A value of 0 turns off the timeout."
 msgstr "值为 0 的时候关闭超时."
 
-#: utils/misc/guc.c:2046
+#: utils/misc/guc.c:2099
 msgid "Sets the maximum allowed duration of any wait for a lock."
 msgstr "等待锁的的最长时间值."
 
-#: utils/misc/guc.c:2057
+#: utils/misc/guc.c:2110
+#| msgid "Sets the maximum allowed duration of any statement."
+msgid "Sets the maximum allowed duration of any idling transaction."
+msgstr "设定任何空载事务的最大允许持续时间。"
+
+#: utils/misc/guc.c:2121
 msgid "Minimum age at which VACUUM should freeze a table row."
 msgstr "VACUUM应该冻结一行记录的最小时间."
 
-#: utils/misc/guc.c:2067
+#: utils/misc/guc.c:2131
 msgid "Age at which VACUUM should scan whole table to freeze tuples."
 msgstr "这是VACUUM应该扫描整个表来冻结元组的时候."
 
-#: utils/misc/guc.c:2077
+#: utils/misc/guc.c:2141
 msgid "Minimum age at which VACUUM should freeze a MultiXactId in a table row."
 msgstr "VACUUM用于冻结表中某行对应的MultiXactId的最小时间范围."
 
-#: utils/misc/guc.c:2087
+#: utils/misc/guc.c:2151
 msgid "Multixact age at which VACUUM should scan whole table to freeze tuples."
 msgstr "这是VACUUM应该扫描整个表来冻结元组的事务时间范围."
 
-#: utils/misc/guc.c:2097
+#: utils/misc/guc.c:2161
 msgid ""
 "Number of transactions by which VACUUM and HOT cleanup should be deferred, "
 "if any."
 msgstr "VACUUM和热清理操作应该延迟的事务数量."
 
-#: utils/misc/guc.c:2110
+#: utils/misc/guc.c:2174
 msgid "Sets the maximum number of locks per transaction."
 msgstr "设置每一个事物锁的最大个数."
 
-#: utils/misc/guc.c:2111
+#: utils/misc/guc.c:2175
 msgid ""
 "The shared lock table is sized on the assumption that at most "
 "max_locks_per_transaction * max_connections distinct objects will need to be "
@@ -22614,11 +23286,11 @@ msgstr ""
 "持有共享锁表的大小是基于最多max_locks_per_transaction * max_connections个不同"
 "对象需要在任何时刻被锁定的假设来指定的."
 
-#: utils/misc/guc.c:2122
+#: utils/misc/guc.c:2186
 msgid "Sets the maximum number of predicate locks per transaction."
 msgstr "设置每一个事物的断言锁的最大个数."
 
-#: utils/misc/guc.c:2123
+#: utils/misc/guc.c:2187
 msgid ""
 "The shared predicate lock table is sized on the assumption that at most "
 "max_pred_locks_per_transaction * max_connections distinct objects will need "
@@ -22627,38 +23299,36 @@ msgstr ""
 "共享断言锁表的大小是基于最多max_locks_per_transaction * max_connections个不同"
 "对象需要在任何时刻被锁定的假设来指定的."
 
-#: utils/misc/guc.c:2134
+#: utils/misc/guc.c:2198
 msgid "Sets the maximum allowed time to complete client authentication."
 msgstr "设置完成客户端认证的需要等待的最长时间"
 
-#: utils/misc/guc.c:2146
+#: utils/misc/guc.c:2210
 msgid "Waits N seconds on connection startup before authentication."
 msgstr "在认证前在连接启动上需要等待N秒"
 
-#: utils/misc/guc.c:2157
+#: utils/misc/guc.c:2221
 msgid "Sets the number of WAL files held for standby servers."
 msgstr "设置用于备用服务器而持有WAL文件的数量."
 
-#: utils/misc/guc.c:2167
-#| msgid "Sets the maximum time to wait for WAL replication."
+#: utils/misc/guc.c:2231
 msgid "Sets the minimum size to shrink the WAL to."
 msgstr "设置要把WAL收缩到的最小尺寸。"
 
-#: utils/misc/guc.c:2178
-#| msgid "Sets the maximum time between automatic WAL checkpoints."
+#: utils/misc/guc.c:2242
 msgid "Sets the WAL size that triggers a checkpoint."
 msgstr "设置触发一次检查点的WAL尺寸。"
 
-#: utils/misc/guc.c:2189
+#: utils/misc/guc.c:2253
 msgid "Sets the maximum time between automatic WAL checkpoints."
 msgstr "设置两次自动WAL检查点事件之间需要等待的最大时间"
 
-#: utils/misc/guc.c:2200
+#: utils/misc/guc.c:2264
 msgid ""
 "Enables warnings if checkpoint segments are filled more frequently than this."
 msgstr "如果检查点段的填充频度超过了最大值,启用警告功能。"
 
-#: utils/misc/guc.c:2202
+#: utils/misc/guc.c:2266
 msgid ""
 "Write a message to the server log if checkpoints caused by the filling of "
 "checkpoint segment files happens more frequently than this number of "
@@ -22667,42 +23337,46 @@ msgstr ""
 "如果检查点事件是由于填充检查点段比这个数量的秒数更加频繁所引起,那么会向服务"
 "器日志写一条消息. 如果把参数设置为0,那么可以关掉警告功能."
 
-#: utils/misc/guc.c:2214
+#: utils/misc/guc.c:2278
 msgid "Sets the number of disk-page buffers in shared memory for WAL."
 msgstr "为 WAL 设置共享内存中磁盘页缓冲区的个数."
 
-#: utils/misc/guc.c:2225
-msgid "WAL writer sleep time between WAL flushes."
-msgstr "WAL写进程在两次刷新WAL缓存内容之间的睡眠时间"
+#: utils/misc/guc.c:2289
+msgid "Time between WAL flushes performed in the WAL writer."
+msgstr "WAL 写入器中执行 WAL 刷写之间的时间。"
 
-#: utils/misc/guc.c:2237
+#: utils/misc/guc.c:2300
+msgid "Amount of WAL written out by WAL writer triggering a flush."
+msgstr "触发一次刷写的 WAL 写入器写出的 WAL 数量。"
+
+#: utils/misc/guc.c:2312
 msgid "Sets the maximum number of simultaneously running WAL sender processes."
 msgstr "设置同时运行的WAL发送进程最大数量"
 
-#: utils/misc/guc.c:2248
+#: utils/misc/guc.c:2323
 msgid "Sets the maximum number of simultaneously defined replication slots."
 msgstr "设置同步的已定义复制槽的最大数."
 
-#: utils/misc/guc.c:2258
+#: utils/misc/guc.c:2333
 msgid "Sets the maximum time to wait for WAL replication."
 msgstr "设置最大时间,等待WAL复制."
 
-#: utils/misc/guc.c:2269
+#: utils/misc/guc.c:2344
 msgid ""
 "Sets the delay in microseconds between transaction commit and flushing WAL "
 "to disk."
 msgstr "设置事物提交和刷新 WAL 到磁盘间的延迟时间, 单位微秒."
 
-#: utils/misc/guc.c:2281
+#: utils/misc/guc.c:2356
 msgid ""
 "Sets the minimum concurrent open transactions before performing commit_delay."
 msgstr "在执行commit_delay前,设置最少的可同步打开事务的数量."
 
-#: utils/misc/guc.c:2292
+#: utils/misc/guc.c:2367
 msgid "Sets the number of digits displayed for floating-point values."
 msgstr "设置浮点数显示的位数."
 
-#: utils/misc/guc.c:2293
+#: utils/misc/guc.c:2368
 msgid ""
 "This affects real, double precision, and geometric data types. The parameter "
 "value is added to the standard number of digits (FLT_DIG or DBL_DIG as "
@@ -22711,144 +23385,166 @@ msgstr ""
 "这将影响实数,双精度类型和几何数据类型.参数被加到位数的标准数量(视情况而定,可"
 "能是FLT_DIG或DBL_DIG)"
 
-#: utils/misc/guc.c:2304
+#: utils/misc/guc.c:2379
 msgid "Sets the minimum execution time above which statements will be logged."
 msgstr "设置最小执行时间,执行时间大于等于这个值的语句都将被记录."
 
-#: utils/misc/guc.c:2306
+#: utils/misc/guc.c:2381
 msgid "Zero prints all queries. -1 turns this feature off."
 msgstr ""
 "如果值设置为0,那么打印出所有查询. 如果设置为-1,那么将把这个功能特性关闭"
 
-#: utils/misc/guc.c:2316
+#: utils/misc/guc.c:2391
 msgid ""
 "Sets the minimum execution time above which autovacuum actions will be "
 "logged."
 msgstr ""
 "设置最小执行时间,如果autovacuum操作时间大于等于这个值,那么将记录这些操作."
 
-#: utils/misc/guc.c:2318
+#: utils/misc/guc.c:2393
 msgid "Zero prints all actions. -1 turns autovacuum logging off."
 msgstr "0表示打印出所有的操作.-1表示关闭对autovacuum的日志记录功能"
 
-#: utils/misc/guc.c:2328
+#: utils/misc/guc.c:2403
 msgid "Background writer sleep time between rounds."
 msgstr "后台写入进程 (Background writer) 两次运行之间的休眠时间."
 
-#: utils/misc/guc.c:2339
+#: utils/misc/guc.c:2414
 msgid "Background writer maximum number of LRU pages to flush per round."
 msgstr "后台写入进程 (Background writer) 每次可刷新LRU页的最大数量"
 
-#: utils/misc/guc.c:2351
+#: utils/misc/guc.c:2426
 msgid ""
 "Number of simultaneous requests that can be handled efficiently by the disk "
 "subsystem."
 msgstr "可以由磁盘子系统有效处理的并发请求数量."
 
-#: utils/misc/guc.c:2352
+#: utils/misc/guc.c:2427
 msgid ""
 "For RAID arrays, this should be approximately the number of drive spindles "
 "in the array."
 msgstr "对于RAID磁盘阵列来说,同步可处理的请求与磁盘阵列中磁盘数量应该相近."
 
-#: utils/misc/guc.c:2367
+#: utils/misc/guc.c:2440 utils/misc/guc.c:2452 utils/misc/guc.c:2464
+msgid ""
+"Number of pages after which previously performed writes are flushed to disk."
+msgstr "页面数,在此之后以前执行的写操作会被刷写到磁盘。"
+
+#: utils/misc/guc.c:2478
 msgid "Maximum number of concurrent worker processes."
 msgstr "最大并发工作进程数."
 
-#: utils/misc/guc.c:2377
+#: utils/misc/guc.c:2488
 msgid "Automatic log file rotation will occur after N minutes."
 msgstr "在N分钟后将会产生自动日志文件切换."
 
-#: utils/misc/guc.c:2388
+#: utils/misc/guc.c:2499
 msgid "Automatic log file rotation will occur after N kilobytes."
 msgstr "当写入了N千字节会发生自动日志文件切换"
 
-#: utils/misc/guc.c:2399
+#: utils/misc/guc.c:2510
 msgid "Shows the maximum number of function arguments."
 msgstr "显示函数参数的最大个数."
 
-#: utils/misc/guc.c:2410
+#: utils/misc/guc.c:2521
 msgid "Shows the maximum number of index keys."
 msgstr "显示索引键值的最大个数."
 
-#: utils/misc/guc.c:2421
+#: utils/misc/guc.c:2532
 msgid "Shows the maximum identifier length."
 msgstr "显示标识符最大长度"
 
-#: utils/misc/guc.c:2432
+#: utils/misc/guc.c:2543
 msgid "Shows the size of a disk block."
 msgstr "显示一个磁盘块的大小"
 
-#: utils/misc/guc.c:2443
+#: utils/misc/guc.c:2554
 msgid "Shows the number of pages per disk file."
 msgstr "显示在每个磁盘文件中页的数量."
 
-#: utils/misc/guc.c:2454
+#: utils/misc/guc.c:2565
 msgid "Shows the block size in the write ahead log."
 msgstr "显示预写日志中的块大小."
 
-#: utils/misc/guc.c:2465
+#: utils/misc/guc.c:2576
 msgid ""
 "Sets the time to wait before retrying to retrieve WAL after a failed attempt."
 msgstr "设置在尝试失败后重试检索WAL之前要等待的时间。"
 
-#: utils/misc/guc.c:2477
+#: utils/misc/guc.c:2588
 msgid "Shows the number of pages per write ahead log segment."
 msgstr "显示每个预写日志段中页的数量."
 
-#: utils/misc/guc.c:2490
+#: utils/misc/guc.c:2601
 msgid "Time to sleep between autovacuum runs."
 msgstr "两次运行autovacuum进程的休眠时间"
 
-#: utils/misc/guc.c:2500
+#: utils/misc/guc.c:2611
 msgid "Minimum number of tuple updates or deletes prior to vacuum."
 msgstr "设置激活清理操作所需要最小数量的更新或删除元组."
 
-#: utils/misc/guc.c:2509
+#: utils/misc/guc.c:2620
 msgid "Minimum number of tuple inserts, updates, or deletes prior to analyze."
 msgstr "分析前可插入,更新或删除元组的最小数量"
 
-#: utils/misc/guc.c:2519
+#: utils/misc/guc.c:2630
 msgid ""
 "Age at which to autovacuum a table to prevent transaction ID wraparound."
 msgstr "这是应该自动清理一张表以避免事务ID重叠的时间段."
 
-#: utils/misc/guc.c:2530
+#: utils/misc/guc.c:2641
 msgid ""
 "Multixact age at which to autovacuum a table to prevent multixact wraparound."
 msgstr "自动清理一张表以避免事务ID重叠的时间范围."
 
-#: utils/misc/guc.c:2540
+#: utils/misc/guc.c:2651
 msgid ""
 "Sets the maximum number of simultaneously running autovacuum worker "
 "processes."
 msgstr "设置最大可同时运行的autovacuum工作进程数量"
 
-#: utils/misc/guc.c:2550
+#: utils/misc/guc.c:2661
+#| msgid "Sets the maximum number of predicate locks per transaction."
+msgid "Sets the maximum number of parallel processes per executor node."
+msgstr "设定一个执行器节点上的最大并行进程数。"
+
+#: utils/misc/guc.c:2671
 msgid "Sets the maximum memory to be used by each autovacuum worker process."
 msgstr "设置每个自动清理(autovacuum)工作进程要使用的最大内存数."
 
-#: utils/misc/guc.c:2561
+#: utils/misc/guc.c:2682
+msgid ""
+"Time before a snapshot is too old to read pages changed after the snapshot "
+"was taken."
+msgstr "快照在被取得多久以后,会变得对于读取改变的页面太旧。"
+
+#: utils/misc/guc.c:2683
+#| msgid "A value of 0 uses the system default."
+msgid "A value of -1 disables this feature."
+msgstr "值为 -1 将禁用这个特性."
+
+#: utils/misc/guc.c:2693
 msgid "Time between issuing TCP keepalives."
 msgstr "启动TCP存活定时器的间隔"
 
-#: utils/misc/guc.c:2562 utils/misc/guc.c:2573
+#: utils/misc/guc.c:2694 utils/misc/guc.c:2705
 msgid "A value of 0 uses the system default."
 msgstr "值为0的时候表示系统缺省值"
 
-#: utils/misc/guc.c:2572
+#: utils/misc/guc.c:2704
 msgid "Time between TCP keepalive retransmits."
 msgstr "在两次TCP存活启动器重新传送之间需要花费的时间"
 
-#: utils/misc/guc.c:2583
-msgid "SSL regenotiation is no longer supported; this can only be 0."
-msgstr "SSL 重新协商已经不再被支持,这里只能是 0。"
+#: utils/misc/guc.c:2715
+#| msgid "SSL regenotiation is no longer supported; this can only be 0."
+msgid "SSL renegotiation is no longer supported; this can only be 0."
+msgstr "SSL 重协商已经不再被支持,这里只能是 0。"
 
-#: utils/misc/guc.c:2594
+#: utils/misc/guc.c:2726
 msgid "Maximum number of TCP keepalive retransmits."
 msgstr "设置每一个事物锁的最大个数."
 
-#: utils/misc/guc.c:2595
+#: utils/misc/guc.c:2727
 msgid ""
 "This controls the number of consecutive keepalive retransmits that can be "
 "lost before a connection is considered dead. A value of 0 uses the system "
@@ -22857,104 +23553,119 @@ msgstr ""
 "用于控制连续存活器再次传输数量,这些存活器重在连接被认为断开前会丢失.值0用于"
 "表示系统缺省."
 
-#: utils/misc/guc.c:2606
+#: utils/misc/guc.c:2738
 msgid "Sets the maximum allowed result for exact search by GIN."
 msgstr "设置由GIN进行的精确搜索所允许的最大允许结果."
 
-#: utils/misc/guc.c:2617
+#: utils/misc/guc.c:2749
 msgid "Sets the planner's assumption about the size of the disk cache."
 msgstr "设置关于计划器对磁盘缓冲大小的假设."
 
-#: utils/misc/guc.c:2618
+#: utils/misc/guc.c:2750
 msgid ""
 "That is, the portion of the kernel's disk cache that will be used for "
 "PostgreSQL data files. This is measured in disk pages, which are normally 8 "
 "kB each."
 msgstr "将要用于存储PostgreSQL数据文件的内核磁盘缓冲部分,以8K大小的页为单位."
 
-#: utils/misc/guc.c:2631
+#: utils/misc/guc.c:2763
 msgid "Shows the server version as an integer."
 msgstr "以整数的形式显示服务器版本信息."
 
-#: utils/misc/guc.c:2642
+#: utils/misc/guc.c:2774
 msgid "Log the use of temporary files larger than this number of kilobytes."
 msgstr "记录对超过这个数量(以千字节为单位)的临时文件的使用."
 
-#: utils/misc/guc.c:2643
+#: utils/misc/guc.c:2775
 msgid "Zero logs all files. The default is -1 (turning this feature off)."
 msgstr "如果设置为0,打印所有查询. 默认值为 -1 (表示关闭此功能)."
 
-#: utils/misc/guc.c:2653
+#: utils/misc/guc.c:2785
 msgid "Sets the size reserved for pg_stat_activity.query, in bytes."
 msgstr "设置为pg_stat_activity.query所保留的空间大小,以字节为单位."
 
-#: utils/misc/guc.c:2668
-#| msgid "Sets the maximum time to wait for WAL replication."
+#: utils/misc/guc.c:2800
 msgid "Sets the maximum size of the pending list for GIN index."
 msgstr "为GIN索引设置待处理列表的最大尺寸。"
 
-#: utils/misc/guc.c:2688
+#: utils/misc/guc.c:2820
 msgid ""
 "Sets the planner's estimate of the cost of a sequentially fetched disk page."
 msgstr "设置计划器对顺序获取磁盘页的开销估算"
 
-#: utils/misc/guc.c:2698
+#: utils/misc/guc.c:2830
 msgid ""
 "Sets the planner's estimate of the cost of a nonsequentially fetched disk "
 "page."
 msgstr "设置计划器对非顺序获取磁盘页的开销估算."
 
-#: utils/misc/guc.c:2708
+#: utils/misc/guc.c:2840
 msgid "Sets the planner's estimate of the cost of processing each tuple (row)."
 msgstr "设置计划器对处理每个元组(也就是记录)的开销估算"
 
-#: utils/misc/guc.c:2718
+#: utils/misc/guc.c:2850
 msgid ""
 "Sets the planner's estimate of the cost of processing each index entry "
 "during an index scan."
 msgstr "设置计划器在索引扫描期间对处理每个索引项的开销估算."
 
-#: utils/misc/guc.c:2728
+#: utils/misc/guc.c:2860
 msgid ""
 "Sets the planner's estimate of the cost of processing each operator or "
 "function call."
 msgstr "设置计划器对处理每个操作符和函数调用的开销估算."
 
-#: utils/misc/guc.c:2739
+#: utils/misc/guc.c:2870
+#| msgid ""
+#| "Sets the planner's estimate of the cost of processing each tuple (row)."
+msgid ""
+"Sets the planner's estimate of the cost of passing each tuple (row) from "
+"worker to master backend."
+msgstr "设定规划器对于从工作者向主控后端传递每一个元组(行)的代价估计。"
+
+#: utils/misc/guc.c:2880
+#| msgid ""
+#| "Sets the planner's estimate of the cost of processing each tuple (row)."
+msgid ""
+"Sets the planner's estimate of the cost of starting up worker processes for "
+"parallel query."
+msgstr "设定规划器对于启动并行查询的工作者进程的代价估计。"
+
+#: utils/misc/guc.c:2891
 msgid ""
 "Sets the planner's estimate of the fraction of a cursor's rows that will be "
 "retrieved."
 msgstr "设置计划器对于通过游标取回记录部分的估算."
 
-#: utils/misc/guc.c:2750
+#: utils/misc/guc.c:2902
 msgid "GEQO: selective pressure within the population."
 msgstr "GEQO: 在总体中的选择性压力"
 
-#: utils/misc/guc.c:2760
+#: utils/misc/guc.c:2912
 msgid "GEQO: seed for random path selection."
 msgstr "GEQO:用于随机路径选择的种子."
 
-#: utils/misc/guc.c:2770
+#: utils/misc/guc.c:2922
 msgid "Multiple of the average buffer usage to free per round."
 msgstr "每一次释放平均缓冲区使用量的倍数大小"
 
-#: utils/misc/guc.c:2780
+#: utils/misc/guc.c:2932
 msgid "Sets the seed for random-number generation."
 msgstr "设置生成随机数的种子."
 
-#: utils/misc/guc.c:2791
+#: utils/misc/guc.c:2943
 msgid ""
 "Number of tuple updates or deletes prior to vacuum as a fraction of "
 "reltuples."
 msgstr "在清理前需要插入,删除或更新元组的数量,这个数量是作为表大小的百分比"
 
-#: utils/misc/guc.c:2800
+#: utils/misc/guc.c:2952
 msgid ""
 "Number of tuple inserts, updates, or deletes prior to analyze as a fraction "
 "of reltuples."
 msgstr "在分析前插入,更新或删除元组的数量,这个数量以表大小的百分比的形式出现"
 
-#: utils/misc/guc.c:2810
+#: utils/misc/guc.c:2962
 msgid ""
 "Time spent flushing dirty buffers during checkpoint, as fraction of "
 "checkpoint interval."
@@ -22962,51 +23673,51 @@ msgstr ""
 "在检查点事件期间花费在将缓冲区中脏页刷新到磁盘的时间, 这个时间作为检查点间隔"
 "的百分比。"
 
-#: utils/misc/guc.c:2829
+#: utils/misc/guc.c:2981
 msgid "Sets the shell command that will be called to archive a WAL file."
 msgstr "设置用于对WAL文件进行归档的shell命令"
 
-#: utils/misc/guc.c:2839
+#: utils/misc/guc.c:2991
 msgid "Sets the client's character set encoding."
 msgstr "设置客户端编码"
 
-#: utils/misc/guc.c:2850
+#: utils/misc/guc.c:3002
 msgid "Controls information prefixed to each log line."
 msgstr "将控制信息作为每条日志文本的前缀"
 
-#: utils/misc/guc.c:2851
+#: utils/misc/guc.c:3003
 msgid "If blank, no prefix is used."
 msgstr "如果是空的,那么不使用前缀"
 
-#: utils/misc/guc.c:2860
+#: utils/misc/guc.c:3012
 msgid "Sets the time zone to use in log messages."
 msgstr "设置在日志消息中使用的时间区域"
 
-#: utils/misc/guc.c:2870
+#: utils/misc/guc.c:3022
 msgid "Sets the display format for date and time values."
 msgstr "设置日期和时间值的显示格式."
 
-#: utils/misc/guc.c:2871
+#: utils/misc/guc.c:3023
 msgid "Also controls interpretation of ambiguous date inputs."
 msgstr "控制对模糊日期输入的解释."
 
-#: utils/misc/guc.c:2882
+#: utils/misc/guc.c:3034
 msgid "Sets the default tablespace to create tables and indexes in."
 msgstr "设置用于创建表和索引的缺省表空间."
 
-#: utils/misc/guc.c:2883
+#: utils/misc/guc.c:3035
 msgid "An empty string selects the database's default tablespace."
 msgstr "使用空字符串表示数据库的缺省表空间."
 
-#: utils/misc/guc.c:2893
+#: utils/misc/guc.c:3045
 msgid "Sets the tablespace(s) to use for temporary tables and sort files."
 msgstr "将表空间设置为用于存放临时表和排序文件"
 
-#: utils/misc/guc.c:2904
+#: utils/misc/guc.c:3056
 msgid "Sets the path for dynamically loadable modules."
 msgstr "设置动态加载摸组的路径."
 
-#: utils/misc/guc.c:2905
+#: utils/misc/guc.c:3057
 msgid ""
 "If a dynamically loadable module needs to be opened and the specified name "
 "does not have a directory component (i.e., the name does not contain a "
@@ -23015,75 +23726,75 @@ msgstr ""
 "如果一个动态加载模块需要打开并且指定名字没有路径 (例如, 名字中没包含斜杠), 系"
 "统将在此路径中查找指定的文件."
 
-#: utils/misc/guc.c:2918
+#: utils/misc/guc.c:3070
 msgid "Sets the location of the Kerberos server key file."
 msgstr "设置 Kerberos 服务器密钥文件位置."
 
-#: utils/misc/guc.c:2929
+#: utils/misc/guc.c:3081
 msgid "Sets the Bonjour service name."
 msgstr "设置Bonjour服务名称."
 
-#: utils/misc/guc.c:2941
+#: utils/misc/guc.c:3093
 msgid "Shows the collation order locale."
 msgstr "显示排序规则顺序的语言环境"
 
-#: utils/misc/guc.c:2952
+#: utils/misc/guc.c:3104
 msgid "Shows the character classification and case conversion locale."
 msgstr "显示字符分类和按条件转换的语言环境."
 
-#: utils/misc/guc.c:2963
+#: utils/misc/guc.c:3115
 msgid "Sets the language in which messages are displayed."
 msgstr "设置信息显示语言."
 
-#: utils/misc/guc.c:2973
+#: utils/misc/guc.c:3125
 msgid "Sets the locale for formatting monetary amounts."
 msgstr "为货币数量格式设置 locale."
 
-#: utils/misc/guc.c:2983
+#: utils/misc/guc.c:3135
 msgid "Sets the locale for formatting numbers."
 msgstr "为数字格式设置 locale"
 
-#: utils/misc/guc.c:2993
+#: utils/misc/guc.c:3145
 msgid "Sets the locale for formatting date and time values."
 msgstr "为日期和时间值格式设置 locale"
 
-#: utils/misc/guc.c:3003
+#: utils/misc/guc.c:3155
 msgid "Lists shared libraries to preload into each backend."
 msgstr "列出预先加载到每个后台进程的共享库."
 
-#: utils/misc/guc.c:3014
+#: utils/misc/guc.c:3166
 msgid "Lists shared libraries to preload into server."
 msgstr "列出预装入服务器的共享库."
 
-#: utils/misc/guc.c:3025
+#: utils/misc/guc.c:3177
 msgid "Lists unprivileged shared libraries to preload into each backend."
 msgstr "列出预先加载到每个后台进程的非优先的共享库."
 
-#: utils/misc/guc.c:3036
+#: utils/misc/guc.c:3188
 msgid "Sets the schema search order for names that are not schema-qualified."
 msgstr "为不是模式限定的名称设置模式搜索顺序"
 
-#: utils/misc/guc.c:3048
+#: utils/misc/guc.c:3200
 msgid "Sets the server (database) character set encoding."
 msgstr "设置服务器 (数据库) 字符编码."
 
-#: utils/misc/guc.c:3060
+#: utils/misc/guc.c:3212
 msgid "Shows the server version."
 msgstr "显示服务器版本信息."
 
-#: utils/misc/guc.c:3072
+#: utils/misc/guc.c:3224
 msgid "Sets the current role."
 msgstr "设置当前的角色"
 
-#: utils/misc/guc.c:3084
+#: utils/misc/guc.c:3236
 msgid "Sets the session user name."
 msgstr "设置会话用户名称."
 
-#: utils/misc/guc.c:3095
+#: utils/misc/guc.c:3247
 msgid "Sets the destination for server log output."
 msgstr "设置服务器日志输出目标."
 
-#: utils/misc/guc.c:3096
+#: utils/misc/guc.c:3248
 msgid ""
 "Valid values are combinations of \"stderr\", \"syslog\", \"csvlog\", and "
 "\"eventlog\", depending on the platform."
@@ -23091,227 +23802,254 @@ msgstr ""
 "有效值为 \"stderr\", \"syslog\", \"csvlog\", and \"eventlog\" 的组合, 这取决"
 "于平台的种类."
 
-#: utils/misc/guc.c:3107
+#: utils/misc/guc.c:3259
 msgid "Sets the destination directory for log files."
 msgstr "设置日志文件目的目录."
 
-#: utils/misc/guc.c:3108
+#: utils/misc/guc.c:3260
 msgid "Can be specified as relative to the data directory or as absolute path."
 msgstr "可以指定为data目录的相对目录或绝对目录."
 
-#: utils/misc/guc.c:3118
+#: utils/misc/guc.c:3270
 msgid "Sets the file name pattern for log files."
 msgstr "设置日志文件的文件名字模式."
 
-#: utils/misc/guc.c:3129
+#: utils/misc/guc.c:3281
 msgid "Sets the program name used to identify PostgreSQL messages in syslog."
 msgstr "设置在系统日志 (syslog) 中确认 PostgreSQL 信息的程序名."
 
-#: utils/misc/guc.c:3140
+#: utils/misc/guc.c:3292
 msgid ""
 "Sets the application name used to identify PostgreSQL messages in the event "
 "log."
 msgstr "设置在事件日志 (syslog) 中用于标识 PostgreSQL 消息的程序名."
 
-#: utils/misc/guc.c:3151
+#: utils/misc/guc.c:3303
 msgid "Sets the time zone for displaying and interpreting time stamps."
 msgstr "设置显示和解释时间戳的时区."
 
-#: utils/misc/guc.c:3161
+#: utils/misc/guc.c:3313
 msgid "Selects a file of time zone abbreviations."
 msgstr "选择时间区域缩写的文件"
 
-#: utils/misc/guc.c:3171
+#: utils/misc/guc.c:3323
 msgid "Sets the current transaction's isolation level."
 msgstr "设置当前事物的隔离级别."
 
-#: utils/misc/guc.c:3182
+#: utils/misc/guc.c:3334
 msgid "Sets the owning group of the Unix-domain socket."
 msgstr "设置 Unix-domain 套接字的属组."
 
-#: utils/misc/guc.c:3183
+#: utils/misc/guc.c:3335
 msgid ""
 "The owning user of the socket is always the user that starts the server."
 msgstr "套接字的属主用户也是起动服务的用户."
 
-#: utils/misc/guc.c:3193
+#: utils/misc/guc.c:3345
 msgid "Sets the directories where Unix-domain sockets will be created."
 msgstr "设置用于创建Unix-domain套接字的目录."
 
-#: utils/misc/guc.c:3208
+#: utils/misc/guc.c:3360
 msgid "Sets the host name or IP address(es) to listen to."
 msgstr "设置监听的主机名或 IP 地址."
 
-#: utils/misc/guc.c:3223
+#: utils/misc/guc.c:3375
 msgid "Sets the server's data directory."
 msgstr "设置服务器的数据目录"
 
-#: utils/misc/guc.c:3234
+#: utils/misc/guc.c:3386
 msgid "Sets the server's main configuration file."
 msgstr "设置服务器的主配置文件"
 
-#: utils/misc/guc.c:3245
+#: utils/misc/guc.c:3397
 msgid "Sets the server's \"hba\" configuration file."
 msgstr "设置服务器的 \"hba\" 配置文件"
 
-#: utils/misc/guc.c:3256
+#: utils/misc/guc.c:3408
 msgid "Sets the server's \"ident\" configuration file."
 msgstr "设置服务器的 \"ident\" 配置文件"
 
-#: utils/misc/guc.c:3267
+#: utils/misc/guc.c:3419
 msgid "Writes the postmaster PID to the specified file."
 msgstr "把 postmaster PID 写到指定文件."
 
-#: utils/misc/guc.c:3278
+#: utils/misc/guc.c:3430
 msgid "Location of the SSL server certificate file."
 msgstr "SSL服务器证书文件的位置"
 
-#: utils/misc/guc.c:3288
+#: utils/misc/guc.c:3440
 msgid "Location of the SSL server private key file."
 msgstr "SSL服务器私钥文件的位置."
 
-#: utils/misc/guc.c:3298
+#: utils/misc/guc.c:3450
 msgid "Location of the SSL certificate authority file."
 msgstr "SSL证书授权文件的位置."
 
-#: utils/misc/guc.c:3308
+#: utils/misc/guc.c:3460
 msgid "Location of the SSL certificate revocation list file."
 msgstr "SSL证书撤销列表文件的位置."
 
-#: utils/misc/guc.c:3318
+#: utils/misc/guc.c:3470
 msgid "Writes temporary statistics files to the specified directory."
 msgstr "将临时统计信息文件写到指定的目录"
 
-#: utils/misc/guc.c:3329
-msgid "List of names of potential synchronous standbys."
-msgstr "可能的同步备用节点的名称列表."
+#: utils/misc/guc.c:3481
+#| msgid "List of names of potential synchronous standbys."
+msgid ""
+"Number of synchronous standbys and list of names of potential synchronous "
+"ones."
+msgstr "同步后备的数量以及潜在的同步后备的名称列表。"
 
 # describe.c:97
-#: utils/misc/guc.c:3340
+#: utils/misc/guc.c:3492
 msgid "Sets default text search configuration."
 msgstr "设置缺省文本搜索配置"
 
-#: utils/misc/guc.c:3350
+#: utils/misc/guc.c:3502
 msgid "Sets the list of allowed SSL ciphers."
 msgstr "设置日志信息的冗长."
 
-#: utils/misc/guc.c:3365
+#: utils/misc/guc.c:3517
 msgid "Sets the curve to use for ECDH."
 msgstr "设置该曲线,用于ECDH."
 
-#: utils/misc/guc.c:3380
+#: utils/misc/guc.c:3532
 msgid "Sets the application name to be reported in statistics and logs."
 msgstr "设置在统计和日志中出现的应用程序名称."
 
-#: utils/misc/guc.c:3391
+#: utils/misc/guc.c:3543
 msgid "Sets the name of the cluster, which is included in the process title."
 msgstr "设定集簇的名称,它会被包括在进程的标题中。"
 
-#: utils/misc/guc.c:3411
+#: utils/misc/guc.c:3563
 msgid "Sets whether \"\\'\" is allowed in string literals."
 msgstr "在字符串常量中设置是否允许使用\"\\'\""
 
-#: utils/misc/guc.c:3421
+#: utils/misc/guc.c:3573
 msgid "Sets the output format for bytea."
 msgstr "设置bytea类型数据的输出格式"
 
-#: utils/misc/guc.c:3431
+#: utils/misc/guc.c:3583
 msgid "Sets the message levels that are sent to the client."
 msgstr "设置发送到客户端的信息级别."
 
-#: utils/misc/guc.c:3432 utils/misc/guc.c:3485 utils/misc/guc.c:3496
-#: utils/misc/guc.c:3562
+#: utils/misc/guc.c:3584 utils/misc/guc.c:3637 utils/misc/guc.c:3648
+#: utils/misc/guc.c:3714
 msgid ""
 "Each level includes all the levels that follow it. The later the level, the "
 "fewer messages are sent."
 msgstr "每一层都包含在这一层后面的层次, 对于越往后的层次,就会发送越少的消息."
 
-#: utils/misc/guc.c:3442
+#: utils/misc/guc.c:3594
 msgid "Enables the planner to use constraints to optimize queries."
 msgstr "使计划器可以使用约束来优化查询."
 
-#: utils/misc/guc.c:3443
+#: utils/misc/guc.c:3595
 msgid ""
 "Table scans will be skipped if their constraints guarantee that no rows "
 "match the query."
 msgstr "如果约束能够确保没有列符合查询条件,那么将跳过表扫描."
 
-#: utils/misc/guc.c:3453
+#: utils/misc/guc.c:3605
 msgid "Sets the transaction isolation level of each new transaction."
 msgstr "设置每一个新事物的隔离 (isolation) 级别."
 
-#: utils/misc/guc.c:3463
+#: utils/misc/guc.c:3615
 msgid "Sets the display format for interval values."
 msgstr "设置时间间隔值的显示格式."
 
-#: utils/misc/guc.c:3474
+#: utils/misc/guc.c:3626
 msgid "Sets the verbosity of logged messages."
 msgstr "设置日志信息的冗长."
 
-#: utils/misc/guc.c:3484
+#: utils/misc/guc.c:3636
 msgid "Sets the message levels that are logged."
 msgstr "设置日志记录的信息级别."
 
-#: utils/misc/guc.c:3495
+#: utils/misc/guc.c:3647
 msgid ""
 "Causes all statements generating error at or above this level to be logged."
 msgstr "在此级别或以上级别, 所有语句产生的错误将被记录."
 
-#: utils/misc/guc.c:3506
+#: utils/misc/guc.c:3658
 msgid "Sets the type of statements logged."
 msgstr "设置记录语句的类型."
 
-#: utils/misc/guc.c:3516
+#: utils/misc/guc.c:3668
 msgid "Sets the syslog \"facility\" to be used when syslog enabled."
 msgstr "当启用系统日志 (syslog), 设置系统日志使用 \"facility\"."
 
-#: utils/misc/guc.c:3531
+#: utils/misc/guc.c:3683
 msgid "Sets the session's behavior for triggers and rewrite rules."
 msgstr "为触发器和重写规则设置会话的行为"
 
-#: utils/misc/guc.c:3541
+#: utils/misc/guc.c:3693
 msgid "Sets the current transaction's synchronization level."
 msgstr "设置当前事物的同步级别."
 
-#: utils/misc/guc.c:3551
+#: utils/misc/guc.c:3703
 msgid "Allows archiving of WAL files using archive_command."
 msgstr "允许使用archive_command参数对WAL文件进行归档."
 
-#: utils/misc/guc.c:3561
+#: utils/misc/guc.c:3713
 msgid "Enables logging of recovery-related debugging information."
 msgstr "启用日志功能,对与恢复操作相关的调试信息进行记录."
 
-#: utils/misc/guc.c:3577
+#: utils/misc/guc.c:3729
 msgid "Collects function-level statistics on database activity."
 msgstr "在数据库运行的事务中收集函数级别统计信息."
 
-#: utils/misc/guc.c:3587
+#: utils/misc/guc.c:3739
 msgid "Set the level of information written to the WAL."
 msgstr "设置写入WAL文件的信息的内容详细级别"
 
-#: utils/misc/guc.c:3597
+#: utils/misc/guc.c:3749
 msgid "Selects the dynamic shared memory implementation used."
 msgstr "选择过去的动态共享内存实现."
 
-#: utils/misc/guc.c:3607
+#: utils/misc/guc.c:3759
 msgid "Selects the method used for forcing WAL updates to disk."
 msgstr "选择用于强制将WAL缓冲区的内容更新到磁盘的方法."
 
-#: utils/misc/guc.c:3617
+#: utils/misc/guc.c:3769
 msgid "Sets how binary values are to be encoded in XML."
 msgstr "设置在XML中如何对二进制的值进行编码."
 
-#: utils/misc/guc.c:3627
+#: utils/misc/guc.c:3779
 msgid ""
 "Sets whether XML data in implicit parsing and serialization operations is to "
 "be considered as documents or content fragments."
 msgstr "设置在隐式分析和串行操作中的XML数据是否被当作文档或者内容片断."
 
-#: utils/misc/guc.c:3638
+#: utils/misc/guc.c:3790
 msgid "Use of huge pages on Linux."
 msgstr "使用Linux上的超大(huge)页"
 
-#: utils/misc/guc.c:4453
+#: utils/misc/guc.c:3800
+msgid "Forces use of parallel query facilities."
+msgstr "强制使用并行查询功能。"
+
+#: utils/misc/guc.c:3801
+msgid ""
+"If possible, run query using a parallel worker and with parallel "
+"restrictions."
+msgstr "如果可能,使用一个并行工作者并且加上并行限制来运行查询。"
+
+#: utils/misc/guc.c:4601
+#, c-format
+msgid "%s: could not access directory \"%s\": %s\n"
+msgstr "%s: 无法访问目录 \"%s\": %s\n"
+
+#: utils/misc/guc.c:4606
+#, c-format
+#| msgid ""
+#| "%s initializes a PostgreSQL database cluster.\n"
+#| "\n"
+msgid ""
+"Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n"
+msgstr "运行 initdb 或者 pg_basebackup 以初始化一个 PostgreSQL 数据目录.\n"
+
+#: utils/misc/guc.c:4626
 #, c-format
 msgid ""
 "%s does not know where to find the server configuration file.\n"
@@ -23321,12 +24059,13 @@ msgstr ""
 "%s 不知道在哪里可以找到数据库系统配置文件.\n"
 "你必须通过 --config-file 或 -D 选项指定或者通过设置 PGDATA 环境变量.\n"
 
-#: utils/misc/guc.c:4472
+#: utils/misc/guc.c:4645
 #, c-format
-msgid "%s cannot access the server configuration file \"%s\": %s\n"
-msgstr "%s 无法处理服务器的配置文件 \"%s\": %s\n"
+#| msgid "%s cannot access the server configuration file \"%s\": %s\n"
+msgid "%s: could not access the server configuration file \"%s\": %s\n"
+msgstr "%s:无法访问服务器配置文件 \"%s\": %s\n"
 
-#: utils/misc/guc.c:4498
+#: utils/misc/guc.c:4671
 #, c-format
 msgid ""
 "%s does not know where to find the database system data.\n"
@@ -23337,7 +24076,7 @@ msgstr ""
 "可以在 \"%s\" 中指定 \"data_directory\", 或者通过 -D 选项指定或者通过设置 "
 "PGDATA 环境变量.\n"
 
-#: utils/misc/guc.c:4546
+#: utils/misc/guc.c:4719
 #, c-format
 msgid ""
 "%s does not know where to find the \"hba\" configuration file.\n"
@@ -23348,7 +24087,7 @@ msgstr ""
 "可以在 \"%s\" 中指定 \"hba_file\", 或者通过 -D 选项指定或者通过设置PGDATA 环"
 "境变量.\n"
 
-#: utils/misc/guc.c:4569
+#: utils/misc/guc.c:4742
 #, c-format
 msgid ""
 "%s does not know where to find the \"ident\" configuration file.\n"
@@ -23359,116 +24098,118 @@ msgstr ""
 "可以在 \"%s\" 中指定 \"ident_file\", 或者通过 -D 选项指定或者通过设置PGDATA "
 "环境变量.\n"
 
-#: utils/misc/guc.c:5243 utils/misc/guc.c:5290
+#: utils/misc/guc.c:5416 utils/misc/guc.c:5463
 msgid "Value exceeds integer range."
 msgstr "值已超过整数范围"
 
-#: utils/misc/guc.c:5513
+#: utils/misc/guc.c:5686
 #, c-format
 msgid "parameter \"%s\" requires a numeric value"
 msgstr "参数 \"%s\" 需要一个数字值"
 
-#: utils/misc/guc.c:5522
+#: utils/misc/guc.c:5695
 #, c-format
 msgid "%g is outside the valid range for parameter \"%s\" (%g .. %g)"
 msgstr "%g 超出了参数 \"%s\" (%g .. %g) 的有效范围"
 
-#: utils/misc/guc.c:5675 utils/misc/guc.c:7004
+#: utils/misc/guc.c:5848 utils/misc/guc.c:7190
 #, c-format
-#| msgid "cannot set parameter \"%s\" within security-restricted operation"
 msgid "cannot set parameters during a parallel operation"
 msgstr "在并行操作期间不能设置参数"
 
-#: utils/misc/guc.c:5682 utils/misc/guc.c:6432 utils/misc/guc.c:6484
-#: utils/misc/guc.c:6845 utils/misc/guc.c:7581 utils/misc/guc.c:7740
-#: utils/misc/guc.c:9375
+#: utils/misc/guc.c:5855 utils/misc/guc.c:6605 utils/misc/guc.c:6657
+#: utils/misc/guc.c:7018 utils/misc/guc.c:7778 utils/misc/guc.c:7946
+#: utils/misc/guc.c:9603
 #, c-format
 msgid "unrecognized configuration parameter \"%s\""
 msgstr "未认可的配置参数 \"%s\""
 
-#: utils/misc/guc.c:5697 utils/misc/guc.c:6857
+#: utils/misc/guc.c:5870 utils/misc/guc.c:7030
 #, c-format
 msgid "parameter \"%s\" cannot be changed"
 msgstr "参数 \"%s\" 不可以改变"
 
-#: utils/misc/guc.c:5730
+#: utils/misc/guc.c:5903
 #, c-format
 msgid "parameter \"%s\" cannot be changed now"
 msgstr "参数 \"%s\" 现在不能改变"
 
-#: utils/misc/guc.c:5748 utils/misc/guc.c:5793 utils/misc/guc.c:9391
+#: utils/misc/guc.c:5921 utils/misc/guc.c:5966 utils/misc/guc.c:9619
 #, c-format
 msgid "permission denied to set parameter \"%s\""
 msgstr "设置参数 \"%s\" 权限不允许"
 
-#: utils/misc/guc.c:5783
+#: utils/misc/guc.c:5956
 #, c-format
 msgid "parameter \"%s\" cannot be set after connection start"
 msgstr "联接启动后, 参数 \"%s\" 不能设置"
 
-#: utils/misc/guc.c:5831
+#: utils/misc/guc.c:6004
 #, c-format
 msgid "cannot set parameter \"%s\" within security-definer function"
 msgstr "无法在安全定义者操作中设置参数\"%s\" "
 
-#: utils/misc/guc.c:6440 utils/misc/guc.c:6488 utils/misc/guc.c:7744
+#: utils/misc/guc.c:6613 utils/misc/guc.c:6661 utils/misc/guc.c:7952
 #, c-format
 msgid "must be superuser to examine \"%s\""
 msgstr "检查 \"%s\" 必须为超级用户"
 
-#: utils/misc/guc.c:6554
+#: utils/misc/guc.c:6727
 #, c-format
 msgid "SET %s takes only one argument"
 msgstr "SET %s 只能带一个参数"
 
-#: utils/misc/guc.c:6805
+#: utils/misc/guc.c:6978
 #, c-format
 msgid "must be superuser to execute ALTER SYSTEM command"
 msgstr "只有超级用户才能执行命令ALTER SYSTEM"
 
-#: utils/misc/guc.c:6918
+#: utils/misc/guc.c:7063
+#, c-format
+msgid "parameter value for ALTER SYSTEM must not contain a newline"
+msgstr "用于 ALTER SYSTEM 的参数值不能包含新行"
+
+#: utils/misc/guc.c:7108
 #, c-format
-#| msgid "could not seek to end of file \"%s\": %m"
 msgid "could not parse contents of file \"%s\""
 msgstr "无法解析文件\"%s\"的内容"
 
-#: utils/misc/guc.c:7080
+#: utils/misc/guc.c:7266
 #, c-format
 msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented"
 msgstr "SET LOCAL TRANSACTION SNAPSHOT没有实现"
 
-#: utils/misc/guc.c:7165
+#: utils/misc/guc.c:7351
 #, c-format
 msgid "SET requires parameter name"
 msgstr "SET 需要参数名字"
 
-#: utils/misc/guc.c:7278
+#: utils/misc/guc.c:7475
 #, c-format
 msgid "attempt to redefine parameter \"%s\""
 msgstr "尝试重新定义参数 \"%s\""
 
-#: utils/misc/guc.c:9008
+#: utils/misc/guc.c:9236
 #, c-format
-#| msgid "parameter \"%s\" cannot be changed"
 msgid "parameter \"%s\" could not be set"
 msgstr "参数\"%s\" 不能被设置"
 
-#: utils/misc/guc.c:9095
+#: utils/misc/guc.c:9323
 #, c-format
 msgid "could not parse setting for parameter \"%s\""
 msgstr "无法分析参数 \"%s\" 的设置"
 
-#: utils/misc/guc.c:9453 utils/misc/guc.c:9487
+#: utils/misc/guc.c:9681 utils/misc/guc.c:9715
 #, c-format
 msgid "invalid value for parameter \"%s\": %d"
 msgstr "参数 \"%s\" 的值无效: %d"
 
-#: utils/misc/guc.c:9521
+#: utils/misc/guc.c:9749
 #, c-format
 msgid "invalid value for parameter \"%s\": %g"
 msgstr "参数 \"%s\" 的值无效: %g"
 
-#: utils/misc/guc.c:9711
+#: utils/misc/guc.c:9939
 #, c-format
 msgid ""
 "\"temp_buffers\" cannot be changed after any temporary tables have been "
@@ -23477,23 +24218,23 @@ msgstr ""
 "在当前会话中,如果有任何临时表被访问,就不能改变\"temp_buffers\"中的内容."
 
 # input.c:213
-#: utils/misc/guc.c:9723
+#: utils/misc/guc.c:9951
 #, c-format
 msgid "Bonjour is not supported by this build"
 msgstr "这个版本的安装不支持使用Bonjour "
 
 # input.c:213
-#: utils/misc/guc.c:9736
+#: utils/misc/guc.c:9964
 #, c-format
 msgid "SSL is not supported by this build"
 msgstr "这个版本的安装不支持使用SSL"
 
-#: utils/misc/guc.c:9748
+#: utils/misc/guc.c:9976
 #, c-format
 msgid "Cannot enable parameter when \"log_statement_stats\" is true."
 msgstr "当 \"log_statement_stats\" 为 true 时, 不能启动参数."
 
-#: utils/misc/guc.c:9760
+#: utils/misc/guc.c:9988
 #, c-format
 msgid ""
 "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", "
@@ -23507,10 +24248,24 @@ msgstr ""
 msgid "internal error: unrecognized run-time parameter type\n"
 msgstr "内部错误: 未知的运行时参数类型\n"
 
-#: utils/misc/rls.c:125
+#: utils/misc/pg_config.c:61
 #, c-format
-msgid "insufficient privilege to bypass row-level security"
-msgstr "没有足够的特权绕过行级安全性"
+msgid ""
+"query-specified return tuple and function return type are not compatible"
+msgstr "查询指定返回的元组和函数返回类型不兼容"
+
+#: utils/misc/rls.c:127
+#, c-format
+#| msgid "new row violates row-level security policy for table \"%s\""
+msgid "query would be affected by row-level security policy for table \"%s\""
+msgstr "查询将被表 \"%s\" 的行级安全性策略所影响"
+
+#: utils/misc/rls.c:129
+#, c-format
+msgid ""
+"To disable the policy for the table's owner, use ALTER TABLE NO FORCE ROW "
+"LEVEL SECURITY."
+msgstr "要禁用对表拥有者的策略,使用 ALTER TABLE NO FORCE ROW LEVEL SECURITY。"
 
 #: utils/misc/timeout.c:388
 #, c-format
@@ -23586,15 +24341,15 @@ msgstr "在时间区域文件\"%s\"的第%d行中文本太长了."
 msgid "@INCLUDE without file name in time zone file \"%s\", line %d"
 msgstr "在时间区域文件\"%s\"中的第%d行中,@INCLUDE没有带文件名 "
 
-#: utils/mmgr/aset.c:505
+#: utils/mmgr/aset.c:506
 #, c-format
 msgid "Failed while creating memory context \"%s\"."
 msgstr "创建内存上下文 \"%s\" 失败."
 
-#: utils/mmgr/mcxt.c:689 utils/mmgr/mcxt.c:724 utils/mmgr/mcxt.c:761
-#: utils/mmgr/mcxt.c:798 utils/mmgr/mcxt.c:832 utils/mmgr/mcxt.c:861
-#: utils/mmgr/mcxt.c:895 utils/mmgr/mcxt.c:975 utils/mmgr/mcxt.c:1008
-#: utils/mmgr/mcxt.c:1055
+#: utils/mmgr/mcxt.c:771 utils/mmgr/mcxt.c:806 utils/mmgr/mcxt.c:843
+#: utils/mmgr/mcxt.c:880 utils/mmgr/mcxt.c:914 utils/mmgr/mcxt.c:943
+#: utils/mmgr/mcxt.c:977 utils/mmgr/mcxt.c:1059 utils/mmgr/mcxt.c:1093
+#: utils/mmgr/mcxt.c:1142
 #, c-format
 msgid "Failed on request of size %zu."
 msgstr "无法请求大小 %zu."
@@ -23629,17 +24384,23 @@ msgstr "无法对一个已经创建带有WITH HOLD游标的事务执行PREPARE
 msgid "could not read block %ld of temporary file: %m"
 msgstr "无法读取临时文件块 %ld: %m"
 
-#: utils/sort/tuplesort.c:3599
+#: utils/sort/tuplesort.c:3360
+#, c-format
+#| msgid "cannot use more than %d columns in an index"
+msgid "cannot have more than %d runs for an external sort"
+msgstr "不能为一次外部排序运行超过 %d 次"
+
+#: utils/sort/tuplesort.c:4416
 #, c-format
 msgid "could not create unique index \"%s\""
 msgstr "无法创建唯一索引\"%s\""
 
-#: utils/sort/tuplesort.c:3601
+#: utils/sort/tuplesort.c:4418
 #, c-format
 msgid "Key %s is duplicated."
 msgstr "键值%s重复了"
 
-#: utils/sort/tuplesort.c:3602
+#: utils/sort/tuplesort.c:4419
 #, c-format
 msgid "Duplicate keys exist."
 msgstr "存在重复键。"
@@ -23665,32 +24426,31 @@ msgstr "无法从元组存储临时文件读取: %m"
 msgid "could not write to tuplestore temporary file: %m"
 msgstr "无法写入元组存储临时文件: %m"
 
-#: utils/time/snapmgr.c:432
+#: utils/time/snapmgr.c:536
 #, c-format
-#| msgid "The source transaction %u is not running anymore."
 msgid "The source transaction is not running anymore."
 msgstr "源事务已不再运行."
 
-#: utils/time/snapmgr.c:986
+#: utils/time/snapmgr.c:1090
 #, c-format
 msgid "cannot export a snapshot from a subtransaction"
 msgstr "子事务中无法导出一个快照"
 
-#: utils/time/snapmgr.c:1135 utils/time/snapmgr.c:1140
-#: utils/time/snapmgr.c:1145 utils/time/snapmgr.c:1160
-#: utils/time/snapmgr.c:1165 utils/time/snapmgr.c:1170
-#: utils/time/snapmgr.c:1269 utils/time/snapmgr.c:1285
-#: utils/time/snapmgr.c:1310
+#: utils/time/snapmgr.c:1239 utils/time/snapmgr.c:1244
+#: utils/time/snapmgr.c:1249 utils/time/snapmgr.c:1264
+#: utils/time/snapmgr.c:1269 utils/time/snapmgr.c:1274
+#: utils/time/snapmgr.c:1373 utils/time/snapmgr.c:1389
+#: utils/time/snapmgr.c:1414
 #, c-format
 msgid "invalid snapshot data in file \"%s\""
 msgstr "文件 \"%s\" 中存在无效快照数据"
 
-#: utils/time/snapmgr.c:1207
+#: utils/time/snapmgr.c:1311
 #, c-format
 msgid "SET TRANSACTION SNAPSHOT must be called before any query"
 msgstr "SET TRANSACTION SNAPSHOT 必须在任何查询之前调用"
 
-#: utils/time/snapmgr.c:1216
+#: utils/time/snapmgr.c:1320
 #, c-format
 msgid ""
 "a snapshot-importing transaction must have isolation level SERIALIZABLE or "
@@ -23698,172 +24458,217 @@ msgid ""
 msgstr ""
 "一个snapshot-importing事务的隔离级只能是SERIALIZABLE或者REPEATABLE READ"
 
-#: utils/time/snapmgr.c:1225 utils/time/snapmgr.c:1234
+#: utils/time/snapmgr.c:1329 utils/time/snapmgr.c:1338
 #, c-format
 msgid "invalid snapshot identifier: \"%s\""
 msgstr "无效快照标识符: \"%s\""
 
-#: utils/time/snapmgr.c:1323
+#: utils/time/snapmgr.c:1427
 #, c-format
 msgid ""
 "a serializable transaction cannot import a snapshot from a non-serializable "
 "transaction"
 msgstr "一个可串行化事务不能从非可串行化事务中导入一个快照"
 
-#: utils/time/snapmgr.c:1327
+#: utils/time/snapmgr.c:1431
 #, c-format
 msgid ""
 "a non-read-only serializable transaction cannot import a snapshot from a "
 "read-only transaction"
 msgstr "非只读可串行化事务无法导入来自只读事务的快照"
 
-#: utils/time/snapmgr.c:1342
+#: utils/time/snapmgr.c:1446
 #, c-format
 msgid "cannot import a snapshot from a different database"
 msgstr "无法导入来自不同数据库的快照"
 
-#~ msgid "No description available."
-#~ msgstr "没有可用的描述"
+#~ msgid "user name lookup failure: %s"
+#~ msgstr "用户名: %s查找失败"
 
-#~ msgid "Sets the name of the Kerberos service."
-#~ msgstr "设置Kerberos服务的名称"
+#~ msgid "mapped win32 error code %lu to %d"
+#~ msgstr "将win32错误代码%2$d映射为%1$lu"
 
-#~ msgid ""
-#~ "time zone offset %d is not a multiple of 900 sec (15 min) in time zone "
-#~ "file \"%s\", line %d"
-#~ msgstr ""
-#~ "在时区文件 \"%2$s\"中的第%3$d行中时区偏移%1$d不是900秒(15分钟)的倍数."
+#~ msgid "unrecognized win32 error code: %lu"
+#~ msgstr "未知的 win32 错误码: %lu"
 
-#~ msgid "Perhaps out of disk space?"
-#~ msgstr "可能超出磁盘空间?"
+#~ msgid "redo record is at %X/%X; shutdown %s"
+#~ msgstr "重做记录是在%X/%X; 关闭 %s"
 
-#~ msgid "assertion checking is not supported by this build"
-#~ msgstr "这个版本的安装不支持使用断言检查"
+#~ msgid "next transaction ID: %u/%u; next OID: %u"
+#~ msgstr "下一个事务ID: %u/%u; 下一个 OID: %u"
 
-#~ msgid "SET AUTOCOMMIT TO OFF is no longer supported"
-#~ msgstr "SET AUTOCOMMIT TO OFF 不再被支持"
+#~ msgid "next MultiXactId: %u; next MultiXactOffset: %u"
+#~ msgstr "下一个MultiXactId: %u; 下一个MultiXactOffset: %u"
 
-#~ msgid ""
-#~ "Set the amount of traffic to send and receive before renegotiating the "
-#~ "encryption keys."
-#~ msgstr "在重新设定加密键之前设定需要进行发送和接收的流量总和"
+#~ msgid "oldest unfrozen transaction ID: %u, in database %u"
+#~ msgstr "在数据库%2$u中,最旧的非冻结事务ID是%1$u"
+
+#~ msgid "=> is deprecated as an operator name"
+#~ msgstr "=>做为操作符名称已被废弃"
 
 #~ msgid ""
-#~ "Sets the maximum distance in log segments between automatic WAL "
-#~ "checkpoints."
-#~ msgstr "在自动WAL检查点之间设置log段中的最大距离."
+#~ "This name may be disallowed altogether in future versions of PostgreSQL."
+#~ msgstr "在将来的PostgreSQL版本中不允许使用这个名称."
+
+#~ msgid "inherited relation \"%s\" is not a table"
+#~ msgstr "继承关系 \"%s\" 不是一个表"
+
+#~ msgid "Specify a USING expression to perform the conversion."
+#~ msgstr "指定一个USING表达式来执行转换"
 
 #~ msgid ""
-#~ "It's just here so that we won't choke on SET AUTOCOMMIT TO ON from 7.3-"
-#~ "vintage clients."
-#~ msgstr "只是这里我们不能从7.3版本的客户端中阻止运行SET AUTOCOMMIT TO ON."
+#~ "%.0f dead row versions cannot be removed yet.\n"
+#~ "There were %.0f unused item pointers.\n"
+#~ "%u pages are entirely empty.\n"
+#~ "%s."
+#~ msgstr ""
+#~ "已不用的行版本%.0f还不能删除.\n"
+#~ "那里有%.0f个没使用的成员指针.\n"
+#~ "%u页当前完全是空的.\n"
+#~ "%s."
 
-#~ msgid "This parameter doesn't do anything."
-#~ msgstr "这个参数不做任何事情."
+#~ msgid "interval precision specified twice"
+#~ msgstr "两次指定间隔精度"
 
-#~ msgid "This is a debugging aid."
-#~ msgstr "这是一个出错帮助."
+#~ msgid "received password packet"
+#~ msgstr "接收到口令包"
 
-#~ msgid "Turns on various assertion checks."
-#~ msgstr "打开各种判断检查."
+#~ msgid "could not complete SSL handshake on renegotiation, too many failures"
+#~ msgstr "在再次协商阶段无法完成 SSL 握手 , 因为其间出现了太多的失败"
 
-#~ msgid "cannot accept a value of type pg_node_tree"
-#~ msgstr "无法接受一个 pg_node_tree类型值"
+#~ msgid "could not set socket to blocking mode: %m"
+#~ msgstr "无法将套接字设置为阻塞模式: %m"
 
-#~ msgid ""
-#~ "must be superuser or have the same role to terminate other server "
-#~ "processes"
-#~ msgstr "只有超级用户或拥有相同角色的用户可以终止其他服务器进程"
+#~ msgid "%s: setsysinfo failed: %s\n"
+#~ msgstr "%s: setsysinfo 失败: %s\n"
+
+#~ msgid "  -A 1|0             enable/disable run-time assert checking\n"
+#~ msgstr "  -A 1|0             打开/关闭运行时断言检查\n"
+
+#~ msgid "subquery must return a column"
+#~ msgstr "子查询必须返回一个字段"
 
 #~ msgid ""
-#~ "must be superuser or have the same role to cancel queries running in "
-#~ "other server processes"
-#~ msgstr "只有超级用户或拥有相同角色的用户可以取消其他服务器进程中的查询"
+#~ "Consider increasing the configuration parameter \"checkpoint_segments\"."
+#~ msgstr "认为增加配置参数 \"checkpoint_segments\"."
 
-#~ msgid "invalid symbol"
-#~ msgstr "无效符号"
+#~ msgid "archive member \"%s\" too large for tar format"
+#~ msgstr "在 tar 格式中归档成员\"%s\"太大"
 
-#~ msgid "missing assignment operator"
-#~ msgstr "缺少指定的操作符"
+#~ msgid "could not determine input data types"
+#~ msgstr "无法确定输入数据类型"
 
 #~ msgid "neither input type is an array"
 #~ msgstr "没有输入类型是数组"
 
-#~ msgid "could not determine input data types"
-#~ msgstr "无法确定输入数据类型"
+#~ msgid "missing assignment operator"
+#~ msgstr "缺少指定的操作符"
 
-#~ msgid "archive member \"%s\" too large for tar format"
-#~ msgstr "在 tar 格式中归档成员\"%s\"太大"
+#~ msgid "invalid symbol"
+#~ msgstr "无效符号"
 
 #~ msgid ""
-#~ "Consider increasing the configuration parameter \"checkpoint_segments\"."
-#~ msgstr "认为增加配置参数 \"checkpoint_segments\"."
+#~ "must be superuser or have the same role to cancel queries running in "
+#~ "other server processes"
+#~ msgstr "只有超级用户或拥有相同角色的用户可以取消其他服务器进程中的查询"
 
-#~ msgid "subquery must return a column"
-#~ msgstr "子查询必须返回一个字段"
+#~ msgid ""
+#~ "must be superuser or have the same role to terminate other server "
+#~ "processes"
+#~ msgstr "只有超级用户或拥有相同角色的用户可以终止其他服务器进程"
 
-#~ msgid "  -A 1|0             enable/disable run-time assert checking\n"
-#~ msgstr "  -A 1|0             打开/关闭运行时断言检查\n"
+#~ msgid "cannot accept a value of type pg_node_tree"
+#~ msgstr "无法接受一个 pg_node_tree类型值"
 
-#~ msgid "%s: setsysinfo failed: %s\n"
-#~ msgstr "%s: setsysinfo 失败: %s\n"
+#~ msgid "Turns on various assertion checks."
+#~ msgstr "打开各种判断检查."
 
-#~ msgid "could not set socket to blocking mode: %m"
-#~ msgstr "无法将套接字设置为阻塞模式: %m"
+#~ msgid "This is a debugging aid."
+#~ msgstr "这是一个出错帮助."
 
-#~ msgid "could not complete SSL handshake on renegotiation, too many failures"
-#~ msgstr "在再次协商阶段无法完成 SSL 握手 , 因为其间出现了太多的失败"
+#~ msgid "This parameter doesn't do anything."
+#~ msgstr "这个参数不做任何事情."
 
-#~ msgid "received password packet"
-#~ msgstr "接收到口令包"
+#~ msgid ""
+#~ "It's just here so that we won't choke on SET AUTOCOMMIT TO ON from 7.3-"
+#~ "vintage clients."
+#~ msgstr "只是这里我们不能从7.3版本的客户端中阻止运行SET AUTOCOMMIT TO ON."
 
-#~ msgid "interval precision specified twice"
-#~ msgstr "两次指定间隔精度"
+#~ msgid ""
+#~ "Sets the maximum distance in log segments between automatic WAL "
+#~ "checkpoints."
+#~ msgstr "在自动WAL检查点之间设置log段中的最大距离."
 
 #~ msgid ""
-#~ "%.0f dead row versions cannot be removed yet.\n"
-#~ "There were %.0f unused item pointers.\n"
-#~ "%u pages are entirely empty.\n"
-#~ "%s."
-#~ msgstr ""
-#~ "已不用的行版本%.0f还不能删除.\n"
-#~ "那里有%.0f个没使用的成员指针.\n"
-#~ "%u页当前完全是空的.\n"
-#~ "%s."
+#~ "Set the amount of traffic to send and receive before renegotiating the "
+#~ "encryption keys."
+#~ msgstr "在重新设定加密键之前设定需要进行发送和接收的流量总和"
 
-#~ msgid "Specify a USING expression to perform the conversion."
-#~ msgstr "指定一个USING表达式来执行转换"
+#~ msgid "SET AUTOCOMMIT TO OFF is no longer supported"
+#~ msgstr "SET AUTOCOMMIT TO OFF 不再被支持"
 
-#~ msgid "inherited relation \"%s\" is not a table"
-#~ msgstr "继承关系 \"%s\" 不是一个表"
+#~ msgid "assertion checking is not supported by this build"
+#~ msgstr "这个版本的安装不支持使用断言检查"
+
+#~ msgid "Perhaps out of disk space?"
+#~ msgstr "可能超出磁盘空间?"
 
 #~ msgid ""
-#~ "This name may be disallowed altogether in future versions of PostgreSQL."
-#~ msgstr "在将来的PostgreSQL版本中不允许使用这个名称."
+#~ "time zone offset %d is not a multiple of 900 sec (15 min) in time zone "
+#~ "file \"%s\", line %d"
+#~ msgstr ""
+#~ "在时区文件 \"%2$s\"中的第%3$d行中时区偏移%1$d不是900秒(15分钟)的倍数."
 
-#~ msgid "=> is deprecated as an operator name"
-#~ msgstr "=>做为操作符名称已被废弃"
+#~ msgid "Sets the name of the Kerberos service."
+#~ msgstr "设置Kerberos服务的名称"
 
-#~ msgid "role with OID %u does not exist"
-#~ msgstr "OID为%u的角色不存在"
+#~ msgid "No description available."
+#~ msgstr "没有可用的描述"
 
-#~ msgid "oldest unfrozen transaction ID: %u, in database %u"
-#~ msgstr "在数据库%2$u中,最旧的非冻结事务ID是%1$u"
+#~ msgid "insufficient privilege to bypass row-level security"
+#~ msgstr "没有足够的特权绕过行级安全性"
 
-#~ msgid "next MultiXactId: %u; next MultiXactOffset: %u"
-#~ msgstr "下一个MultiXactId: %u; 下一个MultiXactOffset: %u"
+#~ msgid "WAL writer sleep time between WAL flushes."
+#~ msgstr "WAL写进程在两次刷新WAL缓存内容之间的睡眠时间"
 
-#~ msgid "next transaction ID: %u/%u; next OID: %u"
-#~ msgstr "下一个事务ID: %u/%u; 下一个 OID: %u"
+#~ msgid "could not convert to time zone \"%s\""
+#~ msgstr "无法转换到时间区域\"%s\""
 
-#~ msgid "redo record is at %X/%X; shutdown %s"
-#~ msgstr "重做记录是在%X/%X; 关闭 %s"
+#~ msgid "argument for function \"exp\" too big"
+#~ msgstr "对于函数 \"exp\" 参数太大"
 
-#~ msgid "unrecognized win32 error code: %lu"
-#~ msgstr "未知的 win32 错误码: %lu"
+#~ msgid "must be superuser to rotate log files"
+#~ msgstr "只有超级用户能切换日志文件"
 
-#~ msgid "mapped win32 error code %lu to %d"
-#~ msgstr "å°\86win32é\94\99误代ç \81%2$dæ\98 å°\84为%1$lu"
+#~ msgid "must be superuser to signal the postmaster"
+#~ msgstr "å\8fªæ\9c\89è¶\85级ç\94¨æ\88·å\8f¯ä»¥å\8f\91é\80\81ä¿¡å\8f·å\88°postmasterè¿\9bç¨\8b"
 
-#~ msgid "user name lookup failure: %s"
-#~ msgstr "用户名: %s查找失败"
+#~ msgid "could not format \"circle\" value"
+#~ msgstr "无法格式化 \"circle\" 的值"
+
+#~ msgid "invalid input syntax for type circle: \"%s\""
+#~ msgstr "无效的 circle 类型输入语法: \"%s\""
+
+#~ msgid "invalid input syntax for type polygon: \"%s\""
+#~ msgstr "无效的 polygon 类型输入语法: \"%s\""
+
+#~ msgid "invalid input syntax for type lseg: \"%s\""
+#~ msgstr "无效的 lseg 类型输入语法: \"%s\""
+
+#~ msgid "invalid input syntax for type point: \"%s\""
+#~ msgstr "无效的 point 类型输入语法: \"%s\""
+
+#~ msgid "invalid input syntax for type path: \"%s\""
+#~ msgstr "无效的 path 类型输入语法: \"%s\""
+
+#~ msgid "invalid input syntax for type line: \"%s\""
+#~ msgstr "无效的 line 类型输入语法: \"%s\""
+
+#~ msgid "invalid input syntax for type box: \"%s\""
+#~ msgstr "无效的 box 类型输入语法: \"%s\""
+
+#~ msgid "could not format \"path\" value"
+#~ msgstr "无法格式化 \"path\" 值"
+
+#~ msgid "multibyte flag character is not allowed"
+#~ msgstr "不允许使用多字节标志字符"
index 8c2465cfbbfd011c8ad93106efc930152b6be824..c9177f175d914442206056569c6ea99e0db1b2a8 100644 (file)
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psql (PostgreSQL 9.0)\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:43+0000\n"
-"PO-Revision-Date: 2016-01-03 23:26-0500\n"
+"POT-Creation-Date: 2016-04-18 04:44+0000\n"
+"PO-Revision-Date: 2016-06-12 15:59+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
 "Language-Team: Chinese (Simplified)\n"
 "Language: zh_CN\n"
@@ -59,8 +59,8 @@ msgstr "pclose调用失败: %s"
 # common.c:99
 # mainloop.c:71
 #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75
-#: ../../common/fe_memutils.c:98 command.c:318 input.c:205 mainloop.c:73
-#: mainloop.c:253
+#: ../../common/fe_memutils.c:98 command.c:330 input.c:227 mainloop.c:80
+#: mainloop.c:261
 #, c-format
 msgid "out of memory\n"
 msgstr "内存耗尽\n"
@@ -76,7 +76,7 @@ msgstr "无法复制空指针 (内部错误)\n"
 msgid "could not look up effective user ID %ld: %s"
 msgstr "无法找到有效的用户ID %ld: %s"
 
-#: ../../common/username.c:47 command.c:273
+#: ../../common/username.c:47 command.c:287
 msgid "user does not exist"
 msgstr "用户不存在"
 
@@ -120,44 +120,76 @@ msgstr "子进程被信号 %d 终止"
 msgid "child process exited with unrecognized status %d"
 msgstr "子进程结束,不明状态代码 %d"
 
+# print.c:1202
+#: ../../fe_utils/print.c:354
+#, c-format
+msgid "(%lu row)"
+msgid_plural "(%lu rows)"
+msgstr[0] "(%lu 行记录)"
+
+#: ../../fe_utils/print.c:2906
+#, c-format
+msgid "Interrupted\n"
+msgstr "已中断\n"
+
+#: ../../fe_utils/print.c:2970
+#, c-format
+msgid "Cannot add header to table content: column count of %d exceeded.\n"
+msgstr "无法对表的内容增加标题:已经超过%d列的数量.\n"
+
+#: ../../fe_utils/print.c:3010
+#, c-format
+msgid "Cannot add cell to table content: total cell count of %d exceeded.\n"
+msgstr "无法对表的内容添加单元: 总共有%d个单元超过.\n"
+
+#: ../../fe_utils/print.c:3259
+#, c-format
+msgid "invalid output format (internal error): %d"
+msgstr "无效的输出格式 (内部错误): %d"
+
+#: ../../fe_utils/psqlscan.l:713
+#, c-format
+msgid "skipping recursive expansion of variable \"%s\"\n"
+msgstr "跳过变量 \"%s\"的递归扩展\n"
+
 # command.c:120
-#: command.c:114
+#: command.c:128
 #, c-format
 msgid "Invalid command \\%s. Try \\? for help.\n"
 msgstr "无效的命令 \\%s,用 \\? 查看帮助。\n"
 
 # command.c:122
-#: command.c:116
+#: command.c:130
 #, c-format
 msgid "invalid command \\%s\n"
 msgstr "无效的命令 \\%s\n"
 
 # command.c:131
-#: command.c:127
+#: command.c:141
 #, c-format
 msgid "\\%s: extra argument \"%s\" ignored\n"
 msgstr "\\%s:忽略多余的参数 \"%s\" \n"
 
 # command.c:240
-#: command.c:271
+#: command.c:285
 #, c-format
 msgid "could not get home directory for user ID %ld: %s\n"
 msgstr "无法获取用户ID %ld: %s对应的home 目录\n"
 
 # command.c:256
-#: command.c:289
+#: command.c:303
 #, c-format
 msgid "\\%s: could not change directory to \"%s\": %s\n"
 msgstr "\\%s: 无法切换目录至 \"%s\": %s\n"
 
 # common.c:636
 # common.c:871
-#: command.c:304 common.c:442 common.c:500 common.c:962
+#: command.c:318 common.c:548 common.c:606 common.c:1139
 #, c-format
 msgid "You are currently not connected to a database.\n"
 msgstr "你目前没有连接到数据库。\n"
 
-#: command.c:331
+#: command.c:343
 #, c-format
 msgid ""
 "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at "
@@ -166,7 +198,7 @@ msgstr ""
 "以用户 \"%2$s\" 的身份,通过套接字\"%3$s\"在端口\"%4$s\"连接到数据库 \"%1$s"
 "\"\n"
 
-#: command.c:334
+#: command.c:346
 #, c-format
 msgid ""
 "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port "
@@ -176,32 +208,58 @@ msgstr ""
 
 # command.c:370
 # command.c:760
-#: command.c:535 command.c:605 command.c:1405
+#: command.c:559 command.c:629 command.c:725 command.c:1557
 #, c-format
 msgid "no query buffer\n"
 msgstr "没有查询缓存区\n"
 
-#: command.c:568 command.c:3168
+#: command.c:592 command.c:3408
 #, c-format
 msgid "invalid line number: %s\n"
 msgstr "行号无效: %s\n"
 
 # describe.c:117
-#: command.c:599
+#: command.c:623
 #, c-format
 msgid "The server (version %d.%d) does not support editing function source.\n"
 msgstr "服务器(版本%d.%d)不支持编辑函数源码.\n"
 
-#: command.c:679
+#: command.c:703 command.c:771
 msgid "No changes"
 msgstr "没有发生更改"
 
+# describe.c:117
+#: command.c:719
+#, c-format
+msgid "The server (version %d.%d) does not support editing view definitions.\n"
+msgstr "服务器(版本%d.%d)不支持编辑视图定义。\n"
+
 # command.c:433
-#: command.c:733
+#: command.c:825
 #, c-format
 msgid "%s: invalid encoding name or conversion procedure not found\n"
 msgstr "%s:无效的编码名称或找不到转换程序\n"
 
+# command.c:953
+# common.c:216
+# common.c:605
+# common.c:660
+# common.c:903
+#: command.c:850 command.c:1897 command.c:3510 common.c:152 common.c:199
+#: common.c:492 common.c:1185 common.c:1210 common.c:1311 copy.c:489
+#: copy.c:699 large_obj.c:156 large_obj.c:191 large_obj.c:253
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: command.c:854
+msgid "out of memory"
+msgstr "内存用尽"
+
+#: command.c:857
+msgid "There was no previous error."
+msgstr "没有之前的错误。"
+
 # command.c:501
 # command.c:535
 # command.c:549
@@ -209,14 +267,14 @@ msgstr "%s:无效的编码名称或找不到转换程序\n"
 # command.c:612
 # command.c:740
 # command.c:771
-#: command.c:830 command.c:880 command.c:894 command.c:911 command.c:1018
-#: command.c:1182 command.c:1385 command.c:1416
+#: command.c:951 command.c:1001 command.c:1015 command.c:1032 command.c:1139
+#: command.c:1303 command.c:1537 command.c:1568
 #, c-format
 msgid "\\%s: missing required argument\n"
 msgstr "\\%s:缺少所需参数\n"
 
 # command.c:598
-#: command.c:943
+#: command.c:1064
 msgid "Query buffer is empty."
 msgstr "查询缓存区是空的。"
 
@@ -224,65 +282,77 @@ msgstr "查询缓存区是空的。"
 # command.c:939
 # startup.c:187
 # startup.c:205
-#: command.c:953
+#: command.c:1074
 msgid "Enter new password: "
 msgstr "输入新的密码:"
 
-#: command.c:954
+#: command.c:1075
 msgid "Enter it again: "
 msgstr "再次输入:"
 
-#: command.c:958
+#: command.c:1079
 #, c-format
 msgid "Passwords didn't match.\n"
 msgstr "两次密码不匹配。\n"
 
-#: command.c:976
+#: command.c:1097
 #, c-format
 msgid "Password encryption failed.\n"
 msgstr "密码加密失败。\n"
 
 # startup.c:502
-#: command.c:1047 command.c:1163 command.c:1390
+#: command.c:1168 command.c:1284 command.c:1542
 #, c-format
 msgid "\\%s: error while setting variable\n"
 msgstr "\\%s: 设定变量值时出错\n"
 
 # command.c:632
-#: command.c:1110
+#: command.c:1231
 msgid "Query buffer reset (cleared)."
 msgstr "查询缓存区重置(已清空)。"
 
 # command.c:646
-#: command.c:1122
+#: command.c:1243
 #, c-format
 msgid "Wrote history to file \"%s\".\n"
 msgstr "写入历史记录到文件 \"%s\".\n"
 
-#: command.c:1187
+#: command.c:1308
 #, c-format
 msgid "\\%s: environment variable name must not contain \"=\"\n"
 msgstr "\\%s: 环境变量不能包含 \"=\"\n"
 
 # describe.c:117
-#: command.c:1229
+#: command.c:1350
 #, c-format
 msgid "The server (version %d.%d) does not support showing function source.\n"
 msgstr "服务器(版本%d.%d)不支持显示函数源码.\n"
 
 # copy.c:122
-#: command.c:1235
+#: command.c:1356
 #, c-format
 msgid "function name is required\n"
 msgstr "需要函数名\n"
 
+# describe.c:117
+#: command.c:1429
+#, c-format
+msgid "The server (version %d.%d) does not support showing view definitions.\n"
+msgstr "服务器(版本%d.%d)不支持显示视图定义。\n"
+
+# copy.c:122
+#: command.c:1435
+#, c-format
+msgid "view name is required\n"
+msgstr "需要视图名\n"
+
 # command.c:726
-#: command.c:1370
+#: command.c:1522
 msgid "Timing is on."
 msgstr "启用计时功能."
 
 # command.c:728
-#: command.c:1372
+#: command.c:1524
 msgid "Timing is off."
 msgstr "停止计时功能."
 
@@ -299,15 +369,16 @@ msgstr "停止计时功能."
 # common.c:170
 # copy.c:530
 # copy.c:575
-#: command.c:1433 command.c:1453 command.c:2087 command.c:2090 command.c:2093
-#: command.c:2099 command.c:2101 command.c:2109 command.c:2119 command.c:2128
-#: command.c:2142 command.c:2159 command.c:2218 common.c:74 copy.c:333
-#: copy.c:393 copy.c:408 psqlscan.l:1700 psqlscan.l:1711 psqlscan.l:1721
+#: command.c:1586 command.c:1606 command.c:2240 command.c:2243 command.c:2246
+#: command.c:2252 command.c:2254 command.c:2262 command.c:2272 command.c:2281
+#: command.c:2295 command.c:2312 command.c:2370 common.c:67 copy.c:332
+#: copy.c:392 copy.c:405 psqlscanslash.l:710 psqlscanslash.l:721
+#: psqlscanslash.l:731
 #, c-format
 msgid "%s: %s\n"
 msgstr "%s: %s\n"
 
-#: command.c:1544
+#: command.c:1700
 #, c-format
 msgid "+ opt(%d) = |%s|\n"
 msgstr "+ opt(%d) = |%s|\n"
@@ -316,7 +387,7 @@ msgstr "+ opt(%d) = |%s|\n"
 # command.c:939
 # startup.c:187
 # startup.c:205
-#: command.c:1570 startup.c:195
+#: command.c:1726 startup.c:207
 msgid "Password: "
 msgstr "口令:"
 
@@ -324,44 +395,32 @@ msgstr "口令:"
 # command.c:939
 # startup.c:187
 # startup.c:205
-#: command.c:1575 startup.c:197
+#: command.c:1731 startup.c:209
 #, c-format
 msgid "Password for user %s: "
 msgstr "用户 %s 的口令:"
 
-#: command.c:1622
+#: command.c:1778
 #, c-format
 msgid ""
 "All connection parameters must be supplied because no database connection "
 "exists\n"
 msgstr "没有可用的数据库连接,所以必须提供所有的连接参数\n"
 
-# command.c:953
-# common.c:216
-# common.c:605
-# common.c:660
-# common.c:903
-#: command.c:1743 command.c:3202 common.c:120 common.c:413 common.c:1005
-#: common.c:1030 common.c:1130 copy.c:492 copy.c:702 large_obj.c:156
-#: large_obj.c:191 large_obj.c:253 psqlscan.l:1972
-#, c-format
-msgid "%s"
-msgstr "%s"
-
 # command.c:957
-#: command.c:1747
+#: command.c:1901
 #, c-format
 msgid "Previous connection kept\n"
 msgstr "保留上一次连接\n"
 
 # command.c:969
-#: command.c:1751
+#: command.c:1905
 #, c-format
 msgid "\\connect: %s"
 msgstr "\\连接:%s"
 
 # command.c:981
-#: command.c:1785
+#: command.c:1937
 #, c-format
 msgid ""
 "You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" "
@@ -371,7 +430,7 @@ msgstr ""
 "\".\n"
 
 # command.c:981
-#: command.c:1788
+#: command.c:1940
 #, c-format
 msgid ""
 "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at "
@@ -380,17 +439,17 @@ msgstr ""
 "您现在已经连接到数据库 \"%s\", 用户 \"%s\",主机 \"%s\",端口号 \"%s\".\n"
 
 # command.c:981
-#: command.c:1792
+#: command.c:1944
 #, c-format
 msgid "You are now connected to database \"%s\" as user \"%s\".\n"
 msgstr "您现在已经连接到数据库 \"%s\",用户 \"%s\".\n"
 
-#: command.c:1826
+#: command.c:1978
 #, c-format
 msgid "%s (%s, server %s)\n"
 msgstr "%s (%s, 服务器 %s)\n"
 
-#: command.c:1834
+#: command.c:1986
 #, c-format
 msgid ""
 "WARNING: %s major version %d.%d, server major version %d.%d.\n"
@@ -400,27 +459,26 @@ msgstr ""
 "     一些psql功能可能无法正常使用。\n"
 
 # startup.c:652
-#: command.c:1868
+#: command.c:2020
 #, c-format
 msgid "SSL connection (protocol: %s, cipher: %s, bits: %s, compression: %s)\n"
 msgstr "SSL 连接(协议:%s,密码:%s,密钥位:%s,压缩:%s)\n"
 
-#: command.c:1869 command.c:1870 command.c:1871
-#| msgid "[unknown]"
+#: command.c:2021 command.c:2022 command.c:2023
 msgid "unknown"
 msgstr "未知"
 
 # help.c:48
-#: command.c:1872 help.c:46
+#: command.c:2024 help.c:46
 msgid "off"
 msgstr "关闭"
 
 # help.c:48
-#: command.c:1872 help.c:46
+#: command.c:2024 help.c:46
 msgid "on"
 msgstr "开启"
 
-#: command.c:1892
+#: command.c:2044
 #, c-format
 msgid ""
 "WARNING: Console code page (%u) differs from Windows code page (%u)\n"
@@ -431,7 +489,7 @@ msgstr ""
 "         8-bit 字符可能无法正常工作。请查阅 psql 参考\n"
 "         页 \"Windows 用户注意事项\" 的详细说明。\n"
 
-#: command.c:1976
+#: command.c:2129
 #, c-format
 msgid ""
 "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a "
@@ -439,31 +497,31 @@ msgid ""
 msgstr "必须设置环境变量 PSQL_EDITOR_LINENUMBER_ARG,用于指定行号\n"
 
 # command.c:1103
-#: command.c:2005
+#: command.c:2158
 #, c-format
 msgid "could not start editor \"%s\"\n"
 msgstr "无法启动编辑器 \"%s\"\n"
 
 # command.c:1105
-#: command.c:2007
+#: command.c:2160
 #, c-format
 msgid "could not start /bin/sh\n"
 msgstr "无法启动 /bin/sh\n"
 
 # command.c:1148
-#: command.c:2045
+#: command.c:2198
 #, c-format
 msgid "could not locate temporary directory: %s\n"
 msgstr "找不到临时目录:%s\n"
 
 # command.c:1148
-#: command.c:2072
+#: command.c:2225
 #, c-format
 msgid "could not open temporary file \"%s\": %s\n"
 msgstr "无法打开临时文件 \"%s\": %s\n"
 
 # command.c:1340
-#: command.c:2376
+#: command.c:2499
 #, c-format
 msgid ""
 "\\pset: allowed formats are unaligned, aligned, wrapped, html, asciidoc, "
@@ -472,231 +530,244 @@ msgstr ""
 "\\pset: 允许的格式是 unaligned, aligned, wrapped, html, asciidoc, latex, "
 "latex-longtable, troff-ms\n"
 
-#: command.c:2395
+#: command.c:2518
 #, c-format
 msgid "\\pset: allowed line styles are ascii, old-ascii, unicode\n"
 msgstr "\\pset: 所允许使用的文本风格是ASCII, OLD-ASCII, UNICODE\n"
 
-#: command.c:2411
+#: command.c:2534
 #, c-format
-msgid "\\pset: allowed unicode border linestyles are single, double\n"
-msgstr "\\pset: 允许的unicode边界线型是 single 和 double\n"
+#| msgid "\\pset: allowed unicode border linestyles are single, double\n"
+msgid "\\pset: allowed Unicode border line styles are single, double\n"
+msgstr "\\pset:允许的 Unicode 边界线型是 single 和 double\n"
 
-#: command.c:2426
+#: command.c:2549
 #, c-format
-msgid "\\pset: allowed unicode column linestyles are single, double\n"
-msgstr "\\pset: 允许的unicode列线型是 single 和 double\n"
+#| msgid "\\pset: allowed unicode column linestyles are single, double\n"
+msgid "\\pset: allowed Unicode column line styles are single, double\n"
+msgstr "\\pset:允许的 Unicode 列线型是 single 和 double\n"
 
-#: command.c:2441
+#: command.c:2564
 #, c-format
-msgid "\\pset: allowed unicode header linestyles are single, double\n"
-msgstr "\\pset: 允许的unicode头部线型是 single 和 double\n"
+#| msgid "\\pset: allowed unicode header linestyles are single, double\n"
+msgid "\\pset: allowed Unicode header line styles are single, double\n"
+msgstr "\\pset:允许的 Unicode 页眉线型是 single 和 double\n"
 
 # command.c:1493
-#: command.c:2593 command.c:2772
+#: command.c:2716 command.c:2895
 #, c-format
 msgid "\\pset: unknown option: %s\n"
 msgstr "\\pset: 不明选项: %s\n"
 
 # command.c:1355
-#: command.c:2611
+#: command.c:2734
 #, c-format
 msgid "Border style is %d.\n"
 msgstr "边缘风格是 %d。\n"
 
-#: command.c:2617
+#: command.c:2740
 #, c-format
 msgid "Target width is unset.\n"
 msgstr "目标宽度未设置.\n"
 
-#: command.c:2619
+#: command.c:2742
 #, c-format
 msgid "Target width is %d.\n"
 msgstr "目标宽度为 %d.\n"
 
 # command.c:1364
-#: command.c:2626
+#: command.c:2749
 #, c-format
 msgid "Expanded display is on.\n"
 msgstr "扩展显示已打开。\n"
 
 # command.c:1364
-#: command.c:2628
+#: command.c:2751
 #, c-format
 msgid "Expanded display is used automatically.\n"
 msgstr "扩展显示已自动打开。\n"
 
 # command.c:1365
-#: command.c:2630
+#: command.c:2753
 #, c-format
 msgid "Expanded display is off.\n"
 msgstr "扩展显示已关闭。\n"
 
 # command.c:1389
-#: command.c:2637 command.c:2645
+#: command.c:2760 command.c:2768
 #, c-format
 msgid "Field separator is zero byte.\n"
 msgstr "栏位分隔符号是0字节\n"
 
 # command.c:1389
-#: command.c:2639
+#: command.c:2762
 #, c-format
 msgid "Field separator is \"%s\".\n"
 msgstr "栏位分隔符号是 \"%s\"。\n"
 
 # command.c:1485
-#: command.c:2652
+#: command.c:2775
 #, c-format
 msgid "Default footer is on.\n"
 msgstr "打开默认步进器。\n"
 
 # command.c:1487
-#: command.c:2654
+#: command.c:2777
 #, c-format
 msgid "Default footer is off.\n"
 msgstr "关闭默认步进器。\n"
 
 # command.c:1345
-#: command.c:2660
+#: command.c:2783
 #, c-format
 msgid "Output format is %s.\n"
 msgstr "输出格式是 %s。\n"
 
 # command.c:1355
-#: command.c:2666
+#: command.c:2789
 #, c-format
 msgid "Line style is %s.\n"
 msgstr "文本的风格是%s. \n"
 
 # command.c:1377
-#: command.c:2673
+#: command.c:2796
 #, c-format
 msgid "Null display is \"%s\".\n"
 msgstr " \"%s\" 是空值显示。\n"
 
-#: command.c:2681
+#: command.c:2804
 #, c-format
 msgid "Locale-adjusted numeric output is on.\n"
 msgstr "启动语言环境调整后的数值输出。\n"
 
-#: command.c:2683
+#: command.c:2806
 #, c-format
 msgid "Locale-adjusted numeric output is off.\n"
 msgstr "关闭语言环境调整后的数值输出。\n"
 
 # command.c:1470
-#: command.c:2690
+#: command.c:2813
 #, c-format
 msgid "Pager is used for long output.\n"
 msgstr "显示大量数据时使用分页器。\n"
 
 # command.c:1472
-#: command.c:2692
+#: command.c:2815
 #, c-format
 msgid "Pager is always used.\n"
 msgstr "总是使用分页器。\n"
 
 # command.c:1474
-#: command.c:2694
+#: command.c:2817
 #, c-format
 msgid "Pager usage is off.\n"
 msgstr "不使用分页器。\n"
 
-#: command.c:2700
+#: command.c:2823
 #, c-format
 msgid "Pager won't be used for less than %d line.\n"
 msgid_plural "Pager won't be used for less than %d lines.\n"
 msgstr[0] "分页器不能被用于少于%d行。\n"
 
 # command.c:1405
-#: command.c:2710 command.c:2720
+#: command.c:2833 command.c:2843
 #, c-format
 msgid "Record separator is zero byte.\n"
 msgstr "记录分隔符号是 0字节。\n"
 
 # command.c:1403
-#: command.c:2712
+#: command.c:2835
 #, c-format
 msgid "Record separator is <newline>.\n"
 msgstr "记录分隔符号是 <newline>。\n"
 
 # command.c:1405
-#: command.c:2714
+#: command.c:2837
 #, c-format
 msgid "Record separator is \"%s\".\n"
 msgstr "记录分隔符号是 \"%s\"。\n"
 
 # command.c:1452
-#: command.c:2727
+#: command.c:2850
 #, c-format
 msgid "Table attributes are \"%s\".\n"
 msgstr "表属性是 \"%s\".\n"
 
 # command.c:1454
-#: command.c:2730
+#: command.c:2853
 #, c-format
 msgid "Table attributes unset.\n"
 msgstr "未设置数据表属性。\n"
 
 # command.c:1434
-#: command.c:2737
+#: command.c:2860
 #, c-format
 msgid "Title is \"%s\".\n"
 msgstr "标题是 \"%s\"。\n"
 
 # command.c:1436
-#: command.c:2739
+#: command.c:2862
 #, c-format
 msgid "Title is unset.\n"
 msgstr "无标题。\n"
 
 # command.c:1418
-#: command.c:2746
+#: command.c:2869
 #, c-format
 msgid "Tuples only is on.\n"
 msgstr "开启只显示元组。\n"
 
 # command.c:1418
-#: command.c:2748
+#: command.c:2871
 #, c-format
 msgid "Tuples only is off.\n"
 msgstr "关闭只显示元组。\n"
 
 # command.c:1355
-#: command.c:2754
+#: command.c:2877
 #, c-format
-msgid "Unicode border linestyle is \"%s\".\n"
-msgstr "Unicode的边界线型是\"%s\"。\n"
+#| msgid "Unicode border linestyle is \"%s\".\n"
+msgid "Unicode border line style is \"%s\".\n"
+msgstr "Unicode 边界线型是 \"%s\"。\n"
 
 # command.c:1355
-#: command.c:2760
+#: command.c:2883
 #, c-format
-msgid "Unicode column linestyle is \"%s\".\n"
-msgstr "Unicode的列线型是\"%s\"。\n"
+#| msgid "Unicode column linestyle is \"%s\".\n"
+msgid "Unicode column line style is \"%s\".\n"
+msgstr "Unicode 列线型是 \"%s\"。\n"
 
 # command.c:1355
-#: command.c:2766
+#: command.c:2889
 #, c-format
-msgid "Unicode header linestyle is \"%s\".\n"
-msgstr "Unicode的头部线型是\"%s\"。\n"
+#| msgid "Unicode header linestyle is \"%s\".\n"
+msgid "Unicode header line style is \"%s\".\n"
+msgstr "Unicode 页眉线型是 \"%s\"。\n"
 
 # command.c:1532
-#: command.c:2926
+#: command.c:3049
 #, c-format
 msgid "\\!: failed\n"
 msgstr "\\!:失败\n"
 
-#: command.c:2946 common.c:548
+#: command.c:3073 common.c:654
 #, c-format
 msgid "\\watch cannot be used with an empty query\n"
 msgstr "\\watch命令不能用于空查询\n"
 
-#: command.c:2967
+#: command.c:3110
+#, c-format
+#| msgid "%s (%s, server %s)\n"
+msgid "%s\t%s (every %gs)\n"
+msgstr "%s\t%s (每 %gs)\n"
+
+#: command.c:3113
 #, c-format
-msgid "Watch every %lds\t%s"
-msgstr "Watch命令每%lds\t%s调用一次"
+#| msgid "%s (%s, server %s)\n"
+msgid "%s (every %gs)\n"
+msgstr "%s (每 %gs)\n"
 
-#: command.c:3018 command.c:3025 common.c:448 common.c:455 common.c:988
+#: command.c:3167 command.c:3174 common.c:554 common.c:561 common.c:1168
 #, c-format
 msgid ""
 "********* QUERY **********\n"
@@ -709,55 +780,66 @@ msgstr ""
 "**************************\n"
 "\n"
 
+#: command.c:3325
+#, c-format
+#| msgid "\"%s\" is not a view"
+msgid "%s.%s is not a view\n"
+msgstr "%s.%s 不是一个视图\n"
+
+#: common.c:137
+#, c-format
+msgid "can't escape without active connection\n"
+msgstr "没有数据库连接时无法escape\n"
+
 # common.c:298
-#: common.c:287
+#: common.c:366
 #, c-format
 msgid "connection to server was lost\n"
 msgstr "与数据库的连接已经断开\n"
 
 # common.c:302
-#: common.c:291
+#: common.c:370
 #, c-format
 msgid "The connection to the server was lost. Attempting reset: "
 msgstr "与服务器的连接已断开,正在试图重置: "
 
 # common.c:307
-#: common.c:296
+#: common.c:375
 #, c-format
 msgid "Failed.\n"
 msgstr "失败。\n"
 
 # common.c:314
-#: common.c:303
+#: common.c:382
 #, c-format
 msgid "Succeeded.\n"
 msgstr "完成。\n"
 
 # fe-exec.c:1371
-#: common.c:403 common.c:759 common.c:927
+#: common.c:482 common.c:931 common.c:1103
 #, c-format
 msgid "unexpected PQresultStatus: %d\n"
 msgstr "意外的 PQresultStatus: %d\n"
 
-#: common.c:555
+#: common.c:661
 #, c-format
 msgid "\\watch cannot be used with COPY\n"
 msgstr "\\watch不能用于COPY命令中\n"
 
 # fe-exec.c:1371
-#: common.c:560
+#: common.c:666
 #, c-format
 msgid "unexpected result status for \\watch\n"
 msgstr "\\Watch出现意外的结果状态\n"
 
 # common.c:930
-#: common.c:571 common.c:1146
+#: common.c:677 common.c:1327
 #, c-format
 msgid "Time: %.3f ms\n"
 msgstr "时间:%.3f ms\n"
 
 # common.c:691
-#: common.c:589
+#: common.c:695
 #, c-format
 msgid ""
 "Asynchronous notification \"%s\" with payload \"%s\" received from server "
@@ -766,30 +848,30 @@ msgstr ""
 "从PID为%3$d的服务器进程接收到带有字节流量\"%2$s\"的异步通知消息\"%1$s\".\n"
 
 # common.c:691
-#: common.c:592
+#: common.c:698
 #, c-format
 msgid ""
 "Asynchronous notification \"%s\" received from server process with PID %d.\n"
 msgstr "收到来自服务器 \"%s\" 进程 PID %d 非同步通知。\n"
 
-#: common.c:654
+#: common.c:756
 #, c-format
 msgid "no rows returned for \\gset\n"
 msgstr "\\gset没有记录行返回\n"
 
-#: common.c:659
+#: common.c:761
 #, c-format
 msgid "more than one row returned for \\gset\n"
 msgstr "\\gset返回超过1个记录行\n"
 
 # startup.c:502
-#: common.c:685
+#: common.c:787
 #, c-format
 msgid "could not set variable \"%s\"\n"
 msgstr "无法设置变量 \"%s\"\n"
 
 # common.c:879
-#: common.c:970
+#: common.c:1148
 #, c-format
 msgid ""
 "***(Single step mode: verify command)"
@@ -803,81 +885,80 @@ msgstr ""
 "***(按 Enter 键继续或键入 x 来取消)********************\n"
 
 # describe.c:117
-#: common.c:1021
+#: common.c:1201
 #, c-format
 msgid ""
 "The server (version %d.%d) does not support savepoints for "
 "ON_ERROR_ROLLBACK.\n"
 msgstr "服务器(版本 %d.%d)不支持保存点(Savepoint)ON_ERROR_ROLLBACK。\n"
 
-#: common.c:1075
+#: common.c:1256
 #, c-format
-#| msgid "STATEMENT:  "
 msgid "STATEMENT:  %s\n"
 msgstr "语句:%s\n"
 
 # large_obj.c:58
-#: common.c:1118
+#: common.c:1299
 #, c-format
 msgid "unexpected transaction status (%d)\n"
 msgstr "意外的事务状态值 (%d)\n"
 
 # copy.c:122
-#: copy.c:98
+#: copy.c:99
 #, c-format
 msgid "\\copy: arguments required\n"
 msgstr "\\copy:需要参数\n"
 
 # copy.c:408
-#: copy.c:253
+#: copy.c:254
 #, c-format
 msgid "\\copy: parse error at \"%s\"\n"
 msgstr "\\copy:在 \"%s\" 发生解读错误\n"
 
 # copy.c:410
-#: copy.c:255
+#: copy.c:256
 #, c-format
 msgid "\\copy: parse error at end of line\n"
 msgstr "\\copy:在行尾发生解读错误\n"
 
-#: copy.c:330
+#: copy.c:329
 #, c-format
 msgid "could not execute command \"%s\": %s\n"
 msgstr "无法执行命令 \"%s\": %s\n"
 
-#: copy.c:346
+#: copy.c:345
 #, c-format
 msgid "could not stat file \"%s\": %s\n"
 msgstr "无法获取文件 \"%s\":%s 的状态\n"
 
 # copy.c:541
-#: copy.c:350
+#: copy.c:349
 #, c-format
 msgid "%s: cannot copy from/to a directory\n"
 msgstr "%s:无法从目录复制或复制到目录\n"
 
-#: copy.c:387
+#: copy.c:386
 #, c-format
 msgid "could not close pipe to external command: %s\n"
 msgstr "无法为外部命令: %s关闭管道\n"
 
 # command.c:1103
-#: copy.c:455 copy.c:466
+#: copy.c:452 copy.c:463
 #, c-format
 msgid "could not write COPY data: %s\n"
 msgstr "无法写入 COPY 数据:%s\n"
 
-#: copy.c:473
+#: copy.c:470
 #, c-format
 msgid "COPY data transfer failed: %s"
 msgstr "COPY 数据转换失败:%s"
 
-#: copy.c:534
+#: copy.c:531
 msgid "canceled by user"
 msgstr "依用户取消"
 
 # copy.c:668
-#: copy.c:545
+#: copy.c:542
 msgid ""
 "Enter data to be copied followed by a newline.\n"
 "End with a backslash and a period on a line by itself."
@@ -885,11 +966,11 @@ msgstr ""
 "输入要复制的数据并且换行。\n"
 "在独立的一行上输入一个反斜线和一个句点结束。"
 
-#: copy.c:674
+#: copy.c:671
 msgid "aborted because of read failure"
 msgstr "因读取失败已被中止"
 
-#: copy.c:698
+#: copy.c:695
 msgid "trying to exit copy mode"
 msgstr "正在尝试退出"
 
@@ -903,10 +984,10 @@ msgstr "正在尝试退出"
 # describe.c:1585
 # describe.c:1633
 #: describe.c:71 describe.c:264 describe.c:496 describe.c:626 describe.c:769
-#: describe.c:886 describe.c:956 describe.c:2929 describe.c:3134
-#: describe.c:3224 describe.c:3469 describe.c:3606 describe.c:3835
-#: describe.c:3907 describe.c:3918 describe.c:3977 describe.c:4385
-#: describe.c:4464
+#: describe.c:886 describe.c:956 describe.c:2931 describe.c:3136
+#: describe.c:3226 describe.c:3471 describe.c:3608 describe.c:3837
+#: describe.c:3909 describe.c:3920 describe.c:3979 describe.c:4387
+#: describe.c:4467
 msgid "Schema"
 msgstr "架构模式"
 
@@ -923,11 +1004,11 @@ msgstr "架构模式"
 # describe.c:1634
 # describe.c:1727
 #: describe.c:72 describe.c:156 describe.c:164 describe.c:265 describe.c:497
-#: describe.c:627 describe.c:688 describe.c:770 describe.c:957 describe.c:2930
-#: describe.c:3056 describe.c:3135 describe.c:3225 describe.c:3304
-#: describe.c:3470 describe.c:3534 describe.c:3607 describe.c:3836
-#: describe.c:3908 describe.c:3919 describe.c:3978 describe.c:4167
-#: describe.c:4248 describe.c:4462
+#: describe.c:627 describe.c:688 describe.c:770 describe.c:957 describe.c:2932
+#: describe.c:3058 describe.c:3137 describe.c:3227 describe.c:3306
+#: describe.c:3472 describe.c:3536 describe.c:3609 describe.c:3838
+#: describe.c:3910 describe.c:3921 describe.c:3980 describe.c:4169
+#: describe.c:4250 describe.c:4465
 msgid "Name"
 msgstr "名称"
 
@@ -953,12 +1034,12 @@ msgstr "参数数据类型"
 # describe.c:1733
 # large_obj.c:256
 #: describe.c:105 describe.c:187 describe.c:370 describe.c:545 describe.c:642
-#: describe.c:713 describe.c:959 describe.c:1572 describe.c:2730
-#: describe.c:2963 describe.c:3087 describe.c:3161 describe.c:3234
-#: describe.c:3317 describe.c:3385 describe.c:3477 describe.c:3543
-#: describe.c:3608 describe.c:3744 describe.c:3784 describe.c:3852
-#: describe.c:3911 describe.c:3920 describe.c:3979 describe.c:4193
-#: describe.c:4270 describe.c:4399 describe.c:4465 large_obj.c:289
+#: describe.c:713 describe.c:959 describe.c:1572 describe.c:2732
+#: describe.c:2965 describe.c:3089 describe.c:3163 describe.c:3236
+#: describe.c:3319 describe.c:3387 describe.c:3479 describe.c:3545
+#: describe.c:3610 describe.c:3746 describe.c:3786 describe.c:3854
+#: describe.c:3913 describe.c:3922 describe.c:3981 describe.c:4195
+#: describe.c:4272 describe.c:4401 describe.c:4468 large_obj.c:289
 #: large_obj.c:299
 msgid "Description"
 msgstr "描述"
@@ -980,8 +1061,8 @@ msgstr "服务器(版本%d.%d) 不支持使用表空间.\n"
 # describe.c:1478
 # describe.c:1727
 #: describe.c:157 describe.c:165 describe.c:367 describe.c:535 describe.c:689
-#: describe.c:885 describe.c:2939 describe.c:3060 describe.c:3306
-#: describe.c:3535 describe.c:4168 describe.c:4249 large_obj.c:288
+#: describe.c:885 describe.c:2941 describe.c:3062 describe.c:3308
+#: describe.c:3537 describe.c:4170 describe.c:4251 large_obj.c:288
 msgid "Owner"
 msgstr "拥有者"
 
@@ -995,8 +1076,8 @@ msgid "Options"
 msgstr "选项"
 
 # describe.c:257
-#: describe.c:182 describe.c:508 describe.c:705 describe.c:2955
-#: describe.c:2959
+#: describe.c:182 describe.c:508 describe.c:705 describe.c:2957
+#: describe.c:2961
 msgid "Size"
 msgstr "大小"
 
@@ -1039,7 +1120,7 @@ msgstr "常规"
 # describe.c:1478
 # describe.c:1587
 #: describe.c:284 describe.c:329 describe.c:346 describe.c:776 describe.c:895
-#: describe.c:1541 describe.c:2938 describe.c:3136 describe.c:4267
+#: describe.c:1541 describe.c:2940 describe.c:3138 describe.c:4269
 msgid "Type"
 msgstr "类型"
 
@@ -1123,7 +1204,7 @@ msgid "Result type"
 msgstr "结果类型"
 
 # describe.c:1691
-#: describe.c:635 describe.c:3376 describe.c:3743
+#: describe.c:635 describe.c:3378 describe.c:3745
 msgid "Function"
 msgstr "函数"
 
@@ -1138,7 +1219,7 @@ msgid "Encoding"
 msgstr "字元编码"
 
 # describe.c:128
-#: describe.c:695 describe.c:3471
+#: describe.c:695 describe.c:3473
 msgid "Collate"
 msgstr "校对规则"
 
@@ -1146,7 +1227,7 @@ msgstr "校对规则"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: describe.c:696 describe.c:3472
+#: describe.c:696 describe.c:3474
 msgid "Ctype"
 msgstr "Ctype"
 
@@ -1163,32 +1244,32 @@ msgstr "数据库列表"
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:771 describe.c:888 describe.c:2931
+#: describe.c:771 describe.c:888 describe.c:2933
 msgid "table"
 msgstr "数据表"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:772 describe.c:2932
+#: describe.c:772 describe.c:2934
 msgid "view"
 msgstr "视图"
 
-#: describe.c:773 describe.c:2933
+#: describe.c:773 describe.c:2935
 msgid "materialized view"
 msgstr "物化视图"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:774 describe.c:890 describe.c:2935
+#: describe.c:774 describe.c:890 describe.c:2937
 msgid "sequence"
 msgstr "序列数"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:775 describe.c:2937
+#: describe.c:775 describe.c:2939
 msgid "foreign table"
 msgstr "所引用的外表"
 
@@ -1204,7 +1285,7 @@ msgstr "策略"
 # describe.c:133
 # describe.c:415
 # describe.c:1733
-#: describe.c:844 describe.c:4609 describe.c:4613
+#: describe.c:844 describe.c:4612 describe.c:4616
 msgid "Access privileges"
 msgstr "存取权限"
 
@@ -1370,8 +1451,8 @@ msgstr "值"
 msgid "Definition"
 msgstr "定义"
 
-#: describe.c:1560 describe.c:4188 describe.c:4269 describe.c:4337
-#: describe.c:4398
+#: describe.c:1560 describe.c:4190 describe.c:4271 describe.c:4339
+#: describe.c:4400
 msgid "FDW Options"
 msgstr "FDW选项"
 
@@ -1472,20 +1553,24 @@ msgid "Policies:"
 msgstr "策略:"
 
 #: describe.c:2066
-msgid "Policies (Forced Row Security Enabled):"
-msgstr "策略(强制启用行安全性):"
+#| msgid "Policies (Forced Row Security Enabled):"
+msgid "Policies (forced row security enabled):"
+msgstr "策略(强制行安全性启用):"
 
 #: describe.c:2069
-msgid "Policies (Row Security Enabled): (None)"
-msgstr "策略(行安全性被启用):(无)"
+#| msgid "Policies (Row Security Enabled): (None)"
+msgid "Policies (row security enabled): (none)"
+msgstr "策略(行安全性启用):(无)"
 
 #: describe.c:2072
-msgid "Policies (Forced Row Security Enabled): (None)"
-msgstr "策略(强制启用行安全性):(无)"
+#| msgid "Policies (Forced Row Security Enabled): (None)"
+msgid "Policies (forced row security enabled): (none)"
+msgstr "策略(强制行安全性启用):(无)"
 
 #: describe.c:2075
-msgid "Policies (Row Security Disabled):"
-msgstr "策略(行安全性被禁用):"
+#| msgid "Policies (Row Security Disabled):"
+msgid "Policies (row security disabled):"
+msgstr "策略(行安全性禁用):"
 
 # describe.c:983
 # describe.c:1204
@@ -1565,7 +1650,7 @@ msgid "Has OIDs: yes"
 msgstr "有 OIDs:yes"
 
 # describe.c:1342
-#: describe.c:2621
+#: describe.c:2620
 #, c-format
 msgid "Tablespace: \"%s\""
 msgstr "表空间:\"%s\""
@@ -1573,430 +1658,430 @@ msgstr "表空间:\"%s\""
 # describe.c:1342
 #. translator: before this string there's an index description like
 #. '"foo_pkey" PRIMARY KEY, btree (a)'
-#: describe.c:2633
+#: describe.c:2632
 #, c-format
 msgid ", tablespace \"%s\""
 msgstr ", 表空间 \"%s\""
 
 # describe.c:1431
-#: describe.c:2723
+#: describe.c:2725
 msgid "List of roles"
 msgstr "角色列表"
 
 # describe.c:1375
-#: describe.c:2725
+#: describe.c:2727
 msgid "Role name"
 msgstr "角色名称"
 
-#: describe.c:2726
+#: describe.c:2728
 msgid "Attributes"
 msgstr "属性"
 
-#: describe.c:2727
+#: describe.c:2729
 msgid "Member of"
 msgstr "成员属于"
 
 # describe.c:1377
-#: describe.c:2738
+#: describe.c:2740
 msgid "Superuser"
 msgstr "超级用户"
 
-#: describe.c:2741
+#: describe.c:2743
 msgid "No inheritance"
 msgstr "没有继承"
 
-#: describe.c:2744
+#: describe.c:2746
 msgid "Create role"
 msgstr "建立角色"
 
-#: describe.c:2747
+#: describe.c:2749
 msgid "Create DB"
 msgstr "建立 DB"
 
-#: describe.c:2750
+#: describe.c:2752
 msgid "Cannot login"
 msgstr "无法登录"
 
 # describe.c:1636
-#: describe.c:2754
+#: describe.c:2756
 msgid "Replication"
 msgstr "复制"
 
-#: describe.c:2758
+#: describe.c:2760
 msgid "Bypass RLS"
 msgstr "绕过RLS"
 
 # help.c:123
-#: describe.c:2767
+#: describe.c:2769
 msgid "No connections"
 msgstr "没有连接"
 
 # help.c:123
-#: describe.c:2769
+#: describe.c:2771
 #, c-format
 msgid "%d connection"
 msgid_plural "%d connections"
 msgstr[0] "%d个连接"
 
-#: describe.c:2779
+#: describe.c:2781
 msgid "Password valid until "
 msgstr "密码有效直至"
 
 # describe.c:1375
-#: describe.c:2835
+#: describe.c:2837
 msgid "Role"
 msgstr "角色"
 
-#: describe.c:2836
+#: describe.c:2838
 msgid "Database"
 msgstr "数据库"
 
-#: describe.c:2837
+#: describe.c:2839
 msgid "Settings"
 msgstr "设置"
 
-#: describe.c:2847
+#: describe.c:2849
 #, c-format
 msgid "No per-database role settings support in this server version.\n"
 msgstr "在这个版本的服务器中不支持对每个数据库的角色进行设定.\n"
 
 # describe.c:1542
-#: describe.c:2858
+#: describe.c:2860
 #, c-format
 msgid "No matching settings found.\n"
 msgstr "没有找到所匹配的设置.\n"
 
 # describe.c:1544
-#: describe.c:2860
+#: describe.c:2862
 #, c-format
 msgid "No settings found.\n"
 msgstr "没有找到设置.\n"
 
 # describe.c:1549
-#: describe.c:2865
+#: describe.c:2867
 msgid "List of settings"
 msgstr "设置的列表"
 
 # describe.c:543
 # describe.c:1477
-#: describe.c:2934
+#: describe.c:2936
 msgid "index"
 msgstr "索引"
 
 # describe.c:1478
-#: describe.c:2936
+#: describe.c:2938
 msgid "special"
 msgstr "特殊"
 
 # describe.c:1483
-#: describe.c:2944 describe.c:4386
+#: describe.c:2946 describe.c:4388
 msgid "Table"
 msgstr "数据表"
 
 # describe.c:1542
-#: describe.c:3020
+#: describe.c:3022
 #, c-format
 msgid "No matching relations found.\n"
 msgstr "没有找到符合的关联。\n"
 
 # describe.c:1544
-#: describe.c:3022
+#: describe.c:3024
 #, c-format
 msgid "No relations found.\n"
 msgstr "找不到关联。\n"
 
 # describe.c:1549
-#: describe.c:3027
+#: describe.c:3029
 msgid "List of relations"
 msgstr "关联列表"
 
-#: describe.c:3064
+#: describe.c:3066
 msgid "Trusted"
 msgstr "信任"
 
 # describe.c:257
-#: describe.c:3072
+#: describe.c:3074
 msgid "Internal Language"
 msgstr "内部语言"
 
-#: describe.c:3073
+#: describe.c:3075
 msgid "Call Handler"
 msgstr "调用函数"
 
-#: describe.c:3074 describe.c:4175
+#: describe.c:3076 describe.c:4177
 msgid "Validator"
 msgstr "验证"
 
-#: describe.c:3077
+#: describe.c:3079
 msgid "Inline Handler"
 msgstr "内联函数"
 
 # describe.c:1431
-#: describe.c:3105
+#: describe.c:3107
 msgid "List of languages"
 msgstr "语言列表"
 
 # describe.c:1588
-#: describe.c:3149
+#: describe.c:3151
 msgid "Modifier"
 msgstr "修饰词"
 
-#: describe.c:3150
+#: describe.c:3152
 msgid "Check"
 msgstr "检查"
 
 # describe.c:1602
-#: describe.c:3192
+#: describe.c:3194
 msgid "List of domains"
 msgstr "共同值域列表"
 
 # describe.c:1635
-#: describe.c:3226
+#: describe.c:3228
 msgid "Source"
 msgstr "来源"
 
 # describe.c:1636
-#: describe.c:3227
+#: describe.c:3229
 msgid "Destination"
 msgstr "目的地"
 
 # describe.c:1262
 # describe.c:1638
 # describe.c:1692
-#: describe.c:3228 describe.c:3377
+#: describe.c:3230 describe.c:3379
 msgid "no"
 msgstr "否"
 
 # describe.c:1262
 # describe.c:1637
 # describe.c:1694
-#: describe.c:3228 describe.c:3379
+#: describe.c:3230 describe.c:3381
 msgid "yes"
 msgstr "是"
 
 # describe.c:1639
-#: describe.c:3229
+#: describe.c:3231
 msgid "Default?"
 msgstr "预设?"
 
 # describe.c:1653
-#: describe.c:3266
+#: describe.c:3268
 msgid "List of conversions"
 msgstr "字元编码转换列表"
 
-#: describe.c:3305
+#: describe.c:3307
 msgid "Event"
 msgstr "Event"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:3307
+#: describe.c:3309
 msgid "enabled"
 msgstr "启用"
 
 # describe.c:1636
-#: describe.c:3308
+#: describe.c:3310
 msgid "replica"
 msgstr "replica"
 
-#: describe.c:3309
+#: describe.c:3311
 msgid "always"
 msgstr "经常"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:3310
+#: describe.c:3312
 msgid "disabled"
 msgstr "禁用"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:3311
+#: describe.c:3313
 msgid "Enabled"
 msgstr "使能"
 
-#: describe.c:3312
+#: describe.c:3314
 msgid "Procedure"
 msgstr "过程"
 
-#: describe.c:3313
+#: describe.c:3315
 msgid "Tags"
 msgstr "标签"
 
 # describe.c:1549
-#: describe.c:3332
+#: describe.c:3334
 msgid "List of event triggers"
 msgstr "事件触发器列表"
 
 # describe.c:1688
-#: describe.c:3374
+#: describe.c:3376
 msgid "Source type"
 msgstr "来源类型"
 
 # describe.c:1689
-#: describe.c:3375
+#: describe.c:3377
 msgid "Target type"
 msgstr "目标类型"
 
 # describe.c:1693
-#: describe.c:3378
+#: describe.c:3380
 msgid "in assignment"
 msgstr "在指派中"
 
 # describe.c:1695
-#: describe.c:3380
+#: describe.c:3382
 msgid "Implicit?"
 msgstr "隐含的?"
 
 # describe.c:1703
-#: describe.c:3431
+#: describe.c:3433
 msgid "List of casts"
 msgstr "类型转换列表"
 
 # describe.c:117
-#: describe.c:3457
+#: describe.c:3459
 #, c-format
 msgid "The server (version %d.%d) does not support collations.\n"
 msgstr "服务器(版本%d.%d)不支持排序校对。\n"
 
 # describe.c:1549
-#: describe.c:3507
+#: describe.c:3509
 msgid "List of collations"
 msgstr "校对列表"
 
 # describe.c:1753
-#: describe.c:3566
+#: describe.c:3568
 msgid "List of schemas"
 msgstr "架构模式列表"
 
 # describe.c:117
-#: describe.c:3589 describe.c:3824 describe.c:3892 describe.c:3960
+#: describe.c:3591 describe.c:3826 describe.c:3894 describe.c:3962
 #, c-format
 msgid "The server (version %d.%d) does not support full text search.\n"
 msgstr "服务器(版本%d.%d)不支持使用全文搜索.\n"
 
 # describe.c:150
-#: describe.c:3623
+#: describe.c:3625
 msgid "List of text search parsers"
 msgstr "文本剖析器列表"
 
 # describe.c:641
-#: describe.c:3666
+#: describe.c:3668
 #, c-format
 msgid "Did not find any text search parser named \"%s\".\n"
 msgstr "没有找到任何命名为 \"%s\" 的文本剖析器。\n"
 
-#: describe.c:3741
+#: describe.c:3743
 msgid "Start parse"
 msgstr "开始剖析"
 
-#: describe.c:3742
+#: describe.c:3744
 msgid "Method"
 msgstr "方法"
 
-#: describe.c:3746
+#: describe.c:3748
 msgid "Get next token"
 msgstr "取得下一个标志符"
 
-#: describe.c:3748
+#: describe.c:3750
 msgid "End parse"
 msgstr "结束剖析"
 
-#: describe.c:3750
+#: describe.c:3752
 msgid "Get headline"
 msgstr "取得首行"
 
-#: describe.c:3752
+#: describe.c:3754
 msgid "Get token types"
 msgstr "取得标志符类型"
 
-#: describe.c:3762
+#: describe.c:3764
 #, c-format
 msgid "Text search parser \"%s.%s\""
 msgstr "文本搜索剖析器 \"%s.%s\""
 
-#: describe.c:3764
+#: describe.c:3766
 #, c-format
 msgid "Text search parser \"%s\""
 msgstr "文本搜索剖析器 \"%s\""
 
 # describe.c:1375
-#: describe.c:3783
+#: describe.c:3785
 msgid "Token name"
 msgstr "标志名称"
 
-#: describe.c:3794
+#: describe.c:3796
 #, c-format
 msgid "Token types for parser \"%s.%s\""
 msgstr "标志符别型给剖析器 \"%s.%s\""
 
-#: describe.c:3796
+#: describe.c:3798
 #, c-format
 msgid "Token types for parser \"%s\""
 msgstr "标志符类型给剖析器 \"%s\""
 
-#: describe.c:3846
+#: describe.c:3848
 msgid "Template"
 msgstr "模版"
 
 # help.c:88
-#: describe.c:3847
+#: describe.c:3849
 msgid "Init options"
 msgstr "初始选项"
 
 # describe.c:1549
-#: describe.c:3869
+#: describe.c:3871
 msgid "List of text search dictionaries"
 msgstr "文本搜索字典列表"
 
-#: describe.c:3909
+#: describe.c:3911
 msgid "Init"
 msgstr "初始化"
 
 # describe.c:257
-#: describe.c:3910
+#: describe.c:3912
 msgid "Lexize"
 msgstr "词汇"
 
 # describe.c:1753
-#: describe.c:3937
+#: describe.c:3939
 msgid "List of text search templates"
 msgstr "文本搜索样式列表"
 
 # describe.c:97
-#: describe.c:3994
+#: describe.c:3996
 msgid "List of text search configurations"
 msgstr "文本搜索组态列表"
 
 # describe.c:641
-#: describe.c:4038
+#: describe.c:4040
 #, c-format
 msgid "Did not find any text search configuration named \"%s\".\n"
 msgstr "没有找到任何命名为 \"%s\" 的文本搜索组态。\n"
 
-#: describe.c:4104
+#: describe.c:4106
 msgid "Token"
 msgstr "标志符"
 
-#: describe.c:4105
+#: describe.c:4107
 msgid "Dictionaries"
 msgstr "字典"
 
-#: describe.c:4116
+#: describe.c:4118
 #, c-format
 msgid "Text search configuration \"%s.%s\""
 msgstr "文本搜索组态 \"%s.%s\""
 
-#: describe.c:4119
+#: describe.c:4121
 #, c-format
 msgid "Text search configuration \"%s\""
 msgstr "文本搜索组态 \"%s\""
 
 # describe.c:859
-#: describe.c:4123
+#: describe.c:4125
 #, c-format
 msgid ""
 "\n"
@@ -2006,7 +2091,7 @@ msgstr ""
 "剖析器:\"%s.%s\""
 
 # describe.c:1342
-#: describe.c:4126
+#: describe.c:4128
 #, c-format
 msgid ""
 "\n"
@@ -2016,99 +2101,99 @@ msgstr ""
 "剖析器:\"%s\""
 
 # describe.c:117
-#: describe.c:4158
+#: describe.c:4160
 #, c-format
 msgid "The server (version %d.%d) does not support foreign-data wrappers.\n"
 msgstr "服务器(版本%d.%d)不支持使用外部数据封装器。\n"
 
-#: describe.c:4172
+#: describe.c:4174
 msgid "Handler"
 msgstr "处理函数"
 
 # describe.c:289
-#: describe.c:4215
+#: describe.c:4217
 msgid "List of foreign-data wrappers"
 msgstr "外部数据封装器列表"
 
 # describe.c:117
-#: describe.c:4238
+#: describe.c:4240
 #, c-format
 msgid "The server (version %d.%d) does not support foreign servers.\n"
 msgstr "服务器(版本%d.%d)不支持使用外部服务器.\n"
 
-#: describe.c:4250
+#: describe.c:4252
 msgid "Foreign-data wrapper"
 msgstr "外部数据封装器"
 
-#: describe.c:4268 describe.c:4463
+#: describe.c:4270 describe.c:4466
 msgid "Version"
 msgstr "版本"
 
 # describe.c:1653
-#: describe.c:4294
+#: describe.c:4296
 msgid "List of foreign servers"
 msgstr "外部服务器列表"
 
 # describe.c:117
-#: describe.c:4317
+#: describe.c:4319
 #, c-format
 msgid "The server (version %d.%d) does not support user mappings.\n"
 msgstr "服务器(版本%d.%d)不支持使用用户映射。\n"
 
 # describe.c:1377
-#: describe.c:4326 describe.c:4387
+#: describe.c:4328 describe.c:4389
 msgid "Server"
 msgstr "服务器"
 
-#: describe.c:4327
+#: describe.c:4329
 msgid "User name"
 msgstr "用户名: "
 
 # describe.c:1602
-#: describe.c:4352
+#: describe.c:4354
 msgid "List of user mappings"
 msgstr "列出用户映射"
 
 # describe.c:117
-#: describe.c:4375
+#: describe.c:4377
 #, c-format
 msgid "The server (version %d.%d) does not support foreign tables.\n"
 msgstr "服务器(版本%d.%d)不支持使用引用表.\n"
 
 # describe.c:1653
-#: describe.c:4426
+#: describe.c:4429
 msgid "List of foreign tables"
 msgstr "引用表列表"
 
 # describe.c:117
-#: describe.c:4449 describe.c:4503
+#: describe.c:4452 describe.c:4506
 #, c-format
 msgid "The server (version %d.%d) does not support extensions.\n"
 msgstr "服务器(版本%d.%d) 不支持使用扩展.\n"
 
 # describe.c:1653
-#: describe.c:4480
+#: describe.c:4483
 msgid "List of installed extensions"
 msgstr "已安装扩展列表"
 
 # describe.c:641
-#: describe.c:4530
+#: describe.c:4533
 #, c-format
 msgid "Did not find any extension named \"%s\".\n"
 msgstr "没有找到任何名称为 \"%s\" 的扩展。\n"
 
 # describe.c:641
-#: describe.c:4533
+#: describe.c:4536
 #, c-format
 msgid "Did not find any extensions.\n"
 msgstr "没有找到任何扩展.\n"
 
 # describe.c:593
-#: describe.c:4577
+#: describe.c:4580
 msgid "Object Description"
 msgstr "对象描述"
 
-#: describe.c:4586
+#: describe.c:4589
 #, c-format
 msgid "Objects in extension \"%s\""
 msgstr "对象用于扩展 \"%s\""
@@ -2124,33 +2209,33 @@ msgid "%s\n"
 msgstr "%s\n"
 
 # help.c:83
-#: help.c:70
+#: help.c:74
 #, c-format
 msgid ""
 "psql is the PostgreSQL interactive terminal.\n"
 "\n"
 msgstr "psql是PostgreSQL 的交互式客户端工具。\n"
 
-#: help.c:71 help.c:314 help.c:347 help.c:374
+#: help.c:75 help.c:332 help.c:366 help.c:393
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
 # help.c:86
-#: help.c:72
+#: help.c:76
 #, c-format
 msgid ""
 "  psql [OPTION]... [DBNAME [USERNAME]]\n"
 "\n"
 msgstr "  psql [选项]... [数据库名称 [用户名称]]\n"
 
-#: help.c:74
+#: help.c:78
 #, c-format
 msgid "General options:\n"
 msgstr "通用选项:\n"
 
 # help.c:94
-#: help.c:79
+#: help.c:83
 #, c-format
 msgid ""
 "  -c, --command=COMMAND    run only single command (SQL or internal) and "
@@ -2158,26 +2243,26 @@ msgid ""
 msgstr "  -c,--command=命令        执行单一命令(SQL或内部指令)然后结束\n"
 
 # help.c:93
-#: help.c:80
+#: help.c:84
 #, c-format
 msgid ""
 "  -d, --dbname=DBNAME      database name to connect to (default: \"%s\")\n"
 msgstr " -d, --dbname=数据库名称   指定要连接的数据库 (默认:\"%s\")\n"
 
 # help.c:95
-#: help.c:81
+#: help.c:85
 #, c-format
 msgid "  -f, --file=FILENAME      execute commands from file, then exit\n"
 msgstr "  -f, --file=文件名      从文件中执行命令然后退出\n"
 
 # help.c:96
-#: help.c:82
+#: help.c:86
 #, c-format
 msgid "  -l, --list               list available databases, then exit\n"
 msgstr "  -l, --list             列出所有可用的数据库,然后退出\n"
 
 # help.c:97
-#: help.c:83
+#: help.c:87
 #, c-format
 msgid ""
 "  -v, --set=, --variable=NAME=VALUE\n"
@@ -2188,18 +2273,18 @@ msgstr ""
 "                           设置psql变量NAME为VALUE\n"
 "                           (例如,-v ON_ERROR_STOP=1)\n"
 
-#: help.c:86
+#: help.c:90
 #, c-format
 msgid "  -V, --version            output version information, then exit\n"
 msgstr "  -V, --version            输出版本信息, 然后退出\n"
 
 # help.c:98
-#: help.c:87
+#: help.c:91
 #, c-format
 msgid "  -X, --no-psqlrc          do not read startup file (~/.psqlrc)\n"
 msgstr "  -X, --no-psqlrc         不读取启动文档(~/.psqlrc)\n"
 
-#: help.c:88
+#: help.c:92
 #, c-format
 msgid ""
 "  -1 (\"one\"), --single-transaction\n"
@@ -2209,25 +2294,23 @@ msgstr ""
 "  -1 (\"one\"), --single-transaction\n"
 "                          作为一个单一事务来执行命令文件(如果是非交互型的)\n"
 
-#: help.c:90
+#: help.c:94
 #, c-format
 msgid "  -?, --help[=options]     show this help, then exit\n"
 msgstr "  -?, --help[=options]     显示此帮助,然后退出\n"
 
-#: help.c:91
+#: help.c:95
 #, c-format
-#| msgid "  -?, --help       show this help, then exit\n"
 msgid "      --help=commands      list backslash commands, then exit\n"
 msgstr "      --help=commands      列出反斜线命令,然后退出\n"
 
-#: help.c:92
+#: help.c:96
 #, c-format
-#| msgid "  -?, --help       show this help, then exit\n"
 msgid "      --help=variables     list special variables, then exit\n"
 msgstr "      --help=variables     列出特殊变量,然后退出\n"
 
 # help.c:102
-#: help.c:94
+#: help.c:98
 #, c-format
 msgid ""
 "\n"
@@ -2237,64 +2320,64 @@ msgstr ""
 "输入和输出选项:\n"
 
 # help.c:103
-#: help.c:95
+#: help.c:99
 #, c-format
 msgid "  -a, --echo-all           echo all input from script\n"
 msgstr "  -a, --echo-all          显示所有来自于脚本的输入\n"
 
 # help.c:104
-#: help.c:96
+#: help.c:100
 #, c-format
 msgid "  -b, --echo-errors        echo failed commands\n"
 msgstr "  -b, --echo-errors        回显失败的命令\n"
 
 # help.c:104
-#: help.c:97
+#: help.c:101
 #, c-format
 msgid "  -e, --echo-queries       echo commands sent to server\n"
 msgstr "  -e, --echo-queries      显示发送给服务器的命令\n"
 
 # help.c:105
-#: help.c:98
+#: help.c:102
 #, c-format
 msgid ""
 "  -E, --echo-hidden        display queries that internal commands generate\n"
 msgstr " -E, --echo-hidden        显示内部命令产生的查询\n"
 
 # help.c:107
-#: help.c:99
+#: help.c:103
 #, c-format
 msgid "  -L, --log-file=FILENAME  send session log to file\n"
 msgstr "  -L, --log-file=文件名  将会话日志写入文件\n"
 
 # help.c:108
-#: help.c:100
+#: help.c:104
 #, c-format
 msgid ""
 "  -n, --no-readline        disable enhanced command line editing (readline)\n"
 msgstr "  -n, --no-readline       禁用增强命令行编辑功能(readline)\n"
 
 # help.c:107
-#: help.c:101
+#: help.c:105
 #, c-format
 msgid "  -o, --output=FILENAME    send query results to file (or |pipe)\n"
 msgstr "  -o, --output=FILENAME 将查询结果写入文件(或 |管道)\n"
 
 # help.c:106
-#: help.c:102
+#: help.c:106
 #, c-format
 msgid ""
 "  -q, --quiet              run quietly (no messages, only query output)\n"
 msgstr "  -q, --quiet             以沉默模式运行(不显示消息,只有查询结果)\n"
 
 # help.c:109
-#: help.c:103
+#: help.c:107
 #, c-format
 msgid "  -s, --single-step        single-step mode (confirm each query)\n"
 msgstr "  -s, --single-step       单步模式 (确认每个查询)\n"
 
 # help.c:110
-#: help.c:104
+#: help.c:108
 #, c-format
 msgid ""
 "  -S, --single-line        single-line mode (end of line terminates SQL "
@@ -2302,7 +2385,7 @@ msgid ""
 msgstr "  -S, --single-line        单行模式 (一行就是一条 SQL 命令)\n"
 
 # help.c:112
-#: help.c:106
+#: help.c:110
 #, c-format
 msgid ""
 "\n"
@@ -2312,13 +2395,13 @@ msgstr ""
 "输出格式选项 :\n"
 
 # help.c:113
-#: help.c:107
+#: help.c:111
 #, c-format
 msgid "  -A, --no-align           unaligned table output mode\n"
 msgstr " -A, --no-align           使用非对齐表格输出模式\n"
 
 # help.c:119
-#: help.c:108
+#: help.c:112
 #, c-format
 msgid ""
 "  -F, --field-separator=STRING\n"
@@ -2329,13 +2412,13 @@ msgstr ""
 "             为字段设置分隔符,用于不整齐的输出(默认:\"%s\")\n"
 
 # help.c:114
-#: help.c:111
+#: help.c:115
 #, c-format
 msgid "  -H, --html               HTML table output mode\n"
 msgstr "  -H, --html             HTML 表格输出模式\n"
 
 # help.c:118
-#: help.c:112
+#: help.c:116
 #, c-format
 msgid ""
 "  -P, --pset=VAR[=ARG]     set printing option VAR to ARG (see \\pset "
@@ -2344,7 +2427,7 @@ msgstr ""
 "  -P, --pset=变量[=参数]    设置将变量打印到参数的选项(查阅 \\pset 命令)\n"
 
 # help.c:121
-#: help.c:113
+#: help.c:117
 #, c-format
 msgid ""
 "  -R, --record-separator=STRING\n"
@@ -2355,13 +2438,13 @@ msgstr ""
 "             为不整齐的输出设置字录的分隔符(默认:换行符号)\n"
 
 # help.c:115
-#: help.c:115
+#: help.c:119
 #, c-format
 msgid "  -t, --tuples-only        print rows only\n"
 msgstr "  -t, --tuples-only      只打印记录i\n"
 
 # help.c:116
-#: help.c:116
+#: help.c:120
 #, c-format
 msgid ""
 "  -T, --table-attr=TEXT    set HTML table tag attributes (e.g., width, "
@@ -2369,13 +2452,13 @@ msgid ""
 msgstr "  -T, --table-attr=文本   设定 HTML 表格标记属性(例如,宽度,边界)\n"
 
 # help.c:117
-#: help.c:117
+#: help.c:121
 #, c-format
 msgid "  -x, --expanded           turn on expanded table output\n"
 msgstr "  -x, --expanded           打开扩展表格输出\n"
 
 # help.c:119
-#: help.c:118
+#: help.c:122
 #, c-format
 msgid ""
 "  -z, --field-separator-zero\n"
@@ -2386,7 +2469,7 @@ msgstr ""
 "                           为不整齐的输出设置字段分隔符为字节0\n"
 
 # help.c:121
-#: help.c:120
+#: help.c:124
 #, c-format
 msgid ""
 "  -0, --record-separator-zero\n"
@@ -2396,7 +2479,7 @@ msgstr ""
 "  -0, --record-separator-zero\n"
 "                           为不整齐的输出设置记录分隔符为字节0\n"
 
-#: help.c:123
+#: help.c:127
 #, c-format
 msgid ""
 "\n"
@@ -2406,7 +2489,7 @@ msgstr ""
 "联接选项:\n"
 
 # help.c:126
-#: help.c:126
+#: help.c:130
 #, c-format
 msgid ""
 "  -h, --host=HOSTNAME      database server host or socket directory "
@@ -2415,28 +2498,28 @@ msgstr ""
 "  -h, --host=主机名        数据库服务器主机或socket目录(默认:\"%s\")\n"
 
 # help.c:127
-#: help.c:127
+#: help.c:131
 msgid "local socket"
 msgstr "本地接口"
 
 # help.c:130
-#: help.c:130
+#: help.c:134
 #, c-format
 msgid "  -p, --port=PORT          database server port (default: \"%s\")\n"
 msgstr "  -p, --port=端口        数据库服务器的端口(默认:\"%s\")\n"
 
 # help.c:136
-#: help.c:136
+#: help.c:140
 #, c-format
 msgid "  -U, --username=USERNAME  database user name (default: \"%s\")\n"
 msgstr "  -U, --username=用户名    指定数据库用户名(默认:\"%s\")\n"
 
-#: help.c:137
+#: help.c:141
 #, c-format
 msgid "  -w, --no-password        never prompt for password\n"
 msgstr "  -w, --no-password       永远不提示输入口令\n"
 
-#: help.c:138
+#: help.c:142
 #, c-format
 msgid ""
 "  -W, --password           force password prompt (should happen "
@@ -2444,7 +2527,7 @@ msgid ""
 msgstr "  -W, --password           强制口令提示 (自动)\n"
 
 # help.c:140
-#: help.c:140
+#: help.c:144
 #, c-format
 msgid ""
 "\n"
@@ -2459,74 +2542,102 @@ msgstr ""
 "或者参考PostgreSQL文档中的psql章节.\n"
 "\n"
 
-#: help.c:143
+#: help.c:147
 #, c-format
 msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgstr "臭虫报告至 <pgsql-bugs@postgresql.org>.\n"
 
 # help.c:174
-#: help.c:166
+#: help.c:173
 #, c-format
 msgid "General\n"
 msgstr "一般性\n"
 
 # help.c:179
-#: help.c:167
+#: help.c:174
 #, c-format
 msgid ""
 "  \\copyright             show PostgreSQL usage and distribution terms\n"
 msgstr "  \\copyright            显示PostgreSQL的使用和发行许可条款\n"
 
+#: help.c:175
+#, c-format
+msgid ""
+"  \\errverbose            show most recent error message at maximum "
+"verbosity\n"
+msgstr "  \\errverbose            以最冗长的形式显示最近的错误消息\n"
+
 # help.c:194
-#: help.c:168
+#: help.c:176
 #, c-format
 msgid ""
 "  \\g [FILE] or ;         execute query (and send results to file or |pipe)\n"
 msgstr "  \\g [文件] or;     执行查询 (并把结果写入文件或 |管道)\n"
 
 # help.c:194
-#: help.c:169
+#: help.c:177
+#, c-format
+#| msgid ""
+#| "  \\gset [PREFIX]         execute query and store results in psql "
+#| "variables\n"
+msgid ""
+"  \\gexec                 execute query, then execute each value in its "
+"result\n"
+msgstr "  \\gexec                 执行策略,然后执行其结果中的每个值\n"
+
+# help.c:194
+#: help.c:178
 #, c-format
 msgid ""
 "  \\gset [PREFIX]         execute query and store results in psql variables\n"
 msgstr "  \\gset [PREFIX]     执行查询并把结果存到psql变量中\n"
 
 # help.c:183
-#: help.c:170
+#: help.c:179
 #, c-format
 msgid "  \\q                     quit psql\n"
 msgstr "  \\q             退出 psql\n"
 
-#: help.c:171
+#: help.c:180
+#, c-format
+msgid ""
+"  \\crosstabview [COLUMNS] execute query and display results in crosstab\n"
+msgstr "  \\crosstabview [COLUMNS] 执行查询并且以交叉表显示结果\n"
+
+#: help.c:181
 #, c-format
 msgid "  \\watch [SEC]           execute query every SEC seconds\n"
 msgstr "  \\watch [SEC]          每隔SEC秒执行一次查询\n"
 
-#: help.c:174
+#: help.c:184
 #, c-format
 msgid "Help\n"
 msgstr "帮助\n"
 
-#: help.c:176
+#: help.c:186
 #, c-format
-msgid "  \\? [commands]          description of all psql backslash commands\n"
-msgstr "  \\? [commands]          所有psql反斜线命令的描述\n"
+#| msgid ""
+#| "  \\? [commands]          description of all psql backslash commands\n"
+msgid "  \\? [commands]          show help on backslash commands\n"
+msgstr "  \\? [commands]          显示反斜线命令的帮助\n"
 
-#: help.c:177
+#: help.c:187
 #, c-format
-msgid "  \\? options             description of all psql commandline options\n"
-msgstr "  \\? options             所有psql命令行选项的描述\n"
+#| msgid ""
+#| "  \\? options             description of all psql commandline options\n"
+msgid "  \\? options             show help on psql command-line options\n"
+msgstr "  \\? options             显示 psql 命令行选项的帮助\n"
 
-#: help.c:178
+#: help.c:188
 #, c-format
 #| msgid ""
-#| "  --sysconfdir          show location of system-wide configuration files\n"
-msgid ""
-"  \\? variables           description of all psql configuration variables\n"
-msgstr "  \\? variables           æ\89\80æ\9c\89psqlé\85\8dç½®å\8f\98é\87\8fç\9a\84æ\8f\8fè¿°\n"
+#| "  \\? variables           description of all psql configuration "
+#| "variables\n"
+msgid "  \\? variables           show help on special variables\n"
+msgstr "  \\? variables           æ\98¾ç¤ºç\89¹æ®\8aå\8f\98é\87\8fç\9a\84帮å\8a©\n"
 
 # help.c:182
-#: help.c:179
+#: help.c:189
 #, c-format
 msgid ""
 "  \\h [NAME]              help on syntax of SQL commands, * for all "
@@ -2534,13 +2645,13 @@ msgid ""
 msgstr "  \\h [名称]          SQL命令语法上的说明,用*显示全部命令的语法说明\n"
 
 # help.c:192
-#: help.c:182
+#: help.c:192
 #, c-format
 msgid "Query Buffer\n"
 msgstr "查询缓存区\n"
 
 # help.c:193
-#: help.c:183
+#: help.c:193
 #, c-format
 msgid ""
 "  \\e [FILE] [LINE]       edit the query buffer (or file) with external "
@@ -2548,44 +2659,50 @@ msgid ""
 msgstr "  \\e [FILE] [LINE]        使用外部编辑器编辑查询缓存区(或文件)\n"
 
 # help.c:193
-#: help.c:184
+#: help.c:194
 #, c-format
 msgid ""
 "  \\ef [FUNCNAME [LINE]]  edit function definition with external editor\n"
 msgstr "  \\ef [FUNCNAME [LINE]]   使用外部编辑器编辑函数定义\n"
 
+# help.c:193
+#: help.c:195
+#, c-format
+msgid "  \\ev [VIEWNAME [LINE]]  edit view definition with external editor\n"
+msgstr "  \\ev [VIEWNAME [LINE]]  用外部编辑器编辑视图定义\n"
+
 # help.c:195
-#: help.c:185
+#: help.c:196
 #, c-format
 msgid "  \\p                     show the contents of the query buffer\n"
 msgstr "  \\p                    显示查询缓存区的内容\n"
 
 # help.c:196
-#: help.c:186
+#: help.c:197
 #, c-format
 msgid "  \\r                     reset (clear) the query buffer\n"
 msgstr "  \\r                    重置(清除)查询缓存区\n"
 
 # help.c:198
-#: help.c:188
+#: help.c:199
 #, c-format
 msgid "  \\s [FILE]              display history or save it to file\n"
 msgstr "  \\s [文件]        显示历史记录或将历史记录保存在文件中\n"
 
 # help.c:200
-#: help.c:190
+#: help.c:201
 #, c-format
 msgid "  \\w FILE                write query buffer to file\n"
 msgstr "  \\w 文件          将查询缓存区的内容写入文件\n"
 
 # help.c:203
-#: help.c:193
+#: help.c:204
 #, c-format
 msgid "Input/Output\n"
 msgstr "输入/输出\n"
 
 # help.c:251
-#: help.c:194
+#: help.c:205
 #, c-format
 msgid ""
 "  \\copy ...              perform SQL COPY with data stream to the client "
@@ -2593,19 +2710,19 @@ msgid ""
 msgstr "  \\copy ...             执行 SQL COPY,将数据流发送到客户端主机\n"
 
 # help.c:204
-#: help.c:195
+#: help.c:206
 #, c-format
 msgid "  \\echo [STRING]         write string to standard output\n"
 msgstr "  \\echo [字符串]       将字符串写到标准输出\n"
 
 # help.c:205
-#: help.c:196
+#: help.c:207
 #, c-format
 msgid "  \\i FILE                execute commands from file\n"
 msgstr "  \\i 文件          从文件中执行命令\n"
 
 # help.c:206
-#: help.c:197
+#: help.c:208
 #, c-format
 msgid ""
 "  \\ir FILE               as \\i, but relative to location of current "
@@ -2613,286 +2730,295 @@ msgid ""
 msgstr "  \\ir FILE               与 \\i类似, 但是相对于当前脚本的位置\n"
 
 # help.c:206
-#: help.c:198
+#: help.c:209
 #, c-format
 msgid "  \\o [FILE]              send all query results to file or |pipe\n"
 msgstr "  \\o [文件]        将全部查询结果写入文件或 |管道\n"
 
 # help.c:207
-#: help.c:199
+#: help.c:210
 #, c-format
 msgid ""
 "  \\qecho [STRING]        write string to query output stream (see \\o)\n"
 msgstr "  \\qecho [字符串]      将字符串写到查询输出串流(参考 \\o)\n"
 
 # help.c:211
-#: help.c:202
+#: help.c:213
 #, c-format
 msgid "Informational\n"
 msgstr "资讯性\n"
 
-#: help.c:203
+#: help.c:214
 #, c-format
 msgid "  (options: S = show system objects, + = additional detail)\n"
 msgstr "  (选项: S = 显示系统对象, + = 其余的详细信息)\n"
 
 # help.c:226
-#: help.c:204
+#: help.c:215
 #, c-format
 msgid "  \\d[S+]                 list tables, views, and sequences\n"
 msgstr "  \\d[S+]          列出表,视图和序列\n"
 
 # help.c:212
-#: help.c:205
+#: help.c:216
 #, c-format
 msgid "  \\d[S+]  NAME           describe table, view, sequence, or index\n"
 msgstr "  \\d[S+]  名称      描述表,视图,序列,或索引\n"
 
 # help.c:215
-#: help.c:206
+#: help.c:217
 #, c-format
 msgid "  \\da[S]  [PATTERN]      list aggregates\n"
 msgstr "  \\da[S]  [模式]    列出聚合函数\n"
 
 # help.c:228
-#: help.c:207
+#: help.c:218
 #, c-format
 msgid "  \\db[+]  [PATTERN]      list tablespaces\n"
 msgstr "  \\db[+]  [模式]     列出表空间\n"
 
 # help.c:217
-#: help.c:208
+#: help.c:219
 #, c-format
 msgid "  \\dc[S+] [PATTERN]      list conversions\n"
 msgstr "  \\dc[S+] [PATTERN]      列表转换\n"
 
 # help.c:218
-#: help.c:209
+#: help.c:220
 #, c-format
 msgid "  \\dC[+]  [PATTERN]      list casts\n"
 msgstr "  \\dC[+]  [PATTERN]      列出类型强制转换\n"
 
 # help.c:219
-#: help.c:210
+#: help.c:221
 #, c-format
 msgid ""
 "  \\dd[S]  [PATTERN]      show object descriptions not displayed elsewhere\n"
 msgstr "  \\dd[S]  [PATTERN]      显示没有在别处显示的对象描述\n"
 
 # help.c:218
-#: help.c:211
+#: help.c:222
 #, c-format
 msgid "  \\ddp    [PATTERN]      list default privileges\n"
 msgstr "  \\ddp     [模式]    列出默认权限\n"
 
 # help.c:220
-#: help.c:212
+#: help.c:223
 #, c-format
 msgid "  \\dD[S+] [PATTERN]      list domains\n"
 msgstr "  \\dD[S+] [PATTERN]      列出共同值域\n"
 
 # help.c:228
-#: help.c:213
+#: help.c:224
 #, c-format
 msgid "  \\det[+] [PATTERN]      list foreign tables\n"
 msgstr "  \\det[+] [PATTERN]      列出引用表\n"
 
 # help.c:228
-#: help.c:214
+#: help.c:225
 #, c-format
 msgid "  \\des[+] [PATTERN]      list foreign servers\n"
 msgstr "  \\des[+] [模式]    列出外部服务器\n"
 
 # help.c:228
-#: help.c:215
+#: help.c:226
 #, c-format
 msgid "  \\deu[+] [PATTERN]      list user mappings\n"
 msgstr "  \\deu[+] [模式]     列出用户映射\n"
 
 # help.c:222
-#: help.c:216
+#: help.c:227
 #, c-format
 msgid "  \\dew[+] [PATTERN]      list foreign-data wrappers\n"
 msgstr " \\dew[+] [模式]       列出外部数据封装器\n"
 
 # help.c:215
-#: help.c:217
+#: help.c:228
 #, c-format
 msgid ""
 "  \\df[antw][S+] [PATRN]  list [only agg/normal/trigger/window] functions\n"
 msgstr "   \\df[antw][S+] [模式]    列出[只包括 聚合/常规/触发器/窗口]函数 \n"
 
 # help.c:221
-#: help.c:218
+#: help.c:229
 #, c-format
 msgid "  \\dF[+]  [PATTERN]      list text search configurations\n"
 msgstr "  \\dF[+]  [模式]   列出文本搜索配置\n"
 
 # help.c:228
-#: help.c:219
+#: help.c:230
 #, c-format
 msgid "  \\dFd[+] [PATTERN]      list text search dictionaries\n"
 msgstr "  \\dFd[+] [模式]     列出文本搜索字典\n"
 
 # help.c:228
-#: help.c:220
+#: help.c:231
 #, c-format
 msgid "  \\dFp[+] [PATTERN]      list text search parsers\n"
 msgstr " \\dFp[+] [模式]     列出文本搜索解析器\n"
 
 # help.c:228
-#: help.c:221
+#: help.c:232
 #, c-format
 msgid "  \\dFt[+] [PATTERN]      list text search templates\n"
 msgstr "  \\dFt[+] [模式]   列出文本搜索模版\n"
 
 # help.c:222
-#: help.c:222
+#: help.c:233
 #, c-format
-msgid "  \\dg[+]  [PATTERN]      list roles\n"
-msgstr "  \\dg[+]  [PATTERN]      列出角色\n"
+#| msgid "  \\dg[+]  [PATTERN]      list roles\n"
+msgid "  \\dg[S+] [PATTERN]      list roles\n"
+msgstr "  \\dg[S+] [PATTERN]      列出角色\n"
 
 # help.c:220
-#: help.c:223
+#: help.c:234
 #, c-format
 msgid "  \\di[S+] [PATTERN]      list indexes\n"
 msgstr " \\di[S+] [模式]  列出索引\n"
 
 # help.c:225
-#: help.c:224
+#: help.c:235
 #, c-format
 msgid "  \\dl                    list large objects, same as \\lo_list\n"
 msgstr "  \\dl                   列出大对象, 功能与\\lo_list相同\n"
 
 # help.c:228
-#: help.c:225
+#: help.c:236
 #, c-format
 msgid "  \\dL[S+] [PATTERN]      list procedural languages\n"
 msgstr "  \\dL[S+] [PATTERN]      列出所有过程语言\n"
 
 # help.c:228
-#: help.c:226
+#: help.c:237
 #, c-format
 msgid "  \\dm[S+] [PATTERN]      list materialized views\n"
 msgstr "  \\dm[S+] [PATTERN]      列出所有物化视图\n"
 
 # help.c:228
-#: help.c:227
+#: help.c:238
 #, c-format
 msgid "  \\dn[S+] [PATTERN]      list schemas\n"
 msgstr "  \\dn[S+] [PATTERN]     列出所有模式\n"
 
 # help.c:224
-#: help.c:228
+#: help.c:239
 #, c-format
 msgid "  \\do[S]  [PATTERN]      list operators\n"
 msgstr "  \\do[S]  [模式]   列出运算符\n"
 
 # help.c:220
-#: help.c:229
+#: help.c:240
 #, c-format
 msgid "  \\dO[S+] [PATTERN]      list collations\n"
 msgstr "  \\dO[S+] [PATTERN]      列出所有校对规则\n"
 
 # help.c:226
-#: help.c:230
+#: help.c:241
 #, c-format
 msgid ""
 "  \\dp     [PATTERN]      list table, view, and sequence access privileges\n"
 msgstr "  \\dp     [模式]     列出表,视图和序列的访问权限\n"
 
-#: help.c:231
+#: help.c:242
 #, c-format
 msgid "  \\drds [PATRN1 [PATRN2]] list per-database role settings\n"
 msgstr "  \\drds [模式1 [模式2]] 列出每个数据库的角色设置\n"
 
 # help.c:228
-#: help.c:232
+#: help.c:243
 #, c-format
 msgid "  \\ds[S+] [PATTERN]      list sequences\n"
 msgstr "  \\ds[S+] [模式]    列出序列\n"
 
 # help.c:228
-#: help.c:233
+#: help.c:244
 #, c-format
 msgid "  \\dt[S+] [PATTERN]      list tables\n"
 msgstr "  \\dt[S+] [模式]     列出表\n"
 
 # help.c:220
-#: help.c:234
+#: help.c:245
 #, c-format
 msgid "  \\dT[S+] [PATTERN]      list data types\n"
 msgstr "  \\dT[S+] [模式]  列出数据类型\n"
 
 # help.c:228
-#: help.c:235
+#: help.c:246
 #, c-format
-msgid "  \\du[+]  [PATTERN]      list roles\n"
-msgstr "  \\du[+]  [PATTERN]      列出角色\n"
+#| msgid "  \\du[+]  [PATTERN]      list roles\n"
+msgid "  \\du[S+] [PATTERN]      list roles\n"
+msgstr "  \\du[S+] [PATTERN]      列出角色\n"
 
 # help.c:228
-#: help.c:236
+#: help.c:247
 #, c-format
 msgid "  \\dv[S+] [PATTERN]      list views\n"
 msgstr "  \\dv[S+] [模式]   列出视图\n"
 
 # help.c:228
-#: help.c:237
+#: help.c:248
 #, c-format
 msgid "  \\dE[S+] [PATTERN]      list foreign tables\n"
 msgstr "  \\dE[S+] [PATTERN]      列出引用表\n"
 
 # help.c:217
-#: help.c:238
+#: help.c:249
 #, c-format
 msgid "  \\dx[+]  [PATTERN]      list extensions\n"
 msgstr "  \\dx[+]  [PATTERN]      列出扩展\n"
 
 # help.c:218
-#: help.c:239
+#: help.c:250
 #, c-format
 msgid "  \\dy     [PATTERN]      list event triggers\n"
 msgstr "  \\dy     [PATTERN]      列出所有事件触发器\n"
 
 # help.c:228
-#: help.c:240
+#: help.c:251
 #, c-format
 msgid "  \\l[+]   [PATTERN]      list databases\n"
 msgstr "  \\l[+]   [PATTERN]      列出所有数据库\n"
 
 # help.c:193
-#: help.c:241
+#: help.c:252
+#, c-format
+#| msgid "  \\sf[+] FUNCNAME        show a function's definition\n"
+msgid "  \\sf[+]  FUNCNAME       show a function's definition\n"
+msgstr "  \\sf[+]  FUNCNAME       显示一个函数的定义\n"
+
+# help.c:193
+#: help.c:253
 #, c-format
-msgid "  \\sf[+] FUNCNAME        show a function's definition\n"
-msgstr "  \\sf[+] FUNCNAME        显示一个函数的定义\n"
+msgid "  \\sv[+]  VIEWNAME       show a view's definition\n"
+msgstr "  \\sv[+]  VIEWNAME       显示一个视图的定义\n"
 
 # help.c:218
-#: help.c:242
+#: help.c:254
 #, c-format
 msgid "  \\z      [PATTERN]      same as \\dp\n"
 msgstr "  \\z      [模式]    和\\dp的功能相同\n"
 
 # help.c:233
-#: help.c:245
+#: help.c:257
 #, c-format
 msgid "Formatting\n"
 msgstr "格式化\n"
 
 # help.c:234
-#: help.c:246
+#: help.c:258
 #, c-format
 msgid ""
 "  \\a                     toggle between unaligned and aligned output mode\n"
 msgstr "  \\a                  在非对齐模式和对齐模式之间切换\n"
 
 # help.c:235
-#: help.c:247
+#: help.c:259
 #, c-format
 msgid "  \\C [STRING]            set table title, or unset if none\n"
 msgstr "  \\C [字符串]        设置表的标题,或如果没有的标题就取消\n"
 
 # help.c:236
-#: help.c:248
+#: help.c:260
 #, c-format
 msgid ""
 "  \\f [STRING]            show or set field separator for unaligned query "
@@ -2900,13 +3026,13 @@ msgid ""
 msgstr "  \\f [字符串]         显示或设定非对齐模式查询输出的字段分隔符\n"
 
 # help.c:237
-#: help.c:249
+#: help.c:261
 #, c-format
 msgid "  \\H                     toggle HTML output mode (currently %s)\n"
 msgstr "  \\H                    切换HTML输出模式 (目前是 %s)\n"
 
 # help.c:239
-#: help.c:251
+#: help.c:263
 #, c-format
 msgid ""
 "  \\pset [NAME [VALUE]]   set table output option\n"
@@ -2926,13 +3052,13 @@ msgstr ""
 "unicode_header_linestyle})\n"
 
 # help.c:243
-#: help.c:255
+#: help.c:267
 #, c-format
 msgid "  \\t [on|off]            show only rows (currently %s)\n"
 msgstr "  \\t [开|关]       只显示记录 (目前是 %s)\n"
 
 # help.c:245
-#: help.c:257
+#: help.c:269
 #, c-format
 msgid ""
 "  \\T [STRING]            set HTML <table> tag attributes, or unset if none\n"
@@ -2940,19 +3066,19 @@ msgstr ""
 "  \\T [字符串]         设置HTML <表格>标签属性, 或者如果没有的话取消设置\n"
 
 # help.c:246
-#: help.c:258
+#: help.c:270
 #, c-format
 msgid "  \\x [on|off|auto]       toggle expanded output (currently %s)\n"
 msgstr "  \\x [on|off|auto]       切换扩展输出模式(目前是 %s)\n"
 
 # help.c:123
-#: help.c:262
+#: help.c:274
 #, c-format
 msgid "Connection\n"
 msgstr "连接\n"
 
 # help.c:175
-#: help.c:264
+#: help.c:276
 #, c-format
 msgid ""
 "  \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n"
@@ -2962,7 +3088,7 @@ msgstr ""
 "                         连接到新数据库(当前是\"%s\")\n"
 
 # help.c:175
-#: help.c:268
+#: help.c:280
 #, c-format
 msgid ""
 "  \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n"
@@ -2972,66 +3098,66 @@ msgstr ""
 "                         连接到新数据库(当前无连接)\n"
 
 # help.c:180
-#: help.c:270
+#: help.c:282
 #, c-format
 msgid "  \\encoding [ENCODING]   show or set client encoding\n"
 msgstr "  \\encoding [编码名称] 显示或设定客户端编码\n"
 
-#: help.c:271
+#: help.c:283
 #, c-format
 msgid "  \\password [USERNAME]   securely change the password for a user\n"
 msgstr "  \\password [USERNAME]  安全地为用户更改口令\n"
 
-#: help.c:272
+#: help.c:284
 #, c-format
 msgid ""
 "  \\conninfo              display information about current connection\n"
 msgstr "  \\conninfo              显示当前连接的相关信息\n"
 
-#: help.c:275
+#: help.c:287
 #, c-format
 msgid "Operating System\n"
 msgstr "操作系统\n"
 
 # help.c:178
-#: help.c:276
+#: help.c:288
 #, c-format
 msgid "  \\cd [DIR]              change the current working directory\n"
 msgstr "  \\cd [目录]     更改目前的工作目录\n"
 
 # help.c:188
-#: help.c:277
+#: help.c:289
 #, c-format
 msgid "  \\setenv NAME [VALUE]   set or unset environment variable\n"
 msgstr "  \\setenv NAME [VALUE]   设置或清空环境变量\n"
 
 # help.c:186
-#: help.c:278
+#: help.c:290
 #, c-format
 msgid "  \\timing [on|off]       toggle timing of commands (currently %s)\n"
 msgstr " \\timing [开|关]       切换命令计时开关 (目前是 %s)\n"
 
 # help.c:189
-#: help.c:280
+#: help.c:292
 #, c-format
 msgid ""
 "  \\! [COMMAND]           execute command in shell or start interactive "
 "shell\n"
 msgstr "  \\! [命令]      在 shell中执行命令或启动一个交互式shell\n"
 
-#: help.c:283
+#: help.c:295
 #, c-format
 msgid "Variables\n"
 msgstr "变量\n"
 
 # help.c:188
-#: help.c:284
+#: help.c:296
 #, c-format
 msgid "  \\prompt [TEXT] NAME    prompt user to set internal variable\n"
 msgstr "  \\prompt [文本] 名称 提示用户设定内部变量\n"
 
 # help.c:184
-#: help.c:285
+#: help.c:297
 #, c-format
 msgid ""
 "  \\set [NAME [VALUE]]    set internal variable, or list all if no "
@@ -3039,19 +3165,19 @@ msgid ""
 msgstr "  \\set [名称 [值数]] 设定内部变量,若无参数则列出全部变量\n"
 
 # help.c:188
-#: help.c:286
+#: help.c:298
 #, c-format
 msgid "  \\unset NAME            unset (delete) internal variable\n"
 msgstr "  \\unset 名称    清空(删除)内部变量\n"
 
 # large_obj.c:264
-#: help.c:289
+#: help.c:301
 #, c-format
 msgid "Large Objects\n"
 msgstr "大对象\n"
 
 # help.c:252
-#: help.c:290
+#: help.c:302
 #, c-format
 msgid ""
 "  \\lo_export LOBOID FILE\n"
@@ -3064,76 +3190,95 @@ msgstr ""
 "  \\lo_list\n"
 "  \\lo_unlink LOBOID   大对象运算\n"
 
-#: help.c:311
+#: help.c:329
 #, c-format
-msgid "List of specially treated variables.\n"
-msgstr "特殊对待的变量的列表。\n"
+#| msgid "List of specially treated variables.\n"
+msgid ""
+"List of specially treated variables\n"
+"\n"
+msgstr ""
+"特殊对待的变量的列表\n"
+"\n"
 
-#: help.c:313
+#: help.c:331
 #, c-format
 msgid "psql variables:\n"
 msgstr "psql变量:\n"
 
-#: help.c:315
+#: help.c:333
 #, c-format
+#| msgid ""
+#| "  psql --set=NAME=VALUE\n"
+#| "  or \\set NAME VALUE in interactive mode\n"
+#| "\n"
 msgid ""
 "  psql --set=NAME=VALUE\n"
-"  or \\set NAME VALUE in interactive mode\n"
+"  or \\set NAME VALUE inside psql\n"
 "\n"
 msgstr ""
 "  psql --set=NAME=VALUE\n"
-"  或者在交互模式中用 \\set NAME VALUE\n"
+"  或者在 psql 中的 \\set NAME VALUE\n"
 "\n"
 
-#: help.c:317
+#: help.c:335
 #, c-format
 msgid ""
 "  AUTOCOMMIT         if set, successful SQL commands are automatically "
 "committed\n"
 msgstr "  AUTOCOMMIT         如果被设置,成功的SQL命令将会被自动提交\n"
 
-#: help.c:318
+#: help.c:336
 #, c-format
+#| msgid ""
+#| "  COMP_KEYWORD_CASE  determine the case used to complete SQL keywords\n"
+#| "                     [lower, upper, preserve-lower, preserve-upper]\n"
 msgid ""
-"  COMP_KEYWORD_CASE  determine the case used to complete SQL keywords\n"
+"  COMP_KEYWORD_CASE  determines the case used to complete SQL key words\n"
 "                     [lower, upper, preserve-lower, preserve-upper]\n"
 msgstr ""
-"  COMP_KEYWORD_CASE  决定用于完成SQL关键词的大小写形式\n"
-"                     [小写,大写,保留小写,保留大写]\n"
+"  COMP_KEYWORD_CASE  决定用于完成 SQL 关键词的大小写\n"
+"                     [lower, upper, preserve-lower, preserve-upper]\n"
 
 # common.c:636
 # common.c:871
-#: help.c:320
+#: help.c:338
 #, c-format
 msgid "  DBNAME             the currently connected database name\n"
 msgstr "  DBNAME             当前已连接的数据库名\n"
 
-#: help.c:321
+#: help.c:339
 #, c-format
+#| msgid ""
+#| "  ECHO               control what input is written to standard output\n"
+#| "                     [all, errors, none, queries]\n"
 msgid ""
-"  ECHO               control what input is written to standard output\n"
+"  ECHO               controls what input is written to standard output\n"
 "                     [all, errors, none, queries]\n"
 msgstr ""
-"  ECHO               控制什么样的输入会被写入到标准输出\n"
-"                     [所有, 错误, 无, 查询]\n"
+"  ECHO               控制哪些输入被写入到标准输出\n"
+"                     [all, errors, none, queries]\n"
 
-#: help.c:323
+#: help.c:341
 #, c-format
+#| msgid ""
+#| "  ECHO_HIDDEN        display internal queries executed by backslash "
+#| "commands when it is set\n"
+#| "                     or with [noexec] just show without execution\n"
 msgid ""
-"  ECHO_HIDDEN        display internal queries executed by backslash commands "
-"when it is set\n"
-"                     or with [noexec] just show without execution\n"
+"  ECHO_HIDDEN        if set, display internal queries executed by backslash "
+"commands;\n"
+"                     if set to \"noexec\", just show without execution\n"
 msgstr ""
-"  ECHO_HIDDEN        å½\93å®\83被设置为å¼\80å\90¯æ\97¶æ\98¾ç¤ºç\94±å\8f\8dæ\96\9c线å\91½ä»¤æ\89§è¡\8cç\9a\84å\86\85é\83¨æ\9f¥è¯¢\n"
-"                     或者设置为 [noexec] 时只显示内部查询但并不执行它们\n"
+"  ECHO_HIDDEN        å¦\82æ\9e\9c被设置ï¼\8cæ\98¾ç¤ºå\8f\8dæ\96\9c线å\91½ä»¤æ\89§è¡\8cç\9a\84å\86\85é\83¨å\91½ä»¤ï¼\9b\n"
+"                     如果被设置为 \"noexec\",只显示但不执行\n"
 
 # help.c:180
-#: help.c:325
+#: help.c:343
 #, c-format
 msgid "  ENCODING           current client character set encoding\n"
 msgstr "  ENCODING           当前的客户端字符集编码\n"
 
-#: help.c:326
+#: help.c:344
 #, c-format
 msgid ""
 "  FETCH_COUNT        the number of result rows to fetch and display at a "
@@ -3143,162 +3288,199 @@ msgstr ""
 "  FETCH_COUNT        一次取得并显示的结果行的数量\n"
 "                     (默认:0=无限)\n"
 
-#: help.c:328
+#: help.c:346
 #, c-format
+#| msgid ""
+#| "  HISTCONTROL        control history list [ignorespace, ignoredups, "
+#| "ignoreboth]\n"
 msgid ""
-"  HISTCONTROL        control history list [ignorespace, ignoredups, "
+"  HISTCONTROL        controls command history [ignorespace, ignoredups, "
 "ignoreboth]\n"
 msgstr ""
-"  HISTCONTROL        æ\8e§å\88¶å\8e\86å\8f²å\88\97表 [ignorespace, ignoredups, ignoreboth]\n"
+"  HISTCONTROL        æ\8e§å\88¶å\91½ä»¤å\8e\86å\8f² [ignorespace, ignoredups, ignoreboth]\n"
 
-#: help.c:329
+#: help.c:347
 #, c-format
-msgid "  HISTFILE           file name used to store the history list\n"
-msgstr "  HISTFILE           保存历史列表的文件名\n"
+#| msgid "  HISTFILE           file name used to store the history list\n"
+msgid "  HISTFILE           file name used to store the command history\n"
+msgstr "  HISTFILE           用来存储命令历史的文件名\n"
 
-#: help.c:330
+#: help.c:348
 #, c-format
 msgid ""
 "  HISTSIZE           the number of commands to store in the command history\n"
 msgstr "  HISTSIZE           保存在命令历史中的命令数量\n"
 
 # help.c:178
-#: help.c:331
+#: help.c:349
 #, c-format
-msgid "  HOST               the currently connected database server\n"
-msgstr "  HOST               当前已连接的数据库服务器\n"
+#| msgid "  HOST               the currently connected database server\n"
+msgid "  HOST               the currently connected database server host\n"
+msgstr "  HOST               当前连接的数据库服务器主机\n"
 
-#: help.c:332
+#: help.c:350
 #, c-format
 msgid ""
 "  IGNOREEOF          if unset, sending an EOF to interactive session "
 "terminates application\n"
 msgstr "  IGNOREEOF          如果取消设置,发送一个EOF给交互的会话将中断应用\n"
 
-#: help.c:333
+#: help.c:351
 #, c-format
-#| msgid "  -o OID           set next OID\n"
-msgid "  LASTOID            the value of last affected OID\n"
-msgstr "  LASTOID            上一个受影响的OID的值\n"
+#| msgid "  LASTOID            the value of last affected OID\n"
+msgid "  LASTOID            value of the last affected OID\n"
+msgstr "  LASTOID            最后一个受影响的 OID 的值\n"
 
-#: help.c:334
+#: help.c:352
 #, c-format
+#| msgid ""
+#| "  ON_ERROR_ROLLBACK  if set, an error doesn't stop a transaction (uses "
+#| "implicit SAVEPOINTs)\n"
 msgid ""
 "  ON_ERROR_ROLLBACK  if set, an error doesn't stop a transaction (uses "
-"implicit SAVEPOINTs)\n"
-msgstr "  ON_ERROR_ROLLBACK  如果设置,错误不会停止事务(使用隐式SAVEPOINT)\n"
+"implicit savepoints)\n"
+msgstr ""
+"  ON_ERROR_ROLLBACK  如果被设置,则错误不会停止一个事务(使用隐式保存点)\n"
 
-#: help.c:335
+#: help.c:353
 #, c-format
 msgid "  ON_ERROR_STOP      stop batch execution after error\n"
 msgstr "  ON_ERROR_STOP      发生错误后停止批量执行\n"
 
-#: help.c:336
+#: help.c:354
 #, c-format
 msgid "  PORT               server port of the current connection\n"
 msgstr "  PORT               当前连接的服务器端口\n"
 
-#: help.c:337
+#: help.c:355
 #, c-format
-msgid "  PROMPT1            specify the standard psql prompt\n"
-msgstr "  PROMPT1            指定标准的psql提示符\n"
+#| msgid "  PROMPT1            specify the standard psql prompt\n"
+msgid "  PROMPT1            specifies the standard psql prompt\n"
+msgstr "  PROMPT1            指定标准的 psql 提示符\n"
 
-#: help.c:338
+#: help.c:356
 #, c-format
+#| msgid ""
+#| "  PROMPT2            specify the prompt used when a statement continues "
+#| "from a previous line\n"
 msgid ""
-"  PROMPT2            specify the prompt used when a statement continues from "
-"a previous line\n"
-msgstr "  PROMPT2            æ\8c\87å®\9aå½\93ä¸\80个语句跨行时使用的提示符\n"
+"  PROMPT2            specifies the prompt used when a statement continues "
+"from a previous line\n"
+msgstr "  PROMPT2            æ\8c\87å®\9aå\9c¨语句跨行时使用的提示符\n"
 
-#: help.c:339
+#: help.c:357
 #, c-format
+#| msgid ""
+#| "  PROMPT3            specify the prompt used during COPY ... FROM STDIN\n"
 msgid ""
-"  PROMPT3            specify the prompt used during COPY ... FROM STDIN\n"
-msgstr "  PROMPT3            指定COPY ... FROM STDIN期间使用的提示符\n"
+"  PROMPT3            specifies the prompt used during COPY ... FROM STDIN\n"
+msgstr "  PROMPT3            指定 COPY ... FROM STDIN 期间使用的提示符\n"
 
 # help.c:106
-#: help.c:340
+#: help.c:358
 #, c-format
 msgid "  QUIET              run quietly (same as -q option)\n"
 msgstr "  QUIET              静默地运行(和-q选项相同)\n"
 
-#: help.c:341
+#: help.c:359
+#, c-format
+msgid ""
+"  SHOW_CONTEXT       controls display of message context fields [never, "
+"errors, always]\n"
+msgstr "  SHOW_CONTEXT       控制消息上下文域的显示 [never, errors, always]\n"
+
+#: help.c:360
 #, c-format
 msgid ""
 "  SINGLELINE         end of line terminates SQL command mode (same as -S "
 "option)\n"
 msgstr "  SINGLELINE         行尾会终止SQL命令模式(与-S选项相同)\n"
 
-#: help.c:342
+#: help.c:361
 #, c-format
 msgid "  SINGLESTEP         single-step mode (same as -s option)\n"
 msgstr "  SINGLESTEP         单步模式(与-s选项相同)\n"
 
 # help.c:178
-#: help.c:343
+#: help.c:362
 #, c-format
 msgid "  USER               the currently connected database user\n"
 msgstr "  USER               当前连接上的数据库用户\n"
 
-#: help.c:344
+#: help.c:363
 #, c-format
+#| msgid ""
+#| "  VERBOSITY          control verbosity of error reports [default, "
+#| "verbose, terse]\n"
 msgid ""
-"  VERBOSITY          control verbosity of error reports [default, verbose, "
+"  VERBOSITY          controls verbosity of error reports [default, verbose, "
 "terse]\n"
 msgstr ""
-"  VERBOSITY          控制错误报告的详细程度 [default, verbose, terse]\n"
+"  VERBOSITY          控制错误报告的冗长程度 [default, verbose, terse]\n"
 
-#: help.c:346
+# describe.c:1549
+#: help.c:365
 #, c-format
+#| msgid "List of settings"
 msgid ""
 "\n"
-"Display influencing variables:\n"
+"Display settings:\n"
 msgstr ""
 "\n"
-"显示影响的变量:\n"
+"显示设置:\n"
 
-#: help.c:348
+#: help.c:367
 #, c-format
+#| msgid ""
+#| "  psql --pset=NAME[=VALUE]\n"
+#| "  or \\pset NAME [VALUE] in interactive mode\n"
+#| "\n"
 msgid ""
 "  psql --pset=NAME[=VALUE]\n"
-"  or \\pset NAME [VALUE] in interactive mode\n"
+"  or \\pset NAME [VALUE] inside psql\n"
 "\n"
 msgstr ""
 "  psql --pset=NAME[=VALUE]\n"
-"  或者交互模式中的 \\pset NAME [VALUE]\n"
+"  或者 psql 中的 \\pset NAME [VALUE]\n"
 "\n"
 
-#: help.c:350
+#: help.c:369
 #, c-format
 msgid "  border             border style (number)\n"
 msgstr "  border             边界样式(数字)\n"
 
-#: help.c:351
+#: help.c:370
 #, c-format
-msgid "  columns            set the target width for the wrapped format\n"
-msgstr "  columns            为回卷格式设置目标宽度\n"
+#| msgid "  columns            set the target width for the wrapped format\n"
+msgid "  columns            target width for the wrapped format\n"
+msgstr "  columns            用于回卷格式的目标宽度\n"
 
 # help.c:117
-#: help.c:352
+#: help.c:371
 #, c-format
-msgid "  expanded (or x)    toggle expanded output\n"
-msgstr "  expanded (or x)    扩展输出开关\n"
+#| msgid "  expanded (or x)    toggle expanded output\n"
+msgid "  expanded (or x)    expanded output [on, off, auto]\n"
+msgstr "  expanded (或者 x)    扩展输出 [on, off, auto]\n"
 
 # help.c:119
-#: help.c:353
+#: help.c:372
 #, c-format
+#| msgid ""
+#| "  fieldsep           field separator for unaligned output (default '|')\n"
 msgid ""
-"  fieldsep           field separator for unaligned output (default '|')\n"
-msgstr "  fieldsep           非对齐输出的域分隔符(默认是'|')\n"
+"  fieldsep           field separator for unaligned output (default \"%s\")\n"
+msgstr "  fieldsep           用于非对齐输出的域分隔符(默认是 \"%s\")\n"
 
 # help.c:119
-#: help.c:354
+#: help.c:373
 #, c-format
-msgid "  fieldsep_zero      set field separator in unaligned mode to zero\n"
-msgstr "  fieldsep_zero      将非对齐模式中的域分隔符设置为零\n"
+#| msgid "  fieldsep_zero      set field separator in unaligned mode to zero\n"
+msgid ""
+"  fieldsep_zero      set field separator for unaligned output to zero byte\n"
+msgstr "  fieldsep_zero      将用于非对齐模式中的域分隔符设置为零字节\n"
 
 # command.c:1340
-#: help.c:355
+#: help.c:374
 #, c-format
 msgid ""
 "  format             set output format [unaligned, aligned, wrapped, html, "
@@ -3307,27 +3489,27 @@ msgstr ""
 "  format             设置输出格式 [unaligned, aligned, wrapped, html, "
 "asciidoc, ...]\n"
 
-#: help.c:356
+#: help.c:375
 #, c-format
 msgid ""
 "  footer             enable or disable display of the table footer [on, "
 "off]\n"
 msgstr "  footer             启用或禁用表格页脚的显示 [on, off]\n"
 
-#: help.c:357
+#: help.c:376
 #, c-format
 msgid ""
 "  linestyle          set the border line drawing style [ascii, old-ascii, "
 "unicode]\n"
 msgstr "  linestyle          设置边界线绘制风格 [ascii, old-ascii, unicode]\n"
 
-#: help.c:358
+#: help.c:377
 #, c-format
 msgid ""
 "  null               set the string to be printed in place of a null value\n"
 msgstr "  null               设置代替空值被打印的字符串\n"
 
-#: help.c:359
+#: help.c:378
 #, c-format
 msgid ""
 "  numericlocale      enable or disable display of a locale-specific "
@@ -3336,7 +3518,7 @@ msgid ""
 msgstr ""
 "  numericlocale      启用或者禁用分隔数字分组的区域相关字符的显示 [on, off]\n"
 
-#: help.c:361
+#: help.c:380
 #, c-format
 msgid ""
 "  pager              control when an external pager is used [yes, no, "
@@ -3344,65 +3526,72 @@ msgid ""
 msgstr "  pager              控制何时使用一个外部分页器 [yes, no, always]\n"
 
 # help.c:121
-#: help.c:362
+#: help.c:381
 #, c-format
-msgid ""
-"  recordsep          specify the record (line) separator to use in unaligned "
-"output format\n"
-msgstr "  recordsep          指定在非对齐输出格式中使用的记录(排)分隔符\n"
+#| msgid ""
+#| "  recordsep          specify the record (line) separator to use in "
+#| "unaligned output format\n"
+msgid "  recordsep          record (line) separator for unaligned output\n"
+msgstr "  recordsep          用于非对齐输出中的记录(行)分隔符\n"
 
 # help.c:121
-#: help.c:363
+#: help.c:382
 #, c-format
+#| msgid ""
+#| "  recordsep_zero     set the record separator to use in unaligned output "
+#| "format to a zero byte.\n"
 msgid ""
-"  recordsep_zero     set the record separator to use in unaligned output "
-"format to a zero byte.\n"
-msgstr ""
-"  recordsep_zero     将非对齐输出格式中使用的记录分隔符设置为一个零字节。\n"
+"  recordsep_zero     set record separator for unaligned output to zero byte\n"
+msgstr "  recordsep_zero     将用于非对齐输出中的记录分隔符设置为零字节\n"
 
-#: help.c:364
+#: help.c:383
 #, c-format
+#| msgid ""
+#| "  tableattr (or T)   specify attributes for table tag in html format or "
+#| "proportional\n"
+#| "                     column width of left aligned data type in latex "
+#| "format\n"
 msgid ""
 "  tableattr (or T)   specify attributes for table tag in html format or "
 "proportional\n"
-"                     column width of left aligned data type in latex format\n"
+"                     column widths for left-aligned data types in latex-"
+"longtable format\n"
 msgstr ""
-"  tableattr (or T)   指定用于html格式中表标签的属性\n"
-"                            或者latex格式中左对齐数据类型的比例列宽的属性\n"
+"  tableattr (或者 T)   指定 html 格式中表标签的属性\n"
+"                            或者 latex-longtable 格式中左对齐数据类型的比例列"
+"宽\n"
 
 # help.c:235
-#: help.c:366
+#: help.c:385
 #, c-format
 msgid ""
 "  title              set the table title for any subsequently printed "
 "tables\n"
 msgstr "  title              为任何后续被打印的表设置表标题\n"
 
-#: help.c:367
+#: help.c:386
 #, c-format
 msgid "  tuples_only        if set, only actual table data is shown\n"
 msgstr "  tuples_only        如果被设置,只有真实的表数据会被显示\n"
 
-#: help.c:368
-#, c-format
-msgid "  unicode_border_linestyle\n"
-msgstr "  unicode_border_linestyle\n"
-
-#: help.c:369
-#, c-format
-msgid "  unicode_column_linestyle\n"
-msgstr "  unicode_column_linestyle\n"
-
-#: help.c:370
+#: help.c:387
 #, c-format
+#| msgid ""
+#| "  unicode_header_linestyle\n"
+#| "                     set the style of unicode line drawing [single, "
+#| "double]\n"
 msgid ""
+"  unicode_border_linestyle\n"
+"  unicode_column_linestyle\n"
 "  unicode_header_linestyle\n"
-"                     set the style of unicode line drawing [single, double]\n"
+"                     set the style of Unicode line drawing [single, double]\n"
 msgstr ""
+"  unicode_border_linestyle\n"
+"  unicode_column_linestyle\n"
 "  unicode_header_linestyle\n"
-"                     设置unicode线绘制的风格 [single, double]\n"
+"                     设置 Unicode 线绘制的风格 [single, double]\n"
 
-#: help.c:373
+#: help.c:392
 #, c-format
 msgid ""
 "\n"
@@ -3411,92 +3600,99 @@ msgstr ""
 "\n"
 "环境变量:\n"
 
-#: help.c:377
+#: help.c:396
 #, c-format
+#| msgid ""
+#| "  NAME=VALUE [NAME=VALUE] psql ...\n"
+#| "  or \\setenv NAME [VALUE] in interactive mode\n"
+#| "\n"
 msgid ""
 "  NAME=VALUE [NAME=VALUE] psql ...\n"
-"  or \\setenv NAME [VALUE] in interactive mode\n"
+"  or \\setenv NAME [VALUE] inside psql\n"
 "\n"
 msgstr ""
 "  NAME=VALUE [NAME=VALUE] psql ...\n"
-"  或者交互模式中的 \\setenv NAME [VALUE]\n"
+"  或者 psql 中的 \\setenv NAME [VALUE]\n"
 "\n"
 
-#: help.c:379
+#: help.c:398
 #, c-format
+#| msgid ""
+#| "  set NAME=VALUE\n"
+#| "  psql ...\n"
+#| "  or \\setenv NAME VALUE in interactive mode\n"
+#| "\n"
 msgid ""
 "  set NAME=VALUE\n"
 "  psql ...\n"
-"  or \\setenv NAME VALUE in interactive mode\n"
+"  or \\setenv NAME [VALUE] inside psql\n"
 "\n"
 msgstr ""
 "  set NAME=VALUE\n"
 "  psql ...\n"
-"  或者交互模式中的 \\setenv NAME VALUE\n"
+"  或者 psql 中的 \\setenv NAME [VALUE]\n"
 "\n"
 
-#: help.c:382
+#: help.c:401
 #, c-format
 msgid "  COLUMNS            number of columns for wrapped format\n"
 msgstr "  COLUMNS            回卷格式的列数\n"
 
-#: help.c:383
+#: help.c:402
 #, c-format
-#| msgid "  -x NUM             internal use\n"
 msgid "  PAGER              name of external pager program\n"
 msgstr "  PAGER              外部分页程序的名称\n"
 
-#: help.c:384
+#: help.c:403
 #, c-format
 msgid ""
 "  PGAPPNAME          same as the application_name connection parameter\n"
 msgstr "  PGAPPNAME          和application_name连接参数相同\n"
 
-#: help.c:385
+#: help.c:404
 #, c-format
 msgid "  PGDATABASE         same as the dbname connection parameter\n"
 msgstr "  PGDATABASE         和dbname连接参数相同\n"
 
-#: help.c:386
+#: help.c:405
 #, c-format
-#| msgid "  -l                 enable SSL connections\n"
 msgid "  PGHOST             same as the host connection parameter\n"
 msgstr "  PGHOST             与主机连接参数相同\n"
 
-#: help.c:387
+#: help.c:406
 #, c-format
-#| msgid "  -l                 enable SSL connections\n"
 msgid "  PGPORT             same as the port connection parameter\n"
 msgstr "  PGPORT             与端口连接参数相同\n"
 
 # help.c:136
-#: help.c:388
+#: help.c:407
 #, c-format
-#| msgid "  DBNAME             database name (defaults to user name)\n"
 msgid "  PGUSER             same as the user connection parameter\n"
 msgstr "  PGUSER             与用户连接参数相同\n"
 
-#: help.c:389
+#: help.c:408
 #, c-format
 msgid "  PGPASSWORD         connection password (not recommended)\n"
 msgstr "  PGPASSWORD         连接口令(不推荐)\n"
 
-#: help.c:390
+#: help.c:409
 #, c-format
-#| msgid "  -f, --file=FILENAME          output file name\n"
 msgid "  PGPASSFILE         password file name\n"
 msgstr "  PGPASSFILE         口令文件名\n"
 
-#: help.c:391
+#: help.c:410
 #, c-format
+#| msgid ""
+#| "  PSQL_EDITOR, EDITOR, VISUAL\n"
+#| "                     editor used by the \\e and \\ef commands\n"
 msgid ""
 "  PSQL_EDITOR, EDITOR, VISUAL\n"
-"                     editor used by the \\e and \\ef commands\n"
+"                     editor used by the \\e, \\ef, and \\ev commands\n"
 msgstr ""
 "  PSQL_EDITOR, EDITOR, VISUAL\n"
-"                     \\e以及\\ef命令使用的编辑器\n"
+"                     \\e, \\ef, 和 \\ev 命令使用的编辑器\n"
 
-#: help.c:393
+#: help.c:412
 #, c-format
 msgid ""
 "  PSQL_EDITOR_LINENUMBER_ARG\n"
@@ -3505,35 +3701,35 @@ msgstr ""
 "  PSQL_EDITOR_LINENUMBER_ARG\n"
 "                     调用编辑器时如何指定一个行号\n"
 
-#: help.c:395
+#: help.c:414
 #, c-format
 msgid ""
 "  PSQL_HISTORY       alternative location for the command history file\n"
 msgstr "  PSQL_HISTORY       命令历史文件的可选位置\n"
 
-#: help.c:396
+#: help.c:415
 #, c-format
 msgid "  PSQLRC             alternative location for the user's .psqlrc file\n"
 msgstr "  PSQLRC             用户的.psqlrc文件的可选位置\n"
 
-#: help.c:397
+#: help.c:416
 #, c-format
 msgid "  SHELL              shell used by the \\! command\n"
 msgstr "  SHELL              \\! 命令使用的shell\n"
 
 # help.c:200
-#: help.c:398
+#: help.c:417
 #, c-format
 msgid "  TMPDIR             directory for temporary files\n"
 msgstr "  TMPDIR             临时文件的目录\n"
 
 # help.c:285
-#: help.c:441
+#: help.c:460
 msgid "Available help:\n"
 msgstr "可用的说明:\n"
 
 # help.c:344
-#: help.c:525
+#: help.c:544
 #, c-format
 msgid ""
 "Command:     %s\n"
@@ -3549,7 +3745,7 @@ msgstr ""
 "\n"
 
 # help.c:357
-#: help.c:541
+#: help.c:560
 #, c-format
 msgid ""
 "No help available for \"%s\".\n"
@@ -3559,19 +3755,19 @@ msgstr ""
 "请尝试用不带参数的 \\h 来看一下是否有可使用的帮助信息.\n"
 
 # input.c:210
-#: input.c:194
+#: input.c:216
 #, c-format
 msgid "could not read from input file: %s\n"
 msgstr "无法从输入档案读取:%s\n"
 
 # input.c:210
-#: input.c:446 input.c:485
+#: input.c:471 input.c:510
 #, c-format
 msgid "could not save history to file \"%s\": %s\n"
 msgstr "无法将历史记录储存到 \"%s\":%s\n"
 
 # input.c:213
-#: input.c:505
+#: input.c:530
 #, c-format
 msgid "history is not supported by this installation\n"
 msgstr "这个安装不支援命令记录\n"
@@ -3604,12 +3800,12 @@ msgid "Large objects"
 msgstr "大型对象"
 
 # mainloop.c:172
-#: mainloop.c:161
+#: mainloop.c:168
 #, c-format
 msgid "Use \"\\q\" to leave %s.\n"
 msgstr "使用 \"\\q\" 离开 %s。\n"
 
-#: mainloop.c:183
+#: mainloop.c:190
 msgid ""
 "The input is a PostgreSQL custom-format dump.\n"
 "Use the pg_restore command-line client to restore this dump to a database.\n"
@@ -3617,12 +3813,12 @@ msgstr ""
 "该输入是一个PostgreSQL自定义格式的转储。\n"
 "请使用pg_restore命令行客户端来将这个转储恢复到数据库。\n"
 
-#: mainloop.c:203
+#: mainloop.c:210
 msgid "You are using psql, the command-line interface to PostgreSQL."
 msgstr "您正在使用psql, 这是一种用于访问PostgreSQL的命令行界面"
 
 # startup.c:292
-#: mainloop.c:204
+#: mainloop.c:211
 #, c-format
 msgid ""
 "Type:  \\copyright for distribution terms\n"
@@ -3637,53 +3833,16 @@ msgstr ""
 "       \\g 或者以分号(;)结尾以执行查询\n"
 "       \\q 退出\n"
 
-# print.c:1202
-#: print.c:344
-#, c-format
-msgid "(%lu row)"
-msgid_plural "(%lu rows)"
-msgstr[0] "(%lu 行记录)"
-
-#: print.c:2801
-#, c-format
-msgid "Interrupted\n"
-msgstr "已中断\n"
-
-#: print.c:2867
-#, c-format
-msgid "Cannot add header to table content: column count of %d exceeded.\n"
-msgstr "无法对表的内容增加标题:已经超过%d列的数量.\n"
-
-#: print.c:2907
-#, c-format
-msgid "Cannot add cell to table content: total cell count of %d exceeded.\n"
-msgstr "无法对表的内容添加单元: 总共有%d个单元超过.\n"
-
-#: print.c:3139
-#, c-format
-msgid "invalid output format (internal error): %d"
-msgstr "无效的输出格式 (内部错误): %d"
-
-#: psqlscan.l:751
-#, c-format
-msgid "skipping recursive expansion of variable \"%s\"\n"
-msgstr "跳过变量 \"%s\"的递归扩展\n"
-
-#: psqlscan.l:1627
+#: psqlscanslash.l:584
 #, c-format
 msgid "unterminated quoted string\n"
 msgstr "未结束的引用字符串\n"
 
-#: psqlscan.l:1727
+#: psqlscanslash.l:737
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: 内存溢出\n"
 
-#: psqlscan.l:1956
-#, c-format
-msgid "can't escape without active connection\n"
-msgstr "没有数据库连接时无法escape\n"
-
 # describe.c:82
 # describe.c:128
 # describe.c:177
@@ -3696,487 +3855,507 @@ msgstr "没有数据库连接时无法escape\n"
 # describe.c:1586
 # describe.c:1634
 # describe.c:1727
-#: sql_help.c:33 sql_help.c:36 sql_help.c:39 sql_help.c:61 sql_help.c:63
-#: sql_help.c:65 sql_help.c:76 sql_help.c:78 sql_help.c:80 sql_help.c:106
-#: sql_help.c:112 sql_help.c:114 sql_help.c:116 sql_help.c:118 sql_help.c:121
-#: sql_help.c:123 sql_help.c:125 sql_help.c:218 sql_help.c:220 sql_help.c:221
-#: sql_help.c:223 sql_help.c:225 sql_help.c:228 sql_help.c:230 sql_help.c:232
-#: sql_help.c:234 sql_help.c:246 sql_help.c:247 sql_help.c:248 sql_help.c:250
-#: sql_help.c:296 sql_help.c:298 sql_help.c:300 sql_help.c:302 sql_help.c:362
-#: sql_help.c:367 sql_help.c:369 sql_help.c:412 sql_help.c:414 sql_help.c:417
-#: sql_help.c:419 sql_help.c:483 sql_help.c:488 sql_help.c:493 sql_help.c:498
-#: sql_help.c:546 sql_help.c:548 sql_help.c:550 sql_help.c:553 sql_help.c:555
-#: sql_help.c:566 sql_help.c:568 sql_help.c:608 sql_help.c:610 sql_help.c:613
-#: sql_help.c:615 sql_help.c:617 sql_help.c:646 sql_help.c:650 sql_help.c:668
-#: sql_help.c:671 sql_help.c:674 sql_help.c:703 sql_help.c:715 sql_help.c:723
-#: sql_help.c:726 sql_help.c:729 sql_help.c:743 sql_help.c:789 sql_help.c:812
-#: sql_help.c:823 sql_help.c:825 sql_help.c:842 sql_help.c:851 sql_help.c:853
-#: sql_help.c:855 sql_help.c:867 sql_help.c:871 sql_help.c:873 sql_help.c:957
-#: sql_help.c:959 sql_help.c:962 sql_help.c:965 sql_help.c:967 sql_help.c:969
-#: sql_help.c:1030 sql_help.c:1032 sql_help.c:1034 sql_help.c:1037
-#: sql_help.c:1058 sql_help.c:1061 sql_help.c:1064 sql_help.c:1067
-#: sql_help.c:1071 sql_help.c:1073 sql_help.c:1075 sql_help.c:1077
-#: sql_help.c:1091 sql_help.c:1094 sql_help.c:1096 sql_help.c:1098
-#: sql_help.c:1108 sql_help.c:1110 sql_help.c:1120 sql_help.c:1122
-#: sql_help.c:1131 sql_help.c:1152 sql_help.c:1154 sql_help.c:1156
-#: sql_help.c:1159 sql_help.c:1161 sql_help.c:1163 sql_help.c:1213
-#: sql_help.c:1251 sql_help.c:1254 sql_help.c:1256 sql_help.c:1258
-#: sql_help.c:1260 sql_help.c:1262 sql_help.c:1265 sql_help.c:1305
-#: sql_help.c:1552 sql_help.c:1568 sql_help.c:1581 sql_help.c:1632
-#: sql_help.c:1636 sql_help.c:1646 sql_help.c:1666 sql_help.c:1691
-#: sql_help.c:1709 sql_help.c:1737 sql_help.c:1811 sql_help.c:1854
-#: sql_help.c:1876 sql_help.c:1896 sql_help.c:1897 sql_help.c:1932
-#: sql_help.c:1952 sql_help.c:1974 sql_help.c:1987 sql_help.c:2019
-#: sql_help.c:2044 sql_help.c:2088 sql_help.c:2274 sql_help.c:2287
-#: sql_help.c:2304 sql_help.c:2320 sql_help.c:2359 sql_help.c:2410
-#: sql_help.c:2414 sql_help.c:2416 sql_help.c:2422 sql_help.c:2440
-#: sql_help.c:2467 sql_help.c:2502 sql_help.c:2514 sql_help.c:2523
-#: sql_help.c:2573 sql_help.c:2601 sql_help.c:2609 sql_help.c:2617
-#: sql_help.c:2625 sql_help.c:2633 sql_help.c:2641 sql_help.c:2649
-#: sql_help.c:2657 sql_help.c:2666 sql_help.c:2677 sql_help.c:2685
-#: sql_help.c:2693 sql_help.c:2701 sql_help.c:2709 sql_help.c:2719
-#: sql_help.c:2728 sql_help.c:2737 sql_help.c:2745 sql_help.c:2754
-#: sql_help.c:2762 sql_help.c:2771 sql_help.c:2779 sql_help.c:2787
-#: sql_help.c:2795 sql_help.c:2803 sql_help.c:2811 sql_help.c:2819
-#: sql_help.c:2827 sql_help.c:2835 sql_help.c:2852 sql_help.c:2861
-#: sql_help.c:2869 sql_help.c:2886 sql_help.c:2901 sql_help.c:3166
-#: sql_help.c:3217 sql_help.c:3246 sql_help.c:3254 sql_help.c:3673
-#: sql_help.c:3721 sql_help.c:3862
+#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:64 sql_help.c:66
+#: sql_help.c:68 sql_help.c:79 sql_help.c:81 sql_help.c:83 sql_help.c:109
+#: sql_help.c:115 sql_help.c:117 sql_help.c:119 sql_help.c:121 sql_help.c:124
+#: sql_help.c:126 sql_help.c:128 sql_help.c:221 sql_help.c:223 sql_help.c:224
+#: sql_help.c:226 sql_help.c:228 sql_help.c:231 sql_help.c:233 sql_help.c:235
+#: sql_help.c:237 sql_help.c:249 sql_help.c:250 sql_help.c:251 sql_help.c:253
+#: sql_help.c:299 sql_help.c:301 sql_help.c:303 sql_help.c:305 sql_help.c:365
+#: sql_help.c:370 sql_help.c:372 sql_help.c:415 sql_help.c:417 sql_help.c:420
+#: sql_help.c:422 sql_help.c:489 sql_help.c:494 sql_help.c:499 sql_help.c:504
+#: sql_help.c:509 sql_help.c:558 sql_help.c:560 sql_help.c:562 sql_help.c:564
+#: sql_help.c:567 sql_help.c:569 sql_help.c:580 sql_help.c:582 sql_help.c:624
+#: sql_help.c:626 sql_help.c:628 sql_help.c:631 sql_help.c:633 sql_help.c:635
+#: sql_help.c:669 sql_help.c:673 sql_help.c:677 sql_help.c:696 sql_help.c:699
+#: sql_help.c:702 sql_help.c:731 sql_help.c:743 sql_help.c:751 sql_help.c:754
+#: sql_help.c:757 sql_help.c:772 sql_help.c:775 sql_help.c:819 sql_help.c:842
+#: sql_help.c:853 sql_help.c:855 sql_help.c:872 sql_help.c:881 sql_help.c:883
+#: sql_help.c:885 sql_help.c:897 sql_help.c:901 sql_help.c:903 sql_help.c:987
+#: sql_help.c:989 sql_help.c:992 sql_help.c:995 sql_help.c:997 sql_help.c:999
+#: sql_help.c:1060 sql_help.c:1062 sql_help.c:1064 sql_help.c:1067
+#: sql_help.c:1088 sql_help.c:1091 sql_help.c:1094 sql_help.c:1097
+#: sql_help.c:1101 sql_help.c:1103 sql_help.c:1105 sql_help.c:1107
+#: sql_help.c:1121 sql_help.c:1124 sql_help.c:1126 sql_help.c:1128
+#: sql_help.c:1138 sql_help.c:1140 sql_help.c:1150 sql_help.c:1152
+#: sql_help.c:1162 sql_help.c:1165 sql_help.c:1186 sql_help.c:1188
+#: sql_help.c:1190 sql_help.c:1193 sql_help.c:1195 sql_help.c:1197
+#: sql_help.c:1247 sql_help.c:1285 sql_help.c:1288 sql_help.c:1290
+#: sql_help.c:1292 sql_help.c:1294 sql_help.c:1296 sql_help.c:1299
+#: sql_help.c:1339 sql_help.c:1542 sql_help.c:1613 sql_help.c:1633
+#: sql_help.c:1650 sql_help.c:1705 sql_help.c:1709 sql_help.c:1719
+#: sql_help.c:1739 sql_help.c:1764 sql_help.c:1782 sql_help.c:1811
+#: sql_help.c:1886 sql_help.c:1928 sql_help.c:1950 sql_help.c:1970
+#: sql_help.c:1971 sql_help.c:2006 sql_help.c:2026 sql_help.c:2048
+#: sql_help.c:2061 sql_help.c:2092 sql_help.c:2117 sql_help.c:2161
+#: sql_help.c:2347 sql_help.c:2360 sql_help.c:2377 sql_help.c:2393
+#: sql_help.c:2432 sql_help.c:2483 sql_help.c:2487 sql_help.c:2489
+#: sql_help.c:2495 sql_help.c:2513 sql_help.c:2540 sql_help.c:2575
+#: sql_help.c:2587 sql_help.c:2596 sql_help.c:2640 sql_help.c:2654
+#: sql_help.c:2682 sql_help.c:2690 sql_help.c:2698 sql_help.c:2706
+#: sql_help.c:2714 sql_help.c:2722 sql_help.c:2730 sql_help.c:2738
+#: sql_help.c:2747 sql_help.c:2758 sql_help.c:2766 sql_help.c:2774
+#: sql_help.c:2782 sql_help.c:2790 sql_help.c:2800 sql_help.c:2809
+#: sql_help.c:2818 sql_help.c:2826 sql_help.c:2835 sql_help.c:2843
+#: sql_help.c:2852 sql_help.c:2860 sql_help.c:2868 sql_help.c:2876
+#: sql_help.c:2884 sql_help.c:2892 sql_help.c:2900 sql_help.c:2908
+#: sql_help.c:2916 sql_help.c:2933 sql_help.c:2942 sql_help.c:2950
+#: sql_help.c:2967 sql_help.c:2982 sql_help.c:3247 sql_help.c:3298
+#: sql_help.c:3327 sql_help.c:3335 sql_help.c:3754 sql_help.c:3802
+#: sql_help.c:3943
 msgid "name"
 msgstr "名称"
 
-#: sql_help.c:34 sql_help.c:37 sql_help.c:40 sql_help.c:306 sql_help.c:1369
-#: sql_help.c:2574 sql_help.c:3469
+#: sql_help.c:37 sql_help.c:40 sql_help.c:43 sql_help.c:309 sql_help.c:1403
+#: sql_help.c:2655 sql_help.c:3550
 msgid "aggregate_signature"
 msgstr "aggregate_signature"
 
-#: sql_help.c:35 sql_help.c:62 sql_help.c:77 sql_help.c:113 sql_help.c:233
-#: sql_help.c:251 sql_help.c:370 sql_help.c:418 sql_help.c:492 sql_help.c:533
-#: sql_help.c:547 sql_help.c:567 sql_help.c:614 sql_help.c:670 sql_help.c:725
-#: sql_help.c:745 sql_help.c:790 sql_help.c:814 sql_help.c:824 sql_help.c:854
-#: sql_help.c:874 sql_help.c:966 sql_help.c:1031 sql_help.c:1074
-#: sql_help.c:1095 sql_help.c:1109 sql_help.c:1121 sql_help.c:1133
-#: sql_help.c:1160 sql_help.c:1214 sql_help.c:1259
+#: sql_help.c:38 sql_help.c:65 sql_help.c:80 sql_help.c:116 sql_help.c:236
+#: sql_help.c:254 sql_help.c:373 sql_help.c:421 sql_help.c:498 sql_help.c:544
+#: sql_help.c:559 sql_help.c:581 sql_help.c:632 sql_help.c:698 sql_help.c:753
+#: sql_help.c:774 sql_help.c:820 sql_help.c:844 sql_help.c:854 sql_help.c:884
+#: sql_help.c:904 sql_help.c:996 sql_help.c:1061 sql_help.c:1104
+#: sql_help.c:1125 sql_help.c:1139 sql_help.c:1151 sql_help.c:1164
+#: sql_help.c:1194 sql_help.c:1248 sql_help.c:1293
 msgid "new_name"
 msgstr "新的名称"
 
-#: sql_help.c:38 sql_help.c:64 sql_help.c:79 sql_help.c:115 sql_help.c:231
-#: sql_help.c:249 sql_help.c:368 sql_help.c:454 sql_help.c:497 sql_help.c:569
-#: sql_help.c:578 sql_help.c:633 sql_help.c:649 sql_help.c:673 sql_help.c:728
-#: sql_help.c:826 sql_help.c:852 sql_help.c:872 sql_help.c:1015
-#: sql_help.c:1033 sql_help.c:1076 sql_help.c:1097 sql_help.c:1155
-#: sql_help.c:1257 sql_help.c:2260
+#: sql_help.c:41 sql_help.c:67 sql_help.c:82 sql_help.c:118 sql_help.c:234
+#: sql_help.c:252 sql_help.c:371 sql_help.c:457 sql_help.c:503 sql_help.c:583
+#: sql_help.c:592 sql_help.c:651 sql_help.c:672 sql_help.c:701 sql_help.c:756
+#: sql_help.c:856 sql_help.c:882 sql_help.c:902 sql_help.c:1045
+#: sql_help.c:1063 sql_help.c:1106 sql_help.c:1127 sql_help.c:1189
+#: sql_help.c:1291 sql_help.c:2333
 msgid "new_owner"
 msgstr "新的属主"
 
-#: sql_help.c:41 sql_help.c:66 sql_help.c:81 sql_help.c:235 sql_help.c:299
-#: sql_help.c:420 sql_help.c:502 sql_help.c:616 sql_help.c:653 sql_help.c:676
-#: sql_help.c:731 sql_help.c:856 sql_help.c:968 sql_help.c:1078
-#: sql_help.c:1099 sql_help.c:1111 sql_help.c:1123 sql_help.c:1162
-#: sql_help.c:1261
+#: sql_help.c:44 sql_help.c:69 sql_help.c:84 sql_help.c:238 sql_help.c:302
+#: sql_help.c:423 sql_help.c:508 sql_help.c:634 sql_help.c:676 sql_help.c:704
+#: sql_help.c:759 sql_help.c:886 sql_help.c:998 sql_help.c:1108
+#: sql_help.c:1129 sql_help.c:1141 sql_help.c:1153 sql_help.c:1196
+#: sql_help.c:1295
 msgid "new_schema"
 msgstr "新的模式"
 
 # describe.c:1174
-#: sql_help.c:42 sql_help.c:1422 sql_help.c:2575 sql_help.c:3488
+#: sql_help.c:45 sql_help.c:1456 sql_help.c:2656 sql_help.c:3569
 msgid "where aggregate_signature is:"
 msgstr "其中 aggregate_signature 是:"
 
-#: sql_help.c:43 sql_help.c:46 sql_help.c:49 sql_help.c:316 sql_help.c:341
-#: sql_help.c:344 sql_help.c:347 sql_help.c:484 sql_help.c:489 sql_help.c:494
-#: sql_help.c:499 sql_help.c:1387 sql_help.c:1423 sql_help.c:1426
-#: sql_help.c:1429 sql_help.c:1553 sql_help.c:1569 sql_help.c:1572
-#: sql_help.c:1812 sql_help.c:2576 sql_help.c:2579 sql_help.c:2582
-#: sql_help.c:2667 sql_help.c:3052 sql_help.c:3384 sql_help.c:3475
-#: sql_help.c:3489 sql_help.c:3492 sql_help.c:3495
+#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:319 sql_help.c:344
+#: sql_help.c:347 sql_help.c:350 sql_help.c:490 sql_help.c:495 sql_help.c:500
+#: sql_help.c:505 sql_help.c:510 sql_help.c:1421 sql_help.c:1457
+#: sql_help.c:1460 sql_help.c:1463 sql_help.c:1614 sql_help.c:1634
+#: sql_help.c:1637 sql_help.c:1887 sql_help.c:2657 sql_help.c:2660
+#: sql_help.c:2663 sql_help.c:2748 sql_help.c:3133 sql_help.c:3465
+#: sql_help.c:3556 sql_help.c:3570 sql_help.c:3573 sql_help.c:3576
 msgid "argmode"
 msgstr "参数模式"
 
 # describe.c:480
-#: sql_help.c:44 sql_help.c:47 sql_help.c:50 sql_help.c:317 sql_help.c:342
-#: sql_help.c:345 sql_help.c:348 sql_help.c:485 sql_help.c:490 sql_help.c:495
-#: sql_help.c:500 sql_help.c:1388 sql_help.c:1424 sql_help.c:1427
-#: sql_help.c:1430 sql_help.c:1554 sql_help.c:1570 sql_help.c:1573
-#: sql_help.c:1813 sql_help.c:2577 sql_help.c:2580 sql_help.c:2583
-#: sql_help.c:2668 sql_help.c:3476 sql_help.c:3490 sql_help.c:3493
-#: sql_help.c:3496
+#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:320 sql_help.c:345
+#: sql_help.c:348 sql_help.c:351 sql_help.c:491 sql_help.c:496 sql_help.c:501
+#: sql_help.c:506 sql_help.c:511 sql_help.c:1422 sql_help.c:1458
+#: sql_help.c:1461 sql_help.c:1464 sql_help.c:1615 sql_help.c:1635
+#: sql_help.c:1638 sql_help.c:1888 sql_help.c:2658 sql_help.c:2661
+#: sql_help.c:2664 sql_help.c:2749 sql_help.c:3557 sql_help.c:3571
+#: sql_help.c:3574 sql_help.c:3577
 msgid "argname"
 msgstr "参数名称"
 
 # describe.c:1689
-#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:318 sql_help.c:343
-#: sql_help.c:346 sql_help.c:349 sql_help.c:486 sql_help.c:491 sql_help.c:496
-#: sql_help.c:501 sql_help.c:1389 sql_help.c:1425 sql_help.c:1428
-#: sql_help.c:1431 sql_help.c:1814 sql_help.c:2578 sql_help.c:2581
-#: sql_help.c:2584 sql_help.c:2669 sql_help.c:3477 sql_help.c:3491
-#: sql_help.c:3494 sql_help.c:3497
+#: sql_help.c:48 sql_help.c:51 sql_help.c:54 sql_help.c:321 sql_help.c:346
+#: sql_help.c:349 sql_help.c:352 sql_help.c:492 sql_help.c:497 sql_help.c:502
+#: sql_help.c:507 sql_help.c:512 sql_help.c:1423 sql_help.c:1459
+#: sql_help.c:1462 sql_help.c:1465 sql_help.c:1889 sql_help.c:2659
+#: sql_help.c:2662 sql_help.c:2665 sql_help.c:2750 sql_help.c:3558
+#: sql_help.c:3572 sql_help.c:3575 sql_help.c:3578
 msgid "argtype"
 msgstr "参数类型"
 
-#: sql_help.c:107 sql_help.c:365 sql_help.c:443 sql_help.c:455 sql_help.c:784
-#: sql_help.c:869 sql_help.c:1092 sql_help.c:1208 sql_help.c:1236
-#: sql_help.c:1479 sql_help.c:1485 sql_help.c:1740 sql_help.c:1772
-#: sql_help.c:1779 sql_help.c:1855 sql_help.c:2020 sql_help.c:2109
-#: sql_help.c:2289 sql_help.c:2468 sql_help.c:2490 sql_help.c:2920
-#: sql_help.c:3086
+#: sql_help.c:110 sql_help.c:368 sql_help.c:446 sql_help.c:458 sql_help.c:814
+#: sql_help.c:899 sql_help.c:1122 sql_help.c:1242 sql_help.c:1270
+#: sql_help.c:1513 sql_help.c:1519 sql_help.c:1814 sql_help.c:1846
+#: sql_help.c:1853 sql_help.c:1929 sql_help.c:2093 sql_help.c:2182
+#: sql_help.c:2362 sql_help.c:2541 sql_help.c:2563 sql_help.c:3001
+#: sql_help.c:3167
 msgid "option"
 msgstr "选项"
 
-#: sql_help.c:108 sql_help.c:785 sql_help.c:1209 sql_help.c:1856
-#: sql_help.c:2021 sql_help.c:2469
+#: sql_help.c:111 sql_help.c:815 sql_help.c:1243 sql_help.c:1930
+#: sql_help.c:2094 sql_help.c:2542
 msgid "where option can be:"
 msgstr "选项可以是"
 
-#: sql_help.c:109 sql_help.c:1673
+#: sql_help.c:112 sql_help.c:1746
 msgid "allowconn"
 msgstr "allowconn"
 
-#: sql_help.c:110 sql_help.c:786 sql_help.c:1210 sql_help.c:1674
-#: sql_help.c:2022 sql_help.c:2470
+#: sql_help.c:113 sql_help.c:816 sql_help.c:1244 sql_help.c:1747
+#: sql_help.c:2095 sql_help.c:2543
 msgid "connlimit"
 msgstr "连接限制"
 
-#: sql_help.c:111 sql_help.c:1675
+#: sql_help.c:114 sql_help.c:1748
 msgid "istemplate"
 msgstr "istemplate"
 
 # describe.c:1342
-#: sql_help.c:117 sql_help.c:557 sql_help.c:619 sql_help.c:634 sql_help.c:971
-#: sql_help.c:1008
+#: sql_help.c:120 sql_help.c:571 sql_help.c:637 sql_help.c:652 sql_help.c:1001
+#: sql_help.c:1038
 msgid "new_tablespace"
 msgstr "新的表空间"
 
 # sql_help.h:366
-#: sql_help.c:119 sql_help.c:122 sql_help.c:124 sql_help.c:506 sql_help.c:508
-#: sql_help.c:509 sql_help.c:793 sql_help.c:797 sql_help.c:800 sql_help.c:885
-#: sql_help.c:888 sql_help.c:1216 sql_help.c:1219 sql_help.c:1221
-#: sql_help.c:1823 sql_help.c:3271 sql_help.c:3662
+#: sql_help.c:122 sql_help.c:125 sql_help.c:127 sql_help.c:517 sql_help.c:519
+#: sql_help.c:520 sql_help.c:823 sql_help.c:827 sql_help.c:830 sql_help.c:915
+#: sql_help.c:918 sql_help.c:1250 sql_help.c:1253 sql_help.c:1255
+#: sql_help.c:1898 sql_help.c:3352 sql_help.c:3743
 msgid "configuration_parameter"
 msgstr "配置参数"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:120 sql_help.c:366 sql_help.c:438 sql_help.c:444 sql_help.c:456
-#: sql_help.c:507 sql_help.c:552 sql_help.c:625 sql_help.c:631 sql_help.c:794
-#: sql_help.c:870 sql_help.c:886 sql_help.c:887 sql_help.c:990 sql_help.c:1010
-#: sql_help.c:1036 sql_help.c:1093 sql_help.c:1217 sql_help.c:1237
-#: sql_help.c:1741 sql_help.c:1773 sql_help.c:1780 sql_help.c:1824
-#: sql_help.c:1825 sql_help.c:1884 sql_help.c:1916 sql_help.c:2110
-#: sql_help.c:2184 sql_help.c:2192 sql_help.c:2224 sql_help.c:2246
-#: sql_help.c:2263 sql_help.c:2290 sql_help.c:2491 sql_help.c:3087
-#: sql_help.c:3663 sql_help.c:3664
+#: sql_help.c:123 sql_help.c:369 sql_help.c:441 sql_help.c:447 sql_help.c:459
+#: sql_help.c:518 sql_help.c:566 sql_help.c:643 sql_help.c:649 sql_help.c:824
+#: sql_help.c:900 sql_help.c:916 sql_help.c:917 sql_help.c:1020
+#: sql_help.c:1040 sql_help.c:1066 sql_help.c:1123 sql_help.c:1251
+#: sql_help.c:1271 sql_help.c:1815 sql_help.c:1847 sql_help.c:1854
+#: sql_help.c:1899 sql_help.c:1900 sql_help.c:1958 sql_help.c:1990
+#: sql_help.c:2183 sql_help.c:2257 sql_help.c:2265 sql_help.c:2297
+#: sql_help.c:2319 sql_help.c:2336 sql_help.c:2363 sql_help.c:2564
+#: sql_help.c:3168 sql_help.c:3744 sql_help.c:3745
 msgid "value"
 msgstr "值"
 
-#: sql_help.c:182
+#: sql_help.c:185
 msgid "target_role"
 msgstr "目标角色"
 
-#: sql_help.c:183 sql_help.c:1724 sql_help.c:2068 sql_help.c:2073
-#: sql_help.c:3034 sql_help.c:3041 sql_help.c:3055 sql_help.c:3061
-#: sql_help.c:3366 sql_help.c:3373 sql_help.c:3387 sql_help.c:3393
+#: sql_help.c:186 sql_help.c:1798 sql_help.c:2141 sql_help.c:2146
+#: sql_help.c:3115 sql_help.c:3122 sql_help.c:3136 sql_help.c:3142
+#: sql_help.c:3447 sql_help.c:3454 sql_help.c:3468 sql_help.c:3474
 msgid "schema_name"
 msgstr "模式名称"
 
-#: sql_help.c:184
+#: sql_help.c:187
 msgid "abbreviated_grant_or_revoke"
 msgstr "简写形式的可授予或回收的权限"
 
-#: sql_help.c:185
+#: sql_help.c:188
 msgid "where abbreviated_grant_or_revoke is one of:"
 msgstr "简写形式的可授予或回收权限是下列内容之一"
 
 # describe.c:1375
-#: sql_help.c:186 sql_help.c:187 sql_help.c:188 sql_help.c:189 sql_help.c:190
-#: sql_help.c:191 sql_help.c:192 sql_help.c:193 sql_help.c:531 sql_help.c:556
-#: sql_help.c:618 sql_help.c:746 sql_help.c:804 sql_help.c:970 sql_help.c:1224
-#: sql_help.c:1859 sql_help.c:1860 sql_help.c:1861 sql_help.c:1862
-#: sql_help.c:1863 sql_help.c:1989 sql_help.c:2025 sql_help.c:2026
-#: sql_help.c:2027 sql_help.c:2028 sql_help.c:2029 sql_help.c:2473
-#: sql_help.c:2474 sql_help.c:2475 sql_help.c:2476 sql_help.c:2477
-#: sql_help.c:3068 sql_help.c:3069 sql_help.c:3070 sql_help.c:3367
-#: sql_help.c:3371 sql_help.c:3374 sql_help.c:3376 sql_help.c:3378
-#: sql_help.c:3380 sql_help.c:3382 sql_help.c:3388 sql_help.c:3390
-#: sql_help.c:3392 sql_help.c:3394 sql_help.c:3396 sql_help.c:3398
-#: sql_help.c:3399 sql_help.c:3400 sql_help.c:3683
+#: sql_help.c:189 sql_help.c:190 sql_help.c:191 sql_help.c:192 sql_help.c:193
+#: sql_help.c:194 sql_help.c:195 sql_help.c:196 sql_help.c:542 sql_help.c:570
+#: sql_help.c:636 sql_help.c:777 sql_help.c:834 sql_help.c:1000
+#: sql_help.c:1258 sql_help.c:1933 sql_help.c:1934 sql_help.c:1935
+#: sql_help.c:1936 sql_help.c:1937 sql_help.c:2063 sql_help.c:2098
+#: sql_help.c:2099 sql_help.c:2100 sql_help.c:2101 sql_help.c:2102
+#: sql_help.c:2546 sql_help.c:2547 sql_help.c:2548 sql_help.c:2549
+#: sql_help.c:2550 sql_help.c:3149 sql_help.c:3150 sql_help.c:3151
+#: sql_help.c:3448 sql_help.c:3452 sql_help.c:3455 sql_help.c:3457
+#: sql_help.c:3459 sql_help.c:3461 sql_help.c:3463 sql_help.c:3469
+#: sql_help.c:3471 sql_help.c:3473 sql_help.c:3475 sql_help.c:3477
+#: sql_help.c:3479 sql_help.c:3480 sql_help.c:3481 sql_help.c:3764
 msgid "role_name"
 msgstr "角色名称"
 
-#: sql_help.c:219 sql_help.c:431 sql_help.c:981 sql_help.c:983 sql_help.c:1253
-#: sql_help.c:1694 sql_help.c:1698 sql_help.c:1783 sql_help.c:1787
-#: sql_help.c:1880 sql_help.c:2196 sql_help.c:2206 sql_help.c:2228
-#: sql_help.c:3117 sql_help.c:3132 sql_help.c:3134 sql_help.c:3548
-#: sql_help.c:3549 sql_help.c:3558 sql_help.c:3599 sql_help.c:3600
-#: sql_help.c:3601 sql_help.c:3602 sql_help.c:3603 sql_help.c:3604
-#: sql_help.c:3637 sql_help.c:3638 sql_help.c:3643 sql_help.c:3648
-#: sql_help.c:3787 sql_help.c:3788 sql_help.c:3797 sql_help.c:3838
-#: sql_help.c:3839 sql_help.c:3840 sql_help.c:3841 sql_help.c:3842
-#: sql_help.c:3843 sql_help.c:3890 sql_help.c:3892 sql_help.c:3925
-#: sql_help.c:3981 sql_help.c:3982 sql_help.c:3991 sql_help.c:4032
-#: sql_help.c:4033 sql_help.c:4034 sql_help.c:4035 sql_help.c:4036
-#: sql_help.c:4037
+#: sql_help.c:222 sql_help.c:434 sql_help.c:1011 sql_help.c:1013
+#: sql_help.c:1287 sql_help.c:1767 sql_help.c:1771 sql_help.c:1857
+#: sql_help.c:1861 sql_help.c:1954 sql_help.c:2269 sql_help.c:2279
+#: sql_help.c:2301 sql_help.c:3198 sql_help.c:3213 sql_help.c:3215
+#: sql_help.c:3629 sql_help.c:3630 sql_help.c:3639 sql_help.c:3680
+#: sql_help.c:3681 sql_help.c:3682 sql_help.c:3683 sql_help.c:3684
+#: sql_help.c:3685 sql_help.c:3718 sql_help.c:3719 sql_help.c:3724
+#: sql_help.c:3729 sql_help.c:3868 sql_help.c:3869 sql_help.c:3878
+#: sql_help.c:3919 sql_help.c:3920 sql_help.c:3921 sql_help.c:3922
+#: sql_help.c:3923 sql_help.c:3924 sql_help.c:3971 sql_help.c:3973
+#: sql_help.c:4006 sql_help.c:4062 sql_help.c:4063 sql_help.c:4072
+#: sql_help.c:4113 sql_help.c:4114 sql_help.c:4115 sql_help.c:4116
+#: sql_help.c:4117 sql_help.c:4118
 msgid "expression"
 msgstr "表达式"
 
-#: sql_help.c:222
+#: sql_help.c:225
 msgid "domain_constraint"
 msgstr "域_约束"
 
-#: sql_help.c:224 sql_help.c:226 sql_help.c:229 sql_help.c:446 sql_help.c:447
-#: sql_help.c:963 sql_help.c:996 sql_help.c:997 sql_help.c:998 sql_help.c:1018
-#: sql_help.c:1375 sql_help.c:1377 sql_help.c:1697 sql_help.c:1782
-#: sql_help.c:1786 sql_help.c:2195 sql_help.c:2205 sql_help.c:3129
+#: sql_help.c:227 sql_help.c:229 sql_help.c:232 sql_help.c:449 sql_help.c:450
+#: sql_help.c:993 sql_help.c:1026 sql_help.c:1027 sql_help.c:1028
+#: sql_help.c:1048 sql_help.c:1409 sql_help.c:1411 sql_help.c:1770
+#: sql_help.c:1856 sql_help.c:1860 sql_help.c:2268 sql_help.c:2278
+#: sql_help.c:3210
 msgid "constraint_name"
 msgstr "约束名称"
 
-#: sql_help.c:227 sql_help.c:964
+#: sql_help.c:230 sql_help.c:994
 msgid "new_constraint_name"
 msgstr "new_constraint_name(新约束名)"
 
-#: sql_help.c:297 sql_help.c:868
+#: sql_help.c:300 sql_help.c:898
 msgid "new_version"
 msgstr "新版本"
 
-#: sql_help.c:301 sql_help.c:303
+#: sql_help.c:304 sql_help.c:306
 msgid "member_object"
 msgstr "member_object"
 
-#: sql_help.c:304
+#: sql_help.c:307
 msgid "where member_object is:"
 msgstr "member_object的位置:"
 
-#: sql_help.c:305 sql_help.c:1368 sql_help.c:3468
+#: sql_help.c:308 sql_help.c:1402 sql_help.c:3549
 msgid "aggregate_name"
 msgstr "aggregate_name"
 
 # describe.c:1688
-#: sql_help.c:307 sql_help.c:1370 sql_help.c:1612 sql_help.c:1616
-#: sql_help.c:1618 sql_help.c:2592
+#: sql_help.c:310 sql_help.c:1404 sql_help.c:1685 sql_help.c:1689
+#: sql_help.c:1691 sql_help.c:2673
 msgid "source_type"
 msgstr "类型指派中的源数据类型"
 
 # describe.c:1689
-#: sql_help.c:308 sql_help.c:1371 sql_help.c:1613 sql_help.c:1617
-#: sql_help.c:1619 sql_help.c:2593
+#: sql_help.c:311 sql_help.c:1405 sql_help.c:1686 sql_help.c:1690
+#: sql_help.c:1692 sql_help.c:2674
 msgid "target_type"
 msgstr "类型指派中的目标数据类型"
 
 # describe.c:1375
-#: sql_help.c:309 sql_help.c:310 sql_help.c:311 sql_help.c:312 sql_help.c:313
-#: sql_help.c:314 sql_help.c:319 sql_help.c:323 sql_help.c:325 sql_help.c:327
-#: sql_help.c:328 sql_help.c:329 sql_help.c:330 sql_help.c:331 sql_help.c:332
-#: sql_help.c:333 sql_help.c:334 sql_help.c:335 sql_help.c:338 sql_help.c:339
-#: sql_help.c:1372 sql_help.c:1379 sql_help.c:1380 sql_help.c:1381
-#: sql_help.c:1382 sql_help.c:1383 sql_help.c:1384 sql_help.c:1385
-#: sql_help.c:1390 sql_help.c:1392 sql_help.c:1396 sql_help.c:1398
-#: sql_help.c:1402 sql_help.c:1403 sql_help.c:1406 sql_help.c:1407
-#: sql_help.c:1408 sql_help.c:1409 sql_help.c:1410 sql_help.c:1411
-#: sql_help.c:1412 sql_help.c:1413 sql_help.c:1414 sql_help.c:1419
-#: sql_help.c:1420 sql_help.c:3465 sql_help.c:3470 sql_help.c:3471
-#: sql_help.c:3472 sql_help.c:3473 sql_help.c:3479 sql_help.c:3480
-#: sql_help.c:3481 sql_help.c:3482 sql_help.c:3483 sql_help.c:3484
-#: sql_help.c:3485 sql_help.c:3486
+#: sql_help.c:312 sql_help.c:313 sql_help.c:314 sql_help.c:315 sql_help.c:316
+#: sql_help.c:317 sql_help.c:322 sql_help.c:326 sql_help.c:328 sql_help.c:330
+#: sql_help.c:331 sql_help.c:332 sql_help.c:333 sql_help.c:334 sql_help.c:335
+#: sql_help.c:336 sql_help.c:337 sql_help.c:338 sql_help.c:341 sql_help.c:342
+#: sql_help.c:1406 sql_help.c:1413 sql_help.c:1414 sql_help.c:1415
+#: sql_help.c:1416 sql_help.c:1417 sql_help.c:1418 sql_help.c:1419
+#: sql_help.c:1424 sql_help.c:1426 sql_help.c:1430 sql_help.c:1432
+#: sql_help.c:1436 sql_help.c:1437 sql_help.c:1440 sql_help.c:1441
+#: sql_help.c:1442 sql_help.c:1443 sql_help.c:1444 sql_help.c:1445
+#: sql_help.c:1446 sql_help.c:1447 sql_help.c:1448 sql_help.c:1453
+#: sql_help.c:1454 sql_help.c:3546 sql_help.c:3551 sql_help.c:3552
+#: sql_help.c:3553 sql_help.c:3554 sql_help.c:3560 sql_help.c:3561
+#: sql_help.c:3562 sql_help.c:3563 sql_help.c:3564 sql_help.c:3565
+#: sql_help.c:3566 sql_help.c:3567
 msgid "object_name"
 msgstr "对象_名称"
 
 # describe.c:498
-#: sql_help.c:315 sql_help.c:713 sql_help.c:1386 sql_help.c:1614
-#: sql_help.c:1649 sql_help.c:1712 sql_help.c:1933 sql_help.c:1964
-#: sql_help.c:2364 sql_help.c:3051 sql_help.c:3383 sql_help.c:3474
-#: sql_help.c:3577 sql_help.c:3581 sql_help.c:3585 sql_help.c:3588
-#: sql_help.c:3816 sql_help.c:3820 sql_help.c:3824 sql_help.c:3827
-#: sql_help.c:4010 sql_help.c:4014 sql_help.c:4018 sql_help.c:4021
+#: sql_help.c:318 sql_help.c:741 sql_help.c:1420 sql_help.c:1687
+#: sql_help.c:1722 sql_help.c:1785 sql_help.c:2007 sql_help.c:2038
+#: sql_help.c:2437 sql_help.c:3132 sql_help.c:3464 sql_help.c:3555
+#: sql_help.c:3658 sql_help.c:3662 sql_help.c:3666 sql_help.c:3669
+#: sql_help.c:3897 sql_help.c:3901 sql_help.c:3905 sql_help.c:3908
+#: sql_help.c:4091 sql_help.c:4095 sql_help.c:4099 sql_help.c:4102
 msgid "function_name"
 msgstr "函数名称"
 
 # describe.c:512
-#: sql_help.c:320 sql_help.c:706 sql_help.c:1393 sql_help.c:1957
+#: sql_help.c:323 sql_help.c:734 sql_help.c:1427 sql_help.c:2031
 msgid "operator_name"
 msgstr "操作符名称"
 
 # describe.c:321
-#: sql_help.c:321 sql_help.c:647 sql_help.c:651 sql_help.c:1394
-#: sql_help.c:1934 sql_help.c:2710
+#: sql_help.c:324 sql_help.c:670 sql_help.c:674 sql_help.c:678 sql_help.c:1428
+#: sql_help.c:2008 sql_help.c:2791
 msgid "left_type"
 msgstr "操作符左边操作数的类型"
 
 # describe.c:321
-#: sql_help.c:322 sql_help.c:648 sql_help.c:652 sql_help.c:1395
-#: sql_help.c:1935 sql_help.c:2711
+#: sql_help.c:325 sql_help.c:671 sql_help.c:675 sql_help.c:679 sql_help.c:1429
+#: sql_help.c:2009 sql_help.c:2792
 msgid "right_type"
 msgstr "操作符右边操作数的类型"
 
-#: sql_help.c:324 sql_help.c:326 sql_help.c:669 sql_help.c:672 sql_help.c:675
-#: sql_help.c:704 sql_help.c:716 sql_help.c:724 sql_help.c:727 sql_help.c:730
-#: sql_help.c:1397 sql_help.c:1399 sql_help.c:1954 sql_help.c:1975
-#: sql_help.c:2211 sql_help.c:2720 sql_help.c:2729
+#: sql_help.c:327 sql_help.c:329 sql_help.c:697 sql_help.c:700 sql_help.c:703
+#: sql_help.c:732 sql_help.c:744 sql_help.c:752 sql_help.c:755 sql_help.c:758
+#: sql_help.c:1431 sql_help.c:1433 sql_help.c:2028 sql_help.c:2049
+#: sql_help.c:2284 sql_help.c:2801 sql_help.c:2810
 msgid "index_method"
 msgstr "访问索引的方法"
 
-#: sql_help.c:336 sql_help.c:1014 sql_help.c:1415 sql_help.c:1820
-#: sql_help.c:2187 sql_help.c:2333 sql_help.c:2843 sql_help.c:3065
-#: sql_help.c:3397
+#: sql_help.c:339 sql_help.c:1044 sql_help.c:1449 sql_help.c:1895
+#: sql_help.c:2260 sql_help.c:2406 sql_help.c:2924 sql_help.c:3146
+#: sql_help.c:3478
 msgid "type_name"
 msgstr "类型名称"
 
-#: sql_help.c:337 sql_help.c:1416 sql_help.c:1819 sql_help.c:2334
-#: sql_help.c:2558 sql_help.c:2844 sql_help.c:3057 sql_help.c:3389
+#: sql_help.c:340 sql_help.c:1450 sql_help.c:1894 sql_help.c:2407
+#: sql_help.c:2631 sql_help.c:2925 sql_help.c:3138 sql_help.c:3470
 msgid "lang_name"
 msgstr "语言名称"
 
-#: sql_help.c:340
+#: sql_help.c:343
 msgid "and aggregate_signature is:"
 msgstr "aggregate_signature指的是:"
 
 # describe.c:498
-#: sql_help.c:363 sql_help.c:1738
+#: sql_help.c:366 sql_help.c:1544 sql_help.c:1812
 msgid "handler_function"
 msgstr "handler_function(处理_函数)"
 
 # describe.c:498
-#: sql_help.c:364 sql_help.c:1739
+#: sql_help.c:367 sql_help.c:1813
 msgid "validator_function"
 msgstr "validator_function(验证_函数)"
 
 # describe.c:128
-#: sql_help.c:413 sql_help.c:487 sql_help.c:609 sql_help.c:958 sql_help.c:1153
-#: sql_help.c:2202 sql_help.c:2203 sql_help.c:2219 sql_help.c:2220
+#: sql_help.c:416 sql_help.c:493 sql_help.c:625 sql_help.c:988 sql_help.c:1187
+#: sql_help.c:2275 sql_help.c:2276 sql_help.c:2292 sql_help.c:2293
 msgid "action"
 msgstr "操作"
 
 # describe.c:1375
-#: sql_help.c:415 sql_help.c:422 sql_help.c:426 sql_help.c:427 sql_help.c:430
-#: sql_help.c:432 sql_help.c:433 sql_help.c:434 sql_help.c:436 sql_help.c:439
-#: sql_help.c:441 sql_help.c:442 sql_help.c:611 sql_help.c:621 sql_help.c:623
-#: sql_help.c:626 sql_help.c:628 sql_help.c:850 sql_help.c:960 sql_help.c:973
-#: sql_help.c:977 sql_help.c:978 sql_help.c:982 sql_help.c:984 sql_help.c:985
-#: sql_help.c:986 sql_help.c:988 sql_help.c:991 sql_help.c:993 sql_help.c:1252
-#: sql_help.c:1255 sql_help.c:1275 sql_help.c:1374 sql_help.c:1476
-#: sql_help.c:1481 sql_help.c:1495 sql_help.c:1496 sql_help.c:1497
-#: sql_help.c:1770 sql_help.c:1817 sql_help.c:1879 sql_help.c:1914
-#: sql_help.c:2095 sql_help.c:2175 sql_help.c:2188 sql_help.c:2207
-#: sql_help.c:2209 sql_help.c:2216 sql_help.c:2227 sql_help.c:2244
-#: sql_help.c:2367 sql_help.c:2503 sql_help.c:3036 sql_help.c:3037
-#: sql_help.c:3116 sql_help.c:3131 sql_help.c:3133 sql_help.c:3135
-#: sql_help.c:3368 sql_help.c:3369 sql_help.c:3467 sql_help.c:3608
-#: sql_help.c:3847 sql_help.c:3889 sql_help.c:3891 sql_help.c:3893
-#: sql_help.c:3910 sql_help.c:3913 sql_help.c:4041
+#: sql_help.c:418 sql_help.c:425 sql_help.c:429 sql_help.c:430 sql_help.c:433
+#: sql_help.c:435 sql_help.c:436 sql_help.c:437 sql_help.c:439 sql_help.c:442
+#: sql_help.c:444 sql_help.c:445 sql_help.c:629 sql_help.c:639 sql_help.c:641
+#: sql_help.c:644 sql_help.c:646 sql_help.c:880 sql_help.c:990 sql_help.c:1003
+#: sql_help.c:1007 sql_help.c:1008 sql_help.c:1012 sql_help.c:1014
+#: sql_help.c:1015 sql_help.c:1016 sql_help.c:1018 sql_help.c:1021
+#: sql_help.c:1023 sql_help.c:1286 sql_help.c:1289 sql_help.c:1309
+#: sql_help.c:1408 sql_help.c:1510 sql_help.c:1515 sql_help.c:1529
+#: sql_help.c:1530 sql_help.c:1531 sql_help.c:1844 sql_help.c:1892
+#: sql_help.c:1953 sql_help.c:1988 sql_help.c:2168 sql_help.c:2248
+#: sql_help.c:2261 sql_help.c:2280 sql_help.c:2282 sql_help.c:2289
+#: sql_help.c:2300 sql_help.c:2317 sql_help.c:2440 sql_help.c:2576
+#: sql_help.c:3117 sql_help.c:3118 sql_help.c:3197 sql_help.c:3212
+#: sql_help.c:3214 sql_help.c:3216 sql_help.c:3449 sql_help.c:3450
+#: sql_help.c:3548 sql_help.c:3689 sql_help.c:3928 sql_help.c:3970
+#: sql_help.c:3972 sql_help.c:3974 sql_help.c:3991 sql_help.c:3994
+#: sql_help.c:4122
 msgid "column_name"
 msgstr "列名称"
 
 # describe.c:1375
-#: sql_help.c:416 sql_help.c:612 sql_help.c:961
+#: sql_help.c:419 sql_help.c:630 sql_help.c:991
 msgid "new_column_name"
 msgstr "new_column_name(新列名)"
 
-#: sql_help.c:421 sql_help.c:503 sql_help.c:620 sql_help.c:972 sql_help.c:1166
+#: sql_help.c:424 sql_help.c:514 sql_help.c:638 sql_help.c:1002
+#: sql_help.c:1200
 msgid "where action is one of:"
 msgstr "操作可以是下列选项之一"
 
 # describe.c:526
-#: sql_help.c:423 sql_help.c:428 sql_help.c:974 sql_help.c:979 sql_help.c:1168
-#: sql_help.c:1172 sql_help.c:1692 sql_help.c:1771 sql_help.c:1953
-#: sql_help.c:2176 sql_help.c:2412 sql_help.c:3218
+#: sql_help.c:426 sql_help.c:431 sql_help.c:1004 sql_help.c:1009
+#: sql_help.c:1202 sql_help.c:1206 sql_help.c:1765 sql_help.c:1845
+#: sql_help.c:2027 sql_help.c:2249 sql_help.c:2485 sql_help.c:3299
 msgid "data_type"
 msgstr "数据_类型"
 
 # describe.c:128
-#: sql_help.c:424 sql_help.c:429 sql_help.c:975 sql_help.c:980 sql_help.c:1169
-#: sql_help.c:1173 sql_help.c:1693 sql_help.c:1774 sql_help.c:1881
-#: sql_help.c:2177 sql_help.c:2413 sql_help.c:2419 sql_help.c:3126
+#: sql_help.c:427 sql_help.c:432 sql_help.c:1005 sql_help.c:1010
+#: sql_help.c:1203 sql_help.c:1207 sql_help.c:1766 sql_help.c:1848
+#: sql_help.c:1955 sql_help.c:2250 sql_help.c:2486 sql_help.c:2492
+#: sql_help.c:3207
 msgid "collation"
 msgstr "校对规则"
 
-#: sql_help.c:425 sql_help.c:976 sql_help.c:1775 sql_help.c:2178
-#: sql_help.c:2189
+#: sql_help.c:428 sql_help.c:1006 sql_help.c:1849 sql_help.c:2251
+#: sql_help.c:2262
 msgid "column_constraint"
 msgstr "列约束"
 
-#: sql_help.c:435 sql_help.c:622 sql_help.c:987
+#: sql_help.c:438 sql_help.c:640 sql_help.c:1017
 msgid "integer"
 msgstr "整数"
 
-#: sql_help.c:437 sql_help.c:440 sql_help.c:624 sql_help.c:627 sql_help.c:989
-#: sql_help.c:992
+#: sql_help.c:440 sql_help.c:443 sql_help.c:642 sql_help.c:645 sql_help.c:1019
+#: sql_help.c:1022
 msgid "attribute_option"
 msgstr "属性选项"
 
-#: sql_help.c:445 sql_help.c:994 sql_help.c:1776 sql_help.c:2179
-#: sql_help.c:2190
+#: sql_help.c:448 sql_help.c:1024 sql_help.c:1850 sql_help.c:2252
+#: sql_help.c:2263
 msgid "table_constraint"
 msgstr "表约束"
 
 # describe.c:575
-#: sql_help.c:448 sql_help.c:449 sql_help.c:450 sql_help.c:451 sql_help.c:999
-#: sql_help.c:1000 sql_help.c:1001 sql_help.c:1002 sql_help.c:1417
+#: sql_help.c:451 sql_help.c:452 sql_help.c:453 sql_help.c:454 sql_help.c:1029
+#: sql_help.c:1030 sql_help.c:1031 sql_help.c:1032 sql_help.c:1451
 msgid "trigger_name"
 msgstr "触发器_名称"
 
-#: sql_help.c:452 sql_help.c:453 sql_help.c:1012 sql_help.c:1013
-#: sql_help.c:1777 sql_help.c:2182
+#: sql_help.c:455 sql_help.c:456 sql_help.c:1042 sql_help.c:1043
+#: sql_help.c:1851 sql_help.c:2255
 msgid "parent_table"
 msgstr "父表"
 
-#: sql_help.c:504 sql_help.c:1821
+# describe.c:498
+#: sql_help.c:513 sql_help.c:563 sql_help.c:627 sql_help.c:1167
+#: sql_help.c:1797
+msgid "extension_name"
+msgstr "extension_name(扩展名)"
+
+#: sql_help.c:515 sql_help.c:1896
 msgid "execution_cost"
 msgstr "执行函数的开销"
 
-#: sql_help.c:505 sql_help.c:1822
+#: sql_help.c:516 sql_help.c:1897
 msgid "result_rows"
 msgstr "返回记录的数量"
 
 # describe.c:1636
-#: sql_help.c:526 sql_help.c:528 sql_help.c:783 sql_help.c:791 sql_help.c:795
-#: sql_help.c:798 sql_help.c:801 sql_help.c:1207 sql_help.c:1215
-#: sql_help.c:1218 sql_help.c:1220 sql_help.c:1222 sql_help.c:2069
-#: sql_help.c:2071 sql_help.c:2074 sql_help.c:2075 sql_help.c:3035
-#: sql_help.c:3039 sql_help.c:3042 sql_help.c:3044 sql_help.c:3046
-#: sql_help.c:3048 sql_help.c:3050 sql_help.c:3056 sql_help.c:3058
-#: sql_help.c:3060 sql_help.c:3062 sql_help.c:3064 sql_help.c:3066
+#: sql_help.c:537 sql_help.c:539 sql_help.c:813 sql_help.c:821 sql_help.c:825
+#: sql_help.c:828 sql_help.c:831 sql_help.c:1241 sql_help.c:1249
+#: sql_help.c:1252 sql_help.c:1254 sql_help.c:1256 sql_help.c:2142
+#: sql_help.c:2144 sql_help.c:2147 sql_help.c:2148 sql_help.c:3116
+#: sql_help.c:3120 sql_help.c:3123 sql_help.c:3125 sql_help.c:3127
+#: sql_help.c:3129 sql_help.c:3131 sql_help.c:3137 sql_help.c:3139
+#: sql_help.c:3141 sql_help.c:3143 sql_help.c:3145 sql_help.c:3147
 msgid "role_specification"
 msgstr "role_specification"
 
-#: sql_help.c:527 sql_help.c:529 sql_help.c:1234 sql_help.c:1667
-#: sql_help.c:2077 sql_help.c:2488 sql_help.c:2877 sql_help.c:3693
+#: sql_help.c:538 sql_help.c:540 sql_help.c:1268 sql_help.c:1740
+#: sql_help.c:2150 sql_help.c:2561 sql_help.c:2958 sql_help.c:3774
 msgid "user_name"
 msgstr "用户名"
 
-#: sql_help.c:530 sql_help.c:803 sql_help.c:1223 sql_help.c:2076
-#: sql_help.c:3067
+#: sql_help.c:541 sql_help.c:833 sql_help.c:1257 sql_help.c:2149
+#: sql_help.c:3148
 msgid "where role_specification can be:"
 msgstr "这里role_specification可以是:"
 
-#: sql_help.c:532
+#: sql_help.c:543
 msgid "group_name"
 msgstr "组名称"
 
 # describe.c:1342
-#: sql_help.c:549 sql_help.c:1672 sql_help.c:1885 sql_help.c:1917
-#: sql_help.c:2185 sql_help.c:2193 sql_help.c:2225 sql_help.c:2247
-#: sql_help.c:2259 sql_help.c:3063 sql_help.c:3395
+#: sql_help.c:561 sql_help.c:1745 sql_help.c:1959 sql_help.c:1991
+#: sql_help.c:2258 sql_help.c:2266 sql_help.c:2298 sql_help.c:2320
+#: sql_help.c:2332 sql_help.c:3144 sql_help.c:3476
 msgid "tablespace_name"
 msgstr "表空间的名称"
 
-#: sql_help.c:551 sql_help.c:554 sql_help.c:630 sql_help.c:632 sql_help.c:1009
-#: sql_help.c:1011 sql_help.c:1883 sql_help.c:1915 sql_help.c:2183
-#: sql_help.c:2191 sql_help.c:2223 sql_help.c:2245
+#: sql_help.c:565 sql_help.c:568 sql_help.c:648 sql_help.c:650 sql_help.c:1039
+#: sql_help.c:1041 sql_help.c:1957 sql_help.c:1989 sql_help.c:2256
+#: sql_help.c:2264 sql_help.c:2296 sql_help.c:2318
 msgid "storage_parameter"
 msgstr "存储参数"
 
 # large_obj.c:264
-#: sql_help.c:577 sql_help.c:1391 sql_help.c:3478
+#: sql_help.c:591 sql_help.c:1425 sql_help.c:3559
 msgid "large_object_oid"
 msgstr "大对象的OID"
 
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:629 sql_help.c:1007 sql_help.c:1016 sql_help.c:1019
-#: sql_help.c:1315
+#: sql_help.c:647 sql_help.c:1037 sql_help.c:1046 sql_help.c:1049
+#: sql_help.c:1349
 msgid "index_name"
 msgstr "索引名称"
 
-#: sql_help.c:705 sql_help.c:717 sql_help.c:1956
+#: sql_help.c:680 sql_help.c:2012
+msgid "res_proc"
+msgstr "限制选择性估算函数"
+
+#: sql_help.c:681 sql_help.c:2013
+msgid "join_proc"
+msgstr "连接选择性估算函数"
+
+#: sql_help.c:733 sql_help.c:745 sql_help.c:2030
 msgid "strategy_number"
 msgstr "访问索引所用方法的编号"
 
@@ -4184,49 +4363,49 @@ msgstr "访问索引所用方法的编号"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: sql_help.c:707 sql_help.c:708 sql_help.c:711 sql_help.c:712 sql_help.c:718
-#: sql_help.c:719 sql_help.c:721 sql_help.c:722 sql_help.c:1958
-#: sql_help.c:1959 sql_help.c:1962 sql_help.c:1963
+#: sql_help.c:735 sql_help.c:736 sql_help.c:739 sql_help.c:740 sql_help.c:746
+#: sql_help.c:747 sql_help.c:749 sql_help.c:750 sql_help.c:2032
+#: sql_help.c:2033 sql_help.c:2036 sql_help.c:2037
 msgid "op_type"
 msgstr "操作数类型"
 
-#: sql_help.c:709 sql_help.c:1960
+#: sql_help.c:737 sql_help.c:2034
 msgid "sort_family_name"
 msgstr "sort_family_name(排序家族名)"
 
-#: sql_help.c:710 sql_help.c:720 sql_help.c:1961
+#: sql_help.c:738 sql_help.c:748 sql_help.c:2035
 msgid "support_number"
 msgstr "访问索引所使用函数的编号"
 
 # describe.c:1689
-#: sql_help.c:714 sql_help.c:1615 sql_help.c:1965 sql_help.c:2336
-#: sql_help.c:2338
+#: sql_help.c:742 sql_help.c:1688 sql_help.c:2039 sql_help.c:2409
+#: sql_help.c:2411
 msgid "argument_type"
 msgstr "参数类型"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:744 sql_help.c:813 sql_help.c:849 sql_help.c:1132
-#: sql_help.c:1274 sql_help.c:1314 sql_help.c:1376 sql_help.c:1401
-#: sql_help.c:1405 sql_help.c:1418 sql_help.c:1475 sql_help.c:1480
-#: sql_help.c:1769 sql_help.c:1877 sql_help.c:1913 sql_help.c:1988
-#: sql_help.c:2046 sql_help.c:2094 sql_help.c:2174 sql_help.c:2186
-#: sql_help.c:2243 sql_help.c:2361 sql_help.c:2537 sql_help.c:2746
-#: sql_help.c:2763 sql_help.c:2853 sql_help.c:3033 sql_help.c:3038
-#: sql_help.c:3083 sql_help.c:3114 sql_help.c:3365 sql_help.c:3370
-#: sql_help.c:3466 sql_help.c:3563 sql_help.c:3565 sql_help.c:3614
-#: sql_help.c:3653 sql_help.c:3802 sql_help.c:3804 sql_help.c:3853
-#: sql_help.c:3887 sql_help.c:3909 sql_help.c:3911 sql_help.c:3912
-#: sql_help.c:3996 sql_help.c:3998 sql_help.c:4047
+#: sql_help.c:773 sql_help.c:776 sql_help.c:843 sql_help.c:879 sql_help.c:1163
+#: sql_help.c:1166 sql_help.c:1308 sql_help.c:1348 sql_help.c:1410
+#: sql_help.c:1435 sql_help.c:1439 sql_help.c:1452 sql_help.c:1509
+#: sql_help.c:1514 sql_help.c:1843 sql_help.c:1951 sql_help.c:1987
+#: sql_help.c:2062 sql_help.c:2119 sql_help.c:2167 sql_help.c:2247
+#: sql_help.c:2259 sql_help.c:2316 sql_help.c:2434 sql_help.c:2610
+#: sql_help.c:2827 sql_help.c:2844 sql_help.c:2934 sql_help.c:3114
+#: sql_help.c:3119 sql_help.c:3164 sql_help.c:3195 sql_help.c:3446
+#: sql_help.c:3451 sql_help.c:3547 sql_help.c:3644 sql_help.c:3646
+#: sql_help.c:3695 sql_help.c:3734 sql_help.c:3883 sql_help.c:3885
+#: sql_help.c:3934 sql_help.c:3968 sql_help.c:3990 sql_help.c:3992
+#: sql_help.c:3993 sql_help.c:4077 sql_help.c:4079 sql_help.c:4128
 msgid "table_name"
 msgstr "表名"
 
-#: sql_help.c:747 sql_help.c:1990
+#: sql_help.c:778 sql_help.c:2064
 msgid "using_expression"
 msgstr "using_expression"
 
-#: sql_help.c:748 sql_help.c:1991
+#: sql_help.c:779 sql_help.c:2065
 msgid "check_expression"
 msgstr "check_expression"
 
@@ -4234,287 +4413,315 @@ msgstr "check_expression"
 # command.c:939
 # startup.c:187
 # startup.c:205
-#: sql_help.c:787 sql_help.c:1211 sql_help.c:1857 sql_help.c:2023
-#: sql_help.c:2471
+#: sql_help.c:817 sql_help.c:1245 sql_help.c:1931 sql_help.c:2096
+#: sql_help.c:2544
 msgid "password"
 msgstr "口令"
 
-#: sql_help.c:788 sql_help.c:1212 sql_help.c:1858 sql_help.c:2024
-#: sql_help.c:2472
+#: sql_help.c:818 sql_help.c:1246 sql_help.c:1932 sql_help.c:2097
+#: sql_help.c:2545
 msgid "timestamp"
 msgstr "时间戳"
 
-#: sql_help.c:792 sql_help.c:796 sql_help.c:799 sql_help.c:802 sql_help.c:3043
-#: sql_help.c:3375
+#: sql_help.c:822 sql_help.c:826 sql_help.c:829 sql_help.c:832 sql_help.c:3124
+#: sql_help.c:3456
 msgid "database_name"
 msgstr "数据库名称"
 
-#: sql_help.c:843 sql_help.c:2089
+#: sql_help.c:873 sql_help.c:2162
 msgid "increment"
 msgstr "增量"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:844 sql_help.c:2090
+#: sql_help.c:874 sql_help.c:2163
 msgid "minvalue"
 msgstr "最小值"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:845 sql_help.c:2091
+#: sql_help.c:875 sql_help.c:2164
 msgid "maxvalue"
 msgstr "最大值"
 
-#: sql_help.c:846 sql_help.c:2092 sql_help.c:3561 sql_help.c:3651
-#: sql_help.c:3800 sql_help.c:3929 sql_help.c:3994
+#: sql_help.c:876 sql_help.c:2165 sql_help.c:3642 sql_help.c:3732
+#: sql_help.c:3881 sql_help.c:4010 sql_help.c:4075
 msgid "start"
 msgstr "起始值"
 
-#: sql_help.c:847
+#: sql_help.c:877
 msgid "restart"
 msgstr "重新启动后的序列值"
 
-#: sql_help.c:848 sql_help.c:2093
+#: sql_help.c:878 sql_help.c:2166
 msgid "cache"
 msgstr "缓存"
 
-#: sql_help.c:995
+#: sql_help.c:1025
 msgid "table_constraint_using_index"
 msgstr "table_constraint_using_index(表约束使用索引)"
 
-#: sql_help.c:1003 sql_help.c:1004 sql_help.c:1005 sql_help.c:1006
+#: sql_help.c:1033 sql_help.c:1034 sql_help.c:1035 sql_help.c:1036
 msgid "rewrite_rule_name"
 msgstr "重写规则名称"
 
-#: sql_help.c:1017
+#: sql_help.c:1047
 msgid "and table_constraint_using_index is:"
 msgstr "table_constraint_using_index 是:"
 
 # describe.c:1342
-#: sql_help.c:1035 sql_help.c:1038 sql_help.c:2262
+#: sql_help.c:1065 sql_help.c:1068 sql_help.c:2335
 msgid "tablespace_option"
 msgstr "表空间_选项"
 
-#: sql_help.c:1059 sql_help.c:1062 sql_help.c:1068 sql_help.c:1072
+#: sql_help.c:1089 sql_help.c:1092 sql_help.c:1098 sql_help.c:1102
 msgid "token_type"
 msgstr "符号类型"
 
-#: sql_help.c:1060 sql_help.c:1063
+#: sql_help.c:1090 sql_help.c:1093
 msgid "dictionary_name"
 msgstr "字典名称"
 
-#: sql_help.c:1065 sql_help.c:1069
+#: sql_help.c:1095 sql_help.c:1099
 msgid "old_dictionary"
 msgstr "旧的字典"
 
-#: sql_help.c:1066 sql_help.c:1070
+#: sql_help.c:1096 sql_help.c:1100
 msgid "new_dictionary"
 msgstr "新的字典"
 
-#: sql_help.c:1157 sql_help.c:1167 sql_help.c:1170 sql_help.c:1171
-#: sql_help.c:2411
+#: sql_help.c:1191 sql_help.c:1201 sql_help.c:1204 sql_help.c:1205
+#: sql_help.c:2484
 msgid "attribute_name"
 msgstr "属性_名称"
 
-#: sql_help.c:1158
+#: sql_help.c:1192
 msgid "new_attribute_name"
 msgstr "new_attribute_name(新属性名)"
 
-#: sql_help.c:1164
+#: sql_help.c:1198
 msgid "new_enum_value"
 msgstr "new_enum_value(新枚举名)"
 
-#: sql_help.c:1165
+#: sql_help.c:1199
 msgid "existing_enum_value"
 msgstr "existing_enum_value"
 
-#: sql_help.c:1235 sql_help.c:1778 sql_help.c:2105 sql_help.c:2489
-#: sql_help.c:2878 sql_help.c:3049 sql_help.c:3084 sql_help.c:3381
+#: sql_help.c:1269 sql_help.c:1852 sql_help.c:2178 sql_help.c:2562
+#: sql_help.c:2959 sql_help.c:3130 sql_help.c:3165 sql_help.c:3462
 msgid "server_name"
 msgstr "服务器名称"
 
 # help.c:88
-#: sql_help.c:1263 sql_help.c:1266 sql_help.c:2504
+#: sql_help.c:1297 sql_help.c:1300 sql_help.c:2577
 msgid "view_option_name"
 msgstr "view_option_name(视图选项名)"
 
 # help.c:88
-#: sql_help.c:1264 sql_help.c:2505
+#: sql_help.c:1298 sql_help.c:2578
 msgid "view_option_value"
 msgstr "view_option_value(视图选项值)"
 
-#: sql_help.c:1289 sql_help.c:3709 sql_help.c:3711 sql_help.c:3735
+#: sql_help.c:1323 sql_help.c:3790 sql_help.c:3792 sql_help.c:3816
 msgid "transaction_mode"
 msgstr "事务模式"
 
-#: sql_help.c:1290 sql_help.c:3712 sql_help.c:3736
+#: sql_help.c:1324 sql_help.c:3793 sql_help.c:3817
 msgid "where transaction_mode is one of:"
 msgstr "事务模式可以是下列选项之一:"
 
-#: sql_help.c:1373
+#: sql_help.c:1407
 msgid "relation_name"
 msgstr "relation_name(关系名)"
 
 # describe.c:1375
-#: sql_help.c:1378 sql_help.c:3045 sql_help.c:3377
+#: sql_help.c:1412 sql_help.c:3126 sql_help.c:3458
 msgid "domain_name"
 msgstr "域_名称"
 
 # describe.c:1375
-#: sql_help.c:1400
-#| msgid "role_name"
+#: sql_help.c:1434
 msgid "policy_name"
 msgstr "policy_name"
 
 # describe.c:1375
-#: sql_help.c:1404
+#: sql_help.c:1438
 msgid "rule_name"
 msgstr "规则_名称"
 
-#: sql_help.c:1421
+#: sql_help.c:1455
 msgid "text"
 msgstr "文本"
 
-#: sql_help.c:1446 sql_help.c:3227 sql_help.c:3415
+#: sql_help.c:1480 sql_help.c:3308 sql_help.c:3496
 msgid "transaction_id"
 msgstr "事务_ID"
 
 # describe.c:1375
-#: sql_help.c:1477 sql_help.c:1483 sql_help.c:3153
+#: sql_help.c:1511 sql_help.c:1517 sql_help.c:3234
 msgid "filename"
 msgstr "文件名"
 
-#: sql_help.c:1478 sql_help.c:1484 sql_help.c:2048 sql_help.c:2049
-#: sql_help.c:2050
+#: sql_help.c:1512 sql_help.c:1518 sql_help.c:2121 sql_help.c:2122
+#: sql_help.c:2123
 msgid "command"
 msgstr "命令"
 
-#: sql_help.c:1482 sql_help.c:1918 sql_help.c:2248 sql_help.c:2506
-#: sql_help.c:2524 sql_help.c:3118
+#: sql_help.c:1516 sql_help.c:1992 sql_help.c:2321 sql_help.c:2579
+#: sql_help.c:2597 sql_help.c:3199
 msgid "query"
 msgstr "查询"
 
-#: sql_help.c:1486 sql_help.c:2923
+#: sql_help.c:1520 sql_help.c:3004
 msgid "where option can be one of:"
 msgstr "选项可以是下列内容之一:"
 
 # help.c:211
-#: sql_help.c:1487
+#: sql_help.c:1521
 msgid "format_name"
 msgstr "格式_名称"
 
-#: sql_help.c:1488 sql_help.c:1489 sql_help.c:1492 sql_help.c:2924
-#: sql_help.c:2925 sql_help.c:2926 sql_help.c:2927 sql_help.c:2928
+#: sql_help.c:1522 sql_help.c:1523 sql_help.c:1526 sql_help.c:3005
+#: sql_help.c:3006 sql_help.c:3007 sql_help.c:3008 sql_help.c:3009
 msgid "boolean"
 msgstr "布尔"
 
-#: sql_help.c:1490
+#: sql_help.c:1524
 msgid "delimiter_character"
 msgstr "分隔字符"
 
-#: sql_help.c:1491
+#: sql_help.c:1525
 msgid "null_string"
 msgstr "空字符串"
 
-#: sql_help.c:1493
+#: sql_help.c:1527
 msgid "quote_character"
 msgstr "引用字符"
 
-#: sql_help.c:1494
+#: sql_help.c:1528
 msgid "escape_character"
 msgstr "转义字符"
 
 # describe.c:365
-#: sql_help.c:1498
+#: sql_help.c:1532
 msgid "encoding_name"
 msgstr "encoding_name(编码名)"
 
+#: sql_help.c:1543
+msgid "access_method_type"
+msgstr "access_method_type"
+
 # describe.c:526
-#: sql_help.c:1555 sql_help.c:1571 sql_help.c:1574
+#: sql_help.c:1616 sql_help.c:1636 sql_help.c:1639
 msgid "arg_data_type"
 msgstr "arg_data_type"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:1556 sql_help.c:1575 sql_help.c:1583
+#: sql_help.c:1617 sql_help.c:1640 sql_help.c:1652
 msgid "sfunc"
 msgstr "状态转换函数名称"
 
 # describe.c:526
-#: sql_help.c:1557 sql_help.c:1576 sql_help.c:1584
+#: sql_help.c:1618 sql_help.c:1641 sql_help.c:1653
 msgid "state_data_type"
 msgstr "状态值的数据类型"
 
 # describe.c:526
-#: sql_help.c:1558 sql_help.c:1577 sql_help.c:1585
+#: sql_help.c:1619 sql_help.c:1642 sql_help.c:1654
 msgid "state_data_size"
 msgstr "state_data_size"
 
 # describe.c:498
-#: sql_help.c:1559 sql_help.c:1578 sql_help.c:1586
+#: sql_help.c:1620 sql_help.c:1643 sql_help.c:1655
 msgid "ffunc"
 msgstr "计算最终结果集的函数名称"
 
-#: sql_help.c:1560 sql_help.c:1579 sql_help.c:1587
+# describe.c:415
+# describe.c:543
+# describe.c:1477
+#: sql_help.c:1621 sql_help.c:1644 sql_help.c:1656
+#| msgid "minvfunc"
+msgid "combinefunc"
+msgstr "combinefunc"
+
+# describe.c:415
+# describe.c:543
+# describe.c:1477
+#: sql_help.c:1622 sql_help.c:1645 sql_help.c:1657
+#| msgid "sfunc"
+msgid "serialfunc"
+msgstr "serialfunc"
+
+#: sql_help.c:1623 sql_help.c:1646 sql_help.c:1658
+msgid "deserialfunc"
+msgstr "deserialfunc"
+
+#: sql_help.c:1624 sql_help.c:1647 sql_help.c:1659
+#| msgid "server_type"
+msgid "serialtype"
+msgstr "serialtype"
+
+#: sql_help.c:1625 sql_help.c:1648 sql_help.c:1660
 msgid "initial_condition"
 msgstr "初始条件"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:1561 sql_help.c:1588
+#: sql_help.c:1626 sql_help.c:1661
 msgid "msfunc"
 msgstr "msfunc"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:1562 sql_help.c:1589
+#: sql_help.c:1627 sql_help.c:1662
 msgid "minvfunc"
 msgstr "minvfunc"
 
 # describe.c:526
-#: sql_help.c:1563 sql_help.c:1590
+#: sql_help.c:1628 sql_help.c:1663
 msgid "mstate_data_type"
 msgstr "mstate_data_type"
 
 # describe.c:526
-#: sql_help.c:1564 sql_help.c:1591
+#: sql_help.c:1629 sql_help.c:1664
 msgid "mstate_data_size"
 msgstr "mstate_data_size"
 
 # describe.c:498
-#: sql_help.c:1565 sql_help.c:1592
+#: sql_help.c:1630 sql_help.c:1665
 msgid "mffunc"
 msgstr "mffunc"
 
-#: sql_help.c:1566 sql_help.c:1593
+#: sql_help.c:1631 sql_help.c:1666
 msgid "minitial_condition"
 msgstr "minitial_condition"
 
 # describe.c:512
-#: sql_help.c:1567 sql_help.c:1594
+#: sql_help.c:1632 sql_help.c:1667
 msgid "sort_operator"
 msgstr "排序_操作符"
 
-#: sql_help.c:1580
+#: sql_help.c:1649
 msgid "or the old syntax"
 msgstr "或者是旧的语法"
 
 # describe.c:1689
-#: sql_help.c:1582
+#: sql_help.c:1651
 msgid "base_type"
 msgstr "基础_类型"
 
 # help.c:127
-#: sql_help.c:1633
+#: sql_help.c:1706
 msgid "locale"
 msgstr "本地化语言"
 
-#: sql_help.c:1634 sql_help.c:1670
+#: sql_help.c:1707 sql_help.c:1743
 msgid "lc_collate"
 msgstr "排序规则"
 
@@ -4522,305 +4729,292 @@ msgstr "排序规则"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: sql_help.c:1635 sql_help.c:1671
+#: sql_help.c:1708 sql_help.c:1744
 msgid "lc_ctype"
 msgstr "字符分类"
 
 # describe.c:1636
-#: sql_help.c:1637
+#: sql_help.c:1710
 msgid "existing_collation"
 msgstr "existing_collation(当前的本地化语言)"
 
 # describe.c:187
-#: sql_help.c:1647
+#: sql_help.c:1720
 msgid "source_encoding"
 msgstr "源_编码"
 
 # describe.c:365
-#: sql_help.c:1648
+#: sql_help.c:1721
 msgid "dest_encoding"
 msgstr "目的_编码"
 
-#: sql_help.c:1668 sql_help.c:2288
+#: sql_help.c:1741 sql_help.c:2361
 msgid "template"
 msgstr "模版"
 
 # describe.c:365
-#: sql_help.c:1669
+#: sql_help.c:1742
 msgid "encoding"
 msgstr "字符集编码"
 
-#: sql_help.c:1695
+#: sql_help.c:1768
 msgid "constraint"
 msgstr "约束"
 
 # describe.c:1174
-#: sql_help.c:1696
+#: sql_help.c:1769
 msgid "where constraint is:"
 msgstr "约束是:"
 
-#: sql_help.c:1710 sql_help.c:2045 sql_help.c:2360
+#: sql_help.c:1783 sql_help.c:2118 sql_help.c:2433
 msgid "event"
 msgstr "事件"
 
-#: sql_help.c:1711
+#: sql_help.c:1784
 msgid "filter_variable"
 msgstr "过滤器变量"
 
-# describe.c:498
-#: sql_help.c:1723
-msgid "extension_name"
-msgstr "extension_name(扩展名)"
-
-#: sql_help.c:1725
+#: sql_help.c:1799
 msgid "version"
 msgstr "version(版本)"
 
-#: sql_help.c:1726
+#: sql_help.c:1800
 msgid "old_version"
 msgstr "老版本"
 
 # describe.c:1174
-#: sql_help.c:1781 sql_help.c:2194
+#: sql_help.c:1855 sql_help.c:2267
 msgid "where column_constraint is:"
 msgstr "列的约束是:"
 
 # describe.c:1639
-#: sql_help.c:1784 sql_help.c:1815 sql_help.c:2197
+#: sql_help.c:1858 sql_help.c:1890 sql_help.c:2270
 msgid "default_expr"
 msgstr "默认_表达式"
 
-#: sql_help.c:1785 sql_help.c:2204
+#: sql_help.c:1859 sql_help.c:2277
 msgid "and table_constraint is:"
 msgstr "表约束是:"
 
 # describe.c:1689
-#: sql_help.c:1816
+#: sql_help.c:1891
 msgid "rettype"
 msgstr "返回类型"
 
-#: sql_help.c:1818
+#: sql_help.c:1893
 msgid "column_type"
 msgstr "列的类型"
 
 # describe.c:977
-#: sql_help.c:1826
+#: sql_help.c:1901
 msgid "definition"
 msgstr "定义"
 
-#: sql_help.c:1827
+#: sql_help.c:1902
 msgid "obj_file"
 msgstr "目标文件"
 
-#: sql_help.c:1828
+#: sql_help.c:1903
 msgid "link_symbol"
 msgstr "链接_符号"
 
-#: sql_help.c:1829
+#: sql_help.c:1904
 msgid "attribute"
 msgstr "属性"
 
-#: sql_help.c:1864 sql_help.c:2030 sql_help.c:2478
+#: sql_help.c:1938 sql_help.c:2103 sql_help.c:2551
 msgid "uid"
 msgstr "uid"
 
-#: sql_help.c:1878
+#: sql_help.c:1952
 msgid "method"
 msgstr "方法"
 
-#: sql_help.c:1882 sql_help.c:2229 sql_help.c:3127
+#: sql_help.c:1956 sql_help.c:2302 sql_help.c:3208
 msgid "opclass"
 msgstr "操作符类型的名称"
 
 # describe.c:937
-#: sql_help.c:1886 sql_help.c:2215
+#: sql_help.c:1960 sql_help.c:2288
 msgid "predicate"
 msgstr "述词"
 
-#: sql_help.c:1898
+#: sql_help.c:1972
 msgid "call_handler"
 msgstr "调用函数"
 
-#: sql_help.c:1899
+#: sql_help.c:1973
 msgid "inline_handler"
 msgstr "匿名代码块"
 
 # describe.c:498
-#: sql_help.c:1900
+#: sql_help.c:1974
 msgid "valfunction"
 msgstr "验证函数"
 
-#: sql_help.c:1936
+#: sql_help.c:2010
 msgid "com_op"
 msgstr "交换操作符"
 
-#: sql_help.c:1937
+#: sql_help.c:2011
 msgid "neg_op"
 msgstr "取负操作符"
 
-#: sql_help.c:1938
-msgid "res_proc"
-msgstr "限制选择性估算函数"
-
-#: sql_help.c:1939
-msgid "join_proc"
-msgstr "连接选择性估算函数"
-
-#: sql_help.c:1955
+#: sql_help.c:2029
 msgid "family_name"
 msgstr "操作符群的名称"
 
 # describe.c:1635
-#: sql_help.c:1966
+#: sql_help.c:2040
 msgid "storage_type"
 msgstr "存储类型"
 
 # help.c:123
-#: sql_help.c:2047 sql_help.c:2363 sql_help.c:2540 sql_help.c:3137
-#: sql_help.c:3552 sql_help.c:3554 sql_help.c:3642 sql_help.c:3644
-#: sql_help.c:3791 sql_help.c:3793 sql_help.c:3896 sql_help.c:3985
-#: sql_help.c:3987
+#: sql_help.c:2120 sql_help.c:2436 sql_help.c:2613 sql_help.c:3218
+#: sql_help.c:3633 sql_help.c:3635 sql_help.c:3723 sql_help.c:3725
+#: sql_help.c:3872 sql_help.c:3874 sql_help.c:3977 sql_help.c:4066
+#: sql_help.c:4068
 msgid "condition"
 msgstr "条件"
 
-#: sql_help.c:2051 sql_help.c:2366
+#: sql_help.c:2124 sql_help.c:2439
 msgid "where event can be one of:"
 msgstr "事件可以下述之一:"
 
-#: sql_help.c:2070 sql_help.c:2072
+#: sql_help.c:2143 sql_help.c:2145
 msgid "schema_element"
 msgstr "模式中对象"
 
-#: sql_help.c:2106
+#: sql_help.c:2179
 msgid "server_type"
 msgstr "服务器类型"
 
-#: sql_help.c:2107
+#: sql_help.c:2180
 msgid "server_version"
 msgstr "服务器版本"
 
-#: sql_help.c:2108 sql_help.c:3047 sql_help.c:3379
+#: sql_help.c:2181 sql_help.c:3128 sql_help.c:3460
 msgid "fdw_name"
 msgstr "外部数据封装器的名称"
 
 # describe.c:1688
-#: sql_help.c:2180
+#: sql_help.c:2253
 msgid "source_table"
 msgstr "源表"
 
 # help.c:88
-#: sql_help.c:2181
+#: sql_help.c:2254
 msgid "like_option"
 msgstr "like选项"
 
-#: sql_help.c:2198 sql_help.c:2199 sql_help.c:2208 sql_help.c:2210
-#: sql_help.c:2214
+#: sql_help.c:2271 sql_help.c:2272 sql_help.c:2281 sql_help.c:2283
+#: sql_help.c:2287
 msgid "index_parameters"
 msgstr "索引参数"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:2200 sql_help.c:2217
+#: sql_help.c:2273 sql_help.c:2290
 msgid "reftable"
 msgstr "所引用的表"
 
 # describe.c:744
-#: sql_help.c:2201 sql_help.c:2218
+#: sql_help.c:2274 sql_help.c:2291
 msgid "refcolumn"
 msgstr "所引用的列"
 
-#: sql_help.c:2212
+#: sql_help.c:2285
 msgid "exclude_element"
 msgstr "排除项"
 
 # describe.c:512
-#: sql_help.c:2213 sql_help.c:3559 sql_help.c:3649 sql_help.c:3798
-#: sql_help.c:3927 sql_help.c:3992
+#: sql_help.c:2286 sql_help.c:3640 sql_help.c:3730 sql_help.c:3879
+#: sql_help.c:4008 sql_help.c:4073
 msgid "operator"
 msgstr "运算子"
 
-#: sql_help.c:2221
+#: sql_help.c:2294
 msgid "and like_option is:"
 msgstr "like_选项是"
 
-#: sql_help.c:2222
+#: sql_help.c:2295
 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:"
 msgstr "在UNIQUE, PRIMARY KEY和EXCLUDE中的索引参数是:"
 
-#: sql_help.c:2226
+#: sql_help.c:2299
 msgid "exclude_element in an EXCLUDE constraint is:"
 msgstr "在EXCLUDE约束中的排除项是:"
 
-#: sql_help.c:2261
+#: sql_help.c:2334
 msgid "directory"
 msgstr "目录"
 
-#: sql_help.c:2275
+#: sql_help.c:2348
 msgid "parser_name"
 msgstr "解析器名称 "
 
-#: sql_help.c:2276
+#: sql_help.c:2349
 msgid "source_config"
 msgstr "已存在的文本搜索配置名称"
 
 # describe.c:498
-#: sql_help.c:2305
+#: sql_help.c:2378
 msgid "start_function"
 msgstr "启动_函数"
 
 # sql_help.h:249
-#: sql_help.c:2306
+#: sql_help.c:2379
 msgid "gettoken_function"
 msgstr "获取下一个符号函数的名称"
 
 # describe.c:498
-#: sql_help.c:2307
+#: sql_help.c:2380
 msgid "end_function"
 msgstr "结束_函数"
 
 # describe.c:498
-#: sql_help.c:2308
+#: sql_help.c:2381
 msgid "lextypes_function"
 msgstr "语义类型_函数"
 
 # describe.c:498
-#: sql_help.c:2309
+#: sql_help.c:2382
 msgid "headline_function"
 msgstr "标题_函数"
 
 # describe.c:498
-#: sql_help.c:2321
+#: sql_help.c:2394
 msgid "init_function"
 msgstr "初始化_函数"
 
 # describe.c:498
-#: sql_help.c:2322
+#: sql_help.c:2395
 msgid "lexize_function"
 msgstr "LEXIZE函数"
 
 # describe.c:498
-#: sql_help.c:2335
+#: sql_help.c:2408
 msgid "from_sql_function_name"
 msgstr "from_sql_function_name"
 
 # describe.c:498
-#: sql_help.c:2337
+#: sql_help.c:2410
 msgid "to_sql_function_name"
 msgstr "to_sql_function_name"
 
-#: sql_help.c:2362
+#: sql_help.c:2435
 msgid "referenced_table_name"
 msgstr "被引用表的名称"
 
-#: sql_help.c:2365
+#: sql_help.c:2438
 msgid "arguments"
 msgstr "参数"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:2415 sql_help.c:3487
+#: sql_help.c:2488 sql_help.c:3568
 msgid "label"
 msgstr "标签"
 
@@ -4828,1172 +5022,1189 @@ msgstr "标签"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: sql_help.c:2417
+#: sql_help.c:2490
 msgid "subtype"
 msgstr "子类型"
 
 # describe.c:512
-#: sql_help.c:2418
+#: sql_help.c:2491
 msgid "subtype_operator_class"
 msgstr "subtype_operator_class(子类型_操作符_类)"
 
 # describe.c:498
-#: sql_help.c:2420
+#: sql_help.c:2493
 msgid "canonical_function"
 msgstr "标准_函数"
 
 # describe.c:498
-#: sql_help.c:2421
+#: sql_help.c:2494
 msgid "subtype_diff_function"
 msgstr "subtype_diff_function(子类型_区分_函数)"
 
 # describe.c:498
-#: sql_help.c:2423
+#: sql_help.c:2496
 msgid "input_function"
 msgstr "输入_函数"
 
 # describe.c:498
-#: sql_help.c:2424
+#: sql_help.c:2497
 msgid "output_function"
 msgstr "输出_函数"
 
 # sql_help.h:249
-#: sql_help.c:2425
+#: sql_help.c:2498
 msgid "receive_function"
 msgstr "接收_函数"
 
 # describe.c:498
-#: sql_help.c:2426
+#: sql_help.c:2499
 msgid "send_function"
 msgstr "发送_函数"
 
-#: sql_help.c:2427
+#: sql_help.c:2500
 msgid "type_modifier_input_function"
 msgstr "类型修改器数组输入函数名称"
 
-#: sql_help.c:2428
+#: sql_help.c:2501
 msgid "type_modifier_output_function"
 msgstr "类型修改器输出函数名称"
 
 # describe.c:498
-#: sql_help.c:2429
+#: sql_help.c:2502
 msgid "analyze_function"
 msgstr "分析_函数"
 
-#: sql_help.c:2430
+#: sql_help.c:2503
 msgid "internallength"
 msgstr "内部长度"
 
 # describe.c:1693
-#: sql_help.c:2431
+#: sql_help.c:2504
 msgid "alignment"
 msgstr "顺序排列(alignment)"
 
 # describe.c:1635
-#: sql_help.c:2432
+#: sql_help.c:2505
 msgid "storage"
 msgstr "存储"
 
-#: sql_help.c:2433
+#: sql_help.c:2506
 msgid "like_type"
 msgstr "LIKE类型(like_type)"
 
-#: sql_help.c:2434
+#: sql_help.c:2507
 msgid "category"
 msgstr "类型"
 
-#: sql_help.c:2435
+#: sql_help.c:2508
 msgid "preferred"
 msgstr "优先"
 
 # describe.c:1639
-#: sql_help.c:2436
+#: sql_help.c:2509
 msgid "default"
 msgstr "默认"
 
-#: sql_help.c:2437
+#: sql_help.c:2510
 msgid "element"
 msgstr "成员项"
 
-#: sql_help.c:2438
+#: sql_help.c:2511
 msgid "delimiter"
 msgstr "分隔符"
 
-#: sql_help.c:2439
+#: sql_help.c:2512
 msgid "collatable"
 msgstr "要校对的"
 
-#: sql_help.c:2536 sql_help.c:3113 sql_help.c:3547 sql_help.c:3636
-#: sql_help.c:3786 sql_help.c:3886 sql_help.c:3980
+#: sql_help.c:2609 sql_help.c:3194 sql_help.c:3628 sql_help.c:3717
+#: sql_help.c:3867 sql_help.c:3967 sql_help.c:4061
 msgid "with_query"
 msgstr "with查询语句(with_query)"
 
-#: sql_help.c:2538 sql_help.c:3115 sql_help.c:3566 sql_help.c:3572
-#: sql_help.c:3575 sql_help.c:3579 sql_help.c:3583 sql_help.c:3591
-#: sql_help.c:3805 sql_help.c:3811 sql_help.c:3814 sql_help.c:3818
-#: sql_help.c:3822 sql_help.c:3830 sql_help.c:3888 sql_help.c:3999
-#: sql_help.c:4005 sql_help.c:4008 sql_help.c:4012 sql_help.c:4016
-#: sql_help.c:4024
+#: sql_help.c:2611 sql_help.c:3196 sql_help.c:3647 sql_help.c:3653
+#: sql_help.c:3656 sql_help.c:3660 sql_help.c:3664 sql_help.c:3672
+#: sql_help.c:3886 sql_help.c:3892 sql_help.c:3895 sql_help.c:3899
+#: sql_help.c:3903 sql_help.c:3911 sql_help.c:3969 sql_help.c:4080
+#: sql_help.c:4086 sql_help.c:4089 sql_help.c:4093 sql_help.c:4097
+#: sql_help.c:4105
 msgid "alias"
 msgstr "别名"
 
-#: sql_help.c:2539
+#: sql_help.c:2612
 msgid "using_list"
 msgstr "USING列表(using_list)"
 
-#: sql_help.c:2541 sql_help.c:2954 sql_help.c:3194 sql_help.c:3897
+#: sql_help.c:2614 sql_help.c:3035 sql_help.c:3275 sql_help.c:3978
 msgid "cursor_name"
 msgstr "游标名称"
 
-#: sql_help.c:2542 sql_help.c:3121 sql_help.c:3898
+#: sql_help.c:2615 sql_help.c:3202 sql_help.c:3979
 msgid "output_expression"
 msgstr "输出表达式"
 
-#: sql_help.c:2543 sql_help.c:3122 sql_help.c:3550 sql_help.c:3639
-#: sql_help.c:3789 sql_help.c:3899 sql_help.c:3983
+#: sql_help.c:2616 sql_help.c:3203 sql_help.c:3631 sql_help.c:3720
+#: sql_help.c:3870 sql_help.c:3980 sql_help.c:4064
 msgid "output_name"
 msgstr "输出名称"
 
-#: sql_help.c:2559
+#: sql_help.c:2632
 msgid "code"
 msgstr "编码"
 
-#: sql_help.c:2902
+#: sql_help.c:2983
 msgid "parameter"
 msgstr "参数"
 
-#: sql_help.c:2921 sql_help.c:2922 sql_help.c:3219
+#: sql_help.c:3002 sql_help.c:3003 sql_help.c:3300
 msgid "statement"
 msgstr "语句"
 
 # help.c:123
-#: sql_help.c:2953 sql_help.c:3193
+#: sql_help.c:3034 sql_help.c:3274
 msgid "direction"
 msgstr "方向"
 
-#: sql_help.c:2955 sql_help.c:3195
+#: sql_help.c:3036 sql_help.c:3276
 msgid "where direction can be empty or one of:"
 msgstr "方向可以为空或者是下列选项之一:"
 
-#: sql_help.c:2956 sql_help.c:2957 sql_help.c:2958 sql_help.c:2959
-#: sql_help.c:2960 sql_help.c:3196 sql_help.c:3197 sql_help.c:3198
-#: sql_help.c:3199 sql_help.c:3200 sql_help.c:3560 sql_help.c:3562
-#: sql_help.c:3650 sql_help.c:3652 sql_help.c:3799 sql_help.c:3801
-#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3993 sql_help.c:3995
+#: sql_help.c:3037 sql_help.c:3038 sql_help.c:3039 sql_help.c:3040
+#: sql_help.c:3041 sql_help.c:3277 sql_help.c:3278 sql_help.c:3279
+#: sql_help.c:3280 sql_help.c:3281 sql_help.c:3641 sql_help.c:3643
+#: sql_help.c:3731 sql_help.c:3733 sql_help.c:3880 sql_help.c:3882
+#: sql_help.c:4009 sql_help.c:4011 sql_help.c:4074 sql_help.c:4076
 msgid "count"
 msgstr "查询所用返回记录的最大数量"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:3040 sql_help.c:3372
+#: sql_help.c:3121 sql_help.c:3453
 msgid "sequence_name"
 msgstr "序列名称"
 
-#: sql_help.c:3053 sql_help.c:3385
+#: sql_help.c:3134 sql_help.c:3466
 msgid "arg_name"
 msgstr "参数名称"
 
 # describe.c:1689
-#: sql_help.c:3054 sql_help.c:3386
+#: sql_help.c:3135 sql_help.c:3467
 msgid "arg_type"
 msgstr "参数类型"
 
-#: sql_help.c:3059 sql_help.c:3391
+#: sql_help.c:3140 sql_help.c:3472
 msgid "loid"
 msgstr "loid"
 
 # sql_help.h:277
-#: sql_help.c:3082
+#: sql_help.c:3163
 msgid "remote_schema"
 msgstr "remote_schema"
 
 # help.c:127
-#: sql_help.c:3085
+#: sql_help.c:3166
 msgid "local_schema"
 msgstr "local_schema"
 
-#: sql_help.c:3119
+#: sql_help.c:3200
 msgid "conflict_target"
 msgstr "conflict_target"
 
 # describe.c:498
-#: sql_help.c:3120
+#: sql_help.c:3201
 msgid "conflict_action"
 msgstr "conflict_action"
 
-#: sql_help.c:3123
+#: sql_help.c:3204
 msgid "where conflict_target can be one of:"
 msgstr "这里conflict_target可以是下列之一:"
 
 # describe.c:1375
-#: sql_help.c:3124
-msgid "column_name_index"
-msgstr "column_name_index"
+#: sql_help.c:3205
+#| msgid "new_column_name"
+msgid "index_column_name"
+msgstr "index_column_name"
 
-#: sql_help.c:3125
-msgid "expression_index"
-msgstr "expression_index"
+#: sql_help.c:3206
+#| msgid "using_expression"
+msgid "index_expression"
+msgstr "index_expression"
 
 # describe.c:937
-#: sql_help.c:3128
+#: sql_help.c:3209
 msgid "index_predicate"
 msgstr "index_predicate"
 
-#: sql_help.c:3130
+#: sql_help.c:3211
 msgid "and conflict_action is one of:"
 msgstr "并且conflict_action是下列之一:"
 
-#: sql_help.c:3136 sql_help.c:3894
+#: sql_help.c:3217 sql_help.c:3975
 msgid "sub-SELECT"
 msgstr "sub-SELECT"
 
-#: sql_help.c:3145 sql_help.c:3208 sql_help.c:3870
+#: sql_help.c:3226 sql_help.c:3289 sql_help.c:3951
 msgid "channel"
 msgstr "通道"
 
-#: sql_help.c:3167
+#: sql_help.c:3248
 msgid "lockmode"
 msgstr "锁模式"
 
-#: sql_help.c:3168
+#: sql_help.c:3249
 msgid "where lockmode is one of:"
 msgstr "锁模式可以是下列选项之一:"
 
-#: sql_help.c:3209
+#: sql_help.c:3290
 msgid "payload"
 msgstr "消息中负载流量(payload)"
 
-#: sql_help.c:3236
+#: sql_help.c:3317
 msgid "old_role"
 msgstr "旧的角色"
 
-#: sql_help.c:3237
+#: sql_help.c:3318
 msgid "new_role"
 msgstr "新的角色"
 
 # sql_help.h:382
-#: sql_help.c:3262 sql_help.c:3423 sql_help.c:3431
+#: sql_help.c:3343 sql_help.c:3504 sql_help.c:3512
 msgid "savepoint_name"
 msgstr "保存点名称"
 
-#: sql_help.c:3464
+#: sql_help.c:3545
 msgid "provider"
 msgstr "provider(提供者)"
 
-#: sql_help.c:3551 sql_help.c:3593 sql_help.c:3595 sql_help.c:3641
-#: sql_help.c:3790 sql_help.c:3832 sql_help.c:3834 sql_help.c:3984
-#: sql_help.c:4026 sql_help.c:4028
+#: sql_help.c:3632 sql_help.c:3674 sql_help.c:3676 sql_help.c:3722
+#: sql_help.c:3871 sql_help.c:3913 sql_help.c:3915 sql_help.c:4065
+#: sql_help.c:4107 sql_help.c:4109
 msgid "from_item"
 msgstr "from列表中项"
 
-#: sql_help.c:3553 sql_help.c:3605 sql_help.c:3792 sql_help.c:3844
-#: sql_help.c:3986 sql_help.c:4038
+#: sql_help.c:3634 sql_help.c:3686 sql_help.c:3873 sql_help.c:3925
+#: sql_help.c:4067 sql_help.c:4119
 msgid "grouping_element"
 msgstr "grouping_element"
 
-#: sql_help.c:3555 sql_help.c:3645 sql_help.c:3794 sql_help.c:3988
+#: sql_help.c:3636 sql_help.c:3726 sql_help.c:3875 sql_help.c:4069
 msgid "window_name"
 msgstr "窗口名称"
 
 # describe.c:977
-#: sql_help.c:3556 sql_help.c:3646 sql_help.c:3795 sql_help.c:3989
+#: sql_help.c:3637 sql_help.c:3727 sql_help.c:3876 sql_help.c:4070
 msgid "window_definition"
 msgstr "窗口定义"
 
-#: sql_help.c:3557 sql_help.c:3571 sql_help.c:3609 sql_help.c:3647
-#: sql_help.c:3796 sql_help.c:3810 sql_help.c:3848 sql_help.c:3990
-#: sql_help.c:4004 sql_help.c:4042
+#: sql_help.c:3638 sql_help.c:3652 sql_help.c:3690 sql_help.c:3728
+#: sql_help.c:3877 sql_help.c:3891 sql_help.c:3929 sql_help.c:4071
+#: sql_help.c:4085 sql_help.c:4123
 msgid "select"
 msgstr "查询"
 
-#: sql_help.c:3564 sql_help.c:3803 sql_help.c:3997
+#: sql_help.c:3645 sql_help.c:3884 sql_help.c:4078
 msgid "where from_item can be one of:"
 msgstr "from 列表中的项可以是下列内容之一"
 
-#: sql_help.c:3567 sql_help.c:3573 sql_help.c:3576 sql_help.c:3580
-#: sql_help.c:3592 sql_help.c:3806 sql_help.c:3812 sql_help.c:3815
-#: sql_help.c:3819 sql_help.c:3831 sql_help.c:4000 sql_help.c:4006
-#: sql_help.c:4009 sql_help.c:4013 sql_help.c:4025
+#: sql_help.c:3648 sql_help.c:3654 sql_help.c:3657 sql_help.c:3661
+#: sql_help.c:3673 sql_help.c:3887 sql_help.c:3893 sql_help.c:3896
+#: sql_help.c:3900 sql_help.c:3912 sql_help.c:4081 sql_help.c:4087
+#: sql_help.c:4090 sql_help.c:4094 sql_help.c:4106
 msgid "column_alias"
 msgstr "列的别名"
 
-#: sql_help.c:3568 sql_help.c:3807 sql_help.c:4001
+#: sql_help.c:3649 sql_help.c:3888 sql_help.c:4082
 msgid "sampling_method"
 msgstr "sampling_method"
 
-#: sql_help.c:3569 sql_help.c:3578 sql_help.c:3582 sql_help.c:3586
-#: sql_help.c:3589 sql_help.c:3808 sql_help.c:3817 sql_help.c:3821
-#: sql_help.c:3825 sql_help.c:3828 sql_help.c:4002 sql_help.c:4011
-#: sql_help.c:4015 sql_help.c:4019 sql_help.c:4022
+#: sql_help.c:3650 sql_help.c:3659 sql_help.c:3663 sql_help.c:3667
+#: sql_help.c:3670 sql_help.c:3889 sql_help.c:3898 sql_help.c:3902
+#: sql_help.c:3906 sql_help.c:3909 sql_help.c:4083 sql_help.c:4092
+#: sql_help.c:4096 sql_help.c:4100 sql_help.c:4103
 msgid "argument"
 msgstr "参数"
 
-#: sql_help.c:3570 sql_help.c:3809 sql_help.c:4003
+#: sql_help.c:3651 sql_help.c:3890 sql_help.c:4084
 msgid "seed"
 msgstr "种子"
 
-#: sql_help.c:3574 sql_help.c:3607 sql_help.c:3813 sql_help.c:3846
-#: sql_help.c:4007 sql_help.c:4040
+#: sql_help.c:3655 sql_help.c:3688 sql_help.c:3894 sql_help.c:3927
+#: sql_help.c:4088 sql_help.c:4121
 msgid "with_query_name"
 msgstr "WITH查询语句名称(with_query_name)"
 
 # describe.c:977
-#: sql_help.c:3584 sql_help.c:3587 sql_help.c:3590 sql_help.c:3823
-#: sql_help.c:3826 sql_help.c:3829 sql_help.c:4017 sql_help.c:4020
-#: sql_help.c:4023
+#: sql_help.c:3665 sql_help.c:3668 sql_help.c:3671 sql_help.c:3904
+#: sql_help.c:3907 sql_help.c:3910 sql_help.c:4098 sql_help.c:4101
+#: sql_help.c:4104
 msgid "column_definition"
 msgstr "列定义"
 
-#: sql_help.c:3594 sql_help.c:3833 sql_help.c:4027
+#: sql_help.c:3675 sql_help.c:3914 sql_help.c:4108
 msgid "join_type"
 msgstr "连接操作的类型"
 
-#: sql_help.c:3596 sql_help.c:3835 sql_help.c:4029
+#: sql_help.c:3677 sql_help.c:3916 sql_help.c:4110
 msgid "join_condition"
 msgstr "用连接操作的条件"
 
-#: sql_help.c:3597 sql_help.c:3836 sql_help.c:4030
+#: sql_help.c:3678 sql_help.c:3917 sql_help.c:4111
 msgid "join_column"
 msgstr "用于连接操作的列"
 
-#: sql_help.c:3598 sql_help.c:3837 sql_help.c:4031
+#: sql_help.c:3679 sql_help.c:3918 sql_help.c:4112
 msgid "and grouping_element can be one of:"
 msgstr "并且grouping_element可以是下列之一:"
 
-#: sql_help.c:3606 sql_help.c:3845 sql_help.c:4039
+#: sql_help.c:3687 sql_help.c:3926 sql_help.c:4120
 msgid "and with_query is:"
 msgstr "with查询语句是:"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:3610 sql_help.c:3849 sql_help.c:4043
+#: sql_help.c:3691 sql_help.c:3930 sql_help.c:4124
 msgid "values"
 msgstr "值"
 
-#: sql_help.c:3611 sql_help.c:3850 sql_help.c:4044
+#: sql_help.c:3692 sql_help.c:3931 sql_help.c:4125
 msgid "insert"
 msgstr "insert"
 
-#: sql_help.c:3612 sql_help.c:3851 sql_help.c:4045
+#: sql_help.c:3693 sql_help.c:3932 sql_help.c:4126
 msgid "update"
 msgstr "update"
 
-#: sql_help.c:3613 sql_help.c:3852 sql_help.c:4046
+#: sql_help.c:3694 sql_help.c:3933 sql_help.c:4127
 msgid "delete"
 msgstr "delete"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:3640
+#: sql_help.c:3721
 msgid "new_table"
 msgstr "新的表"
 
-#: sql_help.c:3665
+#: sql_help.c:3746
 msgid "timezone"
 msgstr "时区"
 
-#: sql_help.c:3710
+#: sql_help.c:3791
 msgid "snapshot_id"
 msgstr "快照id"
 
-#: sql_help.c:3895
+#: sql_help.c:3976
 msgid "from_list"
 msgstr "from列表(from_list)"
 
-#: sql_help.c:3926
+#: sql_help.c:4007
 msgid "sort_expression"
 msgstr "排序表达式"
 
 # sql_help.h:25
 # sql_help.h:373
-#: sql_help.h:197 sql_help.h:927
+#: sql_help.c:4134 sql_help.c:4874
 msgid "abort the current transaction"
 msgstr "中止目前的事务"
 
 # sql_help.h:29
-#: sql_help.h:202
+#: sql_help.c:4139
 msgid "change the definition of an aggregate function"
 msgstr "更改聚集函数的定义"
 
 # sql_help.h:45
-#: sql_help.h:207
+#: sql_help.c:4144
 msgid "change the definition of a collation"
 msgstr "更改校对规则的定义"
 
 # sql_help.h:33
-#: sql_help.h:212
+#: sql_help.c:4149
 msgid "change the definition of a conversion"
 msgstr "更改一个字符编码转换的定义"
 
 # sql_help.h:37
-#: sql_help.h:217
+#: sql_help.c:4154
 msgid "change a database"
 msgstr "更改一个数据库"
 
 # sql_help.h:325
-#: sql_help.h:222
+#: sql_help.c:4159
 msgid "define default access privileges"
 msgstr "定义默认的访问权限"
 
 # sql_help.h:41
-#: sql_help.h:227
+#: sql_help.c:4164
 msgid "change the definition of a domain"
 msgstr "更改共同值域的定义"
 
 # sql_help.h:85
-#: sql_help.h:232
+#: sql_help.c:4169
 msgid "change the definition of an event trigger"
 msgstr "更改事件触发器的定义"
 
 # sql_help.h:33
-#: sql_help.h:237
+#: sql_help.c:4174
 msgid "change the definition of an extension"
 msgstr "更改扩展的定义"
 
 # sql_help.h:85
-#: sql_help.h:242
+#: sql_help.c:4179
 msgid "change the definition of a foreign-data wrapper"
 msgstr "更改外部数据封装器的定义"
 
 # sql_help.h:85
-#: sql_help.h:247
+#: sql_help.c:4184
 msgid "change the definition of a foreign table"
 msgstr "更改外部表的定义"
 
 # sql_help.h:45
-#: sql_help.h:252
+#: sql_help.c:4189
 msgid "change the definition of a function"
 msgstr "更改函数的定义"
 
-#: sql_help.h:257
+#: sql_help.c:4194
 msgid "change role name or membership"
 msgstr "更改角色名称或成员状态"
 
 # sql_help.h:53
-#: sql_help.h:262
+#: sql_help.c:4199
 msgid "change the definition of an index"
 msgstr "更改索引的定义"
 
 # sql_help.h:57
-#: sql_help.h:267
+#: sql_help.c:4204
 msgid "change the definition of a procedural language"
 msgstr "更改程序语言的定义"
 
 # sql_help.h:77
-#: sql_help.h:272
+#: sql_help.c:4209
 msgid "change the definition of a large object"
 msgstr "更改大对象的定义"
 
 # sql_help.h:53
-#: sql_help.h:277
+#: sql_help.c:4214
 msgid "change the definition of a materialized view"
 msgstr "更改物化视图的定义"
 
 # sql_help.h:65
-#: sql_help.h:282
+#: sql_help.c:4219
 msgid "change the definition of an operator"
 msgstr "更改运算子的定义"
 
 # sql_help.h:61
-#: sql_help.h:287
+#: sql_help.c:4224
 msgid "change the definition of an operator class"
 msgstr "更改运算子类别的定义"
 
 # sql_help.h:65
-#: sql_help.h:292
+#: sql_help.c:4229
 msgid "change the definition of an operator family"
 msgstr "更改一个运算子家族的识别"
 
 # sql_help.h:41
-#: sql_help.h:297
-msgid "change the definition of a policy"
-msgstr "改变一个策略的定义"
+#: sql_help.c:4234
+#| msgid "change the definition of a policy"
+msgid "change the definition of a row level security policy"
+msgstr "更改一条行级安全性策略的定义"
 
 # sql_help.h:37
-#: sql_help.h:302 sql_help.h:372
+#: sql_help.c:4239 sql_help.c:4309
 msgid "change a database role"
 msgstr "更改数据库角色"
 
 # sql_help.h:77
-#: sql_help.h:307
+#: sql_help.c:4244
 msgid "change the definition of a rule"
 msgstr "更改规则的定义"
 
 # sql_help.h:69
-#: sql_help.h:312
+#: sql_help.c:4249
 msgid "change the definition of a schema"
 msgstr "更改架构模式的定义"
 
 # sql_help.h:73
-#: sql_help.h:317
+#: sql_help.c:4254
 msgid "change the definition of a sequence generator"
 msgstr "更改序列数产生器的定义"
 
 # sql_help.h:85
-#: sql_help.h:322
+#: sql_help.c:4259
 msgid "change the definition of a foreign server"
 msgstr "更改外部服务器的定义"
 
 # sql_help.h:366
-#: sql_help.h:327
+#: sql_help.c:4264
 msgid "change a server configuration parameter"
 msgstr "更改服务器的配置参数"
 
 # sql_help.h:77
-#: sql_help.h:332
+#: sql_help.c:4269
 msgid "change the definition of a table"
 msgstr "更改数据表的定义"
 
 # sql_help.h:81
-#: sql_help.h:337
+#: sql_help.c:4274
 msgid "change the definition of a tablespace"
 msgstr "更改表空间的定义"
 
 # sql_help.h:33
-#: sql_help.h:342
+#: sql_help.c:4279
 msgid "change the definition of a text search configuration"
 msgstr "更改一个文本搜索组态的定义"
 
 # sql_help.h:45
-#: sql_help.h:347
+#: sql_help.c:4284
 msgid "change the definition of a text search dictionary"
 msgstr "更改一个文本搜索字典的定义"
 
 # sql_help.h:81
-#: sql_help.h:352
+#: sql_help.c:4289
 msgid "change the definition of a text search parser"
 msgstr "更改一个文本搜索剖析器的定义"
 
 # sql_help.h:69
-#: sql_help.h:357
+#: sql_help.c:4294
 msgid "change the definition of a text search template"
 msgstr "更改一个文本搜索模版的定义"
 
 # sql_help.h:85
-#: sql_help.h:362
+#: sql_help.c:4299
 msgid "change the definition of a trigger"
 msgstr "更改触发器的定义"
 
 # sql_help.h:89
-#: sql_help.h:367
+#: sql_help.c:4304
 msgid "change the definition of a type"
 msgstr "更改数据类型的定义"
 
 # sql_help.h:41
-#: sql_help.h:377
+#: sql_help.c:4314
 msgid "change the definition of a user mapping"
 msgstr "更改用户映射的定义"
 
 # sql_help.h:53
-#: sql_help.h:382
+#: sql_help.c:4319
 msgid "change the definition of a view"
 msgstr "更改视图的定义"
 
 # sql_help.h:97
-#: sql_help.h:387
+#: sql_help.c:4324
 msgid "collect statistics about a database"
 msgstr "收集数据库的统计信息"
 
 # sql_help.h:101
 # sql_help.h:413
-#: sql_help.h:392 sql_help.h:992
+#: sql_help.c:4329 sql_help.c:4939
 msgid "start a transaction block"
 msgstr "开始一个事务区块"
 
 # sql_help.h:105
-#: sql_help.h:397
+#: sql_help.c:4334
 msgid "force a transaction log checkpoint"
 msgstr "强制一个事务触发检查点"
 
 # sql_help.h:109
-#: sql_help.h:402
+#: sql_help.c:4339
 msgid "close a cursor"
 msgstr "关闭游标"
 
 # sql_help.h:113
-#: sql_help.h:407
+#: sql_help.c:4344
 msgid "cluster a table according to an index"
 msgstr "按照索引进行表的聚集"
 
 # sql_help.h:117
-#: sql_help.h:412
+#: sql_help.c:4349
 msgid "define or change the comment of an object"
 msgstr "定义或更改一个对象的注解"
 
 # sql_help.h:121
 # sql_help.h:309
-#: sql_help.h:417 sql_help.h:827
+#: sql_help.c:4354 sql_help.c:4774
 msgid "commit the current transaction"
 msgstr "确认目前的事务"
 
-#: sql_help.h:422
+#: sql_help.c:4359
 msgid "commit a transaction that was earlier prepared for two-phase commit"
 msgstr "提交一项事务这是两阶段提交的先前准备"
 
 # sql_help.h:125
-#: sql_help.h:427
+#: sql_help.c:4364
 msgid "copy data between a file and a table"
 msgstr "在档案和数据表间复制数据"
 
+# sql_help.h:133
+#: sql_help.c:4369
+#| msgid "define a new cast"
+msgid "define a new access method"
+msgstr "定义新的访问方法"
+
 # sql_help.h:129
-#: sql_help.h:432
+#: sql_help.c:4374
 msgid "define a new aggregate function"
 msgstr "定义一个新的聚集函数"
 
 # sql_help.h:133
-#: sql_help.h:437
+#: sql_help.c:4379
 msgid "define a new cast"
 msgstr "建立新的类型转换"
 
 # sql_help.h:153
-#: sql_help.h:442
+#: sql_help.c:4384
 msgid "define a new collation"
 msgstr "建立新的校对规则"
 
 # sql_help.h:141
-#: sql_help.h:447
+#: sql_help.c:4389
 msgid "define a new encoding conversion"
 msgstr "定义一个新的字元编码转换"
 
 # sql_help.h:145
-#: sql_help.h:452
+#: sql_help.c:4394
 msgid "create a new database"
 msgstr "建立新的数据库"
 
 # sql_help.h:149
-#: sql_help.h:457
+#: sql_help.c:4399
 msgid "define a new domain"
 msgstr "建立新的共同值域"
 
 # sql_help.h:201
-#: sql_help.h:462
+#: sql_help.c:4404
 msgid "define a new event trigger"
 msgstr "定义新的事件触发器"
 
-#: sql_help.h:467
+#: sql_help.c:4409
 msgid "install an extension"
 msgstr "安装一个扩展"
 
 # sql_help.h:205
-#: sql_help.h:472
+#: sql_help.c:4414
 msgid "define a new foreign-data wrapper"
 msgstr "定义一个新的外部数据封装器"
 
 # sql_help.h:201
-#: sql_help.h:477
+#: sql_help.c:4419
 msgid "define a new foreign table"
 msgstr "建立新的外部表"
 
 # sql_help.h:153
-#: sql_help.h:482
+#: sql_help.c:4424
 msgid "define a new function"
 msgstr "建立新的函数"
 
 # sql_help.h:189
-#: sql_help.h:487 sql_help.h:527 sql_help.h:602
+#: sql_help.c:4429 sql_help.c:4469 sql_help.c:4544
 msgid "define a new database role"
 msgstr "定义一个新数据库角色"
 
 # sql_help.h:161
-#: sql_help.h:492
+#: sql_help.c:4434
 msgid "define a new index"
 msgstr "建立新的索引"
 
 # sql_help.h:165
-#: sql_help.h:497
+#: sql_help.c:4439
 msgid "define a new procedural language"
 msgstr "建立新的程序语言"
 
 # sql_help.h:213
-#: sql_help.h:502
+#: sql_help.c:4444
 msgid "define a new materialized view"
 msgstr "建立新的物化视图"
 
 # sql_help.h:173
-#: sql_help.h:507
+#: sql_help.c:4449
 msgid "define a new operator"
 msgstr "建立新的运算子"
 
 # sql_help.h:169
-#: sql_help.h:512
+#: sql_help.c:4454
 msgid "define a new operator class"
 msgstr "建立新的运算子类别"
 
 # sql_help.h:173
-#: sql_help.h:517
+#: sql_help.c:4459
 msgid "define a new operator family"
 msgstr "定义一个新的运算子家族"
 
 # sql_help.h:201
-#: sql_help.h:522
-msgid "define a new policy for a table"
-msgstr "为一个表定义一个新策略"
+#: sql_help.c:4464
+#| msgid "define a new policy for a table"
+msgid "define a new row level security policy for a table"
+msgstr "为一个表定义一条新的行级安全性策略"
 
 # sql_help.h:177
-#: sql_help.h:532
+#: sql_help.c:4474
 msgid "define a new rewrite rule"
 msgstr "建立新的重写规则"
 
 # sql_help.h:181
-#: sql_help.h:537
+#: sql_help.c:4479
 msgid "define a new schema"
 msgstr "建立新的架构模式"
 
 # sql_help.h:185
-#: sql_help.h:542
+#: sql_help.c:4484
 msgid "define a new sequence generator"
 msgstr "建立新的序列数产生器"
 
 # sql_help.h:201
-#: sql_help.h:547
+#: sql_help.c:4489
 msgid "define a new foreign server"
 msgstr "建立新的触发器"
 
 # sql_help.h:189
-#: sql_help.h:552
+#: sql_help.c:4494
 msgid "define a new table"
 msgstr "建立新的数据表"
 
 # sql_help.h:193
 # sql_help.h:389
-#: sql_help.h:557 sql_help.h:957
+#: sql_help.c:4499 sql_help.c:4904
 msgid "define a new table from the results of a query"
 msgstr "以查询结果建立新的数据表"
 
 # sql_help.h:197
-#: sql_help.h:562
+#: sql_help.c:4504
 msgid "define a new tablespace"
 msgstr "建立新的表空间"
 
 # sql_help.h:129
-#: sql_help.h:567
+#: sql_help.c:4509
 msgid "define a new text search configuration"
 msgstr "定义一个新文本搜索组态"
 
 # sql_help.h:129
-#: sql_help.h:572
+#: sql_help.c:4514
 msgid "define a new text search dictionary"
 msgstr "定义一个新文本搜索字典"
 
 # sql_help.h:197
-#: sql_help.h:577
+#: sql_help.c:4519
 msgid "define a new text search parser"
 msgstr "定义一个新文本搜索剖析器"
 
 # sql_help.h:181
-#: sql_help.h:582
+#: sql_help.c:4524
 msgid "define a new text search template"
 msgstr "定义一个新文本搜索模版"
 
 # sql_help.h:173
-#: sql_help.h:587
+#: sql_help.c:4529
 msgid "define a new transform"
 msgstr "定义一个新的转换"
 
 # sql_help.h:201
-#: sql_help.h:592
+#: sql_help.c:4534
 msgid "define a new trigger"
 msgstr "建立新的触发器"
 
 # sql_help.h:205
-#: sql_help.h:597
+#: sql_help.c:4539
 msgid "define a new data type"
 msgstr "建立新的数据类型"
 
-#: sql_help.h:607
+#: sql_help.c:4549
 msgid "define a new mapping of a user to a foreign server"
 msgstr "将用户的新映射定义到一个外部服务器"
 
 # sql_help.h:213
-#: sql_help.h:612
+#: sql_help.c:4554
 msgid "define a new view"
 msgstr "建立新的视图"
 
 # sql_help.h:217
-#: sql_help.h:617
+#: sql_help.c:4559
 msgid "deallocate a prepared statement"
 msgstr "释放一个已预备好的叙述区块"
 
 # sql_help.h:221
-#: sql_help.h:622
+#: sql_help.c:4564
 msgid "define a cursor"
 msgstr "建立一个 cursor"
 
 # sql_help.h:225
-#: sql_help.h:627
+#: sql_help.c:4569
 msgid "delete rows of a table"
 msgstr "删除数据表中的数据列"
 
-#: sql_help.h:632
+#: sql_help.c:4574
 msgid "discard session state"
 msgstr "抛弃 session 状态"
 
-#: sql_help.h:637
+#: sql_help.c:4579
 msgid "execute an anonymous code block"
 msgstr "执行一个匿名代码块"
 
+# sql_help.h:233
+#: sql_help.c:4584
+#| msgid "remove a cast"
+msgid "remove an access method"
+msgstr "移除一种访问方法"
+
 # sql_help.h:229
-#: sql_help.h:642
+#: sql_help.c:4589
 msgid "remove an aggregate function"
 msgstr "移除一个聚集函数"
 
 # sql_help.h:233
-#: sql_help.h:647
+#: sql_help.c:4594
 msgid "remove a cast"
 msgstr "移除一个类型转换"
 
 # sql_help.h:249
-#: sql_help.h:652
+#: sql_help.c:4599
 msgid "remove a collation"
 msgstr "移除一个校对规则"
 
 # sql_help.h:237
-#: sql_help.h:657
+#: sql_help.c:4604
 msgid "remove a conversion"
 msgstr "移除一个字元编码转换"
 
 # sql_help.h:241
-#: sql_help.h:662
+#: sql_help.c:4609
 msgid "remove a database"
 msgstr "移除数据库"
 
 # sql_help.h:245
-#: sql_help.h:667
+#: sql_help.c:4614
 msgid "remove a domain"
 msgstr "移除一个共同值域"
 
 # sql_help.h:293
-#: sql_help.h:672
+#: sql_help.c:4619
 msgid "remove an event trigger"
 msgstr "移除事件触发器"
 
 # sql_help.h:237
-#: sql_help.h:677
+#: sql_help.c:4624
 msgid "remove an extension"
 msgstr "移除一个扩展"
 
 # sql_help.h:297
-#: sql_help.h:682
+#: sql_help.c:4629
 msgid "remove a foreign-data wrapper"
 msgstr "删除一个外部数据封装器"
 
 # sql_help.h:285
-#: sql_help.h:687
+#: sql_help.c:4634
 msgid "remove a foreign table"
 msgstr "移除外部引用表"
 
 # sql_help.h:249
-#: sql_help.h:692
+#: sql_help.c:4639
 msgid "remove a function"
 msgstr "移除函数"
 
 # sql_help.h:241
-#: sql_help.h:697 sql_help.h:742 sql_help.h:812
+#: sql_help.c:4644 sql_help.c:4689 sql_help.c:4759
 msgid "remove a database role"
 msgstr "移除一个数据库成员"
 
 # sql_help.h:257
-#: sql_help.h:702
+#: sql_help.c:4649
 msgid "remove an index"
 msgstr "移除一个索引"
 
 # sql_help.h:261
-#: sql_help.h:707
+#: sql_help.c:4654
 msgid "remove a procedural language"
 msgstr "移除一个程序语言"
 
 # sql_help.h:305
-#: sql_help.h:712
+#: sql_help.c:4659
 msgid "remove a materialized view"
 msgstr "移除一个物化视图"
 
 # sql_help.h:269
-#: sql_help.h:717
+#: sql_help.c:4664
 msgid "remove an operator"
 msgstr "移除运算子"
 
 # sql_help.h:265
-#: sql_help.h:722
+#: sql_help.c:4669
 msgid "remove an operator class"
 msgstr "移除一个运算子类别"
 
 # sql_help.h:269
-#: sql_help.h:727
+#: sql_help.c:4674
 msgid "remove an operator family"
 msgstr "移除一个运算子家族"
 
-#: sql_help.h:732
+#: sql_help.c:4679
 msgid "remove database objects owned by a database role"
 msgstr "依照一个数据库角色拥有的数据库对象来移除"
 
 # sql_help.h:285
-#: sql_help.h:737
-msgid "remove a policy from a table"
-msgstr "从一个表移除一个策略"
+#: sql_help.c:4684
+#| msgid "remove a policy from a table"
+msgid "remove a row level security policy from a table"
+msgstr "从一个表移除一条行级安全性策略"
 
 # sql_help.h:273
-#: sql_help.h:747
+#: sql_help.c:4694
 msgid "remove a rewrite rule"
 msgstr "移除一个重写规则"
 
 # sql_help.h:277
-#: sql_help.h:752
+#: sql_help.c:4699
 msgid "remove a schema"
 msgstr "移除一个模式"
 
 # sql_help.h:281
-#: sql_help.h:757
+#: sql_help.c:4704
 msgid "remove a sequence"
 msgstr "移除序列"
 
 # sql_help.h:237
-#: sql_help.h:762
+#: sql_help.c:4709
 msgid "remove a foreign server descriptor"
 msgstr "删除一个外部服务器描述符"
 
 # sql_help.h:285
-#: sql_help.h:767
+#: sql_help.c:4714
 msgid "remove a table"
 msgstr "移除数据表"
 
 # sql_help.h:289
-#: sql_help.h:772
+#: sql_help.c:4719
 msgid "remove a tablespace"
 msgstr "移除一个表空间"
 
 # sql_help.h:301
-#: sql_help.h:777
+#: sql_help.c:4724
 msgid "remove a text search configuration"
 msgstr "移除一个文本搜索配置"
 
 # sql_help.h:301
-#: sql_help.h:782
+#: sql_help.c:4729
 msgid "remove a text search dictionary"
 msgstr "移除一个文本搜索字典"
 
 # sql_help.h:289
-#: sql_help.h:787
+#: sql_help.c:4734
 msgid "remove a text search parser"
 msgstr "移除一个文本搜索剖析器"
 
 # sql_help.h:277
-#: sql_help.h:792
+#: sql_help.c:4739
 msgid "remove a text search template"
 msgstr "移除一个文本搜索模版"
 
 # sql_help.h:269
-#: sql_help.h:797
+#: sql_help.c:4744
 msgid "remove a transform"
 msgstr "移除一个转换"
 
 # sql_help.h:293
-#: sql_help.h:802
+#: sql_help.c:4749
 msgid "remove a trigger"
 msgstr "移除触发器"
 
 # sql_help.h:297
-#: sql_help.h:807
+#: sql_help.c:4754
 msgid "remove a data type"
 msgstr "移除数据类型"
 
-#: sql_help.h:817
+#: sql_help.c:4764
 msgid "remove a user mapping for a foreign server"
 msgstr "为外部服务器删除用户映射"
 
 # sql_help.h:305
-#: sql_help.h:822
+#: sql_help.c:4769
 msgid "remove a view"
 msgstr "移除一个视图"
 
 # sql_help.h:313
-#: sql_help.h:832
+#: sql_help.c:4779
 msgid "execute a prepared statement"
 msgstr "执行一个已准备好的语句块"
 
 # sql_help.h:317
-#: sql_help.h:837
+#: sql_help.c:4784
 msgid "show the execution plan of a statement"
 msgstr "显示一个语句块的执行计划"
 
 # sql_help.h:321
-#: sql_help.h:842
+#: sql_help.c:4789
 msgid "retrieve rows from a query using a cursor"
 msgstr "从使用游标的查询读取数据"
 
 # sql_help.h:325
-#: sql_help.h:847
+#: sql_help.c:4794
 msgid "define access privileges"
 msgstr "定义存取权限"
 
 # sql_help.h:85
-#: sql_help.h:852
+#: sql_help.c:4799
 msgid "import table definitions from a foreign server"
 msgstr "从一个外部服务器导入表定义"
 
 # sql_help.h:329
-#: sql_help.h:857
+#: sql_help.c:4804
 msgid "create new rows in a table"
 msgstr "在表中创建新数据行"
 
 # sql_help.h:333
-#: sql_help.h:862
+#: sql_help.c:4809
 msgid "listen for a notification"
 msgstr "等待通知"
 
 # sql_help.h:337
-#: sql_help.h:867
+#: sql_help.c:4814
 msgid "load a shared library file"
 msgstr "加载一个共享库文件"
 
 # sql_help.h:341
-#: sql_help.h:872
+#: sql_help.c:4819
 msgid "lock a table"
 msgstr "锁定数据表"
 
 # sql_help.h:345
-#: sql_help.h:877
+#: sql_help.c:4824
 msgid "position a cursor"
 msgstr "移动游标位置"
 
 # sql_help.h:349
-#: sql_help.h:882
+#: sql_help.c:4829
 msgid "generate a notification"
 msgstr "产生通知"
 
 # sql_help.h:353
-#: sql_help.h:887
+#: sql_help.c:4834
 msgid "prepare a statement for execution"
 msgstr "预先编译语句以执行"
 
 # sql_help.h:25
 # sql_help.h:373
-#: sql_help.h:892
+#: sql_help.c:4839
 msgid "prepare the current transaction for two-phase commit"
 msgstr "准备将当前事务进行二段式提交"
 
-#: sql_help.h:897
+#: sql_help.c:4844
 msgid "change the ownership of database objects owned by a database role"
 msgstr "依照一个数据库角色拥有的的数据库对象来更变所有权"
 
-#: sql_help.h:902
+#: sql_help.c:4849
 msgid "replace the contents of a materialized view"
 msgstr "替换物化视图的内容"
 
 # sql_help.h:357
-#: sql_help.h:907
+#: sql_help.c:4854
 msgid "rebuild indexes"
 msgstr "重新建构索引"
 
 # sql_help.h:361
-#: sql_help.h:912
+#: sql_help.c:4859
 msgid "destroy a previously defined savepoint"
 msgstr "删除先前建立的储存点(Savepoint)"
 
 # sql_help.h:365
-#: sql_help.h:917
+#: sql_help.c:4864
 msgid "restore the value of a run-time parameter to the default value"
 msgstr "将执行时期参数还原成预设值"
 
 # sql_help.h:369
-#: sql_help.h:922
+#: sql_help.c:4869
 msgid "remove access privileges"
 msgstr "移除存取权限"
 
-#: sql_help.h:932
+#: sql_help.c:4879
 msgid "cancel a transaction that was earlier prepared for two-phase commit"
 msgstr "取消一个可以为两阶段提交容易配置的事务"
 
 # sql_help.h:377
-#: sql_help.h:937
+#: sql_help.c:4884
 msgid "roll back to a savepoint"
 msgstr "还原至一个储存点(Savepoint)"
 
 # sql_help.h:381
-#: sql_help.h:942
+#: sql_help.c:4889
 msgid "define a new savepoint within the current transaction"
 msgstr "在当前事务中建立新的储存点(Savepoint)"
 
 # sql_help.h:117
-#: sql_help.h:947
+#: sql_help.c:4894
 msgid "define or change a security label applied to an object"
 msgstr "定义或更改一个对象的安全标签"
 
 # sql_help.h:385
-#: sql_help.h:952 sql_help.h:997 sql_help.h:1027
+#: sql_help.c:4899 sql_help.c:4944 sql_help.c:4974
 msgid "retrieve rows from a table or view"
 msgstr "从数据表或视图中读取数据"
 
 # sql_help.h:393
-#: sql_help.h:962
+#: sql_help.c:4909
 msgid "change a run-time parameter"
 msgstr "更改一个运行期参数"
 
 # sql_help.h:397
-#: sql_help.h:967
+#: sql_help.c:4914
 msgid "set constraint check timing for the current transaction"
 msgstr "为当前事务设定约束限制检查的时间模式"
 
 # sql_help.h:405
-#: sql_help.h:972
+#: sql_help.c:4919
 msgid "set the current user identifier of the current session"
 msgstr "为当前会话的当前用户的设置身份标识"
 
 # sql_help.h:401
-#: sql_help.h:977
+#: sql_help.c:4924
 msgid ""
 "set the session user identifier and the current user identifier of the "
 "current session"
 msgstr "为当前会话设置会话用户标识符和当前用户标识符"
 
 # sql_help.h:405
-#: sql_help.h:982
+#: sql_help.c:4929
 msgid "set the characteristics of the current transaction"
 msgstr "设定当前事务属性"
 
 # sql_help.h:409
-#: sql_help.h:987
+#: sql_help.c:4934
 msgid "show the value of a run-time parameter"
 msgstr "显示运行期的参数值"
 
 # sql_help.h:425
-#: sql_help.h:1002
+#: sql_help.c:4949
 msgid "empty a table or set of tables"
 msgstr "空的数据表或数据表集合"
 
 # sql_help.h:421
-#: sql_help.h:1007
+#: sql_help.c:4954
 msgid "stop listening for a notification"
 msgstr "停止监听通知"
 
 # sql_help.h:425
-#: sql_help.h:1012
+#: sql_help.c:4959
 msgid "update rows of a table"
 msgstr "更新数据表中的数据列"
 
 # sql_help.h:429
-#: sql_help.h:1017
+#: sql_help.c:4964
 msgid "garbage-collect and optionally analyze a database"
 msgstr "垃圾收集(GC)并选择地分析数据库"
 
-#: sql_help.h:1022
+#: sql_help.c:4969
 msgid "compute a set of rows"
 msgstr "计算一个数据列的集合"
 
-#: startup.c:177
+#: startup.c:189
 #, c-format
 msgid "%s: -1 can only be used in non-interactive mode\n"
 msgstr "%s: -1 只能用于非交互模式下\n"
 
 # command.c:1148
-#: startup.c:277
+#: startup.c:289
 #, c-format
 msgid "%s: could not open log file \"%s\": %s\n"
 msgstr "%s:无法开启日志文件 \"%s\":%s\n"
 
-#: startup.c:339
+#: startup.c:389
 #, c-format
 msgid ""
 "Type \"help\" for help.\n"
@@ -6003,47 +6214,48 @@ msgstr ""
 "\n"
 
 # startup.c:446
-#: startup.c:486
+#: startup.c:538
 #, c-format
 msgid "%s: could not set printing parameter \"%s\"\n"
 msgstr "%s:无法设定列打印参数 \"%s\"\n"
 
 # startup.c:492
-#: startup.c:526
+#: startup.c:578
 #, c-format
 msgid "%s: could not delete variable \"%s\"\n"
 msgstr "%s:无法删除变量 \"%s\"\n"
 
 # startup.c:502
-#: startup.c:536
+#: startup.c:588
 #, c-format
 msgid "%s: could not set variable \"%s\"\n"
 msgstr "%s:无法设定变量 \"%s\"\n"
 
 # startup.c:533
 # startup.c:539
-#: startup.c:596
+#: startup.c:648
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "尝试 \"%s --help\" 以得到更多信息。\n"
 
 # startup.c:557
-#: startup.c:613
+#: startup.c:665
 #, c-format
 msgid "%s: warning: extra command-line argument \"%s\" ignored\n"
 msgstr "%s:警告:忽略多余的命令行参数 \"%s\"\n"
 
-#: startup.c:635
+#: startup.c:714
 #, c-format
 msgid "%s: could not find own program executable\n"
 msgstr "%s: 找不到可执行文件\n"
 
-#: startup.c:757 startup.c:804 startup.c:825 startup.c:862 variables.c:121
+#: startup.c:836 startup.c:883 startup.c:904 startup.c:941 startup.c:963
+#: variables.c:121
 #, c-format
 msgid "unrecognized value \"%s\" for \"%s\"; assuming \"%s\"\n"
 msgstr "\"%2$s\"的不能识别的值\"%1$s\";假定为\"%3$s\"\n"
 
-#: tab-complete.c:4566
+#: tab-complete.c:3682
 #, c-format
 msgid ""
 "tab completion query failed: %s\n"
@@ -6054,44 +6266,5 @@ msgstr ""
 "查询是:\n"
 "%s\n"
 
-# startup.c:652
-#~ msgid "SSL connection (unknown cipher)\n"
-#~ msgstr "SSL连接 (未知加密)\n"
-
-#~ msgid "  -?, --help               show this help, then exit\n"
-#~ msgstr "  -?, --help               显示此帮助, 然后退出\n"
-
-# print.c:428
-#~ msgid "(No rows)\n"
-#~ msgstr "(无数据列)\n"
-
 #~ msgid "  \\l[+]                  list all databases\n"
 #~ msgstr "  \\l[+]                列出所有的数据库\n"
-
-# help.c:193
-#, fuzzy
-#~ msgid "  \\sv[+]  VIEWNAME       show a view's definition\n"
-#~ msgstr "  \\sf[+] FUNCNAME        显示函数定义\n"
-
-# help.c:193
-#, fuzzy
-#~ msgid ""
-#~ "  \\ev [VIEWNAME [LINE]]  edit view definition with external editor\n"
-#~ msgstr "  \\ef [FUNCNAME [LINE]]   使用外部编辑器编辑函数定义\n"
-
-# copy.c:122
-#, fuzzy
-#~ msgid "view name is required\n"
-#~ msgstr "需要函数名\n"
-
-# describe.c:117
-#, fuzzy
-#~ msgid ""
-#~ "The server (version %d.%d) does not support showing view definitions.\n"
-#~ msgstr "服务器(版本%d.%d)不支持显示函数源码.\n"
-
-# describe.c:117
-#, fuzzy
-#~ msgid ""
-#~ "The server (version %d.%d) does not support editing view definitions.\n"
-#~ msgstr "服务器(版本%d.%d)不支持编辑函数源码.\n"