zh_CN: Fix merge mistake by msgmerge'ing from REL_11_STABLE
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 4 Jun 2019 21:29:26 +0000 (17:29 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 4 Jun 2019 21:29:26 +0000 (17:29 -0400)
I mistakenly applied the .po files submitted for branch 11 to branch
master.  As penance, rather than reverting to the originals, merge the
(complete) files from branch 11 to the correct catalogs from version 11.
Hopefully this gives the translation for 12 a bit of a head start.

20 files changed:
zh_CN/ecpg.po
zh_CN/ecpglib.po
zh_CN/initdb.po
zh_CN/libpq.po
zh_CN/pg_basebackup.po
zh_CN/pg_config.po
zh_CN/pg_controldata.po
zh_CN/pg_ctl.po
zh_CN/pg_dump.po
zh_CN/pg_resetwal.po
zh_CN/pg_rewind.po
zh_CN/pg_verify_checksums.po [deleted file]
zh_CN/pg_waldump.po
zh_CN/pgscripts.po
zh_CN/plperl.po
zh_CN/plpgsql.po
zh_CN/plpython.po
zh_CN/pltcl.po
zh_CN/postgres.po
zh_CN/psql.po

index 85d1c3da91988c42ccae606242132cd6ae6c83cf..22e0f20a47fc8d4ea75be92754a820cbdf0e1409 100644 (file)
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: ecpg (PostgreSQL) 11\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2019-05-15 17:57+0800\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:08+0000\n"
 "PO-Revision-Date: 2019-05-16 17:21+0800\n"
 "Last-Translator: Jie Zhang <zhangjie2@cn.fujitsu.com>\n"
 "Language-Team: Chinese (Simplified) <zhangjie2@cn.fujitsu.com>\n"
@@ -53,7 +53,7 @@ msgstr "没有使用描述符成员\"%s\"."
 msgid "descriptor item \"%s\" cannot be set"
 msgstr "无法设置描述符成员 \"%s\""
 
-#: ecpg.c:35
+#: ecpg.c:36
 #, c-format
 msgid ""
 "%s is the PostgreSQL embedded SQL preprocessor for C programs.\n"
@@ -62,7 +62,7 @@ msgstr ""
 "%s是用于C语言程序的PostgreSQL嵌入式SQL预处理器.\n"
 "\n"
 
-#: ecpg.c:37
+#: ecpg.c:38
 #, c-format
 msgid ""
 "Usage:\n"
@@ -73,12 +73,12 @@ msgstr ""
 "  %s [OPTION]... FILE...\n"
 "\n"
 
-#: ecpg.c:40
+#: ecpg.c:41
 #, c-format
 msgid "Options:\n"
 msgstr "选项:\n"
 
-#: ecpg.c:41
+#: ecpg.c:42
 #, c-format
 msgid ""
 "  -c             automatically generate C code from embedded SQL code;\n"
@@ -87,7 +87,7 @@ msgstr ""
 "-c              从嵌入式SQL代码中自动产生C代码;\n"
 "                 这将影响EXEC SQL TYPE\n"
 
-#: ecpg.c:43
+#: ecpg.c:44
 #, c-format
 msgid ""
 "  -C MODE        set compatibility mode; MODE can be one of\n"
@@ -96,37 +96,37 @@ msgstr ""
 "  -C MODE        设置兼容模式;MODE可以是下列模式之一\n"
 "                 \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n"
 
-#: ecpg.c:46
+#: ecpg.c:47
 #, c-format
 msgid "  -d             generate parser debug output\n"
 msgstr "  -d             产生解析器的调试输出\n"
 
-#: ecpg.c:48
+#: ecpg.c:49
 #, c-format
 msgid "  -D SYMBOL      define SYMBOL\n"
 msgstr "  -D SYMBOL      定义SYMBOL\n"
 
-#: ecpg.c:49
+#: ecpg.c:50
 #, c-format
 msgid "  -h             parse a header file, this option includes option \"-c\"\n"
 msgstr "  -h             分析一个头文件,这个选项包含选项\"-c\"\n"
 
-#: ecpg.c:50
+#: ecpg.c:51
 #, c-format
 msgid "  -i             parse system include files as well\n"
 msgstr "  -i             分析系统引用文件\n"
 
-#: ecpg.c:51
+#: ecpg.c:52
 #, c-format
 msgid "  -I DIRECTORY   search DIRECTORY for include files\n"
 msgstr "  -I DIRECTORY   为引用文件搜索变量DIRECTORY\n"
 
-#: ecpg.c:52
+#: ecpg.c:53
 #, c-format
 msgid "  -o OUTFILE     write result to OUTFILE\n"
 msgstr "  -o OUTFILE     将结果写入到OUTFILE\n"
 
-#: ecpg.c:53
+#: ecpg.c:54
 #, c-format
 msgid ""
 "  -r OPTION      specify run-time behavior; OPTION can be:\n"
@@ -135,27 +135,27 @@ msgstr ""
 "  -r OPTION      指定运行时的系统行为; OPTION可以是:\n"
 "                 \"no_indicator\", \"prepare\", \"questionmarks\"\n"
 
-#: ecpg.c:55
+#: ecpg.c:56
 #, c-format
 msgid "  --regression   run in regression testing mode\n"
 msgstr "  --regression   在回归测试模式下运行\n"
 
-#: ecpg.c:56
+#: ecpg.c:57
 #, c-format
 msgid "  -t             turn on autocommit of transactions\n"
 msgstr " -t              打开事务的自动提交功能\n"
 
-#: ecpg.c:57
+#: ecpg.c:58
 #, c-format
 msgid "  -V, --version  output version information, then exit\n"
 msgstr "  -V, --version  输出版本信息,然后退出\n"
 
-#: ecpg.c:58
+#: ecpg.c:59
 #, c-format
 msgid "  -?, --help     show this help, then exit\n"
 msgstr "  -?, --help     显示帮助信息,然后退出\n"
 
-#: ecpg.c:59
+#: ecpg.c:60
 #, c-format
 msgid ""
 "\n"
@@ -166,161 +166,170 @@ msgstr ""
 "如果没有指定输出文件,那么输出文件名将由输入文件名(如果有后缀,那么去掉.pgc)\n"
 "加上.c的后缀名组成.\n"
 
-#: ecpg.c:61
-#, c-format
+#: ecpg.c:62
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgid ""
 "\n"
-"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+"Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgstr ""
 "\n"
 "错误报告至 <pgsql-bugs@postgresql.org>.\n"
 
-#: ecpg.c:139
+#: ecpg.c:182
 #, c-format
 msgid "%s: could not locate my own executable path\n"
 msgstr "%s: 找不到我的可执行文件路径\n"
 
-#: ecpg.c:174 ecpg.c:331 ecpg.c:342
+#: ecpg.c:217 ecpg.c:374 ecpg.c:385
 #, c-format
 msgid "%s: could not open file \"%s\": %s\n"
 msgstr "%s: 无法打开文件 \"%s\": %s\n"
 
-#: ecpg.c:217 ecpg.c:230 ecpg.c:246 ecpg.c:272
+#: ecpg.c:260 ecpg.c:273 ecpg.c:289 ecpg.c:315
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: ecpg.c:241
+#: ecpg.c:284
 #, c-format
 msgid "%s: parser debug support (-d) not available\n"
 msgstr "%s: 解析器跟踪调试支持(-d)无效\n"
 
-#: ecpg.c:260
+#: ecpg.c:303
 #, c-format
 msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n"
 msgstr "%s, PostgreSQL嵌入式C语言预处理器, 版本%s\n"
 
-#: ecpg.c:262
+#: ecpg.c:305
 #, c-format
 msgid "EXEC SQL INCLUDE ... search starts here:\n"
 msgstr "EXEC SQL INCLUDE ... 从这里开始搜索:\n"
 
-#: ecpg.c:265
+#: ecpg.c:308
 #, c-format
 msgid "end of search list\n"
 msgstr "搜索列表的结束部分\n"
 
-#: ecpg.c:271
+#: ecpg.c:314
 #, c-format
 msgid "%s: no input files specified\n"
 msgstr "%s: 没有指定输入文件\n"
 
-#: ecpg.c:465
+#: ecpg.c:497
 #, c-format
 msgid "cursor \"%s\" has been declared but not opened"
 msgstr "已经声明了游标\"%s\",但是没有打开"
 
-#: ecpg.c:478 preproc.y:127
+#: ecpg.c:510 preproc.y:129
 #, c-format
 msgid "could not remove output file \"%s\"\n"
 msgstr "无法删除输出文件 \"%s\"\n"
 
-#: pgc.l:444
+#: pgc.l:472
 #, c-format
 msgid "unterminated /* comment"
 msgstr "/* 注释没有结束"
 
-#: pgc.l:457
+#: pgc.l:490
 #, c-format
 msgid "invalid bit string literal"
 msgstr "无效的bit字符串常量"
 
-#: pgc.l:466
+#: pgc.l:502
 #, c-format
 msgid "unterminated bit string literal"
 msgstr "未结束的bit字符串常量"
 
-#: pgc.l:482
+#: pgc.l:518
 #, c-format
 msgid "unterminated hexadecimal string literal"
 msgstr "未结束的16进制字符串常量"
 
-#: pgc.l:560
+#: pgc.l:614 pgc.l:718
 #, c-format
 msgid "unterminated quoted string"
 msgstr "未结束的引用字符串"
 
-#: pgc.l:618 pgc.l:631
+#: pgc.l:665
+#, c-format
+msgid "unterminated dollar-quoted string"
+msgstr "未结束的用$符号引用的字符串"
+
+#: pgc.l:684 pgc.l:697
 #, c-format
 msgid "zero-length delimited identifier"
 msgstr "长度为0的分隔标识符"
 
-#: pgc.l:639
+#: pgc.l:709
 #, c-format
 msgid "unterminated quoted identifier"
 msgstr "未结束的引用标识符"
 
-#: pgc.l:921
+#: pgc.l:1040
 #, c-format
 msgid "nested /* ... */ comments"
 msgstr "有嵌套注释/*...*/"
 
-#: pgc.l:1014
+#: pgc.l:1133
 #, c-format
 msgid "missing identifier in EXEC SQL UNDEF command"
 msgstr "在EXEC SQL UNDEF命令中丢失标识符"
 
-#: pgc.l:1060 pgc.l:1074
+#: pgc.l:1179 pgc.l:1193
 #, c-format
 msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
 msgstr "丢失匹配 \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""
 
-#: pgc.l:1063 pgc.l:1076 pgc.l:1252
+#: pgc.l:1182 pgc.l:1195 pgc.l:1373
 #, c-format
 msgid "missing \"EXEC SQL ENDIF;\""
 msgstr "\"EXEC SQL ENDIF;\"丢失"
 
-#: pgc.l:1092 pgc.l:1111
+#: pgc.l:1211 pgc.l:1230
 #, c-format
 msgid "more than one EXEC SQL ELSE"
 msgstr "多个EXEC SQL ELSE"
 
-#: pgc.l:1133 pgc.l:1147
+#: pgc.l:1252 pgc.l:1266
 #, c-format
 msgid "unmatched EXEC SQL ENDIF"
 msgstr "EXEC SQL ENDIF不匹配"
 
-#: pgc.l:1167
+#: pgc.l:1286
 #, c-format
 msgid "too many nested EXEC SQL IFDEF conditions"
 msgstr "嵌套EXEC SQL IFDEF条件太多"
 
-#: pgc.l:1200
+#: pgc.l:1321
 #, c-format
 msgid "missing identifier in EXEC SQL IFDEF command"
 msgstr "在EXEC SQL IFDEF命令中丢失标识符"
 
-#: pgc.l:1209
+#: pgc.l:1330
 #, c-format
 msgid "missing identifier in EXEC SQL DEFINE command"
 msgstr "在EXEC SQL DEFINE命令中丢失标识符"
 
-#: pgc.l:1242
+#: pgc.l:1363
 #, c-format
 msgid "syntax error in EXEC SQL INCLUDE command"
 msgstr "在EXEC SQL INCLUDE命令中出现语法错误"
 
-#: pgc.l:1291
-#, c-format
-msgid "internal error: unreachable state; please report this to <pgsql-bugs@postgresql.org>"
+#: pgc.l:1413
+#, fuzzy, c-format
+#| msgid "internal error: unreachable state; please report this to <pgsql-bugs@postgresql.org>"
+msgid "internal error: unreachable state; please report this to <pgsql-bugs@lists.postgresql.org>"
 msgstr "内部错误:不可到达的状态;请向<pgsql-bugs@postgresql.org>发送报告"
 
-#: pgc.l:1420
+#: pgc.l:1564
 #, c-format
 msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n"
 msgstr "错误:在第%3$d行上包含路径\"%1$s/%2$s\"太长,跳过\n"
 
-#: pgc.l:1443
+#: pgc.l:1587
 #, c-format
 msgid "could not open include file \"%s\" on line %d"
 msgstr "在第%2$d行无法打开应用文件\"%1$s\""
@@ -329,210 +338,216 @@ msgstr "在第%2$d行无法打开应用文件\"%1$s\""
 msgid "syntax error"
 msgstr "语法错误"
 
-#: preproc.y:81
+#: preproc.y:83
 #, c-format
 msgid "WARNING: "
 msgstr "警告:"
 
-#: preproc.y:84
+#: preproc.y:86
 #, c-format
 msgid "ERROR: "
 msgstr "错误:"
 
-#: preproc.y:508
+#: preproc.y:510
 #, c-format
 msgid "cursor \"%s\" does not exist"
 msgstr "游标 \"%s\" 不存在"
 
-#: preproc.y:537
+#: preproc.y:539
 #, c-format
 msgid "initializer not allowed in type definition"
 msgstr "在类型定义中不允许进行初始化"
 
-#: preproc.y:539
+#: preproc.y:541
 #, c-format
 msgid "type name \"string\" is reserved in Informix mode"
 msgstr "在Informix模式中类型名称\"string\" 是被保留的"
 
-#: preproc.y:546 preproc.y:15769
+#: preproc.y:548 preproc.y:15877
 #, c-format
 msgid "type \"%s\" is already defined"
 msgstr "已定义类型\"%s\" "
 
-#: preproc.y:570 preproc.y:16427 preproc.y:16752 variable.c:620
+#: preproc.y:573 preproc.y:16548 preproc.y:16873 variable.c:621
 #, c-format
 msgid "multidimensional arrays for simple data types are not supported"
 msgstr "不支持针对简单数据类型的多维数组"
 
-#: preproc.y:1694
-#, c-format
-msgid "AT option not allowed in CLOSE DATABASE statement"
-msgstr "在CLOSE DATABASE语句中不允许使用AT选项"
-
-#: preproc.y:1903
+#: preproc.y:1938
 #, c-format
 msgid "AT option not allowed in CONNECT statement"
 msgstr "在CONNECT语句中不允许使用AT选项"
 
-#: preproc.y:1937
+#: preproc.y:1976
 #, c-format
 msgid "AT option not allowed in DISCONNECT statement"
 msgstr "在DISCONNECT语句中不允许使用AT选项"
 
-#: preproc.y:1992
+#: preproc.y:2038
 #, c-format
 msgid "AT option not allowed in SET CONNECTION statement"
 msgstr "在SET CONNECTION语句中不允许使用AT选项"
 
-#: preproc.y:2014
+#: preproc.y:2060
 #, c-format
 msgid "AT option not allowed in TYPE statement"
 msgstr "在TYPE语句中不允许使用AT选项"
 
-#: preproc.y:2023
+#: preproc.y:2069
 #, c-format
 msgid "AT option not allowed in VAR statement"
 msgstr "在VAR语句中不允许使用AT选项"
 
-#: preproc.y:2030
+#: preproc.y:2076
 #, c-format
 msgid "AT option not allowed in WHENEVER statement"
 msgstr "在WHENEVER语句中不允许使用AT选项"
 
-#: preproc.y:2107 preproc.y:2279 preproc.y:2284 preproc.y:2407 preproc.y:4052
-#: preproc.y:5622 preproc.y:5631 preproc.y:5931 preproc.y:7537 preproc.y:9030
-#: preproc.y:9035 preproc.y:11830
+#: preproc.y:2153 preproc.y:2325 preproc.y:2330 preproc.y:2453 preproc.y:4046
+#: preproc.y:5635 preproc.y:5935 preproc.y:7563 preproc.y:9075 preproc.y:9080
+#: preproc.y:11880
 #, c-format
 msgid "unsupported feature will be passed to server"
 msgstr "不支持的功能特性将会传递给服务器"
 
-#: preproc.y:2665
+#: preproc.y:2711
 #, c-format
 msgid "SHOW ALL is not implemented"
 msgstr "没有使用SHOW ALL"
 
-#: preproc.y:3393
+#: preproc.y:3369
+#, c-format
+msgid "AT option not allowed in CLOSE DATABASE statement"
+msgstr "在CLOSE DATABASE语句中不允许使用AT选项"
+
+#: preproc.y:3394
 #, c-format
 msgid "COPY FROM STDIN is not implemented"
 msgstr "不能进行COPY FROM STDIN的操作"
 
-#: preproc.y:9987 preproc.y:15358
+#: preproc.y:10026 preproc.y:15460
 #, c-format
 msgid "using variable \"%s\" in different declare statements is not supported"
 msgstr "不支持在不同的声明语句中使用变量\"%s\""
 
-#: preproc.y:9989 preproc.y:15360
+#: preproc.y:10028 preproc.y:15462
 #, c-format
 msgid "cursor \"%s\" is already defined"
 msgstr "已经定义了游标\"%s\""
 
-#: preproc.y:10419
+#: preproc.y:10469
 #, c-format
 msgid "no longer supported LIMIT #,# syntax passed to server"
 msgstr "不再支持将LIMIT #,#语法传递给服务器"
 
-#: preproc.y:10744 preproc.y:10751
+#: preproc.y:10794 preproc.y:10801
 #, c-format
 msgid "subquery in FROM must have an alias"
 msgstr "FROM 中的子查询必须有一个别名"
 
-#: preproc.y:15081 preproc.y:15088
+#: preproc.y:15151 preproc.y:15158
 #, c-format
 msgid "CREATE TABLE AS cannot specify INTO"
 msgstr "在CREATE TABLE AS语句中不能指定INTO子句"
 
-#: preproc.y:15124
+#: preproc.y:15194
 #, c-format
 msgid "expected \"@\", found \"%s\""
 msgstr "期望 \"@\", 但是找到了\"%s\""
 
-#: preproc.y:15136
+#: preproc.y:15206
 #, c-format
 msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported"
 msgstr "只支持协议\"tcp\"和 \"unix\"以及数据库类型 \"postgresql\""
 
-#: preproc.y:15139
+#: preproc.y:15209
 #, c-format
 msgid "expected \"://\", found \"%s\""
 msgstr "期望得到 \"://\",但是找到了\"%s\""
 
-#: preproc.y:15144
+#: preproc.y:15214
 #, c-format
 msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\""
 msgstr "Unix-域的sockets只能在\"localhost\"上运行,而不能在\"%s\"上运行"
 
-#: preproc.y:15170
+#: preproc.y:15240
 #, c-format
 msgid "expected \"postgresql\", found \"%s\""
 msgstr "期望\"postgresql\", 但是只找到了\"%s\""
 
-#: preproc.y:15173
+#: preproc.y:15243
 #, c-format
 msgid "invalid connection type: %s"
 msgstr "无效的连接类型: %s"
 
-#: preproc.y:15182
+#: preproc.y:15252
 #, c-format
 msgid "expected \"@\" or \"://\", found \"%s\""
 msgstr "期望\"@\"或\"://\",但是只找到了\"%s\""
 
-#: preproc.y:15257 preproc.y:15275
+#: preproc.y:15327 preproc.y:15345
 #, c-format
 msgid "invalid data type"
 msgstr "无效数据类型"
 
-#: preproc.y:15286 preproc.y:15303
+#: preproc.y:15356 preproc.y:15373
 #, c-format
 msgid "incomplete statement"
 msgstr "未结束的语句"
 
-#: preproc.y:15289 preproc.y:15306
+#: preproc.y:15359 preproc.y:15376
 #, c-format
 msgid "unrecognized token \"%s\""
 msgstr "无法识别的符号\"%s\""
 
-#: preproc.y:15580
+#: preproc.y:15422
+#, fuzzy, c-format
+#| msgid "cursor \"%s\" is already defined"
+msgid "declared name %s is already defined"
+msgstr "已经定义了游标\"%s\""
+
+#: preproc.y:15680
 #, c-format
 msgid "only data types numeric and decimal have precision/scale argument"
 msgstr "只有数据类型numeric和decimal有精度/范围参数"
 
-#: preproc.y:15592
+#: preproc.y:15692
 #, c-format
 msgid "interval specification not allowed here"
 msgstr "在这里不允许使用间隔定义"
 
-#: preproc.y:15744 preproc.y:15796
+#: preproc.y:15852 preproc.y:15904
 #, c-format
 msgid "too many levels in nested structure/union definition"
 msgstr "在嵌套结构/联合定义中存在太多的层次"
 
-#: preproc.y:15935
+#: preproc.y:16055
 #, c-format
 msgid "pointers to varchar are not implemented"
 msgstr "没有实现指向varchar类型值的指针"
 
-#: preproc.y:16122 preproc.y:16147
+#: preproc.y:16242 preproc.y:16267
 #, c-format
 msgid "using unsupported DESCRIBE statement"
 msgstr "使用不支持的DESCRIBE语句"
 
-#: preproc.y:16394
+#: preproc.y:16514
 #, c-format
 msgid "initializer not allowed in EXEC SQL VAR command"
 msgstr "在EXEC SQL VAR命令中不允许初始化"
 
-#: preproc.y:16710
+#: preproc.y:16831
 #, c-format
 msgid "arrays of indicators are not allowed on input"
 msgstr "在输入上不允许使用标识数组"
 
-#: preproc.y:16931
+#: preproc.y:17052
 #, c-format
 msgid "operator not allowed in variable definition"
 msgstr "操作符不允许出现在变量定义当中"
 
 #. translator: %s is typically the translation of "syntax error"
-#: preproc.y:16972
+#: preproc.y:17093
 #, c-format
 msgid "%s at or near \"%s\""
 msgstr "%s 在 \"%s\" 或附近的"
@@ -542,62 +557,62 @@ msgstr "%s 在 \"%s\" 或附近的"
 msgid "out of memory"
 msgstr "内存用尽"
 
-#: type.c:212 type.c:676
+#: type.c:214 type.c:685
 #, c-format
 msgid "unrecognized variable type code %d"
 msgstr "无法识别的变量类型代码%d"
 
-#: type.c:261
+#: type.c:263
 #, c-format
 msgid "variable \"%s\" is hidden by a local variable of a different type"
 msgstr "变量\"%s\"是由一个不同类型的局部变量隐藏的"
 
-#: type.c:263
+#: type.c:265
 #, c-format
 msgid "variable \"%s\" is hidden by a local variable"
 msgstr "变量\"%s\"是由一个局部变量隐藏的"
 
-#: type.c:275
+#: type.c:277
 #, c-format
 msgid "indicator variable \"%s\" is hidden by a local variable of a different type"
 msgstr "标记变量(indicator variable)\"%s\"是由一个不同类型的局部变量隐藏的。"
 
-#: type.c:277
+#: type.c:279
 #, c-format
 msgid "indicator variable \"%s\" is hidden by a local variable"
 msgstr "标记变量(indicator variable)\"%s\"是由一个局部变量隐藏的"
 
-#: type.c:285
+#: type.c:287
 #, c-format
 msgid "indicator for array/pointer has to be array/pointer"
 msgstr "对于数组/指针的记号必须是array/pointer"
 
-#: type.c:289
+#: type.c:291
 #, c-format
 msgid "nested arrays are not supported (except strings)"
 msgstr "不支持嵌套数组(除了字符串外)"
 
-#: type.c:331
+#: type.c:333
 #, c-format
 msgid "indicator for struct has to be a struct"
 msgstr "结构的记号必须是struct"
 
-#: type.c:351 type.c:372 type.c:392
+#: type.c:353 type.c:374 type.c:394
 #, c-format
 msgid "indicator for simple data type has to be simple"
 msgstr "对简单数据类型的指标要简单 "
 
-#: type.c:616
+#: type.c:625
 #, c-format
 msgid "indicator struct \"%s\" has too few members"
 msgstr "结构\"%s\"的记号的成员太少"
 
-#: type.c:624
+#: type.c:633
 #, c-format
 msgid "indicator struct \"%s\" has too many members"
 msgstr "结构\"%s\"的记号成员太多"
 
-#: type.c:735
+#: type.c:744
 #, c-format
 msgid "unrecognized descriptor item code %d"
 msgstr "无法识别的描述符成员代码 %d"
@@ -662,4 +677,3 @@ msgstr "对于这种数据类型不支持指向指针的指针"
 #, c-format
 msgid "multidimensional arrays for structures are not supported"
 msgstr "不支持结构类型的多维数组"
-
index 73f698b45cb5e8f400c93ac4c269fbedd9d28a29..403b3e6589592e813f712e2d1441300b6bc1f46a 100644 (file)
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: ecpglib (PostgreSQL 9.0)\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-01-29 13:40+0000\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:08+0000\n"
 "PO-Revision-Date: 2013-09-03 23:28-0400\n"
 "Last-Translator: Weibin <ssmei_2000@yahoo.com>\n"
 "Language-Team: Chinese (Simplified)\n"
@@ -16,158 +16,191 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: connect.c:231
+#: connect.c:237
 msgid "empty message text"
 msgstr "消息文本为空"
 
-#: connect.c:384 connect.c:413 connect.c:618
+#: connect.c:403 connect.c:432 connect.c:640
 msgid "<DEFAULT>"
 msgstr "<DEFAULT>"
 
-#: descriptor.c:807 misc.c:113
+#: descriptor.c:887 misc.c:120
 msgid "NULL"
 msgstr "NULL"
 
-#: error.c:29
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:33
 #, c-format
 msgid "no data found on line %d"
 msgstr "在第%d行上没有找到数据"
 
-#: error.c:39
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:40
 #, c-format
 msgid "out of memory on line %d"
 msgstr "在第%d行上内存用尽"
 
-#: error.c:49
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:47
 #, c-format
 msgid "unsupported type \"%s\" on line %d"
 msgstr "在第%2$d上出现不支持的类型\"%1$s\""
 
-#: error.c:59
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:54
 #, c-format
 msgid "too many arguments on line %d"
 msgstr "在第%d行上的参数多于指定的数量"
 
-#: error.c:69
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:61
 #, c-format
 msgid "too few arguments on line %d"
 msgstr "在第%d行上的参数少于指定的数量"
 
-#: error.c:79
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:68
 #, c-format
 msgid "invalid input syntax for type int: \"%s\", on line %d"
 msgstr "对于整数类型的输入语法无效: \"%s\" ,在第%d行"
 
-#: error.c:89
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:75
 #, c-format
 msgid "invalid input syntax for type unsigned int: \"%s\", on line %d"
 msgstr "对于无符号整数类型的输入语法无效: \"%s\" 在第%d行"
 
-#: error.c:99
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:82
 #, c-format
 msgid "invalid input syntax for floating-point type: \"%s\", on line %d"
 msgstr "对于浮点类型的输入语法无效: \"%s\",在第%d行"
 
-#: error.c:110
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:90
 #, c-format
 msgid "invalid syntax for type boolean: \"%s\", on line %d"
 msgstr "对于布尔类型语法无效: \"%s\",在第%d行上"
 
-#: error.c:118
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:95
 #, c-format
 msgid "could not convert boolean value: size mismatch, on line %d"
 msgstr "在第%d行上无法转换布尔类型值: 大小不匹配"
 
-#: error.c:128
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:102
 #, c-format
 msgid "empty query on line %d"
 msgstr "在第%d行上查询是空的"
 
-#: error.c:138
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:109
 #, c-format
 msgid "null value without indicator on line %d"
 msgstr "在第%d行上的空值没有标志"
 
-#: error.c:148
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:116
 #, c-format
 msgid "variable does not have an array type on line %d"
 msgstr "在第%d行上的变量没有数组类型"
 
-#: error.c:158
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:123
 #, c-format
 msgid "data read from server is not an array on line %d"
 msgstr "在第%d行上从服务器读取的数据不是数组"
 
-#: error.c:168
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:130
 #, c-format
 msgid "inserting an array of variables is not supported on line %d"
 msgstr "在第%d行上不支持正在插入一个的变量数组"
 
-#: error.c:178
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:137
 #, c-format
 msgid "connection \"%s\" does not exist on line %d"
 msgstr "在第%2$d行上连接\"%1$s\"不存在"
 
-#: error.c:188
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:144
 #, c-format
 msgid "not connected to connection \"%s\" on line %d"
 msgstr "在第%2$d行上没有连接到\"%1$s\"连接"
 
-#: error.c:198
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:151
 #, c-format
 msgid "invalid statement name \"%s\" on line %d"
 msgstr "在第%2$d行上的语句名称\"%1$s\"无效"
 
-#: error.c:208
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:158
 #, c-format
 msgid "descriptor \"%s\" not found on line %d"
 msgstr "在第%2$d行上没有找到描述符\"%1$s\""
 
-#: error.c:218
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:165
 #, c-format
 msgid "descriptor index out of range on line %d"
 msgstr "在第%d行上的描述符索引超出范围"
 
-#: error.c:228
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:172
 #, c-format
 msgid "unrecognized descriptor item \"%s\" on line %d"
 msgstr "在第%2$d行上出现无法识别的描述符成员\"%1$s\""
 
-#: error.c:238
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:179
 #, c-format
 msgid "variable does not have a numeric type on line %d"
 msgstr "在第%d上的变量没有数值类型"
 
-#: error.c:248
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:186
 #, c-format
 msgid "variable does not have a character type on line %d"
 msgstr "在第%d行上的变量没有字符类型"
 
-#: error.c:258
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:193
 #, c-format
 msgid "error in transaction processing on line %d"
 msgstr "在第%d行上的事务处理中发生错误"
 
-#: error.c:268
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:200
 #, c-format
 msgid "could not connect to database \"%s\" on line %d"
 msgstr "在第%2$d行上无法连接数据库\"%1$s\""
 
-#: error.c:278
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:207
+#, fuzzy, c-format
+#| msgid "SQL error %d on line %d"
+msgid "The cursor is invalid on line %d"
+msgstr "在第%2$d行上的SQL命令发生错误 代码%1$d"
+
+#. translator: this string will be truncated at 149 characters expanded.
+#: error.c:214
 #, c-format
 msgid "SQL error %d on line %d"
 msgstr "在第%2$d行上的SQL命令发生错误 代码%1$d"
 
 # common.c:298
-#: error.c:318
+#: error.c:261
 msgid "the connection to the server was lost"
 msgstr "与服务器的连接丢失"
 
-#: error.c:405
+#: error.c:354
 #, c-format
 msgid "SQL error: %s\n"
 msgstr "SQL语句错误: %s\n"
 
-#: execute.c:1921
+#: execute.c:2187 execute.c:2194
 msgid "<empty>"
 msgstr "<空>"
index 3c131633dc68ccc271463fdf4dfc06925f6656b9..3b3d16ce1a4fcba3abbe5288747ffd18faf5f9cf 100644 (file)
@@ -5,8 +5,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: initdb (PostgreSQL 9.0)\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2016-04-18 04:44+0000\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:14+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) <ywpeng@whu.edu.cn>\n"
@@ -16,43 +16,66 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: ../../common/exec.c:127 ../../common/exec.c:241 ../../common/exec.c:284
+#: ../../../src/common/logging.c:188
 #, c-format
-msgid "could not identify current directory: %s"
+msgid "fatal: "
+msgstr ""
+
+#: ../../../src/common/logging.c:195
+#, c-format
+msgid "error: "
+msgstr ""
+
+#: ../../../src/common/logging.c:202
+#, c-format
+msgid "warning: "
+msgstr ""
+
+#: ../../common/exec.c:138 ../../common/exec.c:255 ../../common/exec.c:301
+#, fuzzy, c-format
+#| msgid "could not identify current directory: %s"
+msgid "could not identify current directory: %m"
 msgstr "无法确认当前目录: %s"
 
 # command.c:122
-#: ../../common/exec.c:146
+#: ../../common/exec.c:157
 #, c-format
 msgid "invalid binary \"%s\""
 msgstr "无效的二进制码 \"%s\""
 
 # command.c:1103
-#: ../../common/exec.c:195
+#: ../../common/exec.c:207
 #, c-format
 msgid "could not read binary \"%s\""
 msgstr "无法读取二进制码 \"%s\""
 
-#: ../../common/exec.c:202
+#: ../../common/exec.c:215
 #, c-format
 msgid "could not find a \"%s\" to execute"
 msgstr "未能找到一个 \"%s\" 来执行"
 
-#: ../../common/exec.c:257 ../../common/exec.c:293
+#: ../../common/exec.c:271 ../../common/exec.c:310
 #, c-format
-msgid "could not change directory to \"%s\": %s"
-msgstr "无法跳转到目录 \"%s\" 中: %s"
+msgid "could not change directory to \"%s\": %m"
+msgstr "无法跳转到目录 \"%s\" 中: %m"
 
-#: ../../common/exec.c:272
+#: ../../common/exec.c:288
 #, c-format
-msgid "could not read symbolic link \"%s\""
-msgstr "无法读取符号链结 \"%s\""
+msgid "could not read symbolic link \"%s\": %m"
+msgstr "无法读取符号链接 \"%s\": %m"
 
-#: ../../common/exec.c:523
-#, c-format
-msgid "pclose failed: %s"
+#: ../../common/exec.c:541
+#, fuzzy, c-format
+#| msgid "pclose failed: %s"
+msgid "pclose failed: %m"
 msgstr "pclose调用失败: %s"
 
+#: ../../common/exec.c:670 ../../common/exec.c:715 ../../common/exec.c:807
+#: initdb.c:339
+#, c-format
+msgid "out of memory"
+msgstr "内存用尽"
+
 #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75
 #: ../../common/fe_memutils.c:98
 #, c-format
@@ -65,111 +88,137 @@ msgstr "内存溢出\n"
 msgid "cannot duplicate null pointer (internal error)\n"
 msgstr "无法复制空指针 (内部错误)\n"
 
-#: ../../common/pgfnames.c:45
+#: ../../common/file_utils.c:81 ../../common/file_utils.c:183
 #, c-format
-msgid "could not open directory \"%s\": %s\n"
-msgstr "无法打开目录 \"%s\": %s\n"
+msgid "could not stat file \"%s\": %m"
+msgstr "无法取文件 \"%s\" 的状态: %m"
 
-#: ../../common/pgfnames.c:72
+#: ../../common/file_utils.c:160 ../../common/pgfnames.c:48
 #, c-format
-msgid "could not read directory \"%s\": %s\n"
-msgstr "无法读取目录 \"%s\": %s\n"
+msgid "could not open directory \"%s\": %m"
+msgstr "无法打开目录 \"%s\": %m"
 
-#: ../../common/pgfnames.c:84
+#: ../../common/file_utils.c:194 ../../common/pgfnames.c:69
 #, c-format
-msgid "could not close directory \"%s\": %s\n"
-msgstr "无法关闭目录 \"%s\": %s\n"
+msgid "could not read directory \"%s\": %m"
+msgstr "无法读取目录 \"%s\": %m"
 
-#: ../../common/restricted_token.c:68
+#: ../../common/file_utils.c:226 ../../common/file_utils.c:285
+#: ../../common/file_utils.c:359
 #, c-format
-msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
-msgstr "%s: WARNING: 无法为该平台创建受限制的令牌\n"
+msgid "could not open file \"%s\": %m"
+msgstr "无法打开文件 \"%s\": %m"
 
-#: ../../common/restricted_token.c:77
+#: ../../common/file_utils.c:297 ../../common/file_utils.c:367
 #, c-format
-msgid "%s: could not open process token: error code %lu\n"
-msgstr "%s:无法打开进程令牌 (token): 错误码 %lu\n"
+msgid "could not fsync file \"%s\": %m"
+msgstr "无法 fsync 文件 \"%s\": %m"
 
-#: ../../common/restricted_token.c:90
+#: ../../common/file_utils.c:377
 #, c-format
-msgid "%s: could not allocate SIDs: error code %lu\n"
+msgid "could not rename file \"%s\" to \"%s\": %m"
+msgstr "无法把文件 \"%s\" 重命名为 \"%s\": %m"
+
+#: ../../common/pgfnames.c:74
+#, fuzzy, c-format
+#| msgid "could not close directory \"%s\": %s\n"
+msgid "could not close directory \"%s\": %m"
+msgstr "无法关闭目录 \"%s\": %s\n"
+
+#: ../../common/restricted_token.c:69
+#, fuzzy, c-format
+#| msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
+msgid "cannot create restricted tokens on this platform"
+msgstr "%s: WARNING: 无法为该平台创建受限制的令牌\n"
+
+#: ../../common/restricted_token.c:78
+#, fuzzy, c-format
+#| msgid "%s: could not open process token: error code %lu\n"
+msgid "could not open process token: error code %lu"
+msgstr "%s:无法打开进程令牌 (token): 错误码 %lu\n"
+
+#: ../../common/restricted_token.c:91
+#, fuzzy, c-format
+#| msgid "%s: could not allocate SIDs: error code %lu\n"
+msgid "could not allocate SIDs: error code %lu"
 msgstr "%s: 无法分配SID: 错误码 %lu\n"
 
 #: ../../common/restricted_token.c:110
-#, c-format
-msgid "%s: could not create restricted token: error code %lu\n"
+#, fuzzy, c-format
+#| msgid "%s: could not create restricted token: error code %lu\n"
+msgid "could not create restricted token: error code %lu"
 msgstr "%s: 无法创建受限令牌: 错误码为 %lu\n"
 
-#: ../../common/restricted_token.c:132
-#, c-format
-msgid "%s: could not start process for command \"%s\": error code %lu\n"
+#: ../../common/restricted_token.c:131
+#, fuzzy, c-format
+#| msgid "%s: could not start process for command \"%s\": error code %lu\n"
+msgid "could not start process for command \"%s\": error code %lu"
 msgstr "%s: 无法为命令 \"%s\"创建进程: 错误码 %lu\n"
 
-#: ../../common/restricted_token.c:170
-#, c-format
-msgid "%s: could not re-execute with restricted token: error code %lu\n"
+#: ../../common/restricted_token.c:169
+#, fuzzy, c-format
+#| msgid "%s: could not re-execute with restricted token: error code %lu\n"
+msgid "could not re-execute with restricted token: error code %lu"
 msgstr "%s: 无法使用受限令牌再次执行: 错误码 %lu\n"
 
-#: ../../common/restricted_token.c:186
-#, c-format
-msgid "%s: could not get exit code from subprocess: error code %lu\n"
+#: ../../common/restricted_token.c:185
+#, fuzzy, c-format
+#| msgid "%s: could not get exit code from subprocess: error code %lu\n"
+msgid "could not get exit code from subprocess: error code %lu"
 msgstr "%s: 无法从子进程得到退出码: 错误码 %lu\n"
 
-#: ../../common/rmtree.c:77
+#: ../../common/rmtree.c:79
 #, c-format
-msgid "could not stat file or directory \"%s\": %s\n"
-msgstr "无法获取文件或目录 \"%s\"的状态: %s\n"
+msgid "could not stat file or directory \"%s\": %m"
+msgstr "无法统计文件或目录\"%s\": %m"
 
-#: ../../common/rmtree.c:104 ../../common/rmtree.c:121
-#, c-format
-msgid "could not remove file or directory \"%s\": %s\n"
+#: ../../common/rmtree.c:101 ../../common/rmtree.c:113
+#, fuzzy, c-format
+#| msgid "could not remove file or directory \"%s\": %s\n"
+msgid "could not remove file or directory \"%s\": %m"
 msgstr "无法删除文件或目录 \"%s\": %s\n"
 
-#: ../../common/username.c:45
+#: ../../common/username.c:43
 #, c-format
 msgid "could not look up effective user ID %ld: %s"
 msgstr "无法找到有效的用户ID %ld: %s"
 
-#: ../../common/username.c:47
+#: ../../common/username.c:45
 msgid "user does not exist"
 msgstr "用户不存在"
 
-#: ../../common/username.c:62
+#: ../../common/username.c:60
 #, c-format
 msgid "user name lookup failure: error code %lu"
 msgstr "用户名查找失败:错误代码%lu"
 
-#: ../../common/wait_error.c:47
+#: ../../common/wait_error.c:45
 #, c-format
 msgid "command not executable"
 msgstr "命令无法执行"
 
-#: ../../common/wait_error.c:51
+#: ../../common/wait_error.c:49
 #, c-format
 msgid "command not found"
 msgstr "命令没有找到"
 
-#: ../../common/wait_error.c:56
+#: ../../common/wait_error.c:54
 #, c-format
 msgid "child process exited with exit code %d"
 msgstr "子进程已退出, 退出码为 %d"
 
-#: ../../common/wait_error.c:63
+#: ../../common/wait_error.c:62
 #, c-format
 msgid "child process was terminated by exception 0x%X"
 msgstr "子进程被例外(exception) 0x%X 终止"
 
-#: ../../common/wait_error.c:73
-#, c-format
-msgid "child process was terminated by signal %s"
-msgstr "子进程被信号 %s 终止"
-
-#: ../../common/wait_error.c:77
-#, c-format
-msgid "child process was terminated by signal %d"
+#: ../../common/wait_error.c:66
+#, fuzzy, c-format
+#| msgid "child process was terminated by signal %d"
+msgid "child process was terminated by signal %d: %s"
 msgstr "子进程被信号 %d 终止"
 
-#: ../../common/wait_error.c:82
+#: ../../common/wait_error.c:72
 #, c-format
 msgid "child process exited with unrecognized status %d"
 msgstr "子进程已退出, 未知状态 %d"
@@ -184,110 +233,98 @@ msgstr "无法为 \"%s\"设置连接: %s\n"
 msgid "could not get junction for \"%s\": %s\n"
 msgstr "无法为\"%s\"得到连接: %s\n"
 
-#: initdb.c:349
-#, c-format
-msgid "%s: out of memory\n"
-msgstr "%s: 内存溢出\n"
-
-#: 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: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:523 initdb.c:531 initdb.c:1009 initdb.c:1036
+#: initdb.c:495 initdb.c:1534
 #, c-format
-msgid "%s: could not write file \"%s\": %s\n"
-msgstr "%s: 无法写文件 \"%s\": %s\n"
+msgid "could not open file \"%s\" for reading: %m"
+msgstr "为了读取, 无法打开文件 \"%s\": %m"
 
-#: initdb.c:562
+#: initdb.c:550 initdb.c:858 initdb.c:884
 #, c-format
-msgid "%s: could not open directory \"%s\": %s\n"
-msgstr "%s: 无法打开目录 \"%s\": %s\n"
+msgid "could not open file \"%s\" for writing: %m"
+msgstr "为了写入, 无法打开文件 \"%s\": %m"
 
-#: initdb.c:586 initdb.c:2334
+#: initdb.c:557 initdb.c:564 initdb.c:864 initdb.c:889
 #, c-format
-msgid "%s: could not stat file \"%s\": %s\n"
-msgstr "%s: 无法统计文件: \"%s\": %s\n"
+msgid "could not write file \"%s\": %m"
+msgstr "无法写入文件 \"%s\": %m"
 
-#: initdb.c:598
+#: initdb.c:582
 #, c-format
-msgid "%s: could not read directory \"%s\": %s\n"
-msgstr "%s: 无法读取目录 \"%s\": %s\n"
+msgid "could not execute command \"%s\": %m"
+msgstr "无法执行命令 \"%s\": %m"
 
-#: initdb.c:631 initdb.c:690
-#, c-format
-msgid "%s: could not open file \"%s\": %s\n"
-msgstr "%s: 无法打开文件 \"%s\": %s\n"
-
-#: initdb.c:702
-#, c-format
-msgid "%s: could not fsync file \"%s\": %s\n"
-msgstr "%s: 无法对文件 \"%s\"进行fsync同步: %s\n"
-
-#: initdb.c:721
-#, c-format
-msgid "%s: could not execute command \"%s\": %s\n"
-msgstr "%s: 无法执行命令 \"%s\": %s\n"
-
-#: initdb.c:737
-#, c-format
-msgid "%s: removing data directory \"%s\"\n"
+#: initdb.c:600
+#, fuzzy, c-format
+#| msgid "%s: removing data directory \"%s\"\n"
+msgid "removing data directory \"%s\""
 msgstr "%s: 删除数据目录 \"%s\"\n"
 
-#: initdb.c:740
-#, c-format
-msgid "%s: failed to remove data directory\n"
+#: initdb.c:602
+#, fuzzy, c-format
+#| msgid "%s: failed to remove data directory\n"
+msgid "failed to remove data directory"
 msgstr "%s: 删除数据目录失败\n"
 
-#: initdb.c:746
-#, c-format
-msgid "%s: removing contents of data directory \"%s\"\n"
+#: initdb.c:606
+#, fuzzy, c-format
+#| msgid "%s: removing contents of data directory \"%s\"\n"
+msgid "removing contents of data directory \"%s\""
 msgstr "%s: 删除数据目录 \"%s\" 的内容\n"
 
-#: initdb.c:749
-#, c-format
-msgid "%s: failed to remove contents of data directory\n"
+#: initdb.c:609
+#, fuzzy, c-format
+#| msgid "%s: failed to remove contents of data directory\n"
+msgid "failed to remove contents of data directory"
 msgstr "%s: 删除数据目录内容失败\n"
 
-#: initdb.c:755
-#, c-format
-msgid "%s: removing transaction log directory \"%s\"\n"
-msgstr "%s: 正在删除事务日志文件目录 \"%s\"\n"
-
-#: initdb.c:758
-#, c-format
-msgid "%s: failed to remove transaction log directory\n"
-msgstr "%s: 删除数据目录失败\n"
-
-#: initdb.c:764
-#, c-format
-msgid "%s: removing contents of transaction log directory \"%s\"\n"
-msgstr "%s: 删除事务日志目录 \"%s\" 的内容\n"
-
-#: initdb.c:767
-#, c-format
-msgid "%s: failed to remove contents of transaction log directory\n"
-msgstr "%s: 删除事务日志目录的内容失败\n"
-
-#: initdb.c:776
-#, c-format
-msgid "%s: data directory \"%s\" not removed at user's request\n"
+#: initdb.c:614
+#, fuzzy, c-format
+#| msgid "%s: removing WAL directory \"%s\"\n"
+msgid "removing WAL directory \"%s\""
+msgstr "%s: 删除WAL目录 \"%s\"\n"
+
+#: initdb.c:616
+#, fuzzy, c-format
+#| msgid "%s: failed to remove WAL directory\n"
+msgid "failed to remove WAL directory"
+msgstr "%s: 删除WAL目录失败\n"
+
+#: initdb.c:620
+#, fuzzy, c-format
+#| msgid "%s: removing contents of WAL directory \"%s\"\n"
+msgid "removing contents of WAL directory \"%s\""
+msgstr "%s: 删除WAL目录 \"%s\" 的内容\n"
+
+#: initdb.c:622
+#, fuzzy, c-format
+#| msgid "%s: failed to remove contents of WAL directory\n"
+msgid "failed to remove contents of WAL directory"
+msgstr "%s: 删除WAL目录内容失败\n"
+
+#: initdb.c:629
+#, fuzzy, c-format
+#| msgid "%s: data directory \"%s\" not removed at user's request\n"
+msgid "data directory \"%s\" not removed at user's request"
 msgstr "%s: 在用户的要求下数据库目录 \"%s\" 不被删除\n"
 
-#: initdb.c:781
-#, c-format
-msgid "%s: transaction log directory \"%s\" not removed at user's request\n"
-msgstr "%s: 在用户的要求下不删除事务日志目录 \"%s\"\n"
+#: initdb.c:633
+#, fuzzy, c-format
+#| msgid "%s: WAL directory \"%s\" not removed at user's request\n"
+msgid "WAL directory \"%s\" not removed at user's request"
+msgstr "%s: 在用户的要求下WAL目录 \"%s\" 不被删除\n"
 
-#: initdb.c:802
+#: initdb.c:651
 #, c-format
+msgid "cannot be run as root"
+msgstr ""
+
+#: initdb.c:653
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: cannot be run as root\n"
+#| "Please log in (using, e.g., \"su\") as the (unprivileged) user that will\n"
+#| "own the server process.\n"
 msgid ""
-"%s: cannot be run as root\n"
 "Please log in (using, e.g., \"su\") as the (unprivileged) user that will\n"
 "own the server process.\n"
 msgstr ""
@@ -295,17 +332,19 @@ msgstr ""
 "请以服务器进程所有者的用户 (无特权) 身份\n"
 "登陆 (使用, e.g., \"su\").\n"
 
-#: initdb.c:838
-#, c-format
-msgid "%s: \"%s\" is not a valid server encoding name\n"
+#: initdb.c:686
+#, fuzzy, c-format
+#| msgid "%s: \"%s\" is not a valid server encoding name\n"
+msgid "\"%s\" is not a valid server encoding name"
 msgstr "%s: \"%s\" 不是一个有效的服务器编码名字\n"
 
-#: initdb.c:958
-#, c-format
-msgid "%s: file \"%s\" does not exist\n"
+#: initdb.c:817
+#, fuzzy, c-format
+#| msgid "%s: file \"%s\" does not exist\n"
+msgid "file \"%s\" does not exist"
 msgstr "%s: 文件 \"%s\" 不存在\n"
 
-#: initdb.c:960 initdb.c:969 initdb.c:979
+#: initdb.c:819 initdb.c:826 initdb.c:835
 #, c-format
 msgid ""
 "This might mean you have a corrupted installation or identified\n"
@@ -314,144 +353,139 @@ msgstr ""
 "这意味着您的安装发生了错误或\n"
 "使用 -L 选项指定了错误的路径.\n"
 
-#: initdb.c:966
+#: initdb.c:824
 #, c-format
-msgid "%s: could not access file \"%s\": %s\n"
-msgstr "%s: 无法访问文件 \"%s\": %s\n"
+msgid "could not access file \"%s\": %m"
+msgstr "无法访问文件 \"%s\": %m"
 
-#: initdb.c:977
-#, c-format
-msgid "%s: file \"%s\" is not a regular file\n"
+#: initdb.c:833
+#, fuzzy, c-format
+#| msgid "%s: file \"%s\" is not a regular file\n"
+msgid "file \"%s\" is not a regular file"
 msgstr "%s: 文件 \"%s\" 不是常规文件\n"
 
-#: initdb.c:1122
+#: initdb.c:978
+#, c-format
+msgid "selecting dynamic shared memory implementation ... "
+msgstr "选择动态共享内存实现 ......"
+
+#: initdb.c:987
 #, c-format
 msgid "selecting default max_connections ... "
 msgstr "选择默认最大联接数 (max_connections) ... "
 
-#: initdb.c:1152
+#: initdb.c:1018
 #, c-format
 msgid "selecting default shared_buffers ... "
 msgstr "选择默认共享缓冲区大小 (shared_buffers) ... "
 
-#: initdb.c:1185
-#, c-format
-msgid "selecting dynamic shared memory implementation ... "
-msgstr "选择动态共享内存实现 ......"
+#: initdb.c:1052
+#, fuzzy, c-format
+#| msgid "selecting default max_connections ... "
+msgid "selecting default timezone ... "
+msgstr "选择默认最大联接数 (max_connections) ... "
 
-#: initdb.c:1203
+#: initdb.c:1086
 msgid "creating configuration files ... "
 msgstr "创建配置文件 ... "
 
-#: initdb.c:1300 initdb.c:1320 initdb.c:1404 initdb.c:1420
-#, c-format
-msgid "%s: could not change permissions of \"%s\": %s\n"
+#: initdb.c:1239 initdb.c:1258 initdb.c:1344 initdb.c:1359
+#, fuzzy, c-format
+#| msgid "%s: could not change permissions of \"%s\": %s\n"
+msgid "could not change permissions of \"%s\": %m"
 msgstr "%s: 无法改变\"%s\"的权限:%s\n"
 
-#: initdb.c:1444
+#: initdb.c:1381
 #, c-format
 msgid "running bootstrap script ... "
 msgstr "正在运行自举脚本 ..."
 
-#: initdb.c:1460
+#: initdb.c:1393
 #, c-format
-msgid ""
-"%s: input file \"%s\" does not belong to PostgreSQL %s\n"
-"Check your installation or specify the correct path using the option -L.\n"
+msgid "input file \"%s\" does not belong to PostgreSQL %s"
+msgstr ""
+
+#: initdb.c:1396
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: input file \"%s\" does not belong to PostgreSQL %s\n"
+#| "Check your installation or specify the correct path using the option -L.\n"
+msgid "Check your installation or specify the correct path using the option -L.\n"
 msgstr ""
 "%s: 输入文件 \"%s\" 不属于 PostgreSQL %s\n"
 "检查你的安装或使用 -L 选项指定正确的路径.\n"
 
-#: initdb.c:1564
+#: initdb.c:1511
 msgid "Enter new superuser password: "
 msgstr "输入新的超级用户口令: "
 
-#: initdb.c:1565
+#: initdb.c:1512
 msgid "Enter it again: "
 msgstr "再输入一遍: "
 
-#: initdb.c:1568
+#: initdb.c:1515
 #, c-format
 msgid "Passwords didn't match.\n"
 msgstr "口令不匹配.\n"
 
-#: initdb.c:1596
-#, c-format
-msgid "%s: could not read password from file \"%s\": %s\n"
+#: initdb.c:1541
+#, fuzzy, c-format
+#| msgid "%s: could not read password from file \"%s\": %s\n"
+msgid "could not read password from file \"%s\": %m"
 msgstr "%s: 无法从文件 \"%s\" 读取口令: %s\n"
 
-#: initdb.c:1599
-#, c-format
-msgid "%s: password file \"%s\" is empty\n"
+#: initdb.c:1544
+#, fuzzy, c-format
+#| msgid "%s: password file \"%s\" is empty\n"
+msgid "password file \"%s\" is empty"
 msgstr "%s:口令文件\"%s\"为空\n"
 
-#: initdb.c:1845
-#, c-format
-msgid "%s: locale name too long, skipped: \"%s\"\n"
-msgstr "%s: 本地化名称太长, 跳过: \"%s\"\n"
-
-#: 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:1943
-#, c-format
-msgid "No usable system locales were found.\n"
-msgstr "没有找到可用的系统本地化名称.\n"
-
-#: initdb.c:1944
-#, c-format
-msgid "Use the option \"--debug\" to see details.\n"
-msgstr "使用选项 \"--debug\" 获取细节.\n"
-
-#: initdb.c:2317
-msgid "syncing data to disk ... "
-msgstr "同步数据到磁盘..."
-
-#: initdb.c:2411
+#: initdb.c:2107
 #, c-format
 msgid "caught signal\n"
 msgstr "捕获信号\n"
 
-#: initdb.c:2417
+#: initdb.c:2113
 #, c-format
 msgid "could not write to child process: %s\n"
 msgstr "无法写到子进程: %s\n"
 
-#: initdb.c:2425
+#: initdb.c:2121
 #, c-format
 msgid "ok\n"
 msgstr "成功\n"
 
-#: initdb.c:2515
-#, c-format
-msgid "%s: setlocale() failed\n"
+#: initdb.c:2211
+#, fuzzy, c-format
+#| msgid "%s: setlocale() failed\n"
+msgid "setlocale() failed"
 msgstr "%s:setlocale()调用失败\n"
 
-#: initdb.c:2533
-#, c-format
-msgid "%s: failed to restore old locale \"%s\"\n"
+#: initdb.c:2232
+#, fuzzy, c-format
+#| msgid "%s: failed to restore old locale \"%s\"\n"
+msgid "failed to restore old locale \"%s\""
 msgstr "%s: 无法恢复旧的本地化文件 \"%s\"\n"
 
-#: initdb.c:2543
-#, c-format
-msgid "%s: invalid locale name \"%s\"\n"
+#: initdb.c:2241
+#, fuzzy, c-format
+#| msgid "%s: invalid locale name \"%s\"\n"
+msgid "invalid locale name \"%s\""
 msgstr "%s: 无效的 locale 名字 \"%s\"\n"
 
-#: initdb.c:2555
-#, c-format
-msgid ""
-"%s: invalid locale settings; check LANG and LC_* environment variables\n"
+#: initdb.c:2252
+#, fuzzy, c-format
+#| msgid "%s: invalid locale settings; check LANG and LC_* environment variables\n"
+msgid "invalid locale settings; check LANG and LC_* environment variables"
 msgstr "%s:无效的本地化设置; 请检查环境变量LANG和LC_*的值\n"
 
-#: initdb.c:2583
-#, c-format
-msgid "%s: encoding mismatch\n"
+#: initdb.c:2279
+#, fuzzy, c-format
+#| msgid "%s: encoding mismatch\n"
+msgid "encoding mismatch"
 msgstr "%s: 警告: 编码不匹配\n"
 
-#: initdb.c:2585
+#: initdb.c:2281
 #, c-format
 msgid ""
 "The encoding you selected (%s) and the encoding that the\n"
@@ -466,7 +500,7 @@ msgstr ""
 "组合类型.\n"
 "\n"
 
-#: initdb.c:2657
+#: initdb.c:2353
 #, c-format
 msgid ""
 "%s initializes a PostgreSQL database cluster.\n"
@@ -475,17 +509,17 @@ msgstr ""
 "%s 初始化一个 PostgreSQL 数据库簇.\n"
 "\n"
 
-#: initdb.c:2658
+#: initdb.c:2354
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: initdb.c:2659
+#: initdb.c:2355
 #, c-format
 msgid "  %s [OPTION]... [DATADIR]\n"
 msgstr "  %s [选项]... [DATADIR]\n"
 
-#: initdb.c:2660
+#: initdb.c:2356
 #, c-format
 msgid ""
 "\n"
@@ -494,49 +528,47 @@ msgstr ""
 "\n"
 "选项:\n"
 
-#: initdb.c:2661
+#: initdb.c:2357
 #, c-format
-msgid ""
-"  -A, --auth=METHOD         default authentication method for local "
-"connections\n"
+msgid "  -A, --auth=METHOD         default authentication method for local connections\n"
 msgstr "  -A, --auth=METHOD         本地连接的默认认证方法\n"
 
-#: initdb.c:2662
+#: initdb.c:2358
 #, c-format
-msgid ""
-"      --auth-host=METHOD    default authentication method for local TCP/IP "
-"connections\n"
+msgid "      --auth-host=METHOD    default authentication method for local TCP/IP connections\n"
 msgstr "      --auth-host=METHOD   本地的TCP/IP连接的默认认证方法\n"
 
-#: initdb.c:2663
+#: initdb.c:2359
 #, c-format
-msgid ""
-"      --auth-local=METHOD   default authentication method for local-socket "
-"connections\n"
+msgid "      --auth-local=METHOD   default authentication method for local-socket connections\n"
 msgstr "      --auth-local=METHOD   本地socket连接的默认认证方法\n"
 
-#: initdb.c:2664
+#: initdb.c:2360
 #, c-format
 msgid " [-D, --pgdata=]DATADIR     location for this database cluster\n"
 msgstr "  -D, --pgdata=DATADIR      当前数据库簇的位置\n"
 
-#: initdb.c:2665
+#: initdb.c:2361
 #, c-format
 msgid "  -E, --encoding=ENCODING   set default encoding for new databases\n"
 msgstr "  -E, --encoding=ENCODING   为新数据库设置默认编码\n"
 
-#: initdb.c:2666
+#: initdb.c:2362
+#, c-format
+msgid "  -g, --allow-group-access  allow group read/execute on data directory\n"
+msgstr "  -g, --allow-group-access  允许组对数据目录进行读/执行\n"
+
+#: initdb.c:2363
 #, c-format
 msgid "      --locale=LOCALE       set default locale for new databases\n"
 msgstr "      --locale=LOCALE      为新数据库设置默认语言环境\n"
 
-#: initdb.c:2667
+#: initdb.c:2364
 #, c-format
 msgid ""
 "      --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n"
 "      --lc-monetary=, --lc-numeric=, --lc-time=LOCALE\n"
-"                            set default locale in the respective category "
-"for\n"
+"                            set default locale in the respective category for\n"
 "                            new databases (default taken from environment)\n"
 msgstr ""
 "  --lc-collate, --lc-ctype, --lc-messages=LOCALE\n"
@@ -545,18 +577,17 @@ msgstr ""
 "                   设定缺省语言环境(默认使用环境变\n"
 "                   量)\n"
 
-#: initdb.c:2671
+#: initdb.c:2368
 #, c-format
 msgid "      --no-locale           equivalent to --locale=C\n"
 msgstr "  --no-locale               等同于 --locale=C\n"
 
-#: initdb.c:2672
+#: initdb.c:2369
 #, c-format
-msgid ""
-"      --pwfile=FILE         read password for the new superuser from file\n"
+msgid "      --pwfile=FILE         read password for the new superuser from file\n"
 msgstr "  --pwfile=文件名           对于新的超级用户从文件读取口令\n"
 
-#: initdb.c:2673
+#: initdb.c:2370
 #, c-format
 msgid ""
 "  -T, --text-search-config=CFG\n"
@@ -565,24 +596,27 @@ msgstr ""
 "  -T, --text-search-config=CFG\n"
 "                   缺省的文本搜索配置\n"
 
-#: initdb.c:2675
+#: initdb.c:2372
 #, c-format
 msgid "  -U, --username=NAME       database superuser name\n"
 msgstr "  -U, --username=NAME       数据库超级用户名\n"
 
-#: initdb.c:2676
+#: initdb.c:2373
 #, c-format
-msgid ""
-"  -W, --pwprompt            prompt for a password for the new superuser\n"
+msgid "  -W, --pwprompt            prompt for a password for the new superuser\n"
 msgstr "  -W, --pwprompt            对于新的超级用户提示输入口令\n"
 
-#: initdb.c:2677
+#: initdb.c:2374
 #, c-format
-msgid ""
-"  -X, --xlogdir=XLOGDIR     location for the transaction log directory\n"
-msgstr "  -X, --xlogdir=XLOGDIR          当前事务日志目录的位置\n"
+msgid "  -X, --waldir=WALDIR       location for the write-ahead log directory\n"
+msgstr "  -X, --waldir=WALDIR       预写日志目录的位置\n"
 
-#: initdb.c:2678
+#: initdb.c:2375
+#, c-format
+msgid "      --wal-segsize=SIZE    size of WAL segments, in megabytes\n"
+msgstr "      --wal-segsize=SIZE    WAL段的大小(兆字节)\n"
+
+#: initdb.c:2376
 #, c-format
 msgid ""
 "\n"
@@ -591,44 +625,42 @@ msgstr ""
 "\n"
 "非普通使用选项:\n"
 
-#: initdb.c:2679
+#: initdb.c:2377
 #, c-format
 msgid "  -d, --debug               generate lots of debugging output\n"
 msgstr "  -d, --debug               产生大量的除错信息\n"
 
-#: initdb.c:2680
+#: initdb.c:2378
 #, c-format
 msgid "  -k, --data-checksums      use data page checksums\n"
 msgstr " -k, --data-checksums    使用数据页产生效验和\n"
 
-#: initdb.c:2681
+#: initdb.c:2379
 #, c-format
 msgid "  -L DIRECTORY              where to find the input files\n"
 msgstr "  -L DIRECTORY              输入文件的位置\n"
 
-#: initdb.c:2682
+#: initdb.c:2380
 #, c-format
-msgid "  -n, --noclean             do not clean up after errors\n"
-msgstr "  -n, --noclean             出错后不清理\n"
+msgid "  -n, --no-clean            do not clean up after errors\n"
+msgstr "  -n, --no-clean            出错后不清理\n"
 
-#: initdb.c:2683
+#: initdb.c:2381
 #, c-format
-msgid ""
-"  -N, --nosync              do not wait for changes to be written safely to "
-"disk\n"
-msgstr "  -N, --nosync             不用等待变化安全写入磁盘\n"
+msgid "  -N, --no-sync             do not wait for changes to be written safely to disk\n"
+msgstr "  -N, --no-sync             不用等待变化安全写入磁盘\n"
 
-#: initdb.c:2684
+#: initdb.c:2382
 #, c-format
 msgid "  -s, --show                show internal settings\n"
 msgstr "  -s, --show                显示内部设置\n"
 
-#: initdb.c:2685
+#: initdb.c:2383
 #, c-format
 msgid "  -S, --sync-only           only sync data directory\n"
 msgstr "  -S, --sync-only          只同步数据目录\n"
 
-#: initdb.c:2686
+#: initdb.c:2384
 #, c-format
 msgid ""
 "\n"
@@ -637,17 +669,17 @@ msgstr ""
 "\n"
 "其它选项:\n"
 
-#: initdb.c:2687
+#: initdb.c:2385
 #, c-format
 msgid "  -V, --version             output version information, then exit\n"
 msgstr "  -V, --version             输出版本信息, 然后退出\n"
 
-#: initdb.c:2688
+#: initdb.c:2386
 #, c-format
 msgid "  -?, --help                show this help, then exit\n"
 msgstr "  -?, --help                显示此帮助, 然后退出\n"
 
-#: initdb.c:2689
+#: initdb.c:2387
 #, c-format
 msgid ""
 "\n"
@@ -657,42 +689,44 @@ msgstr ""
 "\n"
 "如果没有指定数据目录, 将使用环境变量 PGDATA\n"
 
-#: initdb.c:2691
-#, c-format
+#: initdb.c:2389
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgid ""
 "\n"
-"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+"Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgstr ""
 "\n"
 "报告错误至 <pgql-bugs@postgresql.org>.\n"
 
-#: initdb.c:2699
-msgid ""
-"\n"
-"WARNING: enabling \"trust\" authentication for local connections\n"
-"You can change this by editing pg_hba.conf or using the option -A, or\n"
-"--auth-local and --auth-host, the next time you run initdb.\n"
-msgstr ""
-"\n"
-"警告:为本地连接启动了 \"trust\" 认证.\n"
-"你可以通过编辑 pg_hba.conf 更改或你下次\n"
-"行 initdb 时使用 -A或者--auth-local和--auth-host选项.\n"
-
-#: initdb.c:2721
-#, c-format
-msgid "%s: invalid authentication method \"%s\" for \"%s\" connections\n"
+#: initdb.c:2417
+#, fuzzy, c-format
+#| msgid "%s: invalid authentication method \"%s\" for \"%s\" connections\n"
+msgid "invalid authentication method \"%s\" for \"%s\" connections"
 msgstr "%s: 无效认证方法 \"%s\" 用于 \"%s\" 连接\n"
 
-#: initdb.c:2735
-#, c-format
-msgid ""
-"%s: must specify a password for the superuser to enable %s authentication\n"
+#: initdb.c:2433
+#, fuzzy, c-format
+#| msgid "%s: must specify a password for the superuser to enable %s authentication\n"
+msgid "must specify a password for the superuser to enable %s authentication"
 msgstr "%s: 为了启动 %s 认证, 你需要为超级用户指定一个口令\n"
 
-#: initdb.c:2762
-#, c-format
+#: initdb.c:2460
+#, fuzzy, c-format
+#| msgid "%s: removing data directory \"%s\"\n"
+msgid "no data directory specified"
+msgstr "%s: 删除数据目录 \"%s\"\n"
+
+#: initdb.c:2462
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: no data directory specified\n"
+#| "You must identify the directory where the data for this database system\n"
+#| "will reside.  Do this with either the invocation option -D or the\n"
+#| "environment variable PGDATA.\n"
 msgid ""
-"%s: no data directory specified\n"
 "You must identify the directory where the data for this database system\n"
 "will reside.  Do this with either the invocation option -D or the\n"
 "environment variable PGDATA.\n"
@@ -702,39 +736,48 @@ msgstr ""
 "存在. 使用 -D 选项或者\n"
 "环境变量 PGDATA.\n"
 
-#: initdb.c:2800
-#, c-format
+#: initdb.c:2497
+#, fuzzy, c-format
+#| msgid ""
+#| "The program \"postgres\" is needed by %s but was not found in the\n"
+#| "same directory as \"%s\".\n"
+#| "Check your installation.\n"
 msgid ""
 "The program \"postgres\" is needed by %s but was not found in the\n"
 "same directory as \"%s\".\n"
-"Check your installation.\n"
+"Check your installation."
 msgstr ""
 "%s 需要程序 \"postgres\", 但是在同一个目录 \"%s\" 中没找到.\n"
 "\n"
 "检查您的安装.\n"
 
-#: initdb.c:2807
-#, c-format
+#: initdb.c:2502
+#, fuzzy, c-format
+#| msgid ""
+#| "The program \"postgres\" was found by \"%s\"\n"
+#| "but was not the same version as %s.\n"
+#| "Check your installation.\n"
 msgid ""
 "The program \"postgres\" was found by \"%s\"\n"
 "but was not the same version as %s.\n"
-"Check your installation.\n"
+"Check your installation."
 msgstr ""
 "%s 找到程序 \"postgres\", 但是和版本 \"%s\" 不一致.\n"
 "\n"
 "检查您的安装.\n"
 
-#: initdb.c:2826
-#, c-format
-msgid "%s: input file location must be an absolute path\n"
+#: initdb.c:2521
+#, fuzzy, c-format
+#| msgid "%s: input file location must be an absolute path\n"
+msgid "input file location must be an absolute path"
 msgstr "%s: 输入文件位置必须为绝对路径\n"
 
-#: initdb.c:2845
+#: initdb.c:2538
 #, c-format
 msgid "The database cluster will be initialized with locale \"%s\".\n"
 msgstr "数据库簇将使用本地化语言 \"%s\"进行初始化.\n"
 
-#: initdb.c:2848
+#: initdb.c:2541
 #, c-format
 msgid ""
 "The database cluster will be initialized with locales\n"
@@ -753,22 +796,23 @@ msgstr ""
 "  NUMERIC:  %s\n"
 "  TIME:     %s\n"
 
-#: initdb.c:2872
-#, c-format
-msgid "%s: could not find suitable encoding for locale \"%s\"\n"
+#: initdb.c:2565
+#, fuzzy, c-format
+#| msgid "%s: could not find suitable encoding for locale \"%s\"\n"
+msgid "could not find suitable encoding for locale \"%s\""
 msgstr "%s: 无法为locale(本地化语言)\"%s\"找到合适的编码\n"
 
-#: initdb.c:2874
+#: initdb.c:2567
 #, c-format
 msgid "Rerun %s with the -E option.\n"
 msgstr "带 -E 选项重新运行 %s.\n"
 
-#: initdb.c:2875 initdb.c:3498 initdb.c:3519
+#: initdb.c:2568 initdb.c:3196 initdb.c:3217
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: initdb.c:2887
+#: initdb.c:2581
 #, c-format
 msgid ""
 "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n"
@@ -777,12 +821,13 @@ msgstr ""
 "本地化隐含的编码 \"%s\" 不允许作为服务器端的编码.\n"
 "默认的数据库编码将采用 \"%s\" 作为代替.\n"
 
-#: initdb.c:2895
-#, c-format
-msgid "%s: locale \"%s\" requires unsupported encoding \"%s\"\n"
+#: initdb.c:2586
+#, fuzzy, c-format
+#| msgid "%s: locale \"%s\" requires unsupported encoding \"%s\"\n"
+msgid "locale \"%s\" requires unsupported encoding \"%s\""
 msgstr "%s: 本地化语言环境 \"%s\"要求使用不支持的编码\"%s\"\n"
 
-#: initdb.c:2898
+#: initdb.c:2589
 #, c-format
 msgid ""
 "Encoding \"%s\" is not allowed as a server-side encoding.\n"
@@ -791,62 +836,59 @@ msgstr ""
 "不允许将编码\"%s\"作为服务器端编码.\n"
 "使用一个不同的本地化语言环境重新运行%s.\n"
 
-#: initdb.c:2907
+#: initdb.c:2598
 #, c-format
 msgid "The default database encoding has accordingly been set to \"%s\".\n"
 msgstr "默认的数据库编码已经相应的设置为 \"%s\".\n"
 
-#: initdb.c:2978
+#: initdb.c:2666
 #, c-format
-msgid ""
-"%s: could not find suitable text search configuration for locale \"%s\"\n"
+msgid "%s: could not find suitable text search configuration for locale \"%s\"\n"
 msgstr "%s: 无法为本地化语言环境\"%s\"找到合适的文本搜索配置\n"
 
-#: initdb.c:2989
+#: initdb.c:2677
 #, c-format
-msgid ""
-"%s: warning: suitable text search configuration for locale \"%s\" is "
-"unknown\n"
+msgid "%s: warning: suitable text search configuration for locale \"%s\" is unknown\n"
 msgstr "%s: 警告: 对于本地化语言环境\"%s\"合适的文本搜索配置未知\n"
 
-#: initdb.c:2994
+#: initdb.c:2682
 #, c-format
-msgid ""
-"%s: warning: specified text search configuration \"%s\" might not match "
-"locale \"%s\"\n"
+msgid "%s: warning: specified text search configuration \"%s\" might not match locale \"%s\"\n"
 msgstr "%s: 警告: 所指定的文本搜索配置\"%s\"可能与本地语言环境\"%s\"不匹配\n"
 
-#: initdb.c:2999
+#: initdb.c:2687
 #, c-format
 msgid "The default text search configuration will be set to \"%s\".\n"
 msgstr "缺省的文本搜索配置将会被设置到\"%s\"\n"
 
-#: initdb.c:3043 initdb.c:3129
+#: initdb.c:2731 initdb.c:2813
 #, c-format
 msgid "creating directory %s ... "
 msgstr "创建目录 %s ... "
 
-#: initdb.c:3049 initdb.c:3135 initdb.c:3203 initdb.c:3259
+#: initdb.c:2737 initdb.c:2819 initdb.c:2884 initdb.c:2946
 #, c-format
-msgid "%s: could not create directory \"%s\": %s\n"
-msgstr "%s: 无法创建目录 \"%s\": %s\n"
+msgid "could not create directory \"%s\": %m"
+msgstr "无法创建目录 \"%s\": %m"
 
-#: initdb.c:3061 initdb.c:3147
+#: initdb.c:2748 initdb.c:2831
 #, c-format
 msgid "fixing permissions on existing directory %s ... "
 msgstr "修复已存在目录 %s 的权限 ... "
 
-#: initdb.c:3067 initdb.c:3153
-#, c-format
-msgid "%s: could not change permissions of directory \"%s\": %s\n"
+#: initdb.c:2754 initdb.c:2837
+#, fuzzy, c-format
+#| msgid "%s: could not change permissions of directory \"%s\": %s\n"
+msgid "could not change permissions of directory \"%s\": %m"
 msgstr "%s: 无法改变目录 \"%s\" 的权限: %s\n"
 
-#: initdb.c:3082 initdb.c:3168
-#, c-format
-msgid "%s: directory \"%s\" exists but is not empty\n"
+#: initdb.c:2768 initdb.c:2851
+#, fuzzy, c-format
+#| msgid "%s: directory \"%s\" exists but is not empty\n"
+msgid "directory \"%s\" exists but is not empty"
 msgstr "%s: 目录\"%s\"已存在,但不是空的\n"
 
-#: initdb.c:3088
+#: initdb.c:2773
 #, c-format
 msgid ""
 "If you want to create a new database system, either remove or empty\n"
@@ -857,47 +899,46 @@ msgstr ""
 "目录 \"%s\" 或者运行带参数的 %s\n"
 "而不是 \"%s\".\n"
 
-#: initdb.c:3096 initdb.c:3181 initdb.c:3532
+#: initdb.c:2781 initdb.c:2863 initdb.c:3232
 #, c-format
-msgid "%s: could not access directory \"%s\": %s\n"
-msgstr "%s: 无法访问目录 \"%s\": %s\n"
+msgid "could not access directory \"%s\": %m"
+msgstr "无法访问目录 \"%s\": %m"
 
-#: initdb.c:3120
-#, c-format
-msgid "%s: transaction log directory location must be an absolute path\n"
-msgstr "%s: 事务日志目录的位置必须为绝对路径\n"
+#: initdb.c:2804
+#, fuzzy, c-format
+#| msgid "%s: WAL directory location must be an absolute path\n"
+msgid "WAL directory location must be an absolute path"
+msgstr "%s: WAL目录的位置必须为绝对路径\n"
 
-#: initdb.c:3174
+#: initdb.c:2856
 #, c-format
 msgid ""
-"If you want to store the transaction log there, either\n"
-"remove or empty the directory \"%s\".\n"
-msgstr "如果您要存储事务日志,需要删除或者清空目录\"%s\".\n"
+"If you want to store the WAL there, either remove or empty the directory\n"
+"\"%s\".\n"
+msgstr "如果您要存储WAL日志,需要删除或者清空目录\"%s\".\n"
 
-#: initdb.c:3189
+#: initdb.c:2870
 #, c-format
-msgid "%s: could not create symbolic link \"%s\": %s\n"
-msgstr "%s: 无法创建符号链接 \"%s\": %s\n"
+msgid "could not create symbolic link \"%s\": %m"
+msgstr "无法创建符号链接 \"%s\": %m"
 
-#: initdb.c:3194
-#, c-format
-msgid "%s: symlinks are not supported on this platform"
-msgstr "%s: 在这个平台上不支持使用符号链接"
+#: initdb.c:2875
+#, fuzzy, c-format
+#| msgid "%s: symlinks are not supported on this platform\n"
+msgid "symlinks are not supported on this platform"
+msgstr "%s: 在这个平台上不支持使用符号链接\n"
 
-#: initdb.c:3218
+#: initdb.c:2899
 #, c-format
-msgid ""
-"It contains a dot-prefixed/invisible file, perhaps due to it being a mount "
-"point.\n"
+msgid "It contains a dot-prefixed/invisible file, perhaps due to it being a mount point.\n"
 msgstr "它包含一个不可见的带固定点的文件,可能因为它是一个装载点。\n"
 
-#: initdb.c:3221
+#: initdb.c:2902
 #, c-format
-msgid ""
-"It contains a lost+found directory, perhaps due to it being a mount point.\n"
+msgid "It contains a lost+found directory, perhaps due to it being a mount point.\n"
 msgstr "它包含名为lost+found的目录,可能因为它是一个加载点.\n"
 
-#: initdb.c:3224
+#: initdb.c:2905
 #, c-format
 msgid ""
 "Using a mount point directly as the data directory is not recommended.\n"
@@ -906,36 +947,58 @@ msgstr ""
 "不推荐将加载点作为数据目录.\n"
 "通常在加载点下边创建一个子目录.\n"
 
-#: initdb.c:3244
+#: initdb.c:2931
 #, c-format
 msgid "creating subdirectories ... "
 msgstr "正在创建子目录 ... "
 
-#: initdb.c:3291
+#: initdb.c:2977
 msgid "performing post-bootstrap initialization ... "
 msgstr "正在执行自举后初始化 ..."
 
-#: initdb.c:3442
+#: initdb.c:3134
 #, c-format
 msgid "Running in debug mode.\n"
 msgstr "运行在除错模式中. \n"
 
-#: initdb.c:3446
+#: initdb.c:3138
 #, c-format
-msgid "Running in noclean mode.  Mistakes will not be cleaned up.\n"
-msgstr "运行在 noclean 模式中. 错误将不被清理.\n"
+msgid "Running in no-clean mode.  Mistakes will not be cleaned up.\n"
+msgstr "运行在 no-clean 模式中. 错误将不被清理.\n"
 
-#: initdb.c:3517
-#, c-format
-msgid "%s: too many command-line arguments (first is \"%s\")\n"
+#: initdb.c:3215
+#, fuzzy, c-format
+#| msgid "%s: too many command-line arguments (first is \"%s\")\n"
+msgid "too many command-line arguments (first is \"%s\")"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: initdb.c:3543
-#, c-format
-msgid "%s: password prompt and password file cannot be specified together\n"
+#: initdb.c:3236 initdb.c:3325
+msgid "syncing data to disk ... "
+msgstr "同步数据到磁盘..."
+
+#: initdb.c:3245
+#, fuzzy, c-format
+#| msgid "%s: password prompt and password file cannot be specified together\n"
+msgid "password prompt and password file cannot be specified together"
 msgstr "%s: 口令提示和口令文件不能同时都指定\n"
 
-#: initdb.c:3565
+#: initdb.c:3270
+#, fuzzy, c-format
+#| msgid "%s: argument of --wal-segsize must be a number\n"
+msgid "argument of --wal-segsize must be a number"
+msgstr "%s:--wal-segsize的参数必须是一个数字\n"
+
+#: initdb.c:3275
+#, c-format
+msgid "argument of --wal-segsize must be a power of 2 between 1 and 1024"
+msgstr ""
+
+#: initdb.c:3292
+#, c-format
+msgid "superuser name \"%s\" is disallowed; role names cannot begin with \"pg_\""
+msgstr ""
+
+#: initdb.c:3296
 #, c-format
 msgid ""
 "The files belonging to this database system will be owned by user \"%s\".\n"
@@ -945,17 +1008,17 @@ msgstr ""
 "属于此数据库系统的文件宿主为用户 \"%s\".\n"
 "此用户也必须为服务器进程的宿主.\n"
 
-#: initdb.c:3581
+#: initdb.c:3312
 #, c-format
 msgid "Data page checksums are enabled.\n"
 msgstr "允许生成数据页校验和.\n"
 
-#: initdb.c:3583
+#: initdb.c:3314
 #, c-format
 msgid "Data page checksums are disabled.\n"
 msgstr "禁止为数据页生成校验和.\n"
 
-#: initdb.c:3592
+#: initdb.c:3331
 #, c-format
 msgid ""
 "\n"
@@ -966,101 +1029,44 @@ msgstr ""
 "跳过同步到磁盘操作.\n"
 "如果操作系统宕机,数据目录可能会毁坏.\n"
 
-#: initdb.c:3601
+#: initdb.c:3336
+#, fuzzy, c-format
+#| msgid "%s: invalid authentication method \"%s\" for \"%s\" connections\n"
+msgid "enabling \"trust\" authentication for local connections"
+msgstr "%s: 无效认证方法 \"%s\" 用于 \"%s\" 连接\n"
+
+#: initdb.c:3337
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "WARNING: enabling \"trust\" authentication for local connections\n"
+#| "You can change this by editing pg_hba.conf or using the option -A, or\n"
+#| "--auth-local and --auth-host, the next time you run initdb.\n"
+msgid ""
+"You can change this by editing pg_hba.conf or using the option -A, or\n"
+"--auth-local and --auth-host, the next time you run initdb.\n"
+msgstr ""
+"\n"
+"警告:为本地连接启动了 \"trust\" 认证.\n"
+"你可以通过编辑 pg_hba.conf 更改或你下次\n"
+"执行 initdb 时使用 -A或者--auth-local和--auth-host选项.\n"
+
+#. translator: This is a placeholder in a shell command.
+#: initdb.c:3362
+msgid "logfile"
+msgstr "logfile"
+
+#: initdb.c:3364
 #, c-format
 msgid ""
 "\n"
 "Success. You can now start the database server using:\n"
 "\n"
-"    %s%s%spg_ctl%s -D %s%s%s -l logfile start\n"
+"    %s\n"
 "\n"
 msgstr ""
 "\n"
 "成功。您现在可以用下面的命令开启数据库服务器:\n"
 "\n"
-"    %s%s%spg_ctl%s -D %s%s%s -l logfile start\n"
+"    %s\n"
 "\n"
-
-#~ msgid "user name lookup failure: %s"
-#~ msgstr "用户名查找失败: %s"
-
-#~ msgid "%s: could not to allocate SIDs: error code %lu\n"
-#~ msgstr "%s: 无法分配SID: 错误码为 %lu\n"
-
-#~ msgid "could not change directory to \"%s\""
-#~ msgstr "无法进入目录 \"%s\""
-
-#~ msgid "creating directory %s/%s ... "
-#~ msgstr "创建目录 %s/%s ... "
-
-#~ 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 ""
-#~ "%s: The password file was not generated. Please report this problem.\n"
-#~ msgstr "%s: 口令文件没有生成. 请报告这个问题.\n"
-
-#~ msgid "%s: unrecognized authentication method \"%s\"\n"
-#~ msgstr "%s: 未知认证方法 \"%s\".\n"
-
-#~ msgid "%s: could not get current user name: %s\n"
-#~ msgstr "%s: 无法获取当前用户名称: %s\n"
-
-#~ msgid "%s: could not obtain information about current user: %s\n"
-#~ msgstr "%s: 无法获得当前用户的信息: %s\n"
-
-#~ 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 8f874d529739b69400c77a5f470105f2767f7889..7a99b35c8e47fe52ff67b7dd576de5dbb93cca55 100644 (file)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: libpq (PostgreSQL) 11\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2019-05-15 17:57+0800\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:08+0000\n"
 "PO-Revision-Date: 2019-05-17 17:10+0800\n"
 "Last-Translator: Jie Zhang <zhangjie2@cn.fujitsu.com>\n"
 "Language-Team: Chinese (Simplified) <zhangjie2@cn.fujitsu.com>\n"
@@ -15,238 +15,244 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: fe-auth-scram.c:189
+#: fe-auth-scram.c:183
 msgid "malformed SCRAM message (empty message)\n"
 msgstr "错误的SCRAM消息(空消息)\n"
 
-#: fe-auth-scram.c:195
+#: fe-auth-scram.c:189
 msgid "malformed SCRAM message (length mismatch)\n"
 msgstr "错误的SCRAM消息(长度不匹配)\n"
 
-#: fe-auth-scram.c:244
+#: fe-auth-scram.c:238
 msgid "incorrect server signature\n"
 msgstr "服务器签名不正确\n"
 
-#: fe-auth-scram.c:253
+#: fe-auth-scram.c:247
 msgid "invalid SCRAM exchange state\n"
 msgstr "SCRAM交换状态无效\n"
 
-#: fe-auth-scram.c:276
+#: fe-auth-scram.c:270
 #, c-format
 msgid "malformed SCRAM message (attribute \"%c\" expected)\n"
 msgstr "错误的SCRAM消息(应为属性\"%c\")\n"
 
-#: fe-auth-scram.c:285
+#: fe-auth-scram.c:279
 #, c-format
 msgid "malformed SCRAM message (expected character \"=\" for attribute \"%c\")\n"
 msgstr "错误的SCRAM消息(属性\"%c\"需要字符\"=\")\n"
 
-#: fe-auth-scram.c:326
+#: fe-auth-scram.c:320
 msgid "could not generate nonce\n"
 msgstr "无法生成nonce\n"
 
 # fe-connect.c:2427 fe-connect.c:2436 fe-connect.c:2933 fe-exec.c:1284
 # fe-lobj.c:536
-#: fe-auth-scram.c:334 fe-auth-scram.c:401 fe-auth-scram.c:523
-#: fe-auth-scram.c:543 fe-auth-scram.c:569 fe-auth-scram.c:583
-#: fe-auth-scram.c:625 fe-auth.c:227 fe-auth.c:362 fe-auth.c:432 fe-auth.c:467
-#: fe-auth.c:653 fe-auth.c:812 fe-auth.c:1124 fe-auth.c:1272 fe-connect.c:835
-#: fe-connect.c:1264 fe-connect.c:1440 fe-connect.c:1922 fe-connect.c:1945
-#: fe-connect.c:2606 fe-connect.c:4152 fe-connect.c:4404 fe-connect.c:4523
-#: fe-connect.c:4773 fe-connect.c:4853 fe-connect.c:4952 fe-connect.c:5208
-#: fe-connect.c:5237 fe-connect.c:5309 fe-connect.c:5333 fe-connect.c:5351
-#: fe-connect.c:5452 fe-connect.c:5461 fe-connect.c:5817 fe-connect.c:5967
-#: fe-exec.c:2705 fe-exec.c:3452 fe-exec.c:3617 fe-lobj.c:895
-#: fe-protocol2.c:1213 fe-protocol3.c:999 fe-protocol3.c:1685
+#: fe-auth-scram.c:328 fe-auth-scram.c:395 fe-auth-scram.c:517
+#: fe-auth-scram.c:537 fe-auth-scram.c:563 fe-auth-scram.c:577
+#: fe-auth-scram.c:619 fe-auth.c:290 fe-auth.c:360 fe-auth.c:395 fe-auth.c:581
+#: fe-auth.c:740 fe-auth.c:1052 fe-auth.c:1200 fe-connect.c:858
+#: fe-connect.c:1320 fe-connect.c:1496 fe-connect.c:2085 fe-connect.c:2108
+#: fe-connect.c:2831 fe-connect.c:4513 fe-connect.c:4765 fe-connect.c:4884
+#: fe-connect.c:5134 fe-connect.c:5214 fe-connect.c:5313 fe-connect.c:5569
+#: fe-connect.c:5598 fe-connect.c:5670 fe-connect.c:5694 fe-connect.c:5712
+#: fe-connect.c:5813 fe-connect.c:5822 fe-connect.c:6178 fe-connect.c:6328
+#: fe-exec.c:2748 fe-exec.c:3495 fe-exec.c:3660 fe-lobj.c:895
+#: fe-protocol2.c:1213 fe-protocol3.c:999 fe-protocol3.c:1703
 #: fe-secure-common.c:110 fe-secure-openssl.c:438 fe-secure-openssl.c:1025
 msgid "out of memory\n"
 msgstr "内存用尽\n"
 
-#: fe-auth-scram.c:561
+#: fe-auth-scram.c:555
 msgid "invalid SCRAM response (nonce mismatch)\n"
 msgstr "SCRAM响应无效(非匹配)\n"
 
-#: fe-auth-scram.c:600
+#: fe-auth-scram.c:594
 msgid "malformed SCRAM message (invalid iteration count)\n"
 msgstr "错误的SCRAM消息(迭代计数无效)\n"
 
-#: fe-auth-scram.c:606
+#: fe-auth-scram.c:600
 msgid "malformed SCRAM message (garbage at end of server-first-message)\n"
 msgstr "错误的SCRAM消息 (服务器第一条消息结束时为垃圾消息)\n"
 
 # fe-misc.c:515 fe-misc.c:595
-#: fe-auth-scram.c:636
+#: fe-auth-scram.c:630
 #, c-format
 msgid "error received from server in SCRAM exchange: %s\n"
 msgstr "在SCRAM交换中从服务器接收到错误: %s\n"
 
-#: fe-auth-scram.c:652
+#: fe-auth-scram.c:646
 msgid "malformed SCRAM message (garbage at end of server-final-message)\n"
 msgstr "错误的SCRAM消息 (服务器最后一条消息结束时为垃圾消息)\n"
 
-#: fe-auth-scram.c:660
+#: fe-auth-scram.c:654
 msgid "malformed SCRAM message (invalid server signature)\n"
 msgstr "错误的SCRAM消息 (服务器签名无效)\n"
 
-#: fe-auth.c:122
+#: fe-auth.c:77
 #, c-format
 msgid "out of memory allocating GSSAPI buffer (%d)\n"
 msgstr "在分配GSSAPI缓冲区(%d)时内存用尽\n"
 
-#: fe-auth.c:177
+#: fe-auth.c:132
 msgid "GSSAPI continuation error"
 msgstr "GSSAPI连续出现错误"
 
-#: fe-auth.c:207 fe-auth.c:461 fe-secure-common.c:98
+#: fe-auth.c:159 fe-auth.c:389 fe-secure-common.c:98
 msgid "host name must be specified\n"
 msgstr "必须指定主机名\n"
 
-#: fe-auth.c:214
+#: fe-auth.c:166
 msgid "duplicate GSS authentication request\n"
 msgstr "重复的GSS认证请求\n"
 
-#: fe-auth.c:240
-msgid "GSSAPI name import error"
-msgstr "GSSAPI名称导入错误"
-
-#: fe-auth.c:303
+#: fe-auth.c:231
 #, c-format
 msgid "out of memory allocating SSPI buffer (%d)\n"
 msgstr "在分配SSPI缓冲区(%d)时内存用尽\n"
 
-#: fe-auth.c:351
+#: fe-auth.c:279
 msgid "SSPI continuation error"
 msgstr "SSPI连续出现错误"
 
-#: fe-auth.c:422
+#: fe-auth.c:350
 msgid "duplicate SSPI authentication request\n"
 msgstr "重复的SSPI认证请求\n"
 
-#: fe-auth.c:447
+#: fe-auth.c:375
 msgid "could not acquire SSPI credentials"
 msgstr "无法获得SSPI证书"
 
-#: fe-auth.c:501
+#: fe-auth.c:429
 msgid "duplicate SASL authentication request\n"
 msgstr "重复的SASL认证请求\n"
 
-#: fe-auth.c:559
+#: fe-auth.c:487
 msgid "server offered SCRAM-SHA-256-PLUS authentication over a non-SSL connection\n"
 msgstr "服务器通过非SSL连接提供了SCRAM-SHA-256-PLUS身份验证\n"
 
 # fe-auth.c:595
-#: fe-auth.c:571
+#: fe-auth.c:499
 msgid "none of the server's SASL authentication mechanisms are supported\n"
 msgstr "不支持服务器的SASL身份验证机制\n"
 
-#: fe-auth.c:677
+#: fe-auth.c:605
 #, c-format
 msgid "out of memory allocating SASL buffer (%d)\n"
 msgstr "在分配SASL缓冲区(%d)时内存用尽\n"
 
-#: fe-auth.c:702
+#: fe-auth.c:630
 msgid "AuthenticationSASLFinal received from server, but SASL authentication was not completed\n"
 msgstr "从服务器接收到AuthenticationSASLFinal,但未完成SASL身份验证\n"
 
 # fe-auth.c:503
-#: fe-auth.c:779
+#: fe-auth.c:707
 msgid "SCM_CRED authentication method not supported\n"
 msgstr "不支持 SCM_CRED 认证方式\n"
 
 # fe-auth.c:595
-#: fe-auth.c:870
+#: fe-auth.c:798
 msgid "Kerberos 4 authentication not supported\n"
 msgstr "不支持 Kerberos 4 认证\n"
 
 # fe-auth.c:612
-#: fe-auth.c:875
+#: fe-auth.c:803
 msgid "Kerberos 5 authentication not supported\n"
 msgstr "不支持 Kerberos 5 认证\n"
 
 # fe-auth.c:595
-#: fe-auth.c:946
+#: fe-auth.c:874
 msgid "GSSAPI authentication not supported\n"
 msgstr "不支持GSSAPI认证\n"
 
 # fe-auth.c:595
-#: fe-auth.c:978
+#: fe-auth.c:906
 msgid "SSPI authentication not supported\n"
 msgstr "不支持SSPI认证\n"
 
 # fe-auth.c:595
-#: fe-auth.c:986
+#: fe-auth.c:914
 msgid "Crypt authentication not supported\n"
 msgstr "不支持Crypt认证\n"
 
 # fe-auth.c:640
-#: fe-auth.c:1052
+#: fe-auth.c:980
 #, c-format
 msgid "authentication method %u not supported\n"
 msgstr "不支持 %u 认证方式\n"
 
-#: fe-auth.c:1099
+#: fe-auth.c:1027
 #, c-format
 msgid "user name lookup failure: error code %lu\n"
 msgstr "用户名查找失败:错误代码%lu\n"
 
-#: fe-auth.c:1109 fe-connect.c:2533
+#: fe-auth.c:1037 fe-connect.c:2718
 #, c-format
 msgid "could not look up local user ID %d: %s\n"
 msgstr "无法查找本地用户ID %d: %s\n"
 
-#: fe-auth.c:1114 fe-connect.c:2538
+#: fe-auth.c:1042 fe-connect.c:2723
 #, c-format
 msgid "local user with ID %d does not exist\n"
 msgstr "ID 为 %d 的本地用户不存在\n"
 
 # fe-exec.c:1371
-#: fe-auth.c:1216
+#: fe-auth.c:1144
 msgid "unexpected shape of result set returned for SHOW\n"
 msgstr "SHOW出现意外的结果状态\n"
 
-#: fe-auth.c:1225
+#: fe-auth.c:1153
 msgid "password_encryption value too long\n"
 msgstr "密码_加密值太长\n"
 
-#: fe-auth.c:1265
+#: fe-auth.c:1193
 #, c-format
 msgid "unrecognized password encryption algorithm \"%s\"\n"
 msgstr "无法识别的密码加密算法 \"%s\"\n"
 
 # fe-misc.c:702
-#: fe-connect.c:1018
+#: fe-connect.c:1041
 #, c-format
 msgid "could not match %d host names to %d hostaddr values\n"
 msgstr "无法将主机名 %d 与主机地址 %d匹配\n"
 
-#: fe-connect.c:1094
+#: fe-connect.c:1117
 #, c-format
 msgid "could not match %d port numbers to %d hosts\n"
 msgstr "无法将端口号 %d与主机%d匹配\n"
 
-#: fe-connect.c:1190
+#: fe-connect.c:1213
 #, c-format
 msgid "invalid sslmode value: \"%s\"\n"
 msgstr "无效的 sslmode 值: \"%s\"\n"
 
-#: fe-connect.c:1211
+#: fe-connect.c:1234
 #, c-format
 msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n"
 msgstr "无效的 sslmode 值 \"%s\" 当没有把 SSL 支持编译进来时\n"
 
-#: fe-connect.c:1246
+#: fe-connect.c:1258
+#, fuzzy, c-format
+#| msgid "invalid sslmode value: \"%s\"\n"
+msgid "invalid gssencmode value: \"%s\"\n"
+msgstr "无效的 sslmode 值: \"%s\"\n"
+
+#: fe-connect.c:1268
+msgid "no GSSAPI support; cannot require GSSAPI\n"
+msgstr ""
+
+#: fe-connect.c:1302
 #, c-format
 msgid "invalid target_session_attrs value: \"%s\"\n"
 msgstr "无效的 target_session_attrs 值: \"%s\"\n"
 
 # fe-connect.c:732
-#: fe-connect.c:1464
+#: fe-connect.c:1520
 #, c-format
 msgid "could not set socket to TCP no delay mode: %s\n"
 msgstr "无法将套接字设置为 TCP 无延迟模式: %s\n"
 
 # fe-connect.c:752
-#: fe-connect.c:1494
+#: fe-connect.c:1583
 #, c-format
 msgid ""
 "could not connect to server: %s\n"
@@ -258,7 +264,7 @@ msgstr ""
 "\t\"%s\"上准备接受联接?\n"
 
 # fe-connect.c:761
-#: fe-connect.c:1552
+#: fe-connect.c:1620
 #, c-format
 msgid ""
 "could not connect to server: %s\n"
@@ -270,7 +276,7 @@ msgstr ""
 "%s 上的 TCP/IP 联接?\n"
 
 # fe-connect.c:761
-#: fe-connect.c:1561
+#: fe-connect.c:1628
 #, c-format
 msgid ""
 "could not connect to server: %s\n"
@@ -281,440 +287,477 @@ msgstr ""
 "\t服务器是否在主机 \"%s\" 上运行并且准备接受在端口\n"
 "%s 上的 TCP/IP 联接?\n"
 
-#: fe-connect.c:1612 fe-connect.c:1644 fe-connect.c:1677 fe-connect.c:2325
+#: fe-connect.c:1679
+#, c-format
+msgid "invalid integer value \"%s\" for keyword \"%s\"\n"
+msgstr ""
+
+#: fe-connect.c:1709 fe-connect.c:1743 fe-connect.c:1778 fe-connect.c:1865
+#: fe-connect.c:2508
 #, c-format
 msgid "setsockopt(%s) failed: %s\n"
 msgstr "执行setsockopt(%s) 失败: %s\n"
 
-#: fe-connect.c:1726
+#: fe-connect.c:1831
 #, c-format
 msgid "WSAIoctl(SIO_KEEPALIVE_VALS) failed: %ui\n"
 msgstr "执行WSAIoctl(SIO_KEEPALIVE_VALS)失败:%u\n"
 
 # fe-connect.c:1232
-#: fe-connect.c:2035
+#: fe-connect.c:2199
 msgid "invalid connection state, probably indicative of memory corruption\n"
 msgstr "无效的联接状态, 可能是存储器数据被破坏的标志\n"
 
-#: fe-connect.c:2101
+#: fe-connect.c:2267
 #, c-format
 msgid "invalid port number: \"%s\"\n"
 msgstr "无效端口号: \"%s\"\n"
 
 # fe-misc.c:702
-#: fe-connect.c:2117
+#: fe-connect.c:2283
 #, c-format
 msgid "could not translate host name \"%s\" to address: %s\n"
 msgstr "无法解释主机名 \"%s\" 到地址: %s\n"
 
-#: fe-connect.c:2130
+#: fe-connect.c:2296
 #, c-format
 msgid "could not parse network address \"%s\": %s\n"
 msgstr "无法分析网络地址\"%s\": %s\n"
 
-#: fe-connect.c:2143
+#: fe-connect.c:2309
 #, c-format
 msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n"
 msgstr "Unix域的套接字路径\"%s\"超长(最大为%d字节)\n"
 
 # fe-misc.c:702
-#: fe-connect.c:2158
+#: fe-connect.c:2324
 #, c-format
 msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n"
 msgstr "无法解释 Unix-domian 套接字路径 \"%s\" 到地址: %s\n"
 
 # fe-connect.c:891
-#: fe-connect.c:2262
+#: fe-connect.c:2445
 #, c-format
 msgid "could not create socket: %s\n"
 msgstr "无法创建套接字: %s\n"
 
 # fe-connect.c:708
-#: fe-connect.c:2284
+#: fe-connect.c:2467
 #, c-format
 msgid "could not set socket to nonblocking mode: %s\n"
 msgstr "无法设置套接字为非阻塞模式: %s\n"
 
 # fe-auth.c:395
-#: fe-connect.c:2294
+#: fe-connect.c:2477
 #, c-format
 msgid "could not set socket to close-on-exec mode: %s\n"
 msgstr "无法将套接字设置为执行时关闭 (close-on-exec) 模式: %s\n"
 
-#: fe-connect.c:2312
+#: fe-connect.c:2495
 msgid "keepalives parameter must be an integer\n"
 msgstr "参数keepalives必须是一个整数\n"
 
 # fe-connect.c:1263
-#: fe-connect.c:2450
+#: fe-connect.c:2635
 #, c-format
 msgid "could not get socket error status: %s\n"
 msgstr "无法获取套接字错误状态: %s\n"
 
 # fe-connect.c:1283
-#: fe-connect.c:2478
+#: fe-connect.c:2663
 #, c-format
 msgid "could not get client address from socket: %s\n"
 msgstr "无法从套接字获取客户端地址: %s\n"
 
-#: fe-connect.c:2520
+#: fe-connect.c:2705
 msgid "requirepeer parameter is not supported on this platform\n"
 msgstr "在此平台上不支持requirepeer参数\n"
 
-#: fe-connect.c:2523
+#: fe-connect.c:2708
 #, c-format
 msgid "could not get peer credentials: %s\n"
 msgstr "无法获得对等(peer)证书:%s\n"
 
-#: fe-connect.c:2546
+#: fe-connect.c:2731
 #, c-format
 msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n"
 msgstr "期望对方用户指定值为 \"%s\",  但实际的对方用户名为 \"%s\"\n"
 
 # fe-connect.c:959
-#: fe-connect.c:2580
+#: fe-connect.c:2766
+#, fuzzy, c-format
+#| msgid "could not send SSL negotiation packet: %s\n"
+msgid "could not send GSSAPI negotiation packet: %s\n"
+msgstr "无法发送 SSL 握手包: %s\n"
+
+#: fe-connect.c:2778
+msgid "GSSAPI encryption required, but was impossible (possibly no ccache, no server support, or using a local socket)\n"
+msgstr ""
+
+# fe-connect.c:959
+#: fe-connect.c:2805
 #, c-format
 msgid "could not send SSL negotiation packet: %s\n"
 msgstr "无法发送 SSL 握手包: %s\n"
 
 # fe-connect.c:1322
-#: fe-connect.c:2619
+#: fe-connect.c:2844
 #, c-format
 msgid "could not send startup packet: %s\n"
 msgstr "无法发送启动包: %s\n"
 
 # fe-connect.c:1010
-#: fe-connect.c:2689
+#: fe-connect.c:2914
 msgid "server does not support SSL, but SSL was required\n"
 msgstr "服务器不支持 SSL, 但是要求使用 SSL\n"
 
 # fe-connect.c:1001
-#: fe-connect.c:2715
+#: fe-connect.c:2940
 #, c-format
 msgid "received invalid response to SSL negotiation: %c\n"
 msgstr "收到对 SSL 握手的无效响应: %c\n"
 
+# fe-connect.c:1010
+#: fe-connect.c:3030
+#, fuzzy
+#| msgid "server does not support SSL, but SSL was required\n"
+msgid "server doesn't support GSSAPI encryption, but it was required\n"
+msgstr "服务器不支持 SSL, 但是要求使用 SSL\n"
+
+# fe-connect.c:1001
+#: fe-connect.c:3041
+#, fuzzy, c-format
+#| msgid "received invalid response to SSL negotiation: %c\n"
+msgid "received invalid response to GSSAPI negotiation: %c\n"
+msgstr "收到对 SSL 握手的无效响应: %c\n"
+
 # fe-connect.c:1378
-#: fe-connect.c:2792 fe-connect.c:2825
+#: fe-connect.c:3109 fe-connect.c:3142
 #, c-format
 msgid "expected authentication request from server, but received %c\n"
 msgstr "期待来自服务器的认证请求, 却收到 %c\n"
 
 # fe-connect.c:1490
-#: fe-connect.c:3052
+#: fe-connect.c:3389
 msgid "unexpected message from server during startup\n"
 msgstr "启动过程中收到来自服务器的非预期信息\n"
 
-#: fe-connect.c:3282
+#: fe-connect.c:3616
 #, c-format
 msgid "could not make a writable connection to server \"%s:%s\"\n"
 msgstr "无法与服务器建立可写连接\"%s:%s\"\n"
 
-#: fe-connect.c:3328
+#: fe-connect.c:3662
 #, c-format
 msgid "test \"SHOW transaction_read_only\" failed on server \"%s:%s\"\n"
 msgstr "在服务器\"%s:%s\"上测试\"SHOW transaction_read_only\"失败\n"
 
 # fe-connect.c:1549
-#: fe-connect.c:3343
+#: fe-connect.c:3677
 #, c-format
 msgid "invalid connection state %d, probably indicative of memory corruption\n"
 msgstr "无效的连接状态 %d, 这可能表示内存出现问题\n"
 
-#: fe-connect.c:3758 fe-connect.c:3818
+#: fe-connect.c:4119 fe-connect.c:4179
 #, c-format
 msgid "PGEventProc \"%s\" failed during PGEVT_CONNRESET event\n"
 msgstr "在PGEVT_CONNRESET事件触发期间执行PGEventProc \"%s\"错误\n"
 
-#: fe-connect.c:4165
+#: fe-connect.c:4526
 #, c-format
 msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n"
 msgstr "无效LDAP URL\"%s\": 模式必须是ldap://\n"
 
-#: fe-connect.c:4180
+#: fe-connect.c:4541
 #, c-format
 msgid "invalid LDAP URL \"%s\": missing distinguished name\n"
 msgstr "无效LDAP URL \"%s\": 丢失可区分的名称\n"
 
-#: fe-connect.c:4191 fe-connect.c:4244
+#: fe-connect.c:4552 fe-connect.c:4605
 #, c-format
 msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n"
 msgstr "无效LDAP URL \"%s\": 只能有一个属性\n"
 
-#: fe-connect.c:4201 fe-connect.c:4258
+#: fe-connect.c:4562 fe-connect.c:4619
 #, 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:4212
+#: fe-connect.c:4573
 #, c-format
 msgid "invalid LDAP URL \"%s\": no filter\n"
 msgstr "无效的 LDAP URL \"%s\": 没有过滤器\n"
 
-#: fe-connect.c:4233
+#: fe-connect.c:4594
 #, c-format
 msgid "invalid LDAP URL \"%s\": invalid port number\n"
 msgstr "无效LDAP URL \"%s\": 无效端口号\n"
 
-#: fe-connect.c:4267
+#: fe-connect.c:4628
 msgid "could not create LDAP structure\n"
 msgstr "无法创建LDAP结构\n"
 
-#: fe-connect.c:4343
+#: fe-connect.c:4704
 #, c-format
 msgid "lookup on LDAP server failed: %s\n"
 msgstr "在LDAP服务器上的查找失败: %s\n"
 
-#: fe-connect.c:4354
+#: fe-connect.c:4715
 msgid "more than one entry found on LDAP lookup\n"
 msgstr "在LDAP搜索上找到多个入口\n"
 
-#: fe-connect.c:4355 fe-connect.c:4367
+#: fe-connect.c:4716 fe-connect.c:4728
 msgid "no entry found on LDAP lookup\n"
 msgstr "在LDAP查找上没有发现入口\n"
 
-#: fe-connect.c:4378 fe-connect.c:4391
+#: fe-connect.c:4739 fe-connect.c:4752
 msgid "attribute has no values on LDAP lookup\n"
 msgstr "在LDAP查找上的属性没有值\n"
 
 # fe-connect.c:2475
-#: fe-connect.c:4443 fe-connect.c:4462 fe-connect.c:4991
+#: fe-connect.c:4804 fe-connect.c:4823 fe-connect.c:5352
 #, c-format
 msgid "missing \"=\" after \"%s\" in connection info string\n"
 msgstr "在联接信息字串里的 \"%s\" 后面缺少 \"=\"\n"
 
 # fe-connect.c:2558
-#: fe-connect.c:4535 fe-connect.c:5176 fe-connect.c:5950
+#: fe-connect.c:4896 fe-connect.c:5537 fe-connect.c:6311
 #, c-format
 msgid "invalid connection option \"%s\"\n"
 msgstr "非法联接选项 \"%s\"\n"
 
 # fe-connect.c:2524
-#: fe-connect.c:4551 fe-connect.c:5040
+#: fe-connect.c:4912 fe-connect.c:5401
 msgid "unterminated quoted string in connection info string\n"
 msgstr "联接信息字串中未结束的引号字串\n"
 
-#: fe-connect.c:4634
+#: fe-connect.c:4995
 #, c-format
 msgid "definition of service \"%s\" not found\n"
 msgstr "错误:没有找到服务\"%s\"的定义\n"
 
-#: fe-connect.c:4657
+#: fe-connect.c:5018
 #, c-format
 msgid "service file \"%s\" not found\n"
 msgstr "错误:没有找到服务文件\"%s\"\n"
 
-#: fe-connect.c:4670
+#: fe-connect.c:5031
 #, c-format
 msgid "line %d too long in service file \"%s\"\n"
 msgstr "在服务文件\"%2$s\"中的第%1$d行的长度太长\n"
 
-#: fe-connect.c:4741 fe-connect.c:4785
+#: fe-connect.c:5102 fe-connect.c:5146
 #, c-format
 msgid "syntax error in service file \"%s\", line %d\n"
 msgstr "在服务文件\"%s\"的第%d行出现语法错误\n"
 
-#: fe-connect.c:4752
+#: fe-connect.c:5113
 #, c-format
 msgid "nested service specifications not supported in service file \"%s\", line %d\n"
 msgstr "在服务文件\"%s\"的第%d行出现不支持的嵌套服务说明\n"
 
-#: fe-connect.c:5472
+#: fe-connect.c:5833
 #, c-format
 msgid "invalid URI propagated to internal parser routine: \"%s\"\n"
 msgstr "无效的URI传入内部解析器处理程序: \"%s\"\n"
 
-#: fe-connect.c:5549
+#: fe-connect.c:5910
 #, 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:5556
+#: fe-connect.c:5917
 #, c-format
 msgid "IPv6 host address may not be empty in URI: \"%s\"\n"
 msgstr "URI:\"%s\"中的IPv6主机地址可能不为空\n"
 
-#: fe-connect.c:5571
+#: fe-connect.c:5932
 #, c-format
 msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"\n"
 msgstr "非预期的字符\"%c\"出现在在位置%d, URI (expected \":\" or \"/\"):\"%s\"\n"
 
-#: fe-connect.c:5700
+#: fe-connect.c:6061
 #, c-format
 msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n"
 msgstr "遇到多余的键/值分隔符\"=\"在URI查询参数里: \"%s\"\n"
 
-#: fe-connect.c:5720
+#: fe-connect.c:6081
 #, c-format
 msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n"
 msgstr "缺少相应的键/值分隔符\"=\"在URI查询参数里: \"%s\"\n"
 
-#: fe-connect.c:5771
+#: fe-connect.c:6132
 #, c-format
 msgid "invalid URI query parameter: \"%s\"\n"
 msgstr "无效的URI查询参数: \"%s\"\n"
 
 # fe-connect.c:2558
-#: fe-connect.c:5845
+#: fe-connect.c:6206
 #, c-format
 msgid "invalid percent-encoded token: \"%s\"\n"
 msgstr "无效的百分号编码令牌: \"%s\"\n"
 
-#: fe-connect.c:5855
+#: fe-connect.c:6216
 #, c-format
 msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n"
 msgstr "在百分值编码的值: \"%s\"里禁止使用 %%00\n"
 
 # fe-connect.c:2744
-#: fe-connect.c:6201
+#: fe-connect.c:6581
 msgid "connection pointer is NULL\n"
 msgstr "联接指针是 NULL\n"
 
-#: fe-connect.c:6499
+#: fe-connect.c:6879
 #, c-format
 msgid "WARNING: password file \"%s\" is not a plain file\n"
 msgstr "警告: 口令文件\"%s\"不是普通文本文件\n"
 
 # fe-connect.c:2953
-#: fe-connect.c:6508
+#: fe-connect.c:6888
 #, 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:6602
+#: fe-connect.c:6982
 #, c-format
 msgid "password retrieved from file \"%s\"\n"
 msgstr "从文件\"%s\"中获取口令\n"
 
 # fe-exec.c:2130
-#: fe-exec.c:437 fe-exec.c:2779
+#: fe-exec.c:445 fe-exec.c:2822
 #, c-format
 msgid "row number %d is out of range 0..%d"
 msgstr "行号码 %d 超出了范围 0..%d"
 
-#: fe-exec.c:498 fe-protocol2.c:502 fe-protocol2.c:537 fe-protocol2.c:1056
+#: fe-exec.c:506 fe-protocol2.c:502 fe-protocol2.c:537 fe-protocol2.c:1056
 #: fe-protocol3.c:208 fe-protocol3.c:235 fe-protocol3.c:252 fe-protocol3.c:332
 #: fe-protocol3.c:727 fe-protocol3.c:958
 msgid "out of memory"
 msgstr "内存用尽"
 
-#: fe-exec.c:499 fe-protocol2.c:1402 fe-protocol3.c:1893
+#: fe-exec.c:507 fe-protocol2.c:1402 fe-protocol3.c:1911
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: fe-exec.c:847
+#: fe-exec.c:816
+#, fuzzy
+#| msgid "lookup on LDAP server failed: %s\n"
+msgid "write to server failed\n"
+msgstr "在LDAP服务器上的查找失败: %s\n"
+
+#: fe-exec.c:897
 msgid "NOTICE"
 msgstr "注意"
 
-#: fe-exec.c:905
+#: fe-exec.c:955
 msgid "PGresult cannot support more than INT_MAX tuples"
 msgstr "PGresult不能支持超过INT_MAX元组"
 
-#: fe-exec.c:917
+#: fe-exec.c:967
 msgid "size_t overflow"
 msgstr "size_t溢出"
 
 # fe-exec.c:737
-#: fe-exec.c:1192 fe-exec.c:1250 fe-exec.c:1296
+#: fe-exec.c:1244 fe-exec.c:1302 fe-exec.c:1348
 msgid "command string is a null pointer\n"
 msgstr "命令字串是一个空指针\n"
 
-#: fe-exec.c:1256 fe-exec.c:1302 fe-exec.c:1397
+#: fe-exec.c:1308 fe-exec.c:1354 fe-exec.c:1449
 msgid "number of parameters must be between 0 and 65535\n"
 msgstr "参数的个数必须介于0到65535之间\n"
 
 # fe-exec.c:737
-#: fe-exec.c:1290 fe-exec.c:1391
+#: fe-exec.c:1342 fe-exec.c:1443
 msgid "statement name is a null pointer\n"
 msgstr "声明名字是一个空指针\n"
 
-#: fe-exec.c:1310 fe-exec.c:1473 fe-exec.c:2191 fe-exec.c:2393
+#: fe-exec.c:1362 fe-exec.c:1525 fe-exec.c:2234 fe-exec.c:2436
 msgid "function requires at least protocol version 3.0\n"
 msgstr "函数至少需要 3.0 版本的协议\n"
 
 # fe-exec.c:745
-#: fe-exec.c:1428
+#: fe-exec.c:1480
 msgid "no connection to the server\n"
 msgstr "没有到服务器的联接\n"
 
 # fe-exec.c:752
-#: fe-exec.c:1435
+#: fe-exec.c:1487
 msgid "another command is already in progress\n"
 msgstr "已经有另外一条命令在处理\n"
 
-#: fe-exec.c:1549
+#: fe-exec.c:1601
 msgid "length must be given for binary parameter\n"
 msgstr "对于2进制参数必须指定长度\n"
 
 # fe-exec.c:1371
-#: fe-exec.c:1821
+#: fe-exec.c:1864
 #, c-format
 msgid "unexpected asyncStatus: %d\n"
 msgstr "意外的 asyncStatus(异步状态): %d\n"
 
-#: fe-exec.c:1841
+#: fe-exec.c:1884
 #, c-format
 msgid "PGEventProc \"%s\" failed during PGEVT_RESULTCREATE event\n"
 msgstr "在PGEVT_CONNRESET事件触发期间执行PGEventProc \"%s\"错误\n"
 
-#: fe-exec.c:2001
+#: fe-exec.c:2044
 msgid "COPY terminated by new PQexec"
 msgstr "COPY 被一个新的 PQexec 终止"
 
 # fe-exec.c:1421
-#: fe-exec.c:2009
+#: fe-exec.c:2052
 msgid "COPY IN state must be terminated first\n"
 msgstr "COPY IN 状态必须先结束\n"
 
 # fe-exec.c:1421
-#: fe-exec.c:2029
+#: fe-exec.c:2072
 msgid "COPY OUT state must be terminated first\n"
 msgstr "COPY OUT 状态必须先结束\n"
 
-#: fe-exec.c:2037
+#: fe-exec.c:2080
 msgid "PQexec not allowed during COPY BOTH\n"
 msgstr "在 COPY BOTH时不允许调用PQexec\n"
 
 # fe-exec.c:1780
-#: fe-exec.c:2283 fe-exec.c:2350 fe-exec.c:2440 fe-protocol2.c:1359
-#: fe-protocol3.c:1824
+#: fe-exec.c:2326 fe-exec.c:2393 fe-exec.c:2483 fe-protocol2.c:1359
+#: fe-protocol3.c:1842
 msgid "no COPY in progress\n"
 msgstr "没有正在处理的 COPY\n"
 
 # fe-exec.c:1884
-#: fe-exec.c:2630
+#: fe-exec.c:2673
 msgid "connection in wrong state\n"
 msgstr "联接处于错误状态\n"
 
 # fe-exec.c:2055
-#: fe-exec.c:2661
+#: fe-exec.c:2704
 msgid "invalid ExecStatusType code"
 msgstr "非法 ExecStatusType 代码"
 
-#: fe-exec.c:2688
+#: fe-exec.c:2731
 msgid "PGresult is not an error result\n"
 msgstr "PGresult不是错误的结果\n"
 
 # fe-exec.c:2108 fe-exec.c:2141
-#: fe-exec.c:2763 fe-exec.c:2786
+#: fe-exec.c:2806 fe-exec.c:2829
 #, c-format
 msgid "column number %d is out of range 0..%d"
 msgstr "列号码 %d 超出了范围 0..%d"
 
 # fe-exec.c:2130
-#: fe-exec.c:2801
+#: fe-exec.c:2844
 #, c-format
 msgid "parameter number %d is out of range 0..%d"
 msgstr "参数号%d超出了范围 0..%d"
 
 # fe-exec.c:2325
-#: fe-exec.c:3111
+#: fe-exec.c:3154
 #, c-format
 msgid "could not interpret result from server: %s"
 msgstr "无法解释来自服务器的结果: %s"
 
-#: fe-exec.c:3350 fe-exec.c:3434
+#: fe-exec.c:3393 fe-exec.c:3477
 msgid "incomplete multibyte character\n"
 msgstr "无效的多字节字符\n"
 
@@ -829,13 +872,13 @@ msgid "integer of size %lu not supported by pqPutInt"
 msgstr "pqPutInt 不支持大小为 %lu 的整数"
 
 # fe-misc.c:450 fe-misc.c:642 fe-misc.c:798
-#: fe-misc.c:637 fe-misc.c:838
+#: fe-misc.c:637 fe-misc.c:859
 msgid "connection not open\n"
 msgstr "联接未打开\n"
 
 # fe-misc.c:612 fe-misc.c:686
 #: fe-misc.c:807 fe-secure-openssl.c:206 fe-secure-openssl.c:314
-#: fe-secure.c:261 fe-secure.c:371
+#: fe-secure.c:268 fe-secure.c:385
 msgid ""
 "server closed the connection unexpectedly\n"
 "\tThis probably means the server terminated abnormally\n"
@@ -845,16 +888,16 @@ msgstr ""
 "\t这种现象通常意味着服务器在处理请求之前\n"
 "或者正在处理请求的时候意外中止\n"
 
-#: fe-misc.c:1009
+#: fe-misc.c:1046
 msgid "timeout expired\n"
 msgstr "超时满\n"
 
-#: fe-misc.c:1054
+#: fe-misc.c:1091
 msgid "invalid socket\n"
 msgstr "无效套接字\n"
 
 # fe-misc.c:389 fe-misc.c:423 fe-misc.c:838
-#: fe-misc.c:1077
+#: fe-misc.c:1114
 #, c-format
 msgid "select() failed: %s\n"
 msgstr "select() 失败: %s\n"
@@ -908,7 +951,7 @@ msgstr "查询结果时内存耗尽"
 msgid "lost synchronization with server, resetting connection"
 msgstr "失去与服务器同步, 重置连接"
 
-#: fe-protocol2.c:1548 fe-protocol2.c:1580 fe-protocol3.c:2096
+#: fe-protocol2.c:1536 fe-protocol2.c:1568 fe-protocol3.c:2099
 #, c-format
 msgid "protocol error: id=0x%x\n"
 msgstr "协议错误: id=0x%x\n"
@@ -957,76 +1000,76 @@ msgid "no error message available\n"
 msgstr "没有可用的错误消息\n"
 
 #. translator: %s represents a digit string
-#: fe-protocol3.c:1042 fe-protocol3.c:1061
+#: fe-protocol3.c:1060 fe-protocol3.c:1079
 #, c-format
 msgid " at character %s"
 msgstr " 在字符 %s"
 
-#: fe-protocol3.c:1074
+#: fe-protocol3.c:1092
 #, c-format
 msgid "DETAIL:  %s\n"
 msgstr "描述:  %s\n"
 
-#: fe-protocol3.c:1077
+#: fe-protocol3.c:1095
 #, c-format
 msgid "HINT:  %s\n"
 msgstr "提示:  %s\n"
 
-#: fe-protocol3.c:1080
+#: fe-protocol3.c:1098
 #, c-format
 msgid "QUERY:  %s\n"
 msgstr "查询:  %s\n"
 
-#: fe-protocol3.c:1087
+#: fe-protocol3.c:1105
 #, c-format
 msgid "CONTEXT:  %s\n"
 msgstr "背景:  %s\n"
 
-#: fe-protocol3.c:1096
+#: fe-protocol3.c:1114
 #, c-format
 msgid "SCHEMA NAME:  %s\n"
 msgstr "方案名:  %s\n"
 
-#: fe-protocol3.c:1100
+#: fe-protocol3.c:1118
 #, c-format
 msgid "TABLE NAME:  %s\n"
 msgstr "表名: %s\n"
 
-#: fe-protocol3.c:1104
+#: fe-protocol3.c:1122
 #, c-format
 msgid "COLUMN NAME:  %s\n"
 msgstr "列名: %s\n"
 
-#: fe-protocol3.c:1108
+#: fe-protocol3.c:1126
 #, c-format
 msgid "DATATYPE NAME:  %s\n"
 msgstr "数据类型名: %s\n"
 
-#: fe-protocol3.c:1112
+#: fe-protocol3.c:1130
 #, c-format
 msgid "CONSTRAINT NAME:  %s\n"
 msgstr "约束名: %s\n"
 
-#: fe-protocol3.c:1124
+#: fe-protocol3.c:1142
 msgid "LOCATION:  "
 msgstr "位置:  "
 
-#: fe-protocol3.c:1126
+#: fe-protocol3.c:1144
 #, c-format
 msgid "%s, "
 msgstr "%s, "
 
-#: fe-protocol3.c:1128
+#: fe-protocol3.c:1146
 #, c-format
 msgid "%s:%s"
 msgstr "%s:%s"
 
-#: fe-protocol3.c:1323
+#: fe-protocol3.c:1341
 #, c-format
 msgid "LINE %d: "
 msgstr "第%d行"
 
-#: fe-protocol3.c:1718
+#: fe-protocol3.c:1736
 msgid "PQgetline: not doing text COPY OUT\n"
 msgstr "PQgetline: not doing text COPY OUT\n"
 
@@ -1199,13 +1242,13 @@ msgid "SSL error code %lu"
 msgstr "SSL 错误代码 %lu"
 
 # fe-misc.c:515 fe-misc.c:595
-#: fe-secure.c:269
+#: fe-secure.c:276
 #, c-format
 msgid "could not receive data from server: %s\n"
 msgstr "无法从服务器接收数据: %s\n"
 
 # fe-misc.c:702
-#: fe-secure.c:378
+#: fe-secure.c:392
 #, c-format
 msgid "could not send data to server: %s\n"
 msgstr "无法向服务器发送数据: %s\n"
index 284bfe59c0d6cb57daeacf3cf48a591e4c4e6544..11a40b06fc9e2da1eec333382b324149d791874a 100644 (file)
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: pg_basebackup (PostgreSQL) 9.2\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2016-04-18 04:44+0000\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:13+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) <ywpeng@whu.edu.cn>\n"
@@ -18,6 +18,21 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.7\n"
 
+#: ../../../src/common/logging.c:188
+#, c-format
+msgid "fatal: "
+msgstr ""
+
+#: ../../../src/common/logging.c:195
+#, c-format
+msgid "error: "
+msgstr ""
+
+#: ../../../src/common/logging.c:202
+#, c-format
+msgid "warning: "
+msgstr ""
+
 #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75
 #: ../../common/fe_memutils.c:98
 #, c-format
@@ -30,33 +45,135 @@ msgstr "内存溢出\n"
 msgid "cannot duplicate null pointer (internal error)\n"
 msgstr "无法复制空指针 (内部错误)\n"
 
-#: pg_basebackup.c:154
+#: ../../common/file_utils.c:81 ../../common/file_utils.c:183
+#: pg_receivewal.c:267 pg_recvlogical.c:342
 #, c-format
-msgid "%s: directory name too long\n"
-msgstr "字典名: \"%s\"太长\n"
+msgid "could not stat file \"%s\": %m"
+msgstr "无法取文件 \"%s\" 的状态: %m"
 
-#: pg_basebackup.c:164
+#: ../../common/file_utils.c:160 pg_receivewal.c:170
 #, c-format
-msgid "%s: multiple \"=\" signs in tablespace mapping\n"
-msgstr "%s: 多个 \"=\" 号出现在表空间的映射中\n"
+msgid "could not open directory \"%s\": %m"
+msgstr "无法打开目录 \"%s\": %m"
 
-#: pg_basebackup.c:177
+#: ../../common/file_utils.c:194 pg_receivewal.c:338
 #, c-format
-msgid ""
-"%s: invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"\n"
-msgstr "%s: 无效表空间映射表格式: \"%s\", 有效格式必须为: \"OLDDIR=NEWDIR\"\n"
+msgid "could not read directory \"%s\": %m"
+msgstr "无法读取目录 \"%s\": %m"
 
-#: pg_basebackup.c:190
+#: ../../common/file_utils.c:226 ../../common/file_utils.c:285
+#: ../../common/file_utils.c:359 pg_basebackup.c:1761
 #, c-format
-msgid "%s: old directory is not an absolute path in tablespace mapping: %s\n"
-msgstr "%s:: 在表空间映射表:%s中的旧目录不是一个绝对路径\n"
+msgid "could not open file \"%s\": %m"
+msgstr "无法打开文件 \"%s\": %m"
+
+#: ../../common/file_utils.c:297 ../../common/file_utils.c:367
+#: pg_recvlogical.c:195
+#, c-format
+msgid "could not fsync file \"%s\": %m"
+msgstr "无法 fsync 文件 \"%s\": %m"
 
-#: pg_basebackup.c:197
+#: ../../common/file_utils.c:377
 #, c-format
-msgid "%s: new directory is not an absolute path in tablespace mapping: %s\n"
+msgid "could not rename file \"%s\" to \"%s\": %m"
+msgstr "无法把文件 \"%s\" 重命名为 \"%s\": %m"
+
+#: pg_basebackup.c:171
+#, fuzzy, c-format
+#| msgid "%s: removing data directory \"%s\"\n"
+msgid "removing data directory \"%s\""
+msgstr "%s: 删除数据目录 \"%s\"\n"
+
+#: pg_basebackup.c:173
+#, fuzzy, c-format
+#| msgid "%s: failed to remove data directory\n"
+msgid "failed to remove data directory"
+msgstr "%s: 删除数据目录失败\n"
+
+#: pg_basebackup.c:177
+#, fuzzy, c-format
+#| msgid "%s: removing contents of data directory \"%s\"\n"
+msgid "removing contents of data directory \"%s\""
+msgstr "%s: 删除数据目录 \"%s\" 的内容\n"
+
+#: pg_basebackup.c:179
+#, fuzzy, c-format
+#| msgid "%s: failed to remove contents of data directory\n"
+msgid "failed to remove contents of data directory"
+msgstr "%s: 删除数据目录内容失败\n"
+
+#: pg_basebackup.c:184
+#, fuzzy, c-format
+#| msgid "%s: removing WAL directory \"%s\"\n"
+msgid "removing WAL directory \"%s\""
+msgstr "%s: 正在删除WAL目录\"%s\"\n"
+
+#: pg_basebackup.c:186
+#, fuzzy, c-format
+#| msgid "%s: failed to remove WAL directory\n"
+msgid "failed to remove WAL directory"
+msgstr "%s: 删除WAL目录失败\n"
+
+#: pg_basebackup.c:190
+#, fuzzy, c-format
+#| msgid "%s: removing contents of WAL directory \"%s\"\n"
+msgid "removing contents of WAL directory \"%s\""
+msgstr "%s: 正在删除WAL目录 \"%s\" 的内容\n"
+
+#: pg_basebackup.c:192
+#, fuzzy, c-format
+#| msgid "%s: failed to remove contents of WAL directory\n"
+msgid "failed to remove contents of WAL directory"
+msgstr "%s: 删除WAL目录内容失败\n"
+
+#: pg_basebackup.c:198
+#, fuzzy, c-format
+#| msgid "%s: data directory \"%s\" not removed at user's request\n"
+msgid "data directory \"%s\" not removed at user's request"
+msgstr "%s: 在用户的要求下数据库目录 \"%s\" 不被删除\n"
+
+#: pg_basebackup.c:201
+#, fuzzy, c-format
+#| msgid "%s: WAL directory \"%s\" not removed at user's request\n"
+msgid "WAL directory \"%s\" not removed at user's request"
+msgstr "%s: 在用户的要求下数据库目录 \"%s\" 不被删除\n"
+
+#: pg_basebackup.c:205
+#, c-format
+msgid "changes to tablespace directories will not be undone"
+msgstr ""
+
+#: pg_basebackup.c:246
+#, fuzzy, c-format
+#| msgid "%s: directory name too long\n"
+msgid "directory name too long"
+msgstr "字典名: \"%s\"太长\n"
+
+#: pg_basebackup.c:256
+#, fuzzy, c-format
+#| msgid "%s: multiple \"=\" signs in tablespace mapping\n"
+msgid "multiple \"=\" signs in tablespace mapping"
+msgstr "%s: 多个 \"=\" 号出现在表空间的映射中\n"
+
+#: pg_basebackup.c:268
+#, fuzzy, c-format
+#| msgid "%s: invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"\n"
+msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\""
+msgstr "%s: 无效表空间映射表格式: \"%s\", 有效格式必须为: \"OLDDIR=NEWDIR\"\n"
+
+#: pg_basebackup.c:280
+#, fuzzy, c-format
+#| msgid "%s: old directory is not an absolute path in tablespace mapping: %s\n"
+msgid "old directory is not an absolute path in tablespace mapping: %s"
+msgstr "%s:: 在表空间映射表:%s中的旧目录不是一个绝对路径\n"
+
+#: pg_basebackup.c:287
+#, fuzzy, c-format
+#| msgid "%s: new directory is not an absolute path in tablespace mapping: %s\n"
+msgid "new directory is not an absolute path in tablespace mapping: %s"
 msgstr "%s:: 在表空间映射表:%s中的新目录不是一个绝对路径\n"
 
-#: pg_basebackup.c:231
+#: pg_basebackup.c:326
 #, c-format
 msgid ""
 "%s takes a base backup of a running PostgreSQL server.\n"
@@ -65,17 +182,17 @@ msgstr ""
 "%s 在运行的PostgreSQL服务器上执行基础备份.\n"
 "\n"
 
-#: pg_basebackup.c:233 pg_receivexlog.c:66 pg_recvlogical.c:69
+#: pg_basebackup.c:328 pg_receivewal.c:81 pg_recvlogical.c:78
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: pg_basebackup.c:234 pg_receivexlog.c:67 pg_recvlogical.c:70
+#: pg_basebackup.c:329 pg_receivewal.c:82 pg_recvlogical.c:79
 #, c-format
 msgid "  %s [OPTION]...\n"
 msgstr "  %s [选项]...\n"
 
-#: pg_basebackup.c:235
+#: pg_basebackup.c:330
 #, c-format
 msgid ""
 "\n"
@@ -84,17 +201,17 @@ msgstr ""
 "\n"
 "控制输出的选项:\n"
 
-#: pg_basebackup.c:236
+#: pg_basebackup.c:331
 #, c-format
 msgid "  -D, --pgdata=DIRECTORY receive base backup into directory\n"
 msgstr " -D, --pgdata=DIRECTORY 接收基础备份到指定目录\n"
 
-#: pg_basebackup.c:237
+#: pg_basebackup.c:332
 #, c-format
 msgid "  -F, --format=p|t       output format (plain (default), tar)\n"
 msgstr "  -F, --format=p|t       输出格式 (纯文本 (缺省值), tar压缩格式)\n"
 
-#: pg_basebackup.c:238
+#: pg_basebackup.c:333
 #, c-format
 msgid ""
 "  -r, --max-rate=RATE    maximum transfer rate to transfer data directory\n"
@@ -103,22 +220,19 @@ msgstr ""
 "  -r, --max-rate=RATE    传输数据目录的最大传输速率\n"
 "                         (单位 kB/s, 也可以使用后缀\"k\" 或 \"M\")\n"
 
-# help.c:121
-#: pg_basebackup.c:240
-#, c-format
+#: pg_basebackup.c:335
+#, fuzzy, c-format
+#| msgid ""
+#| "  -R, --write-recovery-conf\n"
+#| "                         write recovery.conf for replication\n"
 msgid ""
 "  -R, --write-recovery-conf\n"
-"                         write recovery.conf after backup\n"
+"                         write configuration for replication\n"
 msgstr ""
 "  -R, --write-recovery-conf\n"
-"                           备份后对文件recovery.conf进行写操作\n"
-
-#: pg_basebackup.c:242 pg_receivexlog.c:74
-#, c-format
-msgid "  -S, --slot=SLOTNAME    replication slot to use\n"
-msgstr "  -S, --slot=SLOTNAME    用于复制的槽名\n"
+"                         为复制写recovery.conf文件\n"
 
-#: pg_basebackup.c:243
+#: pg_basebackup.c:337
 #, c-format
 msgid ""
 "  -T, --tablespace-mapping=OLDDIR=NEWDIR\n"
@@ -127,38 +241,31 @@ msgstr ""
 "  -T, --tablespace-mapping=OLDDIR=NEWDIR\n"
 "                         将表空间由 OLDDIR 重定位到 NEWDIR\n"
 
-#: pg_basebackup.c:245
+#: pg_basebackup.c:339
 #, c-format
-msgid ""
-"  -x, --xlog             include required WAL files in backup (fetch mode)\n"
-msgstr "  -x, --xlog             在备份中包含必需的WAL文件(fetch 模式)\n"
+msgid "      --waldir=WALDIR    location for the write-ahead log directory\n"
+msgstr "      --waldir=WALDIR    预写日志目录的位置\n"
 
-#: pg_basebackup.c:246
+#: pg_basebackup.c:340
 #, c-format
 msgid ""
-"  -X, --xlog-method=fetch|stream\n"
+"  -X, --wal-method=none|fetch|stream\n"
 "                         include required WAL files with specified method\n"
 msgstr ""
-"  -X, --xlog-method=fetch|stream\n"
+"  -X, --wal-method=none|fetch|stream\n"
 "                         按指定的模式包含必需的WAL日志文件\n"
 
-#: pg_basebackup.c:248
-#, c-format
-msgid "      --xlogdir=XLOGDIR  location for the transaction log directory\n"
-msgstr "      --xlogdir=XLOGDIR  当前事务日志目录的位置\n"
-
-#: pg_basebackup.c:249
+#: pg_basebackup.c:342
 #, c-format
 msgid "  -z, --gzip             compress tar output\n"
 msgstr "  -z, --gzip             对tar文件进行压缩输出\n"
 
-#: pg_basebackup.c:250
+#: pg_basebackup.c:343
 #, c-format
-msgid ""
-"  -Z, --compress=0-9     compress tar output with given compression level\n"
+msgid "  -Z, --compress=0-9     compress tar output with given compression level\n"
 msgstr "  -Z, --compress=0-9     按给定的压缩级别对tar文件进行压缩输出\n"
 
-#: pg_basebackup.c:251
+#: pg_basebackup.c:344
 #, c-format
 msgid ""
 "\n"
@@ -167,7 +274,7 @@ msgstr ""
 "\n"
 "一般选项:\n"
 
-#: pg_basebackup.c:252
+#: pg_basebackup.c:345
 #, c-format
 msgid ""
 "  -c, --checkpoint=fast|spread\n"
@@ -176,32 +283,66 @@ msgstr ""
 "  -c, --checkpoint=fast|spread\n"
 "                         设置检查点方式(fast或者spread)\n"
 
-#: pg_basebackup.c:254
+#: pg_basebackup.c:347
+#, c-format
+msgid "  -C, --create-slot      create replication slot\n"
+msgstr "  -C, --create-slot      创建复制槽\n"
+
+#: pg_basebackup.c:348
 #, c-format
 msgid "  -l, --label=LABEL      set backup label\n"
 msgstr "  -l, --label=LABEL      设置备份标签\n"
 
-#: pg_basebackup.c:255
+#: pg_basebackup.c:349
+#, c-format
+msgid "  -n, --no-clean         do not clean up after errors\n"
+msgstr "  -n, --no-clean         出错后不清理\n"
+
+#: pg_basebackup.c:350
+#, c-format
+msgid "  -N, --no-sync          do not wait for changes to be written safely to disk\n"
+msgstr "  -N, --no-sync          不用等待变化安全的写入磁盘\n"
+
+#: pg_basebackup.c:351
 #, c-format
 msgid "  -P, --progress         show progress information\n"
 msgstr "  -P, --progress         显示进度信息\n"
 
-#: pg_basebackup.c:256 pg_receivexlog.c:76 pg_recvlogical.c:89
+#: pg_basebackup.c:352 pg_receivewal.c:91
+#, c-format
+msgid "  -S, --slot=SLOTNAME    replication slot to use\n"
+msgstr "  -S, --slot=SLOTNAME    用于复制的槽名\n"
+
+#: pg_basebackup.c:353 pg_receivewal.c:93 pg_recvlogical.c:99
 #, c-format
 msgid "  -v, --verbose          output verbose messages\n"
 msgstr "  -v, --verbose          输出详细的消息\n"
 
-#: pg_basebackup.c:257 pg_receivexlog.c:77 pg_recvlogical.c:90
+#: pg_basebackup.c:354 pg_receivewal.c:94 pg_recvlogical.c:100
 #, c-format
 msgid "  -V, --version          output version information, then exit\n"
 msgstr "  -V, --version          输出版本信息, 然后退出\n"
 
-#: pg_basebackup.c:258 pg_receivexlog.c:78 pg_recvlogical.c:91
+#: pg_basebackup.c:355
+#, c-format
+msgid "      --no-slot          prevent creation of temporary replication slot\n"
+msgstr "      --no-slot          防止创建临时复制槽\n"
+
+#: pg_basebackup.c:356
+#, c-format
+msgid ""
+"      --no-verify-checksums\n"
+"                         do not verify checksums\n"
+msgstr ""
+"      --no-verify-checksums\n"
+"                         不验证校验和\n"
+
+#: pg_basebackup.c:358 pg_receivewal.c:96 pg_recvlogical.c:101
 #, c-format
 msgid "  -?, --help             show this help, then exit\n"
 msgstr "  -?, --help             显示帮助, 然后退出\n"
 
-#: pg_basebackup.c:259 pg_receivexlog.c:79 pg_recvlogical.c:92
+#: pg_basebackup.c:359 pg_receivewal.c:97 pg_recvlogical.c:102
 #, c-format
 msgid ""
 "\n"
@@ -210,447 +351,559 @@ msgstr ""
 "\n"
 "联接选项:\n"
 
-#: pg_basebackup.c:260 pg_receivexlog.c:80
+#: pg_basebackup.c:360 pg_receivewal.c:98
 #, c-format
 msgid "  -d, --dbname=CONNSTR   connection string\n"
 msgstr "  -d, --dbname=CONNSTR        连接串\n"
 
-#: pg_basebackup.c:261 pg_receivexlog.c:81 pg_recvlogical.c:94
+#: pg_basebackup.c:361 pg_receivewal.c:99 pg_recvlogical.c:104
 #, c-format
 msgid "  -h, --host=HOSTNAME    database server host or socket directory\n"
 msgstr "  -h, --host=HOSTNAME    数据库服务器主机或者是socket目录\n"
 
-#: pg_basebackup.c:262 pg_receivexlog.c:82 pg_recvlogical.c:95
+#: pg_basebackup.c:362 pg_receivewal.c:100 pg_recvlogical.c:105
 #, c-format
 msgid "  -p, --port=PORT        database server port number\n"
 msgstr "  -p, --port=PORT        数据库服务器端口号\n"
 
-#: pg_basebackup.c:263
+#: pg_basebackup.c:363
 #, c-format
 msgid ""
 "  -s, --status-interval=INTERVAL\n"
-"                         time between status packets sent to server (in "
-"seconds)\n"
+"                         time between status packets sent to server (in seconds)\n"
 msgstr ""
 "  -s, --status-interval=INTERVAL\n"
 "                         发往服务器的状态包的时间间隔 (以秒计)\n"
 
-#: pg_basebackup.c:265 pg_receivexlog.c:83 pg_recvlogical.c:96
+#: pg_basebackup.c:365 pg_receivewal.c:101 pg_recvlogical.c:106
 #, c-format
 msgid "  -U, --username=NAME    connect as specified database user\n"
 msgstr "  -U, --username=NAME    指定连接所需的数据库用户名\n"
 
-#: pg_basebackup.c:266 pg_receivexlog.c:84 pg_recvlogical.c:97
+#: pg_basebackup.c:366 pg_receivewal.c:102 pg_recvlogical.c:107
 #, c-format
 msgid "  -w, --no-password      never prompt for password\n"
 msgstr "  -w, --no-password      禁用输入密码的提示\n"
 
-#: pg_basebackup.c:267 pg_receivexlog.c:85 pg_recvlogical.c:98
+#: pg_basebackup.c:367 pg_receivewal.c:103 pg_recvlogical.c:108
 #, c-format
-msgid ""
-"  -W, --password         force password prompt (should happen "
-"automatically)\n"
+msgid "  -W, --password         force password prompt (should happen automatically)\n"
 msgstr "  -W, --password         强制提示输入密码 (应该自动发生)\n"
 
-#: pg_basebackup.c:268 pg_receivexlog.c:89 pg_recvlogical.c:99
-#, c-format
+#: pg_basebackup.c:368 pg_receivewal.c:107 pg_recvlogical.c:109
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgid ""
 "\n"
-"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+"Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgstr ""
 "\n"
-"错误报告至 <pgsql-bugs@postgresql.org>.\n"
+"报告错误至 <pgql-bugs@postgresql.org>.\n"
 
-#: pg_basebackup.c:311
-#, c-format
-msgid "%s: could not read from ready pipe: %s\n"
+#: pg_basebackup.c:411
+#, fuzzy, c-format
+#| msgid "%s: could not read from ready pipe: %s\n"
+msgid "could not read from ready pipe: %m"
 msgstr "%s: 无法从准备就绪的管道: %s读\n"
 
-#: 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:435
-#, c-format
-msgid "%s: could not create pipe for background process: %s\n"
+#: pg_basebackup.c:417 pg_basebackup.c:545 pg_basebackup.c:2099
+#: streamutil.c:450
+#, fuzzy, c-format
+#| msgid "%s: could not parse write-ahead log location \"%s\"\n"
+msgid "could not parse write-ahead log location \"%s\""
+msgstr "%s: 无法解析来自 \"%s\"的预写日志\n"
+
+#: pg_basebackup.c:510 pg_receivewal.c:442
+#, fuzzy, c-format
+#| msgid "%s: could not finish writing WAL files: %s\n"
+msgid "could not finish writing WAL files: %m"
+msgstr "%s: 无法完成写入WAL文件: %s\n"
+
+#: pg_basebackup.c:557
+#, fuzzy, c-format
+#| msgid "%s: could not create pipe for background process: %s\n"
+msgid "could not create pipe for background process: %m"
 msgstr "%s: 无法为后台进程: %s创建管道\n"
 
-#: 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:592
+#, fuzzy, c-format
+#| msgid "%s: created temporary replication slot \"%s\"\n"
+msgid "created temporary replication slot \"%s\""
+msgstr "%s: 已创建临时复制槽\"%s\"\n"
+
+#: pg_basebackup.c:595
+#, fuzzy, c-format
+#| msgid "%s: created replication slot \"%s\"\n"
+msgid "created replication slot \"%s\""
+msgstr "%s: 已创建复制槽\"%s\"\n"
 
-#: pg_basebackup.c:478
+#: pg_basebackup.c:615 pg_basebackup.c:668 pg_basebackup.c:1503
 #, c-format
-msgid "%s: could not create background process: %s\n"
+msgid "could not create directory \"%s\": %m"
+msgstr "无法创建目录 \"%s\": %m"
+
+#: pg_basebackup.c:633
+#, fuzzy, c-format
+#| msgid "%s: could not create background process: %s\n"
+msgid "could not create background process: %m"
 msgstr "%s: 无法创建后台进程: %s\n"
 
-#: pg_basebackup.c:490
-#, c-format
-msgid "%s: could not create background thread: %s\n"
+#: pg_basebackup.c:645
+#, fuzzy, c-format
+#| msgid "%s: could not create background thread: %s\n"
+msgid "could not create background thread: %m"
 msgstr "%s: 无法创建后台线程: %s\n"
 
-#: pg_basebackup.c:534
-#, c-format
-msgid "%s: directory \"%s\" exists but is not empty\n"
+#: pg_basebackup.c:689
+#, fuzzy, c-format
+#| msgid "%s: directory \"%s\" exists but is not empty\n"
+msgid "directory \"%s\" exists but is not empty"
 msgstr "%s: 目录\"%s\"已存在,但不是空的\n"
 
-#: pg_basebackup.c:542
+#: pg_basebackup.c:696
 #, c-format
-msgid "%s: could not access directory \"%s\": %s\n"
-msgstr "%s: 无法访问目录 \"%s\": %s\n"
+msgid "could not access directory \"%s\": %m"
+msgstr "无法访问目录 \"%s\": %m"
 
-#: pg_basebackup.c:604
+#: pg_basebackup.c:757
 #, 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:616
+#: pg_basebackup.c:769
 #, 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:632
+#: pg_basebackup.c:785
 #, 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:654
-#, c-format
-msgid "%s: transfer rate \"%s\" is not a valid value\n"
+#: pg_basebackup.c:809
+#, fuzzy, c-format
+#| msgid "%s: transfer rate \"%s\" is not a valid value\n"
+msgid "transfer rate \"%s\" is not a valid value"
 msgstr "%s: 传输速率\"%s\"不是一个有效值\n"
 
-#: pg_basebackup.c:661
-#, c-format
-msgid "%s: invalid transfer rate \"%s\": %s\n"
+#: pg_basebackup.c:814
+#, fuzzy, c-format
+#| msgid "%s: invalid transfer rate \"%s\": %s\n"
+msgid "invalid transfer rate \"%s\": %m"
 msgstr "%s:无效的传输速率\"%s\": %s\n"
 
-#: pg_basebackup.c:671
-#, c-format
-msgid "%s: transfer rate must be greater than zero\n"
+#: pg_basebackup.c:823
+#, fuzzy, c-format
+#| msgid "%s: transfer rate must be greater than zero\n"
+msgid "transfer rate must be greater than zero"
 msgstr "%s: 传输速率必须大于0\n"
 
-#: pg_basebackup.c:705
-#, c-format
-msgid "%s: invalid --max-rate unit: \"%s\"\n"
+#: pg_basebackup.c:855
+#, fuzzy, c-format
+#| msgid "%s: invalid --max-rate unit: \"%s\"\n"
+msgid "invalid --max-rate unit: \"%s\""
 msgstr "%s: 无效的 --max-rate 单位: \"%s\"\n"
 
-#: pg_basebackup.c:714
-#, c-format
-msgid "%s: transfer rate \"%s\" exceeds integer range\n"
+#: pg_basebackup.c:862
+#, fuzzy, c-format
+#| msgid "%s: transfer rate \"%s\" exceeds integer range\n"
+msgid "transfer rate \"%s\" exceeds integer range"
 msgstr "%s:传输速率 \"%s\" 超出了整数范围\n"
 
-#: pg_basebackup.c:726
-#, c-format
-msgid "%s: transfer rate \"%s\" is out of range\n"
+#: pg_basebackup.c:872
+#, fuzzy, c-format
+#| msgid "%s: transfer rate \"%s\" is out of range\n"
+msgid "transfer rate \"%s\" is out of range"
 msgstr "%s: 传输速率 \"%s\" 超出范围\n"
 
-#: pg_basebackup.c:750
-#, c-format
-msgid "%s: could not write to compressed file \"%s\": %s\n"
+#: pg_basebackup.c:894
+#, fuzzy, c-format
+#| msgid "%s: could not write to compressed file \"%s\": %s\n"
+msgid "could not write to compressed file \"%s\": %s"
 msgstr "%s: 无法往压缩文件里写\"%s\": %s\n"
 
-#: pg_basebackup.c:760 pg_basebackup.c:1357 pg_basebackup.c:1582
+#: pg_basebackup.c:904 pg_basebackup.c:1592 pg_basebackup.c:1767
 #, c-format
-msgid "%s: could not write to file \"%s\": %s\n"
-msgstr "%s: 无法写文件 \"%s\": %s\n"
+msgid "could not write to file \"%s\": %m"
+msgstr "无法写入文件 \"%s\": %m"
 
-#: pg_basebackup.c:815 pg_basebackup.c:836 pg_basebackup.c:864
-#, c-format
-msgid "%s: could not set compression level %d: %s\n"
+#: pg_basebackup.c:969 pg_basebackup.c:989 pg_basebackup.c:1016
+#, fuzzy, c-format
+#| msgid "%s: could not set compression level %d: %s\n"
+msgid "could not set compression level %d: %s"
 msgstr "%s: 无法设置压缩级别 %d: %s\n"
 
-#: pg_basebackup.c:885
-#, c-format
-msgid "%s: could not create compressed file \"%s\": %s\n"
+#: pg_basebackup.c:1036
+#, fuzzy, c-format
+#| msgid "%s: could not create compressed file \"%s\": %s\n"
+msgid "could not create compressed file \"%s\": %s"
 msgstr "%s: 无法创建压缩文件 \"%s\": %s\n"
 
-#: pg_basebackup.c:896 pg_basebackup.c:1317 pg_basebackup.c:1575
+#: pg_basebackup.c:1047 pg_basebackup.c:1553 pg_basebackup.c:1779
 #, c-format
-msgid "%s: could not create file \"%s\": %s\n"
-msgstr "%s: 无法创建文件 \"%s\": %s\n"
+msgid "could not create file \"%s\": %m"
+msgstr "无法创建文件 \"%s\": %m"
 
-#: pg_basebackup.c:908 pg_basebackup.c:1172
-#, c-format
-msgid "%s: could not get COPY data stream: %s"
+#: pg_basebackup.c:1058 pg_basebackup.c:1412
+#, fuzzy, c-format
+#| msgid "%s: could not get COPY data stream: %s"
+msgid "could not get COPY data stream: %s"
 msgstr "%s: 无法得到复制数据流: %s"
 
-#: pg_basebackup.c:965
-#, c-format
-msgid "%s: could not close compressed file \"%s\": %s\n"
+#: pg_basebackup.c:1143
+#, fuzzy, c-format
+#| msgid "%s: could not close compressed file \"%s\": %s\n"
+msgid "could not close compressed file \"%s\": %s"
 msgstr "%s: 无法关闭压缩文件 \"%s\": %s\n"
 
-#: pg_basebackup.c:978 pg_recvlogical.c:577 receivelog.c:203 receivelog.c:351
-#: receivelog.c:738
+#: pg_basebackup.c:1155 pg_recvlogical.c:608
 #, c-format
-msgid "%s: could not close file \"%s\": %s\n"
-msgstr "%s: 无法关闭文件 \"%s\": %s\n"
+msgid "could not close file \"%s\": %m"
+msgstr "无法关闭文件 \"%s\": %m"
 
-#: 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"
+#: pg_basebackup.c:1166 pg_basebackup.c:1441 pg_recvlogical.c:437
+#: receivelog.c:968
+#, fuzzy, c-format
+#| msgid "%s: could not read COPY data: %s"
+msgid "could not read COPY data: %s"
 msgstr "%s: 无法读取复制数据: %s"
 
-#: pg_basebackup.c:1215
-#, c-format
-msgid "%s: invalid tar block header size: %d\n"
+#: pg_basebackup.c:1455
+#, fuzzy, c-format
+#| msgid "%s: invalid tar block header size: %d\n"
+msgid "invalid tar block header size: %d"
 msgstr "%s: 无效的tar压缩块头大小: %d\n"
 
-#: pg_basebackup.c:1271
+#: pg_basebackup.c:1510
 #, c-format
-msgid "%s: could not set permissions on directory \"%s\": %s\n"
-msgstr "%s: 无法设置目录权限 \"%s\": %s\n"
+msgid "could not set permissions on directory \"%s\": %m"
+msgstr "无法为目录 \"%s\" 的设置权限: %m"
 
-#: pg_basebackup.c:1295
-#, c-format
-msgid "%s: could not create symbolic link from \"%s\" to \"%s\": %s\n"
+#: pg_basebackup.c:1533
+#, fuzzy, c-format
+#| msgid "%s: could not create symbolic link from \"%s\" to \"%s\": %s\n"
+msgid "could not create symbolic link from \"%s\" to \"%s\": %m"
 msgstr "%s: 无法创建从 \"%s\" 到 \"%s\"的符号链接: %s\n"
 
-#: pg_basebackup.c:1304
-#, c-format
-msgid "%s: unrecognized link indicator \"%c\"\n"
+#: pg_basebackup.c:1540
+#, fuzzy, c-format
+#| msgid "%s: unrecognized link indicator \"%c\"\n"
+msgid "unrecognized link indicator \"%c\""
 msgstr "%s: 无法识别的链接标识符 \"%c\"\n"
 
-#: pg_basebackup.c:1324
-#, c-format
-msgid "%s: could not set permissions on file \"%s\": %s\n"
+#: pg_basebackup.c:1559
+#, fuzzy, c-format
+#| msgid "%s: could not set permissions on file \"%s\": %s\n"
+msgid "could not set permissions on file \"%s\": %m"
 msgstr "%s: 无法设置文件 \"%s\"的访问权限: %s\n"
 
-#: pg_basebackup.c:1383
-#, c-format
-msgid "%s: COPY stream ended before last file was finished\n"
+#: pg_basebackup.c:1616
+#, fuzzy, c-format
+#| msgid "%s: COPY stream ended before last file was finished\n"
+msgid "COPY stream ended before last file was finished"
 msgstr "%s: 复制流在最后一个文件结束前终止\n"
 
-#: pg_basebackup.c:1469 pg_basebackup.c:1489 pg_basebackup.c:1496
-#: pg_basebackup.c:1550
+#: pg_basebackup.c:1643 pg_basebackup.c:1663 pg_basebackup.c:1677
+#: pg_basebackup.c:1728
 #, c-format
-msgid "%s: out of memory\n"
-msgstr "%s: 内存溢出\n"
+msgid "out of memory"
+msgstr "内存用尽"
 
-#: pg_basebackup.c:1627
-#, c-format
-msgid "%s: incompatible server version %s\n"
+#: pg_basebackup.c:1820
+#, fuzzy, c-format
+#| msgid "%s: incompatible server version %s\n"
+msgid "incompatible server version %s"
 msgstr "%s: 不兼容的服务器版本号 %s\n"
 
-#: 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
+#: pg_basebackup.c:1835
 #, c-format
-msgid "%s: could not send replication command \"%s\": %s"
-msgstr "%s: 无法发送复制命令 \"%s\": %s"
-
-#: pg_basebackup.c:1685
-#, c-format
-msgid "%s: could not initiate base backup: %s"
-msgstr "%s: 无法发起基础备份: %s"
+msgid "HINT: use -X none or -X fetch to disable log streaming"
+msgstr ""
 
-#: pg_basebackup.c:1692
+#: pg_basebackup.c:1860
 #, c-format
-msgid ""
-"%s: server returned unexpected response to BASE_BACKUP command; got %d rows "
-"and %d fields, expected %d rows and %d fields\n"
+msgid "initiating base backup, waiting for checkpoint to complete"
 msgstr ""
-"%s: 服务器对BASE_BACKUP命令返回意外的响应; 得到 %d 行和 %d 列, 期望值为: %d "
-"行和 %d 列\n"
 
-#: pg_basebackup.c:1712
-#, c-format
-msgid "transaction log start point: %s on timeline %u\n"
-msgstr "事务日志起始于时间点: %s, 基于时间表%u \n"
+#: pg_basebackup.c:1884 pg_recvlogical.c:264 receivelog.c:484 receivelog.c:533
+#: receivelog.c:572 streamutil.c:299 streamutil.c:370 streamutil.c:422
+#: streamutil.c:533 streamutil.c:578
+#, fuzzy, c-format
+#| msgid "%s: could not send replication command \"%s\": %s"
+msgid "could not send replication command \"%s\": %s"
+msgstr "%s: 无法发送复制命令 \"%s\": %s"
 
-#: pg_basebackup.c:1721
-#, c-format
-msgid "%s: could not get backup header: %s"
+#: pg_basebackup.c:1895
+#, fuzzy, c-format
+#| msgid "%s: could not initiate base backup: %s"
+msgid "could not initiate base backup: %s"
+msgstr "%s: 无法发起基础备份: %s"
+
+#: pg_basebackup.c:1901
+#, fuzzy, c-format
+#| msgid "%s: server returned unexpected response to BASE_BACKUP command; got %d rows and %d fields, expected %d rows and %d fields\n"
+msgid "server returned unexpected response to BASE_BACKUP command; got %d rows and %d fields, expected %d rows and %d fields"
+msgstr "%s: 服务器对BASE_BACKUP命令返回意外的响应; 得到 %d 行和 %d 列, 期望值为: %d 行和 %d 列\n"
+
+#: pg_basebackup.c:1909
+#, fuzzy, c-format
+#| msgid "%s: checkpoint completed\n"
+msgid "checkpoint completed"
+msgstr "%s: 已完成检查点\n"
+
+#: pg_basebackup.c:1924
+#, fuzzy, c-format
+#| msgid "%s: write-ahead log start point: %s on timeline %u\n"
+msgid "write-ahead log start point: %s on timeline %u"
+msgstr "%s: 预写日志起始于时间点: %s, 基于时间轴%u\n"
+
+#: pg_basebackup.c:1933
+#, fuzzy, c-format
+#| msgid "%s: could not get backup header: %s"
+msgid "could not get backup header: %s"
 msgstr "%s: 无法得到备份头: %s"
 
-#: pg_basebackup.c:1727
-#, c-format
-msgid "%s: no data returned from server\n"
+#: pg_basebackup.c:1939
+#, fuzzy, c-format
+#| msgid "%s: no data returned from server\n"
+msgid "no data returned from server"
 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:1759
-#, c-format
-msgid "%s: can only write single tablespace to stdout, database has %d\n"
+#: pg_basebackup.c:1970
+#, fuzzy, c-format
+#| msgid "%s: can only write single tablespace to stdout, database has %d\n"
+msgid "can only write single tablespace to stdout, database has %d"
 msgstr "%s: 只能把表空间写往标准输出, 数据库拥有标准输出: %d\n"
 
-#: pg_basebackup.c:1771
-#, c-format
-msgid "%s: starting background WAL receiver\n"
+#: pg_basebackup.c:1982
+#, fuzzy, c-format
+#| msgid "%s: starting background WAL receiver\n"
+msgid "starting background WAL receiver"
 msgstr "%s: 启动后台 WAL 接收进程\n"
 
-#: pg_basebackup.c:1802
-#, c-format
-msgid "%s: could not get transaction log end position from server: %s"
-msgstr "%s: 无法得到来自服务器的事务日志终止位置: %s"
+#: pg_basebackup.c:2012
+#, fuzzy, c-format
+#| msgid "%s: could not get write-ahead log end position from server: %s"
+msgid "could not get write-ahead log end position from server: %s"
+msgstr "%s: 无法得到来自服务器的预写日志终止位置: %s"
 
-#: pg_basebackup.c:1809
-#, c-format
-msgid "%s: no transaction log end position returned from server\n"
-msgstr "%s: 服务器端没有返回事务日志的终止位置\n"
+#: pg_basebackup.c:2018
+#, fuzzy, c-format
+#| msgid "%s: no write-ahead log end position returned from server\n"
+msgid "no write-ahead log end position returned from server"
+msgstr "%s: 服务器端没有返回预写日志的终止位置\n"
 
-#: pg_basebackup.c:1821
+#: pg_basebackup.c:2023
+#, fuzzy, c-format
+#| msgid "%s: write-ahead log end point: %s\n"
+msgid "write-ahead log end point: %s"
+msgstr "%s: 预写日志结束点: %s\n"
+
+#: pg_basebackup.c:2034
 #, c-format
-msgid "%s: final receive failed: %s"
+msgid "checksum error occurred"
+msgstr ""
+
+#: pg_basebackup.c:2039
+#, fuzzy, c-format
+#| msgid "%s: final receive failed: %s"
+msgid "final receive failed: %s"
 msgstr "%s: 最终接收失败: %s"
 
-#: pg_basebackup.c:1839
-#, c-format
-msgid "%s: waiting for background process to finish streaming ...\n"
+#: pg_basebackup.c:2063
+#, fuzzy, c-format
+#| msgid "%s: waiting for background process to finish streaming ...\n"
+msgid "waiting for background process to finish streaming ..."
 msgstr "%s: 等待后台进程结束流操作...\n"
 
-#: pg_basebackup.c:1845
-#, c-format
-msgid "%s: could not send command to background pipe: %s\n"
+#: pg_basebackup.c:2068
+#, fuzzy, c-format
+#| msgid "%s: could not send command to background pipe: %s\n"
+msgid "could not send command to background pipe: %m"
 msgstr "%s: 无法发送命令到后台管道: %s\n"
 
-#: pg_basebackup.c:1854
-#, c-format
-msgid "%s: could not wait for child process: %s\n"
+#: pg_basebackup.c:2076
+#, fuzzy, c-format
+#| msgid "%s: could not wait for child process: %s\n"
+msgid "could not wait for child process: %m"
 msgstr "%s: 无法等待子进程: %s\n"
 
-#: pg_basebackup.c:1860
-#, c-format
-msgid "%s: child %d died, expected %d\n"
+#: pg_basebackup.c:2081
+#, fuzzy, c-format
+#| msgid "%s: child %d died, expected %d\n"
+msgid "child %d died, expected %d"
 msgstr "%s: 子进程 %d 已终止, 期望值为 %d\n"
 
-#: pg_basebackup.c:1866
-#, c-format
-msgid "%s: child process did not exit normally\n"
-msgstr "%s: 子进程没有正常退出\n"
-
-#: pg_basebackup.c:1872
+#: pg_basebackup.c:2086 streamutil.c:94
 #, c-format
-msgid "%s: child process exited with error %d\n"
-msgstr "%s: 子进程退出, 错误码为: %d\n"
+msgid "%s"
+msgstr "%s"
 
-#: pg_basebackup.c:1899
-#, c-format
-msgid "%s: could not wait for child thread: %s\n"
+#: pg_basebackup.c:2111
+#, fuzzy, c-format
+#| msgid "%s: could not wait for child thread: %s\n"
+msgid "could not wait for child thread: %m"
 msgstr "%s: 无法等待子线程: %s\n"
 
-#: pg_basebackup.c:1906
-#, c-format
-msgid "%s: could not get child thread exit status: %s\n"
+#: pg_basebackup.c:2117
+#, fuzzy, c-format
+#| msgid "%s: could not get child thread exit status: %s\n"
+msgid "could not get child thread exit status: %m"
 msgstr "%s: 无法得到子线程退出状态: %s\n"
 
-#: pg_basebackup.c:1912
-#, c-format
-msgid "%s: child thread exited with error %u\n"
+#: pg_basebackup.c:2122
+#, fuzzy, c-format
+#| msgid "%s: child thread exited with error %u\n"
+msgid "child thread exited with error %u"
 msgstr "%s: 子线程退出, 错误码为: %u\n"
 
-#: 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:2023 pg_basebackup.c:2035
+#: pg_basebackup.c:2150
 #, c-format
-msgid "%s: cannot specify both --xlog and --xlog-method\n"
-msgstr "%s: 不能同时指定两个选项: --xlog and --xlog-method\n"
+msgid "syncing data to disk ..."
+msgstr ""
 
-#: pg_basebackup.c:2050
+#: pg_basebackup.c:2163
 #, c-format
-msgid ""
-"%s: invalid xlog-method option \"%s\", must be \"fetch\" or \"stream\"\n"
+msgid "base backup completed"
 msgstr ""
-"%s: 无效的xlog-method 选项: \"%s\", 必须是: \"fetch\" 或者 \"stream\"\n"
 
-#: pg_basebackup.c:2072
-#, c-format
-msgid "%s: invalid compression level \"%s\"\n"
+#: pg_basebackup.c:2244
+#, fuzzy, c-format
+#| msgid "%s: invalid output format \"%s\", must be \"plain\" or \"tar\"\n"
+msgid "invalid output format \"%s\", must be \"plain\" or \"tar\"\n"
+msgstr "%s: 无效输出格式: \"%s\", 有效值为: \"plain\" 或者 \"tar\"\n"
+
+#: pg_basebackup.c:2288
+#, fuzzy, c-format
+#| msgid "%s: invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\"\n"
+msgid "invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\""
+msgstr "%s: 无效的wal-method 选项: \"%s\", 必须是: \"fetch\" 或者 \"stream\" 或者 \"none\"\n"
+
+#: pg_basebackup.c:2316
+#, fuzzy, c-format
+#| msgid "%s: invalid compression level \"%s\"\n"
+msgid "invalid compression level \"%s\"\n"
 msgstr "%s: 无效的压缩级别值: \"%s\"\n"
 
-#: pg_basebackup.c:2084
-#, c-format
-msgid ""
-"%s: invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"\n"
+#: pg_basebackup.c:2327
+#, fuzzy, c-format
+#| msgid "%s: invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"\n"
+msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\""
 msgstr "%s: 无效的检查点参数: \"%s\", 必须是: \"fast\" 或 \"spread\"\n"
 
-#: pg_basebackup.c:2111 pg_receivexlog.c:445 pg_recvlogical.c:760
-#, c-format
-msgid "%s: invalid status interval \"%s\"\n"
+#: pg_basebackup.c:2354 pg_receivewal.c:556 pg_recvlogical.c:796
+#, fuzzy, c-format
+#| msgid "%s: invalid status interval \"%s\"\n"
+msgid "invalid status interval \"%s\""
 msgstr "%s: 无效的状态间隔值: \"%s\"\n"
 
-#: 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:852
+#: pg_basebackup.c:2372 pg_basebackup.c:2385 pg_basebackup.c:2396
+#: pg_basebackup.c:2407 pg_basebackup.c:2415 pg_basebackup.c:2423
+#: pg_basebackup.c:2433 pg_basebackup.c:2446 pg_basebackup.c:2454
+#: pg_basebackup.c:2465 pg_basebackup.c:2475 pg_receivewal.c:606
+#: pg_receivewal.c:619 pg_receivewal.c:627 pg_receivewal.c:637
+#: pg_receivewal.c:645 pg_receivewal.c:656 pg_recvlogical.c:822
+#: pg_recvlogical.c:835 pg_recvlogical.c:846 pg_recvlogical.c:854
+#: pg_recvlogical.c:862 pg_recvlogical.c:870 pg_recvlogical.c:878
+#: pg_recvlogical.c:886 pg_recvlogical.c:894
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: 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"
+#: pg_basebackup.c:2383 pg_receivewal.c:617 pg_recvlogical.c:833
+#, fuzzy, c-format
+#| msgid "%s: too many command-line arguments (first is \"%s\")\n"
+msgid "too many command-line arguments (first is \"%s\")"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_basebackup.c:2151 pg_receivexlog.c:519
-#, c-format
-msgid "%s: no target directory specified\n"
+#: pg_basebackup.c:2395 pg_receivewal.c:655
+#, fuzzy, c-format
+#| msgid "%s: no target directory specified\n"
+msgid "no target directory specified"
 msgstr "%s: 没有指定目标目录\n"
 
-#: pg_basebackup.c:2163
-#, c-format
-msgid "%s: only tar mode backups can be compressed\n"
+#: pg_basebackup.c:2406
+#, fuzzy, c-format
+#| msgid "%s: only tar mode backups can be compressed\n"
+msgid "only tar mode backups can be compressed"
 msgstr "%s: 只有tar模式备份才能进行压缩\n"
 
-#: pg_basebackup.c:2173
+#: pg_basebackup.c:2414
 #, c-format
-msgid "%s: WAL streaming can only be used in plain mode\n"
-msgstr "%s: WAL 流操作只能在plain模式下使用\n"
+msgid "cannot stream write-ahead logs in tar mode to stdout"
+msgstr ""
 
-#: 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"
+#: pg_basebackup.c:2422
+#, fuzzy, c-format
+#| msgid "%s: replication slots can only be used with WAL streaming\n"
+msgid "replication slots can only be used with WAL streaming"
 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:2432
+#, fuzzy, c-format
+#| msgid "%s: --no-slot cannot be used with slot name\n"
+msgid "--no-slot cannot be used with slot name"
+msgstr "%s: --no-slot 不能与槽名称一起使用\n"
 
-#: pg_basebackup.c:2206
-#, c-format
-msgid "%s: transaction log directory location must be an absolute path\n"
-msgstr "%s: 事务日志目录的位置必须为绝对路径\n"
+#. translator: second %s is an option name
+#: pg_basebackup.c:2444 pg_receivewal.c:635
+#, fuzzy, c-format
+#| msgid "%s: %s needs a slot to be specified using --slot\n"
+msgid "%s needs a slot to be specified using --slot"
+msgstr "%s:%s需要使用--slot指定一个槽\n"
 
-#: pg_basebackup.c:2218
-#, c-format
-msgid "%s: this build does not support compression\n"
+#: pg_basebackup.c:2453
+#, fuzzy, c-format
+#| msgid "%s: --create-slot and --no-slot are incompatible options\n"
+msgid "--create-slot and --no-slot are incompatible options"
+msgstr "%s: --create-slot 和 --no-slot 是互不兼容的选项\n"
+
+#: pg_basebackup.c:2464
+#, fuzzy, c-format
+#| msgid "%s: WAL directory location can only be specified in plain mode\n"
+msgid "WAL directory location can only be specified in plain mode"
+msgstr "%s: WAL目录的位置只能在简单模式里指定\n"
+
+#: pg_basebackup.c:2474
+#, fuzzy, c-format
+#| msgid "%s: WAL directory location must be an absolute path\n"
+msgid "WAL directory location must be an absolute path"
+msgstr "%s: WAL目录的位置必须为绝对路径\n"
+
+#: pg_basebackup.c:2484 pg_receivewal.c:664
+#, fuzzy, c-format
+#| msgid "%s: this build does not support compression\n"
+msgid "this build does not support compression"
 msgstr "%s: 这个编译版本不支持压缩\n"
 
-#: pg_basebackup.c:2245
+#: pg_basebackup.c:2538
 #, c-format
-msgid "%s: could not create symbolic link \"%s\": %s\n"
-msgstr "%s: 无法创建符号链接 \"%s\": %s\n"
+msgid "could not create symbolic link \"%s\": %m"
+msgstr "无法创建符号链接 \"%s\": %m"
 
-#: pg_basebackup.c:2250
-#, c-format
-msgid "%s: symlinks are not supported on this platform\n"
+#: pg_basebackup.c:2542
+#, fuzzy, c-format
+#| msgid "%s: symlinks are not supported on this platform\n"
+msgid "symlinks are not supported on this platform"
 msgstr "%s:在这个平台上不支持符号链接\n"
 
-#: pg_receivexlog.c:64
+#: pg_receivewal.c:79
 #, c-format
 msgid ""
-"%s receives PostgreSQL streaming transaction logs.\n"
+"%s receives PostgreSQL streaming write-ahead logs.\n"
 "\n"
 msgstr ""
-"%s 接收PostgreSQL的流事务日志.\n"
+"%s 接收PostgreSQL的流预写日志.\n"
 "\n"
 
-#: pg_receivexlog.c:68 pg_recvlogical.c:75
+#: pg_receivewal.c:83 pg_recvlogical.c:84
 #, c-format
 msgid ""
 "\n"
@@ -659,41 +912,51 @@ msgstr ""
 "\n"
 "选项:\n"
 
-#: pg_receivexlog.c:69
+#: pg_receivewal.c:84
 #, c-format
-msgid ""
-"  -D, --directory=DIR    receive transaction log files into this directory\n"
-msgstr "  -D, --directory=DIR    接收事务日志到指定的目录\n"
+msgid "  -D, --directory=DIR    receive write-ahead log files into this directory\n"
+msgstr "  -D, --directory=DIR    接收预写日志到指定的目录\n"
 
-#: pg_receivexlog.c:70 pg_recvlogical.c:79
+#: pg_receivewal.c:85 pg_recvlogical.c:85
 #, c-format
-msgid ""
-"      --if-not-exists    do not error if slot already exists when creating a "
-"slot\n"
+msgid "  -E, --endpos=LSN       exit after receiving the specified LSN\n"
+msgstr "  -E, --endpos=LSN       收到指定LSN后退出\n"
+
+#: pg_receivewal.c:86 pg_recvlogical.c:89
+#, c-format
+msgid "      --if-not-exists    do not error if slot already exists when creating a slot\n"
 msgstr "      --if-not-exists    在创建一个槽时如果槽已经存在则不产生错误\n"
 
-#: pg_receivexlog.c:71 pg_recvlogical.c:81
+#: pg_receivewal.c:87 pg_recvlogical.c:91
 #, c-format
 msgid "  -n, --no-loop          do not loop on connection lost\n"
 msgstr "  -n, --no-loop          连接丢失时不进行循环处理\n"
 
-#: pg_receivexlog.c:72 pg_recvlogical.c:86
+#: pg_receivewal.c:88
+#, c-format
+msgid "      --no-sync          do not wait for changes to be written safely to disk\n"
+msgstr "      --no-sync          不用等待变化安全写入磁盘\n"
+
+#: pg_receivewal.c:89 pg_recvlogical.c:96
 #, c-format
 msgid ""
 "  -s, --status-interval=SECS\n"
-"                         time between status packets sent to server "
-"(default: %d)\n"
+"                         time between status packets sent to server (default: %d)\n"
 msgstr ""
 "  -s, --status-interval=SECS\n"
 "                         发往服务器的状态包的时间间隔 (默认为: %d)\n"
 
-#: pg_receivexlog.c:75
+#: pg_receivewal.c:92
 #, c-format
-msgid ""
-"      --synchronous      flush transaction log immediately after writing\n"
-msgstr "      --synchronous      在写入后立即刷写事务日志\n"
+msgid "      --synchronous      flush write-ahead log immediately after writing\n"
+msgstr "      --synchronous      在写入后立即刷写预写日志\n"
+
+#: pg_receivewal.c:95
+#, c-format
+msgid "  -Z, --compress=0-9     compress logs with given compression level\n"
+msgstr "  -Z, --compress=0-9     按给定的压缩级别对日志文件进行压缩\n"
 
-#: pg_receivexlog.c:86
+#: pg_receivewal.c:104
 #, c-format
 msgid ""
 "\n"
@@ -702,110 +965,150 @@ msgstr ""
 "\n"
 "可选动作:\n"
 
-#: pg_receivexlog.c:87 pg_recvlogical.c:72
+#: pg_receivewal.c:105 pg_recvlogical.c:81
 #, c-format
-msgid ""
-"      --create-slot      create a new replication slot (for the slot's name "
-"see --slot)\n"
+msgid "      --create-slot      create a new replication slot (for the slot's name see --slot)\n"
 msgstr "      --create-slot     创建新的复制槽(槽名请参考选项 --slot)\n"
 
-#: pg_receivexlog.c:88 pg_recvlogical.c:73
+#: pg_receivewal.c:106 pg_recvlogical.c:82
 #, c-format
-msgid ""
-"      --drop-slot        drop the replication slot (for the slot's name see "
-"--slot)\n"
+msgid "      --drop-slot        drop the replication slot (for the slot's name see --slot)\n"
 msgstr "      --drop-slot        删除复制槽 (槽名请参考选项 --slot)\n"
 
-#: pg_receivexlog.c:100
-#, c-format
-msgid "%s: finished segment at %X/%X (timeline %u)\n"
+#: pg_receivewal.c:118
+#, fuzzy, c-format
+#| msgid "%s: finished segment at %X/%X (timeline %u)\n"
+msgid "finished segment at %X/%X (timeline %u)"
 msgstr "%s: finished segment at %X/%X (timeline %u)\n"
 
-#: pg_receivexlog.c:113
-#, c-format
-msgid "%s: switched to timeline %u at %X/%X\n"
+#: pg_receivewal.c:125
+#, fuzzy, c-format
+#| msgid "%s: stopped log streaming at %X/%X (timeline %u)\n"
+msgid "stopped log streaming at %X/%X (timeline %u)"
+msgstr "%s: 在时间点: %X/%X (时间线%u)停止日志的流操作\n"
+
+#: pg_receivewal.c:141
+#, fuzzy, c-format
+#| msgid "%s: switched to timeline %u at %X/%X\n"
+msgid "switched to timeline %u at %X/%X"
 msgstr "%s: 切换到时间表 %u 在 %X/%X\n"
 
-#: pg_receivexlog.c:122
-#, c-format
-msgid "%s: received interrupt signal, exiting\n"
+#: pg_receivewal.c:151
+#, fuzzy, c-format
+#| msgid "%s: received interrupt signal, exiting\n"
+msgid "received interrupt signal, exiting"
 msgstr "%s: 接收到终断信号, 正在退出\n"
 
-#: pg_receivexlog.c:142
-#, c-format
-msgid "%s: could not open directory \"%s\": %s\n"
-msgstr "%s: 无法打开目录 \"%s\": %s\n"
-
-#: pg_receivexlog.c:160
-#, c-format
-msgid "%s: could not close directory \"%s\": %s\n"
-msgstr "%s: 无法关闭目录 \"%s\": %s\n"
+#: pg_receivewal.c:187
+#, fuzzy, c-format
+#| msgid "could not open directory \"%s\": %m"
+msgid "could not close directory \"%s\": %m"
+msgstr "无法打开目录 \"%s\": %m"
 
-#: pg_receivexlog.c:218 pg_recvlogical.c:343
-#, c-format
-msgid "%s: could not stat file \"%s\": %s\n"
-msgstr "%s: 无法统计文件: \"%s\": %s\n"
-
-#: pg_receivexlog.c:226
-#, c-format
-msgid "%s: segment file \"%s\" has incorrect size %d, skipping\n"
+#: pg_receivewal.c:273
+#, fuzzy, c-format
+#| msgid "%s: segment file \"%s\" has incorrect size %d, skipping\n"
+msgid "segment file \"%s\" has incorrect size %d, skipping"
 msgstr "%s: 段文件 \"%s\" 大小值: %d不正确, 跳过\n"
 
-#: pg_receivexlog.c:245
-#, c-format
-msgid "%s: could not read directory \"%s\": %s\n"
-msgstr "%s: 无法读取目录 \"%s\": %s\n"
-
-#: pg_receivexlog.c:332
-#, c-format
-msgid "%s: starting log streaming at %X/%X (timeline %u)\n"
+#: pg_receivewal.c:291
+#, fuzzy, c-format
+#| msgid "%s: could not open compressed file \"%s\": %s\n"
+msgid "could not open compressed file \"%s\": %m"
+msgstr "%s: 无法打开压缩文件 \"%s\": %s\n"
+
+#: pg_receivewal.c:297
+#, fuzzy, c-format
+#| msgid "%s: could not seek in compressed file \"%s\": %s\n"
+msgid "could not seek in compressed file \"%s\": %m"
+msgstr "%s: 无法在压缩文件\"%s\"进行查找: %s\n"
+
+#: pg_receivewal.c:305
+#, fuzzy, c-format
+#| msgid "%s: could not read compressed file \"%s\": %s\n"
+msgid "could not read compressed file \"%s\": %m"
+msgstr "%s: 无法读取压缩文件\"%s\": %s\n"
+
+#: pg_receivewal.c:308
+#, fuzzy, c-format
+#| msgid "%s: could not read compressed file \"%s\": %s\n"
+msgid "could not read compressed file \"%s\": read %d of %zu"
+msgstr "%s: 无法读取压缩文件\"%s\": %s\n"
+
+#: pg_receivewal.c:319
+#, fuzzy, c-format
+#| msgid "%s: compressed segment file \"%s\" has incorrect uncompressed size %d, skipping\n"
+msgid "compressed segment file \"%s\" has incorrect uncompressed size %d, skipping"
+msgstr "%s: 压缩的段文件\"%s\"未压缩大小值: %d不正确, 跳过\n"
+
+#: pg_receivewal.c:423
+#, fuzzy, c-format
+#| msgid "%s: starting log streaming at %X/%X (timeline %u)\n"
+msgid "starting log streaming at %X/%X (timeline %u)"
 msgstr "%s: 在时间点: %X/%X (时间安排%u)启动日志的流操作 \n"
 
-#: pg_receivexlog.c:426 pg_recvlogical.c:707
-#, c-format
-msgid "%s: invalid port number \"%s\"\n"
+#: pg_receivewal.c:538 pg_recvlogical.c:738
+#, fuzzy, c-format
+#| msgid "%s: invalid port number \"%s\"\n"
+msgid "invalid port number \"%s\""
 msgstr "%s: 无效端口号 \"%s\"\n"
 
-#: pg_receivexlog.c:498
-#, c-format
-msgid "%s: cannot use --create-slot together with --drop-slot\n"
+#: pg_receivewal.c:566 pg_recvlogical.c:764
+#, fuzzy, c-format
+#| msgid "%s: could not parse end position \"%s\"\n"
+msgid "could not parse end position \"%s\""
+msgstr "%s: 无法解析结束位置\"%s\"\n"
+
+#: pg_receivewal.c:581
+#, fuzzy, c-format
+#| msgid "%s: invalid compression level \"%s\"\n"
+msgid "invalid compression level \"%s\""
+msgstr "%s: 无效的压缩级别值: \"%s\"\n"
+
+#: pg_receivewal.c:626
+#, fuzzy, c-format
+#| msgid "%s: cannot use --create-slot together with --drop-slot\n"
+msgid "cannot use --create-slot together with --drop-slot"
 msgstr "%s: 不能把--create-slot和--drop-slot一起使用\n"
 
-#. translator: second %s is an option name
-#: pg_receivexlog.c:507
-#, c-format
-msgid "%s: %s needs a slot to be specified using --slot\n"
-msgstr "%s:%s需要使用--slot指定一个槽\n"
+#: pg_receivewal.c:644
+#, fuzzy, c-format
+#| msgid "%s: cannot use --synchronous together with --no-sync\n"
+msgid "cannot use --synchronous together with --no-sync"
+msgstr "%s: 不能把--synchronous和--no-sync一起使用\n"
 
-#: pg_receivexlog.c:562
-#, c-format
-msgid ""
-"%s: replication connection using slot \"%s\" is unexpectedly database "
-"specific\n"
+#: pg_receivewal.c:720
+#, fuzzy, c-format
+#| msgid "%s: replication connection using slot \"%s\" is unexpectedly database specific\n"
+msgid "replication connection using slot \"%s\" is unexpectedly database specific"
 msgstr "%s:使用槽\"%s\"的复制连接意外地不是指定的数据库\n"
 
-#: pg_receivexlog.c:574 pg_recvlogical.c:892
-#, c-format
-msgid "%s: dropping replication slot \"%s\"\n"
+#: pg_receivewal.c:731 pg_recvlogical.c:942
+#, fuzzy, c-format
+#| msgid "%s: dropping replication slot \"%s\"\n"
+msgid "dropping replication slot \"%s\""
 msgstr "%s: 删除复制槽\"%s\"\n"
 
-#: pg_receivexlog.c:587 pg_recvlogical.c:904
-#, c-format
-msgid "%s: creating replication slot \"%s\"\n"
+#: pg_receivewal.c:742 pg_recvlogical.c:952
+#, fuzzy, c-format
+#| msgid "%s: creating replication slot \"%s\"\n"
+msgid "creating replication slot \"%s\""
 msgstr "%s: 创建复制槽 \"%s\"\n"
 
-#: pg_receivexlog.c:614 pg_recvlogical.c:930
-#, c-format
-msgid "%s: disconnected\n"
+#: pg_receivewal.c:768 pg_recvlogical.c:977
+#, fuzzy, c-format
+#| msgid "%s: disconnected\n"
+msgid "disconnected"
 msgstr "%s: 连接已断开\n"
 
 #. translator: check source for value for %d
-#: pg_receivexlog.c:621 pg_recvlogical.c:937
-#, c-format
-msgid "%s: disconnected; waiting %d seconds to try again\n"
+#: pg_receivewal.c:774 pg_recvlogical.c:983
+#, fuzzy, c-format
+#| msgid "%s: disconnected; waiting %d seconds to try again\n"
+msgid "disconnected; waiting %d seconds to try again"
 msgstr "%s: 连接已断开, 将于%d 秒后尝试重连.\n"
 
-#: pg_recvlogical.c:67
+#: pg_recvlogical.c:76
 #, c-format
 msgid ""
 "%s controls PostgreSQL logical decoding streams.\n"
@@ -814,7 +1117,7 @@ msgstr ""
 "%s 控制PostgreSQL逻辑解码流。\n"
 "\n"
 
-#: pg_recvlogical.c:71
+#: pg_recvlogical.c:80
 #, c-format
 msgid ""
 "\n"
@@ -823,36 +1126,31 @@ msgstr ""
 "\n"
 "即将执行的动作:\n"
 
-#: pg_recvlogical.c:74
+#: pg_recvlogical.c:83
 #, c-format
-msgid ""
-"      --start            start streaming in a replication slot (for the "
-"slot's name see --slot)\n"
+msgid "      --start            start streaming in a replication slot (for the slot's name see --slot)\n"
 msgstr "      --start            复制槽中启动流复制(槽名请参考选项 --slot)\n"
 
-#: pg_recvlogical.c:76
+#: pg_recvlogical.c:86
 #, c-format
 msgid "  -f, --file=FILE        receive log into this file, - for stdout\n"
 msgstr "  -f, --file=FILE        接收日志到这个文件, - 为标准输出\n"
 
-#: pg_recvlogical.c:77
+#: pg_recvlogical.c:87
 #, c-format
 msgid ""
 "  -F  --fsync-interval=SECS\n"
-"                         time between fsyncs to the output file (default: "
-"%d)\n"
+"                         time between fsyncs to the output file (default: %d)\n"
 msgstr ""
 "  -F  --fsync-interval=SECS\n"
 "                         写往输出文件的文件同步的时间间隔 (默认值为: %d)\n"
 
-#: pg_recvlogical.c:80
+#: pg_recvlogical.c:90
 #, c-format
-msgid ""
-"  -I, --startpos=LSN     where in an existing slot should the streaming "
-"start\n"
+msgid "  -I, --startpos=LSN     where in an existing slot should the streaming start\n"
 msgstr "  -I, --startpos=LSN     在当前槽中流复制启动的起始位置\n"
 
-#: pg_recvlogical.c:82
+#: pg_recvlogical.c:92
 #, c-format
 msgid ""
 "  -o, --option=NAME[=VALUE]\n"
@@ -863,361 +1161,438 @@ msgstr ""
 "                         选项NAME附带可选值VALUE给\n"
 "                         输出插件\n"
 
-#: pg_recvlogical.c:85
+#: pg_recvlogical.c:95
 #, c-format
 msgid "  -P, --plugin=PLUGIN    use output plugin PLUGIN (default: %s)\n"
 msgstr "  -P, --plugin=PLUGIN    使用输出插件PLUGIN (默认为: %s)\n"
 
-#: pg_recvlogical.c:88
+#: pg_recvlogical.c:98
 #, c-format
 msgid "  -S, --slot=SLOTNAME    name of the logical replication slot\n"
 msgstr "  -S, --slot=SLOTNAME   逻辑复制槽的名字\n"
 
-#: pg_recvlogical.c:93
+#: pg_recvlogical.c:103
 #, c-format
 msgid "  -d, --dbname=DBNAME    database to connect to\n"
 msgstr "  -d, --dbname=DBNAME    要连接的目标数据库\n"
 
-#: pg_recvlogical.c:126
-#, c-format
-msgid "%s: confirming write up to %X/%X, flush to %X/%X (slot %s)\n"
+#: pg_recvlogical.c:135
+#, fuzzy, c-format
+#| msgid "%s: confirming write up to %X/%X, flush to %X/%X (slot %s)\n"
+msgid "confirming write up to %X/%X, flush to %X/%X (slot %s)"
 msgstr "%s: 确认上写至%X/%X, 并刷写回至 %X/%X (槽 %s)\n"
 
-#: pg_recvlogical.c:151 receivelog.c:404
-#, c-format
-msgid "%s: could not send feedback packet: %s"
+#: pg_recvlogical.c:159 receivelog.c:346
+#, fuzzy, c-format
+#| msgid "%s: could not send feedback packet: %s"
+msgid "could not send feedback packet: %s"
 msgstr "%s: 无法发送回馈包: %s"
 
-#: pg_recvlogical.c:190
-#, c-format
-msgid "%s: could not fsync log file \"%s\": %s\n"
-msgstr "%s: 无法fsync同步日志文件\"%s\": %s\n"
-
-#: pg_recvlogical.c:229
-#, c-format
-msgid "%s: starting log streaming at %X/%X (slot %s)\n"
+#: pg_recvlogical.c:232
+#, fuzzy, c-format
+#| msgid "%s: starting log streaming at %X/%X (slot %s)\n"
+msgid "starting log streaming at %X/%X (slot %s)"
 msgstr "%s:在%X/%X (槽 %s)位置启动日志流\n"
 
-#: pg_recvlogical.c:271
-#, c-format
-msgid "%s: streaming initiated\n"
+#: pg_recvlogical.c:273
+#, fuzzy, c-format
+#| msgid "%s: streaming initiated\n"
+msgid "streaming initiated"
 msgstr "%s: 流已初始化\n"
 
-# command.c:1148
-#: pg_recvlogical.c:336
+#: pg_recvlogical.c:337
 #, c-format
-msgid "%s: could not open log file \"%s\": %s\n"
-msgstr "%s:无法开启日志档 \"%s\":%s\n"
+msgid "could not open log file \"%s\": %m"
+msgstr "无法打开事务日志文件 \"%s\": %m"
 
-#: pg_recvlogical.c:366 receivelog.c:933
-#, c-format
-#| msgid "%s: invalid option %s\n"
-msgid "%s: invalid socket: %s"
+#: pg_recvlogical.c:363 receivelog.c:876
+#, fuzzy, c-format
+#| msgid "%s: invalid socket: %s"
+msgid "invalid socket: %s"
 msgstr "%s: 无效套接字: %s"
 
-#: pg_recvlogical.c:420 receivelog.c:955
-#, c-format
-msgid "%s: select() failed: %s\n"
+#: pg_recvlogical.c:416 receivelog.c:904
+#, fuzzy, c-format
+#| msgid "%s: select() failed: %s\n"
+msgid "select() failed: %m"
 msgstr "%s: select() 失败: %s\n"
 
-#: pg_recvlogical.c:429 receivelog.c:1005
+#: pg_recvlogical.c:423 receivelog.c:954
 #, c-format
-msgid "%s: could not receive data from WAL stream: %s"
-msgstr "%s: 无法接收来自WAL流的数据: %s"
+msgid "could not receive data from WAL stream: %s"
+msgstr "无法从WAL流中获得数据: %s"
 
-#: pg_recvlogical.c:470 pg_recvlogical.c:509 receivelog.c:1050
-#: receivelog.c:1117
-#, c-format
-msgid "%s: streaming header too small: %d\n"
+#: pg_recvlogical.c:465 pg_recvlogical.c:516 receivelog.c:998 receivelog.c:1064
+#, fuzzy, c-format
+#| msgid "%s: streaming header too small: %d\n"
+msgid "streaming header too small: %d"
 msgstr "%s: 流头大小: %d 值太小\n"
 
-#: pg_recvlogical.c:492 receivelog.c:898
-#, c-format
-msgid "%s: unrecognized streaming header: \"%c\"\n"
+#: pg_recvlogical.c:500 receivelog.c:836
+#, fuzzy, c-format
+#| msgid "%s: unrecognized streaming header: \"%c\"\n"
+msgid "unrecognized streaming header: \"%c\""
 msgstr "%s: 无法识别的流头: \"%c\"\n"
 
-#: pg_recvlogical.c:538 pg_recvlogical.c:552
-#, c-format
-msgid "%s: could not write %u bytes to log file \"%s\": %s\n"
+#: pg_recvlogical.c:554 pg_recvlogical.c:566
+#, fuzzy, c-format
+#| msgid "%s: could not write %u bytes to log file \"%s\": %s\n"
+msgid "could not write %u bytes to log file \"%s\": %m"
 msgstr "%s: 无法写入 %u 字节到日志文件 \"%s\": %s\n"
 
-#: pg_recvlogical.c:563 receivelog.c:691 receivelog.c:729
-#, c-format
-msgid "%s: unexpected termination of replication stream: %s"
+#: pg_recvlogical.c:594 receivelog.c:632 receivelog.c:669
+#, fuzzy, c-format
+#| msgid "%s: unexpected termination of replication stream: %s"
+msgid "unexpected termination of replication stream: %s"
 msgstr "%s: 流复制异常终止: %s"
 
-#: pg_recvlogical.c:686
-#, c-format
-msgid "%s: invalid fsync interval \"%s\"\n"
+#: pg_recvlogical.c:718
+#, fuzzy, c-format
+#| msgid "%s: invalid fsync interval \"%s\"\n"
+msgid "invalid fsync interval \"%s\""
 msgstr "%s: 无效的fsync同步时间间隔值: \"%s\"\n"
 
-#: pg_recvlogical.c:727
-#, c-format
-msgid "%s: could not parse start position \"%s\"\n"
+#: pg_recvlogical.c:756
+#, fuzzy, c-format
+#| msgid "%s: could not parse start position \"%s\"\n"
+msgid "could not parse start position \"%s\""
 msgstr "%s: 无法解析起始位置\"%s\"\n"
 
-#: pg_recvlogical.c:811
-#, c-format
-msgid "%s: no slot specified\n"
+#: pg_recvlogical.c:845
+#, fuzzy, c-format
+#| msgid "%s: no slot specified\n"
+msgid "no slot specified"
 msgstr "%s: 没有指定槽\n"
 
-#: pg_recvlogical.c:819
-#, c-format
-msgid "%s: no target file specified\n"
+#: pg_recvlogical.c:853
+#, fuzzy, c-format
+#| msgid "%s: no target file specified\n"
+msgid "no target file specified"
 msgstr "%s: 没有指定目标文件\n"
 
-#: pg_recvlogical.c:827
-#, c-format
-msgid "%s: no database specified\n"
+#: pg_recvlogical.c:861
+#, fuzzy, c-format
+#| msgid "%s: no database specified\n"
+msgid "no database specified"
 msgstr "%s: 没有指定数据库\n"
 
-#: pg_recvlogical.c:835
-#, c-format
-msgid "%s: at least one action needs to be specified\n"
+#: pg_recvlogical.c:869
+#, fuzzy, c-format
+#| msgid "%s: at least one action needs to be specified\n"
+msgid "at least one action needs to be specified"
 msgstr "%s: 至少要指定一个操作\n"
 
-#: 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:877
+#, fuzzy, c-format
+#| msgid "%s: cannot use --create-slot or --start together with --drop-slot\n"
+msgid "cannot use --create-slot or --start together with --drop-slot"
+msgstr "%s: 不能使用 --create-slot 选项或 同时使用--start和--drop-slot两个选项\n"
+
+#: pg_recvlogical.c:885
+#, fuzzy, c-format
+#| msgid "%s: cannot use --create-slot or --drop-slot together with --startpos\n"
+msgid "cannot use --create-slot or --drop-slot together with --startpos"
+msgstr "%s: 不能使用 --create-slot 选项或 同时使用--drop-slot和--startpos两个选项\n"
+
+#: pg_recvlogical.c:893
+#, fuzzy, c-format
+#| msgid "%s: --endpos may only be specified with --start\n"
+msgid "--endpos may only be specified with --start"
+msgstr "%s: 只能用--start选项指定--endpos选项\n"
+
+#: pg_recvlogical.c:924
+#, fuzzy, c-format
+#| msgid "%s: could not establish database-specific replication connection\n"
+msgid "could not establish database-specific replication connection"
+msgstr "%s:无法建立数据库相关的复制连接\n"
 
-#: pg_recvlogical.c:851
+#: pg_recvlogical.c:1023
 #, c-format
-msgid "%s: cannot use --create-slot or --drop-slot together with --startpos\n"
+msgid "endpos %X/%X reached by keepalive"
 msgstr ""
-"%s: 不能使用 --create-slot 选项或 同时使用--drop-slot和--startpos两个选项\n"
 
-#: pg_recvlogical.c:882
+#: pg_recvlogical.c:1026
 #, c-format
-msgid "%s: could not establish database-specific replication connection\n"
-msgstr "%s:无法建立数据库相关的复制连接\n"
+msgid "endpos %X/%X reached by record at %X/%X"
+msgstr ""
 
-#: receivelog.c:66
-#, c-format
-msgid "%s: could not create archive status file \"%s\": %s\n"
+#: receivelog.c:72
+#, fuzzy, c-format
+#| msgid "%s: could not create archive status file \"%s\": %s\n"
+msgid "could not create archive status file \"%s\": %s"
 msgstr "%s:无法创建归档状态文件\"%s\":%s\n"
 
-#: 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:119
+#, fuzzy, c-format
+#| msgid "%s: could not get size of write-ahead log file \"%s\": %s\n"
+msgid "could not get size of write-ahead log file \"%s\": %s"
+msgstr "%s: 无法获得预写日志文件\"%s\"的大小: %s\n"
 
-#: receivelog.c:111
-#, c-format
-msgid "%s: could not open transaction log file \"%s\": %s\n"
-msgstr "%s: 无法打开事务日志文件 \"%s\": %s\n"
-
-#: receivelog.c:123
-#, c-format
-msgid "%s: could not stat transaction log file \"%s\": %s\n"
-msgstr "%s: 无法统计事务日志文件 \"%s\": %s\n"
+#: receivelog.c:129
+#, fuzzy, c-format
+#| msgid "%s: could not open existing write-ahead log file \"%s\": %s\n"
+msgid "could not open existing write-ahead log file \"%s\": %s"
+msgstr "%s: 无法打开存在的预写日志文件\"%s\": %s\n"
 
 #: 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:150
-#, c-format
-msgid "%s: could not pad transaction log file \"%s\": %s\n"
-msgstr "%s: 无法填充事务日志文件 \"%s\": %s\n"
-
-#: 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:189
-#, c-format
-msgid "%s: could not determine seek position in file \"%s\": %s\n"
+#, fuzzy, c-format
+#| msgid "%s: could not fsync existing write-ahead log file \"%s\": %s\n"
+msgid "could not fsync existing write-ahead log file \"%s\": %s"
+msgstr "%s: 无法同步存在的预写日志文件\"%s\": %s\n"
+
+#: receivelog.c:151
+#, fuzzy, c-format
+#| msgid "%s: write-ahead log file \"%s\" has %d byte, should be 0 or %d\n"
+#| msgid_plural "%s: write-ahead log file \"%s\" has %d bytes, should be 0 or %d\n"
+msgid "write-ahead log file \"%s\" has %d byte, should be 0 or %d"
+msgid_plural "write-ahead log file \"%s\" has %d bytes, should be 0 or %d"
+msgstr[0] "%s: 预写日志文件 \"%s\"有%d个字节,应该是0或者 %d\n"
+msgstr[1] "%s: 预写日志文件 \"%s\"有%d个字节,应该是0或者 %d\n"
+
+#: receivelog.c:166
+#, fuzzy, c-format
+#| msgid "%s: could not open write-ahead log file \"%s\": %s\n"
+msgid "could not open write-ahead log file \"%s\": %s"
+msgstr "%s: 无法打开预写日志文件\"%s\": %s\n"
+
+#: receivelog.c:192
+#, fuzzy, c-format
+#| msgid "%s: could not determine seek position in file \"%s\": %s\n"
+msgid "could not determine seek position in file \"%s\": %s"
 msgstr "%s: 无法确定文件 \"%s\"的当前位置: %s\n"
 
-#: receivelog.c:222
-#, c-format
-msgid "%s: could not rename file \"%s\": %s\n"
-msgstr "%s: 无法重命名文件 \"%s\": %s\n"
-
-#: receivelog.c:229
-#, c-format
-msgid "%s: not renaming \"%s%s\", segment is not complete\n"
+#: receivelog.c:206
+#, fuzzy, c-format
+#| msgid "%s: not renaming \"%s%s\", segment is not complete\n"
+msgid "not renaming \"%s%s\", segment is not complete"
 msgstr "%s: 没有重命名 \"%s%s\", 段不完整\n"
 
-# command.c:1148
-#: receivelog.c:275
-#, c-format
-msgid "%s: could not open timeline history file \"%s\": %s\n"
-msgstr "%s:无法打开时间表历史文件\"%s\":%s\n"
+#: receivelog.c:218 receivelog.c:303 receivelog.c:678
+#, fuzzy, c-format
+#| msgid "could not close file \"%s\": %m"
+msgid "could not close file \"%s\": %s"
+msgstr "无法关闭文件 \"%s\": %m"
 
-#: receivelog.c:302
-#, c-format
-msgid "%s: server reported unexpected history file name for timeline %u: %s\n"
+#: receivelog.c:275
+#, fuzzy, c-format
+#| msgid "%s: server reported unexpected history file name for timeline %u: %s\n"
+msgid "server reported unexpected history file name for timeline %u: %s"
 msgstr "%s: 服务器为时间表报告生成的意外历史文件名 %u:%s\n"
 
-#: receivelog.c:319
-#, c-format
-msgid "%s: could not create timeline history file \"%s\": %s\n"
+#: receivelog.c:283
+#, fuzzy, c-format
+#| msgid "%s: could not create timeline history file \"%s\": %s\n"
+msgid "could not create timeline history file \"%s\": %s"
 msgstr "%s: 无法创建时间表历史文件 \"%s\": %s\n"
 
-#: receivelog.c:336
-#, c-format
-msgid "%s: could not write timeline history file \"%s\": %s\n"
+#: receivelog.c:290
+#, fuzzy, c-format
+#| msgid "%s: could not write timeline history file \"%s\": %s\n"
+msgid "could not write timeline history file \"%s\": %s"
 msgstr "%s: 无法写时间表历史文件 \"%s\": %s\n"
 
-#: receivelog.c:361
-#, c-format
-msgid "%s: could not rename file \"%s\" to \"%s\": %s\n"
-msgstr "%s: 无法将文件 \"%s\" 重命名为 \"%s\":%s\n"
-
-#: receivelog.c:438
-#, c-format
-msgid ""
-"%s: incompatible server version %s; client does not support streaming from "
-"server versions older than %s\n"
+#: receivelog.c:380
+#, fuzzy, c-format
+#| msgid "%s: incompatible server version %s; client does not support streaming from server versions older than %s\n"
+msgid "incompatible server version %s; client does not support streaming from server versions older than %s"
 msgstr "%s: 不兼容的服务器版本号 %s; 当服务器版本低于%s时客户端不支持流复制\n"
 
-#: receivelog.c:448
-#, c-format
-msgid ""
-"%s: incompatible server version %s; client does not support streaming from "
-"server versions newer than %s\n"
+#: receivelog.c:389
+#, fuzzy, c-format
+#| msgid "%s: incompatible server version %s; client does not support streaming from server versions newer than %s\n"
+msgid "incompatible server version %s; client does not support streaming from server versions newer than %s"
 msgstr "%s: 不兼容的服务器版本号 %s; 当服务器版本高于%s时客户端不支持流复制\n"
 
-#: 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"
+#: receivelog.c:491 streamutil.c:430 streamutil.c:467
+#, fuzzy, c-format
+#| msgid "%s: could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields\n"
+msgid "could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields"
 msgstr "%s: 无法识别系统: 得到%d行和%d列, 期望值为: %d行和%d列或更多列\n"
 
-#: receivelog.c:552
-#, c-format
-msgid ""
-"%s: system identifier does not match between base backup and streaming "
-"connection\n"
+#: receivelog.c:498
+#, fuzzy, c-format
+#| msgid "%s: system identifier does not match between base backup and streaming connection\n"
+msgid "system identifier does not match between base backup and streaming connection"
 msgstr "%s: 基础备份和流连接的系统标识符不匹配\n"
 
-#: receivelog.c:560
-#, c-format
-msgid "%s: starting timeline %u is not present in the server\n"
+#: receivelog.c:504
+#, fuzzy, c-format
+#| msgid "%s: starting timeline %u is not present in the server\n"
+msgid "starting timeline %u is not present in the server"
 msgstr "%s: 服务器上没有起始时间表 %u\n"
 
-#: receivelog.c:600
-#, c-format
-msgid ""
-"%s: unexpected response to TIMELINE_HISTORY command: got %d rows and %d "
-"fields, expected %d rows and %d fields\n"
-msgstr ""
-"%s: 获得命令TIMELINE_HISTORY的意外响应: 得到 %d 行和 %d 列, 期望值为: %d 行"
-"和 %d 列\n"
+#: receivelog.c:545
+#, fuzzy, c-format
+#| msgid "%s: unexpected response to TIMELINE_HISTORY command: got %d rows and %d fields, expected %d rows and %d fields\n"
+msgid "unexpected response to TIMELINE_HISTORY command: got %d rows and %d fields, expected %d rows and %d fields"
+msgstr "%s: 获得命令TIMELINE_HISTORY的意外响应: 得到 %d 行和 %d 列, 期望值为: %d 行和 %d 列\n"
 
-#: receivelog.c:672
-#, c-format
-msgid ""
-"%s: server reported unexpected next timeline %u, following timeline %u\n"
+#: receivelog.c:616
+#, fuzzy, c-format
+#| msgid "%s: server reported unexpected next timeline %u, following timeline %u\n"
+msgid "server reported unexpected next timeline %u, following timeline %u"
 msgstr "%s: 服务器报出的下次意外时间表 %u, 紧跟时间表 %u之后\n"
 
-#: receivelog.c:679
-#, c-format
-msgid ""
-"%s: server stopped streaming timeline %u at %X/%X, but reported next "
-"timeline %u to begin at %X/%X\n"
-msgstr ""
-"%1$s: 服务器在%3$X/%4$X时停止流操作时间表%2$u, 但是报出将在%6$X/%7$X时开始下"
-"一个时间表%5$u\n"
+#: receivelog.c:622
+#, fuzzy, c-format
+#| msgid "%s: server stopped streaming timeline %u at %X/%X, but reported next timeline %u to begin at %X/%X\n"
+msgid "server stopped streaming timeline %u at %X/%X, but reported next timeline %u to begin at %X/%X"
+msgstr "%1$s: 服务器在%3$X/%4$X时停止流操作时间表%2$u, 但是报出将在%6$X/%7$X时开始下一个时间表%5$u\n"
 
-#: receivelog.c:720
-#, c-format
-msgid "%s: replication stream was terminated before stop point\n"
+#: receivelog.c:662
+#, fuzzy, c-format
+#| msgid "%s: replication stream was terminated before stop point\n"
+msgid "replication stream was terminated before stop point"
 msgstr "%s: 流复制在停止点之前异常终止\n"
 
-#: receivelog.c:769
-#, c-format
-msgid ""
-"%s: unexpected result set after end-of-timeline: got %d rows and %d fields, "
-"expected %d rows and %d fields\n"
-msgstr ""
-"%s: 终点时间表的意外结果集: 得到 %d 行和 %d 列, 期望值为: %d 行和 %d 列\n"
+#: receivelog.c:708
+#, fuzzy, c-format
+#| msgid "%s: unexpected result set after end-of-timeline: got %d rows and %d fields, expected %d rows and %d fields\n"
+msgid "unexpected result set after end-of-timeline: got %d rows and %d fields, expected %d rows and %d fields"
+msgstr "%s: 终点时间表的意外结果集: 得到 %d 行和 %d 列, 期望值为: %d 行和 %d 列\n"
 
-#: receivelog.c:779
-#, c-format
-msgid "%s: could not parse next timeline's starting point \"%s\"\n"
+#: receivelog.c:717
+#, fuzzy, c-format
+#| msgid "%s: could not parse next timeline's starting point \"%s\"\n"
+msgid "could not parse next timeline's starting point \"%s\""
 msgstr "%s: 无法解析下次时间表的起始点\"%s\"\n"
 
-#: 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:1148
-#, c-format
-msgid "%s: got WAL data offset %08x, expected %08x\n"
+#: receivelog.c:766 receivelog.c:1018
+#, fuzzy, c-format
+#| msgid "could not fsync file \"%s\": %m"
+msgid "could not fsync file \"%s\": %s"
+msgstr "无法 fsync 文件 \"%s\": %m"
+
+#: receivelog.c:1081
+#, fuzzy, c-format
+#| msgid "%s: received write-ahead log record for offset %u with no file open\n"
+msgid "received write-ahead log record for offset %u with no file open"
+msgstr "%s: 偏移位置 %u 处接收到的预写日志记录没有打开文件\n"
+
+#: receivelog.c:1091
+#, fuzzy, c-format
+#| msgid "%s: got WAL data offset %08x, expected %08x\n"
+msgid "got WAL data offset %08x, expected %08x"
 msgstr "%s: 得到WAL数据偏移 %08x, 期望值为 %08x\n"
 
-#: receivelog.c:1184
-#, c-format
-msgid "%s: could not write %u bytes to WAL file \"%s\": %s\n"
+#: receivelog.c:1125
+#, fuzzy, c-format
+#| msgid "%s: could not write %u bytes to WAL file \"%s\": %s\n"
+msgid "could not write %u bytes to WAL file \"%s\": %s"
 msgstr "%s: 无法写入 %u 字节到 WAL 文件 \"%s\": %s\n"
 
-#: receivelog.c:1209 receivelog.c:1250 receivelog.c:1281
-#, c-format
-msgid "%s: could not send copy-end packet: %s"
+#: receivelog.c:1150 receivelog.c:1190 receivelog.c:1221
+#, fuzzy, c-format
+#| msgid "%s: could not send copy-end packet: %s"
+msgid "could not send copy-end packet: %s"
 msgstr "%s: 无法发送副本结束包: %s"
 
-#: streamutil.c:145
+#: streamutil.c:162
 msgid "Password: "
 msgstr "口令: "
 
-#: streamutil.c:169
-#, c-format
-msgid "%s: could not connect to server\n"
-msgstr "%s: 无法连接到服务器\n"
-
 #: streamutil.c:187
-#, c-format
-msgid "%s: could not connect to server: %s"
-msgstr "%s:无法连接到服务器:%s"
-
-#: streamutil.c:211
-#, c-format
-msgid "%s: could not determine server setting for integer_datetimes\n"
+#, fuzzy, c-format
+#| msgid "could not connect to server: %s"
+msgid "could not connect to server"
+msgstr "无法连接到服务器:%s"
+
+#: streamutil.c:204
+#, c-format
+msgid "could not connect to server: %s"
+msgstr "无法连接到服务器:%s"
+
+#: streamutil.c:233
+#, fuzzy, c-format
+#| msgid "%s: could not clear search_path: %s"
+msgid "could not clear search_path: %s"
+msgstr "%s: 无法清除search_path: %s"
+
+#: streamutil.c:249
+#, fuzzy, c-format
+#| msgid "%s: could not determine server setting for integer_datetimes\n"
+msgid "could not determine server setting for integer_datetimes"
 msgstr "%s: 无法确定服务器上integer_datetimes的配置\n"
 
-#: streamutil.c:224
-#, c-format
-msgid "%s: integer_datetimes compile flag does not match server\n"
+#: streamutil.c:256
+#, fuzzy, c-format
+#| msgid "%s: integer_datetimes compile flag does not match server\n"
+msgid "integer_datetimes compile flag does not match server"
 msgstr "%s: integer_datetimes编译开关与服务器端不匹配\n"
 
-#: 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"
+#: streamutil.c:307
+#, fuzzy, c-format
+#| msgid "%s: could not fetch WAL segment size: got %d rows and %d fields, expected %d rows and %d or more fields\n"
+msgid "could not fetch WAL segment size: got %d rows and %d fields, expected %d rows and %d or more fields"
+msgstr "%s:无法获取WAL段的大小:得到 %d 行和 %d 列, 期望值为: %d 行和 %d 列\n"
+
+#: streamutil.c:317
+#, fuzzy, c-format
+#| msgid "%s: WAL segment size could not be parsed\n"
+msgid "WAL segment size could not be parsed"
+msgstr "%s: 不能解析WAL段的大小\n"
+
+#: streamutil.c:332
+#, fuzzy, c-format
+#| msgid "%s: WAL segment size must be a power of two between 1 MB and 1 GB, but the remote server reported a value of %d byte\n"
+#| msgid_plural "%s: WAL segment size must be a power of two between 1 MB and 1 GB, but the remote server reported a value of %d bytes\n"
+msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the remote server reported a value of %d byte"
+msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the remote server reported a value of %d bytes"
+msgstr[0] "%s: WAL段的大小必须是2的幂次方(在1MB和1GB之间),但是远程服务器报告的值是%d字节\n"
+msgstr[1] "%s: WAL段的大小必须是2的幂次方(在1MB和1GB之间),但是远程服务器报告的值是%d字节\n"
+
+#: streamutil.c:378
+#, fuzzy, c-format
+#| msgid "%s: could not fetch group access flag: got %d rows and %d fields, expected %d rows and %d or more fields\n"
+msgid "could not fetch group access flag: got %d rows and %d fields, expected %d rows and %d or more fields"
+msgstr "%s: 无法获取组访问标志:得到 %d 行和 %d 列,期望值为: %d 行和 %d 列\n"
+
+#: streamutil.c:387
+#, fuzzy, c-format
+#| msgid "%s: group access flag could not be parsed: %s\n"
+msgid "group access flag could not be parsed: %s"
+msgstr "%s: 不能解析组访问标志: %s\n"
+
+#: streamutil.c:544
+#, fuzzy, c-format
+#| msgid "%s: could not create replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields\n"
+msgid "could not create replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields"
 msgstr "%s: 无法创建复制槽 \"%s\": 得到%d行%d列, 但期望值为%d行%d列\n"
 
-#: 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"
+#: streamutil.c:588
+#, fuzzy, c-format
+#| msgid "%s: could not drop replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields\n"
+msgid "could not drop replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields"
 msgstr "%s: 无法删除复制槽 \"%s\": 得到%d行%d列, 但期望值为%d行%d列\n"
 
-#~ msgid "%s: could not parse file size\n"
-#~ msgstr "%s: 无法解析文件大小\n"
+#: walmethods.c:439 walmethods.c:928
+msgid "could not compress data"
+msgstr "无法压缩数据"
+
+#: walmethods.c:471
+msgid "could not reset compression stream"
+msgstr "无法重置压缩流"
+
+#: walmethods.c:569
+msgid "could not initialize compression library"
+msgstr "无法初始化压缩库"
 
-#~ msgid "%s: could not parse file mode\n"
-#~ msgstr "%s: 无法解析文件模式\n"
+#: walmethods.c:581
+msgid "implementation error: tar files can't have more than one open file"
+msgstr "实现错误:tar文件不能有多个打开的文件"
 
-#~ msgid "%s: no start point returned from server\n"
-#~ msgstr "%s: 服务器没有返回起始点\n"
+#: walmethods.c:595
+msgid "could not create tar header"
+msgstr "无法创建tar头"
 
-#~ msgid ""
-#~ "%s: timeline does not match between base backup and streaming connection\n"
-#~ msgstr "%s: 基础备份和流连接的时间安排不匹配\n"
+#: walmethods.c:609 walmethods.c:649 walmethods.c:844 walmethods.c:855
+msgid "could not change compression parameters"
+msgstr "无法更改压缩参数"
 
-#~ msgid "%s: keepalive message has incorrect size %d\n"
-#~ msgstr "%s: keepalive(保持活连接)的消息大小 %d 不正确 \n"
+#: walmethods.c:731
+msgid "unlink not supported with compression"
+msgstr "压缩不支持取消链接"
 
-#~ msgid "%s: could not parse transaction log file name \"%s\"\n"
-#~ msgstr "%s: 无法解析事务日志文件名: \"%s\"\n"
+#: walmethods.c:953
+msgid "could not close compression stream"
+msgstr "无法关闭压缩流"
index faa24598a43bbb75ff53bbe0be197e23e084b536..12f52fce92e4dcbef1d20feb514a50dfb92a1ece 100644 (file)
@@ -5,8 +5,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: pg_config (PostgreSQL 9.0)\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2013-09-02 00:26+0000\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:13+0000\n"
 "PO-Revision-Date: 2013-09-02 13:17+0800\n"
 "Last-Translator: Xiong He <iihero@qq.com>\n"
 "Language-Team: Chinese (Simplified)\n"
@@ -16,53 +16,58 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.4\n"
 
-#: ../../port/exec.c:127 ../../port/exec.c:241 ../../port/exec.c:284
-#, c-format
-msgid "could not identify current directory: %s"
+#: ../../common/config_info.c:130 ../../common/config_info.c:138
+#: ../../common/config_info.c:146 ../../common/config_info.c:154
+#: ../../common/config_info.c:162 ../../common/config_info.c:170
+#: ../../common/config_info.c:178 ../../common/config_info.c:186
+#: ../../common/config_info.c:194
+msgid "not recorded"
+msgstr "没有被记录"
+
+#: ../../common/exec.c:138 ../../common/exec.c:255 ../../common/exec.c:301
+#, fuzzy, c-format
+#| msgid "could not identify current directory: %s"
+msgid "could not identify current directory: %m"
 msgstr "无法确认当前目录: %s"
 
 # command.c:122
-#: ../../port/exec.c:146
+#: ../../common/exec.c:157
 #, c-format
 msgid "invalid binary \"%s\""
 msgstr "无效的二进制码 \"%s\""
 
 # command.c:1103
-#: ../../port/exec.c:195
+#: ../../common/exec.c:207
 #, c-format
 msgid "could not read binary \"%s\""
 msgstr "无法读取二进制码 \"%s\""
 
-#: ../../port/exec.c:202
+#: ../../common/exec.c:215
 #, c-format
 msgid "could not find a \"%s\" to execute"
 msgstr "未能找到一个 \"%s\" 来执行"
 
-#: ../../port/exec.c:257 ../../port/exec.c:293
+#: ../../common/exec.c:271 ../../common/exec.c:310
 #, c-format
-#| msgid "could not change directory to \"%s\": %m"
-msgid "could not change directory to \"%s\": %s"
-msgstr "无法跳转到目录 \"%s\" 中: %s"
+msgid "could not change directory to \"%s\": %m"
+msgstr "无法跳转到目录 \"%s\" 中: %m"
 
-#: ../../port/exec.c:272
+#: ../../common/exec.c:288
 #, c-format
-msgid "could not read symbolic link \"%s\""
-msgstr "无法读取符号链结 \"%s\""
+msgid "could not read symbolic link \"%s\": %m"
+msgstr "无法读取符号链接 \"%s\": %m"
 
-#: ../../port/exec.c:523
-#, c-format
-#| msgid "query failed: %s"
-msgid "pclose failed: %s"
+#: ../../common/exec.c:541
+#, fuzzy, c-format
+#| msgid "pclose failed: %s"
+msgid "pclose failed: %m"
 msgstr "pclose调用失败: %s"
 
-#: pg_config.c:243 pg_config.c:259 pg_config.c:275 pg_config.c:291
-#: pg_config.c:307 pg_config.c:323 pg_config.c:339 pg_config.c:355
-#: pg_config.c:371
-#, c-format
-msgid "not recorded\n"
-msgstr "没有记录\n"
+#: ../../common/exec.c:670 ../../common/exec.c:715 ../../common/exec.c:807
+msgid "out of memory"
+msgstr "内存用尽"
 
-#: pg_config.c:428
+#: pg_config.c:74
 #, c-format
 msgid ""
 "\n"
@@ -73,39 +78,39 @@ msgstr ""
 "%s 提供 PostgreSQL 的安装信息.\n"
 "\n"
 
-#: pg_config.c:429
+#: pg_config.c:75
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: pg_config.c:430
+#: pg_config.c:76
 #, c-format
 msgid ""
 "  %s [OPTION]...\n"
 "\n"
 msgstr "  %s [选项]...\n"
 
-#: pg_config.c:431
+#: pg_config.c:77
 #, c-format
 msgid "Options:\n"
 msgstr "选项:\n"
 
-#: pg_config.c:432
+#: pg_config.c:78
 #, c-format
 msgid "  --bindir              show location of user executables\n"
 msgstr "  --bindir              显示执行文件所在位置\n"
 
-#: pg_config.c:433
+#: pg_config.c:79
 #, c-format
 msgid "  --docdir              show location of documentation files\n"
 msgstr "  --docdir             显示文档所在位置\n"
 
-#: pg_config.c:434
+#: pg_config.c:80
 #, c-format
 msgid "  --htmldir             show location of HTML documentation files\n"
 msgstr "  --htmldir             显示HTML文档文件所在位置\n"
 
-#: pg_config.c:435
+#: pg_config.c:81
 #, c-format
 msgid ""
 "  --includedir          show location of C header files of the client\n"
@@ -114,56 +119,52 @@ msgstr ""
 "  --includedir          显示客户端接口 C 头文件所在\n"
 "                        位置\n"
 
-#: pg_config.c:437
+#: pg_config.c:83
 #, c-format
 msgid "  --pkgincludedir       show location of other C header files\n"
 msgstr "  --pkgincludedir      显示其它C语言头文件所在的位置\n"
 
-#: pg_config.c:438
+#: pg_config.c:84
 #, c-format
-msgid ""
-"  --includedir-server   show location of C header files for the server\n"
+msgid "  --includedir-server   show location of C header files for the server\n"
 msgstr "  --includedir-server   显示服务端 C 头文件所在位置\n"
 
-#: pg_config.c:439
+#: pg_config.c:85
 #, c-format
 msgid "  --libdir              show location of object code libraries\n"
 msgstr "  --libdir              显示目标代码库文件所在位置\n"
 
-#: pg_config.c:440
+#: pg_config.c:86
 #, c-format
 msgid "  --pkglibdir           show location of dynamically loadable modules\n"
 msgstr "  --pkglibdir           显示动态加载库所在位置\n"
 
-#: pg_config.c:441
+#: pg_config.c:87
 #, c-format
 msgid "  --localedir           show location of locale support files\n"
 msgstr "  --localedir           显示语言环境支持文件所在位置\n"
 
-#: pg_config.c:442
+#: pg_config.c:88
 #, c-format
 msgid "  --mandir              show location of manual pages\n"
 msgstr "  --mandir            显示参考手册所在位置\n"
 
-#: pg_config.c:443
+#: pg_config.c:89
 #, c-format
-msgid ""
-"  --sharedir            show location of architecture-independent support "
-"files\n"
+msgid "  --sharedir            show location of architecture-independent support files\n"
 msgstr "  --sharedir              显示独立架构支持文件所在位置\n"
 
-#: pg_config.c:444
+#: pg_config.c:90
 #, c-format
-msgid ""
-"  --sysconfdir          show location of system-wide configuration files\n"
+msgid "  --sysconfdir          show location of system-wide configuration files\n"
 msgstr "  --sysconfdir          显示系统范围的配置文件的所在位置\n"
 
-#: pg_config.c:445
+#: pg_config.c:91
 #, c-format
 msgid "  --pgxs                show location of extension makefile\n"
 msgstr "  --pgxs                显示扩展 makefile 所在位置\n"
 
-#: pg_config.c:446
+#: pg_config.c:92
 #, c-format
 msgid ""
 "  --configure           show options given to \"configure\" script when\n"
@@ -172,66 +173,57 @@ msgstr ""
 "  --configure           显示编译 PostgreSQL 时 \"configure\"\n"
 "                        的选项\n"
 
-#: pg_config.c:448
+#: pg_config.c:94
 #, c-format
 msgid "  --cc                  show CC value used when PostgreSQL was built\n"
 msgstr "  --cc                   显示在创建PostgreSQL时所使用的CC值\n"
 
-#: pg_config.c:449
+#: pg_config.c:95
 #, c-format
-msgid ""
-"  --cppflags            show CPPFLAGS value used when PostgreSQL was built\n"
+msgid "  --cppflags            show CPPFLAGS value used when PostgreSQL was built\n"
 msgstr "  --cppflags            当创建PostgreSQL时显示CPPFLAGS的值\n"
 
-#: pg_config.c:450
+#: pg_config.c:96
 #, c-format
-msgid ""
-"  --cflags              show CFLAGS value used when PostgreSQL was built\n"
+msgid "  --cflags              show CFLAGS value used when PostgreSQL was built\n"
 msgstr "  --cflags             显示在创建PostgreSQL时所使用的CFLAG值\n"
 
-#: pg_config.c:451
+#: pg_config.c:97
 #, c-format
-msgid ""
-"  --cflags_sl           show CFLAGS_SL value used when PostgreSQL was built\n"
+msgid "  --cflags_sl           show CFLAGS_SL value used when PostgreSQL was built\n"
 msgstr " --cflags_sl            当创建PostgreSQL时显示CFLAGS_SL的值\n"
 
-#: pg_config.c:452
+#: pg_config.c:98
 #, c-format
-msgid ""
-"  --ldflags             show LDFLAGS value used when PostgreSQL was built\n"
+msgid "  --ldflags             show LDFLAGS value used when PostgreSQL was built\n"
 msgstr "  --ldflags             显示在创建PostgreSQL时所使用的LDFLAG值\n"
 
-#: pg_config.c:453
+#: pg_config.c:99
 #, c-format
-msgid ""
-"  --ldflags_ex          show LDFLAGS_EX value used when PostgreSQL was "
-"built\n"
+msgid "  --ldflags_ex          show LDFLAGS_EX value used when PostgreSQL was built\n"
 msgstr "  --ldflags_ex          当创建PostgreSQL时显示LDFLAGS_EX的值\n"
 
-#: pg_config.c:454
+#: pg_config.c:100
 #, c-format
-msgid ""
-"  --ldflags_sl          show LDFLAGS_SL value used when PostgreSQL was "
-"built\n"
+msgid "  --ldflags_sl          show LDFLAGS_SL value used when PostgreSQL was built\n"
 msgstr "  --ldflags_sl           当创建PostgreSQL时显示LDFLAGS_SL的值\n"
 
-#: pg_config.c:455
+#: pg_config.c:101
 #, c-format
-msgid ""
-"  --libs                show LIBS value used when PostgreSQL was built\n"
+msgid "  --libs                show LIBS value used when PostgreSQL was built\n"
 msgstr "  --libs               显示在创建PostgreSQL时所使用的LIBS值\n"
 
-#: pg_config.c:456
+#: pg_config.c:102
 #, c-format
 msgid "  --version             show the PostgreSQL version\n"
 msgstr "  --version             显示PostgreSQL的版本信息\n"
 
-#: pg_config.c:457
+#: pg_config.c:103
 #, c-format
 msgid "  -?, --help            show this help, then exit\n"
 msgstr "  -?, --help            显示帮助, 然后退出\n"
 
-#: pg_config.c:458
+#: pg_config.c:104
 #, c-format
 msgid ""
 "\n"
@@ -242,65 +234,23 @@ msgstr ""
 "没有参数,将显示所有已知的成员.\n"
 "\n"
 
-#: pg_config.c:459
-#, c-format
-msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
+#: pg_config.c:105
+#, fuzzy, c-format
+#| msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
+msgid "Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgstr "臭虫报告至 <pgsql-bugs@postgresql.org>.\n"
 
-#: pg_config.c:465
+#: pg_config.c:111
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: pg_config.c:504
+#: pg_config.c:153
 #, c-format
 msgid "%s: could not find own program executable\n"
 msgstr "%s: 无法找到执行文件\n"
 
-#: pg_config.c:527
+#: pg_config.c:180
 #, c-format
 msgid "%s: invalid argument: %s\n"
 msgstr "%s: 无效参数: %s\n"
-
-#~ msgid "  --help                show this help, then exit\n"
-#~ msgstr ""
-#~ "  --help                显示此帮助信息, 然后退出\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "  %s OPTION...\n"
-#~ "\n"
-#~ msgstr ""
-#~ "  %s 选项...\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Try \"%s --help\" for more information\n"
-#~ msgstr ""
-#~ "\n"
-#~ "试用 \"%s --help\" 获取更多的信息\n"
-
-#~ msgid "%s: argument required\n"
-#~ msgstr "%s: 需要参数\n"
-
-#~ msgid "%s: could not find own executable\n"
-#~ msgstr "%s: 找不到执行文件\n"
-
-#~ msgid "child process exited with unrecognized status %d"
-#~ msgstr "子进程已退出, 未知状态 %d"
-
-#~ msgid "child process was terminated by signal %d"
-#~ msgstr "子进程被信号 %d 终止"
-
-#~ msgid "child process was terminated by signal %s"
-#~ msgstr "子进程被信号 %s 终止"
-
-#~ msgid "child process was terminated by exception 0x%X"
-#~ msgstr "子进程被例外(exception) 0x%X 终止"
-
-#~ msgid "child process exited with exit code %d"
-#~ msgstr "子进程已退出, 退出码为 %d"
-
-#~ msgid "could not change directory to \"%s\""
-#~ msgstr "无法进入目录 \"%s\""
index 560c83a0790c656480656a018438cb5aed7b1dc5..a2cfd9ef6c4aa6e3ceb175ad4ee8e497eef45d9a 100644 (file)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: pg_controldata (PostgreSQL 9.0)\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2016-04-18 04:45+0000\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:15+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) <ywpeng@whu.edu.cn>\n"
@@ -15,7 +15,64 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: pg_controldata.c:33
+#: ../../common/controldata_utils.c:73
+#, c-format
+msgid "could not open file \"%s\" for reading: %m"
+msgstr "为了读取, 无法打开文件 \"%s\": %m"
+
+#: ../../common/controldata_utils.c:89
+#, c-format
+msgid "could not read file \"%s\": %m"
+msgstr "无法读取文件 \"%s\": %m"
+
+#: ../../common/controldata_utils.c:101
+#, c-format
+msgid "could not read file \"%s\": read %d of %zu"
+msgstr "无法读取文件\"%1$s\":读取了%3$zu中的%2$d"
+
+#: ../../common/controldata_utils.c:117 ../../common/controldata_utils.c:259
+#, c-format
+msgid "could not close file \"%s\": %m"
+msgstr "无法关闭文件 \"%s\": %m"
+
+#: ../../common/controldata_utils.c:135
+msgid "byte ordering mismatch"
+msgstr "字节排序不匹配"
+
+#: ../../common/controldata_utils.c:137
+#, fuzzy, 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"
+msgid ""
+"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."
+msgstr ""
+"警告: 可能字节顺序不匹配\n"
+"用于存储文件pg_control的字节顺序可能与程序使用的不匹配\n"
+"在那种情况下结果将会是不正确的,并且所安装的PostgreSQL\n"
+"将会与这个数据目录不兼容\n"
+
+#: ../../common/controldata_utils.c:203
+#, c-format
+msgid "could not open file \"%s\": %m"
+msgstr "无法打开文件 \"%s\": %m"
+
+#: ../../common/controldata_utils.c:224
+#, c-format
+msgid "could not write file \"%s\": %m"
+msgstr "无法写入文件 \"%s\": %m"
+
+#: ../../common/controldata_utils.c:245
+#, c-format
+msgid "could not fsync file \"%s\": %m"
+msgstr "无法 fsync 文件 \"%s\": %m"
+
+#: pg_controldata.c:36
 #, c-format
 msgid ""
 "%s displays control information of a PostgreSQL database cluster.\n"
@@ -24,17 +81,17 @@ msgstr ""
 "%s 显示 PostgreSQL 数据库簇控制信息.\n"
 "\n"
 
-#: pg_controldata.c:34
+#: pg_controldata.c:37
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: pg_controldata.c:35
+#: pg_controldata.c:38
 #, c-format
 msgid "  %s [OPTION] [DATADIR]\n"
 msgstr "  %s [选项][DATADIR]\n"
 
-#: pg_controldata.c:36
+#: pg_controldata.c:39
 #, c-format
 msgid ""
 "\n"
@@ -43,27 +100,26 @@ msgstr ""
 "\n"
 "选项:\n"
 
-#: pg_controldata.c:37
+#: pg_controldata.c:40
 #, c-format
-msgid " [-D] DATADIR    data directory\n"
-msgstr " [-D] DATADIR    数据目录\n"
+msgid " [-D, --pgdata=]DATADIR  data directory\n"
+msgstr " [-D, --pgdata=]DATADIR  数据目录\n"
 
-#: pg_controldata.c:38
+#: pg_controldata.c:41
 #, c-format
-msgid "  -V, --version  output version information, then exit\n"
-msgstr " -V, --version 输出版本信息,然后退出\n"
+msgid "  -V, --version          output version information, then exit\n"
+msgstr "  -V, --version          输出版本信息, 然后退出\n"
 
-#: pg_controldata.c:39
+#: pg_controldata.c:42
 #, c-format
-msgid "  -?, --help     show this help, then exit\n"
-msgstr "  -?, --help     显示帮助信息,然后退出\n"
+msgid "  -?, --help             show this help, then exit\n"
+msgstr "  -?, --help             显示帮助, 然后退出\n"
 
-#: pg_controldata.c:40
+#: pg_controldata.c:43
 #, c-format
 msgid ""
 "\n"
-"If no data directory (DATADIR) is specified, the environment variable "
-"PGDATA\n"
+"If no data directory (DATADIR) is specified, the environment variable PGDATA\n"
 "is used.\n"
 "\n"
 msgstr ""
@@ -72,407 +128,384 @@ msgstr ""
 "环境变量PGDATA.\n"
 "\n"
 
-#: pg_controldata.c:42
-#, c-format
-msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
+#: pg_controldata.c:45
+#, fuzzy, c-format
+#| msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
+msgid "Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgstr "报告错误至 <pgsql-bugs@postgresql.org>.\n"
 
-#: pg_controldata.c:52
+#: pg_controldata.c:55
 msgid "starting up"
 msgstr "正在启动"
 
-#: pg_controldata.c:54
+#: pg_controldata.c:57
 msgid "shut down"
 msgstr "关闭"
 
-#: pg_controldata.c:56
+#: pg_controldata.c:59
 msgid "shut down in recovery"
 msgstr "在恢复过程中关闭数据库"
 
-#: pg_controldata.c:58
+#: pg_controldata.c:61
 msgid "shutting down"
 msgstr "正在关闭"
 
-#: pg_controldata.c:60
+#: pg_controldata.c:63
 msgid "in crash recovery"
 msgstr "在恢复中"
 
-#: pg_controldata.c:62
+#: pg_controldata.c:65
 msgid "in archive recovery"
 msgstr "正在归档恢复"
 
-#: pg_controldata.c:64
+#: pg_controldata.c:67
 msgid "in production"
 msgstr "在运行中"
 
-#: pg_controldata.c:66
+#: pg_controldata.c:69
 msgid "unrecognized status code"
 msgstr "不被认可的状态码"
 
-#: pg_controldata.c:81
+#: pg_controldata.c:84
 msgid "unrecognized wal_level"
 msgstr "参数wal_level的值无法识别"
 
-#: pg_controldata.c:127 pg_controldata.c:145 pg_controldata.c:153
+#: pg_controldata.c:138 pg_controldata.c:156 pg_controldata.c:164
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "用 \"%s --help\" 显示更多的信息.\n"
 
-#: pg_controldata.c:143
-#, c-format
-msgid "%s: too many command-line arguments (first is \"%s\")\n"
+#: pg_controldata.c:154
+#, fuzzy, c-format
+#| msgid "%s: too many command-line arguments (first is \"%s\")\n"
+msgid "too many command-line arguments (first is \"%s\")"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_controldata.c:152
-#, c-format
-msgid "%s: no data directory specified\n"
+#: pg_controldata.c:163
+#, fuzzy, c-format
+#| msgid "%s: no data directory specified\n"
+msgid "no data directory specified"
 msgstr "%s: 没有指定数据目录\n"
 
-#: pg_controldata.c:190
+#: pg_controldata.c:171
+#, 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:180
+#, c-format
+msgid "WARNING: invalid WAL segment size\n"
+msgstr "警告: 无效的WAL段大小\n"
+
+#: pg_controldata.c:181
+#, c-format
+msgid ""
+"The WAL segment size stored in the file, %d byte, is not a power of two\n"
+"between 1 MB and 1 GB.  The file is corrupt and the results below are\n"
+"untrustworthy.\n"
+"\n"
+msgid_plural ""
+"The WAL segment size stored in the file, %d bytes, is not a power of two\n"
+"between 1 MB and 1 GB.  The file is corrupt and the results below are\n"
+"untrustworthy.\n"
+"\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: pg_controldata.c:223
+msgid "???"
+msgstr "???"
+
+#: pg_controldata.c:236
 #, c-format
 msgid "pg_control version number:            %u\n"
 msgstr "pg_control 版本:                      %u\n"
 
-#: pg_controldata.c:192
+#: pg_controldata.c:238
 #, c-format
 msgid "Catalog version number:               %u\n"
 msgstr "Catalog 版本:                         %u\n"
 
-#: pg_controldata.c:194
+#: pg_controldata.c:240
 #, c-format
 msgid "Database system identifier:           %s\n"
 msgstr "数据库系统标识符:                     %s\n"
 
-#: pg_controldata.c:196
+#: pg_controldata.c:242
 #, c-format
 msgid "Database cluster state:               %s\n"
 msgstr "数据库簇状态:                         %s\n"
 
-#: pg_controldata.c:198
+#: pg_controldata.c:244
 #, c-format
 msgid "pg_control last modified:             %s\n"
 msgstr "pg_control 最后修改:                  %s\n"
 
-#: pg_controldata.c:200
+#: pg_controldata.c:246
 #, c-format
 msgid "Latest checkpoint location:           %X/%X\n"
 msgstr "最新检查点位置:                       %X/%X\n"
 
-#: pg_controldata.c:203
-#, c-format
-msgid "Prior checkpoint location:            %X/%X\n"
-msgstr "优先检查点位置:                       %X/%X\n"
-
-#: pg_controldata.c:206
+#: pg_controldata.c:249
 #, c-format
 msgid "Latest checkpoint's REDO location:    %X/%X\n"
 msgstr "最新检查点的 REDO 位置:               %X/%X\n"
 
-#: pg_controldata.c:209
+#: pg_controldata.c:252
 #, c-format
 msgid "Latest checkpoint's REDO WAL file:    %s\n"
 msgstr "最新检查点的重做日志文件: %s\n"
 
-#: pg_controldata.c:211
+#: pg_controldata.c:254
 #, c-format
 msgid "Latest checkpoint's TimeLineID:       %u\n"
 msgstr "最新检查点的 TimeLineID:              %u\n"
 
-#: pg_controldata.c:213
+#: pg_controldata.c:256
 #, c-format
 msgid "Latest checkpoint's PrevTimeLineID:   %u\n"
 msgstr "最新检查点的PrevTimeLineID: %u\n"
 
-#: pg_controldata.c:215
+#: pg_controldata.c:258
 #, c-format
 msgid "Latest checkpoint's full_page_writes: %s\n"
 msgstr "最新检查点的full_page_writes: %s\n"
 
 # help.c:48
-#: pg_controldata.c:216 pg_controldata.c:261 pg_controldata.c:271
+#: pg_controldata.c:259 pg_controldata.c:304 pg_controldata.c:316
 msgid "off"
 msgstr "关闭"
 
 # help.c:48
-#: pg_controldata.c:216 pg_controldata.c:261 pg_controldata.c:271
+#: pg_controldata.c:259 pg_controldata.c:304 pg_controldata.c:316
 msgid "on"
 msgstr "开启"
 
-#: pg_controldata.c:217
+#: pg_controldata.c:260
 #, c-format
-#| msgid "Latest checkpoint's NextXID:          %u/%u\n"
 msgid "Latest checkpoint's NextXID:          %u:%u\n"
 msgstr "最新检查点的NextXID:          %u:%u\n"
 
-#: pg_controldata.c:220
+#: pg_controldata.c:263
 #, c-format
 msgid "Latest checkpoint's NextOID:          %u\n"
 msgstr "最新检查点的 NextOID:                 %u\n"
 
-#: pg_controldata.c:222
+#: pg_controldata.c:265
 #, c-format
 msgid "Latest checkpoint's NextMultiXactId:  %u\n"
 msgstr "最新检查点的NextMultiXactId: %u\n"
 
-#: pg_controldata.c:224
+#: pg_controldata.c:267
 #, c-format
 msgid "Latest checkpoint's NextMultiOffset:  %u\n"
 msgstr "最新检查点的NextMultiOffsetD: %u\n"
 
-#: pg_controldata.c:226
+#: pg_controldata.c:269
 #, c-format
 msgid "Latest checkpoint's oldestXID:        %u\n"
 msgstr "最新检查点的oldestXID:            %u\n"
 
-#: pg_controldata.c:228
+#: pg_controldata.c:271
 #, c-format
 msgid "Latest checkpoint's oldestXID's DB:   %u\n"
 msgstr "最新检查点的oldestXID所在的数据库:%u\n"
 
-#: pg_controldata.c:230
+#: pg_controldata.c:273
 #, c-format
 msgid "Latest checkpoint's oldestActiveXID:  %u\n"
 msgstr "最新检查点的oldestActiveXID:  %u\n"
 
-#: pg_controldata.c:232
+#: pg_controldata.c:275
 #, c-format
 msgid "Latest checkpoint's oldestMultiXid:   %u\n"
 msgstr "最新检查点的oldestMultiXid:  %u\n"
 
-#: pg_controldata.c:234
+#: pg_controldata.c:277
 #, c-format
 msgid "Latest checkpoint's oldestMulti's DB: %u\n"
 msgstr "最新检查点的oldestMulti所在的数据库:%u\n"
 
-#: pg_controldata.c:236
+#: pg_controldata.c:279
 #, c-format
-#| msgid "Latest checkpoint's oldestCommitTs:   %u\n"
 msgid "Latest checkpoint's oldestCommitTsXid:%u\n"
 msgstr "最新检查点的oldestCommitTsXid:%u\n"
 
-#: pg_controldata.c:238
+#: pg_controldata.c:281
 #, c-format
-#| msgid "Latest checkpoint's newestCommitTs:   %u\n"
 msgid "Latest checkpoint's newestCommitTsXid:%u\n"
 msgstr "最新检查点的newestCommitTsXid:%u\n"
 
-#: pg_controldata.c:240
+#: pg_controldata.c:283
 #, c-format
 msgid "Time of latest checkpoint:            %s\n"
 msgstr "最新检查点的时间:                     %s\n"
 
-#: pg_controldata.c:242
+#: pg_controldata.c:285
 #, c-format
 msgid "Fake LSN counter for unlogged rels:   %X/%X\n"
 msgstr "不带日志的关系: %X/%X使用虚假的LSN计数器\n"
 
-#: pg_controldata.c:245
+#: pg_controldata.c:288
 #, c-format
 msgid "Minimum recovery ending location:     %X/%X\n"
 msgstr "最小恢复结束位置: %X/%X\n"
 
-#: pg_controldata.c:248
+#: pg_controldata.c:291
 #, c-format
 msgid "Min recovery ending loc's timeline:   %u\n"
 msgstr "最小恢复结束位置时间表: %u\n"
 
-#: pg_controldata.c:250
+#: pg_controldata.c:293
 #, c-format
 msgid "Backup start location:                %X/%X\n"
 msgstr "开始进行备份的点位置:                       %X/%X\n"
 
-#: pg_controldata.c:253
+#: pg_controldata.c:296
 #, c-format
 msgid "Backup end location:                  %X/%X\n"
 msgstr "备份的最终位置:                  %X/%X\n"
 
-#: pg_controldata.c:256
+#: pg_controldata.c:299
 #, c-format
 msgid "End-of-backup record required:        %s\n"
 msgstr "需要终止备份的记录:        %s\n"
 
-#: pg_controldata.c:257
+#: pg_controldata.c:300
 msgid "no"
 msgstr "否"
 
-#: pg_controldata.c:257
+#: pg_controldata.c:300
 msgid "yes"
 msgstr "是"
 
-#: pg_controldata.c:258
+#: pg_controldata.c:301
 #, c-format
 msgid "wal_level setting:                    %s\n"
 msgstr "wal_level设置:                    %s\n"
 
-#: pg_controldata.c:260
+#: pg_controldata.c:303
 #, c-format
 msgid "wal_log_hints setting:                %s\n"
 msgstr "wal_log_hints设置:        %s\n"
 
-#: pg_controldata.c:262
+#: pg_controldata.c:305
 #, c-format
 msgid "max_connections setting:              %d\n"
 msgstr "max_connections设置:   %d\n"
 
-#: pg_controldata.c:264
+#: pg_controldata.c:307
 #, c-format
 msgid "max_worker_processes setting:         %d\n"
 msgstr "max_worker_processes设置:   %d\n"
 
-#: pg_controldata.c:266
+#: pg_controldata.c:309
+#, fuzzy, c-format
+#| msgid "max_connections setting:              %d\n"
+msgid "max_wal_senders setting:              %d\n"
+msgstr "max_connections设置:   %d\n"
+
+#: pg_controldata.c:311
 #, c-format
 msgid "max_prepared_xacts setting:           %d\n"
 msgstr "max_prepared_xacts设置:   %d\n"
 
-#: pg_controldata.c:268
+#: pg_controldata.c:313
 #, c-format
 msgid "max_locks_per_xact setting:           %d\n"
 msgstr "max_locks_per_xact设置:   %d\n"
 
-#: pg_controldata.c:270
+#: pg_controldata.c:315
 #, c-format
 msgid "track_commit_timestamp setting:       %s\n"
 msgstr "track_commit_timestamp设置:        %s\n"
 
-#: pg_controldata.c:272
+#: pg_controldata.c:317
 #, c-format
 msgid "Maximum data alignment:               %u\n"
 msgstr "最大数据校准:     %u\n"
 
-#: pg_controldata.c:275
+#: pg_controldata.c:320
 #, c-format
 msgid "Database block size:                  %u\n"
 msgstr "数据库块大小:                         %u\n"
 
-#: pg_controldata.c:277
+#: pg_controldata.c:322
 #, c-format
 msgid "Blocks per segment of large relation: %u\n"
 msgstr "大关系的每段块数:                     %u\n"
 
-#: pg_controldata.c:279
+#: pg_controldata.c:324
 #, c-format
 msgid "WAL block size:                       %u\n"
 msgstr "WAL的块大小:    %u\n"
 
-#: pg_controldata.c:281
+#: pg_controldata.c:326
 #, c-format
 msgid "Bytes per WAL segment:                %u\n"
 msgstr "每一个 WAL 段字节数:                  %u\n"
 
-#: pg_controldata.c:283
+#: pg_controldata.c:328
 #, c-format
 msgid "Maximum length of identifiers:        %u\n"
 msgstr "标识符的最大长度:                     %u\n"
 
-#: pg_controldata.c:285
+#: pg_controldata.c:330
 #, c-format
 msgid "Maximum columns in an index:          %u\n"
 msgstr "在索引中可允许使用最大的列数:    %u\n"
 
-#: pg_controldata.c:287
+#: pg_controldata.c:332
 #, c-format
 msgid "Maximum size of a TOAST chunk:        %u\n"
 msgstr "TOAST区块的最大长度:                %u\n"
 
-#: pg_controldata.c:289
+#: pg_controldata.c:334
 #, c-format
 msgid "Size of a large-object chunk:         %u\n"
 msgstr "大对象区块的大小:         %u\n"
 
-#: pg_controldata.c:291
+#: pg_controldata.c:337
 #, c-format
 msgid "Date/time type storage:               %s\n"
 msgstr "日期/时间 类型存储:                   %s\n"
 
-#: pg_controldata.c:292
+#: pg_controldata.c:338
 msgid "64-bit integers"
 msgstr "64位整数"
 
-#: pg_controldata.c:292
-msgid "floating-point numbers"
-msgstr "浮点数"
-
-#: pg_controldata.c:293
+#: pg_controldata.c:339
 #, c-format
 msgid "Float4 argument passing:              %s\n"
 msgstr "正在传递Flloat4类型的参数:           %s\n"
 
-#: pg_controldata.c:294 pg_controldata.c:296
+#: pg_controldata.c:340 pg_controldata.c:342
 msgid "by reference"
 msgstr "由引用"
 
-#: pg_controldata.c:294 pg_controldata.c:296
+#: pg_controldata.c:340 pg_controldata.c:342
 msgid "by value"
 msgstr "由值"
 
-#: pg_controldata.c:295
+#: pg_controldata.c:341
 #, c-format
 msgid "Float8 argument passing:              %s\n"
 msgstr "正在传递Flloat8类型的参数:                   %s\n"
 
-#: pg_controldata.c:297
+#: pg_controldata.c:343
 #, 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"
-#~ "\n"
-#~ "Options:\n"
-#~ "  --help         show this help, then exit\n"
-#~ "  --version      output version information, then exit\n"
-#~ msgstr ""
-#~ "使用方法:\n"
-#~ "  %s [选项] [数据目录]\n"
-#~ "\n"
-#~ "选项:\n"
-#~ "  --help         显示此帮助信息, 然后退出\n"
-#~ "  --version      显示 pg_controldata 的版本, 然后退出\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 ""
-#~ "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 "%s: could not read file \"%s\": %s\n"
-#~ msgstr "%s: 无法读取文件 \"%s\": %s\n"
-
-#~ msgid "%s: could not open file \"%s\" for reading: %s\n"
-#~ msgstr "%s: 无法打开文件 \"%s\" 读取信息: %s\n"
+#: pg_controldata.c:345
+#, c-format
+msgid "Mock authentication nonce:            %s\n"
+msgstr "当前身份验证:            %s\n"
index c62a5221ad997eef11aff1e8a7b8d35d3448949b..9f0cdde713a7d3b5af6644faf2d74881c0b548d4 100644 (file)
@@ -5,8 +5,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: pg_ctl (PostgreSQL 9.0)\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2015-11-26 18:43+0000\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:13+0000\n"
 "PO-Revision-Date: 2015-12-01 19:30+0800\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
 "Language-Team: Chinese (Simplified)\n"
@@ -16,46 +16,52 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: ../../common/exec.c:127 ../../common/exec.c:241 ../../common/exec.c:284
-#, c-format
-msgid "could not identify current directory: %s"
+#: ../../common/exec.c:138 ../../common/exec.c:255 ../../common/exec.c:301
+#, fuzzy, c-format
+#| msgid "could not identify current directory: %s"
+msgid "could not identify current directory: %m"
 msgstr "无法确认当前目录: %s"
 
 # command.c:122
-#: ../../common/exec.c:146
+#: ../../common/exec.c:157
 #, c-format
 msgid "invalid binary \"%s\""
 msgstr "无效的二进制码 \"%s\""
 
 # command.c:1103
-#: ../../common/exec.c:195
+#: ../../common/exec.c:207
 #, c-format
 msgid "could not read binary \"%s\""
 msgstr "无法读取二进制码 \"%s\""
 
-#: ../../common/exec.c:202
+#: ../../common/exec.c:215
 #, c-format
 msgid "could not find a \"%s\" to execute"
 msgstr "未能找到一个 \"%s\" 来执行"
 
-#: ../../common/exec.c:257 ../../common/exec.c:293
+#: ../../common/exec.c:271 ../../common/exec.c:310
 #, c-format
-msgid "could not change directory to \"%s\": %s"
-msgstr "无法跳转到目录 \"%s\" 中: %s"
+msgid "could not change directory to \"%s\": %m"
+msgstr "无法跳转到目录 \"%s\" 中: %m"
 
-#: ../../common/exec.c:272
+#: ../../common/exec.c:288
 #, c-format
-msgid "could not read symbolic link \"%s\""
-msgstr "无法读取符号链结 \"%s\""
+msgid "could not read symbolic link \"%s\": %m"
+msgstr "无法读取符号链接 \"%s\": %m"
 
-#: ../../common/exec.c:523
-#, c-format
-msgid "pclose failed: %s"
+#: ../../common/exec.c:541
+#, fuzzy, c-format
+#| msgid "pclose failed: %s"
+msgid "pclose failed: %m"
 msgstr "pclose调用失败: %s"
 
+#: ../../common/exec.c:670 ../../common/exec.c:715 ../../common/exec.c:807
+msgid "out of memory"
+msgstr "内存用尽"
+
 #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75
-#: ../../common/fe_memutils.c:98 ../../port/path.c:598 ../../port/path.c:636
-#: ../../port/path.c:653
+#: ../../common/fe_memutils.c:98 ../../port/path.c:632 ../../port/path.c:670
+#: ../../port/path.c:687
 #, c-format
 msgid "out of memory\n"
 msgstr "内存溢出\n"
@@ -66,122 +72,109 @@ msgstr "内存溢出\n"
 msgid "cannot duplicate null pointer (internal error)\n"
 msgstr "无法复制空指针 (内部错误)\n"
 
-#: ../../common/wait_error.c:47
+#: ../../common/wait_error.c:45
 #, c-format
 msgid "command not executable"
 msgstr "无法执行命令"
 
-#: ../../common/wait_error.c:51
+#: ../../common/wait_error.c:49
 #, c-format
 msgid "command not found"
 msgstr "没有找到命令"
 
-#: ../../common/wait_error.c:56
+#: ../../common/wait_error.c:54
 #, c-format
 msgid "child process exited with exit code %d"
 msgstr "子进程已退出, 退出码为 %d"
 
-#: ../../common/wait_error.c:63
+#: ../../common/wait_error.c:62
 #, c-format
 msgid "child process was terminated by exception 0x%X"
 msgstr "子进程被例外(exception) 0x%X 终止"
 
-#: ../../common/wait_error.c:73
-#, c-format
-msgid "child process was terminated by signal %s"
-msgstr "子进程被信号 %s 终止"
-
-#: ../../common/wait_error.c:77
-#, c-format
-msgid "child process was terminated by signal %d"
+#: ../../common/wait_error.c:66
+#, fuzzy, c-format
+#| msgid "child process was terminated by signal %d"
+msgid "child process was terminated by signal %d: %s"
 msgstr "子进程被信号 %d 终止"
 
-#: ../../common/wait_error.c:82
+#: ../../common/wait_error.c:72
 #, c-format
 msgid "child process exited with unrecognized status %d"
 msgstr "子进程已退出, 未知状态 %d"
 
-#: ../../port/path.c:620
+#: ../../port/path.c:654
 #, c-format
 msgid "could not get current working directory: %s\n"
 msgstr "无法得到当前工作目录: %s\n"
 
-#: pg_ctl.c:258
+#: pg_ctl.c:262
 #, c-format
 msgid "%s: directory \"%s\" does not exist\n"
 msgstr "%s: 目录 \"%s\" 不存在\n"
 
-#: pg_ctl.c:261
+#: pg_ctl.c:265
 #, c-format
 msgid "%s: could not access directory \"%s\": %s\n"
 msgstr "%s: 无法访问目录 \"%s\": %s\n"
 
-#: pg_ctl.c:275
+#: pg_ctl.c:278
 #, c-format
 msgid "%s: directory \"%s\" is not a database cluster directory\n"
 msgstr "%s: 目录 \"%s\"不是一个数据库集群目录\n"
 
-#: pg_ctl.c:288
+#: pg_ctl.c:291
 #, c-format
 msgid "%s: could not open PID file \"%s\": %s\n"
 msgstr "%s: 无法打开 PID 文件 \"%s\": %s\n"
 
-#: pg_ctl.c:297
+#: pg_ctl.c:300
 #, c-format
 msgid "%s: the PID file \"%s\" is empty\n"
 msgstr "%s: PID 文件 \"%s\" 为空\n"
 
-#: pg_ctl.c:300
+#: pg_ctl.c:303
 #, c-format
 msgid "%s: invalid data in PID file \"%s\"\n"
 msgstr "%s: PID文件 \"%s\" 中存在无效数据\n"
 
-#: pg_ctl.c:450 pg_ctl.c:478
+#: pg_ctl.c:464 pg_ctl.c:506
 #, c-format
-#| msgid "could not start server\n"
 msgid "%s: could not start server: %s\n"
 msgstr "%s: 无法启动服务器:%s\n"
 
-#: pg_ctl.c:502
+#: pg_ctl.c:484
+#, fuzzy, c-format
+#| msgid "%s: could not start server: %s\n"
+msgid "%s: could not start server due to setsid() failure: %s\n"
+msgstr "%s: 无法启动服务器:%s\n"
+
+#: pg_ctl.c:530
 #, c-format
-#| msgid "%s: could not start service \"%s\": error code %lu\n"
 msgid "%s: could not start server: error code %lu\n"
 msgstr "%s:无法启动服务器:错误代码%lu\n"
 
-#: pg_ctl.c:579
-#, c-format
-msgid ""
-"\n"
-"%s: -w option is not supported when starting a pre-9.1 server\n"
-msgstr ""
-"\n"
-"%s: -w 选项不能用于9.1以前版本的服务器启动\n"
-
-#: pg_ctl.c:644
-#, c-format
-msgid ""
-"\n"
-"%s: -w option cannot use a relative socket directory specification\n"
-msgstr ""
-"\n"
-"%s: -w 选项不能用于相对套接字目录\n"
-
-#: pg_ctl.c:746
+#: pg_ctl.c:677
 #, c-format
 msgid "%s: cannot set core file size limit; disallowed by hard limit\n"
 msgstr "%s: 不能设置核心文件大小的限制;磁盘限额不允许\n"
 
-#: pg_ctl.c:771
+#: pg_ctl.c:703
 #, c-format
 msgid "%s: could not read file \"%s\"\n"
 msgstr "%s: 无法读取文件 \"%s\"\n"
 
-#: pg_ctl.c:776
+#: pg_ctl.c:708
 #, c-format
 msgid "%s: option file \"%s\" must have exactly one line\n"
 msgstr "%s: 选项文件 \"%s\" 只能有一行\n"
 
-#: pg_ctl.c:827
+#: pg_ctl.c:750 pg_ctl.c:941 pg_ctl.c:1037
+#, c-format
+msgid "%s: could not send stop signal (PID: %ld): %s\n"
+msgstr "%s: 无法发送停止信号 (PID: %ld): %s\n"
+
+#: pg_ctl.c:778
 #, c-format
 msgid ""
 "The program \"%s\" is needed by %s but was not found in the\n"
@@ -192,7 +185,7 @@ msgstr ""
 "\n"
 "请检查您的安装.\n"
 
-#: pg_ctl.c:833
+#: pg_ctl.c:784
 #, c-format
 msgid ""
 "The program \"%s\" was found by \"%s\"\n"
@@ -203,37 +196,38 @@ msgstr ""
 "\n"
 "检查您的安装.\n"
 
-#: pg_ctl.c:866
+#: pg_ctl.c:817
 #, c-format
 msgid "%s: database system initialization failed\n"
 msgstr "%s: 数据库系统初始化失败\n"
 
-#: pg_ctl.c:881
+#: pg_ctl.c:832
 #, c-format
 msgid "%s: another server might be running; trying to start server anyway\n"
 msgstr "%s: 其他服务器进程可能正在运行; 尝试启动服务器进程\n"
 
-#: pg_ctl.c:919
+#: pg_ctl.c:881
 msgid "waiting for server to start..."
 msgstr "等待服务器进程启动 ..."
 
-#: pg_ctl.c:924 pg_ctl.c:1031 pg_ctl.c:1122
+#: pg_ctl.c:886 pg_ctl.c:991 pg_ctl.c:1083 pg_ctl.c:1213
 msgid " done\n"
 msgstr " 完成\n"
 
-#: pg_ctl.c:925
+#: pg_ctl.c:887
 msgid "server started\n"
 msgstr "服务器进程已经启动\n"
 
-#: pg_ctl.c:928 pg_ctl.c:932
+#: pg_ctl.c:890 pg_ctl.c:896 pg_ctl.c:1218
 msgid " stopped waiting\n"
 msgstr " 已停止等待\n"
 
-#: pg_ctl.c:929
-msgid "server is still starting up\n"
-msgstr "服务器仍在启动过程中\n"
+#: pg_ctl.c:891
+#, c-format
+msgid "%s: server did not start in time\n"
+msgstr "%s: 服务没有及时启动\n"
 
-#: pg_ctl.c:933
+#: pg_ctl.c:897
 #, c-format
 msgid ""
 "%s: could not start server\n"
@@ -242,43 +236,29 @@ msgstr ""
 "%s: 无法启动服务器进程\n"
 "检查日志输出.\n"
 
-#: pg_ctl.c:939 pg_ctl.c:1023 pg_ctl.c:1113
-msgid " failed\n"
-msgstr " 失败\n"
-
-#: pg_ctl.c:940
-#, c-format
-msgid "%s: could not wait for server because of misconfiguration\n"
-msgstr "%s: 因为配制错误,而无法等待服务器\n"
-
-#: pg_ctl.c:946
+#: pg_ctl.c:905
 msgid "server starting\n"
 msgstr "正在启动服务器进程\n"
 
-#: pg_ctl.c:967 pg_ctl.c:1053 pg_ctl.c:1143 pg_ctl.c:1183
+#: pg_ctl.c:926 pg_ctl.c:1013 pg_ctl.c:1104 pg_ctl.c:1143 pg_ctl.c:1242
 #, c-format
 msgid "%s: PID file \"%s\" does not exist\n"
 msgstr "%s: PID 文件 \"%s\" 不存在\n"
 
-#: pg_ctl.c:968 pg_ctl.c:1055 pg_ctl.c:1144 pg_ctl.c:1184
+#: pg_ctl.c:927 pg_ctl.c:1015 pg_ctl.c:1105 pg_ctl.c:1144 pg_ctl.c:1243
 msgid "Is server running?\n"
 msgstr "服务器进程是否正在运行?\n"
 
-#: pg_ctl.c:974
+#: pg_ctl.c:933
 #, c-format
 msgid "%s: cannot stop server; single-user server is running (PID: %ld)\n"
 msgstr "%s: 无法停止服务器进程; 正在运行 单用户模式服务器进程(PID: %ld)\n"
 
-#: pg_ctl.c:982 pg_ctl.c:1077
-#, c-format
-msgid "%s: could not send stop signal (PID: %ld): %s\n"
-msgstr "%s: 无法发送停止信号 (PID: %ld): %s\n"
-
-#: pg_ctl.c:989
+#: pg_ctl.c:948
 msgid "server shutting down\n"
 msgstr "正在关闭服务器进程\n"
 
-#: pg_ctl.c:1004 pg_ctl.c:1092
+#: pg_ctl.c:963 pg_ctl.c:1052
 msgid ""
 "WARNING: online backup mode is active\n"
 "Shutdown will not complete until pg_stop_backup() is called.\n"
@@ -287,16 +267,20 @@ msgstr ""
 "警告: 在线备份模式处于激活状态\n"
 "关闭命令将不会完成,直到调用了pg_stop_backup().\n"
 
-#: pg_ctl.c:1008 pg_ctl.c:1096
+#: pg_ctl.c:967 pg_ctl.c:1056
 msgid "waiting for server to shut down..."
 msgstr "等待服务器进程关闭 ..."
 
-#: pg_ctl.c:1025 pg_ctl.c:1115
+#: pg_ctl.c:983 pg_ctl.c:1074
+msgid " failed\n"
+msgstr " 失败\n"
+
+#: pg_ctl.c:985 pg_ctl.c:1076
 #, c-format
 msgid "%s: server does not shut down\n"
 msgstr "%s: server进程没有关闭\n"
 
-#: pg_ctl.c:1027 pg_ctl.c:1117
+#: pg_ctl.c:987 pg_ctl.c:1078
 msgid ""
 "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n"
 "waiting for session-initiated disconnection.\n"
@@ -304,186 +288,252 @@ msgstr ""
 "提示: \"-m fast\" 选项可以立即断开会话, 而不用\n"
 "等待会话发起的断连.\n"
 
-#: pg_ctl.c:1033 pg_ctl.c:1123
+#: pg_ctl.c:993 pg_ctl.c:1084
 msgid "server stopped\n"
 msgstr "服务器进程已经关闭\n"
 
-#: pg_ctl.c:1056 pg_ctl.c:1129
-msgid "starting server anyway\n"
-msgstr "正在启动服务器进程\n"
+#: pg_ctl.c:1016
+msgid "trying to start server anyway\n"
+msgstr "尝试启动服务器进程\n"
 
-#: pg_ctl.c:1065
+#: pg_ctl.c:1025
 #, c-format
 msgid "%s: cannot restart server; single-user server is running (PID: %ld)\n"
 msgstr "%s: 无法重启服务器进程; 单用户模式服务器进程正在运行 (PID: %ld)\n"
 
-#: pg_ctl.c:1068 pg_ctl.c:1153
+#: pg_ctl.c:1028 pg_ctl.c:1114
 msgid "Please terminate the single-user server and try again.\n"
 msgstr "请终止单用户模式服务器进程,然后再重试.\n"
 
-#: pg_ctl.c:1127
+#: pg_ctl.c:1088
 #, c-format
 msgid "%s: old server process (PID: %ld) seems to be gone\n"
 msgstr "%s: 原有的进程(PID: %ld)可能已经不存在了\n"
 
-#: pg_ctl.c:1150
+#: pg_ctl.c:1090
+msgid "starting server anyway\n"
+msgstr "正在启动服务器进程\n"
+
+#: pg_ctl.c:1111
 #, c-format
 msgid "%s: cannot reload server; single-user server is running (PID: %ld)\n"
-msgstr ""
-"%s: 无法重新加载服务器进程;正在运行单用户模式的服务器进程 (PID: %ld)\n"
+msgstr "%s: 无法重新加载服务器进程;正在运行单用户模式的服务器进程 (PID: %ld)\n"
 
-#: pg_ctl.c:1159
+#: pg_ctl.c:1120
 #, c-format
 msgid "%s: could not send reload signal (PID: %ld): %s\n"
 msgstr "%s: 无法发送重载信号 (PID: %ld): %s\n"
 
-#: pg_ctl.c:1164
+#: pg_ctl.c:1125
 msgid "server signaled\n"
 msgstr "服务器进程发出信号\n"
 
-#: pg_ctl.c:1190
+#: pg_ctl.c:1150
 #, c-format
 msgid "%s: cannot promote server; single-user server is running (PID: %ld)\n"
-msgstr ""
-"%s: 无法重新加载服务器进程;正在运行单用户模式的服务器进程 (PID: %ld)\n"
+msgstr "%s: 无法重新加载服务器进程;正在运行单用户模式的服务器进程 (PID: %ld)\n"
 
-#: pg_ctl.c:1199
+#: pg_ctl.c:1158
 #, c-format
 msgid "%s: cannot promote server; server is not in standby mode\n"
 msgstr "%s: 无法重新加载服务器进程;服务器没有运行在standby模式下\n"
 
-#: pg_ctl.c:1214
+#: pg_ctl.c:1173
 #, c-format
 msgid "%s: could not create promote signal file \"%s\": %s\n"
 msgstr "%s: 无法创建重新加载信号文件 \"%s\": %s\n"
 
-#: pg_ctl.c:1220
+#: pg_ctl.c:1179
 #, c-format
 msgid "%s: could not write promote signal file \"%s\": %s\n"
 msgstr "%s: 无法写入重新加载文件 \"%s\": %s\n"
 
-#: pg_ctl.c:1228
+#: pg_ctl.c:1187
 #, c-format
 msgid "%s: could not send promote signal (PID: %ld): %s\n"
 msgstr "%s: 无法发送重载信号(PID: %ld): %s\n"
 
-#: pg_ctl.c:1231
+#: pg_ctl.c:1190
 #, c-format
 msgid "%s: could not remove promote signal file \"%s\": %s\n"
 msgstr "%s: 无法移动重新加载信号文件 \"%s\": %s\n"
 
-#: pg_ctl.c:1236
+#: pg_ctl.c:1200
+msgid "waiting for server to promote..."
+msgstr "等待服务器进程加载 ..."
+
+#: pg_ctl.c:1214
+msgid "server promoted\n"
+msgstr "服务器加载完毕\n"
+
+#: pg_ctl.c:1219
+#, c-format
+msgid "%s: server did not promote in time\n"
+msgstr "%s: 服务进程没有及时加载\n"
+
+#: pg_ctl.c:1225
 msgid "server promoting\n"
 msgstr "服务器重新加载中\n"
 
-#: pg_ctl.c:1283
+#: pg_ctl.c:1249
+#, fuzzy, c-format
+#| msgid "%s: cannot reload server; single-user server is running (PID: %ld)\n"
+msgid "%s: cannot rotate log file; single-user server is running (PID: %ld)\n"
+msgstr "%s: 无法重新加载服务器进程;正在运行单用户模式的服务器进程 (PID: %ld)\n"
+
+#: pg_ctl.c:1259
+#, fuzzy, c-format
+#| msgid "%s: could not create promote signal file \"%s\": %s\n"
+msgid "%s: could not create log rotation signal file \"%s\": %s\n"
+msgstr "%s: 无法创建重新加载信号文件 \"%s\": %s\n"
+
+#: pg_ctl.c:1265
+#, fuzzy, c-format
+#| msgid "%s: could not write promote signal file \"%s\": %s\n"
+msgid "%s: could not write log rotation signal file \"%s\": %s\n"
+msgstr "%s: 无法写入重新加载文件 \"%s\": %s\n"
+
+#: pg_ctl.c:1273
+#, fuzzy, c-format
+#| msgid "%s: could not send reload signal (PID: %ld): %s\n"
+msgid "%s: could not send log rotation signal (PID: %ld): %s\n"
+msgstr "%s: 无法发送重载信号 (PID: %ld): %s\n"
+
+#: pg_ctl.c:1276
+#, fuzzy, c-format
+#| msgid "%s: could not remove promote signal file \"%s\": %s\n"
+msgid "%s: could not remove log rotation signal file \"%s\": %s\n"
+msgstr "%s: 无法移动重新加载信号文件 \"%s\": %s\n"
+
+#: pg_ctl.c:1281
+#, fuzzy
+#| msgid "server signaled\n"
+msgid "server signaled to rotate log file\n"
+msgstr "服务器进程发出信号\n"
+
+#: pg_ctl.c:1328
 #, c-format
 msgid "%s: single-user server is running (PID: %ld)\n"
 msgstr "%s: 正在运行单用户模式服务器进程 (PID: %ld)\n"
 
-#: pg_ctl.c:1296
+#: pg_ctl.c:1342
 #, c-format
 msgid "%s: server is running (PID: %ld)\n"
 msgstr "%s: 正在运行服务器进程(PID: %ld)\n"
 
-#: pg_ctl.c:1312
+#: pg_ctl.c:1358
 #, c-format
 msgid "%s: no server running\n"
 msgstr "%s:没有服务器进程正在运行\n"
 
-#: pg_ctl.c:1330
+#: pg_ctl.c:1375
 #, c-format
 msgid "%s: could not send signal %d (PID: %ld): %s\n"
 msgstr "%s: 无法发送信号 %d (PID: %ld): %s\n"
 
-#: pg_ctl.c:1387
+#: pg_ctl.c:1432
 #, c-format
 msgid "%s: could not find own program executable\n"
 msgstr "%s: 无法找到执行文件\n"
 
-#: pg_ctl.c:1397
+#: pg_ctl.c:1442
 #, c-format
 msgid "%s: could not find postgres program executable\n"
 msgstr "%s: 无法找到postgres程序的执行文件\n"
 
-#: pg_ctl.c:1480 pg_ctl.c:1514
+#: pg_ctl.c:1512 pg_ctl.c:1546
 #, c-format
 msgid "%s: could not open service manager\n"
 msgstr "%s: 无法打开服务管理器\n"
 
-#: pg_ctl.c:1486
+#: pg_ctl.c:1518
 #, c-format
 msgid "%s: service \"%s\" already registered\n"
 msgstr "%s: 服务 \"%s\" 已经注册了\n"
 
-#: pg_ctl.c:1497
+#: pg_ctl.c:1529
 #, c-format
 msgid "%s: could not register service \"%s\": error code %lu\n"
 msgstr "%s: 无法注册服务 \"%s\": 错误码 %lu\n"
 
-#: pg_ctl.c:1520
+#: pg_ctl.c:1552
 #, c-format
 msgid "%s: service \"%s\" not registered\n"
 msgstr "%s: 服务 \"%s\" 没有注册\n"
 
-#: pg_ctl.c:1527
+#: pg_ctl.c:1559
 #, c-format
 msgid "%s: could not open service \"%s\": error code %lu\n"
 msgstr "%s: 无法打开服务 \"%s\": 错误码 %lu\n"
 
-#: pg_ctl.c:1536
+#: pg_ctl.c:1568
 #, c-format
 msgid "%s: could not unregister service \"%s\": error code %lu\n"
 msgstr "%s: 无法注销服务 \"%s\": 错误码 %lu\n"
 
-#: pg_ctl.c:1623
+#: pg_ctl.c:1655
 msgid "Waiting for server startup...\n"
 msgstr "等待服务器进程启动 ...\n"
 
-#: pg_ctl.c:1626
+#: pg_ctl.c:1658
 msgid "Timed out waiting for server startup\n"
 msgstr "在等待服务器启动时超时\n"
 
-#: pg_ctl.c:1630
+#: pg_ctl.c:1662
 msgid "Server started and accepting connections\n"
 msgstr "服务器进程已启动并且接受连接\n"
 
-#: pg_ctl.c:1685
+#: pg_ctl.c:1717
 #, c-format
 msgid "%s: could not start service \"%s\": error code %lu\n"
 msgstr "%s: 无法启动服务 \"%s\": 错误码 %lu\n"
 
-#: pg_ctl.c:1759
+#: pg_ctl.c:1787
 #, c-format
 msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
 msgstr "%s: 警告: 该平台上无法创建受限令牌\n"
 
-#: pg_ctl.c:1774
+#: pg_ctl.c:1800
 #, c-format
 msgid "%s: could not open process token: error code %lu\n"
 msgstr "%s: 无法打开进程令牌 (token): 错误码 %lu\n"
 
-#: pg_ctl.c:1788
+#: pg_ctl.c:1814
 #, c-format
 msgid "%s: could not allocate SIDs: error code %lu\n"
 msgstr "%s: 无法分配SID: 错误码 %lu\n"
 
-#: pg_ctl.c:1808
+#: pg_ctl.c:1841
 #, c-format
 msgid "%s: could not create restricted token: error code %lu\n"
 msgstr "%s: 无法创建继承套接字: 错误码为 %lu\n"
 
-#: pg_ctl.c:1842
+#: pg_ctl.c:1872
 #, c-format
 msgid "%s: WARNING: could not locate all job object functions in system API\n"
 msgstr "%s: 警告: 系统API中无法定位所有工作对象函数\n"
 
-#: pg_ctl.c:1925
+#: pg_ctl.c:1969
+#, c-format
+msgid "%s: could not get LUIDs for privileges: error code %lu\n"
+msgstr "%s: 由于权限无法获取LUID: 错误码 %lu\n"
+
+#: pg_ctl.c:1977 pg_ctl.c:1992
+#, c-format
+msgid "%s: could not get token information: error code %lu\n"
+msgstr "%s: 无法获得令牌信息: 错误码 %lu\n"
+
+#: pg_ctl.c:1986
+#, c-format
+msgid "%s: out of memory\n"
+msgstr "%s: 内存溢出\n"
+
+#: pg_ctl.c:2016
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "试用 \"%s --help\" 获取更多的信息.\n"
 
-#: pg_ctl.c:1933
+#: pg_ctl.c:2024
 #, c-format
 msgid ""
 "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n"
@@ -492,73 +542,95 @@ msgstr ""
 "%s 是一个用于初始化、启动、停止或控制PostgreSQL服务器的工具.\n"
 "\n"
 
-#: pg_ctl.c:1934
+#: pg_ctl.c:2025
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: pg_ctl.c:1935
-#, c-format
-msgid "  %s init[db]               [-D DATADIR] [-s] [-o \"OPTIONS\"]\n"
-msgstr "  %s init[db]               [-D 数据目录] [-s] [-o \"选项\"]\n"
-
-#: pg_ctl.c:1936
-#, c-format
+#: pg_ctl.c:2026
+#, fuzzy, c-format
+#| msgid "  %s init[db] [-D DATADIR] [-s] [-o OPTIONS]\n"
+msgid "  %s init[db]   [-D DATADIR] [-s] [-o OPTIONS]\n"
+msgstr "  %s init[db] [-D 数据目录] [-s] [-o 选项]\n"
+
+#: pg_ctl.c:2027
+#, fuzzy, c-format
+#| msgid ""
+#| "  %s start    [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n"
+#| "                  [-o OPTIONS] [-p PATH] [-c]\n"
 msgid ""
-"  %s start   [-w] [-t SECS] [-D DATADIR] [-s] [-l FILENAME] [-o \"OPTIONS"
-"\"]\n"
+"  %s start      [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n"
+"                    [-o OPTIONS] [-p PATH] [-c]\n"
 msgstr ""
-"  %s start   [-w]  [-t 秒数] [-D 数据目录] [-s] [-l 文件名] [-o \"选项\"]\n"
-
-#: pg_ctl.c:1937
-#, c-format
-msgid "  %s stop    [-W] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]\n"
-msgstr "  %s stop   [-W]  [-t 秒数] [-D 数据目录] [-s] [-m 关闭模式]\n"
-
-#: pg_ctl.c:1938
-#, c-format
+"  %s start    [-D 数据目录] [-l 文件名] [-W] [-t 秒数] [-s]\n"
+"                  [-o 选项] [-p 路径] [-c]\n"
+
+#: pg_ctl.c:2029
+#, fuzzy, c-format
+#| msgid "  %s stop     [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n"
+msgid "  %s stop       [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n"
+msgstr "  %s stop     [-D 数据目录] [-m 数据目录] [-W] [-t 秒数] [-s]\n"
+
+#: pg_ctl.c:2030
+#, fuzzy, c-format
+#| msgid ""
+#| "  %s restart  [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n"
+#| "                  [-o OPTIONS] [-c]\n"
 msgid ""
-"  %s restart [-w] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]\n"
-"                 [-o \"OPTIONS\"]\n"
+"  %s restart    [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n"
+"                    [-o OPTIONS] [-c]\n"
 msgstr ""
-"  %s restart [-w] [-t 秒数] [-D 数据目录] [-s] [-m 关闭模式]\n"
-"                [-o \"选项\"]\n"
-
-#: pg_ctl.c:1940
-#, c-format
-msgid "  %s reload  [-D DATADIR] [-s]\n"
-msgstr "  %s reload  [-D 数据目录] [-s]\n"
-
-#: pg_ctl.c:1941
-#, c-format
-msgid "  %s status  [-D DATADIR]\n"
-msgstr "  %s status  [-D 数据目录]\n"
-
-#: pg_ctl.c:1942
-#, c-format
-msgid "  %s promote [-D DATADIR] [-s]\n"
-msgstr "  %s promote  [-D 数据目录] [-s]\n"
-
-#: pg_ctl.c:1943
-#, c-format
-msgid "  %s kill    SIGNALNAME PID\n"
-msgstr "  %s kill    信号名称 进程号\n"
-
-#: pg_ctl.c:1945
-#, c-format
+"  %s restart  [-D 数据目录] [-m 数据目录] [-W] [-t 秒数] [-s]\n"
+"                  [-o 选项] [-c]\n"
+
+#: pg_ctl.c:2032
+#, fuzzy, c-format
+#| msgid "  %s reload   [-D DATADIR] [-s]\n"
+msgid "  %s reload     [-D DATADIR] [-s]\n"
+msgstr "  %s reload   [-D 数据目录] [-s]\n"
+
+#: pg_ctl.c:2033
+#, fuzzy, c-format
+#| msgid "  %s status   [-D DATADIR]\n"
+msgid "  %s status     [-D DATADIR]\n"
+msgstr "  %s status   [-D 数据目录]\n"
+
+#: pg_ctl.c:2034
+#, fuzzy, c-format
+#| msgid "  %s promote  [-D DATADIR] [-W] [-t SECS] [-s]\n"
+msgid "  %s promote    [-D DATADIR] [-W] [-t SECS] [-s]\n"
+msgstr "  %s promote  [-D 数据目录] [-W] [-t 秒数] [-s]\n"
+
+#: pg_ctl.c:2035
+#, fuzzy, c-format
+#| msgid "  %s reload   [-D DATADIR] [-s]\n"
+msgid "  %s logrotate  [-D DATADIR] [-s]\n"
+msgstr "  %s reload   [-D 数据目录] [-s]\n"
+
+#: pg_ctl.c:2036
+#, fuzzy, c-format
+#| msgid "  %s kill     SIGNALNAME PID\n"
+msgid "  %s kill       SIGNALNAME PID\n"
+msgstr "  %s kill     信号名称 进程号\n"
+
+#: pg_ctl.c:2038
+#, fuzzy, c-format
+#| msgid ""
+#| "  %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n"
+#| "                  [-S START-TYPE] [-e SOURCE] [-W] [-t SECS] [-s] [-o OPTIONS]\n"
 msgid ""
-"  %s register   [-N SERVICENAME] [-U USERNAME] [-P PASSWORD] [-D DATADIR]\n"
-"                    [-S START-TYPE] [-w] [-t SECS] [-o \"OPTIONS\"]\n"
+"  %s register   [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n"
+"                    [-S START-TYPE] [-e SOURCE] [-W] [-t SECS] [-s] [-o OPTIONS]\n"
 msgstr ""
-"  %s register   [-N 服务名称] [-U 用户名] [-P 口令] [-D 数据目录]\n"
-"          [-S 启动类型] [-w] [-t 秒数] [-o \"选项\"]\n"
+"  %s register   [-D 数据目录] [-N 服务名称] [-U 用户名] [-P 口令]\n"
+"                    [-S 启动类型] [-e 源] [-W] [-t 秒数] [-s] [-o 选项]\n"
 
-#: pg_ctl.c:1947
+#: pg_ctl.c:2040
 #, c-format
 msgid "  %s unregister [-N SERVICENAME]\n"
 msgstr "  %s unregister [-N 服务名称]\n"
 
-#: pg_ctl.c:1950
+#: pg_ctl.c:2043
 #, c-format
 msgid ""
 "\n"
@@ -567,62 +639,52 @@ msgstr ""
 "\n"
 "普通选项:\n"
 
-#: pg_ctl.c:1951
+#: pg_ctl.c:2044
 #, c-format
 msgid "  -D, --pgdata=DATADIR   location of the database storage area\n"
 msgstr "  -D, --pgdata=数据目录  数据库存储区域的位置\n"
 
-#: pg_ctl.c:1953
+#: pg_ctl.c:2046
 #, c-format
-msgid ""
-"  -e SOURCE              event source for logging when running as a service\n"
+msgid "  -e SOURCE              event source for logging when running as a service\n"
 msgstr "  -e SOURCE              当作为一个服务运行时要记录的事件的来源\n"
 
-#: pg_ctl.c:1955
+#: pg_ctl.c:2048
 #, c-format
 msgid "  -s, --silent           only print errors, no informational messages\n"
 msgstr "  -s, --silent           只打印错误信息, 没有其他信息\n"
 
-#: pg_ctl.c:1956
+#: pg_ctl.c:2049
 #, c-format
 msgid "  -t, --timeout=SECS     seconds to wait when using -w option\n"
 msgstr "  -t, --timeout=SECS    当使用-w 选项时需要等待的秒数\n"
 
-#: pg_ctl.c:1957
+#: pg_ctl.c:2050
 #, c-format
 msgid "  -V, --version          output version information, then exit\n"
 msgstr "  -V, --version           输出版本信息, 然后退出\n"
 
-#: pg_ctl.c:1958
+#: pg_ctl.c:2051
 #, c-format
-msgid "  -w                     wait until operation completes\n"
-msgstr "  -w                     等待直到操作完成\n"
+msgid "  -w, --wait             wait until operation completes (default)\n"
+msgstr "  -w, --wait             等待直到操作完成(默认)\n"
 
-#: pg_ctl.c:1959
+#: pg_ctl.c:2052
 #, c-format
-msgid "  -W                     do not wait until operation completes\n"
-msgstr "  -W                     不用等待操作完成\n"
+msgid "  -W, --no-wait          do not wait until operation completes\n"
+msgstr "  -W, --no-wait          不用等待操作完成\n"
 
-#: pg_ctl.c:1960
+#: pg_ctl.c:2053
 #, c-format
 msgid "  -?, --help             show this help, then exit\n"
 msgstr "  -?, --help             显示此帮助, 然后退出\n"
 
-#: pg_ctl.c:1961
-#, c-format
-msgid ""
-"(The default is to wait for shutdown, but not for start or restart.)\n"
-"\n"
-msgstr ""
-"(默认为关闭等待, 但不是启动或重启.)\n"
-"\n"
-
-#: pg_ctl.c:1962
+#: pg_ctl.c:2054
 #, c-format
 msgid "If the -D option is omitted, the environment variable PGDATA is used.\n"
 msgstr "如果省略了 -D 选项, 将使用 PGDATA 环境变量.\n"
 
-#: pg_ctl.c:1964
+#: pg_ctl.c:2056
 #, c-format
 msgid ""
 "\n"
@@ -631,36 +693,36 @@ msgstr ""
 "\n"
 "启动或重启的选项:\n"
 
-#: pg_ctl.c:1966
+#: pg_ctl.c:2058
 #, c-format
 msgid "  -c, --core-files       allow postgres to produce core files\n"
 msgstr "  -c, --core-files       允许postgres进程产生核心文件\n"
 
-#: pg_ctl.c:1968
+#: pg_ctl.c:2060
 #, c-format
 msgid "  -c, --core-files       not applicable on this platform\n"
 msgstr "  -c, --core-files       在这种平台上不可用\n"
 
-#: pg_ctl.c:1970
+#: pg_ctl.c:2062
 #, c-format
 msgid "  -l, --log=FILENAME     write (or append) server log to FILENAME\n"
 msgstr "  -l, --log=FILENAME    写入 (或追加) 服务器日志到文件FILENAME\n"
 
-#: pg_ctl.c:1971
+#: pg_ctl.c:2063
 #, c-format
 msgid ""
-"  -o OPTIONS             command line options to pass to postgres\n"
+"  -o, --options=OPTIONS  command line options to pass to postgres\n"
 "                         (PostgreSQL server executable) or initdb\n"
 msgstr ""
-"  -o OPTIONS             传递给postgres的命令行选项\n"
-"                      (PostgreSQL 服务器执行文件)或initdb\n"
+"  -o, --options=OPTIONS  传递给postgres的命令行选项\n"
+"                         (PostgreSQL 服务器执行文件)或initdb\n"
 
-#: pg_ctl.c:1973
+#: pg_ctl.c:2065
 #, c-format
 msgid "  -p PATH-TO-POSTGRES    normally not necessary\n"
 msgstr "  -p PATH-TO-POSTMASTER  正常情况不必要\n"
 
-#: pg_ctl.c:1974
+#: pg_ctl.c:2066
 #, c-format
 msgid ""
 "\n"
@@ -669,14 +731,12 @@ msgstr ""
 "\n"
 "停止或重启的选项:\n"
 
-#: pg_ctl.c:1975
+#: pg_ctl.c:2067
 #, c-format
-msgid ""
-"  -m, --mode=MODE        MODE can be \"smart\", \"fast\", or \"immediate\"\n"
-msgstr ""
-"  -m, --mode=MODE        可以是 \"smart\", \"fast\", 或者 \"immediate\"\n"
+msgid "  -m, --mode=MODE        MODE can be \"smart\", \"fast\", or \"immediate\"\n"
+msgstr "  -m, --mode=MODE        可以是 \"smart\", \"fast\", 或者 \"immediate\"\n"
 
-#: pg_ctl.c:1977
+#: pg_ctl.c:2069
 #, c-format
 msgid ""
 "\n"
@@ -685,24 +745,22 @@ msgstr ""
 "\n"
 "关闭模式有如下几种:\n"
 
-#: pg_ctl.c:1978
+#: pg_ctl.c:2070
 #, c-format
 msgid "  smart       quit after all clients have disconnected\n"
 msgstr "  smart       所有客户端断开连接后退出\n"
 
-#: pg_ctl.c:1979
+#: pg_ctl.c:2071
 #, c-format
-msgid "  fast        quit directly, with proper shutdown\n"
-msgstr "  fast        直接退出, 正确的关闭\n"
+msgid "  fast        quit directly, with proper shutdown (default)\n"
+msgstr "  fast        直接退出, 正确的关闭(默认)\n"
 
-#: pg_ctl.c:1980
+#: pg_ctl.c:2072
 #, c-format
-msgid ""
-"  immediate   quit without complete shutdown; will lead to recovery on "
-"restart\n"
+msgid "  immediate   quit without complete shutdown; will lead to recovery on restart\n"
 msgstr "  immediate   不完全的关闭退出; 重启后恢复\n"
 
-#: pg_ctl.c:1982
+#: pg_ctl.c:2074
 #, c-format
 msgid ""
 "\n"
@@ -711,7 +769,7 @@ msgstr ""
 "\n"
 "允许关闭的信号名称:\n"
 
-#: pg_ctl.c:1986
+#: pg_ctl.c:2078
 #, c-format
 msgid ""
 "\n"
@@ -720,28 +778,27 @@ msgstr ""
 "\n"
 "注册或注销的选项:\n"
 
-#: pg_ctl.c:1987
+#: pg_ctl.c:2079
 #, c-format
-msgid ""
-"  -N SERVICENAME  service name with which to register PostgreSQL server\n"
+msgid "  -N SERVICENAME  service name with which to register PostgreSQL server\n"
 msgstr "  -N 服务名称     注册到 PostgreSQL 服务器的服务名称\n"
 
-#: pg_ctl.c:1988
+#: pg_ctl.c:2080
 #, c-format
 msgid "  -P PASSWORD     password of account to register PostgreSQL server\n"
 msgstr "  -P 口令         注册到 PostgreSQL 服务器帐户的口令\n"
 
-#: pg_ctl.c:1989
+#: pg_ctl.c:2081
 #, c-format
 msgid "  -U USERNAME     user name of account to register PostgreSQL server\n"
 msgstr "  -U 用户名       注册到 PostgreSQL 服务器帐户的用户名\n"
 
-#: pg_ctl.c:1990
+#: pg_ctl.c:2082
 #, c-format
 msgid "  -S START-TYPE   service start type to register PostgreSQL server\n"
 msgstr "  -S START-TYPE   注册到PostgreSQL服务器的服务启动类型\n"
 
-#: pg_ctl.c:1992
+#: pg_ctl.c:2084
 #, c-format
 msgid ""
 "\n"
@@ -750,47 +807,54 @@ msgstr ""
 "\n"
 "启动类型有:\n"
 
-#: pg_ctl.c:1993
+#: pg_ctl.c:2085
 #, c-format
-msgid ""
-"  auto       start service automatically during system startup (default)\n"
+msgid "  auto       start service automatically during system startup (default)\n"
 msgstr "  auto       在系统启动时自动启动服务(默认选项)\n"
 
-#: pg_ctl.c:1994
+#: pg_ctl.c:2086
 #, c-format
 msgid "  demand     start service on demand\n"
 msgstr "  demand     按需启动服务\n"
 
-#: pg_ctl.c:1997
-#, c-format
+#: pg_ctl.c:2089
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgid ""
 "\n"
-"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+"Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgstr ""
 "\n"
 "臭虫报告至 <pgsql-bugs@postgresql.org>.\n"
 
-#: pg_ctl.c:2022
+#: pg_ctl.c:2114
 #, c-format
 msgid "%s: unrecognized shutdown mode \"%s\"\n"
 msgstr "%s: 无效的关闭模式 \"%s\"\n"
 
-#: pg_ctl.c:2054
+#: pg_ctl.c:2143
 #, c-format
 msgid "%s: unrecognized signal name \"%s\"\n"
 msgstr "%s: 无效信号名称 \"%s\"\n"
 
-#: pg_ctl.c:2071
+#: pg_ctl.c:2160
 #, c-format
 msgid "%s: unrecognized start type \"%s\"\n"
 msgstr "%s: 无法识别的启动类型 \"%s\"\n"
 
-#: pg_ctl.c:2126
+#: pg_ctl.c:2215
 #, c-format
 msgid "%s: could not determine the data directory using command \"%s\"\n"
 msgstr "%s: 使用命令 \"%s\"无法确定数据目录\n"
 
-#: pg_ctl.c:2198
+#: pg_ctl.c:2240
+#, c-format
+msgid "%s: control file appears to be corrupt\n"
+msgstr "%s: 控制文件似乎已损坏\n"
+
+#: pg_ctl.c:2308
 #, c-format
 msgid ""
 "%s: cannot be run as root\n"
@@ -801,92 +865,32 @@ msgstr ""
 "请以服务器进程所属用户 (非特权用户) 登录 (或使用 \"su\")\n"
 "\n"
 
-#: pg_ctl.c:2277
+#: pg_ctl.c:2392
 #, c-format
 msgid "%s: -S option not supported on this platform\n"
 msgstr "%s: -S 选项在该平台上不支持\n"
 
-#: pg_ctl.c:2315
+#: pg_ctl.c:2429
 #, c-format
 msgid "%s: too many command-line arguments (first is \"%s\")\n"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_ctl.c:2339
+#: pg_ctl.c:2455
 #, c-format
 msgid "%s: missing arguments for kill mode\n"
 msgstr "%s: 缺少 kill 模式参数\n"
 
-#: pg_ctl.c:2357
+#: pg_ctl.c:2473
 #, c-format
 msgid "%s: unrecognized operation mode \"%s\"\n"
 msgstr "%s: 无效的操作模式 \"%s\"\n"
 
-#: pg_ctl.c:2367
+#: pg_ctl.c:2483
 #, c-format
 msgid "%s: no operation specified\n"
 msgstr "%s: 没有指定操作\n"
 
-#: pg_ctl.c:2388
+#: pg_ctl.c:2504
 #, c-format
-msgid ""
-"%s: no database directory specified and environment variable PGDATA unset\n"
+msgid "%s: no database directory specified and environment variable PGDATA unset\n"
 msgstr "%s: 没有指定数据目录, 并且没有设置 PGDATA 环境变量\n"
-
-#~ msgid ""
-#~ "%s is a utility to start, stop, restart, reload configuration files,\n"
-#~ "report the status of a PostgreSQL server, or signal a PostgreSQL "
-#~ "process.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "%s 是一个启动, 停止, 重启, 重载配置文件, 报告 PostgreSQL 服务器状态,\n"
-#~ "或者杀掉 PostgreSQL 进程的工具\n"
-#~ "\n"
-
-#~ msgid "  --help                 show this help, then exit\n"
-#~ msgstr "  --help                 显示此帮助信息, 然后退出\n"
-
-#~ msgid "  --version              output version information, then exit\n"
-#~ msgstr "  --version              显示版本信息, 然后退出\n"
-
-#~ msgid ""
-#~ "The program \"postmaster\" is needed by %s but was not found in the\n"
-#~ "same directory as \"%s\".\n"
-#~ "Check your installation.\n"
-#~ msgstr ""
-#~ "程序 \"postmaster\" 是 %s 需要的, 但没有在同一个目录 \"%s\" 发现.\n"
-#~ "\n"
-#~ "检查您的安装.\n"
-
-#~ msgid ""
-#~ "The program \"postmaster\" was found by \"%s\"\n"
-#~ "but was not the same version as %s.\n"
-#~ "Check your installation.\n"
-#~ msgstr ""
-#~ "%s 找到程序 \"postmaster\", 但版本和 \"%s\" 不一致.\n"
-#~ "\n"
-#~ "检查您的安装.\n"
-
-#~ msgid "%s: neither postmaster nor postgres running\n"
-#~ msgstr "%s: postmaster 或者 postgres 没有运行\n"
-
-#~ msgid "%s: a standalone backend \"postgres\" is running (PID: %ld)\n"
-#~ msgstr "%s: 一个独立的后端 \"postgres\" 正在运行 (PID: %ld)\n"
-
-#~ msgid "%s: invalid option %s\n"
-#~ msgstr "%s: 无效选项 %s\n"
-
-#~ msgid "%s: out of memory\n"
-#~ msgstr "%s: 内存溢出\n"
-
-#~ msgid "could not change directory to \"%s\""
-#~ msgstr "无法进入目录 \"%s\""
-
-#~ msgid "%s: could not start server: exit code was %d\n"
-#~ msgstr "%s: 无法启动服务器进程: 退出码为 %d\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "%s: this data directory appears to be running a pre-existing postmaster\n"
-#~ msgstr ""
-#~ "\n"
-#~ "%s: 数据目录里可能正在运行着一个已经存在的postmaster进程\n"
index b9d56bd9bfaa2f20cf2c500df1b696fb7be3e27e..b714382f954902ed0449b093f3f38a5ab46da4e1 100644 (file)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: pg_dump (PostgreSQL 9.0)\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2016-04-18 04:44+0000\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:14+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) <ywpeng@whu.edu.cn>\n"
@@ -16,46 +16,66 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: ../../common/exec.c:127 ../../common/exec.c:241 ../../common/exec.c:284
+#: ../../../src/common/logging.c:188
 #, c-format
-msgid "could not identify current directory: %s"
+msgid "fatal: "
+msgstr ""
+
+#: ../../../src/common/logging.c:195
+#, c-format
+msgid "error: "
+msgstr ""
+
+#: ../../../src/common/logging.c:202
+#, c-format
+msgid "warning: "
+msgstr ""
+
+#: ../../common/exec.c:138 ../../common/exec.c:255 ../../common/exec.c:301
+#, fuzzy, c-format
+#| msgid "could not identify current directory: %s"
+msgid "could not identify current directory: %m"
 msgstr "无法确认当前目录: %s"
 
 # command.c:122
-#: ../../common/exec.c:146
+#: ../../common/exec.c:157
 #, c-format
 msgid "invalid binary \"%s\""
 msgstr "无效的二进制码 \"%s\""
 
 # command.c:1103
-#: ../../common/exec.c:195
+#: ../../common/exec.c:207
 #, c-format
 msgid "could not read binary \"%s\""
 msgstr "无法读取二进制码 \"%s\""
 
-#: ../../common/exec.c:202
+#: ../../common/exec.c:215
 #, c-format
 msgid "could not find a \"%s\" to execute"
 msgstr "未能找到一个 \"%s\" 来执行"
 
-#: ../../common/exec.c:257 ../../common/exec.c:293
+#: ../../common/exec.c:271 ../../common/exec.c:310
 #, c-format
-msgid "could not change directory to \"%s\": %s"
-msgstr "无法跳转到目录 \"%s\" 中: %s"
+msgid "could not change directory to \"%s\": %m"
+msgstr "无法跳转到目录 \"%s\" 中: %m"
 
-#: ../../common/exec.c:272
+#: ../../common/exec.c:288
 #, c-format
-msgid "could not read symbolic link \"%s\""
-msgstr "无法读取符号链结 \"%s\""
+msgid "could not read symbolic link \"%s\": %m"
+msgstr "无法读取符号链接 \"%s\": %m"
 
-#: ../../common/exec.c:523
-#, c-format
-msgid "pclose failed: %s"
+#: ../../common/exec.c:541
+#, fuzzy, c-format
+#| msgid "pclose failed: %s"
+msgid "pclose failed: %m"
 msgstr "pclose调用失败: %s"
 
+#: ../../common/exec.c:670 ../../common/exec.c:715 ../../common/exec.c:807
+msgid "out of memory"
+msgstr "内存用尽"
+
 #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75
-#: ../../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
+#: ../../common/fe_memutils.c:98
 #, c-format
 msgid "out of memory\n"
 msgstr "内存用尽\n"
@@ -66,1231 +86,1297 @@ msgstr "内存用尽\n"
 msgid "cannot duplicate null pointer (internal error)\n"
 msgstr "无法复制空指针 (内部错误)\n"
 
-#: ../../common/wait_error.c:47
+#: ../../common/wait_error.c:45
 #, c-format
 msgid "command not executable"
 msgstr "命令无法执行"
 
-#: ../../common/wait_error.c:51
+#: ../../common/wait_error.c:49
 #, c-format
 msgid "command not found"
 msgstr "命令没有找到"
 
-#: ../../common/wait_error.c:56
+#: ../../common/wait_error.c:54
 #, c-format
 msgid "child process exited with exit code %d"
 msgstr "子进程已退出, 退出码为 %d"
 
-#: ../../common/wait_error.c:63
+#: ../../common/wait_error.c:62
 #, c-format
 msgid "child process was terminated by exception 0x%X"
 msgstr "子进程被例外(exception) 0x%X 终止"
 
-#: ../../common/wait_error.c:73
-#, c-format
-msgid "child process was terminated by signal %s"
-msgstr "子进程被信号 %s 终止"
-
-#: ../../common/wait_error.c:77
-#, c-format
-msgid "child process was terminated by signal %d"
+#: ../../common/wait_error.c:66
+#, fuzzy, c-format
+#| msgid "child process was terminated by signal %d"
+msgid "child process was terminated by signal %d: %s"
 msgstr "子进程被信号 %d 终止"
 
-#: ../../common/wait_error.c:82
+#: ../../common/wait_error.c:72
 #, c-format
 msgid "child process exited with unrecognized status %d"
 msgstr "子进程已退出, 未知状态 %d"
 
-#: common.c:121
-#, c-format
-msgid "reading extensions\n"
+#: common.c:123
+#, fuzzy, c-format
+#| msgid "reading extensions\n"
+msgid "reading extensions"
 msgstr "读扩展\n"
 
-#: common.c:126
-#, c-format
-#| msgid "finding extension members\n"
-msgid "identifying extension members\n"
+#: common.c:127
+#, fuzzy, c-format
+#| msgid "identifying extension members\n"
+msgid "identifying extension members"
 msgstr "识别扩展成员\n"
 
 #: common.c:130
-#, c-format
-msgid "reading schemas\n"
+#, fuzzy, c-format
+#| msgid "reading schemas\n"
+msgid "reading schemas"
 msgstr "读取模式\n"
 
-#: common.c:141
-#, c-format
-msgid "reading user-defined tables\n"
+#: common.c:140
+#, fuzzy, c-format
+#| msgid "reading user-defined tables\n"
+msgid "reading user-defined tables"
 msgstr "读取用户定义表\n"
 
-#: common.c:149
-#, c-format
-msgid "reading user-defined functions\n"
+#: common.c:147
+#, fuzzy, c-format
+#| msgid "reading user-defined functions\n"
+msgid "reading user-defined functions"
 msgstr "读取用户定义函数\n"
 
-#: common.c:155
-#, c-format
-msgid "reading user-defined types\n"
+#: common.c:152
+#, fuzzy, c-format
+#| msgid "reading user-defined types\n"
+msgid "reading user-defined types"
 msgstr "读取用户定义类型\n"
 
-#: common.c:161
-#, c-format
-msgid "reading procedural languages\n"
+#: common.c:157
+#, fuzzy, c-format
+#| msgid "reading procedural languages\n"
+msgid "reading procedural languages"
 msgstr "读取过程语言\n"
 
-#: common.c:165
-#, c-format
-msgid "reading user-defined aggregate functions\n"
+#: common.c:160
+#, fuzzy, c-format
+#| msgid "reading user-defined aggregate functions\n"
+msgid "reading user-defined aggregate functions"
 msgstr "读取用户定义聚集函数\n"
 
-#: common.c:169
-#, c-format
-msgid "reading user-defined operators\n"
+#: common.c:163
+#, fuzzy, c-format
+#| msgid "reading user-defined operators\n"
+msgid "reading user-defined operators"
 msgstr "读取用户定义操作符\n"
 
-#: common.c:174
-#, c-format
-#| msgid "reading user-defined conversions\n"
-msgid "reading user-defined access methods\n"
+#: common.c:167
+#, fuzzy, c-format
+#| msgid "reading user-defined access methods\n"
+msgid "reading user-defined access methods"
 msgstr "读取用户定义的访问方法\n"
 
-#: common.c:178
-#, c-format
-msgid "reading user-defined operator classes\n"
+#: common.c:170
+#, fuzzy, c-format
+#| msgid "reading user-defined operator classes\n"
+msgid "reading user-defined operator classes"
 msgstr "读取用户定义操作符集\n"
 
-#: common.c:182
-#, c-format
-msgid "reading user-defined operator families\n"
+#: common.c:173
+#, fuzzy, c-format
+#| msgid "reading user-defined operator families\n"
+msgid "reading user-defined operator families"
 msgstr "读取用户定义操作符\n"
 
-#: common.c:186
-#, c-format
-msgid "reading user-defined text search parsers\n"
+#: common.c:176
+#, fuzzy, c-format
+#| msgid "reading user-defined text search parsers\n"
+msgid "reading user-defined text search parsers"
 msgstr "读取用户定义的文本搜索解析器\n"
 
-#: common.c:190
-#, c-format
-msgid "reading user-defined text search templates\n"
+#: common.c:179
+#, fuzzy, c-format
+#| msgid "reading user-defined text search templates\n"
+msgid "reading user-defined text search templates"
 msgstr "读取用户定义的文本搜索模板\n"
 
-#: common.c:194
-#, c-format
-msgid "reading user-defined text search dictionaries\n"
+#: common.c:182
+#, fuzzy, c-format
+#| msgid "reading user-defined text search dictionaries\n"
+msgid "reading user-defined text search dictionaries"
 msgstr "读取用户定义的文本搜索字典\n"
 
 # sql_help.h:129
-#: common.c:198
-#, c-format
-msgid "reading user-defined text search configurations\n"
+#: common.c:185
+#, fuzzy, c-format
+#| msgid "reading user-defined text search configurations\n"
+msgid "reading user-defined text search configurations"
 msgstr "读取用户定义的文本搜索配置\n"
 
-#: common.c:202
-#, c-format
-msgid "reading user-defined foreign-data wrappers\n"
+#: common.c:188
+#, fuzzy, c-format
+#| msgid "reading user-defined foreign-data wrappers\n"
+msgid "reading user-defined foreign-data wrappers"
 msgstr "读取用户定义外部数据封装器\n"
 
-#: common.c:206
-#, c-format
-msgid "reading user-defined foreign servers\n"
+#: common.c:191
+#, fuzzy, c-format
+#| msgid "reading user-defined foreign servers\n"
+msgid "reading user-defined foreign servers"
 msgstr "读取用户定义的外部服务器\n"
 
-#: common.c:210
-#, c-format
-msgid "reading default privileges\n"
+#: common.c:194
+#, fuzzy, c-format
+#| msgid "reading default privileges\n"
+msgid "reading default privileges"
 msgstr "正在读取缺省权限\n"
 
-#: common.c:214
-#, c-format
-msgid "reading user-defined collations\n"
+#: common.c:197
+#, fuzzy, c-format
+#| msgid "reading user-defined collations\n"
+msgid "reading user-defined collations"
 msgstr "读取用户定义的校对函数\n"
 
-#: common.c:219
-#, c-format
-msgid "reading user-defined conversions\n"
+#: common.c:201
+#, fuzzy, c-format
+#| msgid "reading user-defined conversions\n"
+msgid "reading user-defined conversions"
 msgstr "读取用户定义的字符集转换\n"
 
-#: common.c:223
-#, c-format
-msgid "reading type casts\n"
+#: common.c:204
+#, fuzzy, c-format
+#| msgid "reading type casts\n"
+msgid "reading type casts"
 msgstr "读取类型转换\n"
 
-#: common.c:227
-#, c-format
-msgid "reading transforms\n"
+#: common.c:207
+#, fuzzy, c-format
+#| msgid "reading transforms\n"
+msgid "reading transforms"
 msgstr "读取转换\n"
 
-#: common.c:231
-#, c-format
-msgid "reading table inheritance information\n"
+#: common.c:210
+#, fuzzy, c-format
+#| msgid "reading table inheritance information\n"
+msgid "reading table inheritance information"
 msgstr "读取表继承信息\n"
 
-#: common.c:235
-#, c-format
-msgid "reading event triggers\n"
+#: common.c:213
+#, fuzzy, c-format
+#| msgid "reading event triggers\n"
+msgid "reading event triggers"
 msgstr "读取事件触发器\n"
 
-#: common.c:240
-#, c-format
-#| msgid "finding extension members\n"
-msgid "finding extension tables\n"
+#: common.c:217
+#, fuzzy, c-format
+#| msgid "finding extension tables\n"
+msgid "finding extension tables"
 msgstr "查找扩展表\n"
 
-#: common.c:245
-#, c-format
-msgid "finding inheritance relationships\n"
+#: common.c:221
+#, fuzzy, c-format
+#| msgid "finding inheritance relationships\n"
+msgid "finding inheritance relationships"
 msgstr "正在查找关系继承\n"
 
-#: common.c:249
-#, c-format
-msgid "reading column info for interesting tables\n"
+#: common.c:224
+#, fuzzy, c-format
+#| msgid "reading column info for interesting tables\n"
+msgid "reading column info for interesting tables"
 msgstr "正在读取感兴趣表的列信息\n"
 
-#: common.c:253
-#, c-format
-msgid "flagging inherited columns in subtables\n"
+#: common.c:227
+#, fuzzy, c-format
+#| msgid "flagging inherited columns in subtables\n"
+msgid "flagging inherited columns in subtables"
 msgstr "在子表里标记继承字段\n"
 
-#: common.c:257
-#, c-format
-msgid "reading indexes\n"
+#: common.c:230
+#, fuzzy, c-format
+#| msgid "reading indexes\n"
+msgid "reading indexes"
 msgstr "读取索引\n"
 
-#: common.c:261
-#, c-format
-msgid "reading constraints\n"
+#: common.c:233
+#, fuzzy, c-format
+#| msgid "flagging indexes in partitioned tables\n"
+msgid "flagging indexes in partitioned tables"
+msgstr "在分区表中标记索引\n"
+
+#: common.c:236
+#, fuzzy, c-format
+#| msgid "reading extended statistics\n"
+msgid "reading extended statistics"
+msgstr "读取扩展统计信息\n"
+
+#: common.c:239
+#, fuzzy, c-format
+#| msgid "reading constraints\n"
+msgid "reading constraints"
 msgstr "读取约束\n"
 
-#: common.c:265
-#, c-format
-msgid "reading triggers\n"
+#: common.c:242
+#, fuzzy, c-format
+#| msgid "reading triggers\n"
+msgid "reading triggers"
 msgstr "读取触发器\n"
 
-#: common.c:269
-#, c-format
-msgid "reading rewrite rules\n"
+#: common.c:245
+#, fuzzy, c-format
+#| msgid "reading rewrite rules\n"
+msgid "reading rewrite rules"
 msgstr "读取重写规则\n"
 
-#: common.c:273
-#, c-format
-msgid "reading policies\n"
+#: common.c:248
+#, fuzzy, c-format
+#| msgid "reading policies\n"
+msgid "reading policies"
 msgstr "读取策略\n"
 
-#: common.c:908
-#, c-format
-msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found\n"
+#: common.c:251
+#, fuzzy, c-format
+#| msgid "reading publications\n"
+msgid "reading publications"
+msgstr "读取发布\n"
+
+#: common.c:254
+#, fuzzy, c-format
+#| msgid "reading publication membership\n"
+msgid "reading publication membership"
+msgstr "读取发布成员资格\n"
+
+#: common.c:257
+#, fuzzy, c-format
+#| msgid "reading subscriptions\n"
+msgid "reading subscriptions"
+msgstr "读取订阅\n"
+
+#: common.c:1023
+#, fuzzy, c-format
+#| msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found\n"
+msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found"
 msgstr "健全检查失败, 未找到表 \"%2$s\" (OID %3$u) 的 OID 为 %1$u 的父辈\n"
 
-#: common.c:950
-#, c-format
-msgid "could not parse numeric array \"%s\": too many numbers\n"
+#: common.c:1065
+#, fuzzy, c-format
+#| msgid "could not parse numeric array \"%s\": too many numbers\n"
+msgid "could not parse numeric array \"%s\": too many numbers"
 msgstr "无法分析数值数组\"%s\": 数字太多\n"
 
-#: common.c:965
-#, c-format
-msgid "could not parse numeric array \"%s\": invalid character in number\n"
+#: common.c:1080
+#, fuzzy, c-format
+#| msgid "could not parse numeric array \"%s\": invalid character in number\n"
+msgid "could not parse numeric array \"%s\": invalid character in number"
 msgstr "无法分析数值数组\"%s\": 出现无效字符\n"
 
-#. translator: this is a module name
-#: compress_io.c:79
-msgid "compress_io"
-msgstr "压缩IO"
-
-#: compress_io.c:115
-#, c-format
-msgid "invalid compression code: %d\n"
+#: compress_io.c:111
+#, fuzzy, c-format
+#| msgid "invalid compression code: %d\n"
+msgid "invalid compression code: %d"
 msgstr "无效的压缩码: %d\n"
 
-#: compress_io.c:139 compress_io.c:175 compress_io.c:196 compress_io.c:529
-#: compress_io.c:572
-#, c-format
-msgid "not built with zlib support\n"
+#: compress_io.c:134 compress_io.c:170 compress_io.c:188 compress_io.c:508
+#: compress_io.c:551
+#, fuzzy, c-format
+#| msgid "not built with zlib support\n"
+msgid "not built with zlib support"
 msgstr "没有编译成带有zlib库支持的版本\n"
 
-#: compress_io.c:246 compress_io.c:348
-#, c-format
-msgid "could not initialize compression library: %s\n"
+#: compress_io.c:237 compress_io.c:336
+#, fuzzy, c-format
+#| msgid "could not initialize compression library: %s\n"
+msgid "could not initialize compression library: %s"
 msgstr "无法初始化压缩库: %s\n"
 
-#: compress_io.c:267
-#, c-format
-msgid "could not close compression stream: %s\n"
+#: compress_io.c:257
+#, fuzzy, c-format
+#| msgid "could not close compression stream: %s\n"
+msgid "could not close compression stream: %s"
 msgstr "无法关闭压缩流: %s\n"
 
-#: compress_io.c:285
-#, c-format
-msgid "could not compress data: %s\n"
+#: compress_io.c:274
+#, fuzzy, c-format
+#| msgid "could not compress data: %s\n"
+msgid "could not compress data: %s"
 msgstr "无法压缩数据: %s\n"
 
-#: compress_io.c:368 compress_io.c:384
-#, c-format
-msgid "could not uncompress data: %s\n"
+#: compress_io.c:352 compress_io.c:367
+#, fuzzy, c-format
+#| msgid "could not uncompress data: %s\n"
+msgid "could not uncompress data: %s"
 msgstr "无法解压缩数据: %s\n"
 
-#: compress_io.c:392
-#, c-format
-msgid "could not close compression library: %s\n"
+#: compress_io.c:374
+#, fuzzy, c-format
+#| msgid "could not close compression library: %s\n"
+msgid "could not close compression library: %s"
 msgstr "无法关闭压缩库: %s\n"
 
 # input.c:210
-#: compress_io.c:606 compress_io.c:642 pg_backup_custom.c:591
-#: pg_backup_tar.c:561
-#, c-format
-msgid "could not read from input file: %s\n"
+#: compress_io.c:588 compress_io.c:625 pg_backup_tar.c:555 pg_backup_tar.c:558
+#, fuzzy, c-format
+#| msgid "could not read from input file: %s\n"
+msgid "could not read from input file: %s"
 msgstr "无法从输入档案读取:%s\n"
 
 # input.c:210
-#: compress_io.c:645 pg_backup_custom.c:588 pg_backup_directory.c:552
-#: pg_backup_tar.c:797 pg_backup_tar.c:821
-#, c-format
-msgid "could not read from input file: end of file\n"
+#: compress_io.c:627 pg_backup_custom.c:578 pg_backup_directory.c:539
+#: pg_backup_tar.c:795 pg_backup_tar.c:818
+#, fuzzy, c-format
+#| msgid "could not read from input file: end of file\n"
+msgid "could not read from input file: end of file"
 msgstr "无法从输入文件中读取:文件的结尾\n"
 
-#: parallel.c:77
-msgid "parallel archiver"
-msgstr "并行归档"
-
-#: parallel.c:140
-#, c-format
-msgid "%s: WSAStartup failed: %d\n"
+#: parallel.c:263
+#, fuzzy, c-format
+#| msgid "%s: WSAStartup failed: %d\n"
+msgid "WSAStartup failed: %d"
 msgstr "%s: WSAStartup 失败: %d\n"
 
-#: parallel.c:340
-#, c-format
-msgid "worker is terminating\n"
-msgstr "工作者进程正在终止\n"
-
-#: parallel.c:530
-#, c-format
-msgid "could not create communication channels: %s\n"
+#: parallel.c:968
+#, fuzzy, c-format
+#| msgid "could not create communication channels: %s\n"
+msgid "could not create communication channels: %m"
 msgstr "无法创建通信通道: %s\n"
 
 # fe-connect.c:891
-#: parallel.c:602
-#, c-format
-msgid "could not create worker process: %s\n"
+#: parallel.c:1031
+#, fuzzy, c-format
+#| msgid "could not create worker process: %s\n"
+msgid "could not create worker process: %m"
 msgstr "无法创建工作进程: %s\n"
 
-#: parallel.c:819
-#, c-format
-msgid "could not get relation name for OID %u: %s\n"
-msgstr "无法获取OID值为%u:%s的关系名\n"
+#: parallel.c:1160
+#, fuzzy, c-format
+#| msgid "unrecognized command received from master: \"%s\"\n"
+msgid "unrecognized command received from master: \"%s\""
+msgstr "从主机接收到无法识别的命令 \"%s\"\n"
 
-#: parallel.c:836
-#, c-format
+# fe-misc.c:515 fe-misc.c:595
+#: parallel.c:1203 parallel.c:1441
+#, fuzzy, c-format
+#| msgid "invalid message received from worker: \"%s\"\n"
+msgid "invalid message received from worker: \"%s\""
+msgstr "接收到来自工作者进程的无效消息: \"%s\"\n"
+
+#: parallel.c:1335
+#, fuzzy, c-format
+#| msgid ""
+#| "could not obtain lock on relation \"%s\"\n"
+#| "This usually means that someone requested an ACCESS EXCLUSIVE lock on the table after the pg_dump parent process had gotten the initial ACCESS SHARE lock on the table.\n"
 msgid ""
 "could not obtain lock on relation \"%s\"\n"
-"This usually means that someone requested an ACCESS EXCLUSIVE lock on the "
-"table after the pg_dump parent process had gotten the initial ACCESS SHARE "
-"lock on the table.\n"
+"This usually means that someone requested an ACCESS EXCLUSIVE lock on the table after the pg_dump parent process had gotten the initial ACCESS SHARE lock on the table."
 msgstr ""
 "无法获取关系 \"%s\"上的锁\n"
-"这通常意味着在父进程pg_dump已经得到表的共享访问锁之后,仍有人请求该表的排它访"
-"问锁.\n"
-
-#: parallel.c:920
-#, c-format
-msgid "unrecognized command on communication channel: %s\n"
-msgstr "无法识别通信通上的命令:%s\n"
+"这通常意味着在父进程pg_dump已经得到表的共享访问锁之后,仍有人请求该表的排它访问锁.\n"
 
-#: parallel.c:953
-#, c-format
-msgid "a worker process died unexpectedly\n"
+#: parallel.c:1424
+#, fuzzy, c-format
+#| msgid "a worker process died unexpectedly\n"
+msgid "a worker process died unexpectedly"
 msgstr "一工作者进程意外退出\n"
 
-# fe-misc.c:515 fe-misc.c:595
-#: parallel.c:980 parallel.c:989
-#, c-format
-msgid "invalid message received from worker: %s\n"
-msgstr "接收到来自工作者进程的无效消息: %s\n"
-
-#: parallel.c:986 pg_backup_db.c:355
-#, c-format
-msgid "%s"
-msgstr "%s"
-
-#: parallel.c:1038 parallel.c:1082
-#, c-format
-msgid "error processing a parallel work item\n"
-msgstr "错误处理一个并行工作项\n"
-
-#: parallel.c:1110 parallel.c:1248
-#, c-format
-msgid "could not write to the communication channel: %s\n"
+#: parallel.c:1546 parallel.c:1662
+#, fuzzy, c-format
+#| msgid "could not write to the communication channel: %s\n"
+msgid "could not write to the communication channel: %m"
 msgstr "无法写入通信通道: %s\n"
 
-#: parallel.c:1159
-#, c-format
-msgid "terminated by user\n"
-msgstr "已被用户终止\n"
-
-#: parallel.c:1211
-#, c-format
-msgid "error in ListenToWorkers(): %s\n"
-msgstr "调用ListenToWorkers()时出错: %s\n"
-
-#: parallel.c:1336
-#, c-format
-msgid "pgpipe: could not create socket: error code %d\n"
+# fe-misc.c:389 fe-misc.c:423 fe-misc.c:838
+#: parallel.c:1623
+#, fuzzy, c-format
+#| msgid "select() failed: %s\n"
+msgid "select() failed: %m"
+msgstr "select() 失败: %s\n"
+
+#: parallel.c:1746
+#, fuzzy, c-format
+#| msgid "pgpipe: could not create socket: error code %d\n"
+msgid "pgpipe: could not create socket: error code %d"
 msgstr "pgpipe: 无法创建套接字: 错误码为 %d\n"
 
-#: parallel.c:1347
-#, c-format
-msgid "pgpipe: could not bind: error code %d\n"
+#: parallel.c:1757
+#, fuzzy, c-format
+#| msgid "pgpipe: could not bind: error code %d\n"
+msgid "pgpipe: could not bind: error code %d"
 msgstr "pgpipe: 无法绑定: 错误码为%d\n"
 
-#: parallel.c:1354
-#, c-format
-msgid "pgpipe: could not listen: error code %d\n"
+#: parallel.c:1764
+#, fuzzy, c-format
+#| msgid "pgpipe: could not listen: error code %d\n"
+msgid "pgpipe: could not listen: error code %d"
 msgstr "pgpipe: 无法监听: 错误码为 %d\n"
 
-#: parallel.c:1361
-#, c-format
-msgid "pgpipe: getsockname() failed: error code %d\n"
+#: parallel.c:1771
+#, fuzzy, c-format
+#| msgid "pgpipe: getsockname() failed: error code %d\n"
+msgid "pgpipe: getsockname() failed: error code %d"
 msgstr "pgpipe: getsockname()调用失败: 错误码为 %d\n"
 
-#: parallel.c:1372
-#, c-format
-msgid "pgpipe: could not create second socket: error code %d\n"
+#: parallel.c:1782
+#, fuzzy, c-format
+#| msgid "pgpipe: could not create second socket: error code %d\n"
+msgid "pgpipe: could not create second socket: error code %d"
 msgstr "pgpipe: 无法创建继承套接字: 错误码为 %d\n"
 
-#: parallel.c:1381
-#, c-format
-msgid "pgpipe: could not connect socket: error code %d\n"
+#: parallel.c:1791
+#, fuzzy, c-format
+#| msgid "pgpipe: could not connect socket: error code %d\n"
+msgid "pgpipe: could not connect socket: error code %d"
 msgstr "pgpipe: 无法连接套接字: 错误码为 %d\n"
 
-#: parallel.c:1388
-#, c-format
-msgid "pgpipe: could not accept connection: error code %d\n"
+#: parallel.c:1800
+#, fuzzy, c-format
+#| msgid "pgpipe: could not accept connection: error code %d\n"
+msgid "pgpipe: could not accept connection: error code %d"
 msgstr "pgpipe: 无法接受连接: 错误码为 %d\n"
 
-#. translator: this is a module name
-#: pg_backup_archiver.c:55
-msgid "archiver"
-msgstr "归档"
-
-#: pg_backup_archiver.c:234 pg_backup_archiver.c:1512
-#, c-format
-msgid "could not close output file: %s\n"
+#: pg_backup_archiver.c:272 pg_backup_archiver.c:1595
+#, fuzzy, c-format
+#| msgid "could not close output file: %s\n"
+msgid "could not close output file: %m"
 msgstr "无法关闭输出文件: %s\n"
 
-#: pg_backup_archiver.c:280 pg_backup_archiver.c:285
-#, c-format
-msgid "WARNING: archive items not in correct section order\n"
+#: pg_backup_archiver.c:316 pg_backup_archiver.c:320
+#, fuzzy, c-format
+#| msgid "WARNING: archive items not in correct section order\n"
+msgid "archive items not in correct section order"
 msgstr "警告: 归档项的序号不正确\n"
 
-#: pg_backup_archiver.c:291
-#, c-format
-msgid "unexpected section code %d\n"
+#: pg_backup_archiver.c:326
+#, fuzzy, c-format
+#| msgid "unexpected section code %d\n"
+msgid "unexpected section code %d"
 msgstr "意外的节码 %d\n"
 
-#: 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:337
-#, c-format
-msgid "parallel restore is not supported with this archive file format\n"
+#: pg_backup_archiver.c:363
+#, fuzzy, c-format
+#| msgid "parallel restore is not supported with this archive file format\n"
+msgid "parallel restore is not supported with this archive file format"
 msgstr "不支持以这种归档文件格式进行并行恢复\n"
 
-#: pg_backup_archiver.c:341
-#, c-format
-msgid ""
-"parallel restore is not supported with archives made by pre-8.0 pg_dump\n"
+#: pg_backup_archiver.c:367
+#, fuzzy, c-format
+#| msgid "parallel restore is not supported with archives made by pre-8.0 pg_dump\n"
+msgid "parallel restore is not supported with archives made by pre-8.0 pg_dump"
 msgstr "不支持使用8.0版本以前的pg_dump命令产生的存档文件进行并行恢复\n"
 
-#: pg_backup_archiver.c:359
-#, c-format
-msgid ""
-"cannot restore from compressed archive (compression not supported in this "
-"installation)\n"
+#: pg_backup_archiver.c:385
+#, fuzzy, c-format
+#| msgid "cannot restore from compressed archive (compression not supported in this installation)\n"
+msgid "cannot restore from compressed archive (compression not supported in this installation)"
 msgstr "无法从压缩的归档中恢复 (未配置压缩支持)\n"
 
-#: pg_backup_archiver.c:376
-#, c-format
-msgid "connecting to database for restore\n"
+#: pg_backup_archiver.c:402
+#, fuzzy, c-format
+#| msgid "connecting to database for restore\n"
+msgid "connecting to database for restore"
 msgstr "为恢复数据库与数据库联接\n"
 
-#: pg_backup_archiver.c:378
-#, c-format
-msgid "direct database connections are not supported in pre-1.3 archives\n"
+#: pg_backup_archiver.c:404
+#, fuzzy, c-format
+#| msgid "direct database connections are not supported in pre-1.3 archives\n"
+msgid "direct database connections are not supported in pre-1.3 archives"
 msgstr "1.3 以前的归档里不支持直接数据库联接\n"
 
-#: pg_backup_archiver.c:423
-#, c-format
-msgid "implied data-only restore\n"
+#: pg_backup_archiver.c:449
+#, fuzzy, c-format
+#| msgid "implied data-only restore\n"
+msgid "implied data-only restore"
 msgstr "隐含的只恢复数据\n"
 
-#: pg_backup_archiver.c:493
-#, c-format
-msgid "dropping %s %s\n"
+#: pg_backup_archiver.c:515
+#, fuzzy, c-format
+#| msgid "dropping %s %s\n"
+msgid "dropping %s %s"
 msgstr "删除 %s %s\n"
 
-#: pg_backup_archiver.c:646
-#, c-format
-msgid "setting owner and privileges for %s \"%s.%s\"\n"
-msgstr "为%s \"%s.%s\"设置属主和权限\n"
-
-#: pg_backup_archiver.c:649
-#, c-format
-msgid "setting owner and privileges for %s \"%s\"\n"
-msgstr "为%s \"%s\"设置属主和权限\n"
+#: pg_backup_archiver.c:610
+#, fuzzy, c-format
+#| msgid "WARNING: could not find where to insert IF EXISTS in statement \"%s\"\n"
+msgid "could not find where to insert IF EXISTS in statement \"%s\""
+msgstr "警告: 找不到要插入的位置,由于IF EXISTS在 \"%s\"状态\n"
 
-#: pg_backup_archiver.c:715 pg_backup_archiver.c:717
-#, c-format
-msgid "warning from original dump file: %s\n"
+#: pg_backup_archiver.c:766 pg_backup_archiver.c:768
+#, fuzzy, c-format
+#| msgid "warning from original dump file: %s\n"
+msgid "warning from original dump file: %s"
 msgstr "来自原始转储文件的警告: %s\n"
 
-#: pg_backup_archiver.c:726
-#, c-format
-msgid "creating %s \"%s.%s\"\n"
+#: pg_backup_archiver.c:783
+#, fuzzy, c-format
+#| msgid "creating %s \"%s.%s\"\n"
+msgid "creating %s \"%s.%s\""
 msgstr "创建%s \"%s.%s\"\n"
 
-#: pg_backup_archiver.c:729
-#, c-format
-msgid "creating %s \"%s\"\n"
+#: pg_backup_archiver.c:786
+#, fuzzy, c-format
+#| msgid "creating %s \"%s\"\n"
+msgid "creating %s \"%s\""
 msgstr "创建%s \"%s\"\n"
 
-#: pg_backup_archiver.c:774
-#, c-format
-msgid "connecting to new database \"%s\"\n"
+#: pg_backup_archiver.c:843
+#, fuzzy, c-format
+#| msgid "connecting to new database \"%s\"\n"
+msgid "connecting to new database \"%s\""
 msgstr "联接到新数据库 \"%s\"\n"
 
-#: pg_backup_archiver.c:802
-#, c-format
-msgid "processing %s\n"
+#: pg_backup_archiver.c:871
+#, fuzzy, c-format
+#| msgid "processing %s\n"
+msgid "processing %s"
 msgstr "正在处理 %s\n"
 
-#: pg_backup_archiver.c:822
-#, c-format
-msgid "processing data for table \"%s.%s\"\n"
+#: pg_backup_archiver.c:891
+#, fuzzy, c-format
+#| msgid "processing data for table \"%s.%s\"\n"
+msgid "processing data for table \"%s.%s\""
 msgstr "为表\"%s.%s\"处理数据\n"
 
-#: pg_backup_archiver.c:884
-#, c-format
-msgid "executing %s %s\n"
+#: pg_backup_archiver.c:953
+#, fuzzy, c-format
+#| msgid "executing %s %s\n"
+msgid "executing %s %s"
 msgstr "执行 %s %s\n"
 
-#: pg_backup_archiver.c:923
-#, c-format
-msgid "disabling triggers for %s\n"
+#: pg_backup_archiver.c:992
+#, fuzzy, c-format
+#| msgid "disabling triggers for %s\n"
+msgid "disabling triggers for %s"
 msgstr "为%s禁用触发器\n"
 
-#: pg_backup_archiver.c:951
-#, c-format
-msgid "enabling triggers for %s\n"
+#: pg_backup_archiver.c:1018
+#, fuzzy, c-format
+#| msgid "enabling triggers for %s\n"
+msgid "enabling triggers for %s"
 msgstr "为%s启用触发器\n"
 
-#: pg_backup_archiver.c:981
-#, c-format
-msgid ""
-"internal error -- WriteData cannot be called outside the context of a "
-"DataDumper routine\n"
+#: pg_backup_archiver.c:1046
+#, fuzzy, c-format
+#| msgid "internal error -- WriteData cannot be called outside the context of a DataDumper routine\n"
+msgid "internal error -- WriteData cannot be called outside the context of a DataDumper routine"
 msgstr "内部错误 -- WriteData 不能在 DataDumper 过程的环境之外调用\n"
 
-#: pg_backup_archiver.c:1150
-#, c-format
-msgid "large-object output not supported in chosen format\n"
+#: pg_backup_archiver.c:1231
+#, fuzzy, c-format
+#| msgid "large-object output not supported in chosen format\n"
+msgid "large-object output not supported in chosen format"
 msgstr "选定的格式不支持大对象输出\n"
 
-#: pg_backup_archiver.c:1208
-#, c-format
-msgid "restored %d large object\n"
-msgid_plural "restored %d large objects\n"
+#: pg_backup_archiver.c:1289
+#, fuzzy, c-format
+#| msgid "restored %d large object\n"
+#| msgid_plural "restored %d large objects\n"
+msgid "restored %d large object"
+msgid_plural "restored %d large objects"
 msgstr[0] "恢复%d个大对象\n"
+msgstr[1] "恢复%d个大对象\n"
 
-#: pg_backup_archiver.c:1229 pg_backup_tar.c:739
-#, c-format
-msgid "restoring large object with OID %u\n"
+#: pg_backup_archiver.c:1310 pg_backup_tar.c:738
+#, fuzzy, c-format
+#| msgid "restoring large object with OID %u\n"
+msgid "restoring large object with OID %u"
 msgstr "恢复带有OID %u 的大对象\n"
 
-#: pg_backup_archiver.c:1241
+#: pg_backup_archiver.c:1322
 #, c-format
 msgid "could not create large object %u: %s"
 msgstr "无法创建大对象%u: %s"
 
-#: pg_backup_archiver.c:1246 pg_dump.c:2997
+#: pg_backup_archiver.c:1327 pg_dump.c:3471
 #, 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:1304
-#, c-format
-msgid "could not open TOC file \"%s\": %s\n"
+#: pg_backup_archiver.c:1384
+#, fuzzy, c-format
+#| msgid "could not open TOC file \"%s\": %s\n"
+msgid "could not open TOC file \"%s\": %m"
 msgstr "无法打开TOC文件 \"%s\": %s\n"
 
-#: pg_backup_archiver.c:1345
-#, c-format
-msgid "WARNING: line ignored: %s\n"
+#: pg_backup_archiver.c:1424
+#, fuzzy, c-format
+#| msgid "WARNING: line ignored: %s\n"
+msgid "line ignored: %s"
 msgstr "警告: 忽略的行: %s\n"
 
-#: pg_backup_archiver.c:1352
-#, c-format
-msgid "could not find entry for ID %d\n"
+#: pg_backup_archiver.c:1431
+#, fuzzy, c-format
+#| msgid "could not find entry for ID %d\n"
+msgid "could not find entry for ID %d"
 msgstr "无法为 ID %d 找到记录\n"
 
-#: 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"
+#: pg_backup_archiver.c:1452 pg_backup_directory.c:222
+#: pg_backup_directory.c:587
+#, fuzzy, c-format
+#| msgid "could not close TOC file: %s\n"
+msgid "could not close TOC file: %m"
 msgstr "无法关闭 TOC 文件: %s\n"
 
-#: 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"
+#: pg_backup_archiver.c:1567 pg_backup_custom.c:159 pg_backup_directory.c:332
+#: pg_backup_directory.c:574 pg_backup_directory.c:637
+#: pg_backup_directory.c:656
+#, fuzzy, c-format
+#| msgid "could not open output file \"%s\": %s\n"
+msgid "could not open output file \"%s\": %m"
 msgstr "无法打开输出文件\"%s\": %s\n"
 
-#: pg_backup_archiver.c:1485 pg_backup_custom.c:169
-#, c-format
-msgid "could not open output file: %s\n"
+#: pg_backup_archiver.c:1569 pg_backup_custom.c:165
+#, fuzzy, c-format
+#| msgid "could not open output file: %s\n"
+msgid "could not open output file: %m"
 msgstr "无法打开输出文件: %s\n"
 
-#: 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"
+#: pg_backup_archiver.c:1662
+#, fuzzy, 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"
+msgid "wrote %lu byte of large object data (result = %lu)"
+msgid_plural "wrote %lu bytes of large object data (result = %lu)"
 msgstr[0] "已经写入了大对象的%lu字节(结果 = %lu)\n"
+msgstr[1] "已经写入了大对象的%lu字节(结果 = %lu)\n"
 
-#: pg_backup_archiver.c:1597
-#, c-format
-msgid "could not write to large object (result: %lu, expected: %lu)\n"
+#: pg_backup_archiver.c:1667
+#, fuzzy, c-format
+#| msgid "could not write to large object (result: %lu, expected: %lu)\n"
+msgid "could not write to large object (result: %lu, expected: %lu)"
 msgstr "无法写入大对象 (结果: %lu, 预期: %lu)\n"
 
-#: pg_backup_archiver.c:1690
-#, c-format
-msgid "Error while INITIALIZING:\n"
+#: pg_backup_archiver.c:1759
+#, fuzzy, c-format
+#| msgid "Error while INITIALIZING:\n"
+msgid "while INITIALIZING:"
 msgstr "INITIALIZING 时错误:\n"
 
-#: pg_backup_archiver.c:1695
-#, c-format
-msgid "Error while PROCESSING TOC:\n"
+#: pg_backup_archiver.c:1764
+#, fuzzy, c-format
+#| msgid "Error while PROCESSING TOC:\n"
+msgid "while PROCESSING TOC:"
 msgstr "PROCESSING TOC 时错误:\n"
 
-#: pg_backup_archiver.c:1700
-#, c-format
-msgid "Error while FINALIZING:\n"
+#: pg_backup_archiver.c:1769
+#, fuzzy, c-format
+#| msgid "Error while FINALIZING:\n"
+msgid "while FINALIZING:"
 msgstr "FINALIZING 时错误:\n"
 
-#: pg_backup_archiver.c:1705
-#, c-format
-msgid "Error from TOC entry %d; %u %u %s %s %s\n"
+#: pg_backup_archiver.c:1774
+#, fuzzy, c-format
+#| msgid "Error from TOC entry %d; %u %u %s %s %s\n"
+msgid "from TOC entry %d; %u %u %s %s %s"
 msgstr "错误来自 TOC 记录 %d; %u %u %s %s %s\n"
 
-#: pg_backup_archiver.c:1778
-#, c-format
-msgid "bad dumpId\n"
+#: pg_backup_archiver.c:1850
+#, fuzzy, c-format
+#| msgid "bad dumpId\n"
+msgid "bad dumpId"
 msgstr "错误的dumpId号\n"
 
-#: pg_backup_archiver.c:1799
-#, c-format
-msgid "bad table dumpId for TABLE DATA item\n"
+#: pg_backup_archiver.c:1871
+#, fuzzy, c-format
+#| msgid "bad table dumpId for TABLE DATA item\n"
+msgid "bad table dumpId for TABLE DATA item"
 msgstr "TABLE DATA 项的表dumpId错误\n"
 
-#: pg_backup_archiver.c:1891
-#, c-format
-msgid "unexpected data offset flag %d\n"
+#: pg_backup_archiver.c:1963
+#, fuzzy, c-format
+#| msgid "unexpected data offset flag %d\n"
+msgid "unexpected data offset flag %d"
 msgstr "意外的数据偏移标志 %d\n"
 
-#: pg_backup_archiver.c:1904
-#, c-format
-msgid "file offset in dump file is too large\n"
+#: pg_backup_archiver.c:1976
+#, fuzzy, c-format
+#| msgid "file offset in dump file is too large\n"
+msgid "file offset in dump file is too large"
 msgstr "在转储文件中的文件偏移量太大\n"
 
-#: pg_backup_archiver.c:2017
-#, c-format
-msgid "attempting to ascertain archive format\n"
-msgstr "试图确认归档格式\n"
-
-#: pg_backup_archiver.c:2043 pg_backup_archiver.c:2053
-#, c-format
-msgid "directory name too long: \"%s\"\n"
+#: pg_backup_archiver.c:2113 pg_backup_archiver.c:2123
+#, fuzzy, c-format
+#| msgid "directory name too long: \"%s\"\n"
+msgid "directory name too long: \"%s\""
 msgstr "字典名字太长: \"%s\"\n"
 
-#: pg_backup_archiver.c:2061
-#, c-format
-msgid ""
-"directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not "
-"exist)\n"
+#: pg_backup_archiver.c:2131
+#, fuzzy, c-format
+#| msgid "directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not exist)\n"
+msgid "directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not exist)"
 msgstr "目录 \"%s\" 看上去不像一个有效的归档 (\"toc.dat\" 不存在)\n"
 
-#: 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"
+#: pg_backup_archiver.c:2139 pg_backup_custom.c:176 pg_backup_custom.c:760
+#: pg_backup_directory.c:207 pg_backup_directory.c:391
+#, fuzzy, c-format
+#| msgid "could not open input file \"%s\": %s\n"
+msgid "could not open input file \"%s\": %m"
 msgstr "无法打开输入文件 \"%s\": %s\n"
 
-#: pg_backup_archiver.c:2077 pg_backup_custom.c:188
-#, c-format
-msgid "could not open input file: %s\n"
+#: pg_backup_archiver.c:2146 pg_backup_custom.c:182
+#, fuzzy, c-format
+#| msgid "could not open input file: %s\n"
+msgid "could not open input file: %m"
 msgstr "无法打开输入文件: %s\n"
 
-#: pg_backup_archiver.c:2084
-#, c-format
-msgid "could not read input file: %s\n"
+#: pg_backup_archiver.c:2152
+#, fuzzy, c-format
+#| msgid "could not read input file: %s\n"
+msgid "could not read input file: %m"
 msgstr "无法读取输入文件: %s\n"
 
-#: pg_backup_archiver.c:2086
-#, c-format
-msgid "input file is too short (read %lu, expected 5)\n"
+#: pg_backup_archiver.c:2154
+#, fuzzy, c-format
+#| msgid "input file is too short (read %lu, expected 5)\n"
+msgid "input file is too short (read %lu, expected 5)"
 msgstr "输入文件太短 (读了 %lu, 预期 5)\n"
 
-#: pg_backup_archiver.c:2169
-#, c-format
-msgid "input file appears to be a text format dump. Please use psql.\n"
+#: pg_backup_archiver.c:2239
+#, fuzzy, c-format
+#| msgid "input file appears to be a text format dump. Please use psql.\n"
+msgid "input file appears to be a text format dump. Please use psql."
 msgstr "输入文件看起来像是文本格式的dump. 请使用psql.\n"
 
-#: pg_backup_archiver.c:2175
-#, c-format
-msgid "input file does not appear to be a valid archive (too short?)\n"
+#: pg_backup_archiver.c:2245
+#, fuzzy, c-format
+#| msgid "input file does not appear to be a valid archive (too short?)\n"
+msgid "input file does not appear to be a valid archive (too short?)"
 msgstr "输入文件看上去不象有效的归档 (太短?)\n"
 
-#: pg_backup_archiver.c:2181
-#, c-format
-msgid "input file does not appear to be a valid archive\n"
+#: pg_backup_archiver.c:2251
+#, fuzzy, c-format
+#| msgid "input file does not appear to be a valid archive\n"
+msgid "input file does not appear to be a valid archive"
 msgstr "输入文件看上去不象有效的归档\n"
 
-#: pg_backup_archiver.c:2201
-#, c-format
-msgid "could not close input file: %s\n"
+#: pg_backup_archiver.c:2271
+#, fuzzy, c-format
+#| msgid "could not close input file: %s\n"
+msgid "could not close input file: %m"
 msgstr "无法关闭输入文件: %s\n"
 
-#: pg_backup_archiver.c:2218
-#, c-format
-msgid "allocating AH for %s, format %d\n"
-msgstr "为 %s 分配 AH, 格式 %d\n"
-
-#: pg_backup_archiver.c:2323
-#, c-format
-msgid "unrecognized file format \"%d\"\n"
+#: pg_backup_archiver.c:2385
+#, fuzzy, c-format
+#| msgid "unrecognized file format \"%d\"\n"
+msgid "unrecognized file format \"%d\""
 msgstr "不可识别的文件格式 \"%d\"\n"
 
-#: pg_backup_archiver.c:2473
-#, c-format
-msgid "entry ID %d out of range -- perhaps a corrupt TOC\n"
+#: pg_backup_archiver.c:2467 pg_backup_archiver.c:4475
+#, fuzzy, c-format
+#| msgid "finished item %d %s %s\n"
+msgid "finished item %d %s %s"
+msgstr "已完成的成员%d %s %s\n"
+
+#: pg_backup_archiver.c:2471 pg_backup_archiver.c:4488
+#, fuzzy, c-format
+#| msgid "worker process failed: exit code %d\n"
+msgid "worker process failed: exit code %d"
+msgstr "子进程已退出, 退出码为 %d\n"
+
+#: pg_backup_archiver.c:2591
+#, fuzzy, c-format
+#| msgid "entry ID %d out of range -- perhaps a corrupt TOC\n"
+msgid "entry ID %d out of range -- perhaps a corrupt TOC"
 msgstr "记录 ID %d 超出范围 - 可能是损坏了的 TOC\n"
 
-#: pg_backup_archiver.c:2589
+#: pg_backup_archiver.c:2658
 #, 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"
+msgid "restoring tables WITH OIDS is not supported anymore"
+msgstr ""
 
-#: pg_backup_archiver.c:2623
-#, c-format
-msgid "unrecognized encoding \"%s\"\n"
+#: pg_backup_archiver.c:2740
+#, fuzzy, c-format
+#| msgid "unrecognized encoding \"%s\"\n"
+msgid "unrecognized encoding \"%s\""
 msgstr "未知编码: \"%s\"\n"
 
-#: pg_backup_archiver.c:2628
-#, c-format
-msgid "invalid ENCODING item: %s\n"
+#: pg_backup_archiver.c:2745
+#, fuzzy, c-format
+#| msgid "invalid ENCODING item: %s\n"
+msgid "invalid ENCODING item: %s"
 msgstr "无效的ENCODING成员:%s\n"
 
-#: pg_backup_archiver.c:2646
-#, c-format
-msgid "invalid STDSTRINGS item: %s\n"
+#: pg_backup_archiver.c:2763
+#, fuzzy, c-format
+#| msgid "invalid STDSTRINGS item: %s\n"
+msgid "invalid STDSTRINGS item: %s"
 msgstr "无效的STDSTRINGS成员:%s\n"
 
-#: 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
+#: pg_backup_archiver.c:2788
+#, fuzzy, c-format
+#| msgid "schema \"%s\" not found\n"
+msgid "schema \"%s\" not found"
+msgstr "模式\"%s\"没有找到\n"
+
+#: pg_backup_archiver.c:2795
+#, fuzzy, c-format
+#| msgid "table \"%s\" not found\n"
+msgid "table \"%s\" not found"
+msgstr "表\"%s\"没有找到\n"
+
+#: pg_backup_archiver.c:2802
+#, fuzzy, c-format
+#| msgid "index \"%s\" not found\n"
+msgid "index \"%s\" not found"
+msgstr "索引\"%s\"没有找到\n"
+
+#: pg_backup_archiver.c:2809
+#, fuzzy, c-format
+#| msgid "function \"%s\" not found\n"
+msgid "function \"%s\" not found"
+msgstr "函数\"%s\"没有找到\n"
+
+#: pg_backup_archiver.c:2816
+#, fuzzy, c-format
+#| msgid "trigger \"%s\" not found\n"
+msgid "trigger \"%s\" not found"
+msgstr "触发器\"%s\"没有找到\n"
+
+#: pg_backup_archiver.c:3195
 #, c-format
 msgid "could not set session user to \"%s\": %s"
 msgstr "无法设置会话用户为 \"%s\": %s"
 
-#: pg_backup_archiver.c:2952
-#, c-format
-msgid "could not set default_with_oids: %s"
-msgstr "无法设置 default_with_oids: %s"
-
-#: 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:3154
-#, c-format
-msgid "could not set default_tablespace to %s: %s"
-msgstr "无法设置default_tablespace为 %s: %s"
-
-#: 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:3481
-#, c-format
-msgid ""
-"WARNING: requested compression not available in this installation -- archive "
-"will be uncompressed\n"
-msgstr "警告: 所要求的压缩无法在本次安装中获取 - 归档将不被压缩\n"
+#: pg_backup_archiver.c:3533 pg_backup_archiver.c:3691
+#, fuzzy, c-format
+#| msgid "WARNING: don't know how to set owner for object type \"%s\"\n"
+msgid "don't know how to set owner for object type \"%s\""
+msgstr "警告: 不知道如何为对象类型\"%s\"设置属主\n"
 
-#: pg_backup_archiver.c:3520
-#, c-format
-msgid "did not find magic string in file header\n"
+#: pg_backup_archiver.c:3795
+#, fuzzy, c-format
+#| msgid "did not find magic string in file header\n"
+msgid "did not find magic string in file header"
 msgstr "在文件头中没有找到魔术字串\n"
 
-#: pg_backup_archiver.c:3533
-#, c-format
-msgid "unsupported version (%d.%d) in file header\n"
+#: pg_backup_archiver.c:3808
+#, fuzzy, c-format
+#| msgid "unsupported version (%d.%d) in file header\n"
+msgid "unsupported version (%d.%d) in file header"
 msgstr "在文件头中有不支持的版本 (%d.%d)\n"
 
-#: pg_backup_archiver.c:3538
-#, c-format
-msgid "sanity check on integer size (%lu) failed\n"
+#: pg_backup_archiver.c:3813
+#, fuzzy, c-format
+#| msgid "sanity check on integer size (%lu) failed\n"
+msgid "sanity check on integer size (%lu) failed"
 msgstr "整数尺寸 (%lu) 的健全检查失败\n"
 
-#: pg_backup_archiver.c:3542
-#, c-format
-msgid ""
-"WARNING: archive was made on a machine with larger integers, some operations "
-"might fail\n"
+#: pg_backup_archiver.c:3817
+#, fuzzy, c-format
+#| msgid "WARNING: archive was made on a machine with larger integers, some operations might fail\n"
+msgid "archive was made on a machine with larger integers, some operations might fail"
 msgstr "警告: 归档不是在支持更大范围整数的主机上产生的, 有些操作可能失败\n"
 
-#: pg_backup_archiver.c:3552
-#, c-format
-msgid "expected format (%d) differs from format found in file (%d)\n"
+#: pg_backup_archiver.c:3827
+#, fuzzy, c-format
+#| msgid "expected format (%d) differs from format found in file (%d)\n"
+msgid "expected format (%d) differs from format found in file (%d)"
 msgstr "预期的格式 (%d) 和在文件里找到的格式 (%d) 不同\n"
 
-#: 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"
+#: pg_backup_archiver.c:3843
+#, fuzzy, c-format
+#| msgid "WARNING: archive is compressed, but this installation does not support compression -- no data will be available\n"
+msgid "archive is compressed, but this installation does not support compression -- no data will be available"
 msgstr "警告: 归档是压缩过的, 但是当前安装不支持压缩 - 数据将不可使用\n"
 
-#: pg_backup_archiver.c:3586
-#, c-format
-msgid "WARNING: invalid creation date in header\n"
+#: pg_backup_archiver.c:3861
+#, fuzzy, c-format
+#| msgid "WARNING: invalid creation date in header\n"
+msgid "invalid creation date in header"
 msgstr "警告: 在头中的创建日期无效\n"
 
-#: pg_backup_archiver.c:3661
-#, c-format
-msgid "entering restore_toc_entries_prefork\n"
-msgstr "正在进入restore_toc_entries_prefork\n"
-
-#: pg_backup_archiver.c:3705
-#, c-format
-msgid "processing item %d %s %s\n"
+#: pg_backup_archiver.c:3998
+#, fuzzy, c-format
+#| msgid "processing item %d %s %s\n"
+msgid "processing item %d %s %s"
 msgstr "正在处理成员%d %s %s\n"
 
-#: pg_backup_archiver.c:3757
-#, c-format
-msgid "entering restore_toc_entries_parallel\n"
-msgstr "正在进入restore_toc_entries_parallel\n"
-
-#: pg_backup_archiver.c:3805
-#, c-format
-msgid "entering main parallel loop\n"
+#: pg_backup_archiver.c:4077
+#, fuzzy, c-format
+#| msgid "entering main parallel loop\n"
+msgid "entering main parallel loop"
 msgstr "正在进入主并行循环\n"
 
-#: pg_backup_archiver.c:3816
-#, c-format
-msgid "skipping item %d %s %s\n"
+#: pg_backup_archiver.c:4088
+#, fuzzy, c-format
+#| msgid "skipping item %d %s %s\n"
+msgid "skipping item %d %s %s"
 msgstr "忽略成员%d %s %s\n"
 
-#: pg_backup_archiver.c:3826
-#, c-format
-msgid "launching item %d %s %s\n"
+#: pg_backup_archiver.c:4097
+#, fuzzy, c-format
+#| msgid "launching item %d %s %s\n"
+msgid "launching item %d %s %s"
 msgstr "正在启动成员%d %s %s\n"
 
-#: pg_backup_archiver.c:3884
-#, c-format
-msgid "finished main parallel loop\n"
+#: pg_backup_archiver.c:4151
+#, fuzzy, c-format
+#| msgid "finished main parallel loop\n"
+msgid "finished main parallel loop"
 msgstr "已完成主并行循环\n"
 
-#: pg_backup_archiver.c:3893
-#, c-format
-msgid "entering restore_toc_entries_postfork\n"
-msgstr "正在进入restore_toc_entries_postfork\n"
-
-#: pg_backup_archiver.c:3911
-#, c-format
-msgid "processing missed item %d %s %s\n"
+#: pg_backup_archiver.c:4189
+#, fuzzy, c-format
+#| msgid "processing missed item %d %s %s\n"
+msgid "processing missed item %d %s %s"
 msgstr "正在处理丢失的成员%d %s %s\n"
 
-#: pg_backup_archiver.c:4060
-#, c-format
-msgid "no item ready\n"
-msgstr "没有成员准备好\n"
-
-#: pg_backup_archiver.c:4109
-#, c-format
-msgid "could not find slot of finished worker\n"
-msgstr "无法找到已完成的工作进程的位置\n"
-
-#: pg_backup_archiver.c:4111
-#, c-format
-msgid "finished item %d %s %s\n"
-msgstr "已完成的成员%d %s %s\n"
-
-#: pg_backup_archiver.c:4124
-#, c-format
-msgid "worker process failed: exit code %d\n"
-msgstr "子进程已退出, 退出码为 %d\n"
-
-#: pg_backup_archiver.c:4286
-#, c-format
-msgid "transferring dependency %d -> %d to %d\n"
-msgstr "传输依赖关系从%d -> %d 到%d\n"
-
-#: pg_backup_archiver.c:4359
-#, c-format
-msgid "reducing dependencies for %d\n"
-msgstr "为%d减少依赖关系\n"
-
-#: pg_backup_archiver.c:4398
-#, c-format
-msgid "table \"%s\" could not be created, will not restore its data\n"
+#: pg_backup_archiver.c:4794
+#, fuzzy, c-format
+#| msgid "table \"%s\" could not be created, will not restore its data\n"
+msgid "table \"%s\" could not be created, will not restore its data"
 msgstr "无法创建表\"%s\" , 这样无法恢复它的数据\n"
 
-#. translator: this is a module name
-#: pg_backup_custom.c:94
-msgid "custom archiver"
-msgstr "客户归档"
-
-#: pg_backup_custom.c:384 pg_backup_null.c:150
-#, c-format
-msgid "invalid OID for large object\n"
+#: pg_backup_custom.c:377 pg_backup_null.c:150
+#, fuzzy, c-format
+#| msgid "invalid OID for large object\n"
+msgid "invalid OID for large object"
 msgstr "大对象的无效 OID\n"
 
-#: pg_backup_custom.c:455
-#, c-format
-msgid "unrecognized data block type (%d) while searching archive\n"
+#: pg_backup_custom.c:447
+#, fuzzy, c-format
+#| msgid "unrecognized data block type (%d) while searching archive\n"
+msgid "unrecognized data block type (%d) while searching archive"
 msgstr "搜索归档是碰到不识别的数据块类型 (%d)\n"
 
-#: pg_backup_custom.c:466
-#, c-format
-msgid "error during file seek: %s\n"
+#: pg_backup_custom.c:458 pg_backup_custom.c:818
+#, fuzzy, c-format
+#| msgid "error during file seek: %s\n"
+msgid "error during file seek: %m"
 msgstr "在文件内定位时出错: %s\n"
 
-#: pg_backup_custom.c:476
-#, c-format
-msgid ""
-"could not find block ID %d in archive -- possibly due to out-of-order "
-"restore request, which cannot be handled due to lack of data offsets in "
-"archive\n"
-msgstr ""
-"在归档中无法找到数据块ID %d -- 这可能是由于不正常的恢复引起的,这种不正常的恢"
-"复通常因为在归档中缺少数据偏移量而无法处理\n"
-
-#: pg_backup_custom.c:481
-#, c-format
-msgid ""
-"could not find block ID %d in archive -- possibly due to out-of-order "
-"restore request, which cannot be handled due to non-seekable input file\n"
-msgstr ""
-"在归档中无法找到数据块ID %d -- 这可能是由于不正常的恢复引起的,这种不正常的恢"
-"复通常因为缺少的输入文件而无法处理\n"
-
-#: pg_backup_custom.c:486
-#, c-format
-msgid "could not find block ID %d in archive -- possibly corrupt archive\n"
+#: pg_backup_custom.c:467
+#, fuzzy, c-format
+#| msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to lack of data offsets in archive\n"
+msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to lack of data offsets in archive"
+msgstr "在归档中无法找到数据块ID %d -- 这可能是由于不正常的恢复引起的,这种不正常的恢复通常因为在归档中缺少数据偏移量而无法处理\n"
+
+#: pg_backup_custom.c:472
+#, fuzzy, c-format
+#| msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to non-seekable input file\n"
+msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to non-seekable input file"
+msgstr "在归档中无法找到数据块ID %d -- 这可能是由于不正常的恢复引起的,这种不正常的恢复通常因为缺少的输入文件而无法处理\n"
+
+#: pg_backup_custom.c:477
+#, fuzzy, c-format
+#| msgid "could not find block ID %d in archive -- possibly corrupt archive\n"
+msgid "could not find block ID %d in archive -- possibly corrupt archive"
 msgstr "无法在归档中找到ID为%d的数据块--这可能是因为归档文件损坏\n"
 
-#: pg_backup_custom.c:493
-#, c-format
-msgid "found unexpected block ID (%d) when reading data -- expected %d\n"
+#: pg_backup_custom.c:484
+#, fuzzy, c-format
+#| msgid "found unexpected block ID (%d) when reading data -- expected %d\n"
+msgid "found unexpected block ID (%d) when reading data -- expected %d"
 msgstr "读取数据时发现意外块 ID (%d) - 预期是 %d\n"
 
-#: pg_backup_custom.c:507
-#, c-format
-msgid "unrecognized data block type %d while restoring archive\n"
+#: pg_backup_custom.c:498
+#, fuzzy, c-format
+#| msgid "unrecognized data block type %d while restoring archive\n"
+msgid "unrecognized data block type %d while restoring archive"
 msgstr "恢复归档时碰到不识别的数据块类型 %d\n"
 
-#: pg_backup_custom.c:709 pg_backup_custom.c:759 pg_backup_custom.c:908
-#: pg_backup_tar.c:1088
-#, c-format
-msgid "could not determine seek position in archive file: %s\n"
+# input.c:210
+#: pg_backup_custom.c:580
+#, fuzzy, c-format
+#| msgid "could not read from input file: %s\n"
+msgid "could not read from input file: %m"
+msgstr "无法从输入档案读取:%s\n"
+
+#: pg_backup_custom.c:698 pg_backup_custom.c:751 pg_backup_custom.c:891
+#: pg_backup_tar.c:1091
+#, fuzzy, c-format
+#| msgid "could not determine seek position in archive file: %s\n"
+msgid "could not determine seek position in archive file: %m"
 msgstr "无法在归档文件中确定查找位置: %s\n"
 
-#: pg_backup_custom.c:727 pg_backup_custom.c:764
-#, c-format
-msgid "could not close archive file: %s\n"
+#: pg_backup_custom.c:715 pg_backup_custom.c:755
+#, fuzzy, c-format
+#| msgid "could not close archive file: %s\n"
+msgid "could not close archive file: %m"
 msgstr "无法关闭归档文件: %s\n"
 
-#: pg_backup_custom.c:746
-#, c-format
-msgid "can only reopen input archives\n"
+#: pg_backup_custom.c:738
+#, fuzzy, c-format
+#| msgid "can only reopen input archives\n"
+msgid "can only reopen input archives"
 msgstr "只能重新打开输入归档\n"
 
-#: pg_backup_custom.c:753
-#, c-format
-msgid "parallel restore from standard input is not supported\n"
+#: pg_backup_custom.c:745
+#, fuzzy, c-format
+#| msgid "parallel restore from standard input is not supported\n"
+msgid "parallel restore from standard input is not supported"
 msgstr "不支持从标准输入进行并行恢复\n"
 
-#: pg_backup_custom.c:755
-#, c-format
-msgid "parallel restore from non-seekable file is not supported\n"
+#: pg_backup_custom.c:747
+#, fuzzy, c-format
+#| msgid "parallel restore from non-seekable file is not supported\n"
+msgid "parallel restore from non-seekable file is not supported"
 msgstr "不支持从不可随机寻址的文件里并行恢复\n"
 
-#: pg_backup_custom.c:774
-#, c-format
-msgid "could not set seek position in archive file: %s\n"
+#: pg_backup_custom.c:763
+#, fuzzy, c-format
+#| msgid "could not set seek position in archive file: %s\n"
+msgid "could not set seek position in archive file: %m"
 msgstr "无法在归档文件中设置查找位置: %s\n"
 
-#: pg_backup_custom.c:792
-#, c-format
-msgid "compressor active\n"
+#: pg_backup_custom.c:839
+#, fuzzy, c-format
+#| msgid "compressor active\n"
+msgid "compressor active"
 msgstr "压缩程序已激活\n"
 
-#: pg_backup_custom.c:912
-#, c-format
-msgid "WARNING: ftell mismatch with expected position -- ftell used\n"
+#: pg_backup_custom.c:894
+#, fuzzy, c-format
+#| msgid "WARNING: ftell mismatch with expected position -- ftell used\n"
+msgid "ftell mismatch with expected position -- ftell used"
 msgstr "警告: ftell 和预期位置不匹配 -- 使用 ftell\n"
 
-#. translator: this is a module name
-#: pg_backup_db.c:29
-msgid "archiver (db)"
-msgstr "归档 (db)"
-
 #: pg_backup_db.c:44
-#, c-format
-msgid "could not get server_version from libpq\n"
+#, fuzzy, c-format
+#| msgid "could not get server_version from libpq\n"
+msgid "could not get server_version from libpq"
 msgstr "无法从 libpq 获取服务器版本\n"
 
-#: pg_backup_db.c:55 pg_dumpall.c:1982
-#, c-format
-msgid "server version: %s; %s version: %s\n"
+#: pg_backup_db.c:55 pg_dumpall.c:1819
+#, fuzzy, c-format
+#| msgid "server version: %s; %s version: %s\n"
+msgid "server version: %s; %s version: %s"
 msgstr "服务器版本: %s; %s 版本: %s\n"
 
-#: pg_backup_db.c:57 pg_dumpall.c:1984
-#, c-format
-msgid "aborting because of server version mismatch\n"
+#: pg_backup_db.c:57 pg_dumpall.c:1821
+#, fuzzy, c-format
+#| msgid "aborting because of server version mismatch\n"
+msgid "aborting because of server version mismatch"
 msgstr "因为服务器版本不匹配而终止\n"
 
-#: pg_backup_db.c:128
-#, c-format
-msgid "connecting to database \"%s\" as user \"%s\"\n"
+#: pg_backup_db.c:140
+#, fuzzy, c-format
+#| msgid "connecting to database \"%s\" as user \"%s\"\n"
+msgid "connecting to database \"%s\" as user \"%s\""
 msgstr "以用户 \"%2$s\" 的身份联接到数据库 \"%1$s\"\n"
 
-#: 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
+#: pg_backup_db.c:147 pg_backup_db.c:196 pg_backup_db.c:257 pg_backup_db.c:298
+#: pg_dumpall.c:1644 pg_dumpall.c:1757
 msgid "Password: "
 msgstr "口令: "
 
-#: pg_backup_db.c:164
-#, c-format
-msgid "failed to reconnect to database\n"
+#: pg_backup_db.c:179
+#, fuzzy, c-format
+#| msgid "failed to reconnect to database\n"
+msgid "failed to reconnect to database"
 msgstr "与数据库重新联接失败\n"
 
-#: pg_backup_db.c:169
+#: pg_backup_db.c:184
 #, 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:185
-#, c-format
-msgid "connection needs password\n"
+#: pg_backup_db.c:200
+#, fuzzy, c-format
+#| msgid "connection needs password\n"
+msgid "connection needs password"
 msgstr "在连接时需要输入口令\n"
 
-#: pg_backup_db.c:237
-#, c-format
-msgid "already connected to a database\n"
+#: pg_backup_db.c:251
+#, fuzzy, c-format
+#| msgid "already connected to a database\n"
+msgid "already connected to a database"
 msgstr "已经与一个数据库联接\n"
 
-#: pg_backup_db.c:277
-#, c-format
-msgid "failed to connect to database\n"
+#: pg_backup_db.c:290
+#, fuzzy, c-format
+#| msgid "failed to connect to database\n"
+msgid "failed to connect to database"
 msgstr "与数据库联接失败\n"
 
-#: pg_backup_db.c:294
+#: pg_backup_db.c:306
 #, c-format
 msgid "connection to database \"%s\" failed: %s"
 msgstr "与数据库 \"%s\" 联接失败: %s"
 
-#: pg_backup_db.c:362
+#: pg_backup_db.c:378 pg_dumpall.c:1677
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: pg_backup_db.c:385 pg_dumpall.c:1882 pg_dumpall.c:1905
 #, c-format
 msgid "query failed: %s"
 msgstr "查询失败: %s"
 
-#: pg_backup_db.c:364
-#, c-format
-msgid "query was: %s\n"
+#: pg_backup_db.c:387 pg_dumpall.c:1883 pg_dumpall.c:1906
+#, fuzzy, c-format
+#| msgid "query was: %s\n"
+msgid "query was: %s"
 msgstr "查询是: %s\n"
 
 #: pg_backup_db.c:428
-#, c-format
-msgid "%s: %s    Command was: %s\n"
-msgstr "%s: %s    命令是: %s\n"
+#, fuzzy, c-format
+#| msgid "query returned %d row instead of one: %s\n"
+#| msgid_plural "query returned %d rows instead of one: %s\n"
+msgid "query returned %d row instead of one: %s"
+msgid_plural "query returned %d rows instead of one: %s"
+msgstr[0] "查询返回了%d条记录,而不是一条记录: %s\n"
+msgstr[1] "查询返回了%d条记录,而不是一条记录: %s\n"
 
-#: pg_backup_db.c:484 pg_backup_db.c:558 pg_backup_db.c:565
+#: pg_backup_db.c:520 pg_backup_db.c:594 pg_backup_db.c:601
 msgid "could not execute query"
 msgstr "无法执行查询"
 
-#: pg_backup_db.c:537
+#: pg_backup_db.c:573
 #, c-format
 msgid "error returned by PQputCopyData: %s"
 msgstr "PQputCopyData返回错误: %s"
 
-#: pg_backup_db.c:586
+#: pg_backup_db.c:622
 #, c-format
 msgid "error returned by PQputCopyEnd: %s"
 msgstr "PQputCopyEnd返回错误: %s"
 
-# describe.c:933
-#: pg_backup_db.c:592
-#, c-format
-msgid "COPY failed for table \"%s\": %s"
-msgstr "复制表 \"%s\"失败: %s"
+#: pg_backup_db.c:634 pg_dump.c:1924
+#, fuzzy, c-format
+#| msgid "WARNING: unexpected extra results during COPY of table \"%s\"\n"
+msgid "unexpected extra results during COPY of table \"%s\""
+msgstr "警告: 复制表\"%s\"时出现意外的额外结果\n"
 
-#: pg_backup_db.c:605
+#: pg_backup_db.c:646
 msgid "could not start database transaction"
 msgstr "无法开始数据库事务"
 
-#: pg_backup_db.c:613
+#: pg_backup_db.c:654
 msgid "could not commit database transaction"
 msgstr "无法提交数据库事务"
 
-#. translator: this is a module name
-#: pg_backup_directory.c:64
-msgid "directory archiver"
-msgstr "目录归档器"
-
-#: pg_backup_directory.c:162
-#, c-format
-msgid "no output directory specified\n"
+#: pg_backup_directory.c:156
+#, fuzzy, c-format
+#| msgid "no output directory specified\n"
+msgid "no output directory specified"
 msgstr "没有指定输出目录\n"
 
-#: pg_backup_directory.c:191
+#: pg_backup_directory.c:185
 #, c-format
-msgid "could not read directory \"%s\": %s\n"
-msgstr "无法读取目录 \"%s\": %s\n"
+msgid "could not read directory \"%s\": %m"
+msgstr "无法读取目录 \"%s\": %m"
 
-#: pg_backup_directory.c:195
-#, c-format
-msgid "could not close directory \"%s\": %s\n"
+#: pg_backup_directory.c:189
+#, fuzzy, c-format
+#| msgid "could not close directory \"%s\": %s\n"
+msgid "could not close directory \"%s\": %m"
 msgstr "无法关闭目录 \"%s\": %s\n"
 
-#: pg_backup_directory.c:201
+#: pg_backup_directory.c:195
 #, c-format
-msgid "could not create directory \"%s\": %s\n"
-msgstr "无法创建目录 \"%s\": %s\n"
+msgid "could not create directory \"%s\": %m"
+msgstr "无法创建目录 \"%s\": %m"
 
-#: pg_backup_directory.c:413
-#, c-format
-msgid "could not close data file: %s\n"
+#: pg_backup_directory.c:350 pg_backup_directory.c:488
+#: pg_backup_directory.c:518
+#, fuzzy, c-format
+#| msgid "could not write to output file: %s\n"
+msgid "could not write to output file: %s"
+msgstr "无法写到输出文件: %s\n"
+
+#: pg_backup_directory.c:403
+#, fuzzy, c-format
+#| msgid "could not close data file: %s\n"
+msgid "could not close data file: %m"
 msgstr "无法关闭数据文件: %s\n"
 
-#: pg_backup_directory.c:454
-#, c-format
-msgid "could not open large object TOC file \"%s\" for input: %s\n"
+#: pg_backup_directory.c:443
+#, fuzzy, c-format
+#| msgid "could not open large object TOC file \"%s\" for input: %s\n"
+msgid "could not open large object TOC file \"%s\" for input: %m"
 msgstr "无法为输入: %s打开大对象文件\"%s\"\n"
 
-#: pg_backup_directory.c:465
-#, c-format
-msgid "invalid line in large object TOC file \"%s\": \"%s\"\n"
+#: pg_backup_directory.c:454
+#, fuzzy, c-format
+#| msgid "invalid line in large object TOC file \"%s\": \"%s\"\n"
+msgid "invalid line in large object TOC file \"%s\": \"%s\""
 msgstr "无效行存在于大对象文件\"%s\": \"%s\"\n"
 
-#: pg_backup_directory.c:474
-#, c-format
-msgid "error reading large object TOC file \"%s\"\n"
+#: pg_backup_directory.c:463
+#, fuzzy, c-format
+#| msgid "error reading large object TOC file \"%s\"\n"
+msgid "error reading large object TOC file \"%s\""
 msgstr "在读取大对象文件\"%s\"时发生错误\n"
 
-#: pg_backup_directory.c:478
-#, c-format
-msgid "could not close large object TOC file \"%s\": %s\n"
+#: pg_backup_directory.c:467
+#, fuzzy, c-format
+#| msgid "could not close large object TOC file \"%s\": %s\n"
+msgid "could not close large object TOC file \"%s\": %m"
 msgstr "无法关闭大对象 TOC 文件\"%s\": %s\n"
 
-#: pg_backup_directory.c:688
-#, c-format
-msgid "could not write to blobs TOC file\n"
+#: pg_backup_directory.c:678
+#, fuzzy, c-format
+#| msgid "could not write to blobs TOC file\n"
+msgid "could not write to blobs TOC file"
 msgstr "无法写入BLOB到大对象TOC文件\n"
 
-#: pg_backup_directory.c:720
-#, c-format
-msgid "file name too long: \"%s\"\n"
+#: pg_backup_directory.c:710
+#, fuzzy, c-format
+#| msgid "file name too long: \"%s\"\n"
+msgid "file name too long: \"%s\""
 msgstr "文件名超长: \"%s\"\n"
 
-#: pg_backup_directory.c:806
-#, c-format
-msgid "error during backup\n"
-msgstr "在备份过程中出错\n"
-
 #: pg_backup_null.c:75
-#, c-format
-msgid "this format cannot be read\n"
+#, fuzzy, c-format
+#| msgid "this format cannot be read\n"
+msgid "this format cannot be read"
 msgstr "无法读取这个格式\n"
 
-#. translator: this is a module name
-#: pg_backup_tar.c:102
-msgid "tar archiver"
-msgstr "tar 归档"
-
-#: pg_backup_tar.c:183
-#, c-format
-msgid "could not open TOC file \"%s\" for output: %s\n"
+#: pg_backup_tar.c:177
+#, fuzzy, c-format
+#| msgid "could not open TOC file \"%s\" for output: %s\n"
+msgid "could not open TOC file \"%s\" for output: %m"
 msgstr "无法为输出打开TOC文件\"%s\": %s\n"
 
-#: pg_backup_tar.c:191
-#, c-format
-msgid "could not open TOC file for output: %s\n"
+#: pg_backup_tar.c:184
+#, fuzzy, c-format
+#| msgid "could not open TOC file for output: %s\n"
+msgid "could not open TOC file for output: %m"
 msgstr "无法为输出打开 TOC 文件: %s\n"
 
-#: pg_backup_tar.c:212 pg_backup_tar.c:368
-#, c-format
-msgid "compression is not supported by tar archive format\n"
+#: pg_backup_tar.c:203 pg_backup_tar.c:358
+#, fuzzy, c-format
+#| msgid "compression is not supported by tar archive format\n"
+msgid "compression is not supported by tar archive format"
 msgstr "不支持tar归档格式的压缩\n"
 
-#: pg_backup_tar.c:220
-#, c-format
-msgid "could not open TOC file \"%s\" for input: %s\n"
+#: pg_backup_tar.c:211
+#, fuzzy, c-format
+#| msgid "could not open TOC file \"%s\" for input: %s\n"
+msgid "could not open TOC file \"%s\" for input: %m"
 msgstr "无法为输入打开TOC文件\"%s\": %s\n"
 
-#: pg_backup_tar.c:227
-#, c-format
-msgid "could not open TOC file for input: %s\n"
+#: pg_backup_tar.c:218
+#, fuzzy, c-format
+#| msgid "could not open TOC file for input: %s\n"
+msgid "could not open TOC file for input: %m"
 msgstr "无法为输入打开 TOC 文件: %s\n"
 
-#: pg_backup_tar.c:354
-#, c-format
-msgid "could not find file \"%s\" in archive\n"
+#: pg_backup_tar.c:344
+#, fuzzy, c-format
+#| msgid "could not find file \"%s\" in archive\n"
+msgid "could not find file \"%s\" in archive"
 msgstr "无法在归档中找到文件\"%s\"\n"
 
-#: pg_backup_tar.c:420
-#, c-format
-msgid "could not generate temporary file name: %s\n"
+#: pg_backup_tar.c:410
+#, fuzzy, c-format
+#| msgid "could not generate temporary file name: %s\n"
+msgid "could not generate temporary file name: %m"
 msgstr "无法生成临时文件名: %s\n"
 
-#: pg_backup_tar.c:431
-#, c-format
-msgid "could not open temporary file\n"
+#: pg_backup_tar.c:421
+#, fuzzy, c-format
+#| msgid "could not open temporary file\n"
+msgid "could not open temporary file"
 msgstr "无法打开临时文件\n"
 
-#: pg_backup_tar.c:458
-#, c-format
-msgid "could not close tar member\n"
+#: pg_backup_tar.c:448
+#, fuzzy, c-format
+#| msgid "could not close tar member\n"
+msgid "could not close tar member"
 msgstr "无法关闭 tar 成员\n"
 
 #: pg_backup_tar.c:571
@@ -1298,172 +1384,185 @@ msgstr "无法关闭 tar 成员\n"
 msgid "internal error -- neither th nor fh specified in tarReadRaw()\n"
 msgstr "内部错误 -- 在 tarReadRaw() 里既未声明 th 也未声明 fh\n"
 
-#: pg_backup_tar.c:694
-#, c-format
-msgid "unexpected COPY statement syntax: \"%s\"\n"
+#: pg_backup_tar.c:693
+#, fuzzy, c-format
+#| msgid "unexpected COPY statement syntax: \"%s\"\n"
+msgid "unexpected COPY statement syntax: \"%s\""
 msgstr "意外的COPY语句语法: \"%s\"\n"
 
-#: pg_backup_tar.c:960
-#, c-format
-msgid "invalid OID for large object (%u)\n"
+#: pg_backup_tar.c:961
+#, fuzzy, c-format
+#| msgid "invalid OID for large object (%u)\n"
+msgid "invalid OID for large object (%u)"
 msgstr "用于大对象的非法 OID (%u)\n"
 
 # command.c:1148
-#: pg_backup_tar.c:1104
-#, c-format
-msgid "could not close temporary file: %s\n"
+#: pg_backup_tar.c:1106
+#, fuzzy, c-format
+#| msgid "could not close temporary file: %s\n"
+msgid "could not close temporary file: %m"
 msgstr "无法关闭临时文件: %s\n"
 
-#: pg_backup_tar.c:1114
-#, c-format
-msgid "actual file length (%s) does not match expected (%s)\n"
+#: pg_backup_tar.c:1115
+#, fuzzy, c-format
+#| msgid "actual file length (%s) does not match expected (%s)\n"
+msgid "actual file length (%s) does not match expected (%s)"
 msgstr "实际文件长度 (%s) 不匹配预期的长度 (%s)\n"
 
-#: 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:1162
-#, c-format
-msgid "now at file position %s\n"
-msgstr "现在在文件的位置 %s\n"
-
-#: pg_backup_tar.c:1171 pg_backup_tar.c:1201
-#, c-format
-msgid "could not find header for file \"%s\" in tar archive\n"
+#: pg_backup_tar.c:1172 pg_backup_tar.c:1202
+#, fuzzy, c-format
+#| msgid "could not find header for file \"%s\" in tar archive\n"
+msgid "could not find header for file \"%s\" in tar archive"
 msgstr "无法在tar归档中为文件\"%s\"找到标题头\n"
 
-#: pg_backup_tar.c:1185
-#, c-format
-msgid "skipping tar member %s\n"
-msgstr "忽略 tar 成员 %s\n"
-
-#: pg_backup_tar.c:1189
-#, c-format
-msgid ""
-"restoring data out of order is not supported in this archive format: \"%s\" "
-"is required, but comes before \"%s\" in the archive file.\n"
-msgstr ""
-"这个归档格式里不支持不按照顺序转储数据: 要求\"%s\" ,但它在归档文件里位于\"%s"
-"\"前面.\n"
+#: pg_backup_tar.c:1190
+#, fuzzy, c-format
+#| msgid "restoring data out of order is not supported in this archive format: \"%s\" is required, but comes before \"%s\" in the archive file.\n"
+msgid "restoring data out of order is not supported in this archive format: \"%s\" is required, but comes before \"%s\" in the archive file."
+msgstr "这个归档格式里不支持不按照顺序转储数据: 要求\"%s\" ,但它在归档文件里位于\"%s\"前面.\n"
 
 #: pg_backup_tar.c:1235
-#, c-format
-msgid "incomplete tar header found (%lu byte)\n"
-msgid_plural "incomplete tar header found (%lu bytes)\n"
+#, fuzzy, c-format
+#| msgid "incomplete tar header found (%lu byte)\n"
+#| msgid_plural "incomplete tar header found (%lu bytes)\n"
+msgid "incomplete tar header found (%lu byte)"
+msgid_plural "incomplete tar header found (%lu bytes)"
 msgstr[0] "找到未完成的tar文件头(%lu个字节)\n"
+msgstr[1] "找到未完成的tar文件头(%lu个字节)\n"
 
-#: pg_backup_tar.c:1276
-#, c-format
-msgid "TOC Entry %s at %s (length %s, checksum %d)\n"
-msgstr "TOC项%s位于%s(长度为%s,校验和为%d)\n"
-
-#: pg_backup_tar.c:1287
-#, c-format
-msgid ""
-"corrupt tar header found in %s (expected %d, computed %d) file position %s\n"
-msgstr ""
-"在文件 %1$s 的位置 %4$s 发现崩溃的 tar 头(预计在 %2$d, 计算出来在 %3$d)\n"
+#: pg_backup_tar.c:1286
+#, fuzzy, c-format
+#| msgid "corrupt tar header found in %s (expected %d, computed %d) file position %s\n"
+msgid "corrupt tar header found in %s (expected %d, computed %d) file position %s"
+msgstr "在文件 %1$s 的位置 %4$s 发现崩溃的 tar 头(预计在 %2$d, 计算出来在 %3$d)\n"
 
 #: pg_backup_utils.c:54
-#, c-format
-msgid "%s: unrecognized section name: \"%s\"\n"
+#, fuzzy, c-format
+#| msgid "%s: unrecognized section name: \"%s\"\n"
+msgid "unrecognized section name: \"%s\""
 msgstr "%s: 无法识别的节名称: \"%s\"\n"
 
-#: 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
+#: pg_backup_utils.c:55 pg_dump.c:611 pg_dump.c:628 pg_dumpall.c:333
+#: pg_dumpall.c:343 pg_dumpall.c:352 pg_dumpall.c:361 pg_dumpall.c:369
+#: pg_dumpall.c:383 pg_dumpall.c:459 pg_restore.c:288 pg_restore.c:304
+#: pg_restore.c:322
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "输入 \"%s --help\" 获取更多的信息.\n"
 
-#: pg_backup_utils.c:101
-#, c-format
-msgid "out of on_exit_nicely slots\n"
+#: pg_backup_utils.c:68
+#, fuzzy, c-format
+#| msgid "out of on_exit_nicely slots\n"
+msgid "out of on_exit_nicely slots"
 msgstr "超出on_exit_nicely槽\n"
 
-#: pg_dump.c:504
-#, c-format
-msgid "compression level must be in range 0..9\n"
+#: pg_dump.c:542
+#, fuzzy, c-format
+#| msgid "compression level must be in range 0..9\n"
+msgid "compression level must be in range 0..9"
 msgstr "压缩级别必须位于0..9的范围内\n"
 
-#: pg_dump.c:549 pg_dumpall.c:309 pg_restore.c:293
+#: pg_dump.c:580
 #, c-format
-msgid "%s: too many command-line arguments (first is \"%s\")\n"
+msgid "extra_float_digits must be in range -15..3"
+msgstr ""
+
+#: pg_dump.c:603
+#, fuzzy, c-format
+#| msgid "compression level must be in range 0..9\n"
+msgid "rows-per-insert must be in range %d..%d"
+msgstr "压缩级别必须位于0..9的范围内\n"
+
+#: pg_dump.c:626 pg_dumpall.c:341 pg_restore.c:302
+#, fuzzy, c-format
+#| msgid "%s: too many command-line arguments (first is \"%s\")\n"
+msgid "too many command-line arguments (first is \"%s\")"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_dump.c:562
-#, c-format
-msgid "options -s/--schema-only and -a/--data-only cannot be used together\n"
+#: pg_dump.c:647 pg_restore.c:331
+#, fuzzy, c-format
+#| msgid "options -s/--schema-only and -a/--data-only cannot be used together\n"
+msgid "options -s/--schema-only and -a/--data-only cannot be used together"
 msgstr "选项 -s/--schema-only和-a/--data-only 不能同时使用.\n"
 
-#: pg_dump.c:568
-#, c-format
-msgid "options -c/--clean and -a/--data-only cannot be used together\n"
+#: pg_dump.c:653 pg_restore.c:337
+#, fuzzy, c-format
+#| msgid "options -c/--clean and -a/--data-only cannot be used together\n"
+msgid "options -c/--clean and -a/--data-only cannot be used together"
 msgstr "选项 -c/--clean和 -a/--data-only不能同时使用.\n"
 
-#: 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:658 pg_dumpall.c:376 pg_restore.c:386
+#, fuzzy, c-format
+#| msgid "option --if-exists requires option -c/--clean\n"
+msgid "option --if-exists requires option -c/--clean"
+msgstr "选项 --if-exists 需要选项 -c/ --clean \n"
 
-#: pg_dump.c:575
+#: pg_dump.c:665
 #, c-format
-msgid "(The INSERT command cannot set OIDs.)\n"
-msgstr "(INSERT 命令无法设置对象标识(oid).)\n"
+msgid "option --on-conflict-do-nothing requires option --inserts, --rows-per-insert or --column-inserts"
+msgstr ""
 
-#: pg_dump.c:580
-#, c-format
-msgid "option --if-exists requires option -c/--clean\n"
-msgstr "选项 --if-exists 需要选项 -c/ --clean \n"
+#: pg_dump.c:687
+#, fuzzy, c-format
+#| msgid "WARNING: requested compression not available in this installation -- archive will be uncompressed\n"
+msgid "requested compression not available in this installation -- archive will be uncompressed"
+msgstr "警告: 所要求的压缩无法在本次安装中获取 - 归档将不被压缩\n"
 
-#: pg_dump.c:608
-#, c-format
-msgid "%s: invalid number of parallel jobs\n"
-msgstr "%s: 无效的并行工作数\n"
+#: pg_dump.c:708 pg_restore.c:353
+#, fuzzy, c-format
+#| msgid "invalid number of parallel jobs\n"
+msgid "invalid number of parallel jobs"
+msgstr "无效的并行工作数\n"
 
 # input.c:213
-#: pg_dump.c:612
-#, c-format
-msgid "parallel backup only supported by the directory format\n"
+#: pg_dump.c:712
+#, fuzzy, c-format
+#| msgid "parallel backup only supported by the directory format\n"
+msgid "parallel backup only supported by the directory format"
 msgstr "并行备份只被目录格式支持\n"
 
-#: pg_dump.c:681
-#, c-format
+#: pg_dump.c:767
+#, fuzzy, c-format
+#| msgid ""
+#| "Synchronized snapshots are not supported by this server version.\n"
+#| "Run with --no-synchronized-snapshots instead if you do not need\n"
+#| "synchronized snapshots.\n"
 msgid ""
 "Synchronized snapshots are not supported by this server version.\n"
 "Run with --no-synchronized-snapshots instead if you do not need\n"
-"synchronized snapshots.\n"
+"synchronized snapshots."
 msgstr ""
 "当前服务器版本不支持同步快照.\n"
 "如果不需要同步快照功能,\n"
 "可以带参数 --no-synchronized-snapshots运行.\n"
 
-#: pg_dump.c:688
-#, c-format
-msgid "Exported snapshots are not supported by this server version.\n"
+#: pg_dump.c:773
+#, fuzzy, c-format
+#| msgid "Exported snapshots are not supported by this server version.\n"
+msgid "Exported snapshots are not supported by this server version."
 msgstr "在这个版本的服务器中不支持导出的快照。\n"
 
-#: pg_dump.c:699
-#, c-format
-msgid "last built-in OID is %u\n"
+#: pg_dump.c:785
+#, fuzzy, c-format
+#| msgid "last built-in OID is %u\n"
+msgid "last built-in OID is %u"
 msgstr "最后的内置 OID 是 %u\n"
 
 # describe.c:1542
-#: pg_dump.c:709
-#, c-format
-msgid "No matching schemas were found\n"
-msgstr "没有找到符合的关联。\n"
+#: pg_dump.c:794
+#, fuzzy, c-format
+#| msgid "no matching schemas were found\n"
+msgid "no matching schemas were found"
+msgstr "没有找到符合的模式\n"
 
 # describe.c:1542
-#: pg_dump.c:723
-#, c-format
-msgid "No matching tables were found\n"
-msgstr "没有找到符合的关联。\n"
+#: pg_dump.c:808
+#, fuzzy, c-format
+#| msgid "no matching tables were found\n"
+msgid "no matching tables were found"
+msgstr "没有找到符合的表\n"
 
-#: pg_dump.c:882
+#: pg_dump.c:980
 #, c-format
 msgid ""
 "%s dumps a database as a text file or to other formats.\n"
@@ -1472,17 +1571,17 @@ msgstr ""
 "%s 把一个数据库转储为纯文本文件或者是其它格式.\n"
 "\n"
 
-#: pg_dump.c:883 pg_dumpall.c:549 pg_restore.c:437
+#: pg_dump.c:981 pg_dumpall.c:612 pg_restore.c:466
 #, c-format
 msgid "Usage:\n"
 msgstr "用法:\n"
 
-#: pg_dump.c:884
+#: pg_dump.c:982
 #, c-format
 msgid "  %s [OPTION]... [DBNAME]\n"
 msgstr "  %s [选项]... [数据库名字]\n"
 
-#: pg_dump.c:886 pg_dumpall.c:552 pg_restore.c:440
+#: pg_dump.c:984 pg_dumpall.c:615 pg_restore.c:469
 #, c-format
 msgid ""
 "\n"
@@ -1491,12 +1590,12 @@ msgstr ""
 "\n"
 "一般选项:\n"
 
-#: pg_dump.c:887
+#: pg_dump.c:985
 #, c-format
 msgid "  -f, --file=FILENAME          output file or directory name\n"
 msgstr "  -f, --file=FILENAME          输出文件或目录名\n"
 
-#: pg_dump.c:888
+#: pg_dump.c:986
 #, c-format
 msgid ""
 "  -F, --format=c|d|t|p         output file format (custom, directory, tar,\n"
@@ -1505,39 +1604,42 @@ msgstr ""
 "  -F, --format=c|d|t|p         输出文件格式 (定制, 目录, tar)\n"
 "                               明文 (默认值))\n"
 
-#: pg_dump.c:890
+#: pg_dump.c:988
 #, c-format
 msgid "  -j, --jobs=NUM               use this many parallel jobs to dump\n"
 msgstr "  -j, --jobs=NUM               执行多个并行任务进行备份转储工作\n"
 
-#: pg_dump.c:891
+#: pg_dump.c:989 pg_dumpall.c:617
 #, c-format
 msgid "  -v, --verbose                verbose mode\n"
 msgstr "  -v, --verbose                详细模式\n"
 
-#: pg_dump.c:892 pg_dumpall.c:554
+#: pg_dump.c:990 pg_dumpall.c:618
 #, c-format
 msgid "  -V, --version                output version information, then exit\n"
 msgstr "  -V, --version                输出版本信息,然后退出\n"
 
-#: pg_dump.c:893
+#: pg_dump.c:991
 #, c-format
-msgid ""
-"  -Z, --compress=0-9           compression level for compressed formats\n"
+msgid "  -Z, --compress=0-9           compression level for compressed formats\n"
 msgstr "  -Z, --compress=0-9           被压缩格式的压缩级别\n"
 
-#: pg_dump.c:894 pg_dumpall.c:555
+#: pg_dump.c:992 pg_dumpall.c:619
 #, c-format
-msgid ""
-"  --lock-wait-timeout=TIMEOUT  fail after waiting TIMEOUT for a table lock\n"
+msgid "  --lock-wait-timeout=TIMEOUT  fail after waiting TIMEOUT for a table lock\n"
 msgstr "  --lock-wait-timeout=TIMEOUT  在等待表锁超时后操作失败\n"
 
-#: pg_dump.c:895 pg_dumpall.c:556
+#: pg_dump.c:993 pg_dumpall.c:646
+#, c-format
+msgid "  --no-sync                    do not wait for changes to be written safely to disk\n"
+msgstr "  --no-sync                    不用等待变化安全写入磁盘\n"
+
+#: pg_dump.c:994 pg_dumpall.c:620
 #, c-format
 msgid "  -?, --help                   show this help, then exit\n"
 msgstr "  -?, --help                   显示此帮助, 然后退出\n"
 
-#: pg_dump.c:897 pg_dumpall.c:557
+#: pg_dump.c:996 pg_dumpall.c:621
 #, c-format
 msgid ""
 "\n"
@@ -1546,51 +1648,47 @@ msgstr ""
 "\n"
 "控制输出内容选项:\n"
 
-#: pg_dump.c:898 pg_dumpall.c:558
+#: pg_dump.c:997 pg_dumpall.c:622
 #, c-format
 msgid "  -a, --data-only              dump only the data, not the schema\n"
 msgstr "  -a, --data-only              只转储数据,不包括模式\n"
 
-#: pg_dump.c:899
+#: pg_dump.c:998
 #, c-format
 msgid "  -b, --blobs                  include large objects in dump\n"
 msgstr "  -b, --blobs                  在转储中包括大对象\n"
 
-#: pg_dump.c:900 pg_restore.c:451
+#: pg_dump.c:999
 #, c-format
-msgid ""
-"  -c, --clean                  clean (drop) database objects before "
-"recreating\n"
-msgstr ""
-"  -c, --clean                  在重新创建之前,先清除(删除)数据库对象\n"
+msgid "  -B, --no-blobs               exclude large objects in dump\n"
+msgstr "  -B, --no-blobs               排除转储中的大型对象\n"
 
-#: pg_dump.c:901
+#: pg_dump.c:1000 pg_restore.c:480
 #, c-format
-msgid ""
-"  -C, --create                 include commands to create database in dump\n"
+msgid "  -c, --clean                  clean (drop) database objects before recreating\n"
+msgstr "  -c, --clean                  在重新创建之前,先清除(删除)数据库对象\n"
+
+#: pg_dump.c:1001
+#, c-format
+msgid "  -C, --create                 include commands to create database in dump\n"
 msgstr "  -C, --create                 在转储中包括命令,以便创建数据库\n"
 
-#: pg_dump.c:902
+#: pg_dump.c:1002 pg_dumpall.c:624
 #, c-format
 msgid "  -E, --encoding=ENCODING      dump the data in encoding ENCODING\n"
 msgstr "  -E, --encoding=ENCODING      转储以ENCODING形式编码的数据\n"
 
-#: pg_dump.c:903
+#: pg_dump.c:1003
 #, c-format
 msgid "  -n, --schema=SCHEMA          dump the named schema(s) only\n"
 msgstr "  -n, --schema=SCHEMA          只转储指定名称的模式\n"
 
-#: pg_dump.c:904
+#: pg_dump.c:1004
 #, c-format
 msgid "  -N, --exclude-schema=SCHEMA  do NOT dump the named schema(s)\n"
 msgstr "  -N, --exclude-schema=SCHEMA  不转储已命名的模式\n"
 
-#: 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:906
+#: pg_dump.c:1005
 #, c-format
 msgid ""
 "  -O, --no-owner               skip restoration of object ownership in\n"
@@ -1599,162 +1697,167 @@ msgstr ""
 "  -O, --no-owner               在明文格式中, 忽略恢复对象所属者\n"
 "\n"
 
-#: pg_dump.c:908 pg_dumpall.c:564
+#: pg_dump.c:1007 pg_dumpall.c:628
 #, c-format
 msgid "  -s, --schema-only            dump only the schema, no data\n"
 msgstr "  -s, --schema-only            只转储模式, 不包括数据\n"
 
-#: pg_dump.c:909
+#: pg_dump.c:1008
 #, c-format
-msgid ""
-"  -S, --superuser=NAME         superuser user name to use in plain-text "
-"format\n"
+msgid "  -S, --superuser=NAME         superuser user name to use in plain-text format\n"
 msgstr "  -S, --superuser=NAME         在明文格式中使用指定的超级用户名\n"
 
-#: pg_dump.c:910
+#: pg_dump.c:1009
 #, c-format
 msgid "  -t, --table=TABLE            dump the named table(s) only\n"
 msgstr "  -t, --table=TABLE            只转储指定名称的表\n"
 
-#: pg_dump.c:911
+#: pg_dump.c:1010
 #, c-format
 msgid "  -T, --exclude-table=TABLE    do NOT dump the named table(s)\n"
 msgstr "  -T, --exclude-table=TABLE    不转储指定名称的表\n"
 
-#: pg_dump.c:912 pg_dumpall.c:567
+#: pg_dump.c:1011 pg_dumpall.c:631
 #, c-format
 msgid "  -x, --no-privileges          do not dump privileges (grant/revoke)\n"
 msgstr "  -x, --no-privileges          不要转储权限 (grant/revoke)\n"
 
-#: pg_dump.c:913 pg_dumpall.c:568
+#: pg_dump.c:1012 pg_dumpall.c:632
 #, c-format
 msgid "  --binary-upgrade             for use by upgrade utilities only\n"
 msgstr "  --binary-upgrade             只能由升级工具使用\n"
 
-#: pg_dump.c:914 pg_dumpall.c:569
+#: pg_dump.c:1013 pg_dumpall.c:633
 #, c-format
-msgid ""
-"  --column-inserts             dump data as INSERT commands with column "
-"names\n"
+msgid "  --column-inserts             dump data as INSERT commands with column names\n"
 msgstr "  --column-inserts             以带有列名的INSERT命令形式转储数据\n"
 
-#: pg_dump.c:915 pg_dumpall.c:570
+#: pg_dump.c:1014 pg_dumpall.c:634
 #, c-format
-msgid ""
-"  --disable-dollar-quoting     disable dollar quoting, use SQL standard "
-"quoting\n"
-msgstr ""
-"  --disable-dollar-quoting     取消美元 (符号) 引号, 使用 SQL 标准引号\n"
+msgid "  --disable-dollar-quoting     disable dollar quoting, use SQL standard quoting\n"
+msgstr "  --disable-dollar-quoting     取消美元 (符号) 引号, 使用 SQL 标准引号\n"
 
-#: pg_dump.c:916 pg_dumpall.c:571 pg_restore.c:467
+#: pg_dump.c:1015 pg_dumpall.c:635 pg_restore.c:497
 #, c-format
-msgid ""
-"  --disable-triggers           disable triggers during data-only restore\n"
+msgid "  --disable-triggers           disable triggers during data-only restore\n"
 msgstr "  --disable-triggers           在只恢复数据的过程中禁用触发器\n"
 
-#: pg_dump.c:917
+#: pg_dump.c:1016
 #, c-format
 msgid ""
-"  --enable-row-security        enable row security (dump only content user "
-"has\n"
+"  --enable-row-security        enable row security (dump only content user has\n"
 "                               access to)\n"
-msgstr ""
-"  --enable-row-security        启用行安全性(只转储用户能够访问的内容)\n"
+msgstr "  --enable-row-security        启用行安全性(只转储用户能够访问的内容)\n"
 
-#: pg_dump.c:919
+#: pg_dump.c:1018
 #, c-format
-msgid ""
-"  --exclude-table-data=TABLE   do NOT dump data for the named table(s)\n"
+msgid "  --exclude-table-data=TABLE   do NOT dump data for the named table(s)\n"
 msgstr "  --exclude-table-data=TABLE   不转储指定名称的表中的数据\n"
 
-#: pg_dump.c:920 pg_dumpall.c:572 pg_restore.c:469
+#: pg_dump.c:1019 pg_dumpall.c:637
+#, c-format
+msgid "  --extra-float-digits=NUM     override default setting for extra_float_digits\n"
+msgstr ""
+
+#: pg_dump.c:1020 pg_dumpall.c:638 pg_restore.c:499
 #, c-format
 msgid "  --if-exists                  use IF EXISTS when dropping objects\n"
 msgstr "  --if-exists              当删除对象时使用IF EXISTS\n"
 
-#: pg_dump.c:921 pg_dumpall.c:573
+#: pg_dump.c:1021 pg_dumpall.c:639
 #, c-format
-msgid ""
-"  --inserts                    dump data as INSERT commands, rather than "
-"COPY\n"
-msgstr ""
-"  --inserts                    以INSERT命令,而不是COPY命令的形式转储数据\n"
+msgid "  --inserts                    dump data as INSERT commands, rather than COPY\n"
+msgstr "  --inserts                    以INSERT命令,而不是COPY命令的形式转储数据\n"
+
+#: pg_dump.c:1022 pg_dumpall.c:640
+#, c-format
+msgid "  --load-via-partition-root    load partitions via the root table\n"
+msgstr "  --load-via-partition-root    通过根表加载分区\n"
+
+#: pg_dump.c:1023 pg_dumpall.c:641
+#, c-format
+msgid "  --no-comments                do not dump comments\n"
+msgstr "  --no-comments                不转储注释\n"
+
+#: pg_dump.c:1024 pg_dumpall.c:642
+#, c-format
+msgid "  --no-publications            do not dump publications\n"
+msgstr "  --no-publications            不转储发布\n"
 
-#: pg_dump.c:922 pg_dumpall.c:574
+#: pg_dump.c:1025 pg_dumpall.c:644
 #, c-format
 msgid "  --no-security-labels         do not dump security label assignments\n"
 msgstr "  --no-security-labels         不转储安全标签的分配\n"
 
-#: pg_dump.c:923
+#: pg_dump.c:1026 pg_dumpall.c:645
 #, c-format
-msgid ""
-"  --no-synchronized-snapshots  do not use synchronized snapshots in parallel "
-"jobs\n"
+msgid "  --no-subscriptions           do not dump subscriptions\n"
+msgstr "  --no-subscriptions           不转储订阅\n"
+
+#: pg_dump.c:1027
+#, c-format
+msgid "  --no-synchronized-snapshots  do not use synchronized snapshots in parallel jobs\n"
 msgstr "  --no-synchronized-snapshots  在并行工作集中不使用同步快照\n"
 
-#: pg_dump.c:924 pg_dumpall.c:575
+#: pg_dump.c:1028 pg_dumpall.c:647
 #, c-format
 msgid "  --no-tablespaces             do not dump tablespace assignments\n"
 msgstr "  --no-tablespaces             不转储表空间分配信息\n"
 
-#: pg_dump.c:925 pg_dumpall.c:576
+#: pg_dump.c:1029 pg_dumpall.c:648
 #, c-format
 msgid "  --no-unlogged-table-data     do not dump unlogged table data\n"
 msgstr "  --no-unlogged-table-data     不转储没有日志的表数据\n"
 
-#: pg_dump.c:926 pg_dumpall.c:577
+#: pg_dump.c:1030 pg_dumpall.c:649
 #, c-format
-msgid ""
-"  --quote-all-identifiers      quote all identifiers, even if not key words\n"
+msgid "  --on-conflict-do-nothing     add ON CONFLICT DO NOTHING to INSERT commands\n"
+msgstr ""
+
+#: pg_dump.c:1031 pg_dumpall.c:650
+#, c-format
+msgid "  --quote-all-identifiers      quote all identifiers, even if not key words\n"
 msgstr "  --quote-all-identifiers      所有标识符加引号,即使不是关键字\n"
 
-#: pg_dump.c:927
+#: pg_dump.c:1032
 #, c-format
-msgid ""
-"  --section=SECTION            dump named section (pre-data, data, or post-"
-"data)\n"
+msgid "  --rows-per-insert=NROWS      number of rows per INSERT; implies --inserts\n"
 msgstr ""
-"  --section=SECTION            备份命名的节 (数据前, 数据, 及 数据后)\n"
 
-#: pg_dump.c:928
+#: pg_dump.c:1033
 #, c-format
-msgid ""
-"  --serializable-deferrable    wait until the dump can run without "
-"anomalies\n"
+msgid "  --section=SECTION            dump named section (pre-data, data, or post-data)\n"
+msgstr "  --section=SECTION            备份命名的节 (数据前, 数据, 及 数据后)\n"
+
+#: pg_dump.c:1034
+#, c-format
+msgid "  --serializable-deferrable    wait until the dump can run without anomalies\n"
 msgstr "  --serializable-deferrable   等到备份可以无异常运行\n"
 
-#: pg_dump.c:929
+#: pg_dump.c:1035
 #, c-format
 msgid "  --snapshot=SNAPSHOT          use given snapshot for the dump\n"
 msgstr "  --snapshot=SNAPSHOT          为转储使用给定的快照\n"
 
-#: pg_dump.c:930 pg_restore.c:475
+#: pg_dump.c:1036 pg_restore.c:508
 #, 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"
+"  --strict-names               require table and/or schema include patterns to\n"
 "                               match at least one entity each\n"
-msgstr ""
-"  --strict-names               要求每个表和/或schema包括模式以匹配至少一个实"
-"体\n"
+msgstr "  --strict-names               要求每个表和/或schema包括模式以匹配至少一个实体\n"
 
-#: pg_dump.c:932 pg_dumpall.c:578 pg_restore.c:477
+#: pg_dump.c:1038 pg_dumpall.c:651 pg_restore.c:510
 #, c-format
 msgid ""
 "  --use-set-session-authorization\n"
-"                               use SET SESSION AUTHORIZATION commands "
-"instead of\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"
 
-#: pg_dump.c:936 pg_dumpall.c:582 pg_restore.c:481
+#: pg_dump.c:1042 pg_dumpall.c:655 pg_restore.c:514
 #, c-format
 msgid ""
 "\n"
@@ -1763,44 +1866,42 @@ msgstr ""
 "\n"
 "联接选项:\n"
 
-#: pg_dump.c:937
+#: pg_dump.c:1043
 #, c-format
 msgid "  -d, --dbname=DBNAME      database to dump\n"
 msgstr "  -d, --dbname=DBNAME       对数据库 DBNAME备份\n"
 
-#: pg_dump.c:938 pg_dumpall.c:584 pg_restore.c:482
+#: pg_dump.c:1044 pg_dumpall.c:657 pg_restore.c:515
 #, c-format
 msgid "  -h, --host=HOSTNAME      database server host or socket directory\n"
 msgstr "  -h, --host=主机名        数据库服务器的主机名或套接字目录\n"
 
-#: pg_dump.c:939 pg_dumpall.c:586 pg_restore.c:483
+#: pg_dump.c:1045 pg_dumpall.c:659 pg_restore.c:516
 #, c-format
 msgid "  -p, --port=PORT          database server port number\n"
 msgstr "  -p, --port=端口号        数据库服务器的端口号\n"
 
-#: pg_dump.c:940 pg_dumpall.c:587 pg_restore.c:484
+#: pg_dump.c:1046 pg_dumpall.c:660 pg_restore.c:517
 #, c-format
 msgid "  -U, --username=NAME      connect as specified database user\n"
 msgstr "  -U, --username=名字      以指定的数据库用户联接\n"
 
-#: pg_dump.c:941 pg_dumpall.c:588 pg_restore.c:485
+#: pg_dump.c:1047 pg_dumpall.c:661 pg_restore.c:518
 #, c-format
 msgid "  -w, --no-password        never prompt for password\n"
 msgstr "  -w, --no-password        永远不提示输入口令\n"
 
-#: pg_dump.c:942 pg_dumpall.c:589 pg_restore.c:486
+#: pg_dump.c:1048 pg_dumpall.c:662 pg_restore.c:519
 #, c-format
-msgid ""
-"  -W, --password           force password prompt (should happen "
-"automatically)\n"
+msgid "  -W, --password           force password prompt (should happen automatically)\n"
 msgstr "  -W, --password           强制口令提示 (自动)\n"
 
-#: pg_dump.c:943 pg_dumpall.c:590
+#: pg_dump.c:1049 pg_dumpall.c:663
 #, c-format
 msgid "  --role=ROLENAME          do SET ROLE before dump\n"
 msgstr "  --role=ROLENAME          在转储前运行SET ROLE\n"
 
-#: pg_dump.c:945
+#: pg_dump.c:1051
 #, c-format
 msgid ""
 "\n"
@@ -1813,533 +1914,701 @@ msgstr ""
 "的数值.\n"
 "\n"
 
-#: pg_dump.c:947 pg_dumpall.c:594 pg_restore.c:493
-#, c-format
-msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
+#: pg_dump.c:1053 pg_dumpall.c:667 pg_restore.c:526
+#, fuzzy, c-format
+#| msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
+msgid "Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgstr "报告错误至 <pgsql-bugs@postgresql.org>.\n"
 
-#: pg_dump.c:967
-#, c-format
-msgid "invalid client encoding \"%s\" specified\n"
+#: pg_dump.c:1072 pg_dumpall.c:494
+#, fuzzy, c-format
+#| msgid "invalid client encoding \"%s\" specified\n"
+msgid "invalid client encoding \"%s\" specified"
 msgstr "声明了无效的输出格式 \"%s\"\n"
 
-#: pg_dump.c:1152
-#, c-format
-msgid "invalid output format \"%s\" specified\n"
+#: pg_dump.c:1218
+#, fuzzy, c-format
+#| msgid ""
+#| "Synchronized snapshots on standby servers are not supported by this server version.\n"
+#| "Run with --no-synchronized-snapshots instead if you do not need\n"
+#| "synchronized snapshots.\n"
+msgid ""
+"Synchronized snapshots on standby servers are not supported by this server version.\n"
+"Run with --no-synchronized-snapshots instead if you do not need\n"
+"synchronized snapshots."
+msgstr ""
+"当前服务器版本不支持备用服务器上的同步快照.\n"
+"如果不需要同步快照功能,\n"
+"可以带参数 --no-synchronized-snapshots运行.\n"
+
+#: pg_dump.c:1287
+#, fuzzy, c-format
+#| msgid "invalid output format \"%s\" specified\n"
+msgid "invalid output format \"%s\" specified"
 msgstr "声明了非法的输出格式 \"%s\"\n"
 
-#: 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"
+# describe.c:1542
+#: pg_dump.c:1325
+#, fuzzy, c-format
+#| msgid "no matching schemas were found for pattern \"%s\"\n"
+msgid "no matching schemas were found for pattern \"%s\""
+msgstr "没有为\"%s\"模式找到匹配的schemas\n"
 
 # 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"
+#: pg_dump.c:1390
+#, fuzzy, c-format
+#| msgid "no matching tables were found for pattern \"%s\"\n"
+msgid "no matching tables were found for pattern \"%s\""
 msgstr "没有为\"%s\"模式找到匹配的表\n"
 
-#: pg_dump.c:1596
-#, c-format
-msgid "dumping contents of table \"%s.%s\"\n"
+#: pg_dump.c:1804
+#, fuzzy, c-format
+#| msgid "dumping contents of table \"%s.%s\"\n"
+msgid "dumping contents of table \"%s.%s\""
 msgstr "正在转储表\"%s.%s\"的内容\n"
 
-#: pg_dump.c:1720
-#, c-format
-msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed.\n"
+#: pg_dump.c:1905
+#, fuzzy, c-format
+#| msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed.\n"
+msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed."
 msgstr "转储表 \"%s\" 的内容的 SQL 命令失败: PQendcopy() 失败.\n"
 
-#: pg_dump.c:1721 pg_dump.c:1731
+#: pg_dump.c:1906 pg_dump.c:1916
 #, c-format
 msgid "Error message from server: %s"
 msgstr "来自服务器的错误信息: %s"
 
-#: pg_dump.c:1722 pg_dump.c:1732
-#, c-format
-msgid "The command was: %s\n"
+#: pg_dump.c:1907 pg_dump.c:1917
+#, fuzzy, c-format
+#| msgid "The command was: %s\n"
+msgid "The command was: %s"
 msgstr "命令是: %s\n"
 
-#: pg_dump.c:1730
-#, c-format
-msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed.\n"
+#: pg_dump.c:1915
+#, fuzzy, c-format
+#| msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed.\n"
+msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed."
 msgstr "转储表 \"%s\" 的内容失败: PQgetResult() 失败.\n"
 
-#: pg_dump.c:2374
-#, c-format
-msgid "saving database definition\n"
+#: pg_dump.c:2666
+#, fuzzy, c-format
+#| msgid "saving database definition\n"
+msgid "saving database definition"
 msgstr "保存数据库定义\n"
 
-#: pg_dump.c:2707
-#, c-format
-msgid "saving encoding = %s\n"
+#: pg_dump.c:3130
+#, fuzzy, c-format
+#| msgid "saving encoding = %s\n"
+msgid "saving encoding = %s"
 msgstr "正在保存encoding = %s\n"
 
-#: pg_dump.c:2734
-#, c-format
-msgid "saving standard_conforming_strings = %s\n"
+#: pg_dump.c:3155
+#, fuzzy, c-format
+#| msgid "saving standard_conforming_strings = %s\n"
+msgid "saving standard_conforming_strings = %s"
 msgstr "正在保存standard_conforming_strings = %s\n"
 
-#: pg_dump.c:2774
-#, c-format
-msgid "reading large objects\n"
+#: pg_dump.c:3194
+#, fuzzy, c-format
+#| msgid "could not parse result of current_schemas()\n"
+msgid "could not parse result of current_schemas()"
+msgstr "无法解析current_schemas()的结果\n"
+
+#: pg_dump.c:3213
+#, fuzzy, c-format
+#| msgid "saving search_path = %s\n"
+msgid "saving search_path = %s"
+msgstr "正在保存search_path = %s\n"
+
+#: pg_dump.c:3253
+#, fuzzy, c-format
+#| msgid "reading large objects\n"
+msgid "reading large objects"
 msgstr "正在读取大对象\n"
 
-#: pg_dump.c:2960
-#, c-format
-msgid "saving large objects\n"
+#: pg_dump.c:3435
+#, fuzzy, c-format
+#| msgid "saving large objects\n"
+msgid "saving large objects"
 msgstr "保存大对象\n"
 
-#: pg_dump.c:3007
+#: pg_dump.c:3481
 #, c-format
 msgid "error reading large object %u: %s"
 msgstr "在读取大对象时发生错误%u: %s"
 
-#: pg_dump.c:3059
-#, c-format
-msgid "reading row security enabled for table \"%s.%s\"\n"
+#: pg_dump.c:3533
+#, fuzzy, c-format
+#| msgid "reading row security enabled for table \"%s.%s\"\n"
+msgid "reading row security enabled for table \"%s.%s\""
 msgstr "为表\"%s.%s\"读取行安全性启用状态\n"
 
-#: pg_dump.c:3090
-#, c-format
-msgid "reading policies for table \"%s.%s\"\n"
+#: pg_dump.c:3564
+#, fuzzy, c-format
+#| msgid "reading policies for table \"%s.%s\"\n"
+msgid "reading policies for table \"%s.%s\""
 msgstr "为表\"%s.%s\"读取策略\n"
 
-#: pg_dump.c:3223
-#, c-format
-msgid "unexpected policy command type: \"%s\"\n"
-msgstr "意外的策略命令类型:\"%s\"\n"
-
-#: pg_dump.c:3442
-#, c-format
-msgid "could not find parent extension for %s\n"
-msgstr "无法找到父扩展%s\n"
-
-#: pg_dump.c:3610
-#, c-format
-msgid "WARNING: owner of schema \"%s\" appears to be invalid\n"
+#: pg_dump.c:3714
+#, fuzzy, c-format
+#| msgid "unexpected policy command type: %c\n"
+msgid "unexpected policy command type: %c"
+msgstr "意外的策略命令类型:%c\n"
+
+#: pg_dump.c:3841
+#, fuzzy, c-format
+#| msgid "WARNING: owner of publication \"%s\" appears to be invalid\n"
+msgid "owner of publication \"%s\" appears to be invalid"
+msgstr "警告: 发行 \"%s\" 的所有者非法\n"
+
+#: pg_dump.c:3978
+#, fuzzy, c-format
+#| msgid "reading publication membership for table \"%s.%s\"\n"
+msgid "reading publication membership for table \"%s.%s\""
+msgstr "为表\"%s.%s\"读取发行会员资格\n"
+
+#: pg_dump.c:4121
+#, fuzzy, c-format
+#| msgid "WARNING: subscriptions not dumped because current user is not a superuser\n"
+msgid "subscriptions not dumped because current user is not a superuser"
+msgstr "警告: 订阅未转储,因为当前用户不是超级用户\n"
+
+#: pg_dump.c:4175
+#, fuzzy, c-format
+#| msgid "WARNING: owner of subscription \"%s\" appears to be invalid\n"
+msgid "owner of subscription \"%s\" appears to be invalid"
+msgstr "警告: 函数订阅\"%s\" 的所有者非法\n"
+
+#: pg_dump.c:4219
+#, fuzzy, c-format
+#| msgid "WARNING: could not parse subpublications array\n"
+msgid "could not parse subpublications array"
+msgstr "警告: 无法解析子发行数组\n"
+
+#: pg_dump.c:4491
+#, fuzzy, c-format
+#| msgid "could not find parent extension for %s %s\n"
+msgid "could not find parent extension for %s %s"
+msgstr "无法找到父扩展%s %s\n"
+
+#: pg_dump.c:4623
+#, fuzzy, c-format
+#| msgid "WARNING: owner of schema \"%s\" appears to be invalid\n"
+msgid "owner of schema \"%s\" appears to be invalid"
 msgstr "警告: 模式 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:3653
+#: pg_dump.c:4646
 #, c-format
-msgid "schema with OID %u does not exist\n"
-msgstr "OID %u 的模式不存在\n"
+msgid "schema with OID %u does not exist"
+msgstr "OID 为 %u 的模式不存在"
 
-#: pg_dump.c:4068
-#, c-format
-msgid "WARNING: owner of data type \"%s\" appears to be invalid\n"
+#: pg_dump.c:4971
+#, fuzzy, c-format
+#| msgid "WARNING: owner of data type \"%s\" appears to be invalid\n"
+msgid "owner of data type \"%s\" appears to be invalid"
 msgstr "警告: 数据类型 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:4179
-#, c-format
-msgid "WARNING: owner of operator \"%s\" appears to be invalid\n"
+#: pg_dump.c:5056
+#, fuzzy, c-format
+#| msgid "WARNING: owner of operator \"%s\" appears to be invalid\n"
+msgid "owner of operator \"%s\" appears to be invalid"
 msgstr "警告: 操作符 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:4512
-#, c-format
-msgid "WARNING: owner of operator class \"%s\" appears to be invalid\n"
+#: pg_dump.c:5358
+#, fuzzy, c-format
+#| msgid "WARNING: owner of operator class \"%s\" appears to be invalid\n"
+msgid "owner of operator class \"%s\" appears to be invalid"
 msgstr "警告: 操作符表 \"%s\" 无效\n"
 
-#: pg_dump.c:4600
-#, c-format
-msgid "WARNING: owner of operator family \"%s\" appears to be invalid\n"
+#: pg_dump.c:5442
+#, fuzzy, c-format
+#| msgid "WARNING: owner of operator family \"%s\" appears to be invalid\n"
+msgid "owner of operator family \"%s\" appears to be invalid"
 msgstr "警告: 操作符 \"%s\" 的所有者无效\n"
 
-#: pg_dump.c:4805
-#, c-format
-msgid "WARNING: owner of aggregate function \"%s\" appears to be invalid\n"
+#: pg_dump.c:5611
+#, fuzzy, c-format
+#| msgid "WARNING: owner of aggregate function \"%s\" appears to be invalid\n"
+msgid "owner of aggregate function \"%s\" appears to be invalid"
 msgstr "警告: 聚集函数 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:5074
-#, c-format
-msgid "WARNING: owner of function \"%s\" appears to be invalid\n"
+#: pg_dump.c:5871
+#, fuzzy, c-format
+#| msgid "WARNING: owner of function \"%s\" appears to be invalid\n"
+msgid "owner of function \"%s\" appears to be invalid"
 msgstr "警告: 函数 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:5874
-#, c-format
-msgid "WARNING: owner of table \"%s\" appears to be invalid\n"
+#: pg_dump.c:6675
+#, fuzzy, c-format
+#| msgid "WARNING: owner of table \"%s\" appears to be invalid\n"
+msgid "owner of table \"%s\" appears to be invalid"
 msgstr "警告: 数据表 \"%s\" 的所有者非法\n"
 
-#: pg_dump.c:6026
-#, c-format
-msgid "reading indexes for table \"%s.%s\"\n"
+#: pg_dump.c:6717 pg_dump.c:17067
+#, fuzzy, c-format
+#| msgid "failed sanity check, parent table with OID %u of sequence with OID %u not found\n"
+msgid "failed sanity check, parent table with OID %u of sequence with OID %u not found"
+msgstr "健全检查失败,序列OID %2$u 的源表 OID%1$u 未找到\n"
+
+#: pg_dump.c:6861
+#, fuzzy, c-format
+#| msgid "reading indexes for table \"%s.%s\"\n"
+msgid "reading indexes for table \"%s.%s\""
 msgstr "为表\"%s.%s\"读取索引\n"
 
-#: pg_dump.c:6394
-#, c-format
-msgid "reading foreign key constraints for table \"%s.%s\"\n"
+#: pg_dump.c:7262
+#, fuzzy, c-format
+#| msgid "reading foreign key constraints for table \"%s.%s\"\n"
+msgid "reading foreign key constraints for table \"%s.%s\""
 msgstr "为表\"%s.%s\"读取外键约束\n"
 
-#: pg_dump.c:6640
-#, c-format
-msgid ""
-"failed sanity check, parent table OID %u of pg_rewrite entry OID %u not "
-"found\n"
+#: pg_dump.c:7481
+#, fuzzy, c-format
+#| msgid "failed sanity check, parent table with OID %u of pg_rewrite entry with OID %u not found\n"
+msgid "failed sanity check, parent table with OID %u of pg_rewrite entry with OID %u not found"
 msgstr "健全检查失败,pg_rewrite项OID %2$u 的源表 OID%1$u 未找到\n"
 
-#: pg_dump.c:6734
-#, c-format
-msgid "reading triggers for table \"%s.%s\"\n"
+#: pg_dump.c:7564
+#, fuzzy, c-format
+#| msgid "reading triggers for table \"%s.%s\"\n"
+msgid "reading triggers for table \"%s.%s\""
 msgstr "为表\"%s.%s\"读取触发器\n"
 
-#: pg_dump.c:6899
-#, c-format
-msgid ""
-"query produced null referenced table name for foreign key trigger \"%s\" on "
-"table \"%s\" (OID of table: %u)\n"
-msgstr ""
-"对在表 \"%2$s\" 上的外键触发器 \"%1$s\" 上的查询生成了 NULL 个引用表(表的 "
-"OID 是: %3$u)\n"
+#: pg_dump.c:7697
+#, fuzzy, c-format
+#| msgid "query produced null referenced table name for foreign key trigger \"%s\" on table \"%s\" (OID of table: %u)\n"
+msgid "query produced null referenced table name for foreign key trigger \"%s\" on table \"%s\" (OID of table: %u)"
+msgstr "对在表 \"%2$s\" 上的外键触发器 \"%1$s\" 上的查询生成了 NULL 个引用表(表的 OID 是: %3$u)\n"
 
-#: pg_dump.c:7548
-#, c-format
-msgid "finding the columns and types of table \"%s.%s\"\n"
+#: pg_dump.c:8252
+#, fuzzy, c-format
+#| msgid "finding the columns and types of table \"%s.%s\"\n"
+msgid "finding the columns and types of table \"%s.%s\""
 msgstr "正在查找表\"%s.%s\"的列和类型\n"
 
-#: pg_dump.c:7727
-#, c-format
-msgid "invalid column numbering in table \"%s\"\n"
+#: pg_dump.c:8388
+#, fuzzy, c-format
+#| msgid "invalid column numbering in table \"%s\"\n"
+msgid "invalid column numbering in table \"%s\""
 msgstr "在表 \"%s\" 中的字段个数是无效的\n"
 
-#: pg_dump.c:7761
-#, c-format
-msgid "finding default expressions of table \"%s.%s\"\n"
+#: pg_dump.c:8425
+#, fuzzy, c-format
+#| msgid "finding default expressions of table \"%s.%s\"\n"
+msgid "finding default expressions of table \"%s.%s\""
 msgstr "正在查找表\"%s.%s\"的默认表达式\n"
 
-#: pg_dump.c:7814
-#, c-format
-msgid "invalid adnum value %d for table \"%s\"\n"
+#: pg_dump.c:8447
+#, fuzzy, c-format
+#| msgid "invalid adnum value %d for table \"%s\"\n"
+msgid "invalid adnum value %d for table \"%s\""
 msgstr "表 \"%2$s\" 的无效 adnum 值 %1$d\n"
 
-#: pg_dump.c:7886
-#, c-format
-msgid "finding check constraints for table \"%s.%s\"\n"
+#: pg_dump.c:8512
+#, fuzzy, c-format
+#| msgid "finding check constraints for table \"%s.%s\"\n"
+msgid "finding check constraints for table \"%s.%s\""
 msgstr "正在查找表\"%s.%s\"的检查约束\n"
 
-#: 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"
+#: pg_dump.c:8561
+#, fuzzy, 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"
+msgid "expected %d check constraint on table \"%s\" but found %d"
+msgid_plural "expected %d check constraints on table \"%s\" but found %d"
 msgstr[0] "在表\"%2$s\"上期望有%1$d个检查约束,但是找到了%3$d个\n"
+msgstr[1] "在表\"%2$s\"上期望有%1$d个检查约束,但是找到了%3$d个\n"
 
-#: pg_dump.c:7986
-#, c-format
-msgid "(The system catalogs might be corrupted.)\n"
+#: pg_dump.c:8565
+#, fuzzy, c-format
+#| msgid "(The system catalogs might be corrupted.)\n"
+msgid "(The system catalogs might be corrupted.)"
 msgstr "(系统表可能损坏了.)\n"
 
-#: pg_dump.c:9506
-#, c-format
-msgid "WARNING: typtype of data type \"%s\" appears to be invalid\n"
+#: pg_dump.c:10141
+#, fuzzy, c-format
+#| msgid "WARNING: typtype of data type \"%s\" appears to be invalid\n"
+msgid "typtype of data type \"%s\" appears to be invalid"
 msgstr "警告: 数据类型 \"%s\" 的所有者看起来无效\n"
 
-#: pg_dump.c:11048
-#, c-format
-msgid "WARNING: bogus value in proargmodes array\n"
+#: pg_dump.c:11495
+#, fuzzy, c-format
+#| msgid "WARNING: bogus value in proargmodes array\n"
+msgid "bogus value in proargmodes array"
 msgstr "警告: 无法分析 proargmodes 数组\n"
 
-#: pg_dump.c:11426
-#, c-format
-msgid "WARNING: could not parse proallargtypes array\n"
+#: pg_dump.c:11867
+#, fuzzy, c-format
+#| msgid "WARNING: could not parse proallargtypes array\n"
+msgid "could not parse proallargtypes array"
 msgstr "警告: 无法分析 proallargtypes 数组\n"
 
-#: pg_dump.c:11442
-#, c-format
-msgid "WARNING: could not parse proargmodes array\n"
+#: pg_dump.c:11883
+#, fuzzy, c-format
+#| msgid "WARNING: could not parse proargmodes array\n"
+msgid "could not parse proargmodes array"
 msgstr "警告: 无法分析 proargmodes 数组\n"
 
-#: pg_dump.c:11456
-#, c-format
-msgid "WARNING: could not parse proargnames array\n"
+#: pg_dump.c:11897
+#, fuzzy, c-format
+#| msgid "WARNING: could not parse proargnames array\n"
+msgid "could not parse proargnames array"
 msgstr "警告: 无法分析 proargnames 数组\n"
 
-#: pg_dump.c:11467
-#, c-format
-msgid "WARNING: could not parse proconfig array\n"
+#: pg_dump.c:11908
+#, fuzzy, c-format
+#| msgid "WARNING: could not parse proconfig array\n"
+msgid "could not parse proconfig array"
 msgstr "警告: 无法解析 proconfig 数组\n"
 
-#: pg_dump.c:11538
-#, c-format
-msgid "unrecognized provolatile value for function \"%s\"\n"
+#: pg_dump.c:11988
+#, fuzzy, c-format
+#| msgid "unrecognized provolatile value for function \"%s\"\n"
+msgid "unrecognized provolatile value for function \"%s\""
 msgstr "函数 \"%s\" 的意外正向易失值\n"
 
-#: pg_dump.c:11582
-#, c-format
-#| msgid "unrecognized provolatile value for function \"%s\"\n"
-msgid "unrecognized proparallel value for function \"%s\"\n"
+#: pg_dump.c:12038 pg_dump.c:14090
+#, fuzzy, c-format
+#| msgid "unrecognized proparallel value for function \"%s\"\n"
+msgid "unrecognized proparallel value for function \"%s\""
 msgstr "函数\"%s\"的proparallel值无法识别\n"
 
-#: pg_dump.c:11734
-#, c-format
-msgid "WARNING: bogus value in pg_cast.castfunc or pg_cast.castmethod field\n"
+#: pg_dump.c:12171 pg_dump.c:12280 pg_dump.c:12287
+#, fuzzy, c-format
+#| msgid "could not find function definition for function with OID %u\n"
+msgid "could not find function definition for function with OID %u"
+msgstr "找不到带有OID %u的函数的函数定义\n"
+
+#: pg_dump.c:12210
+#, fuzzy, c-format
+#| msgid "WARNING: bogus value in pg_cast.castfunc or pg_cast.castmethod field\n"
+msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field"
 msgstr "警告: 在pg_cast.castfunc或者pg_cast.castmethod字段中的是假值\n"
 
-#: pg_dump.c:11737
-#, c-format
-msgid "WARNING: bogus value in pg_cast.castmethod field\n"
+#: pg_dump.c:12213
+#, fuzzy, c-format
+#| msgid "WARNING: bogus value in pg_cast.castmethod field\n"
+msgid "bogus value in pg_cast.castmethod field"
 msgstr "警告: 在pg_cast.castmethod字段中的是假值\n"
 
-#: pg_dump.c:11825
-#, c-format
-msgid ""
-"WARNING: bogus transform definition, at least one of trffromsql and trftosql "
-"should be nonzero\n"
+#: pg_dump.c:12306
+#, fuzzy, c-format
+#| msgid "WARNING: bogus transform definition, at least one of trffromsql and trftosql should be nonzero\n"
+msgid "bogus transform definition, at least one of trffromsql and trftosql should be nonzero"
 msgstr "警告:臆造的转换定义,至少trffromsql和trftosql之一应该为非零\n"
 
-#: pg_dump.c:11842
-#, c-format
-msgid "WARNING: bogus value in pg_transform.trffromsql field\n"
+#: pg_dump.c:12323
+#, fuzzy, c-format
+#| msgid "WARNING: bogus value in pg_transform.trffromsql field\n"
+msgid "bogus value in pg_transform.trffromsql field"
 msgstr "警告: 在pg_transform.trffromsql域中的是臆造值\n"
 
-#: pg_dump.c:11863
-#, c-format
-msgid "WARNING: bogus value in pg_transform.trftosql field\n"
+#: pg_dump.c:12344
+#, fuzzy, c-format
+#| msgid "WARNING: bogus value in pg_transform.trftosql field\n"
+msgid "bogus value in pg_transform.trftosql field"
 msgstr "警告: 在pg_transform.trftosql域中的是臆造值\n"
 
-#: pg_dump.c:12254
-#, c-format
-msgid "WARNING: could not find operator with OID %s\n"
+#: pg_dump.c:12660
+#, fuzzy, c-format
+#| msgid "WARNING: could not find operator with OID %s\n"
+msgid "could not find operator with OID %s"
 msgstr "警告: 未找到 OID 为 %s 的操作符\n"
 
-#: 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:12728
+#, fuzzy, c-format
+#| msgid "WARNING: invalid type \"%c\" of access method \"%s\"\n"
+msgid "invalid type \"%c\" of access method \"%s\""
+msgstr "警告: 访问方法\"%2$s\"的类型\"%1$c\"无效\n"
 
-#: pg_dump.c:13516
+#: pg_dump.c:13482
 #, c-format
-msgid ""
-"WARNING: aggregate function %s could not be dumped correctly for this "
-"database version; ignored\n"
+msgid "unrecognized collation provider: %s\n"
+msgstr "无法识别的排序规则提供程序:%s\n"
+
+#: pg_dump.c:13954
+#, fuzzy, c-format
+#| msgid "WARNING: aggregate function %s could not be dumped correctly for this database version; ignored\n"
+msgid "aggregate function %s could not be dumped correctly for this database version; ignored"
 msgstr "警告: 无法为此版本的数据库正确转储聚集函数 \"%s\"; 忽略\n"
 
-#: pg_dump.c:14384
-#, c-format
-msgid "unrecognized object type in default privileges: %d\n"
+#: pg_dump.c:14009
+#, fuzzy, c-format
+#| msgid "unrecognized aggfinalmodify value for aggregate \"%s\"\n"
+msgid "unrecognized aggfinalmodify value for aggregate \"%s\""
+msgstr "无法识别的aggfinalmodify聚合值 \"%s\"\n"
+
+#: pg_dump.c:14065
+#, fuzzy, c-format
+#| msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"\n"
+msgid "unrecognized aggmfinalmodify value for aggregate \"%s\""
+msgstr "无法识别的aggmfinalmodify聚合值 \"%s\"\n"
+
+#: pg_dump.c:14787
+#, fuzzy, c-format
+#| msgid "unrecognized object type in default privileges: %d\n"
+msgid "unrecognized object type in default privileges: %d"
 msgstr "缺省权限中存在未知对象类型: %d\n"
 
-#: pg_dump.c:14399
-#, c-format
-msgid "could not parse default ACL list (%s)\n"
+#: pg_dump.c:14805
+#, fuzzy, c-format
+#| msgid "could not parse default ACL list (%s)\n"
+msgid "could not parse default ACL list (%s)"
 msgstr "无法解析缺省ACL列表(%s)\n"
 
-#: pg_dump.c:14470
-#, c-format
-#| 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:14954
-#, c-format
-msgid "query to obtain definition of view \"%s\" returned no data\n"
+#: pg_dump.c:14885
+#, fuzzy, c-format
+#| msgid "could not parse initial GRANT ACL list (%s) or initial REVOKE 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)"
+msgstr "无法为对象\"%3$s\" (%4$s)解析初始GRANT ACL列表 (%1$s) 或者初始REVOKE ACL列表 (%2$s) \n"
+
+#: pg_dump.c:14893
+#, fuzzy, c-format
+#| msgid "could not parse GRANT ACL list (%s) or REVOKE 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)"
+msgstr "无法为对象\"%3$s\" (%4$s)解析GRANT ACL列表 (%1$s) 或者REVOKE ACL列表 (%2$s)\n"
+
+#: pg_dump.c:15392
+#, fuzzy, c-format
+#| msgid "query to obtain definition of view \"%s\" returned no data\n"
+msgid "query to obtain definition of view \"%s\" returned no data"
 msgstr "获取视图 \"%s\" 定义的查询没有返回数据\n"
 
-#: pg_dump.c:14957
-#, c-format
-msgid ""
-"query to obtain definition of view \"%s\" returned more than one definition\n"
+#: pg_dump.c:15395
+#, fuzzy, c-format
+#| msgid "query to obtain definition of view \"%s\" returned more than one definition\n"
+msgid "query to obtain definition of view \"%s\" returned more than one definition"
 msgstr "获取视图 \"%s\" 定义的查询返回超过一个定义\n"
 
-#: pg_dump.c:14964
-#, c-format
-msgid "definition of view \"%s\" appears to be empty (length zero)\n"
+#: pg_dump.c:15402
+#, fuzzy, c-format
+#| msgid "definition of view \"%s\" appears to be empty (length zero)\n"
+msgid "definition of view \"%s\" appears to be empty (length zero)"
 msgstr "视图 \"%s\" 的定义是空的(零长)\n"
 
-#: pg_dump.c:15722
+#: pg_dump.c:15484
 #, c-format
-msgid "invalid column number %d for table \"%s\"\n"
+msgid "WITH OIDS is not supported anymore (table \"%s\")"
+msgstr ""
+
+#: pg_dump.c:15611
+#, fuzzy, c-format
+#| msgid "invalid number of parents %d for table \"%s\"\n"
+msgid "invalid number of parents %d for table \"%s\""
+msgstr "表 \"%2$s\" 的无效parents值 %1$d\n"
+
+#: pg_dump.c:16298
+#, fuzzy, c-format
+#| msgid "invalid column number %d for table \"%s\"\n"
+msgid "invalid column number %d for table \"%s\""
 msgstr "对于表 \"%2$s\" 字段个数 %1$d 是无效的\n"
 
-#: pg_dump.c:15851
-#, c-format
-msgid "missing index for constraint \"%s\"\n"
+#: pg_dump.c:16560
+#, fuzzy, c-format
+#| msgid "missing index for constraint \"%s\"\n"
+msgid "missing index for constraint \"%s\""
 msgstr "对于约束 \"%s\" 缺少索引\n"
 
-#: pg_dump.c:16054
-#, c-format
-msgid "unrecognized constraint type: %c\n"
+#: pg_dump.c:16780
+#, fuzzy, c-format
+#| msgid "unrecognized constraint type: %c\n"
+msgid "unrecognized constraint type: %c"
 msgstr "未知的约束类型: %c\n"
 
-#: 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"
+#: pg_dump.c:16912 pg_dump.c:17132
+#, fuzzy, 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"
+msgid "query to get data of sequence \"%s\" returned %d row (expected 1)"
+msgid_plural "query to get data of sequence \"%s\" returned %d rows (expected 1)"
 msgstr[0] "查询得到了序列\"%s\"的数据,返回了%d条记录(期望一条)\n"
+msgstr[1] "查询得到了序列\"%s\"的数据,返回了%d条记录(期望一条)\n"
 
-#: pg_dump.c:16219
-#, c-format
-msgid "query to get data of sequence \"%s\" returned name \"%s\"\n"
-msgstr "获取序列 \"%s\" 的数据的查询返回了名字 \"%s\"\n"
+#: pg_dump.c:16946
+#, fuzzy, c-format
+#| msgid "unrecognized sequence type: %s\n"
+msgid "unrecognized sequence type: %s"
+msgstr "无法识别的序列类型: %s\n"
 
 # fe-exec.c:1371
-#: pg_dump.c:16475
-#, c-format
-msgid "unexpected tgtype value: %d\n"
+#: pg_dump.c:17228
+#, fuzzy, c-format
+#| msgid "unexpected tgtype value: %d\n"
+msgid "unexpected tgtype value: %d"
 msgstr "意外的tgtype值: %d\n"
 
-#: pg_dump.c:16557
-#, c-format
-msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"\n"
+#: pg_dump.c:17302
+#, fuzzy, c-format
+#| msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"\n"
+msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\""
 msgstr "给表 \"%3$s\" 上的触发器 \"%2$s\" 的错误参数 (%1$s)\n"
 
-#: pg_dump.c:16754
-#, c-format
-msgid ""
-"query to get rule \"%s\" for table \"%s\" failed: wrong number of rows "
-"returned\n"
+#: pg_dump.c:17531
+#, fuzzy, c-format
+#| msgid "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows returned\n"
+msgid "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows returned"
 msgstr "获取表 \"%2$s\" 的规则 \"%1$s\" 查询失败: 返回了错误的行数\n"
 
-#: pg_dump.c:17143
-#, c-format
-msgid "reading dependency data\n"
+#: pg_dump.c:17693
+#, fuzzy, c-format
+#| msgid "could not find parent extension for %s %s\n"
+msgid "could not find referenced extension %u"
+msgstr "无法找到父扩展%s %s\n"
+
+#: pg_dump.c:17905
+#, fuzzy, c-format
+#| msgid "reading dependency data\n"
+msgid "reading dependency data"
 msgstr "读取从属数据\n"
 
-#: 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:17960
+#, fuzzy, c-format
+#| msgid "could not create large object %u: %s"
+msgid "no referencing object %u %u"
+msgstr "无法创建大对象%u: %s"
 
-#: 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"
-msgstr[0] "查询返回了%d条记录,而不是一条记录: %s\n"
+#: pg_dump.c:17971
+#, fuzzy, c-format
+#| msgid "could not create large object %u: %s"
+msgid "no referenced object %u %u"
+msgstr "无法创建大对象%u: %s"
 
-#. translator: this is a module name
-#: pg_dump_sort.c:23
-msgid "sorter"
-msgstr "排序器"
+#: pg_dump.c:18339
+#, fuzzy, c-format
+#| msgid "WARNING: could not parse reloptions array\n"
+msgid "could not parse reloptions array"
+msgstr "警告: 无法解析 reloptions 数组\n"
 
-#: pg_dump_sort.c:491
-#, c-format
-msgid "invalid dumpId %d\n"
+#: pg_dump_sort.c:327
+#, fuzzy, c-format
+#| msgid "invalid dumpId %d\n"
+msgid "invalid dumpId %d"
 msgstr "无效的dumpId %d\n"
 
-#: pg_dump_sort.c:497
-#, c-format
-msgid "invalid dependency %d\n"
+#: pg_dump_sort.c:333
+#, fuzzy, c-format
+#| msgid "invalid dependency %d\n"
+msgid "invalid dependency %d"
 msgstr "无效的依赖 %d\n"
 
-#: pg_dump_sort.c:730
-#, c-format
-msgid "could not identify dependency loop\n"
+#: pg_dump_sort.c:566
+#, fuzzy, c-format
+#| msgid "could not identify dependency loop\n"
+msgid "could not identify dependency loop"
 msgstr "无法标识循环依赖\n"
 
-#: pg_dump_sort.c:1261
-#, c-format
-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"
+#: pg_dump_sort.c:1129
+#, fuzzy, c-format
+#| 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"
+msgid "there are circular foreign-key constraints on this table:"
+msgid_plural "there are circular foreign-key constraints among these tables:"
 msgstr[0] "注意:表上存在循环外键约束:\n"
+msgstr[1] "注意:表上存在循环外键约束:\n"
 
-#: pg_dump_sort.c:1265 pg_dump_sort.c:1285
-#, c-format
-msgid "  %s\n"
+#: pg_dump_sort.c:1133 pg_dump_sort.c:1153
+#, fuzzy, c-format
+#| msgid "  %s\n"
+msgid "  %s"
 msgstr "  %s\n"
 
-#: pg_dump_sort.c:1266
-#, c-format
-msgid ""
-"You might not be able to restore the dump without using --disable-triggers "
-"or temporarily dropping the constraints.\n"
-msgstr ""
-"不使用 --disable-triggers 选项或者临时删除约束,你将不能对备份进行恢复 .\n"
+#: pg_dump_sort.c:1134
+#, fuzzy, c-format
+#| msgid "You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints.\n"
+msgid "You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints."
+msgstr "不使用 --disable-triggers 选项或者临时删除约束,你将不能对备份进行恢复 .\n"
 
-#: pg_dump_sort.c:1267
-#, c-format
-msgid ""
-"Consider using a full dump instead of a --data-only dump to avoid this "
-"problem.\n"
+#: pg_dump_sort.c:1135
+#, fuzzy, c-format
+#| msgid "Consider using a full dump instead of a --data-only dump to avoid this problem.\n"
+msgid "Consider using a full dump instead of a --data-only dump to avoid this problem."
 msgstr "考虑使用完全备份代替 --data-only选项进行备份以避免此问题.\n"
 
-#: pg_dump_sort.c:1279
-#, c-format
-msgid "WARNING: could not resolve dependency loop among these items:\n"
+#: pg_dump_sort.c:1147
+#, fuzzy, c-format
+#| msgid "WARNING: could not resolve dependency loop among these items:\n"
+msgid "could not resolve dependency loop among these items:"
 msgstr "WARNING: 无法解析这些项的循环依赖:\n"
 
-#: pg_dumpall.c:182
-#, c-format
+#: pg_dumpall.c:199
+#, fuzzy, c-format
+#| msgid ""
+#| "The program \"pg_dump\" is needed by %s but was not found in the\n"
+#| "same directory as \"%s\".\n"
+#| "Check your installation.\n"
 msgid ""
 "The program \"pg_dump\" is needed by %s but was not found in the\n"
 "same directory as \"%s\".\n"
-"Check your installation.\n"
+"Check your installation."
 msgstr ""
 "%s 需要程序 \"pg_dump\", 但是在同一个目录 \"%s\" 没有找到.\n"
 "\n"
 "检查您的安装.\n"
 
-#: pg_dumpall.c:189
-#, c-format
+#: pg_dumpall.c:204
+#, fuzzy, c-format
+#| msgid ""
+#| "The program \"pg_dump\" was found by \"%s\"\n"
+#| "but was not the same version as %s.\n"
+#| "Check your installation.\n"
 msgid ""
 "The program \"pg_dump\" was found by \"%s\"\n"
 "but was not the same version as %s.\n"
-"Check your installation.\n"
+"Check your installation."
 msgstr ""
 "%s 找到程序 \"pg_dump\", 但是和版本 \"%s\" 不一致.\n"
 "\n"
 "检查您的安装.\n"
 
-#: pg_dumpall.c:319
+#: pg_dumpall.c:351
 #, c-format
-msgid ""
-"%s: options -g/--globals-only and -r/--roles-only cannot be used together\n"
+msgid "option --exclude-database cannot be used together with -g/--globals-only, -r/--roles-only or -t/--tablespaces-only"
+msgstr ""
+
+#: pg_dumpall.c:360
+#, fuzzy, c-format
+#| msgid "%s: options -g/--globals-only and -r/--roles-only cannot be used together\n"
+msgid "options -g/--globals-only and -r/--roles-only cannot be used together"
 msgstr "%s: 选项-g/--globals-only和-r/--roles-only不能同时使用.\n"
 
-#: pg_dumpall.c:328
-#, c-format
-msgid ""
-"%s: options -g/--globals-only and -t/--tablespaces-only cannot be used "
-"together\n"
+#: pg_dumpall.c:368
+#, fuzzy, c-format
+#| msgid "%s: options -g/--globals-only and -t/--tablespaces-only cannot be used together\n"
+msgid "options -g/--globals-only and -t/--tablespaces-only cannot be used together"
 msgstr "%s: 选项  -g/--globals-only和-t/--tablespaces-only不能同时使用.\n"
 
-#: 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:344
-#, c-format
-msgid ""
-"%s: options -r/--roles-only and -t/--tablespaces-only cannot be used "
-"together\n"
+#: pg_dumpall.c:382
+#, fuzzy, c-format
+#| msgid "%s: options -r/--roles-only and -t/--tablespaces-only cannot be used together\n"
+msgid "options -r/--roles-only and -t/--tablespaces-only cannot be used together"
 msgstr "%s: 选项  -r/--roles-only和 -t/--tablespaces-only不能同时使用.\n"
 
-#: pg_dumpall.c:386 pg_dumpall.c:1909
-#, c-format
-msgid "%s: could not connect to database \"%s\"\n"
+#: pg_dumpall.c:443 pg_dumpall.c:1747
+#, fuzzy, c-format
+#| msgid "%s: could not connect to database \"%s\"\n"
+msgid "could not connect to database \"%s\""
 msgstr "%s: 无法与数据库 \"%s\" 联接\n"
 
-#: pg_dumpall.c:401
-#, c-format
+#: pg_dumpall.c:457
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: could not connect to databases \"postgres\" or \"template1\"\n"
+#| "Please specify an alternative database.\n"
 msgid ""
-"%s: could not connect to databases \"postgres\" or \"template1\"\n"
-"Please specify an alternative database.\n"
+"could not connect to databases \"postgres\" or \"template1\"\n"
+"Please specify an alternative database."
 msgstr ""
 "%s: 无法连接到数据库 \"postgres\"或\"template1\"\n"
 "请指定另外一个数据库.\n"
 
 # command.c:1148
-#: pg_dumpall.c:418
-#, c-format
-msgid "%s: could not open the output file \"%s\": %s\n"
+#: pg_dumpall.c:479
+#, fuzzy, c-format
+#| msgid "%s: could not open the output file \"%s\": %s\n"
+msgid "could not open the output file \"%s\": %m"
 msgstr "%s:无法打开输出文件 \"%s\":%s\n"
 
-#: pg_dumpall.c:548
+#: pg_dumpall.c:611
 #, c-format
 msgid ""
 "%s extracts a PostgreSQL database cluster into an SQL script file.\n"
@@ -2348,65 +2617,71 @@ msgstr ""
 "%s 抽取一个 PostgreSQL 数据库簇进一个 SQL 脚本文件.\n"
 "\n"
 
-#: pg_dumpall.c:550
+#: pg_dumpall.c:613
 #, c-format
 msgid "  %s [OPTION]...\n"
 msgstr "  %s [选项]...\n"
 
-#: pg_dumpall.c:553
+#: pg_dumpall.c:616
 #, c-format
 msgid "  -f, --file=FILENAME          output file name\n"
 msgstr "  -f, --file=FILENAME          输出文件名\n"
 
-#: pg_dumpall.c:559
+#: pg_dumpall.c:623
 #, c-format
-msgid ""
-"  -c, --clean                  clean (drop) databases before recreating\n"
+msgid "  -c, --clean                  clean (drop) databases before recreating\n"
 msgstr "  -c, --clean                  在重新创建数据库前先清除(删除)数据库\n"
 
-#: pg_dumpall.c:560
+#: pg_dumpall.c:625
 #, c-format
 msgid "  -g, --globals-only           dump only global objects, no databases\n"
 msgstr "  -g, --globals-only           只转储全局对象, 不包括数据库\n"
 
-#: pg_dumpall.c:562 pg_restore.c:459
+#: pg_dumpall.c:626 pg_restore.c:489
 #, c-format
 msgid "  -O, --no-owner               skip restoration of object ownership\n"
 msgstr "  -O, --no-owner               不恢复对象所属者\n"
 
-#: pg_dumpall.c:563
+#: pg_dumpall.c:627
 #, c-format
-msgid ""
-"  -r, --roles-only             dump only roles, no databases or tablespaces\n"
+msgid "  -r, --roles-only             dump only roles, no databases or tablespaces\n"
 msgstr "  -r, --roles-only             只转储角色,不包括数据库或表空间\n"
 
-#: pg_dumpall.c:565
+#: pg_dumpall.c:629
 #, c-format
 msgid "  -S, --superuser=NAME         superuser user name to use in the dump\n"
 msgstr "  -S, --superuser=NAME         在转储中, 指定的超级用户名\n"
 
-#: pg_dumpall.c:566
+#: pg_dumpall.c:630
 #, c-format
-msgid ""
-"  -t, --tablespaces-only       dump only tablespaces, no databases or roles\n"
+msgid "  -t, --tablespaces-only       dump only tablespaces, no databases or roles\n"
 msgstr "  -t, --tablespaces-only       只转储表空间,而不转储数据库或角色\n"
 
-#: pg_dumpall.c:583
+#: pg_dumpall.c:636
+#, c-format
+msgid "  --exclude-database=PATTERN   exclude databases whose name matches PATTERN\n"
+msgstr ""
+
+#: pg_dumpall.c:643
+#, c-format
+msgid "  --no-role-passwords          do not dump passwords for roles\n"
+msgstr "  --no-role-passwords          不转储角色的密码\n"
+
+#: pg_dumpall.c:656
 #, c-format
 msgid "  -d, --dbname=CONNSTR     connect using connection string\n"
 msgstr "  -d, --dbname=CONNSTR        连接数据库使用的连接串\n"
 
-#: pg_dumpall.c:585
+#: pg_dumpall.c:658
 #, c-format
 msgid "  -l, --database=DBNAME    alternative default database\n"
 msgstr "  -l, --database=DBNAME    另一个缺省数据库\n"
 
-#: pg_dumpall.c:592
+#: pg_dumpall.c:665
 #, c-format
 msgid ""
 "\n"
-"If -f/--file is not used, then the SQL script will be written to the "
-"standard\n"
+"If -f/--file is not used, then the SQL script will be written to the standard\n"
 "output.\n"
 "\n"
 msgstr ""
@@ -2415,111 +2690,116 @@ msgstr ""
 ".\n"
 "\n"
 
-#: 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:870
+#, fuzzy, c-format
+#| msgid "%s: role name starting with \"pg_\" skipped (%s)\n"
+msgid "role name starting with \"pg_\" skipped (%s)"
+msgstr "%s: 以\"pg_\"开始的角色名称已被跳过 (%s)\n"
 
-#: pg_dumpall.c:1128
-#, c-format
-msgid "%s: could not parse ACL list (%s) for tablespace \"%s\"\n"
+#: pg_dumpall.c:1271
+#, fuzzy, c-format
+#| msgid "%s: could not parse ACL list (%s) for tablespace \"%s\"\n"
+msgid "could not parse ACL list (%s) for tablespace \"%s\""
 msgstr "%1$s: 无法为表空间 \"%3$s\" 分析 ACL 列表 (%2$s)\n"
 
-#: 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:1488
+#, fuzzy, c-format
+#| msgid "%s: dumping database \"%s\"...\n"
+msgid "excluding database \"%s\"..."
+msgstr "%s: 正在转储数据库 \"%s\"...\n"
 
-#: pg_dumpall.c:1676
-#, c-format
-msgid "%s: dumping database \"%s\"...\n"
+#: pg_dumpall.c:1492
+#, fuzzy, c-format
+#| msgid "%s: dumping database \"%s\"...\n"
+msgid "dumping database \"%s\"..."
 msgstr "%s: 正在转储数据库 \"%s\"...\n"
 
-#: pg_dumpall.c:1697
-#, c-format
-msgid "%s: pg_dump failed on database \"%s\", exiting\n"
+#: pg_dumpall.c:1524
+#, fuzzy, c-format
+#| msgid "%s: pg_dump failed on database \"%s\", exiting\n"
+msgid "pg_dump failed on database \"%s\", exiting"
 msgstr "%s: pg_dump 失败在数据库 \"%s\", 正在退出\n"
 
 # command.c:1148
-#: pg_dumpall.c:1706
-#, c-format
-msgid "%s: could not re-open the output file \"%s\": %s\n"
+#: pg_dumpall.c:1533
+#, fuzzy, c-format
+#| msgid "%s: could not re-open the output file \"%s\": %s\n"
+msgid "could not re-open the output file \"%s\": %m"
 msgstr "%s:无法重新打开输出文件 \"%s\":%s\n"
 
-#: pg_dumpall.c:1751
-#, c-format
-msgid "%s: running \"%s\"\n"
+#: pg_dumpall.c:1577
+#, fuzzy, c-format
+#| msgid "%s: running \"%s\"\n"
+msgid "running \"%s\""
 msgstr "%s: 正在运行 \"%s\"\n"
 
-#: pg_dumpall.c:1931
-#, c-format
-msgid "%s: could not connect to database \"%s\": %s\n"
-msgstr "%s: 无法与数据库 \"%s\" 联接: %s\n"
+#: pg_dumpall.c:1768
+#, fuzzy, c-format
+#| msgid "%s: could not connect to database \"%s\": %s"
+msgid "could not connect to database \"%s\": %s"
+msgstr "%s: 无法与数据库 \"%s\" 联接: %s"
 
-#: pg_dumpall.c:1961
-#, c-format
-msgid "%s: could not get server version\n"
+#: pg_dumpall.c:1798
+#, fuzzy, c-format
+#| msgid "%s: could not get server version\n"
+msgid "could not get server version"
 msgstr "%s: 无法从服务器获取版本\n"
 
-#: pg_dumpall.c:1967
-#, c-format
-msgid "%s: could not parse server version \"%s\"\n"
+#: pg_dumpall.c:1804
+#, fuzzy, c-format
+#| msgid "%s: could not parse server version \"%s\"\n"
+msgid "could not parse server version \"%s\""
 msgstr "%s: 无法分析版本字串 \"%s\"\n"
 
-#: pg_dumpall.c:2045 pg_dumpall.c:2071
-#, c-format
-msgid "%s: executing %s\n"
-msgstr "%s: 执行 %s\n"
-
-#: pg_dumpall.c:2051 pg_dumpall.c:2077
-#, c-format
-msgid "%s: query failed: %s"
-msgstr "%s: 查询失败: %s"
+#: pg_dumpall.c:1876 pg_dumpall.c:1899
+#, fuzzy, c-format
+#| msgid "executing %s %s\n"
+msgid "executing %s"
+msgstr "执行 %s %s\n"
 
-#: pg_dumpall.c:2053 pg_dumpall.c:2079
-#, c-format
-msgid "%s: query was: %s\n"
-msgstr "%s: 查询是: %s\n"
+#: pg_restore.c:312
+#, fuzzy, c-format
+#| msgid "%s: options -d/--dbname and -f/--file cannot be used together\n"
+msgid "one of -d/--dbname and -f/--file must be specified"
+msgstr "%s: 选项 -d/--dbname和-f/--file不能同时使用.\n"
 
-#: pg_restore.c:305
-#, c-format
-msgid "%s: options -d/--dbname and -f/--file cannot be used together\n"
+#: pg_restore.c:321
+#, fuzzy, c-format
+#| msgid "%s: options -d/--dbname and -f/--file cannot be used together\n"
+msgid "options -d/--dbname and -f/--file cannot be used together"
 msgstr "%s: 选项 -d/--dbname和-f/--file不能同时使用.\n"
 
-#: 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:347
+#, fuzzy, c-format
+#| msgid "options -c/--clean and -a/--data-only cannot be used together\n"
+msgid "options -C/--create and -1/--single-transaction cannot be used together"
+msgstr "选项 -c/--clean和 -a/--data-only不能同时使用.\n"
 
-#: 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:361
+#, fuzzy, c-format
+#| msgid "%s: maximum number of parallel jobs is %d\n"
+msgid "maximum number of parallel jobs is %d"
+msgstr "%s: 已经达到并行工作集的最大数 %d\n"
 
-#: pg_restore.c:331
-#, c-format
-msgid "%s: cannot specify both --single-transaction and multiple jobs\n"
+#: pg_restore.c:370
+#, fuzzy, c-format
+#| msgid "%s: cannot specify both --single-transaction and multiple jobs\n"
+msgid "cannot specify both --single-transaction and multiple jobs"
 msgstr "%s: 不能同时指定选项--single-transaction和多个任务\n"
 
-#: pg_restore.c:372
-#, c-format
-msgid ""
-"unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"\n"
+#: pg_restore.c:412
+#, fuzzy, c-format
+#| msgid "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"\n"
+msgid "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\""
 msgstr "不可识别的归档格式\"%s\"; 请指定 \"c\", \"d\", 或 \"t\"\n"
 
-#: pg_restore.c:404
-#, c-format
-msgid "%s: maximum number of parallel jobs is %d\n"
-msgstr "%s: 已经达到并行工作集的最大数 %d\n"
-
-#: pg_restore.c:422
-#, c-format
-msgid "WARNING: errors ignored on restore: %d\n"
+#: pg_restore.c:452
+#, fuzzy, c-format
+#| msgid "WARNING: errors ignored on restore: %d\n"
+msgid "errors ignored on restore: %d"
 msgstr "警告: 恢复中忽略错误: %d\n"
 
-#: pg_restore.c:436
+#: pg_restore.c:465
 #, c-format
 msgid ""
 "%s restores a PostgreSQL database from an archive created by pg_dump.\n"
@@ -2528,47 +2808,48 @@ msgstr ""
 "%s 从一个归档中恢复一个由 pg_dump 创建的 PostgreSQL 数据库.\n"
 "\n"
 
-#: pg_restore.c:438
+#: pg_restore.c:467
 #, c-format
 msgid "  %s [OPTION]... [FILE]\n"
 msgstr "  %s [选项]... [文件名]\n"
 
-#: pg_restore.c:441
+#: pg_restore.c:470
 #, c-format
 msgid "  -d, --dbname=NAME        connect to database name\n"
 msgstr "  -d, --dbname=名字        连接数据库名字\n"
 
-#: pg_restore.c:442
-#, c-format
-msgid "  -f, --file=FILENAME      output file name\n"
+#: pg_restore.c:471
+#, fuzzy, c-format
+#| msgid "  -f, --file=FILENAME      output file name\n"
+msgid "  -f, --file=FILENAME      output file name (- for stdout)\n"
 msgstr "  -f, --file=文件名        输出文件名\n"
 
-#: pg_restore.c:443
+#: pg_restore.c:472
 #, 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:444
+#: pg_restore.c:473
 #, c-format
 msgid "  -l, --list               print summarized TOC of the archive\n"
 msgstr "  -l, --list               打印归档文件的 TOC 概述\n"
 
-#: pg_restore.c:445
+#: pg_restore.c:474
 #, c-format
 msgid "  -v, --verbose            verbose mode\n"
 msgstr "  -v, --verbose            详细模式\n"
 
-#: pg_restore.c:446
+#: pg_restore.c:475
 #, c-format
 msgid "  -V, --version            output version information, then exit\n"
 msgstr "  -V, --version            输出版本信息, 然后退出\n"
 
-#: pg_restore.c:447
+#: pg_restore.c:476
 #, c-format
 msgid "  -?, --help               show this help, then exit\n"
 msgstr "  -?, --help               显示此帮助, 然后退出\n"
 
-#: pg_restore.c:449
+#: pg_restore.c:478
 #, c-format
 msgid ""
 "\n"
@@ -2577,32 +2858,32 @@ msgstr ""
 "\n"
 "恢复控制选项:\n"
 
-#: pg_restore.c:450
+#: pg_restore.c:479
 #, c-format
 msgid "  -a, --data-only              restore only the data, no schema\n"
 msgstr "  -a, --data-only             只恢复数据, 不包括模式\n"
 
-#: pg_restore.c:452
+#: pg_restore.c:481
 #, c-format
 msgid "  -C, --create                 create the target database\n"
 msgstr "  -C, --create                 创建目标数据库\n"
 
-#: pg_restore.c:453
+#: pg_restore.c:482
 #, c-format
 msgid "  -e, --exit-on-error          exit on error, default is to continue\n"
 msgstr "  -e, --exit-on-error          发生错误退出, 默认为继续\n"
 
-#: pg_restore.c:454
+#: pg_restore.c:483
 #, c-format
 msgid "  -I, --index=NAME             restore named index\n"
 msgstr "  -I, --index=NAME             恢复指定名称的索引\n"
 
-#: pg_restore.c:455
+#: pg_restore.c:484
 #, c-format
 msgid "  -j, --jobs=NUM               use this many parallel jobs to restore\n"
 msgstr "  -j, --jobs=NUM               执行多个并行任务进行恢复工作\n"
 
-#: pg_restore.c:456
+#: pg_restore.c:485
 #, c-format
 msgid ""
 "  -L, --use-list=FILENAME      use table of contents from this file for\n"
@@ -2611,101 +2892,112 @@ msgstr ""
 "  -L, --use-list=FILENAME      从这个文件中使用指定的内容表排序\n"
 "                               输出\n"
 
-#: pg_restore.c:458
+#: pg_restore.c:487
 #, c-format
 msgid "  -n, --schema=NAME            restore only objects in this schema\n"
 msgstr "  -n, --schema=NAME            在这个模式中只恢复对象\n"
 
-#: pg_restore.c:460
+#: pg_restore.c:488
+#, c-format
+msgid "  -N, --exclude-schema=NAME    do not restore objects in this schema\n"
+msgstr "  -N, --exclude-schema=NAME    不恢复此模式中的对象\n"
+
+#: pg_restore.c:490
 #, c-format
 msgid "  -P, --function=NAME(args)    restore named function\n"
 msgstr "  -P, --function=NAME(args)    恢复指定名字的函数\n"
 
-#: pg_restore.c:461
+#: pg_restore.c:491
 #, c-format
 msgid "  -s, --schema-only            restore only the schema, no data\n"
 msgstr "  -s, --schema-only           只恢复模式, 不包括数据\n"
 
-#: pg_restore.c:462
+#: pg_restore.c:492
 #, c-format
-msgid ""
-"  -S, --superuser=NAME         superuser user name to use for disabling "
-"triggers\n"
+msgid "  -S, --superuser=NAME         superuser user name to use for disabling triggers\n"
 msgstr "  -S, --superuser=NAME         使用指定的超级用户来禁用触发器\n"
 
-#: pg_restore.c:463
+#: pg_restore.c:493
 #, c-format
-#| msgid "  -t, --table=NAME             restore named table\n"
-msgid ""
-"  -t, --table=NAME             restore named relation (table, view, etc)\n"
+msgid "  -t, --table=NAME             restore named relation (table, view, etc.)\n"
 msgstr "  -t, --table=NAME             恢复命名关系(表、视图等)\n"
 
-#: pg_restore.c:464
+#: pg_restore.c:494
 #, c-format
 msgid "  -T, --trigger=NAME           restore named trigger\n"
 msgstr "  -T, --trigger=NAME          恢复指定名字的触发器\n"
 
-#: pg_restore.c:465
+#: pg_restore.c:495
 #, c-format
-msgid ""
-"  -x, --no-privileges          skip restoration of access privileges (grant/"
-"revoke)\n"
+msgid "  -x, --no-privileges          skip restoration of access privileges (grant/revoke)\n"
 msgstr "  -x, --no-privileges          跳过处理权限的恢复 (grant/revoke)\n"
 
-#: pg_restore.c:466
+#: pg_restore.c:496
 #, c-format
 msgid "  -1, --single-transaction     restore as a single transaction\n"
 msgstr "  -1, --single-transaction     作为单个事务恢复\n"
 
-#: pg_restore.c:468
+#: pg_restore.c:498
 #, c-format
 msgid "  --enable-row-security        enable row security\n"
 msgstr "  --enable-row-security        启用行安全性\n"
 
-#: pg_restore.c:470
+#: pg_restore.c:500
+#, c-format
+msgid "  --no-comments                do not restore comments\n"
+msgstr "  --no-comments                不恢复注释\n"
+
+#: pg_restore.c:501
 #, c-format
 msgid ""
-"  --no-data-for-failed-tables  do not restore data of tables that could not "
-"be\n"
+"  --no-data-for-failed-tables  do not restore data of tables that could not be\n"
 "                               created\n"
 msgstr ""
 "  --no-data-for-failed-tables  对那些无法创建的表不进行\n"
 "                               数据恢复\n"
 
-#: pg_restore.c:472
+#: pg_restore.c:503
+#, c-format
+msgid "  --no-publications            do not restore publications\n"
+msgstr "  --no-publications            不恢复发行\n"
+
+#: pg_restore.c:504
 #, c-format
 msgid "  --no-security-labels         do not restore security labels\n"
 msgstr "  --no-security-labels         不恢复安全标签信息\n"
 
-#: pg_restore.c:473
+#: pg_restore.c:505
+#, c-format
+msgid "  --no-subscriptions           do not restore subscriptions\n"
+msgstr "  --no-subscriptions           不恢复订阅\n"
+
+#: pg_restore.c:506
 #, c-format
 msgid "  --no-tablespaces             do not restore tablespace assignments\n"
 msgstr "  --no-tablespaces             不恢复表空间的分配信息\n"
 
-#: pg_restore.c:474
+#: pg_restore.c:507
 #, c-format
-msgid ""
-"  --section=SECTION            restore named section (pre-data, data, or "
-"post-data)\n"
+msgid "  --section=SECTION            restore named section (pre-data, data, or post-data)\n"
 msgstr "  --section=SECTION            恢复命名节 (数据前、数据及数据后)\n"
 
-#: pg_restore.c:487
+#: pg_restore.c:520
 #, c-format
 msgid "  --role=ROLENAME          do SET ROLE before restore\n"
 msgstr "  --role=ROLENAME          在恢复前执行SET ROLE操作\n"
 
-#: pg_restore.c:489
+#: pg_restore.c:522
 #, c-format
 msgid ""
 "\n"
-"The options -I, -n, -P, -t, -T, and --section can be combined and specified\n"
+"The options -I, -n, -N, -P, -t, -T, and --section can be combined and specified\n"
 "multiple times to select multiple objects.\n"
 msgstr ""
 "\n"
-"选项 -I, -n, -P, -t, -T, 以及 --section 可以组合使用和指定\n"
+"选项 -I, -n, -N, -P, -t, -T, 以及 --section 可以组合使用和指定\n"
 "多次用于选择多个对象.\n"
 
-#: pg_restore.c:492
+#: pg_restore.c:525
 #, c-format
 msgid ""
 "\n"
@@ -2715,389 +3007,3 @@ msgstr ""
 "\n"
 "如果没有提供输入文件名, 则使用标准输入.\n"
 "\n"
-
-#~ msgid "archive member too large for tar format\n"
-#~ msgstr "在 tar 格式中归档成员太大\n"
-
-#~ msgid "could not parse version string \"%s\"\n"
-#~ msgstr "无法分析版本字串 \"%s\"\n"
-
-#~ msgid "%s: could not parse version \"%s\"\n"
-#~ msgstr "%s: 无法解析版本 \"%s\"\n"
-
-#~ msgid "%s: invalid -X option -- %s\n"
-#~ msgstr "%s: 无效的 -X 选项 -- %s\n"
-
-#~ msgid "  --help                      show this help, then exit\n"
-#~ msgstr "  --help                       显示此帮助信息, 然后退出\n"
-
-#~ msgid ""
-#~ "  --version                   output version information, then exit\n"
-#~ msgstr "  --versoin                    输出版本信息, 然后退出\n"
-
-#~ msgid "*** aborted because of error\n"
-#~ msgstr "*** 因为错误退出\n"
-
-#~ msgid "missing pg_database entry for database \"%s\"\n"
-#~ msgstr "缺少用于 \"%s\" 的 pg_database 记录\n"
-
-#~ msgid ""
-#~ "query returned more than one (%d) pg_database entry for database \"%s\"\n"
-#~ msgstr "查询为数据库 \"%2$s\" 返回了超过一条 (%1$d) pg_database 记录\n"
-
-#~ msgid "dumpDatabase(): could not find pg_largeobject.relfrozenxid\n"
-#~ msgstr "dumpDatabase():  无法找到pg_largeobject.relfrozenxid\n"
-
-#~ msgid "query returned no rows: %s\n"
-#~ msgstr "查询放弃, 没有记录: %s\n"
-
-#~ msgid "missing pg_database entry for this database\n"
-#~ msgstr "缺少此数据库的 pg_database 记录\n"
-
-#~ msgid "found more than one pg_database entry for this database\n"
-#~ msgstr "找到此数据库的多于一条的 pg_database 记录\n"
-
-#~ msgid "could not find entry for pg_indexes in pg_class\n"
-#~ msgstr "在 pg_class 中无法为 pg_indexes 找到记录\n"
-
-#~ msgid "found more than one entry for pg_indexes in pg_class\n"
-#~ msgstr "在 pg_class 表中找到多条 pg_indexes 的记录\n"
-
-#~ msgid "SQL command failed\n"
-#~ msgstr "SQL 命令失败\n"
-
-#~ msgid "cannot reopen stdin\n"
-#~ msgstr "无法重新打开stdin\n"
-
-#~ msgid "cannot reopen non-seekable file\n"
-#~ msgstr "无法重新打开不可查找的文件\n"
-
-#~ msgid "file archiver"
-#~ 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 close data file after reading\n"
-#~ msgstr "读取之后无法关闭数据文件\n"
-
-#~ msgid "could not open large object TOC for input: %s\n"
-#~ msgstr "无法打开大对象 TOC 进行输入: %s\n"
-
-#~ msgid "could not open large object TOC for output: %s\n"
-#~ msgstr "无法打开大对象 TOC 进行输出: %s\n"
-
-#~ msgid "could not close large object file\n"
-#~ msgstr "无法关闭大对象文件\n"
-
-#~ msgid "invalid COPY statement -- could not find \"copy\" in string \"%s\"\n"
-#~ msgstr "COPY 语句错 -- 无法在字串 \"%s\" 中找到 \"copy\"\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 "restoring large object OID %u\n"
-#~ msgstr "恢复 OID %u 的大对象\n"
-
-#~ msgid "  --help                   show this help, then exit\n"
-#~ msgstr "  --help                   显示此帮助信息, 然后退出\n"
-
-#~ msgid "  --version                output version information, then exit\n"
-#~ msgstr "  --version                输出版本信息, 然后退出\n"
-
-#~ msgid ""
-#~ "  -c, --clean              clean (drop) database objects before "
-#~ "recreating\n"
-#~ msgstr ""
-#~ "  -c, --clean              在重新创建数据库对象之前需要清除(删除)数据库"
-#~ "对象\n"
-
-#~ msgid "  -O, --no-owner           skip restoration of object ownership\n"
-#~ msgstr "  -O, --no-owner           忽略恢复对象所属者\n"
-
-#~ msgid ""
-#~ "  --disable-triggers       disable triggers during data-only restore\n"
-#~ msgstr " --disable-triggers        在只恢复数据的过程中禁用触发器\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 "%s: out of memory\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 ""
-#~ "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 "compression support is disabled in this format\n"
-#~ msgstr "在这个格式里, 压缩支持时被关闭了的\n"
-
-#~ msgid "User name: "
-#~ msgstr "用户名: "
-
-#~ msgid "large-object output not supported for a single table\n"
-#~ msgstr "不支持单个表的大对象输出.\n"
-
-#~ msgid "use a full dump instead\n"
-#~ msgstr "使用完整转储替代.\n"
-
-#~ msgid "large-object output not supported for a single schema\n"
-#~ msgstr "不支持单个模式的大对象输出.\n"
-
-#~ msgid "INSERT (-d, -D) and OID (-o) options cannot be used together\n"
-#~ msgstr "INSERT (-d, -D) 和 OID (-o) 选项不能同时使用.\n"
-
-#~ msgid "large-object output is not supported for plain-text dump files\n"
-#~ msgstr "纯文本转储文件不支持输出大对象.\n"
-
-#~ msgid "(Use a different output format.)\n"
-#~ msgstr "(使用不同的输出格式.)\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 "  -c, --clean              clean (drop) schema prior to create\n"
-#~ msgstr "  -c, --clean              先清楚(删除)预先的模式,再建立\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 "specified schema \"%s\" does not exist\n"
-#~ msgstr "指定的模式 \"%s\" 不存在\n"
-
-#~ msgid "specified table \"%s\" does not exist\n"
-#~ msgstr "指定的表 \"%s\" 不存在\n"
-
-#~ msgid "expected %d triggers on table \"%s\" but found %d\n"
-#~ msgstr "预期在表 \"%2$s\" 上有触发器 %1$d , 却发现 %3$d\n"
-
-#~ msgid "Got %d rows instead of one from: %s"
-#~ msgstr "已得到 %d 条记录替代来自 %s 的一条"
-
-#~ msgid "inserted invalid OID\n"
-#~ msgstr "插入了非法 OID\n"
-
-#~ msgid "maximum system OID is %u\n"
-#~ msgstr "最大系统 OID 是 %u\n"
-
-#~ msgid "could not close output archive file\n"
-#~ msgstr "无法关闭输出归档文件\n"
-
-#~ msgid "WARNING: skipping large-object restoration\n"
-#~ msgstr "警告: 忽略大对象的恢复\n"
-
-#~ msgid "fixing up large-object cross-reference for \"%s\"\n"
-#~ msgstr "为 \"%s\" 修复大对象的交叉引用\n"
-
-#~ msgid "committing large-object transactions\n"
-#~ msgstr "提交大对象事务\n"
-
-#~ msgid "cannot restore large objects without a database connection\n"
-#~ msgstr "没有数据库联接时无法恢复大对象\n"
-
-#~ msgid "starting large-object transactions\n"
-#~ msgstr "开始大对象事务\n"
-
-#~ msgid "restoring large object with OID %u as %u\n"
-#~ msgstr "把 OID 为 %u 的大对象恢复为 %u\n"
-
-#~ msgid "wrote remaining %lu bytes of large-object data (result = %lu)\n"
-#~ msgstr "写剩下了 %lu 字节的大对象数据 (结果 = %lu)\n"
-
-#~ msgid "could not open TOC file\n"
-#~ msgstr "无法打开 TOC 文件\n"
-
-#~ msgid "could not write to compressed archive\n"
-#~ msgstr "无法写入压缩的归档\n"
-
-#~ msgid "could not write to output file (%lu != %lu)\n"
-#~ msgstr "无法写出到输出文件 (%lu != %lu)\n"
-
-#~ msgid "read %lu bytes into lookahead buffer\n"
-#~ msgstr "读取 %lu 字节到预览缓冲区\n"
-
-#~ msgid "could not close the input file after reading header: %s\n"
-#~ msgstr "读取头之后无法关闭输入文件: %s\n"
-
-#~ msgid "archive format is %d\n"
-#~ msgstr "归档格式是 %d\n"
-
-#~ msgid "could not open archive file \"%s\": %s\n"
-#~ msgstr "无法打开归档文件 \"%s\": %s\n"
-
-#~ msgid "large objects cannot be loaded without a database connection\n"
-#~ msgstr "没有数据库联接时无法装载大对象\n"
-
-#~ msgid "could not read data block -- expected %lu, got %lu\n"
-#~ msgstr "无法读取数据块 - 预期 %lu, 实际 %lu\n"
-
-#~ msgid "write error in _WriteBuf (%lu != %lu)\n"
-#~ msgstr "在 _WriteBuf 里的写错误 (%lu != %lu)\n"
-
-#~ msgid "could not write compressed chunk\n"
-#~ msgstr "无法写入压缩的块\n"
-
-#~ msgid "could not write uncompressed chunk\n"
-#~ msgstr "无法写入未压缩的块\n"
-
-#~ msgid ""
-#~ "aborting because of version mismatch  (Use the -i option to proceed "
-#~ "anyway.)\n"
-#~ msgstr "因版本差异退出 (用 -i 选项忽略差异继续处理.)\n"
-
-#~ msgid "%s: no result from server\n"
-#~ msgstr "%s: 没有来自服务器的结果\n"
-
-#~ msgid "COPY command executed in non-primary connection\n"
-#~ msgstr "COPY 命令在没有主联接的环境下执行\n"
-
-#~ msgid "error returned by PQendcopy\n"
-#~ msgstr "PQendcopy 返回错误\n"
-
-#~ msgid "could not find OID columns of table \"%s\": %s"
-#~ msgstr "无法寻找表 \"%s\" 的 OID 字段: %s"
-
-#~ msgid "no OID type columns in table %s\n"
-#~ msgstr "表 %s 中没有 OID 类型字段\n"
-
-#~ msgid "fixing large object cross-references for %s.%s\n"
-#~ msgstr "为 %s.%s 修补大对象交叉引用\n"
-
-#~ msgid "SQL: %s\n"
-#~ msgstr "SQL: %s\n"
-
-#~ msgid "could not update column \"%s\" of table \"%s\": %s"
-#~ msgstr "无法更新表 \"%2$s\" 的字段 \"%1$s\": %3$s"
-
-#~ msgid "error while updating column \"%s\" of table \"%s\": %s"
-#~ msgstr "更新表 \"%2$s\" 的字段 \"%1$s\" 时出错: %3$s"
-
-#~ msgid "creating table for large object cross-references\n"
-#~ msgstr "为大对象交叉引用创建表\n"
-
-#~ msgid "could not create large object cross-reference table"
-#~ msgstr "无法创建大对象交叉引用表"
-
-#~ msgid "creating index for large object cross-references\n"
-#~ msgstr "为大对象交叉引用创建索引\n"
-
-#~ msgid "could not create index on large object cross-reference table"
-#~ msgstr "无法在大对象交叉引用表上创建索引"
-
-#~ msgid "could not create large object cross-reference entry"
-#~ msgstr "无法创建大对象交叉引用记录"
-
-#~ msgid "could not start transaction for large object cross-references"
-#~ msgstr "无法为大对象交叉引用启动事务"
-
-#~ msgid "could not commit transaction for large object cross-references"
-#~ msgstr "无法为大对象交叉引用提交事务"
-
-#~ msgid "could not open data file for output\n"
-#~ msgstr "无法为输出打开数据文件\n"
-
-#~ msgid "could not open data file for input\n"
-#~ msgstr "无法为输入打开数据文件\n"
-
-#~ msgid "could not open large object file\n"
-#~ msgstr "无法打开大对象文件\n"
-
-#~ msgid "requested %d bytes, got %d from lookahead and %d from file\n"
-#~ msgstr "要求 %d 字节, 从预览中获取 %d, 从文件中获取 %d\n"
-
-#~ msgid "could not write to tar member (wrote %lu, attempted %lu)\n"
-#~ msgstr "无法写入 tar 成员 (写了 %lu, 企图写 %lu)\n"
-
-#~ msgid "write error appending to tar archive (wrote %lu, attempted %lu)\n"
-#~ msgstr "向 tar 归档附加时写错误 (写了 %lu, 试图写 %lu)\n"
-
-#~ msgid "could not close tar member: %s\n"
-#~ msgstr "无法关闭 tar 成员: %s\n"
-
-#~ msgid "could not write tar header\n"
-#~ msgstr "无法写 tar 头\n"
-
-#~ msgid ""
-#~ "  -i, --ignore-version     proceed even when server version mismatches\n"
-#~ msgstr "  -i, --ignore-version     当服务器版本不匹配时继续运行\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 ""
-#~ "  -O, --no-owner           do not output commands to set object "
-#~ "ownership\n"
-#~ msgstr ""
-#~ "  -O, --no-owner           设置对象的所属者时不输出\n"
-#~ "                           命令\n"
-
-#~ msgid "-C and -c are incompatible options\n"
-#~ msgstr "-C 和 -c 是互不兼容的选项\n"
-
-#~ msgid "mismatch in actual vs. predicted file position (%s vs. %s)\n"
-#~ msgstr "实际文件位置和预期文件位置不匹配 (%s 对 %s)\n"
-
-#~ msgid "could not output padding at end of tar member\n"
-#~ msgstr "无法在 tar 成员尾部输出填充内容\n"
-
-#~ msgid "could not write null block at end of tar archive\n"
-#~ msgstr "无法在 tar 归档末尾写 null 块\n"
-
-#~ msgid "could not write byte\n"
-#~ msgstr "无法写字节\n"
-
-#~ msgid "could not write byte: %s\n"
-#~ msgstr "无法写字节: %s\n"
-
-#~ msgid "unexpected end of file\n"
-#~ msgstr "意外的文件结尾\n"
-
-#~ msgid "could not write to custom output routine\n"
-#~ msgstr "无法写出到客户输出过程\n"
-
-#~ msgid "could not write to output file: %s\n"
-#~ msgstr "无法写到输出文件: %s\n"
-
-#~ msgid "could not open output file \"%s\" for writing\n"
-#~ msgstr "无法打开输出文件 \"%s\" 用于写出\n"
index c199ac9a1a94635fae286da41692f15bd1ab78f2..fd537eef8d84108f394290e51030b0d2bf6e0cc9 100644 (file)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: pg_resetxlog (PostgreSQL 9.0)\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2016-04-18 04:44+0000\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:14+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) <ywpeng@whu.edu.cn>\n"
@@ -15,133 +15,187 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: ../../common/restricted_token.c:68
+#: ../../../src/common/logging.c:188
 #, c-format
-msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
-msgstr "%s: WARNING: 无法为该平台创建受限制的令牌\n"
+msgid "fatal: "
+msgstr ""
 
-#: ../../common/restricted_token.c:77
+#: ../../../src/common/logging.c:195
 #, c-format
-msgid "%s: could not open process token: error code %lu\n"
-msgstr "%s:无法打开进程令牌 (token): 错误码 %lu\n"
+msgid "error: "
+msgstr ""
 
-#: ../../common/restricted_token.c:90
+#: ../../../src/common/logging.c:202
 #, c-format
-msgid "%s: could not allocate SIDs: error code %lu\n"
+msgid "warning: "
+msgstr ""
+
+#: ../../common/restricted_token.c:69
+#, fuzzy, c-format
+#| msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
+msgid "cannot create restricted tokens on this platform"
+msgstr "%s: WARNING: 无法为该平台创建受限制的令牌\n"
+
+#: ../../common/restricted_token.c:78
+#, fuzzy, c-format
+#| msgid "%s: could not open process token: error code %lu\n"
+msgid "could not open process token: error code %lu"
+msgstr "%s:无法打开进程令牌 (token): 错误码 %lu\n"
+
+#: ../../common/restricted_token.c:91
+#, fuzzy, c-format
+#| msgid "%s: could not allocate SIDs: error code %lu\n"
+msgid "could not allocate SIDs: error code %lu"
 msgstr "%s: 无法分配SID: 错误码 %lu\n"
 
 #: ../../common/restricted_token.c:110
-#, c-format
-msgid "%s: could not create restricted token: error code %lu\n"
+#, fuzzy, c-format
+#| msgid "%s: could not create restricted token: error code %lu\n"
+msgid "could not create restricted token: error code %lu"
 msgstr "%s: 无法创建受限令牌: 错误码为 %lu\n"
 
-#: ../../common/restricted_token.c:132
-#, c-format
-msgid "%s: could not start process for command \"%s\": error code %lu\n"
+#: ../../common/restricted_token.c:131
+#, fuzzy, c-format
+#| msgid "%s: could not start process for command \"%s\": error code %lu\n"
+msgid "could not start process for command \"%s\": error code %lu"
 msgstr "%s: 无法为命令 \"%s\"创建进程: 错误码 %lu\n"
 
-#: ../../common/restricted_token.c:170
-#, c-format
-msgid "%s: could not re-execute with restricted token: error code %lu\n"
+#: ../../common/restricted_token.c:169
+#, fuzzy, c-format
+#| msgid "%s: could not re-execute with restricted token: error code %lu\n"
+msgid "could not re-execute with restricted token: error code %lu"
 msgstr "%s: 无法使用受限令牌再次执行: 错误码 %lu\n"
 
-#: ../../common/restricted_token.c:186
-#, c-format
-msgid "%s: could not get exit code from subprocess: error code %lu\n"
+#: ../../common/restricted_token.c:185
+#, fuzzy, c-format
+#| msgid "%s: could not get exit code from subprocess: error code %lu\n"
+msgid "could not get exit code from subprocess: error code %lu"
 msgstr "%s: 无法从子进程得到退出码: 错误码 %lu\n"
 
 #. translator: the second %s is a command line argument (-e, etc)
-#: pg_resetxlog.c:140 pg_resetxlog.c:155 pg_resetxlog.c:170 pg_resetxlog.c:177
-#: 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 %s\n"
-msgstr "%s::选项%s的参数无效\n"
-
-#: pg_resetxlog.c:141 pg_resetxlog.c:156 pg_resetxlog.c:171 pg_resetxlog.c:178
-#: pg_resetxlog.c:202 pg_resetxlog.c:217 pg_resetxlog.c:225 pg_resetxlog.c:251
-#: pg_resetxlog.c:265 pg_resetxlog.c:272 pg_resetxlog.c:285 pg_resetxlog.c:293
+#: pg_resetwal.c:160 pg_resetwal.c:175 pg_resetwal.c:190 pg_resetwal.c:197
+#: pg_resetwal.c:221 pg_resetwal.c:236 pg_resetwal.c:244 pg_resetwal.c:269
+#: pg_resetwal.c:283
+#, fuzzy, c-format
+#| msgid "%s: invalid argument for option %s\n"
+msgid "invalid argument for option %s"
+msgstr "%s: 选项%s的参数无效\n"
+
+#: pg_resetwal.c:161 pg_resetwal.c:176 pg_resetwal.c:191 pg_resetwal.c:198
+#: pg_resetwal.c:222 pg_resetwal.c:237 pg_resetwal.c:245 pg_resetwal.c:270
+#: pg_resetwal.c:284 pg_resetwal.c:310 pg_resetwal.c:323 pg_resetwal.c:331
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "输入 \"%s --help\" 获取更多的信息.\n"
 
-#: pg_resetxlog.c:146
-#, c-format
-msgid "%s: transaction ID epoch (-e) must not be -1\n"
-msgstr "%s: 事务ID epoch(-e) 不能为 -1\n"
-
-#: pg_resetxlog.c:161
-#, c-format
-msgid "%s: transaction ID (-x) must not be 0\n"
-msgstr "%s: 事务 ID (-x) 不能为 0\n"
-
-#: pg_resetxlog.c:185 pg_resetxlog.c:192
-#, c-format
-msgid ""
-"%s: transaction ID (-c) must be either 0 or greater than or equal to 2\n"
-msgstr "%s:事务ID (-c) 必须是0或者大于等于2\n"
-
-#: pg_resetxlog.c:207
-#, c-format
-msgid "%s: OID (-o) must not be 0\n"
-msgstr "%s: OID (-o) 不能为 0\n"
-
-#: pg_resetxlog.c:230
-#, c-format
-msgid "%s: multitransaction ID (-m) must not be 0\n"
-msgstr "%s:  多事务 ID (-m) 不能为 0\n"
-
-#: pg_resetxlog.c:240
-#, c-format
-msgid "%s: oldest multitransaction ID (-m) must not be 0\n"
-msgstr "%s:  最老的多事务 ID (-m) 不能为 0\n"
-
-#: pg_resetxlog.c:256
-#, c-format
-msgid "%s: multitransaction offset (-O) must not be -1\n"
-msgstr "%s: 多事务 偏移 (-O) 不能为-1\n"
+#: pg_resetwal.c:166
+#, fuzzy, c-format
+#| msgid "%s: transaction ID epoch (-e) must not be -1\n"
+msgid "transaction ID epoch (-e) must not be -1"
+msgstr "%s: 事务ID epoch(-e)不能为-1\n"
+
+#: pg_resetwal.c:181
+#, fuzzy, c-format
+#| msgid "%s: transaction ID (-x) must not be 0\n"
+msgid "transaction ID (-x) must not be 0"
+msgstr "%s: 事务ID(-x)不能为0\n"
+
+#: pg_resetwal.c:205 pg_resetwal.c:212
+#, fuzzy, c-format
+#| msgid "%s: transaction ID (-c) must be either 0 or greater than or equal to 2\n"
+msgid "transaction ID (-c) must be either 0 or greater than or equal to 2"
+msgstr "%s: 事务ID(-c)必须为0或大于或等于2\n"
+
+#: pg_resetwal.c:227
+#, fuzzy, c-format
+#| msgid "%s: OID (-o) must not be 0\n"
+msgid "OID (-o) must not be 0"
+msgstr "%s: OID (-o)不能为0\n"
+
+#: pg_resetwal.c:250
+#, fuzzy, c-format
+#| msgid "%s: multitransaction ID (-m) must not be 0\n"
+msgid "multitransaction ID (-m) must not be 0"
+msgstr "%s: 多事务ID(-m)不能为0\n"
+
+#: pg_resetwal.c:260
+#, fuzzy, c-format
+#| msgid "%s: oldest multitransaction ID (-m) must not be 0\n"
+msgid "oldest multitransaction ID (-m) must not be 0"
+msgstr "%s: 最早的多事务ID(-m)不能为0\n"
+
+#: pg_resetwal.c:275
+#, fuzzy, c-format
+#| msgid "%s: multitransaction offset (-O) must not be -1\n"
+msgid "multitransaction offset (-O) must not be -1"
+msgstr "%s: 多事务偏移量(-O)不能为-1\n"
+
+#: pg_resetwal.c:299
+#, fuzzy, c-format
+#| msgid "%s: argument of --wal-segsize must be a number\n"
+msgid "argument of --wal-segsize must be a number"
+msgstr "%s: --wal-segsize的参数必须是数字\n"
+
+#: pg_resetwal.c:304
+#, c-format
+msgid "argument of --wal-segsize must be a power of 2 between 1 and 1024"
+msgstr ""
 
-#: pg_resetxlog.c:283
-#, c-format
-msgid "%s: too many command-line arguments (first is \"%s\")\n"
+#: pg_resetwal.c:321
+#, fuzzy, c-format
+#| msgid "%s: too many command-line arguments (first is \"%s\")\n"
+msgid "too many command-line arguments (first is \"%s\")"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_resetxlog.c:292
-#, c-format
-msgid "%s: no data directory specified\n"
+#: pg_resetwal.c:330
+#, fuzzy, c-format
+#| msgid "%s: no data directory specified\n"
+msgid "no data directory specified"
 msgstr "%s: 没有指定数据目录\n"
 
-#: pg_resetxlog.c:306
-#, c-format
-msgid "%s: cannot be executed by \"root\"\n"
-msgstr "%s:不能由\"root\"执行\n"
+#: pg_resetwal.c:344
+#, fuzzy, c-format
+#| msgid "%s: cannot be executed by \"root\"\n"
+msgid "cannot be executed by \"root\""
+msgstr "%s: 不能由\"root\"执行\n"
 
-#: pg_resetxlog.c:308
-#, c-format
-msgid "You must run %s as the PostgreSQL superuser.\n"
+#: pg_resetwal.c:345
+#, fuzzy, c-format
+#| msgid "You must run %s as the PostgreSQL superuser.\n"
+msgid "You must run %s as the PostgreSQL superuser."
 msgstr "您现在作为PostgreSQL超级用户运行%s.\n"
 
-# command.c:256
-#: pg_resetxlog.c:318
+#: pg_resetwal.c:356
 #, c-format
-msgid "%s: could not change directory to \"%s\": %s\n"
-msgstr "%s: 无法切换目录至 \"%s\": %s\n"
+msgid "could not read permissions of directory \"%s\": %m"
+msgstr "没有读取目录 \"%s\" 的权限: %m"
 
-#: pg_resetxlog.c:331 pg_resetxlog.c:477
+#: pg_resetwal.c:365
 #, c-format
-msgid "%s: could not open file \"%s\" for reading: %s\n"
-msgstr "%s: 无法打开文件 \"%s\" 读取信息: %s\n"
+msgid "could not change directory to \"%s\": %m"
+msgstr "无法跳转到目录 \"%s\" 中: %m"
 
-#: pg_resetxlog.c:338
+#: pg_resetwal.c:381 pg_resetwal.c:545 pg_resetwal.c:602
 #, c-format
-msgid ""
-"%s: lock file \"%s\" exists\n"
-"Is a server running?  If not, delete the lock file and try again.\n"
+msgid "could not open file \"%s\" for reading: %m"
+msgstr "为了读取, 无法打开文件 \"%s\": %m"
+
+#: pg_resetwal.c:388
+#, c-format
+msgid "lock file \"%s\" exists"
 msgstr ""
-"%s: 锁文件 \"%s\" 已经存在\n"
-"是否有一个服务正在运行? 如果没有, 删除那个锁文件然后再试一次.\n"
 
-#: pg_resetxlog.c:425
+#: pg_resetwal.c:389
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: lock file \"%s\" exists\n"
+#| "Is a server running?  If not, delete the lock file and try again.\n"
+msgid "Is a server running?  If not, delete the lock file and try again."
+msgstr ""
+"%s: 锁文件\"%s\"存在\n"
+"服务器是否正在运行?如果没有,请删除锁文件并重试.\n"
+
+#: pg_resetwal.c:492
 #, c-format
 msgid ""
 "\n"
@@ -150,49 +204,85 @@ msgstr ""
 "\n"
 "如果这些值可接受, 用 -f 强制重置.\n"
 
-#: pg_resetxlog.c:437
+#: pg_resetwal.c:504
 #, c-format
 msgid ""
 "The database server was not shut down cleanly.\n"
-"Resetting the transaction log might cause data to be lost.\n"
+"Resetting the write-ahead log might cause data to be lost.\n"
 "If you want to proceed anyway, use -f to force reset.\n"
 msgstr ""
-"æ\95°æ\8d®åº\93æ\9c\8då\8a¡å\99¨æ²¡æ\9c\89å½»åº\95å\85³é\97­.\n"
-"重置事务日志有可能会引起丢失数据.\n"
-"å¦\82æ\9e\9cä½ ä»\8dæ\83³ç»§ç»­, ç\94¨ -f 强制重置.\n"
+"æ\95°æ\8d®åº\93æ\9c\8då\8a¡å\99¨æ\9cªå®\8cå\85¨å\85³é\97­ .\n"
+"重置预写日志可能会导致数据丢失.\n"
+"å¦\82æ\9e\9cä»\8dè¦\81ç»§ç»­ï¼\8c请使ç\94¨-f强制重置.\n"
 
-#: pg_resetxlog.c:451
+#: pg_resetwal.c:518
 #, c-format
-msgid "Transaction log reset\n"
-msgstr "事务日志重置\n"
+msgid "Write-ahead log reset\n"
+msgstr "重置预写日志\n"
+
+#: pg_resetwal.c:554
+#, fuzzy, c-format
+#| msgid "%s: unexpected empty file \"%s\"\n"
+msgid "unexpected empty file \"%s\""
+msgstr "%s: 意外的空文件\"%s\"\n"
 
-#: pg_resetxlog.c:480
+#: pg_resetwal.c:556 pg_resetwal.c:618
 #, c-format
+msgid "could not read file \"%s\": %m"
+msgstr "无法读取文件 \"%s\": %m"
+
+#: pg_resetwal.c:571
+#, c-format
+msgid "data directory is of wrong version"
+msgstr ""
+
+#: pg_resetwal.c:572
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: data directory is of wrong version\n"
+#| "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\".\n"
+msgid "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\"."
+msgstr ""
+"%s: 数据目录版本错误\n"
+"文件\"%s\"包含\"%s\",与此程序的版本\"%s\"不兼容.\n"
+
+#: pg_resetwal.c:605
+#, fuzzy, c-format
+#| msgid ""
+#| "If you are sure the data directory path is correct, execute\n"
+#| "  touch %s\n"
+#| "and try again.\n"
 msgid ""
 "If you are sure the data directory path is correct, execute\n"
 "  touch %s\n"
-"and try again.\n"
+"and try again."
 msgstr ""
-"如果你确定数据目录路径是正确的, 运行\n"
+"如果确定数据目录路径正确,请执行\n"
 "  touch %s\n"
-"然后再试一次.\n"
-
-#: pg_resetxlog.c:493
-#, c-format
-msgid "%s: could not read file \"%s\": %s\n"
-msgstr "%s: 无法读取文件 \"%s\": %s\n"
-
-#: pg_resetxlog.c:516
-#, c-format
-msgid "%s: pg_control exists but has invalid CRC; proceed with caution\n"
-msgstr "%s: pg_control 已经存在, 但有无效的CRC; 带有警告的继续运行\n"
-
-#: pg_resetxlog.c:525
-#, c-format
-msgid "%s: pg_control exists but is broken or unknown version; ignoring it\n"
-msgstr "%s: pg_control 已经存在, 但已破坏或无效版本; 忽略它\n"
-
-#: pg_resetxlog.c:628
+"请再试一次.\n"
+
+#: pg_resetwal.c:636
+#, fuzzy, c-format
+#| msgid "%s: pg_control exists but has invalid CRC; proceed with caution\n"
+msgid "pg_control exists but has invalid CRC; proceed with caution"
+msgstr "%s: pg_control存在,但具有无效的CRC;请小心继续\n"
+
+#: pg_resetwal.c:645
+#, fuzzy, c-format
+#| msgid "%s: pg_control specifies invalid WAL segment size (%d byte); proceed with caution\n"
+#| msgid_plural "%s: pg_control specifies invalid WAL segment size (%d bytes); proceed with caution\n"
+msgid "pg_control specifies invalid WAL segment size (%d byte); proceed with caution"
+msgid_plural "pg_control specifies invalid WAL segment size (%d bytes); proceed with caution"
+msgstr[0] "%s: pg_control指定的WAL段大小(%d 字节)无效; 请小心继续\n"
+msgstr[1] "%s: pg_control指定的WAL段大小(%d 字节)无效; 请小心继续\n"
+
+#: pg_resetwal.c:656
+#, fuzzy, c-format
+#| msgid "%s: pg_control exists but is broken or wrong version; ignoring it\n"
+msgid "pg_control exists but is broken or wrong version; ignoring it"
+msgstr "%s: pg_control存在,但已损坏或版本错误;忽略它\n"
+
+#: pg_resetwal.c:754
 #, c-format
 msgid ""
 "Guessed pg_control values:\n"
@@ -201,7 +291,7 @@ msgstr ""
 "猜测的 pg_control 值:\n"
 "\n"
 
-#: pg_resetxlog.c:630
+#: pg_resetwal.c:756
 #, c-format
 msgid ""
 "Current pg_control values:\n"
@@ -210,181 +300,174 @@ msgstr ""
 "当前的 pg_control 值:\n"
 "\n"
 
-#: pg_resetxlog.c:639
+#: pg_resetwal.c:765
 #, c-format
 msgid "pg_control version number:            %u\n"
 msgstr "pg_control 版本:                      %u\n"
 
-#: pg_resetxlog.c:641
+#: pg_resetwal.c:767
 #, c-format
 msgid "Catalog version number:               %u\n"
 msgstr "Catalog 版本:                         %u\n"
 
-#: pg_resetxlog.c:643
+#: pg_resetwal.c:769
 #, c-format
 msgid "Database system identifier:           %s\n"
 msgstr "数据库系统标识符:                     %s\n"
 
-#: pg_resetxlog.c:645
+#: pg_resetwal.c:771
 #, c-format
 msgid "Latest checkpoint's TimeLineID:       %u\n"
 msgstr "最新检查点的 TimeLineID:              %u\n"
 
-#: pg_resetxlog.c:647
+#: pg_resetwal.c:773
 #, c-format
 msgid "Latest checkpoint's full_page_writes: %s\n"
 msgstr "最新检查点的full_page_writes: %s\n"
 
 # help.c:48
-#: pg_resetxlog.c:648
+#: pg_resetwal.c:774
 msgid "off"
 msgstr "关闭"
 
 # help.c:48
-#: pg_resetxlog.c:648
+#: pg_resetwal.c:774
 msgid "on"
 msgstr "开启"
 
-#: pg_resetxlog.c:649
+#: pg_resetwal.c:775
 #, c-format
-#| 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
+#: pg_resetwal.c:778
 #, c-format
 msgid "Latest checkpoint's NextOID:          %u\n"
 msgstr "最新检查点的 NextOID:                 %u\n"
 
-#: pg_resetxlog.c:654
+#: pg_resetwal.c:780
 #, c-format
 msgid "Latest checkpoint's NextMultiXactId:  %u\n"
 msgstr "最新检查点的 NextMultiXactId:         %u\n"
 
-#: pg_resetxlog.c:656
+#: pg_resetwal.c:782
 #, c-format
 msgid "Latest checkpoint's NextMultiOffset:  %u\n"
 msgstr "最新检查点的 NextMultiOffset:          %u\n"
 
-#: pg_resetxlog.c:658
+#: pg_resetwal.c:784
 #, c-format
 msgid "Latest checkpoint's oldestXID:        %u\n"
 msgstr "最新检查点的oldestXID:             %u\n"
 
-#: pg_resetxlog.c:660
+#: pg_resetwal.c:786
 #, c-format
 msgid "Latest checkpoint's oldestXID's DB:   %u\n"
 msgstr "最新检查点的oldestXID所在的数据库: %u\n"
 
-#: pg_resetxlog.c:662
+#: pg_resetwal.c:788
 #, c-format
 msgid "Latest checkpoint's oldestActiveXID:  %u\n"
 msgstr "最新检查点的oldestActiveXID:      %u\n"
 
-#: pg_resetxlog.c:664
+#: pg_resetwal.c:790
 #, c-format
 msgid "Latest checkpoint's oldestMultiXid:   %u\n"
 msgstr "最新检查点的oldestMultiXid:   %u\n"
 
-#: pg_resetxlog.c:666
+#: pg_resetwal.c:792
 #, c-format
 msgid "Latest checkpoint's oldestMulti's DB: %u\n"
 msgstr "最新检查点的oldestMulti所在的数据库: %u\n"
 
-#: pg_resetxlog.c:668
+#: pg_resetwal.c:794
 #, c-format
-#| msgid "Latest checkpoint's oldestCommitTs:   %u\n"
 msgid "Latest checkpoint's oldestCommitTsXid:%u\n"
 msgstr "最新检查点的oldestCommitTsXid:%u\n"
 
-#: pg_resetxlog.c:670
+#: pg_resetwal.c:796
 #, c-format
-#| msgid "Latest checkpoint's newestCommitTs:   %u\n"
 msgid "Latest checkpoint's newestCommitTsXid:%u\n"
 msgstr "最新检查点的newestCommitTsXid:%u\n"
 
-#: pg_resetxlog.c:672
+#: pg_resetwal.c:798
 #, c-format
 msgid "Maximum data alignment:               %u\n"
 msgstr "最大的数据校准:                     %u\n"
 
-#: pg_resetxlog.c:675
+#: pg_resetwal.c:801
 #, c-format
 msgid "Database block size:                  %u\n"
 msgstr "数据库块大小:                         %u\n"
 
-#: pg_resetxlog.c:677
+#: pg_resetwal.c:803
 #, c-format
 msgid "Blocks per segment of large relation: %u\n"
 msgstr "大关系的每段块数:                     %u\n"
 
-#: pg_resetxlog.c:679
+#: pg_resetwal.c:805
 #, c-format
 msgid "WAL block size:                       %u\n"
 msgstr "WAL块大小:                         %u\n"
 
-#: pg_resetxlog.c:681
+#: pg_resetwal.c:807 pg_resetwal.c:895
 #, c-format
 msgid "Bytes per WAL segment:                %u\n"
 msgstr "每一个 WAL 段字节数:                  %u\n"
 
-#: pg_resetxlog.c:683
+#: pg_resetwal.c:809
 #, c-format
 msgid "Maximum length of identifiers:        %u\n"
 msgstr "标示符的最大长度:                     %u\n"
 
-#: pg_resetxlog.c:685
+#: pg_resetwal.c:811
 #, c-format
 msgid "Maximum columns in an index:          %u\n"
 msgstr "在索引中最多可用的列数:                   %u\n"
 
-#: pg_resetxlog.c:687
+#: pg_resetwal.c:813
 #, c-format
 msgid "Maximum size of a TOAST chunk:        %u\n"
 msgstr "一个TOAST区块的最大空间:                   %u\n"
 
-#: pg_resetxlog.c:689
+#: pg_resetwal.c:815
 #, c-format
 msgid "Size of a large-object chunk:         %u\n"
 msgstr "一个大对象区块的大小:     %u\n"
 
-#: pg_resetxlog.c:691
+#: pg_resetwal.c:818
 #, c-format
 msgid "Date/time type storage:               %s\n"
 msgstr "日期/时间类型存储:                    %s\n"
 
-#: pg_resetxlog.c:692
+#: pg_resetwal.c:819
 msgid "64-bit integers"
 msgstr "64位整型"
 
-#: pg_resetxlog.c:692
-msgid "floating-point numbers"
-msgstr "浮点数"
-
-#: pg_resetxlog.c:693
+#: pg_resetwal.c:820
 #, c-format
 msgid "Float4 argument passing:              %s\n"
 msgstr "正在传递Float4类型的参数:                    %s\n"
 
-#: pg_resetxlog.c:694 pg_resetxlog.c:696
+#: pg_resetwal.c:821 pg_resetwal.c:823
 msgid "by reference"
 msgstr "由引用"
 
-#: pg_resetxlog.c:694 pg_resetxlog.c:696
+#: pg_resetwal.c:821 pg_resetwal.c:823
 msgid "by value"
 msgstr "由值"
 
-#: pg_resetxlog.c:695
+#: pg_resetwal.c:822
 #, c-format
 msgid "Float8 argument passing:              %s\n"
 msgstr "正在传递Float8类型的参数:                    %s\n"
 
-#: pg_resetxlog.c:697
+#: pg_resetwal.c:824
 #, c-format
 msgid "Data page checksum version:           %u\n"
 msgstr "数据页检验和版本:        %u\n"
 
-#: pg_resetxlog.c:711
+#: pg_resetwal.c:838
 #, c-format
 msgid ""
 "\n"
@@ -397,130 +480,112 @@ msgstr ""
 "将被改变的值:\n"
 "\n"
 
-#: pg_resetxlog.c:714
+#: pg_resetwal.c:842
 #, c-format
 msgid "First log segment after reset:        %s\n"
 msgstr "重置后的第一个日志段:        %s\n"
 
-#: pg_resetxlog.c:718
+#: pg_resetwal.c:846
 #, c-format
 msgid "NextMultiXactId:                      %u\n"
 msgstr "下一个MultiXactId值NextMultiXactId:         %u\n"
 
-#: pg_resetxlog.c:720
+#: pg_resetwal.c:848
 #, c-format
 msgid "OldestMultiXid:                       %u\n"
 msgstr "最老的MultiXid值OldestMultiXid:          %u\n"
 
-#: pg_resetxlog.c:722
+#: pg_resetwal.c:850
 #, c-format
 msgid "OldestMulti's DB:                     %u\n"
 msgstr "最老的MultiXid对应的DB:     %u\n"
 
-#: pg_resetxlog.c:728
+#: pg_resetwal.c:856
 #, c-format
 msgid "NextMultiOffset:                      %u\n"
 msgstr "下一个偏移NextMultiOffset:           %u\n"
 
-#: pg_resetxlog.c:734
+#: pg_resetwal.c:862
 #, c-format
 msgid "NextOID:                              %u\n"
 msgstr "NextOID:                             %u\n"
 
-#: pg_resetxlog.c:740
+#: pg_resetwal.c:868
 #, c-format
 msgid "NextXID:                              %u\n"
 msgstr "NextXID:                              %u\n"
 
-#: pg_resetxlog.c:742
+#: pg_resetwal.c:870
 #, c-format
 msgid "OldestXID:                            %u\n"
 msgstr "OldestXID:                            %u\n"
 
-#: pg_resetxlog.c:744
+#: pg_resetwal.c:872
 #, c-format
 msgid "OldestXID's DB:                       %u\n"
 msgstr "OldestXID's DB:                       %u\n"
 
-#: pg_resetxlog.c:750
+#: pg_resetwal.c:878
 #, c-format
 msgid "NextXID epoch:                        %u\n"
 msgstr "NextXID 末端:                        %u\n"
 
-#: pg_resetxlog.c:756
+#: pg_resetwal.c:884
 #, c-format
-#| msgid "oldestCommitTs:                       %u\n"
 msgid "oldestCommitTsXid:                    %u\n"
 msgstr "oldestCommitTsXid:          %u\n"
 
-#: pg_resetxlog.c:761
+#: pg_resetwal.c:889
 #, c-format
-#| msgid "newestCommitTs:                       %u\n"
 msgid "newestCommitTsXid:                    %u\n"
 msgstr "newestCommitTsXid:          %u\n"
 
-#: pg_resetxlog.c:827
-#, c-format
-msgid ""
-"%s: internal error -- sizeof(ControlFileData) is too large ... fix "
-"PG_CONTROL_SIZE\n"
-msgstr "%s: 内部错误 -- sizeof(ControlFileData) 太大 ... 修复 xlog.c\n"
-
-#: pg_resetxlog.c:842
+#: pg_resetwal.c:975 pg_resetwal.c:1043 pg_resetwal.c:1090
 #, c-format
-msgid "%s: could not create pg_control file: %s\n"
-msgstr "%s: 无法创建 pg_control 文件: %s\n"
+msgid "could not open directory \"%s\": %m"
+msgstr "无法打开目录 \"%s\": %m"
 
-#: pg_resetxlog.c:853
+#: pg_resetwal.c:1010 pg_resetwal.c:1063 pg_resetwal.c:1113
 #, c-format
-msgid "%s: could not write pg_control file: %s\n"
-msgstr "%s: 无法写 pg_control 文件: %s\n"
+msgid "could not read directory \"%s\": %m"
+msgstr "无法读取目录 \"%s\": %m"
 
-#: pg_resetxlog.c:860 pg_resetxlog.c:1156
-#, c-format
-msgid "%s: fsync error: %s\n"
-msgstr "%s: fsync 错误: %s\n"
+#: pg_resetwal.c:1016 pg_resetwal.c:1069 pg_resetwal.c:1119
+#, fuzzy, c-format
+#| msgid "could not open directory \"%s\": %m"
+msgid "could not close directory \"%s\": %m"
+msgstr "无法打开目录 \"%s\": %m"
 
-#: pg_resetxlog.c:900 pg_resetxlog.c:971 pg_resetxlog.c:1022
-#, c-format
-msgid "%s: could not open directory \"%s\": %s\n"
-msgstr "%s: 无法打开目录 \"%s\": %s\n"
+#: pg_resetwal.c:1055 pg_resetwal.c:1105
+#, fuzzy, c-format
+#| msgid "%s: could not delete file \"%s\": %s\n"
+msgid "could not delete file \"%s\": %m"
+msgstr "%s: 无法删除文件\"%s\": %s\n"
 
-#: pg_resetxlog.c:936 pg_resetxlog.c:993 pg_resetxlog.c:1047
+#: pg_resetwal.c:1186
 #, c-format
-msgid "%s: could not read directory \"%s\": %s\n"
-msgstr "%s: 无法读取目录 \"%s\": %s\n"
+msgid "could not open file \"%s\": %m"
+msgstr "无法打开文件 \"%s\": %m"
 
-#: pg_resetxlog.c:943 pg_resetxlog.c:1000 pg_resetxlog.c:1054
+#: pg_resetwal.c:1196 pg_resetwal.c:1209
 #, c-format
-msgid "%s: could not close directory \"%s\": %s\n"
-msgstr "%s: 无法关闭目录 \"%s\": %s\n"
+msgid "could not write file \"%s\": %m"
+msgstr "无法写入文件 \"%s\": %m"
 
-#: pg_resetxlog.c:984 pg_resetxlog.c:1038
-#, c-format
-msgid "%s: could not delete file \"%s\": %s\n"
-msgstr "%s: 无法删除文件 \"%s\": %s\n"
-
-#: pg_resetxlog.c:1123
-#, c-format
-msgid "%s: could not open file \"%s\": %s\n"
-msgstr "%s: 无法打开文件 \"%s\": %s\n"
-
-#: pg_resetxlog.c:1134 pg_resetxlog.c:1148
-#, c-format
-msgid "%s: could not write file \"%s\": %s\n"
-msgstr "%s: 无法写文件 \"%s\": %s\n"
+#: pg_resetwal.c:1216
+#, fuzzy, c-format
+#| msgid "%s: fsync error: %s\n"
+msgid "fsync error: %m"
+msgstr "%s: fsync 错误: %s\n"
 
-#: pg_resetxlog.c:1167
+#: pg_resetwal.c:1227
 #, c-format
 msgid ""
-"%s resets the PostgreSQL transaction log.\n"
-"\n"
-msgstr ""
-"%s 重置 PostgreSQL 事务日志.\n"
+"%s resets the PostgreSQL write-ahead log.\n"
 "\n"
+msgstr "%s 重置一个PostgreSQL数据库集簇的预写式日志.\n"
 
-#: pg_resetxlog.c:1168
+#: pg_resetwal.c:1228
 #, c-format
 msgid ""
 "Usage:\n"
@@ -531,131 +596,90 @@ msgstr ""
 "  %s [选项]... 数据目录\n"
 "\n"
 
-#: pg_resetxlog.c:1169
+#: pg_resetwal.c:1229
 #, c-format
 msgid "Options:\n"
 msgstr "选项:\n"
 
-#: pg_resetxlog.c:1170
+#: pg_resetwal.c:1230
 #, c-format
 msgid ""
-"  -c XID,XID       set oldest and newest transactions bearing commit "
-"timestamp\n"
-msgstr "  -c XID,XID       设置承受提交时间戳的最旧和最新事务\n"
+"  -c, --commit-timestamp-ids=XID,XID\n"
+"                                 set oldest and newest transactions bearing\n"
+"                                 commit timestamp (zero means no change)\n"
+msgstr ""
+"  -c, --commit-timestamp-ids=XID,XID\n"
+"                                 设置提交时间可以检索到的最老的和最新的事务ID\n"
+"                                 (0意味着没有变化)\n"
 
-#: pg_resetxlog.c:1171
+#: pg_resetwal.c:1233
 #, c-format
-msgid "                   (zero in either value means no change)\n"
-msgstr "                   (任一值中的零表示没有改变)\n"
+msgid " [-D, --pgdata=]DATADIR          data directory\n"
+msgstr " [-D, --pgdata=]DATADIR          数据目录\n"
 
-#: pg_resetxlog.c:1172
+#: pg_resetwal.c:1234
 #, c-format
-msgid " [-D] DATADIR      data directory\n"
-msgstr " [-D] DATADIR      数据目录\n"
+msgid "  -e, --epoch=XIDEPOCH           set next transaction ID epoch\n"
+msgstr "  -e, --epoch=XIDEPOCH           设置下一个事务ID的epoch\n"
 
-#: pg_resetxlog.c:1173
+#: pg_resetwal.c:1235
 #, c-format
-msgid "  -e XIDEPOCH      set next transaction ID epoch\n"
-msgstr "  -e XIDEPOCH      设置下一个事务ID时间单元(epoch)\n"
+msgid "  -f, --force                    force update to be done\n"
+msgstr "  -f, --force                    强制更新完成\n"
 
-#: pg_resetxlog.c:1174
+#: pg_resetwal.c:1236
 #, c-format
-msgid "  -f               force update to be done\n"
-msgstr "  -f               强制更新\n"
+msgid "  -l, --next-wal-file=WALFILE    set minimum starting location for new WAL\n"
+msgstr "  -l, --next-wal-file=WALFILE    设置新的WAL最小起始位置\n"
 
-#: pg_resetxlog.c:1175
+#: pg_resetwal.c:1237
 #, c-format
-msgid ""
-"  -l XLOGFILE      force minimum WAL starting location for new transaction "
-"log\n"
-msgstr "  -l XLOGFILE      为新的事务日志强制使用最小WAL日志起始位置\n"
+msgid "  -m, --multixact-ids=MXID,MXID  set next and oldest multitransaction ID\n"
+msgstr "  -m, --multixact-ids=MXID,MXID  设置下一个和最旧的多事务ID\n"
 
-#: pg_resetxlog.c:1176
+#: pg_resetwal.c:1238
 #, c-format
-msgid "  -m MXID,MXID     set next and oldest multitransaction ID\n"
-msgstr "  -m MXID,MXID     设置下一个事务和最老的事务ID\n"
+msgid "  -n, --dry-run                  no update, just show what would be done\n"
+msgstr "  -n, --dry-run                  不更新,只显示将要执行的操作\n"
 
-#: pg_resetxlog.c:1177
+#: pg_resetwal.c:1239
 #, c-format
-msgid ""
-"  -n               no update, just show what would be done (for testing)\n"
-msgstr "  -n               未更新, 只显示将要做什么 (测试用途)\n"
+msgid "  -o, --next-oid=OID             set next OID\n"
+msgstr "  -o, --next-oid=OID             设置下一个OID\n"
 
-#: pg_resetxlog.c:1178
+#: pg_resetwal.c:1240
 #, c-format
-msgid "  -o OID           set next OID\n"
-msgstr "  -o OID           设置下一个 OID\n"
+msgid "  -O, --multixact-offset=OFFSET  set next multitransaction offset\n"
+msgstr "  -O, --multixact-offset=OFFSET  设置下一个多事务偏移量\n"
 
-#: pg_resetxlog.c:1179
+#: pg_resetwal.c:1241
 #, c-format
-msgid "  -O OFFSET        set next multitransaction offset\n"
-msgstr "  -O OFFSET        设置下一个多事务(multitransaction)偏移\n"
+msgid "  -V, --version                  output version information, then exit\n"
+msgstr "  -V, --version                  输出版本信息,然后退出\n"
 
-#: pg_resetxlog.c:1180
+#: pg_resetwal.c:1242
 #, c-format
-msgid "  -V, --version    output version information, then exit\n"
-msgstr "  -V, --version    输出版本信息,然后退出\n"
+msgid "  -x, --next-transaction-id=XID  set next transaction ID\n"
+msgstr "  -x, --next-transaction-id=XID  设置下一个事务ID\n"
 
-#: pg_resetxlog.c:1181
+#: pg_resetwal.c:1243
 #, c-format
-msgid "  -x XID           set next transaction ID\n"
-msgstr "  -x XID           设置下一个事务 ID\n"
+msgid "      --wal-segsize=SIZE         size of WAL segments, in megabytes\n"
+msgstr "      --wal-segsize=SIZE         WAL段的大小(兆字节)\n"
 
-#: pg_resetxlog.c:1182
+#: pg_resetwal.c:1244
 #, c-format
-msgid "  -?, --help       show this help, then exit\n"
-msgstr "  -?, --help       显示帮助信息,然后退出\n"
+msgid "  -?, --help                     show this help, then exit\n"
+msgstr "  -?, --help                     显示本帮助,然后退出\n"
 
-#: pg_resetxlog.c:1183
-#, c-format
+#: pg_resetwal.c:1245
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgid ""
 "\n"
-"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+"Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgstr ""
 "\n"
-"报告错误至 <pgsql-bugs@postgresql.org>.\n"
-
-#~ msgid "%s: invalid argument for option -x\n"
-#~ msgstr "%s: 为 -x 选项的无效参数\n"
-
-#~ msgid "%s: invalid argument for option -o\n"
-#~ msgstr "%s: 为 -o 选项的无效参数\n"
-
-#~ msgid "%s: invalid argument for option -m\n"
-#~ msgstr "%s: 对于选项-m 参数无效\n"
-
-#~ msgid "%s: invalid argument for option -O\n"
-#~ msgstr "%s: 对于选项-O 参数无效\n"
-
-#~ msgid "%s: invalid argument for option -l\n"
-#~ msgstr "%s: 为 -l 选项的无效参数\n"
-
-#~ msgid "First log file ID after reset:        %u\n"
-#~ msgstr "重置后的第一个日志文件ID:               %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 "Latest checkpoint's StartUpID:        %u\n"
-#~ msgstr "最新检查点的 StartUpID:               %u\n"
-
-#~ msgid "Maximum number of function arguments: %u\n"
-#~ msgstr "函数参数的最大个数:                   %u\n"
-
-#~ msgid "%s: invalid LC_CTYPE setting\n"
-#~ msgstr "%s: 无效的 LC_CTYPE 设置\n"
-
-#~ msgid "%s: invalid LC_COLLATE setting\n"
-#~ msgstr "%s: 无效的 LC_COLLATE 设置\n"
-
-#~ msgid "  --version       output version information, then exit\n"
-#~ msgstr "  --version         输出版本信息, 然后退出\n"
-
-#~ msgid "  --help          show this help, then exit\n"
-#~ msgstr "  --help            显示此帮助信息, 然后退出\n"
-
-#~ msgid "%s: could not read from directory \"%s\": %s\n"
-#~ msgstr "%s: 无法从目录 \"%s\" 中读取: %s\n"
+"报告错误至 <pgql-bugs@postgresql.org>.\n"
index 0a60698417ac2b11954985d69cf883898c208bff..415c076050c34489f79ba17731931735405e05ba 100644 (file)
@@ -6,9 +6,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: pg_rewind (PostgreSQL) 9.5\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2016-04-18 04:45+0000\n"
-"PO-Revision-Date: 2016-05-19 20:41+0800\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:15+0000\n"
+"PO-Revision-Date: 2019-06-04 17:26-0400\n"
 "Last-Translator: Yuwei Peng <ywpeng@whu.edu.cn>\n"
 "Language-Team: Chinese (Simplified) <ywpeng@whu.edu.cn>\n"
 "Language: zh_CN\n"
@@ -16,10 +16,25 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.7\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../../../src/common/logging.c:188
+#, c-format
+msgid "fatal: "
+msgstr ""
+
+#: ../../../src/common/logging.c:195
+#, c-format
+msgid "error: "
+msgstr ""
+
+#: ../../../src/common/logging.c:202
+#, c-format
+msgid "warning: "
+msgstr ""
 
 #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75
-#: ../../common/fe_memutils.c:98 parsexlog.c:74 parsexlog.c:127
-#: parsexlog.c:179
+#: ../../common/fe_memutils.c:98
 #, c-format
 msgid "out of memory\n"
 msgstr "内存溢出\n"
@@ -30,406 +45,418 @@ msgstr "内存溢出\n"
 msgid "cannot duplicate null pointer (internal error)\n"
 msgstr "无法复制空指针 (内部错误)\n"
 
-#: ../../common/restricted_token.c:68
-#, c-format
-msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
+#: ../../common/restricted_token.c:69
+#, fuzzy, c-format
+#| msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
+msgid "cannot create restricted tokens on this platform"
 msgstr "%s: WARNING: 无法为该平台创建受限制的令牌\n"
 
-#: ../../common/restricted_token.c:77
-#, c-format
-msgid "%s: could not open process token: error code %lu\n"
+#: ../../common/restricted_token.c:78
+#, fuzzy, c-format
+#| msgid "%s: could not open process token: error code %lu\n"
+msgid "could not open process token: error code %lu"
 msgstr "%s:无法打开进程令牌 (token): 错误码 %lu\n"
 
-#: ../../common/restricted_token.c:90
-#, c-format
-msgid "%s: could not allocate SIDs: error code %lu\n"
+#: ../../common/restricted_token.c:91
+#, fuzzy, c-format
+#| msgid "%s: could not allocate SIDs: error code %lu\n"
+msgid "could not allocate SIDs: error code %lu"
 msgstr "%s: 无法分配SID: 错误码 %lu\n"
 
 #: ../../common/restricted_token.c:110
-#, c-format
-msgid "%s: could not create restricted token: error code %lu\n"
+#, fuzzy, c-format
+#| msgid "%s: could not create restricted token: error code %lu\n"
+msgid "could not create restricted token: error code %lu"
 msgstr "%s: 无法创建受限令牌: 错误码为 %lu\n"
 
-#: ../../common/restricted_token.c:132
-#, c-format
-msgid "%s: could not start process for command \"%s\": error code %lu\n"
+#: ../../common/restricted_token.c:131
+#, fuzzy, c-format
+#| msgid "%s: could not start process for command \"%s\": error code %lu\n"
+msgid "could not start process for command \"%s\": error code %lu"
 msgstr "%s: 无法为命令 \"%s\"创建进程: 错误码 %lu\n"
 
-#: ../../common/restricted_token.c:170
-#, c-format
-msgid "%s: could not re-execute with restricted token: error code %lu\n"
+#: ../../common/restricted_token.c:169
+#, fuzzy, c-format
+#| msgid "%s: could not re-execute with restricted token: error code %lu\n"
+msgid "could not re-execute with restricted token: error code %lu"
 msgstr "%s: 无法使用受限令牌再次执行: 错误码 %lu\n"
 
-#: ../../common/restricted_token.c:186
-#, c-format
-msgid "%s: could not get exit code from subprocess: error code %lu\n"
+#: ../../common/restricted_token.c:185
+#, fuzzy, c-format
+#| msgid "%s: could not get exit code from subprocess: error code %lu\n"
+msgid "could not get exit code from subprocess: error code %lu"
 msgstr "%s: 无法从子进程得到退出码: 错误码 %lu\n"
 
-#: copy_fetch.c:64
+#: copy_fetch.c:59
 #, c-format
-msgid "could not open directory \"%s\": %s\n"
-msgstr "无法打开目录 \"%s\": %s\n"
+msgid "could not open directory \"%s\": %m"
+msgstr "无法打开目录 \"%s\": %m"
 
-#: copy_fetch.c:93 filemap.c:112 filemap.c:267
+#: copy_fetch.c:88 filemap.c:187 filemap.c:348
 #, c-format
-msgid "could not stat file \"%s\": %s\n"
-msgstr "无法获取文件 \"%s\":%s 的状态\n"
+msgid "could not stat file \"%s\": %m"
+msgstr "无法取文件 \"%s\" 的状态: %m"
 
-#: copy_fetch.c:122
+#: copy_fetch.c:117
 #, c-format
-msgid "could not read symbolic link \"%s\": %s\n"
-msgstr "无法读取符号链接\"%s\": %s\n"
+msgid "could not read symbolic link \"%s\": %m"
+msgstr "无法读取符号链接 \"%s\": %m"
 
-#: copy_fetch.c:125
+#: copy_fetch.c:120
 #, c-format
-msgid "symbolic link \"%s\" target is too long\n"
-msgstr "符号链接\"%s\"的目标过长\n"
+msgid "symbolic link \"%s\" target is too long"
+msgstr "符号链接 \"%s\" 目标超长"
 
-#: copy_fetch.c:140
-#, c-format
-msgid ""
-"\"%s\" is a symbolic link, but symbolic links are not supported on this "
-"platform\n"
+#: copy_fetch.c:135
+#, fuzzy, c-format
+#| msgid "\"%s\" is a symbolic link, but symbolic links are not supported on this platform\n"
+msgid "\"%s\" is a symbolic link, but symbolic links are not supported on this platform"
 msgstr "\"%s\"是一个符号链接,但是这个平台上不支持平台链接\n"
 
-#: copy_fetch.c:147
+#: copy_fetch.c:142
 #, c-format
-msgid "could not read directory \"%s\": %s\n"
-msgstr "无法读取目录 \"%s\": %s\n"
+msgid "could not read directory \"%s\": %m"
+msgstr "无法读取目录 \"%s\": %m"
 
-#: copy_fetch.c:151
-#, c-format
-msgid "could not close directory \"%s\": %s\n"
+#: copy_fetch.c:146
+#, fuzzy, c-format
+#| msgid "could not close directory \"%s\": %s\n"
+msgid "could not close directory \"%s\": %m"
 msgstr "无法关闭目录 \"%s\": %s\n"
 
-#: copy_fetch.c:171
-#, c-format
-msgid "could not open source file \"%s\": %s\n"
+#: copy_fetch.c:166
+#, fuzzy, c-format
+#| msgid "could not open source file \"%s\": %s\n"
+msgid "could not open source file \"%s\": %m"
 msgstr "无法打开源文件\"%s\": %s\n"
 
-#: copy_fetch.c:175
-#, c-format
-msgid "could not seek in source file: %s\n"
+#: copy_fetch.c:170
+#, fuzzy, c-format
+#| msgid "could not seek in source file: %s\n"
+msgid "could not seek in source file: %m"
 msgstr "无法在源文件中定位(seek):%s\n"
 
-#: copy_fetch.c:192 file_ops.c:300
+#: copy_fetch.c:187 file_ops.c:311 parsexlog.c:315
 #, c-format
-msgid "could not read file \"%s\": %s\n"
-msgstr "无法读取文件\"%s\": %s\n"
+msgid "could not read file \"%s\": %m"
+msgstr "无法读取文件 \"%s\": %m"
 
-#: copy_fetch.c:195
-#, c-format
-msgid "unexpected EOF while reading file \"%s\"\n"
+#: copy_fetch.c:190
+#, fuzzy, c-format
+#| msgid "unexpected EOF while reading file \"%s\"\n"
+msgid "unexpected EOF while reading file \"%s\""
 msgstr "读取文件\"%s\"时遇到意料之外的EOF\n"
 
-#: copy_fetch.c:202
+#: copy_fetch.c:197
 #, c-format
-msgid "could not close file \"%s\": %s\n"
-msgstr "无法关闭文件\"%s\": %s\n"
+msgid "could not close file \"%s\": %m"
+msgstr "无法关闭文件 \"%s\": %m"
 
-#: 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"
+#: file_ops.c:62
+#, fuzzy, c-format
+#| msgid "could not open target file \"%s\": %s\n"
+msgid "could not open target file \"%s\": %m"
 msgstr "无法打开目标文件\"%s\": %s\n"
 
-#: file_ops.c:78
-#, c-format
-msgid "could not close target file \"%s\": %s\n"
+#: file_ops.c:76
+#, fuzzy, c-format
+#| msgid "could not close target file \"%s\": %s\n"
+msgid "could not close target file \"%s\": %m"
 msgstr "无法关闭目标文件\"%s\": %s\n"
 
-#: file_ops.c:98
-#, c-format
-msgid "could not seek in target file \"%s\": %s\n"
+#: file_ops.c:96
+#, fuzzy, c-format
+#| msgid "could not seek in target file \"%s\": %s\n"
+msgid "could not seek in target file \"%s\": %m"
 msgstr "无法在目标文件\"%s\"中定位(seek): %s\n"
 
-#: file_ops.c:114
+#: file_ops.c:112
 #, c-format
-msgid "could not write file \"%s\": %s\n"
-msgstr "无法写文件\"%s\": %s\n"
+msgid "could not write file \"%s\": %m"
+msgstr "无法写入文件 \"%s\": %m"
 
-#: file_ops.c:164
-#, c-format
-msgid "invalid action (CREATE) for regular file\n"
+#: file_ops.c:162
+#, fuzzy, c-format
+#| msgid "invalid action (CREATE) for regular file\n"
+msgid "invalid action (CREATE) for regular file"
 msgstr "对常规文件无效的动作(CREATE)\n"
 
-#: file_ops.c:179
+#: file_ops.c:185
 #, c-format
-msgid "could not remove file \"%s\": %s\n"
-msgstr "无法删除文件 \"%s\": %s\n"
+msgid "could not remove file \"%s\": %m"
+msgstr "无法删除文件 \"%s\": %m"
 
-#: file_ops.c:196
-#, c-format
-msgid "could not open file \"%s\" for truncation: %s\n"
+#: file_ops.c:203
+#, fuzzy, c-format
+#| msgid "could not open file \"%s\" for truncation: %s\n"
+msgid "could not open file \"%s\" for truncation: %m"
 msgstr "无法打开文件\"%s\"用于截断:%s\n"
 
-#: file_ops.c:200
+#: file_ops.c:207
 #, c-format
-msgid "could not truncate file \"%s\" to %u: %s\n"
-msgstr "无法截断文件\"%s\"到%u: %s\n"
+msgid "could not truncate file \"%s\" to %u: %m"
+msgstr "无法将文件\"%s\"截断为%u:%m"
 
-#: file_ops.c:216
+#: file_ops.c:223
 #, c-format
-msgid "could not create directory \"%s\": %s\n"
-msgstr "无法创建目录 \"%s\": %s\n"
+msgid "could not create directory \"%s\": %m"
+msgstr "无法创建目录 \"%s\": %m"
 
-#: file_ops.c:230
+#: file_ops.c:237
 #, c-format
-msgid "could not remove directory \"%s\": %s\n"
-msgstr "无法移除目录\"%s\": %s\n"
+msgid "could not remove directory \"%s\": %m"
+msgstr "无法删除目录 \"%s\": %m"
 
-#: file_ops.c:244
-#, c-format
-msgid "could not create symbolic link at \"%s\": %s\n"
+#: file_ops.c:251
+#, fuzzy, c-format
+#| msgid "could not create symbolic link at \"%s\": %s\n"
+msgid "could not create symbolic link at \"%s\": %m"
 msgstr "无法在\"%s\"创建符号链接: %s\n"
 
-#: file_ops.c:258
+#: file_ops.c:265
 #, c-format
-msgid "could not remove symbolic link \"%s\": %s\n"
-msgstr "无法移除符号链接\"%s\": %s\n"
+msgid "could not remove symbolic link \"%s\": %m"
+msgstr "无法删除符号链接 \"%s\": %m"
 
-#: file_ops.c:288 file_ops.c:292
+#: file_ops.c:296 file_ops.c:300
 #, c-format
-msgid "could not open file \"%s\" for reading: %s\n"
-msgstr "无法打开文件\"%s\"用于读取: %s\n"
+msgid "could not open file \"%s\" for reading: %m"
+msgstr "为了读取, 无法打开文件 \"%s\": %m"
 
-#: filemap.c:104
+#: file_ops.c:314 parsexlog.c:317
 #, c-format
-msgid "data file \"%s\" in source is not a regular file\n"
+msgid "could not read file \"%s\": read %d of %zu"
+msgstr "无法读取文件\"%1$s\":读取了%3$zu中的%2$d"
+
+#: filemap.c:179
+#, fuzzy, c-format
+#| msgid "data file \"%s\" in source is not a regular file\n"
+msgid "data file \"%s\" in source is not a regular file"
 msgstr "源头的数据文件\"%s\"不是一个常规文件\n"
 
-#: filemap.c:126
-#, c-format
-msgid "\"%s\" is not a directory\n"
+#: filemap.c:201
+#, fuzzy, c-format
+#| msgid "\"%s\" is not a directory\n"
+msgid "\"%s\" is not a directory"
 msgstr "\"%s\"不是一个目录\n"
 
-#: filemap.c:149
-#, c-format
-msgid "\"%s\" is not a symbolic link\n"
+#: filemap.c:224
+#, fuzzy, c-format
+#| msgid "\"%s\" is not a symbolic link\n"
+msgid "\"%s\" is not a symbolic link"
 msgstr "\"%s\"不是一个符号链接\n"
 
-#: filemap.c:161
-#, c-format
-msgid "\"%s\" is not a regular file\n"
+#: filemap.c:236
+#, fuzzy, c-format
+#| msgid "\"%s\" is not a regular file\n"
+msgid "\"%s\" is not a regular file"
 msgstr "\"%s\"不是一个常规文件\n"
 
-#: filemap.c:279
-#, c-format
-msgid "source file list is empty\n"
+#: filemap.c:360
+#, fuzzy, c-format
+#| msgid "source file list is empty\n"
+msgid "source file list is empty"
 msgstr "源文件列表为空\n"
 
-#: filemap.c:401
-#, c-format
-msgid "unexpected page modification for directory or symbolic link \"%s\"\n"
+#: filemap.c:475
+#, fuzzy, c-format
+#| msgid "unexpected page modification for directory or symbolic link \"%s\"\n"
+msgid "unexpected page modification for directory or symbolic link \"%s\""
 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
+#: libpq_fetch.c:51
 #, c-format
 msgid "could not connect to server: %s"
 msgstr "无法连接到服务器:%s"
 
-#: libpq_fetch.c:58
-#, c-format
-msgid "connected to server\n"
+#: libpq_fetch.c:55
+#, fuzzy, c-format
+#| msgid "connected to server\n"
+msgid "connected to server"
 msgstr "已连接服务器\n"
 
-#: libpq_fetch.c:68
+#: libpq_fetch.c:59
 #, c-format
-msgid "source server must not be in recovery mode\n"
+msgid "could not clear search_path: %s"
+msgstr "无法清除search_path: %s"
+
+#: libpq_fetch.c:71
+#, fuzzy, c-format
+#| msgid "source server must not be in recovery mode\n"
+msgid "source server must not be in recovery mode"
 msgstr "源服务器不能处于恢复模式\n"
 
-#: libpq_fetch.c:78
-#, c-format
-msgid "full_page_writes must be enabled in the source server\n"
+#: libpq_fetch.c:81
+#, fuzzy, c-format
+#| msgid "full_page_writes must be enabled in the source server\n"
+msgid "full_page_writes must be enabled in the source server"
 msgstr "源服务器中的full_page_writes必须被启用\n"
 
-#: libpq_fetch.c:95
+#: libpq_fetch.c:93
+#, c-format
+msgid "could not set up connection context: %s"
+msgstr "无法设置连接上下文: %s"
+
+#: libpq_fetch.c:111
 #, c-format
 msgid "error running query (%s) in source server: %s"
 msgstr "源服务器中有错误运行的查询(%s):%s"
 
-#: libpq_fetch.c:100
-#, c-format
-msgid "unexpected result set from query\n"
+#: libpq_fetch.c:116
+#, fuzzy, c-format
+#| msgid "unexpected result set from query\n"
+msgid "unexpected result set from query"
 msgstr "从查询得到意料之外的结果集\n"
 
-#: libpq_fetch.c:123
-#, c-format
-msgid "unrecognized result \"%s\" for current WAL insert location\n"
+#: libpq_fetch.c:139
+#, fuzzy, c-format
+#| msgid "unrecognized result \"%s\" for current WAL insert location\n"
+msgid "unrecognized result \"%s\" for current WAL insert location"
 msgstr "当前WAL插入位置的未识别结果\"%s\"\n"
 
-#: libpq_fetch.c:173
+#: libpq_fetch.c:189
 #, c-format
 msgid "could not fetch file list: %s"
 msgstr "无法取得文件列表:%s"
 
-#: libpq_fetch.c:178
-#, c-format
-msgid "unexpected result set while fetching file list\n"
+#: libpq_fetch.c:194
+#, fuzzy, c-format
+#| msgid "unexpected result set while fetching file list\n"
+msgid "unexpected result set while fetching file list"
 msgstr "在取得文件列表时得到意料之外的结果集\n"
 
-#: libpq_fetch.c:226
+#: libpq_fetch.c:242
 #, c-format
 msgid "could not send query: %s"
 msgstr "无法发送查询:%s"
 
-#: libpq_fetch.c:228
-#, c-format
-msgid "getting file chunks\n"
-msgstr "获取文件块\n"
-
-#: libpq_fetch.c:231
-#, c-format
-msgid "could not set libpq connection to single row mode\n"
+#: libpq_fetch.c:247
+#, fuzzy, c-format
+#| msgid "could not set libpq connection to single row mode\n"
+msgid "could not set libpq connection to single row mode"
 msgstr "无法设置libpq连接为单行模式\n"
 
-#: libpq_fetch.c:251
+#: libpq_fetch.c:268
 #, c-format
 msgid "unexpected result while fetching remote files: %s"
 msgstr "在取得远程文件时得到意料之外的结果:%s"
 
-#: libpq_fetch.c:257
-#, c-format
-msgid "unexpected result set size while fetching remote files\n"
+#: libpq_fetch.c:274
+#, fuzzy, c-format
+#| msgid "unexpected result set size while fetching remote files\n"
+msgid "unexpected result set size while fetching remote files"
 msgstr "在取得远程文件时得到意料之外的结果集大小\n"
 
-#: libpq_fetch.c:263
-#, c-format
-msgid ""
-"unexpected data types in result set while fetching remote files: %u %u %u\n"
+#: libpq_fetch.c:280
+#, fuzzy, c-format
+#| msgid "unexpected data types in result set while fetching remote files: %u %u %u\n"
+msgid "unexpected data types in result set while fetching remote files: %u %u %u"
 msgstr "在取得远程文件时结果集中有意料之外的数据类型:%u %u %u\n"
 
-#: libpq_fetch.c:271
-#, c-format
-msgid "unexpected result format while fetching remote files\n"
+#: libpq_fetch.c:288
+#, fuzzy, c-format
+#| msgid "unexpected result format while fetching remote files\n"
+msgid "unexpected result format while fetching remote files"
 msgstr "在取得远程文件时得到意料之外的结果格式\n"
 
-#: libpq_fetch.c:277
-#, c-format
-msgid "unexpected null values in result while fetching remote files\n"
+#: libpq_fetch.c:294
+#, fuzzy, c-format
+#| msgid "unexpected null values in result while fetching remote files\n"
+msgid "unexpected null values in result while fetching remote files"
 msgstr "在取得远程文件时结果中有意料之外的空值\n"
 
-#: libpq_fetch.c:281
-#, c-format
-msgid "unexpected result length while fetching remote files\n"
+#: libpq_fetch.c:298
+#, fuzzy, c-format
+#| msgid "unexpected result length while fetching remote files\n"
+msgid "unexpected result length while fetching remote files"
 msgstr "在取得远程文件时得到意料之外的结果长度\n"
 
-#: libpq_fetch.c:303
-#, c-format
-msgid "received null value for chunk for file \"%s\", file has been deleted\n"
-msgstr "收到的文件\"%s\"的块中有空值,文件已经被删除\n"
-
-#: libpq_fetch.c:310
-#, c-format
-msgid "received chunk for file \"%s\", offset %d, size %d\n"
-msgstr "收到文件\"%s\"的块,偏移量为%d,大小为%d\n"
-
-#: libpq_fetch.c:339
+#: libpq_fetch.c:364
 #, c-format
 msgid "could not fetch remote file \"%s\": %s"
 msgstr "无法取得远程文件\"%s\": %s"
 
-#: libpq_fetch.c:344
-#, c-format
-msgid "unexpected result set while fetching remote file \"%s\"\n"
+#: libpq_fetch.c:369
+#, fuzzy, c-format
+#| msgid "unexpected result set while fetching remote file \"%s\"\n"
+msgid "unexpected result set while fetching remote file \"%s\""
 msgstr "在取得远程文件\"%s\"时得到意料之外的结果集\n"
 
-#: libpq_fetch.c:355
-#, c-format
-msgid "fetched file \"%s\", length %d\n"
-msgstr "获取到文件\"%s\",长度为%d\n"
-
-#: libpq_fetch.c:387
+#: libpq_fetch.c:413
 #, c-format
 msgid "could not send COPY data: %s"
 msgstr "无法发送COPY数据:%s"
 
-#: libpq_fetch.c:413
+#: libpq_fetch.c:439
 #, c-format
 msgid "could not create temporary table: %s"
 msgstr "无法创建临时表:%s"
 
-#: libpq_fetch.c:421
+#: libpq_fetch.c:447
 #, c-format
 msgid "could not send file list: %s"
 msgstr "无法发送文件列表:%s"
 
-#: libpq_fetch.c:463
+#: libpq_fetch.c:489
 #, c-format
 msgid "could not send end-of-COPY: %s"
 msgstr "无法发送COPY结束标记:%s"
 
-#: libpq_fetch.c:469
+#: libpq_fetch.c:495
 #, c-format
 msgid "unexpected result while sending file list: %s"
 msgstr "在发送文件列表时得到意料之外的结果:%s"
 
-#: logging.c:57
-msgid "Failure, exiting\n"
-msgstr "故障,退出\n"
-
-#: logging.c:140
+#: parsexlog.c:74 parsexlog.c:128 parsexlog.c:186
 #, c-format
-msgid "%*s/%s kB (%d%%) copied"
-msgstr "å·²å¤\8då\88¶%*s/%s kB (%d%%)"
+msgid "out of memory"
+msgstr "å\86\85å­\98ç\94¨å°½"
 
-#: parsexlog.c:87 parsexlog.c:133
-#, c-format
-msgid "could not read WAL record at %X/%X: %s\n"
+#: parsexlog.c:87 parsexlog.c:134
+#, fuzzy, c-format
+#| msgid "could not read WAL record at %X/%X: %s\n"
+msgid "could not read WAL record at %X/%X: %s"
 msgstr "无法读取%X/%X处的WAL记录:%s\n"
 
-#: parsexlog.c:91 parsexlog.c:136
-#, c-format
-msgid "could not read WAL record at %X/%X\n"
+#: parsexlog.c:91 parsexlog.c:137
+#, fuzzy, c-format
+#| msgid "could not read WAL record at %X/%X\n"
+msgid "could not read WAL record at %X/%X"
 msgstr "无法读取%X/%X处的WAL记录\n"
 
-#: parsexlog.c:191
-#, c-format
-msgid "could not find previous WAL record at %X/%X: %s\n"
+#: parsexlog.c:198
+#, fuzzy, c-format
+#| msgid "could not find previous WAL record at %X/%X: %s\n"
+msgid "could not find previous WAL record at %X/%X: %s"
 msgstr "无法在%X/%X找到前一个WAL记录:%s\n"
 
-#: parsexlog.c:195
-#, c-format
-msgid "could not find previous WAL record at %X/%X\n"
+#: parsexlog.c:202
+#, fuzzy, c-format
+#| msgid "could not find previous WAL record at %X/%X\n"
+msgid "could not find previous WAL record at %X/%X"
 msgstr "无法在%X/%X找到前一个WAL记录\n"
 
-# fe-lobj.c:400 fe-lobj.c:483
-#: parsexlog.c:283
+#: parsexlog.c:293
 #, c-format
-msgid "could not open file \"%s\": %s\n"
-msgstr "无法打开文件 \"%s\": %s\n"
+msgid "could not open file \"%s\": %m"
+msgstr "无法打开文件 \"%s\": %m"
 
-#: parsexlog.c:297
+#: parsexlog.c:306
 #, c-format
-msgid "could not seek in file \"%s\": %s\n"
-msgstr "无法在文件\"%s\"中定位(seek):%s\n"
+msgid "could not seek in file \"%s\": %m"
+msgstr "无法在文件\"%s\"进行查找: %m"
 
-#: parsexlog.c:304
-#, c-format
-msgid "could not read from file \"%s\": %s\n"
-msgstr "无法读取文件 \"%s\": %s\n"
-
-#: parsexlog.c:372
-#, c-format
-msgid ""
-"WAL record modifies a relation, but record type is not recognized\n"
-"lsn: %X/%X, rmgr: %s, info: %02X\n"
+#: parsexlog.c:386
+#, fuzzy, c-format
+#| msgid ""
+#| "WAL record modifies a relation, but record type is not recognized\n"
+#| "lsn: %X/%X, rmgr: %s, info: %02X\n"
+msgid "WAL record modifies a relation, but record type is not recognized: lsn: %X/%X, rmgr: %s, info: %02X"
 msgstr ""
 "WAL记录修改了一个关系,但是记录类型无法识别\n"
 "lsn: %X/%X, rmgr: %s, info: %02X\n"
 
-#: pg_rewind.c:64
+#: pg_rewind.c:72
 #, c-format
 msgid ""
 "%s resynchronizes a PostgreSQL cluster with another copy of the cluster.\n"
@@ -438,7 +465,7 @@ msgstr ""
 "%s用一个PostgreSQL集簇的另一个拷贝重新同步了该集簇。\n"
 "\n"
 
-#: pg_rewind.c:65
+#: pg_rewind.c:73
 #, c-format
 msgid ""
 "Usage:\n"
@@ -449,441 +476,424 @@ msgstr ""
 "  %s [选项]...\n"
 "\n"
 
-#: pg_rewind.c:66
+#: pg_rewind.c:74
 #, c-format
 msgid "Options:\n"
 msgstr "选项:\n"
 
-#: pg_rewind.c:67
+#: pg_rewind.c:75
 #, c-format
 msgid "  -D, --target-pgdata=DIRECTORY  existing data directory to modify\n"
 msgstr "  -D, --target-pgdata=DIRECTORY  已有的要修改的数据目录\n"
 
-#: pg_rewind.c:68
+#: pg_rewind.c:76
 #, c-format
-msgid ""
-"      --source-pgdata=DIRECTORY  source data directory to synchronize with\n"
+msgid "      --source-pgdata=DIRECTORY  source data directory to synchronize with\n"
 msgstr "      --source-pgdata=DIRECTORY  要与之同步的源数据目录\n"
 
-#: pg_rewind.c:69
+#: pg_rewind.c:77
 #, c-format
 msgid "      --source-server=CONNSTR    source server to synchronize with\n"
 msgstr "      --source-server=CONNSTR    要与之同步的源服务器\n"
 
-#: pg_rewind.c:70
+#: pg_rewind.c:78
 #, c-format
 msgid "  -n, --dry-run                  stop before modifying anything\n"
 msgstr "  -n, --dry-run                  在修改任何东西之前停止\n"
 
-#: pg_rewind.c:71
+#: pg_rewind.c:79
+#, c-format
+msgid ""
+"  -N, --no-sync                  do not wait for changes to be written\n"
+"                                 safely to disk\n"
+msgstr ""
+
+#: pg_rewind.c:81
 #, c-format
 msgid "  -P, --progress                 write progress messages\n"
 msgstr "  -P, --progress                 写出进度消息\n"
 
-#: pg_rewind.c:72
+#: pg_rewind.c:82
 #, c-format
 msgid "      --debug                    write a lot of debug messages\n"
 msgstr "      --debug                    写出很多调试消息\n"
 
-#: pg_rewind.c:73
+#: pg_rewind.c:83
 #, c-format
-msgid ""
-"  -V, --version                  output version information, then exit\n"
+msgid "  -V, --version                  output version information, then exit\n"
 msgstr "  -V, --version                  输出版本信息,然后退出\n"
 
-#: pg_rewind.c:74
+#: pg_rewind.c:84
 #, c-format
 msgid "  -?, --help                     show this help, then exit\n"
 msgstr "  -?, --help                     显示本帮助,然后退出\n"
 
-#: pg_rewind.c:75
-#, c-format
+#: pg_rewind.c:85
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgid ""
 "\n"
-"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+"Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgstr ""
 "\n"
 "报告错误至 <pgql-bugs@postgresql.org>.\n"
 
-#: pg_rewind.c:130 pg_rewind.c:161 pg_rewind.c:168 pg_rewind.c:176
+#: pg_rewind.c:142 pg_rewind.c:178 pg_rewind.c:185 pg_rewind.c:192
+#: pg_rewind.c:200
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: pg_rewind.c:160
-#, c-format
-msgid "%s: no source specified (--source-pgdata or --source-server)\n"
+#: pg_rewind.c:177
+#, fuzzy, c-format
+#| msgid "%s: no source specified (--source-pgdata or --source-server)\n"
+msgid "no source specified (--source-pgdata or --source-server)"
 msgstr "%s:没有指定源 (--source-pgdata 或者 --source-server)\n"
 
-#: pg_rewind.c:167
-#, c-format
-msgid "%s: no target data directory specified (--target-pgdata)\n"
+#: pg_rewind.c:184
+#, fuzzy, c-format
+#| msgid "%s: only one of --source-pgdata or --source-server can be specified\n"
+msgid "only one of --source-pgdata or --source-server can be specified"
+msgstr "%s: 只能指定--source-pgdata和--source-server这两个选项之一\n"
+
+#: pg_rewind.c:191
+#, fuzzy, c-format
+#| msgid "%s: no target data directory specified (--target-pgdata)\n"
+msgid "no target data directory specified (--target-pgdata)"
 msgstr "%s:没有指定目标数据目录 (--target-pgdata)\n"
 
-#: pg_rewind.c:174
-#, c-format
-msgid "%s: too many command-line arguments (first is \"%s\")\n"
+#: pg_rewind.c:198
+#, fuzzy, c-format
+#| msgid "%s: too many command-line arguments (first is \"%s\")\n"
+msgid "too many command-line arguments (first is \"%s\")"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_rewind.c:189
-#, c-format
-msgid "cannot be executed by \"root\"\n"
+#: pg_rewind.c:213
+#, fuzzy, c-format
+#| msgid "cannot be executed by \"root\"\n"
+msgid "cannot be executed by \"root\""
 msgstr "不能由\"root\"执行\n"
 
-#: pg_rewind.c:190
+#: pg_rewind.c:214
 #, c-format
 msgid "You must run %s as the PostgreSQL superuser.\n"
 msgstr "您现在作为PostgreSQL超级用户运行%s.\n"
 
-#: pg_rewind.c:221
+#: pg_rewind.c:225
 #, c-format
-msgid "source and target cluster are on the same timeline\n"
+msgid "could not read permissions of directory \"%s\": %m"
+msgstr "没有读取目录 \"%s\" 的权限: %m"
+
+#: pg_rewind.c:256
+#, fuzzy, c-format
+#| msgid "source and target cluster are on the same timeline\n"
+msgid "source and target cluster are on the same timeline"
 msgstr "源集簇和目标集簇处于同一时间线\n"
 
-#: pg_rewind.c:227
-#, c-format
-msgid "servers diverged at WAL position %X/%X on timeline %u\n"
+#: pg_rewind.c:262
+#, fuzzy, c-format
+#| msgid "servers diverged at WAL location %X/%X on timeline %u\n"
+msgid "servers diverged at WAL location %X/%X on timeline %u"
 msgstr "服务器在时间线%3$u上的WAL位置%1$X/%2$X处发生了分歧\n"
 
-#: pg_rewind.c:264
-#, c-format
-msgid "no rewind required\n"
+#: pg_rewind.c:299
+#, fuzzy, c-format
+#| msgid "no rewind required\n"
+msgid "no rewind required"
 msgstr "不需要倒带(rewind)\n"
 
-#: pg_rewind.c:271
-#, c-format
-msgid "rewinding from last common checkpoint at %X/%X on timeline %u\n"
+#: pg_rewind.c:306
+#, fuzzy, c-format
+#| msgid "rewinding from last common checkpoint at %X/%X on timeline %u\n"
+msgid "rewinding from last common checkpoint at %X/%X on timeline %u"
 msgstr "从时间线%3$u上%1$X/%2$X处的最后一个普通检查点倒带\n"
 
-#: pg_rewind.c:279
-#, c-format
-msgid "reading source file list\n"
+#: pg_rewind.c:315
+#, fuzzy, c-format
+#| msgid "reading source file list\n"
+msgid "reading source file list"
 msgstr "读取源文件列表\n"
 
-#: pg_rewind.c:281
-#, c-format
-msgid "reading target file list\n"
+#: pg_rewind.c:318
+#, fuzzy, c-format
+#| msgid "reading target file list\n"
+msgid "reading target file list"
 msgstr "读取目标文件列表\n"
 
-#: pg_rewind.c:291
-#, c-format
-msgid "reading WAL in target\n"
+#: pg_rewind.c:329
+#, fuzzy, c-format
+#| msgid "reading WAL in target\n"
+msgid "reading WAL in target"
 msgstr "读取目标中的WAL\n"
 
-#: pg_rewind.c:308
-#, c-format
-msgid "need to copy %lu MB (total source directory size is %lu MB)\n"
+#: pg_rewind.c:346
+#, fuzzy, c-format
+#| msgid "need to copy %lu MB (total source directory size is %lu MB)\n"
+msgid "need to copy %lu MB (total source directory size is %lu MB)"
 msgstr "需要复制 %lu MB(整个源目录的大小是 %lu MB)\n"
 
-#: pg_rewind.c:325
-#, c-format
-msgid ""
-"\n"
-"creating backup label and updating control file\n"
+#: pg_rewind.c:365
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "creating backup label and updating control file\n"
+msgid "creating backup label and updating control file"
 msgstr ""
 "\n"
 "正在创建备份标签并且更新控制文件\n"
 
-#: pg_rewind.c:353
-#, c-format
-#| msgid "%s: failed to remove data directory\n"
-msgid "syncing target data directory\n"
+#: pg_rewind.c:394
+#, fuzzy, c-format
+#| msgid "syncing target data directory\n"
+msgid "syncing target data directory"
 msgstr "正在同步目标数据目录\n"
 
-#: pg_rewind.c:356
-#, c-format
-msgid "Done!\n"
+#: pg_rewind.c:397
+#, fuzzy, c-format
+#| msgid "Done!\n"
+msgid "Done!"
 msgstr "完成!\n"
 
-#: pg_rewind.c:368
-#, c-format
-msgid "source and target clusters are from different systems\n"
+#: pg_rewind.c:409
+#, fuzzy, c-format
+#| msgid "source and target clusters are from different systems\n"
+msgid "source and target clusters are from different systems"
 msgstr "源集簇和目标集簇来自不同的系统\n"
 
-#: pg_rewind.c:376
-#, c-format
-msgid "clusters are not compatible with this version of pg_rewind\n"
+#: pg_rewind.c:417
+#, fuzzy, c-format
+#| msgid "clusters are not compatible with this version of pg_rewind\n"
+msgid "clusters are not compatible with this version of pg_rewind"
 msgstr "集簇与这个pg_rewind的版本不兼容\n"
 
-#: pg_rewind.c:386
-#, c-format
-msgid ""
-"target server needs to use either data checksums or \"wal_log_hints = on\"\n"
+#: pg_rewind.c:427
+#, fuzzy, c-format
+#| msgid "target server needs to use either data checksums or \"wal_log_hints = on\"\n"
+msgid "target server needs to use either data checksums or \"wal_log_hints = on\""
 msgstr "目标服务器需要使用数据校验和或者让\"wal_log_hints = on\"\n"
 
-#: pg_rewind.c:397
-#, c-format
-msgid "target server must be shut down cleanly\n"
+#: pg_rewind.c:438
+#, fuzzy, c-format
+#| msgid "target server must be shut down cleanly\n"
+msgid "target server must be shut down cleanly"
 msgstr "目标服务器必须被干净地关闭\n"
 
-#: pg_rewind.c:407
-#, c-format
-msgid "source data directory must be shut down cleanly\n"
+#: pg_rewind.c:448
+#, fuzzy, c-format
+#| msgid "source data directory must be shut down cleanly\n"
+msgid "source data directory must be shut down cleanly"
 msgstr "源数据目录必须被干净地关闭\n"
 
-#: pg_rewind.c:462
-#, c-format
-#| msgid "Invalid character value."
-msgid "Invalid control file"
-msgstr "无效的控制文件"
-
-#: pg_rewind.c:473
+#: pg_rewind.c:497
 #, 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"
+msgid "%*s/%s kB (%d%%) copied"
+msgstr "已复制%*s/%s kB (%d%%)"
 
-#. translator: %d is a timeline number, others are LSN positions
-#: pg_rewind.c:489
+#: pg_rewind.c:558
 #, c-format
-msgid "%d: %X/%X - %X/%X\n"
-msgstr "%d: %X/%X - %X/%X\n"
+msgid "invalid control file\n"
+msgstr "无效的控制文件\n"
 
-#: pg_rewind.c:547
-#, c-format
-msgid ""
-"could not find common ancestor of the source and target cluster's timelines\n"
+#: pg_rewind.c:642
+#, fuzzy, c-format
+#| msgid "could not find common ancestor of the source and target cluster's timelines\n"
+msgid "could not find common ancestor of the source and target cluster's timelines"
 msgstr "无法找到源集簇和目标集簇的时间线的共同祖先\n"
 
-#: pg_rewind.c:588
-#, c-format
-msgid "backup label buffer too small\n"
+#: pg_rewind.c:683
+#, fuzzy, c-format
+#| msgid "backup label buffer too small\n"
+msgid "backup label buffer too small"
 msgstr "备份标签缓冲太小\n"
 
-#: pg_rewind.c:611
-#, c-format
-msgid "unexpected control file CRC\n"
+#: pg_rewind.c:706
+#, fuzzy, c-format
+#| msgid "unexpected control file CRC\n"
+msgid "unexpected control file CRC"
 msgstr "意料之外的控制文件CRC\n"
 
-#: pg_rewind.c:621
-#, c-format
-msgid "unexpected control file size %d, expected %d\n"
+#: pg_rewind.c:716
+#, fuzzy, c-format
+#| msgid "unexpected control file size %d, expected %d\n"
+msgid "unexpected control file size %d, expected %d"
 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
+#: pg_rewind.c:725
 #, c-format
-#| msgid "%s: no target directory specified\n"
-msgid "sync of target directory failed\n"
-msgstr "目标目录同步失败\n"
+msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte"
+msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes"
+msgstr[0] "WAL段大小必须是1 MB到1 GB之间的2的幂,但控制文件指定了%d字节"
 
 #: timeline.c:76 timeline.c:82
 #, c-format
-msgid "syntax error in history file: %s\n"
-msgstr "历史文件中有语法错误:%s\n"
+msgid "syntax error in history file: %s"
+msgstr "历史文件中的语法错误: %s"
 
 #: timeline.c:77
 #, c-format
-msgid "Expected a numeric timeline ID.\n"
-msgstr "需要一个数字形式的时间线 ID。\n"
+msgid "Expected a numeric timeline ID."
+msgstr "期望一个数字 timeline ID."
 
+# sql_help.h:105
 #: timeline.c:83
 #, c-format
-msgid "Expected a transaction log switchpoint location.\n"
-msgstr "需要一个事务日志切换点位置。\n"
+msgid "Expected a write-ahead log switchpoint location."
+msgstr "期望一个预写日志切换点位置."
 
 #: timeline.c:88
 #, c-format
-msgid "invalid data in history file: %s\n"
-msgstr "历史文件中有无效数据:%s\n"
+msgid "invalid data in history file: %s"
+msgstr "历史文件中的无效数据: %s"
 
 #: timeline.c:89
 #, c-format
-msgid "Timeline IDs must be in increasing sequence.\n"
-msgstr "时间线 ID 必须处于一个增序列中。\n"
+msgid "Timeline IDs must be in increasing sequence."
+msgstr "TimeLine ID 必须为递增序列."
 
 #: timeline.c:109
-#, c-format
-msgid "invalid data in history file\n"
+#, fuzzy, c-format
+#| msgid "invalid data in history file\n"
+msgid "invalid data in history file"
 msgstr "历史文件中有无效数据\n"
 
 #: timeline.c:110
 #, c-format
-msgid "Timeline IDs must be less than child timeline's ID.\n"
-msgstr "时间线 ID 必须小于子时间线的 ID。\n"
+msgid "Timeline IDs must be less than child timeline's ID."
+msgstr "Timeline ID 必须小于子 timeline 的 ID."
 
-#: xlogreader.c:285
+#: xlogreader.c:299
 #, c-format
 msgid "invalid record offset at %X/%X"
 msgstr "%X/%X处有无效的记录偏移量"
 
-#: xlogreader.c:293
+#: xlogreader.c:307
 #, c-format
 msgid "contrecord is requested by %X/%X"
 msgstr "%X/%X请求继续记录(contrecord)"
 
-#: xlogreader.c:334 xlogreader.c:633
+#: xlogreader.c:348 xlogreader.c:645
 #, c-format
-#| 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:349
+#: xlogreader.c:372
 #, c-format
 msgid "record length %u at %X/%X too long"
 msgstr "%2$X/%3$X处有的记录长度%1$u过长"
 
-#: xlogreader.c:390
+#: xlogreader.c:404
 #, c-format
 msgid "there is no contrecord flag at %X/%X"
 msgstr "%X/%X处没有继续记录标志"
 
-#: xlogreader.c:403
+#: xlogreader.c:417
 #, c-format
 msgid "invalid contrecord length %u at %X/%X"
 msgstr "%2$X/%3$X处有无效的继续记录长度%1$u"
 
-#: xlogreader.c:641
+#: xlogreader.c:653
 #, c-format
 msgid "invalid resource manager ID %u at %X/%X"
 msgstr "%2$X/%3$X处有无效的资源管理器 ID %1$u"
 
-#: xlogreader.c:655 xlogreader.c:672
+#: xlogreader.c:667 xlogreader.c:684
 #, 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:709
+#: xlogreader.c:721
 #, c-format
 msgid "incorrect resource manager data checksum in record at %X/%X"
 msgstr "%X/%X处的记录中有不正确的资源管理器数据校验和"
 
-#: xlogreader.c:742
+#: xlogreader.c:758
 #, c-format
 msgid "invalid magic number %04X in log segment %s, offset %u"
 msgstr "在日志段%2$s的偏移量%3$u处有无效的magic号%1$04X"
 
-#: xlogreader.c:756 xlogreader.c:807
+#: xlogreader.c:772 xlogreader.c:823
 #, c-format
 msgid "invalid info bits %04X in log segment %s, offset %u"
 msgstr "在日志段%2$s的偏移量%3$u处有无效的info位%1$04X"
 
-#: xlogreader.c:782
+#: xlogreader.c:798
 #, c-format
-msgid ""
-"WAL file is from different database system: WAL file database system "
-"identifier is %s, pg_control database system identifier is %s"
-msgstr ""
-"WAL文件来自于不同的数据库系统:WAL文件数据库系统标识符是%s,pg_control数据库"
-"系统标识符是%s"
+msgid "WAL file is from different database system: WAL file database system identifier is %s, pg_control database system identifier is %s"
+msgstr "WAL文件来自于不同的数据库系统:WAL文件数据库系统标识符是%s,pg_control数据库系统标识符是%s"
 
-#: xlogreader.c:789
+#: xlogreader.c:805
 #, c-format
-msgid ""
-"WAL file is from different database system: incorrect XLOG_SEG_SIZE in page "
-"header"
-msgstr "WAL文件来自于不同的数据库系统:页头部中有不正确的XLOG_SEG_SIZE"
+msgid "WAL file is from different database system: incorrect segment size in page header"
+msgstr "WAL文件来自于不同的数据库系统:页头部中的段大小不正确"
 
-#: xlogreader.c:795
+#: xlogreader.c:811
 #, c-format
-msgid ""
-"WAL file is from different database system: incorrect XLOG_BLCKSZ in page "
-"header"
+msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header"
 msgstr "WAL文件来自于不同的数据库系统:页头部中有不正确的XLOG_BLCKSZ"
 
-#: xlogreader.c:821
+#: xlogreader.c:842
 #, 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:846
+#: xlogreader.c:867
 #, 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:1053
+#: xlogreader.c:1112
 #, c-format
 msgid "out-of-order block_id %u at %X/%X"
 msgstr "在%2$X/%3$X处有无序的block_id %1$u"
 
-#: xlogreader.c:1075
+#: xlogreader.c:1135
 #, c-format
 msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X"
 msgstr "BKPBLOCK_HAS_DATA已被设置,但是在%X/%X处没有包括数据"
 
-#: xlogreader.c:1082
+#: xlogreader.c:1142
 #, 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:1115
+#: xlogreader.c:1178
 #, c-format
-msgid ""
-"BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at "
-"%X/%X"
-msgstr ""
-"BKPIMAGE_HAS_HOLE已被设置,但是%4$X/%5$X处记录了洞偏移量为%1$u、长度为%2$u、"
-"块映像长度为%3$u"
+msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X"
+msgstr "BKPIMAGE_HAS_HOLE已被设置,但是%4$X/%5$X处记录了洞偏移量为%1$u、长度为%2$u、块映像长度为%3$u"
 
-#: xlogreader.c:1131
+#: xlogreader.c:1194
 #, 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"
+msgstr "BKPIMAGE_HAS_HOLE没有被设置,但是%3$X/%4$X处记录了洞偏移量为%1$u、长度为%2$u"
 
-#: xlogreader.c:1146
+#: xlogreader.c:1209
 #, 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:1161
+#: xlogreader.c:1224
 #, c-format
-msgid ""
-"neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image "
-"length is %u at %X/%X"
-msgstr ""
-"BKPIMAGE_HAS_HOLE和BKPIMAGE_IS_COMPRESSED都没有被设置,但是%2$X/%3$X处记录的"
-"块映像长度为%1$u"
+msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image length is %u at %X/%X"
+msgstr "BKPIMAGE_HAS_HOLE和BKPIMAGE_IS_COMPRESSED都没有被设置,但是%2$X/%3$X处记录的块映像长度为%1$u"
 
-#: xlogreader.c:1177
+#: xlogreader.c:1240
 #, c-format
 msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X"
 msgstr "BKPBLOCK_SAME_REL已被设置,但是在%X/%X没有前一个关系"
 
-#: xlogreader.c:1189
+#: xlogreader.c:1252
 #, c-format
 msgid "invalid block_id %u at %X/%X"
 msgstr "%2$X/%3$X处有无效block_id %1$u"
 
-#: xlogreader.c:1254
+#: xlogreader.c:1341
 #, c-format
 msgid "record with invalid length at %X/%X"
 msgstr "%X/%X处的记录的长度无效"
 
-#: xlogreader.c:1343
+#: xlogreader.c:1430
 #, c-format
 msgid "invalid compressed image at %X/%X, block %d"
 msgstr "%X/%X处是块%d的无效压缩映像"
diff --git a/zh_CN/pg_verify_checksums.po b/zh_CN/pg_verify_checksums.po
deleted file mode 100644 (file)
index 3df1a1c..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-# LANGUAGE message translation file for pg_verify_checksums
-# Copyright (C) 2019 PostgreSQL Global Development Group
-# This file is distributed under the same license as the pg_verify_checksums (PostgreSQL) package.
-# FIRST AUTHOR <zhangjie2@cn.fujitsu.com>, 2019.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: pg_verify_checksums (PostgreSQL) 11\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2019-05-15 17:57+0800\n"
-"PO-Revision-Date: 2019-05-16 19:20+0800\n"
-"Last-Translator: Jie Zhang <zhangjie2@cn.fujitsu.com>\n"
-"Language-Team: Chinese (Simplified) <zhangjie2@cn.fujitsu.com>\n"
-"Language: zh_CN\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: pg_verify_checksums.c:39
-#, c-format
-msgid ""
-"%s verifies data checksums in a PostgreSQL database cluster.\n"
-"\n"
-msgstr ""
-"%s 验证PostgreSQL数据库群集中的数据校验和.\n"
-"\n"
-
-#: pg_verify_checksums.c:40
-#, c-format
-msgid "Usage:\n"
-msgstr "使用方法:\n"
-
-#: pg_verify_checksums.c:41
-#, c-format
-msgid "  %s [OPTION]... [DATADIR]\n"
-msgstr "  %s [选项]... [数据目录]\n"
-
-#: pg_verify_checksums.c:42
-#, c-format
-msgid ""
-"\n"
-"Options:\n"
-msgstr ""
-"\n"
-"选项:\n"
-
-#: pg_verify_checksums.c:43
-#, c-format
-msgid " [-D, --pgdata=]DATADIR  data directory\n"
-msgstr " [-D, --pgdata=]DATADIR  数据目录\n"
-
-#: pg_verify_checksums.c:44
-#, c-format
-msgid "  -v, --verbose          output verbose messages\n"
-msgstr "  -v, --verbose          输出详细消息\n"
-
-#: pg_verify_checksums.c:45
-#, c-format
-msgid "  -r RELFILENODE         check only relation with specified relfilenode\n"
-msgstr "  -r RELFILENODE         仅检查与指定relfilenode的关系\n"
-
-#: pg_verify_checksums.c:46
-#, c-format
-msgid "  -V, --version          output version information, then exit\n"
-msgstr "  -V, --version          输出版本信息, 然后退出\n"
-
-#: pg_verify_checksums.c:47
-#, c-format
-msgid "  -?, --help             show this help, then exit\n"
-msgstr "  -?, --help             显示此帮助, 然后退出\n"
-
-#: pg_verify_checksums.c:48
-#, c-format
-msgid ""
-"\n"
-"If no data directory (DATADIR) is specified, the environment variable PGDATA\n"
-"is used.\n"
-"\n"
-msgstr ""
-"\n"
-"如果没有指定数据目录(DATADIR), 将使用\n"
-"环境变量PGDATA.\n"
-"\n"
-
-#: pg_verify_checksums.c:50
-#, c-format
-msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
-msgstr "臭虫报告至 <pgsql-bugs@postgresql.org>.\n"
-
-#: pg_verify_checksums.c:93
-#, c-format
-msgid "%s: could not open file \"%s\": %s\n"
-msgstr "%s: 无法打开文件 \"%s\": %s\n"
-
-#: pg_verify_checksums.c:109
-#, c-format
-msgid "%s: could not read block %u in file \"%s\": read %d of %d\n"
-msgstr "%1$s: 无法读取文件\"%3$s\"中的块%2$u:读取第%4$d个,共%5$d\n"
-
-#: pg_verify_checksums.c:123
-#, c-format
-msgid "%s: checksum verification failed in file \"%s\", block %u: calculated checksum %X but block contains %X\n"
-msgstr "%s: 校验和验证在文件\"%s\"中失败,块%u:计算的校验和%X,但块包含%X\n"
-
-#: pg_verify_checksums.c:131
-#, c-format
-msgid "%s: checksums verified in file \"%s\"\n"
-msgstr "%s: 文件\"%s\"中验证的校验和\n"
-
-#: pg_verify_checksums.c:147
-#, c-format
-msgid "%s: could not open directory \"%s\": %s\n"
-msgstr "%s: 无法打开目录 \"%s\": %s\n"
-
-#: pg_verify_checksums.c:175
-#, c-format
-msgid "%s: could not stat file \"%s\": %s\n"
-msgstr "%s: 无法统计文件: \"%s\": %s\n"
-
-#: pg_verify_checksums.c:203
-#, c-format
-msgid "%s: invalid segment number %d in file name \"%s\"\n"
-msgstr "%1$s: 文件名\"%3$s\"中的段号%2$d无效\n"
-
-#: pg_verify_checksums.c:274
-#, c-format
-msgid "%s: invalid relfilenode specification, must be numeric: %s\n"
-msgstr "%s: relfilenode指定无效,必须是数字: %s\n"
-
-#: pg_verify_checksums.c:280 pg_verify_checksums.c:296
-#: pg_verify_checksums.c:306
-#, c-format
-msgid "Try \"%s --help\" for more information.\n"
-msgstr "请用 \"%s --help\" 获取更多的信息.\n"
-
-#: pg_verify_checksums.c:295
-#, c-format
-msgid "%s: no data directory specified\n"
-msgstr "%s: 没有指定数据目录\n"
-
-#: pg_verify_checksums.c:304
-#, c-format
-msgid "%s: too many command-line arguments (first is \"%s\")\n"
-msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
-
-#: pg_verify_checksums.c:315
-#, c-format
-msgid "%s: pg_control CRC value is incorrect\n"
-msgstr "%s: pg_control CRC值不正确\n"
-
-#: pg_verify_checksums.c:321
-#, c-format
-msgid "%s: cluster is not compatible with this version of pg_verify_checksums\n"
-msgstr "%s: 集簇与pg_verify_checksums的版本不兼容\n"
-
-#: pg_verify_checksums.c:328
-#, c-format
-msgid "%s: database cluster is not compatible\n"
-msgstr "%s: 数据库群集不兼容\n"
-
-#: pg_verify_checksums.c:330
-#, c-format
-msgid "The database cluster was initialized with block size %u, but pg_verify_checksums was compiled with block size %u.\n"
-msgstr "数据库群集是用块大小%u初始化的,但是pg_verify_checksums是用块大小%u编译的.\n"
-
-#: pg_verify_checksums.c:338
-#, c-format
-msgid "%s: cluster must be shut down to verify checksums\n"
-msgstr "%s: 必须关闭群集以验证校验和\n"
-
-#: pg_verify_checksums.c:344
-#, c-format
-msgid "%s: data checksums are not enabled in cluster\n"
-msgstr "%s: 群集中未启用数据校验和\n"
-
-#: pg_verify_checksums.c:353
-#, c-format
-msgid "Checksum scan completed\n"
-msgstr "校验和扫描完成\n"
-
-#: pg_verify_checksums.c:354
-#, c-format
-msgid "Data checksum version: %d\n"
-msgstr "数据校验和版本: %d\n"
-
-#: pg_verify_checksums.c:355
-#, c-format
-msgid "Files scanned:  %s\n"
-msgstr "文件扫描完成:  %s\n"
-
-#: pg_verify_checksums.c:356
-#, c-format
-msgid "Blocks scanned: %s\n"
-msgstr "块扫描完成: %s\n"
-
-#: pg_verify_checksums.c:357
-#, c-format
-msgid "Bad checksums:  %s\n"
-msgstr "坏校验和:  %s\n"
index 574fe39a438b9ab86721670e3c65da13267b9433..e6d5b296dc2efc6c5f24fa64388d9417eb9bb6ca 100644 (file)
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: pg_waldump (PostgreSQL) 11\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2019-04-12 17:42+0800\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:13+0000\n"
 "PO-Revision-Date: 2019-05-06 18:12+0800\n"
 "Last-Translator: Jie Zhang <zhangjie2@cn.fujitsu.com>\n"
 "Language-Team: Chinese (Simplified) <zhangjie2@cn.fujitsu.com>\n"
@@ -17,60 +17,76 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: pg_waldump.c:85
+#: ../../../src/common/logging.c:188
 #, c-format
-msgid "%s: FATAL:  "
-msgstr "%s: 致命的"
+msgid "fatal: "
+msgstr ""
+
+#: ../../../src/common/logging.c:195
+#, c-format
+msgid "error: "
+msgstr ""
+
+#: ../../../src/common/logging.c:202
+#, c-format
+msgid "warning: "
+msgstr ""
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: pg_waldump.c:166
+#: pg_waldump.c:148
 #, c-format
 msgid "could not open file \"%s\": %s"
 msgstr "无法打开文件 \"%s\": %s"
 
-#: pg_waldump.c:221
+#: pg_waldump.c:205
 #, c-format
 msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL file \"%s\" header specifies %d byte"
 msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL file \"%s\" header specifies %d bytes"
 msgstr[0] "WAL段大小必须是1MB到1GB之间的2次幂,但WAL文件\"%s\"头指定了%d个字节"
 msgstr[1] "WAL段大小必须是1MB到1GB之间的2次幂,但WAL文件\"%s\"头指定了%d个字节"
 
-#: pg_waldump.c:229
+#: pg_waldump.c:213
 #, c-format
 msgid "could not read file \"%s\": %s"
 msgstr "无法读取文件 \"%s\": %s"
 
-#: pg_waldump.c:232
+#: pg_waldump.c:216
 #, c-format
-msgid "not enough data in file \"%s\""
-msgstr "æ\96\87ä»¶ \"%s\" ä¸­ç\9a\84æ\95°æ\8d®ä¸\8dè¶³"
+msgid "could not read file \"%s\": read %d of %zu"
+msgstr "æ\97 æ³\95读å\8f\96æ\96\87ä»¶\"%1$s\"ï¼\9a读å\8f\96äº\86%3$zu中ç\9a\84%2$d"
 
-#: pg_waldump.c:309
+#: pg_waldump.c:294
 #, c-format
 msgid "could not locate WAL file \"%s\""
 msgstr "找不到WAL文件\"%s\""
 
-#: pg_waldump.c:311
+#: pg_waldump.c:296
 #, c-format
 msgid "could not find any WAL file"
 msgstr "找不到任何WAL文件"
 
-#: pg_waldump.c:382
+#: pg_waldump.c:367
 #, c-format
 msgid "could not find file \"%s\": %s"
 msgstr "找不到文件\"%s\": %s"
 
-#: pg_waldump.c:397
+#: pg_waldump.c:382
 #, c-format
 msgid "could not seek in log file %s to offset %u: %s"
 msgstr "无法在日志文件%s中查找到偏移量%u: %s"
 
-#: pg_waldump.c:417
+#: pg_waldump.c:405
 #, c-format
 msgid "could not read from log file %s, offset %u, length %d: %s"
 msgstr "无法读取日志文件%s,偏移量%u,长度%d: %s"
 
-#: pg_waldump.c:796
+#: pg_waldump.c:408
+#, fuzzy, c-format
+#| msgid "could not read from log file %s, offset %u, length %d: %s"
+msgid "could not read from log file %s, offset %u: read %d of %zu"
+msgstr "无法读取日志文件%s,偏移量%u,长度%d: %s"
+
+#: pg_waldump.c:787
 #, c-format
 msgid ""
 "%s decodes and displays PostgreSQL write-ahead logs for debugging.\n"
@@ -79,17 +95,17 @@ msgstr ""
 "%s 为了调试,解码并显示PostgreSQL预写日志.\n"
 "\n"
 
-#: pg_waldump.c:798
+#: pg_waldump.c:789
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: pg_waldump.c:799
+#: pg_waldump.c:790
 #, c-format
 msgid "  %s [OPTION]... [STARTSEG [ENDSEG]]\n"
 msgstr "  %s [选项]... [STARTSEG [ENDSEG]]\n"
 
-#: pg_waldump.c:800
+#: pg_waldump.c:791
 #, c-format
 msgid ""
 "\n"
@@ -98,27 +114,27 @@ msgstr ""
 "\n"
 "选项:\n"
 
-#: pg_waldump.c:801
+#: pg_waldump.c:792
 #, c-format
 msgid "  -b, --bkp-details      output detailed information about backup blocks\n"
 msgstr "  -b, --bkp-details      输出有关备份块的详细信息\n"
 
-#: pg_waldump.c:802
+#: pg_waldump.c:793
 #, c-format
 msgid "  -e, --end=RECPTR       stop reading at WAL location RECPTR\n"
 msgstr "  -e, --end=RECPTR       在指定的WAL位置停止读取\n"
 
-#: pg_waldump.c:803
+#: pg_waldump.c:794
 #, c-format
 msgid "  -f, --follow           keep retrying after reaching end of WAL\n"
 msgstr "  -f, --follow           在到达可用WAL的末尾之后,继续重试\n"
 
-#: pg_waldump.c:804
+#: pg_waldump.c:795
 #, c-format
 msgid "  -n, --limit=N          number of records to display\n"
 msgstr "  -n, --limit=N          要显示的记录数\n"
 
-#: pg_waldump.c:805
+#: pg_waldump.c:796
 #, c-format
 msgid ""
 "  -p, --path=PATH        directory in which to find log segment files or a\n"
@@ -129,7 +145,7 @@ msgstr ""
 "                         或包含此类文件的./pg_wal目录\n"
 "                         (默认值: 当前的目录, ./pg_wal, $PGDATA/pg_wal)\n"
 
-#: pg_waldump.c:808
+#: pg_waldump.c:799
 #, c-format
 msgid ""
 "  -r, --rmgr=RMGR        only show records generated by resource manager RMGR;\n"
@@ -138,12 +154,12 @@ msgstr ""
 "  -r, --rmgr=RMGR        只显示由RMGR资源管理器生成的记录\n"
 "                         使用--rmgr=list列出有效的资源管理器名称\n"
 
-#: pg_waldump.c:810
+#: pg_waldump.c:801
 #, c-format
 msgid "  -s, --start=RECPTR     start reading at WAL location RECPTR\n"
 msgstr "  -s, --start=RECPTR     在WAL中位于RECPTR处开始阅读\n"
 
-#: pg_waldump.c:811
+#: pg_waldump.c:802
 #, c-format
 msgid ""
 "  -t, --timeline=TLI     timeline from which to read log records\n"
@@ -152,17 +168,17 @@ msgstr ""
 "  -t, --timeline=TLI     要从哪个时间线读取日志记录\n"
 "                         (默认值:1或者是使用STARTSEG中的值)\n"
 
-#: pg_waldump.c:813
+#: pg_waldump.c:804
 #, c-format
 msgid "  -V, --version          output version information, then exit\n"
 msgstr "  -V, --version          输出版本信息, 然后退出\n"
 
-#: pg_waldump.c:814
+#: pg_waldump.c:805
 #, c-format
 msgid "  -x, --xid=XID          only show records with transaction ID XID\n"
 msgstr "  -x, --xid=XID          只显示用给定事务ID标记的记录\n"
 
-#: pg_waldump.c:815
+#: pg_waldump.c:806
 #, c-format
 msgid ""
 "  -z, --stats[=record]   show statistics instead of records\n"
@@ -171,114 +187,127 @@ msgstr ""
 "  -z, --stats[=record]   显示统计信息而不是记录\n"
 "                         (或者,显示每个记录的统计信息)\n"
 
-#: pg_waldump.c:817
+#: pg_waldump.c:808
 #, c-format
 msgid "  -?, --help             show this help, then exit\n"
 msgstr "  -?, --help             显示此帮助, 然后退出\n"
 
-#: pg_waldump.c:876
-#, c-format
-msgid "%s: no arguments specified\n"
+#: pg_waldump.c:868
+#, fuzzy, c-format
+#| msgid "%s: no arguments specified\n"
+msgid "no arguments specified"
 msgstr "%s: 未指定参数\n"
 
-#: pg_waldump.c:891
-#, c-format
-msgid "%s: could not parse end WAL location \"%s\"\n"
+#: pg_waldump.c:883
+#, fuzzy, c-format
+#| msgid "%s: could not parse end WAL location \"%s\"\n"
+msgid "could not parse end WAL location \"%s\""
 msgstr "%s: 无法解析WAL结束位置\"%s\"\n"
 
-#: pg_waldump.c:907
-#, c-format
-msgid "%s: could not parse limit \"%s\"\n"
+#: pg_waldump.c:899
+#, fuzzy, c-format
+#| msgid "%s: could not parse limit \"%s\"\n"
+msgid "could not parse limit \"%s\""
 msgstr "%s: 无法解析限制\"%s\"\n"
 
-#: pg_waldump.c:936
-#, c-format
-msgid "%s: resource manager \"%s\" does not exist\n"
+#: pg_waldump.c:927
+#, fuzzy, c-format
+#| msgid "%s: resource manager \"%s\" does not exist\n"
+msgid "resource manager \"%s\" does not exist"
 msgstr "%s: 资源管理器\"%s\"不存在\n"
 
-#: pg_waldump.c:945
-#, c-format
-msgid "%s: could not parse start WAL location \"%s\"\n"
+#: pg_waldump.c:936
+#, fuzzy, c-format
+#| msgid "%s: could not parse start WAL location \"%s\"\n"
+msgid "could not parse start WAL location \"%s\""
 msgstr "%s: 无法解析WAL起始位置\"%s\"\n"
 
-#: pg_waldump.c:955
-#, c-format
-msgid "%s: could not parse timeline \"%s\"\n"
+#: pg_waldump.c:946
+#, fuzzy, c-format
+#| msgid "%s: could not parse timeline \"%s\"\n"
+msgid "could not parse timeline \"%s\""
 msgstr "%s: 无法解析时间线\"%s\"\n"
 
-#: pg_waldump.c:967
-#, c-format
-msgid "%s: could not parse \"%s\" as a transaction ID\n"
+#: pg_waldump.c:957
+#, fuzzy, c-format
+#| msgid "%s: could not parse \"%s\" as a transaction ID\n"
+msgid "could not parse \"%s\" as a transaction ID"
 msgstr "%s: 无法将\"%s\"解析为事务ID\n"
 
-#: pg_waldump.c:982
-#, c-format
-msgid "%s: unrecognized argument to --stats: %s\n"
+#: pg_waldump.c:972
+#, fuzzy, c-format
+#| msgid "%s: unrecognized argument to --stats: %s\n"
+msgid "unrecognized argument to --stats: %s"
 msgstr "%s: 无法识别的参数--stats: %s\n"
 
-#: pg_waldump.c:996
-#, c-format
-msgid "%s: too many command-line arguments (first is \"%s\")\n"
+#: pg_waldump.c:985
+#, fuzzy, c-format
+#| msgid "%s: too many command-line arguments (first is \"%s\")\n"
+msgid "too many command-line arguments (first is \"%s\")"
 msgstr "%s: 命令行参数太多 (第一个是 \"%s\")\n"
 
-#: pg_waldump.c:1007
-#, c-format
-msgid "%s: path \"%s\" could not be opened: %s\n"
+#: pg_waldump.c:995
+#, fuzzy, c-format
+#| msgid "%s: path \"%s\" could not be opened: %s\n"
+msgid "path \"%s\" could not be opened: %s"
 msgstr "%s: 无法打开路径\"%s\": %s\n"
 
-#: pg_waldump.c:1028
+#: pg_waldump.c:1016
 #, c-format
 msgid "could not open directory \"%s\": %s"
 msgstr "无法打开目录\"%s\": %s"
 
-#: pg_waldump.c:1035 pg_waldump.c:1068
+#: pg_waldump.c:1023 pg_waldump.c:1054
 #, c-format
 msgid "could not open file \"%s\""
 msgstr "could not open file\"%s\""
 
-#: pg_waldump.c:1046
-#, c-format
-msgid "%s: start WAL location %X/%X is not inside file \"%s\"\n"
+#: pg_waldump.c:1033
+#, fuzzy, c-format
+#| msgid "%s: start WAL location %X/%X is not inside file \"%s\"\n"
+msgid "start WAL location %X/%X is not inside file \"%s\""
 msgstr "%s: WAL开始位置%X/%X不在文件\"%s\"中\n"
 
-#: pg_waldump.c:1075
+#: pg_waldump.c:1061
 #, c-format
 msgid "ENDSEG %s is before STARTSEG %s"
 msgstr "ENDSEG %s在STARTSEG %s之前"
 
-#: pg_waldump.c:1091
-#, c-format
-msgid "%s: end WAL location %X/%X is not inside file \"%s\"\n"
+#: pg_waldump.c:1076
+#, fuzzy, c-format
+#| msgid "%s: end WAL location %X/%X is not inside file \"%s\"\n"
+msgid "end WAL location %X/%X is not inside file \"%s\""
 msgstr "%s: WAL结束位置%X/%X不在文件\"%s\"中\n"
 
-#: pg_waldump.c:1105
-#, c-format
-msgid "%s: no start WAL location given\n"
+#: pg_waldump.c:1089
+#, fuzzy, c-format
+#| msgid "%s: no start WAL location given\n"
+msgid "no start WAL location given"
 msgstr "%s: 未给出WAL起始位置\n"
 
-#: pg_waldump.c:1115
+#: pg_waldump.c:1099
 #, c-format
 msgid "out of memory"
 msgstr "内存用尽"
 
-#: pg_waldump.c:1121
+#: pg_waldump.c:1105
 #, c-format
 msgid "could not find a valid record after %X/%X"
 msgstr "在%X/%X之后找不到有效记录"
 
-#: pg_waldump.c:1132
+#: pg_waldump.c:1116
 #, c-format
 msgid "first record is after %X/%X, at %X/%X, skipping over %u byte\n"
 msgid_plural "first record is after %X/%X, at %X/%X, skipping over %u bytes\n"
 msgstr[0] "第一条记录在%X/%X之后,位于%X/%X,跳过了%u个字节\n"
 msgstr[1] "第一条记录在%X/%X之后,位于%X/%X,跳过了%u个字节\n"
 
-#: pg_waldump.c:1183
+#: pg_waldump.c:1167
 #, c-format
 msgid "error in WAL record at %X/%X: %s"
 msgstr "在WAL记录中的%X/%X处错误为: %s"
 
-#: pg_waldump.c:1193
+#: pg_waldump.c:1177
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
index 63aba1490efbcd52ece9488e8565600f9927ef46..bc977b45adbc41dbeab649c386a56e288826d2d2 100644 (file)
@@ -5,8 +5,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: pgscripts (PostgreSQL) 11\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2019-04-12 17:42+0800\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:14+0000\n"
 "PO-Revision-Date: 2019-05-15 18:42+0800\n"
 "Last-Translator: Jie Zhang <zhangjie2@cn.fujitsu.com>\n"
 "Language-Team: Chinese (Simplified) <zhangjie2@cn.fujitsu.com>\n"
@@ -17,6 +17,21 @@ msgstr ""
 "X-Generator: Poedit 1.5.7\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
+#: ../../../src/common/logging.c:188
+#, c-format
+msgid "fatal: "
+msgstr ""
+
+#: ../../../src/common/logging.c:195
+#, c-format
+msgid "error: "
+msgstr ""
+
+#: ../../../src/common/logging.c:202
+#, c-format
+msgid "warning: "
+msgstr ""
+
 #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75
 #: ../../common/fe_memutils.c:98
 #, c-format
@@ -50,58 +65,63 @@ msgid "(%lu row)"
 msgid_plural "(%lu rows)"
 msgstr[0] "(%lu 行记录)"
 
-#: ../../fe_utils/print.c:2939
+#: ../../fe_utils/print.c:3058
 #, c-format
 msgid "Interrupted\n"
 msgstr "已中断\n"
 
-#: ../../fe_utils/print.c:3003
+#: ../../fe_utils/print.c:3122
 #, c-format
 msgid "Cannot add header to table content: column count of %d exceeded.\n"
 msgstr "无法对表的内容增加标题:已经超过%d列的数量.\n"
 
-#: ../../fe_utils/print.c:3043
+#: ../../fe_utils/print.c:3162
 #, c-format
 msgid "Cannot add cell to table content: total cell count of %d exceeded.\n"
 msgstr "无法对表的内容添加单元: 总共有%d个单元超过.\n"
 
-#: ../../fe_utils/print.c:3292
+#: ../../fe_utils/print.c:3417
 #, c-format
 msgid "invalid output format (internal error): %d"
 msgstr "无效的输出格式 (内部错误): %d"
 
-#: clusterdb.c:111 clusterdb.c:130 createdb.c:119 createdb.c:138
-#: createuser.c:166 createuser.c:181 dropdb.c:94 dropdb.c:103 dropdb.c:111
-#: dropuser.c:90 dropuser.c:105 dropuser.c:120 pg_isready.c:93 pg_isready.c:107
-#: reindexdb.c:131 reindexdb.c:150 vacuumdb.c:217 vacuumdb.c:236
+#: clusterdb.c:113 clusterdb.c:132 createdb.c:121 createdb.c:140
+#: createuser.c:168 createuser.c:183 dropdb.c:96 dropdb.c:105 dropdb.c:113
+#: dropuser.c:92 dropuser.c:107 dropuser.c:122 pg_isready.c:95 pg_isready.c:109
+#: reindexdb.c:139 reindexdb.c:158 vacuumdb.c:246 vacuumdb.c:265
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: clusterdb.c:128 createdb.c:136 createuser.c:179 dropdb.c:109 dropuser.c:103
-#: pg_isready.c:105 reindexdb.c:148 vacuumdb.c:234
-#, c-format
-msgid "%s: too many command-line arguments (first is \"%s\")\n"
+#: clusterdb.c:130 createdb.c:138 createuser.c:181 dropdb.c:111 dropuser.c:105
+#: pg_isready.c:107 reindexdb.c:156 vacuumdb.c:263
+#, fuzzy, c-format
+#| msgid "%s: too many command-line arguments (first is \"%s\")\n"
+msgid "too many command-line arguments (first is \"%s\")"
 msgstr "%s: 太多的命令行参数 (第一个是 \"%s\")\n"
 
-#: clusterdb.c:140
-#, c-format
-msgid "%s: cannot cluster all databases and a specific one at the same time\n"
+#: clusterdb.c:142
+#, fuzzy, c-format
+#| msgid "%s: cannot cluster all databases and a specific one at the same time\n"
+msgid "cannot cluster all databases and a specific one at the same time"
 msgstr "%s: 无法对所有数据库和一个指定的数据库同时建簇\n"
 
-#: clusterdb.c:147
-#, c-format
-msgid "%s: cannot cluster specific table(s) in all databases\n"
+#: clusterdb.c:148
+#, fuzzy, c-format
+#| msgid "%s: cannot cluster specific table(s) in all databases\n"
+msgid "cannot cluster specific table(s) in all databases"
 msgstr "%s: 无法在所有数据库中对指定表进行建簇\n"
 
 #: clusterdb.c:216
-#, c-format
-msgid "%s: clustering of table \"%s\" in database \"%s\" failed: %s"
+#, fuzzy, c-format
+#| msgid "%s: clustering of table \"%s\" in database \"%s\" failed: %s"
+msgid "clustering of table \"%s\" in database \"%s\" failed: %s"
 msgstr "%1$s: 在数据库 \"%3$s\" 中的表 \"%2$s\" 建簇失败: %4$s"
 
 #: clusterdb.c:219
-#, c-format
-msgid "%s: clustering of database \"%s\" failed: %s"
+#, fuzzy, c-format
+#| msgid "%s: clustering of database \"%s\" failed: %s"
+msgid "clustering of database \"%s\" failed: %s"
 msgstr "%s: 数据库 \"%s\" 建簇失败: %s"
 
 #: clusterdb.c:252
@@ -118,19 +138,19 @@ msgstr ""
 "%s 对一个数据库中先前已经建过簇的表进行建簇.\n"
 "\n"
 
-#: clusterdb.c:274 createdb.c:252 createuser.c:343 dropdb.c:156 dropuser.c:161
-#: pg_isready.c:222 reindexdb.c:402 vacuumdb.c:998
+#: clusterdb.c:274 createdb.c:250 createuser.c:344 dropdb.c:157 dropuser.c:163
+#: pg_isready.c:224 reindexdb.c:425 vacuumdb.c:1216
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
-#: clusterdb.c:275 reindexdb.c:403 vacuumdb.c:999
+#: clusterdb.c:275 reindexdb.c:426 vacuumdb.c:1217
 #, c-format
 msgid "  %s [OPTION]... [DBNAME]\n"
 msgstr "  %s [选项]... [数据库名]\n"
 
-#: clusterdb.c:276 createdb.c:254 createuser.c:345 dropdb.c:158 dropuser.c:163
-#: pg_isready.c:225 reindexdb.c:404 vacuumdb.c:1000
+#: clusterdb.c:276 createdb.c:252 createuser.c:346 dropdb.c:159 dropuser.c:165
+#: pg_isready.c:227 reindexdb.c:427 vacuumdb.c:1218
 #, c-format
 msgid ""
 "\n"
@@ -149,12 +169,12 @@ msgstr "  -a, --all                 对所有数据库建簇\n"
 msgid "  -d, --dbname=DBNAME       database to cluster\n"
 msgstr "  -d, --dbname=DBNAME       对数据库 DBNAME 建簇\n"
 
-#: clusterdb.c:279 createuser.c:349 dropdb.c:159 dropuser.c:164 reindexdb.c:407
+#: clusterdb.c:279 createuser.c:350 dropdb.c:160 dropuser.c:166 reindexdb.c:431
 #, c-format
 msgid "  -e, --echo                show the commands being sent to the server\n"
 msgstr "  -e, --echo                显示发送到服务端的命令\n"
 
-#: clusterdb.c:280 reindexdb.c:409
+#: clusterdb.c:280 reindexdb.c:433
 #, c-format
 msgid "  -q, --quiet               don't write any messages\n"
 msgstr "  -q, --quiet               不写任何信息\n"
@@ -164,23 +184,23 @@ msgstr "  -q, --quiet               不写任何信息\n"
 msgid "  -t, --table=TABLE         cluster specific table(s) only\n"
 msgstr "  -t, --table=TABLE         只对指定的表建簇\n"
 
-#: clusterdb.c:282 reindexdb.c:413
+#: clusterdb.c:282 reindexdb.c:437
 #, c-format
 msgid "  -v, --verbose             write a lot of output\n"
 msgstr "  -v, --verbose             写大量的输出\n"
 
-#: clusterdb.c:283 createuser.c:361 dropdb.c:161 dropuser.c:167 reindexdb.c:414
+#: clusterdb.c:283 createuser.c:362 dropdb.c:162 dropuser.c:169 reindexdb.c:438
 #, c-format
 msgid "  -V, --version             output version information, then exit\n"
 msgstr "  -V, --version             输出版本信息, 然后退出\n"
 
-#: clusterdb.c:284 createuser.c:366 dropdb.c:163 dropuser.c:169 reindexdb.c:415
+#: clusterdb.c:284 createuser.c:367 dropdb.c:164 dropuser.c:171 reindexdb.c:439
 #, c-format
 msgid "  -?, --help                show this help, then exit\n"
 msgstr "  -?, --help                显示此帮助, 然后退出\n"
 
-#: clusterdb.c:285 createdb.c:265 createuser.c:367 dropdb.c:164 dropuser.c:170
-#: pg_isready.c:231 reindexdb.c:416 vacuumdb.c:1016
+#: clusterdb.c:285 createdb.c:263 createuser.c:368 dropdb.c:165 dropuser.c:172
+#: pg_isready.c:233 reindexdb.c:440 vacuumdb.c:1238
 #, c-format
 msgid ""
 "\n"
@@ -189,36 +209,36 @@ msgstr ""
 "\n"
 "联接选项:\n"
 
-#: clusterdb.c:286 createuser.c:368 dropdb.c:165 dropuser.c:171 reindexdb.c:417
-#: vacuumdb.c:1017
+#: clusterdb.c:286 createuser.c:369 dropdb.c:166 dropuser.c:173 reindexdb.c:441
+#: vacuumdb.c:1239
 #, c-format
 msgid "  -h, --host=HOSTNAME       database server host or socket directory\n"
 msgstr "  -h, --host=HOSTNAM        数据库服务器所在机器的主机名或套接字目录\n"
 
-#: clusterdb.c:287 createuser.c:369 dropdb.c:166 dropuser.c:172 reindexdb.c:418
-#: vacuumdb.c:1018
+#: clusterdb.c:287 createuser.c:370 dropdb.c:167 dropuser.c:174 reindexdb.c:442
+#: vacuumdb.c:1240
 #, c-format
 msgid "  -p, --port=PORT           database server port\n"
 msgstr "  -p, --port=PORT           数据库服务器端口号\n"
 
-#: clusterdb.c:288 dropdb.c:167 reindexdb.c:419 vacuumdb.c:1019
+#: clusterdb.c:288 dropdb.c:168 reindexdb.c:443 vacuumdb.c:1241
 #, c-format
 msgid "  -U, --username=USERNAME   user name to connect as\n"
 msgstr "  -U, --username=USERNAME   联接的用户名\n"
 
-#: clusterdb.c:289 createuser.c:371 dropdb.c:168 dropuser.c:174 reindexdb.c:420
-#: vacuumdb.c:1020
+#: clusterdb.c:289 createuser.c:372 dropdb.c:169 dropuser.c:176 reindexdb.c:444
+#: vacuumdb.c:1242
 #, c-format
 msgid "  -w, --no-password         never prompt for password\n"
 msgstr "  -w, --no-password         永远不提示输入口令\n"
 
-#: clusterdb.c:290 createuser.c:372 dropdb.c:169 dropuser.c:175 reindexdb.c:421
-#: vacuumdb.c:1021
+#: clusterdb.c:290 createuser.c:373 dropdb.c:170 dropuser.c:177 reindexdb.c:445
+#: vacuumdb.c:1243
 #, c-format
 msgid "  -W, --password            force password prompt\n"
 msgstr "  -W, --password            强制提示输入口令\n"
 
-#: clusterdb.c:291 dropdb.c:170 reindexdb.c:422 vacuumdb.c:1022
+#: clusterdb.c:291 dropdb.c:171 reindexdb.c:446 vacuumdb.c:1244
 #, c-format
 msgid "  --maintenance-db=DBNAME   alternate maintenance database\n"
 msgstr "  --maintenance-db=DBNAME   更改维护数据库\n"
@@ -232,105 +252,117 @@ msgstr ""
 "\n"
 "阅读 SQL 命令 CLUSTER 的描述信息, 以便获得更详细的信息.\n"
 
-#: clusterdb.c:293 createdb.c:273 createuser.c:373 dropdb.c:171 dropuser.c:176
-#: pg_isready.c:236 reindexdb.c:424 vacuumdb.c:1024
-#, c-format
+#: clusterdb.c:293 createdb.c:271 createuser.c:374 dropdb.c:172 dropuser.c:178
+#: pg_isready.c:238 reindexdb.c:448 vacuumdb.c:1246
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgid ""
 "\n"
-"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+"Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgstr ""
 "\n"
 "臭虫报告至 <pgsql-bugs@postgresql.org>.\n"
 
-#: common.c:83 common.c:129
+#: common.c:84 common.c:130
 msgid "Password: "
 msgstr "口令: "
 
-#: common.c:116
-#, c-format
-msgid "%s: could not connect to database %s: out of memory\n"
+#: common.c:117
+#, fuzzy, c-format
+#| msgid "%s: could not connect to database %s: out of memory\n"
+msgid "could not connect to database %s: out of memory"
 msgstr "%s:无法连接到数据库 %s:内存不足\n"
 
-#: common.c:143
-#, c-format
-msgid "%s: could not connect to database %s: %s"
+#: common.c:144
+#, fuzzy, c-format
+#| msgid "%s: could not connect to database %s: %s"
+msgid "could not connect to database %s: %s"
 msgstr "%s: 无法联接到数据库 %s: %s"
 
-#: common.c:196 common.c:224
+#: common.c:196 common.c:222
 #, c-format
-msgid "%s: query failed: %s"
-msgstr "%s: 查询失败: %s"
+msgid "query failed: %s"
+msgstr "查询失败: %s"
 
-#: common.c:198 common.c:226
-#, c-format
-msgid "%s: query was: %s\n"
+#: common.c:197 common.c:223
+#, fuzzy, c-format
+#| msgid "%s: query was: %s\n"
+msgid "query was: %s"
 msgstr "%s: 查询是: %s\n"
 
-#: common.c:351
-#, c-format
-msgid "%s: query returned %d row instead of one: %s\n"
-msgid_plural "%s: query returned %d rows instead of one: %s\n"
+#: common.c:339
+#, fuzzy, c-format
+#| msgid "%s: query returned %d row instead of one: %s\n"
+#| msgid_plural "%s: query returned %d rows instead of one: %s\n"
+msgid "query returned %d row instead of one: %s"
+msgid_plural "query returned %d rows instead of one: %s"
 msgstr[0] "%s: 查询返回了%d条记录,而不是一条记录: %s\n"
 
 #. translator: abbreviation for "yes"
-#: common.c:376
+#: common.c:364
 msgid "y"
 msgstr "y"
 
 #. translator: abbreviation for "no"
-#: common.c:378
+#: common.c:366
 msgid "n"
 msgstr "n"
 
 #. translator: This is a question followed by the translated options for
 #. "yes" and "no".
-#: common.c:388
+#: common.c:376
 #, c-format
 msgid "%s (%s/%s) "
 msgstr "%s (%s/%s) "
 
-#: common.c:402
+#: common.c:390
 #, c-format
 msgid "Please answer \"%s\" or \"%s\".\n"
 msgstr "请回答\"%s\"或\"%s\".\n"
 
-#: common.c:481 common.c:518
+#: common.c:469 common.c:506
 #, c-format
 msgid "Cancel request sent\n"
 msgstr "取消发送的请求\n"
 
 # fe-connect.c:1322
-#: common.c:484 common.c:522
+#: common.c:472 common.c:510
 #, c-format
 msgid "Could not send cancel request: %s"
 msgstr "无法发送取消请求: %s"
 
-#: createdb.c:146
-#, c-format
-msgid "%s: only one of --locale and --lc-ctype can be specified\n"
+#: createdb.c:148
+#, fuzzy, c-format
+#| msgid "%s: only one of --locale and --lc-ctype can be specified\n"
+msgid "only one of --locale and --lc-ctype can be specified"
 msgstr "%s: 只能指定--locale和--lc-ctype这两个选项之一\n"
 
-#: createdb.c:152
-#, c-format
-msgid "%s: only one of --locale and --lc-collate can be specified\n"
+#: createdb.c:153
+#, fuzzy, c-format
+#| msgid "%s: only one of --locale and --lc-collate can be specified\n"
+msgid "only one of --locale and --lc-collate can be specified"
 msgstr "%s: 只能指定--locale和--lc-collate这两个选项之一\n"
 
 #: createdb.c:164
 #, c-format
-msgid "%s: \"%s\" is not a valid encoding name\n"
-msgstr "%s: \"%s\" 不是一个有效的编码名称\n"
+msgid "\"%s\" is not a valid encoding name"
+msgstr "\"%s\" 是一个无效编码名"
 
-#: createdb.c:213
-#, c-format
-msgid "%s: database creation failed: %s"
+#: createdb.c:212
+#, fuzzy, c-format
+#| msgid "%s: database creation failed: %s"
+msgid "database creation failed: %s"
 msgstr "%s: 创建数据库失败: %s"
 
-#: createdb.c:233
-#, c-format
-msgid "%s: comment creation failed (database was created): %s"
+#: createdb.c:231
+#, fuzzy, c-format
+#| msgid "%s: comment creation failed (database was created): %s"
+msgid "comment creation failed (database was created): %s"
 msgstr "%s: 创建注释失败 (数据库已创建): %s"
 
-#: createdb.c:251
+#: createdb.c:249
 #, c-format
 msgid ""
 "%s creates a PostgreSQL database.\n"
@@ -339,92 +371,92 @@ msgstr ""
 "%s 创建一个 PostgreSQL 数据库.\n"
 "\n"
 
-#: createdb.c:253
+#: createdb.c:251
 #, c-format
 msgid "  %s [OPTION]... [DBNAME] [DESCRIPTION]\n"
 msgstr "  %s [选项]... [数据库名称] [描述]\n"
 
-#: createdb.c:255
+#: createdb.c:253
 #, c-format
 msgid "  -D, --tablespace=TABLESPACE  default tablespace for the database\n"
 msgstr "  -D, --tablespace=TABLESPACE  数据库默认表空间\n"
 
-#: createdb.c:256
+#: createdb.c:254
 #, c-format
 msgid "  -e, --echo                   show the commands being sent to the server\n"
 msgstr "  -e, --echo                   显示发送到服务端的命令\n"
 
-#: createdb.c:257
+#: createdb.c:255
 #, c-format
 msgid "  -E, --encoding=ENCODING      encoding for the database\n"
 msgstr "  -E, --encoding=ENCODING      数据库编码\n"
 
-#: createdb.c:258
+#: createdb.c:256
 #, c-format
 msgid "  -l, --locale=LOCALE          locale settings for the database\n"
 msgstr "  -l, --locale=LOCALE          数据库的本地化设置\n"
 
-#: createdb.c:259
+#: createdb.c:257
 #, c-format
 msgid "      --lc-collate=LOCALE      LC_COLLATE setting for the database\n"
 msgstr "      --lc-collate=LOCALE      数据库的LC_COLLATE设置\n"
 
-#: createdb.c:260
+#: createdb.c:258
 #, c-format
 msgid "      --lc-ctype=LOCALE        LC_CTYPE setting for the database\n"
 msgstr "      --lc-ctype=LOCALE        数据库的LC_CTYPE设置\n"
 
-#: createdb.c:261
+#: createdb.c:259
 #, c-format
 msgid "  -O, --owner=OWNER            database user to own the new database\n"
 msgstr "  -O, --owner=OWNER            新数据库的所属用户\n"
 
-#: createdb.c:262
+#: createdb.c:260
 #, c-format
 msgid "  -T, --template=TEMPLATE      template database to copy\n"
 msgstr "  -T, --template=TEMPLATE      要拷贝的数据库模板\n"
 
-#: createdb.c:263
+#: createdb.c:261
 #, c-format
 msgid "  -V, --version                output version information, then exit\n"
 msgstr "  -V, --version                输出版本信息, 然后退出\n"
 
-#: createdb.c:264
+#: createdb.c:262
 #, c-format
 msgid "  -?, --help                   show this help, then exit\n"
 msgstr "  -?, --help                   显示此帮助, 然后退出\n"
 
-#: createdb.c:266
+#: createdb.c:264
 #, c-format
 msgid "  -h, --host=HOSTNAME          database server host or socket directory\n"
 msgstr "  -h, --host=HOSTNAME          数据库服务器所在机器的主机名或套接字目录\n"
 
-#: createdb.c:267
+#: createdb.c:265
 #, c-format
 msgid "  -p, --port=PORT              database server port\n"
 msgstr "  -p, --port=PORT              数据库服务器端口号\n"
 
-#: createdb.c:268
+#: createdb.c:266
 #, c-format
 msgid "  -U, --username=USERNAME      user name to connect as\n"
 msgstr "  -U, --username=USERNAME      联接的用户名\n"
 
-#: createdb.c:269
+#: createdb.c:267
 #, c-format
 msgid "  -w, --no-password            never prompt for password\n"
 msgstr "  -w, --no-password            永远不提示输入口令\n"
 
-#: createdb.c:270
+#: createdb.c:268
 #, c-format
 msgid "  -W, --password               force password prompt\n"
 msgstr "  -W, --password               强制提示输入口令\n"
 
-#: createdb.c:271
+#: createdb.c:269
 #, c-format
 msgid "  --maintenance-db=DBNAME      alternate maintenance database\n"
 msgstr "  --maintenance-db=DBNAME      更改维护数据库\n"
 
-#: createdb.c:272
+#: createdb.c:270
 #, c-format
 msgid ""
 "\n"
@@ -433,46 +465,48 @@ msgstr ""
 "\n"
 "默认情况下, 以当前用户的用户名创建数据库.\n"
 
-#: createuser.c:189
+#: createuser.c:191
 msgid "Enter name of role to add: "
 msgstr "输入要增加的角色名称: "
 
-#: createuser.c:206
+#: createuser.c:208
 msgid "Enter password for new role: "
 msgstr "为新角色输入的口令: "
 
-#: createuser.c:208
+#: createuser.c:210
 msgid "Enter it again: "
 msgstr "再输入一遍: "
 
-#: createuser.c:211
+#: createuser.c:213
 #, c-format
 msgid "Passwords didn't match.\n"
 msgstr "口令不匹配.\n"
 
-#: createuser.c:219
+#: createuser.c:221
 msgid "Shall the new role be a superuser?"
 msgstr "新的角色是否是超级用户?"
 
-#: createuser.c:234
+#: createuser.c:236
 msgid "Shall the new role be allowed to create databases?"
 msgstr "新的角色允许创建数据库吗?"
 
-#: createuser.c:242
+#: createuser.c:244
 msgid "Shall the new role be allowed to create more new roles?"
 msgstr "新角色允许创建其它新的角色吗? "
 
-#: createuser.c:272
-#, c-format
-msgid "%s: password encryption failed: %s"
+#: createuser.c:274
+#, fuzzy, c-format
+#| msgid "%s: password encryption failed: %s"
+msgid "password encryption failed: %s"
 msgstr "%s: 密码加密失败: %s"
 
-#: createuser.c:327
-#, c-format
-msgid "%s: creation of new role failed: %s"
+#: createuser.c:329
+#, fuzzy, c-format
+#| msgid "%s: creation of new role failed: %s"
+msgid "creation of new role failed: %s"
 msgstr "%s: 创建新用户失败: %s"
 
-#: createuser.c:342
+#: createuser.c:343
 #, c-format
 msgid ""
 "%s creates a new PostgreSQL role.\n"
@@ -481,32 +515,32 @@ msgstr ""
 "%s 创建一个新的 PostgreSQL 用户.\n"
 "\n"
 
-#: createuser.c:344 dropuser.c:162
+#: createuser.c:345 dropuser.c:164
 #, c-format
 msgid "  %s [OPTION]... [ROLENAME]\n"
 msgstr "  %s [选项]... [用户名]\n"
 
-#: createuser.c:346
+#: createuser.c:347
 #, c-format
 msgid "  -c, --connection-limit=N  connection limit for role (default: no limit)\n"
 msgstr "  -c, --connection-limit=N  角色的连接限制(缺省: 没有限制)\n"
 
-#: createuser.c:347
+#: createuser.c:348
 #, c-format
 msgid "  -d, --createdb            role can create new databases\n"
 msgstr "  -d, --createdb            此角色可以创建新数据库\n"
 
-#: createuser.c:348
+#: createuser.c:349
 #, c-format
 msgid "  -D, --no-createdb         role cannot create databases (default)\n"
 msgstr "  -D, --no-createdb         此角色不可以创建新数据库(默认)\n"
 
-#: createuser.c:350
+#: createuser.c:351
 #, c-format
 msgid "  -g, --role=ROLE           new role will be a member of this role\n"
 msgstr "  -g, --role=ROLE           新的角色必须是这个角色的成员\n"
 
-#: createuser.c:351
+#: createuser.c:352
 #, c-format
 msgid ""
 "  -i, --inherit             role inherits privileges of roles it is a\n"
@@ -515,47 +549,47 @@ msgstr ""
 "  -i, --inherit             角色能够继承它所属角色的权限\n"
 "                           (这是缺省情况)\n"
 
-#: createuser.c:353
+#: createuser.c:354
 #, c-format
 msgid "  -I, --no-inherit          role does not inherit privileges\n"
 msgstr "  -I, --no-inherit          角色不继承权限\n"
 
-#: createuser.c:354
+#: createuser.c:355
 #, c-format
 msgid "  -l, --login               role can login (default)\n"
 msgstr "  -l, --login               角色能够登录(这是缺省情况)\n"
 
-#: createuser.c:355
+#: createuser.c:356
 #, c-format
 msgid "  -L, --no-login            role cannot login\n"
 msgstr "  -L, --no-login            角色不能登录\n"
 
-#: createuser.c:356
+#: createuser.c:357
 #, c-format
 msgid "  -P, --pwprompt            assign a password to new role\n"
 msgstr "  -P, --pwprompt            给新角色指定口令\n"
 
-#: createuser.c:357
+#: createuser.c:358
 #, c-format
 msgid "  -r, --createrole          role can create new roles\n"
 msgstr "  -r, --createrole          这个角色可以创建新的角色\n"
 
-#: createuser.c:358
+#: createuser.c:359
 #, c-format
 msgid "  -R, --no-createrole       role cannot create roles (default)\n"
 msgstr "  -R, --no-createrole       这个角色没有创建其它角色的权限(默认)\n"
 
-#: createuser.c:359
+#: createuser.c:360
 #, c-format
 msgid "  -s, --superuser           role will be superuser\n"
 msgstr "  -s, --superuser           角色将是超级用户\n"
 
-#: createuser.c:360
+#: createuser.c:361
 #, c-format
 msgid "  -S, --no-superuser        role will not be superuser (default)\n"
 msgstr "  -S, --no-superuser        角色不能是超级用户(默认)\n"
 
-#: createuser.c:362
+#: createuser.c:363
 #, c-format
 msgid ""
 "  --interactive             prompt for missing role name and attributes rather\n"
@@ -564,41 +598,43 @@ msgstr ""
 "  --interactive             提示缺少角色名及其属性\n"
 "                            而不是使用默认值\n"
 
-#: createuser.c:364
+#: createuser.c:365
 #, c-format
 msgid "  --replication             role can initiate replication\n"
 msgstr "  --replication             角色能启动复制\n"
 
-#: createuser.c:365
+#: createuser.c:366
 #, c-format
 msgid "  --no-replication          role cannot initiate replication\n"
 msgstr "  --no-replication          角色不能启动复制\n"
 
-#: createuser.c:370
+#: createuser.c:371
 #, c-format
 msgid "  -U, --username=USERNAME   user name to connect as (not the one to create)\n"
 msgstr "  -U, --username=USERNAME   联接用户 (不是要创建的用户名)\n"
 
-#: dropdb.c:102
-#, c-format
-msgid "%s: missing required argument database name\n"
+#: dropdb.c:104
+#, fuzzy, c-format
+#| msgid "%s: missing required argument database name\n"
+msgid "missing required argument database name"
 msgstr "%s: 缺少需要的数据库名参数\n"
 
-#: dropdb.c:117
+#: dropdb.c:119
 #, c-format
 msgid "Database \"%s\" will be permanently removed.\n"
 msgstr "数据库 \"%s\" 将被永久的删除.\n"
 
-#: dropdb.c:118 dropuser.c:128
+#: dropdb.c:120 dropuser.c:130
 msgid "Are you sure?"
 msgstr "您确定吗? (y/n) "
 
-#: dropdb.c:140
-#, c-format
-msgid "%s: database removal failed: %s"
+#: dropdb.c:142
+#, fuzzy, c-format
+#| msgid "%s: database removal failed: %s"
+msgid "database removal failed: %s"
 msgstr "%s: 数据库删除失败: %s"
 
-#: dropdb.c:155
+#: dropdb.c:156
 #, c-format
 msgid ""
 "%s removes a PostgreSQL database.\n"
@@ -607,42 +643,44 @@ msgstr ""
 "%s 删除一个 PostgreSQL 数据库.\n"
 "\n"
 
-#: dropdb.c:157
+#: dropdb.c:158
 #, c-format
 msgid "  %s [OPTION]... DBNAME\n"
 msgstr "  %s [选项]... 数据库名\n"
 
-#: dropdb.c:160
+#: dropdb.c:161
 #, c-format
 msgid "  -i, --interactive         prompt before deleting anything\n"
 msgstr "  -i, --interactive         删除任何东西之前给予提示\n"
 
 # help.c:96
-#: dropdb.c:162
+#: dropdb.c:163
 #, c-format
 msgid "  --if-exists               don't report error if database doesn't exist\n"
 msgstr "  --if-exists               如果数据库不存在则不报告错误\n"
 
-#: dropuser.c:113
+#: dropuser.c:115
 msgid "Enter name of role to drop: "
 msgstr "输入要删除的用户名: "
 
-#: dropuser.c:119
-#, c-format
-msgid "%s: missing required argument role name\n"
+#: dropuser.c:121
+#, fuzzy, c-format
+#| msgid "%s: missing required argument role name\n"
+msgid "missing required argument role name"
 msgstr "%s: 缺少需要的参数角色名\n"
 
-#: dropuser.c:127
+#: dropuser.c:129
 #, c-format
 msgid "Role \"%s\" will be permanently removed.\n"
 msgstr "用户 \"%s\" 将被永久删除.\n"
 
-#: dropuser.c:145
-#, c-format
-msgid "%s: removal of role \"%s\" failed: %s"
+#: dropuser.c:147
+#, fuzzy, c-format
+#| msgid "%s: removal of role \"%s\" failed: %s"
+msgid "removal of role \"%s\" failed: %s"
 msgstr "%s: 删除用户 \"%s\" 失败: %s"
 
-#: dropuser.c:160
+#: dropuser.c:162
 #, c-format
 msgid ""
 "%s removes a PostgreSQL role.\n"
@@ -651,7 +689,7 @@ msgstr ""
 "%s 删除一个 PostgreSQL 用户.\n"
 "\n"
 
-#: dropuser.c:165
+#: dropuser.c:167
 #, c-format
 msgid ""
 "  -i, --interactive         prompt before deleting anything, and prompt for\n"
@@ -660,65 +698,53 @@ msgstr ""
 "  -i, --interactive         删除任何东西之前给予提示, 如果没有指定\n"
 "                            角色名也给予提示\n"
 
-#: dropuser.c:168
+#: dropuser.c:170
 #, c-format
 msgid "  --if-exists               don't report error if user doesn't exist\n"
 msgstr "  --if-exists               用户名不存在时则不报告错误\n"
 
-#: dropuser.c:173
+#: dropuser.c:175
 #, c-format
 msgid "  -U, --username=USERNAME   user name to connect as (not the one to drop)\n"
 msgstr "  -U, --username=USERNAME   联接用户 (不是要删除的用户名)\n"
 
-# command.c:788
-# command.c:808
-# command.c:1163
-# command.c:1170
-# command.c:1180
-# command.c:1192
-# command.c:1205
-# command.c:1219
-# command.c:1241
-# command.c:1272
-# common.c:170
-# copy.c:530
-# copy.c:575
-#: pg_isready.c:142
-#, c-format
-msgid "%s: %s"
-msgstr "%s: %s"
-
-#: pg_isready.c:150
-#, c-format
-msgid "%s: could not fetch default options\n"
+#: pg_isready.c:144
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: pg_isready.c:152
+#, fuzzy, c-format
+#| msgid "%s: could not fetch default options\n"
+msgid "could not fetch default options"
 msgstr "%s: 无法取得缺省选项\n"
 
-#: pg_isready.c:199
+#: pg_isready.c:201
 #, c-format
 msgid "accepting connections\n"
 msgstr "接受连接\n"
 
-#: pg_isready.c:202
+#: pg_isready.c:204
 #, c-format
 msgid "rejecting connections\n"
 msgstr "拒绝连接\n"
 
-#: pg_isready.c:205
+#: pg_isready.c:207
 #, c-format
 msgid "no response\n"
 msgstr "没有响应\n"
 
-#: pg_isready.c:208
+#: pg_isready.c:210
 #, c-format
 msgid "no attempt\n"
 msgstr "没有尝试\n"
 
-#: pg_isready.c:211
+#: pg_isready.c:213
 #, c-format
 msgid "unknown\n"
 msgstr "未知\n"
 
-#: pg_isready.c:221
+#: pg_isready.c:223
 #, c-format
 msgid ""
 "%s issues a connection check to a PostgreSQL database.\n"
@@ -727,122 +753,141 @@ msgstr ""
 "%s 发起一个到指定 PostgreSQL数据库的连接检查.\n"
 "\n"
 
-#: pg_isready.c:223
+#: pg_isready.c:225
 #, c-format
 msgid "  %s [OPTION]...\n"
 msgstr "  %s [选项]...\n"
 
-#: pg_isready.c:226
+#: pg_isready.c:228
 #, c-format
 msgid "  -d, --dbname=DBNAME      database name\n"
 msgstr "  -d, --dbname=DBNAME      数据库名\n"
 
-#: pg_isready.c:227
+#: pg_isready.c:229
 #, c-format
 msgid "  -q, --quiet              run quietly\n"
 msgstr "  -q, --quiet              静默运行\n"
 
-#: pg_isready.c:228
+#: pg_isready.c:230
 #, c-format
 msgid "  -V, --version            output version information, then exit\n"
 msgstr "  -V, --version            输出版本信息, 然后退出\n"
 
-#: pg_isready.c:229
+#: pg_isready.c:231
 #, c-format
 msgid "  -?, --help               show this help, then exit\n"
 msgstr "  -?, --help               显示此帮助, 然后退出\n"
 
-#: pg_isready.c:232
+#: pg_isready.c:234
 #, c-format
 msgid "  -h, --host=HOSTNAME      database server host or socket directory\n"
 msgstr "  -h, --host=主机名        数据库服务器的主机名或套接字目录\n"
 
-#: pg_isready.c:233
+#: pg_isready.c:235
 #, c-format
 msgid "  -p, --port=PORT          database server port\n"
 msgstr "  -p, --port=PORT          数据库服务器端口\n"
 
-#: pg_isready.c:234
+#: pg_isready.c:236
 #, c-format
 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
+#: pg_isready.c:237
 #, c-format
 msgid "  -U, --username=USERNAME  user name to connect as\n"
 msgstr "  -U, --username=USERNAME  连接的用户名\n"
 
-#: reindexdb.c:160
-#, c-format
-msgid "%s: cannot reindex all databases and a specific one at the same time\n"
+#: reindexdb.c:168
+#, fuzzy, c-format
+#| msgid "%s: cannot reindex all databases and a specific one at the same time\n"
+msgid "cannot reindex all databases and a specific one at the same time"
 msgstr "%s: 无法对所有数据库和一个指定的索引同时进行索引重建操作\n"
 
-#: reindexdb.c:165
-#, c-format
-msgid "%s: cannot reindex all databases and system catalogs at the same time\n"
+#: reindexdb.c:173
+#, fuzzy, c-format
+#| msgid "%s: cannot reindex all databases and system catalogs at the same time\n"
+msgid "cannot reindex all databases and system catalogs at the same time"
 msgstr "%s: 无法对所有数据库和系统目录同时进行索引重建操作\n"
 
-#: reindexdb.c:170
-#, c-format
-msgid "%s: cannot reindex specific schema(s) in all databases\n"
+#: reindexdb.c:178
+#, fuzzy, c-format
+#| msgid "%s: cannot reindex specific schema(s) in all databases\n"
+msgid "cannot reindex specific schema(s) in all databases"
 msgstr "%s: 无法在所有数据库中对指定模式上的索引进行重建\n"
 
-#: reindexdb.c:175
-#, c-format
-msgid "%s: cannot reindex specific table(s) in all databases\n"
+#: reindexdb.c:183
+#, fuzzy, c-format
+#| msgid "%s: cannot reindex specific table(s) in all databases\n"
+msgid "cannot reindex specific table(s) in all databases"
 msgstr "%s: 无法在所有数据库中对指定表上的索引进行重建\n"
 
-#: reindexdb.c:180
-#, c-format
-msgid "%s: cannot reindex specific index(es) in all databases\n"
+#: reindexdb.c:188
+#, fuzzy, c-format
+#| msgid "%s: cannot reindex specific index(es) in all databases\n"
+msgid "cannot reindex specific index(es) in all databases"
 msgstr "%s: 无法在所有数据库中对指定的索引进行重建\n"
 
-#: reindexdb.c:191
-#, c-format
-msgid "%s: cannot reindex specific schema(s) and system catalogs at the same time\n"
+#: reindexdb.c:199
+#, fuzzy, c-format
+#| msgid "%s: cannot reindex specific schema(s) and system catalogs at the same time\n"
+msgid "cannot reindex specific schema(s) and system catalogs at the same time"
 msgstr "%s:无法对指定的模式和系统目录同时进行索引重建\n"
 
-#: reindexdb.c:196
-#, c-format
-msgid "%s: cannot reindex specific table(s) and system catalogs at the same time\n"
+#: reindexdb.c:204
+#, fuzzy, c-format
+#| msgid "%s: cannot reindex specific table(s) and system catalogs at the same time\n"
+msgid "cannot reindex specific table(s) and system catalogs at the same time"
 msgstr "%s: 无法对指定的表和系统视图同时进行索引重建操作\n"
 
-#: reindexdb.c:201
-#, c-format
-msgid "%s: cannot reindex specific index(es) and system catalogs at the same time\n"
+#: reindexdb.c:209
+#, fuzzy, c-format
+#| msgid "%s: cannot reindex specific index(es) and system catalogs at the same time\n"
+msgid "cannot reindex specific index(es) and system catalogs at the same time"
 msgstr "%s: 无法对指定索引和系统视图同时进行索引重建操作\n"
 
-#: reindexdb.c:308
-#, c-format
-msgid "%s: reindexing of table \"%s\" in database \"%s\" failed: %s"
+#: reindexdb.c:298 vacuumdb.c:412 vacuumdb.c:420 vacuumdb.c:427 vacuumdb.c:434
+#, fuzzy, c-format
+#| msgid "%s: cannot use the \"%s\" option when performing only analyze\n"
+msgid "cannot use the \"%s\" option on server versions older than PostgreSQL %s"
+msgstr "%s:在只执行分析的时候,无法使用\"%s\"选项\n"
+
+#: reindexdb.c:326
+#, fuzzy, c-format
+#| msgid "%s: reindexing of table \"%s\" in database \"%s\" failed: %s"
+msgid "reindexing of table \"%s\" in database \"%s\" failed: %s"
 msgstr "%1$s: 在数据库\"%3$s\"中对表\"%2$s\"上的索引重新创建失败: %4$s"
 
-#: reindexdb.c:311
-#, c-format
-msgid "%s: reindexing of index \"%s\" in database \"%s\" failed: %s"
+#: reindexdb.c:329
+#, fuzzy, c-format
+#| msgid "%s: reindexing of index \"%s\" in database \"%s\" failed: %s"
+msgid "reindexing of index \"%s\" in database \"%s\" failed: %s"
 msgstr "%1$s: 在数据库\"%3$s\"中对索引\"%2$s\"重新创建失败: %4$s"
 
-#: reindexdb.c:314
-#, c-format
-msgid "%s: reindexing of schema \"%s\" in database \"%s\" failed: %s"
+#: reindexdb.c:332
+#, fuzzy, c-format
+#| msgid "%s: reindexing of schema \"%s\" in database \"%s\" failed: %s"
+msgid "reindexing of schema \"%s\" in database \"%s\" failed: %s"
 msgstr "%1$s: 在数据库\"%3$s\"中对模式\"%2$s\"的索引重建失败:%4$s"
 
-#: reindexdb.c:317
-#, c-format
-msgid "%s: reindexing of database \"%s\" failed: %s"
+#: reindexdb.c:335
+#, fuzzy, c-format
+#| msgid "%s: reindexing of database \"%s\" failed: %s"
+msgid "reindexing of database \"%s\" failed: %s"
 msgstr "%s: 在数据库\"%s\"上重新创建索引失败: %s"
 
-#: reindexdb.c:350
+#: reindexdb.c:369
 #, c-format
 msgid "%s: reindexing database \"%s\"\n"
 msgstr "%s: 对数据库 \"%s\" 重新创建索引\n"
 
-#: reindexdb.c:389
-#, c-format
-msgid "%s: reindexing of system catalogs failed: %s"
+#: reindexdb.c:412
+#, fuzzy, c-format
+#| msgid "%s: reindexing of system catalogs failed: %s"
+msgid "reindexing of system catalogs failed: %s"
 msgstr "%s: 对目录视图重新创建索引失败: %s"
 
-#: reindexdb.c:401
+#: reindexdb.c:424
 #, c-format
 msgid ""
 "%s reindexes a PostgreSQL database.\n"
@@ -851,37 +896,42 @@ msgstr ""
 "%s  对一个PostgreSQL 数据库重新创建索引.\n"
 "\n"
 
-#: reindexdb.c:405
+#: reindexdb.c:428
 #, c-format
 msgid "  -a, --all                 reindex all databases\n"
 msgstr "  -a, --all                 对所有数据库进行重建索引操作\n"
 
-#: reindexdb.c:406
+#: reindexdb.c:429
+#, c-format
+msgid "      --concurrently        reindex concurrently\n"
+msgstr ""
+
+#: reindexdb.c:430
 #, c-format
 msgid "  -d, --dbname=DBNAME       database to reindex\n"
 msgstr "  -d, --dbname=数据库名称   对数据库中的索引进行重建\n"
 
-#: reindexdb.c:408
+#: reindexdb.c:432
 #, c-format
 msgid "  -i, --index=INDEX         recreate specific index(es) only\n"
 msgstr "  -i, --index=INDEX         仅重新创建指定的索引\n"
 
-#: reindexdb.c:410
+#: reindexdb.c:434
 #, c-format
 msgid "  -s, --system              reindex system catalogs\n"
 msgstr "  -s, --system              对系统视图重新创建索引\n"
 
-#: reindexdb.c:411
+#: reindexdb.c:435
 #, c-format
 msgid "  -S, --schema=SCHEMA       reindex specific schema(s) only\n"
 msgstr "  -S, --schema=SCHEMA       只对指定模式重建索引\n"
 
-#: reindexdb.c:412
+#: reindexdb.c:436
 #, c-format
 msgid "  -t, --table=TABLE         reindex specific table(s) only\n"
 msgstr "  -t, --table=表名          只对指定的表重新创建索引\n"
 
-#: reindexdb.c:423
+#: reindexdb.c:447
 #, c-format
 msgid ""
 "\n"
@@ -890,64 +940,81 @@ msgstr ""
 "\n"
 "阅读SQL命令REINDEX的描述信息, 以便获得更详细的信息.\n"
 
-#: vacuumdb.c:199
-#, c-format
-msgid "%s: number of parallel jobs must be at least 1\n"
+#: vacuumdb.c:207
+#, fuzzy, c-format
+#| msgid "%s: number of parallel jobs must be at least 1\n"
+msgid "number of parallel jobs must be at least 1"
 msgstr "%s:并行工作的数量必须至少为1\n"
 
-#: vacuumdb.c:205
-#, c-format
-msgid "%s: too many parallel jobs requested (maximum: %d)\n"
+#: vacuumdb.c:212
+#, fuzzy, c-format
+#| msgid "%s: too many parallel jobs requested (maximum: %d)\n"
+msgid "too many parallel jobs requested (maximum: %d)"
 msgstr "%s:请求了太多并行任务(最大:%d)\n"
 
-#: vacuumdb.c:244 vacuumdb.c:250
+#: vacuumdb.c:233
 #, c-format
-msgid "%s: cannot use the \"%s\" option when performing only analyze\n"
-msgstr "%s:在只执行分析的时候,无法使用\"%s\"选项\n"
+msgid "minimum transaction ID age must be at least 1"
+msgstr ""
 
-#: vacuumdb.c:267
+#: vacuumdb.c:241
 #, c-format
-msgid "%s: cannot vacuum all databases and a specific one at the same time\n"
+msgid "minimum multixact ID age must be at least 1"
+msgstr ""
+
+#: vacuumdb.c:273 vacuumdb.c:279 vacuumdb.c:285
+#, fuzzy, c-format
+#| msgid "%s: cannot use the \"%s\" option when performing only analyze\n"
+msgid "cannot use the \"%s\" option when performing only analyze"
+msgstr "%s:在只执行分析的时候,无法使用\"%s\"选项\n"
+
+#: vacuumdb.c:302
+#, fuzzy, c-format
+#| msgid "%s: cannot vacuum all databases and a specific one at the same time\n"
+msgid "cannot vacuum all databases and a specific one at the same time"
 msgstr "%s: 无法对所有数据库和一个指定的数据库同时清理\n"
 
-#: vacuumdb.c:273
-#, c-format
-msgid "%s: cannot vacuum specific table(s) in all databases\n"
+#: vacuumdb.c:307
+#, fuzzy, c-format
+#| msgid "%s: cannot vacuum specific table(s) in all databases\n"
+msgid "cannot vacuum specific table(s) in all databases"
 msgstr "%s: 无法在所有数据库中对指定的表进行清理\n"
 
-#: vacuumdb.c:359
+#: vacuumdb.c:398
 msgid "Generating minimal optimizer statistics (1 target)"
 msgstr "产生最小优化器统计(一个目标)"
 
-#: vacuumdb.c:360
+#: vacuumdb.c:399
 msgid "Generating medium optimizer statistics (10 targets)"
 msgstr "产生中等优化器统计(10个目标)"
 
-#: vacuumdb.c:361
+#: vacuumdb.c:400
 msgid "Generating default (full) optimizer statistics"
 msgstr "产生缺省(完全)优化器统计"
 
-#: vacuumdb.c:373
+#: vacuumdb.c:442
 #, c-format
 msgid "%s: processing database \"%s\": %s\n"
 msgstr "%s:处理数据库\"%s\":%s\n"
 
-#: vacuumdb.c:376
+#: vacuumdb.c:445
 #, c-format
 msgid "%s: vacuuming database \"%s\"\n"
 msgstr "%s: 清理数据库 \"%s\"\n"
 
-#: vacuumdb.c:724
-#, c-format
-msgid "%s: vacuuming of table \"%s\" in database \"%s\" failed: %s"
+#: vacuumdb.c:942
+#, fuzzy, c-format
+#| msgid "%s: vacuuming of table \"%s\" in database \"%s\" failed: %s"
+msgid "vacuuming of table \"%s\" in database \"%s\" failed: %s"
 msgstr "%1$s: 在数据库 \"%3$s\" 中的表 \"%2$s\" 清理失败: %4$s"
 
-#: vacuumdb.c:727 vacuumdb.c:862
-#, c-format
-msgid "%s: vacuuming of database \"%s\" failed: %s"
+#: vacuumdb.c:945 vacuumdb.c:1080
+#, fuzzy, c-format
+#| msgid "%s: vacuuming of database \"%s\" failed: %s"
+msgid "vacuuming of database \"%s\" failed: %s"
 msgstr "%s: 数据库 \"%s\" 清理失败: %s"
 
-#: vacuumdb.c:997
+#: vacuumdb.c:1215
 #, c-format
 msgid ""
 "%s cleans and analyzes a PostgreSQL database.\n"
@@ -956,67 +1023,87 @@ msgstr ""
 "%s 清理并且优化一个 PostgreSQL 数据库.\n"
 "\n"
 
-#: vacuumdb.c:1001
+#: vacuumdb.c:1219
 #, c-format
 msgid "  -a, --all                       vacuum all databases\n"
 msgstr "  -a, --all                       清理所有的数据库\n"
 
-#: vacuumdb.c:1002
+#: vacuumdb.c:1220
 #, c-format
 msgid "  -d, --dbname=DBNAME             database to vacuum\n"
 msgstr "  -d, --dbname=DBNAME             清理数据库 DBNAME\n"
 
-#: vacuumdb.c:1003
+#: vacuumdb.c:1221
+#, c-format
+msgid "      --disable-page-skipping     disable all page-skipping behavior\n"
+msgstr ""
+
+#: vacuumdb.c:1222
 #, c-format
 msgid "  -e, --echo                      show the commands being sent to the server\n"
 msgstr "  -e, --echo                      显示发送到服务端的命令\n"
 
-#: vacuumdb.c:1004
+#: vacuumdb.c:1223
 #, c-format
 msgid "  -f, --full                      do full vacuuming\n"
 msgstr "  -f, --full                      完全清理\n"
 
-#: vacuumdb.c:1005
+#: vacuumdb.c:1224
 #, c-format
 msgid "  -F, --freeze                    freeze row transaction information\n"
 msgstr "  -F, --freeze                    冻结记录的事务信息\n"
 
-#: vacuumdb.c:1006
+#: vacuumdb.c:1225
 #, c-format
 msgid "  -j, --jobs=NUM                  use this many concurrent connections to vacuum\n"
 msgstr "  -j, --jobs=NUM                  使用这么多个并发连接进行清理\n"
 
-#: vacuumdb.c:1007
+#: vacuumdb.c:1226
+#, c-format
+msgid "      --min-mxid-age=MXID_AGE     minimum multixact ID age of tables to vacuum\n"
+msgstr ""
+
+#: vacuumdb.c:1227
+#, c-format
+msgid "      --min-xid-age=XID_AGE       minimum transaction ID age of tables to vacuum\n"
+msgstr ""
+
+#: vacuumdb.c:1228
 #, c-format
 msgid "  -q, --quiet                     don't write any messages\n"
 msgstr "  -q, --quiet                     不写任何信息\n"
 
-#: vacuumdb.c:1008
+#: vacuumdb.c:1229
+#, c-format
+msgid "      --skip-locked               skip relations that cannot be immediately locked\n"
+msgstr ""
+
+#: vacuumdb.c:1230
 #, c-format
 msgid "  -t, --table='TABLE[(COLUMNS)]'  vacuum specific table(s) only\n"
 msgstr "  -t, --table='TABLE[(COLUMNS)]'  只清理指定的表\n"
 
-#: vacuumdb.c:1009
+#: vacuumdb.c:1231
 #, c-format
 msgid "  -v, --verbose                   write a lot of output\n"
 msgstr "  -v, --verbose                   写大量的输出\n"
 
-#: vacuumdb.c:1010
+#: vacuumdb.c:1232
 #, c-format
 msgid "  -V, --version                   output version information, then exit\n"
 msgstr "  -V, --version                   输出版本信息, 然后退出\n"
 
-#: vacuumdb.c:1011
+#: vacuumdb.c:1233
 #, c-format
 msgid "  -z, --analyze                   update optimizer statistics\n"
 msgstr "  -z, --analyze                   更新优化器统计\n"
 
-#: vacuumdb.c:1012
+#: vacuumdb.c:1234
 #, c-format
 msgid "  -Z, --analyze-only              only update optimizer statistics; no vacuum\n"
 msgstr "  -Z, --analyze-only              只更新优化器统计信息,但不做清理\n"
 
-#: vacuumdb.c:1013
+#: vacuumdb.c:1235
 #, c-format
 msgid ""
 "      --analyze-in-stages         only update optimizer statistics, in multiple\n"
@@ -1025,12 +1112,12 @@ msgstr ""
 "      --analyze-in-stages         只更新优化器统计, 为了更快得到结果分多阶段;\n"
 "                                  不做清理\n"
 
-#: vacuumdb.c:1015
+#: vacuumdb.c:1237
 #, c-format
 msgid "  -?, --help                      show this help, then exit\n"
 msgstr "  -?, --help                      显示此帮助信息, 然后退出\n"
 
-#: vacuumdb.c:1023
+#: vacuumdb.c:1245
 #, c-format
 msgid ""
 "\n"
index 362b419381724991f01067db759dc5616415d177..a375433d09b4c181bb4d2afb8124535dd96179a9 100644 (file)
 msgid ""
 msgstr ""
 "Project-Id-Version: plperl (PostgreSQL) 11\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2019-05-17 16:56-0700\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:08+0000\n"
 "PO-Revision-Date: 2019-05-17 18:35+0800\n"
 "Last-Translator: Jie Zhang <zhangjie2@cn.fujitsu.com>\n"
 "Language-Team: Chinese (Simplified) <zhangjie2@cn.fujitsu.com>\n"
+"Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: plperl.c:409
+#: plperl.c:406
 msgid "If true, trusted and untrusted Perl code will be compiled in strict mode."
 msgstr "如果为真的话,那么信任和非信任的Perl代码将以限制模式编译."
 
-#: plperl.c:423
+#: plperl.c:420
 msgid "Perl initialization code to execute when a Perl interpreter is initialized."
 msgstr "当初始化一个Perl解释器时候执行Perl初始化代码"
 
-#: plperl.c:445
+#: plperl.c:442
 msgid "Perl initialization code to execute once when plperl is first used."
 msgstr "在第一次使用plperl的时候执行一次Perl初始化代码"
 
-#: plperl.c:453
+#: plperl.c:450
 msgid "Perl initialization code to execute once when plperlu is first used."
 msgstr "在plperlu第一次使用的时候执行一次Perl初始化代码"
 
-#: plperl.c:650
+#: plperl.c:647
 #, c-format
 msgid "cannot allocate multiple Perl interpreters on this platform"
 msgstr "在这个平台上无法分配多个Perl解释器"
 
-#: plperl.c:673 plperl.c:857 plperl.c:863 plperl.c:980 plperl.c:992
-#: plperl.c:1035 plperl.c:1058 plperl.c:2143 plperl.c:2253 plperl.c:2321
-#: plperl.c:2384
+#: plperl.c:670 plperl.c:854 plperl.c:860 plperl.c:977 plperl.c:989
+#: plperl.c:1032 plperl.c:1055 plperl.c:2154 plperl.c:2264 plperl.c:2332
+#: plperl.c:2395
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: plperl.c:674
+#: plperl.c:671
 #, c-format
 msgid "while executing PostgreSQL::InServer::SPI::bootstrap"
 msgstr "同时在执行PostgreSQL::InServer::SPI::bootstrap"
 
-#: plperl.c:858
+#: plperl.c:855
 #, c-format
 msgid "while parsing Perl initialization"
 msgstr "同时在解析Perl初始化"
 
-#: plperl.c:864
+#: plperl.c:861
 #, c-format
 msgid "while running Perl initialization"
 msgstr "同时在运行Perl初始化"
 
-#: plperl.c:981
+#: plperl.c:978
 #, c-format
 msgid "while executing PLC_TRUSTED"
 msgstr "同时在执行PLC_TRUSTED"
 
-#: plperl.c:993
+#: plperl.c:990
 #, c-format
 msgid "while executing utf8fix"
 msgstr "同时在执行utf8fix"
 
-#: plperl.c:1036
+#: plperl.c:1033
 #, c-format
 msgid "while executing plperl.on_plperl_init"
 msgstr "同时在执行plperl.on_plperl_init"
 
-#: plperl.c:1059
+#: plperl.c:1056
 #, c-format
 msgid "while executing plperl.on_plperlu_init"
 msgstr "同时在执行plperl.on_plperlu_init"
 
-#: plperl.c:1105 plperl.c:1787
+#: plperl.c:1102 plperl.c:1793
 #, c-format
 msgid "Perl hash contains nonexistent column \"%s\""
 msgstr "Perl的哈希功能包含不存在的列\"%s\""
 
-#: plperl.c:1110 plperl.c:1792
+#: plperl.c:1107 plperl.c:1798
 #, c-format
 msgid "cannot set system attribute \"%s\""
 msgstr "不能设置系统属性\"%s\""
 
-#: plperl.c:1198
+#: plperl.c:1195
 #, c-format
 msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
 msgstr "数组的维数(%d)超过最大允许值(%d)"
 
-#: plperl.c:1210 plperl.c:1227
+#: plperl.c:1207 plperl.c:1224
 #, c-format
 msgid "multidimensional arrays must have array expressions with matching dimensions"
 msgstr "多维数组必须有符合维度的数组表达式"
 
-#: plperl.c:1263
+#: plperl.c:1260
 #, c-format
 msgid "cannot convert Perl array to non-array type %s"
 msgstr "无法将Perl数组转换成非数组类型 %s"
 
-#: plperl.c:1366
+#: plperl.c:1363
 #, c-format
 msgid "cannot convert Perl hash to non-composite type %s"
 msgstr "无法将Perl哈希类型转换成非组合类型 %s"
 
-#: plperl.c:1388 plperl.c:3288
+#: plperl.c:1385 plperl.c:3306
 #, c-format
 msgid "function returning record called in context that cannot accept type record"
 msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用"
 
-#: plperl.c:1447
+#: plperl.c:1444
 #, c-format
 msgid "lookup failed for type %s"
 msgstr "类型%s查找失败"
 
-#: plperl.c:1762
+#: plperl.c:1768
 #, c-format
 msgid "$_TD->{new} does not exist"
 msgstr "$_TD->{new}不存在"
 
-#: plperl.c:1766
+#: plperl.c:1772
 #, c-format
 msgid "$_TD->{new} is not a hash reference"
 msgstr "$_TD->{new}不是一个哈希引用"
 
-#: plperl.c:2018 plperl.c:2860
+#: plperl.c:1803
+#, fuzzy, c-format
+#| msgid "cannot set system attribute \"%s\""
+msgid "cannot set generated column \"%s\""
+msgstr "不能设置系统属性\"%s\""
+
+#: plperl.c:2029 plperl.c:2871
 #, c-format
 msgid "PL/Perl functions cannot return type %s"
 msgstr "PL/Perl函数无法返回类型%s"
 
-#: plperl.c:2031 plperl.c:2901
+#: plperl.c:2042 plperl.c:2912
 #, c-format
 msgid "PL/Perl functions cannot accept type %s"
 msgstr "PL/Perl 函数无法使用类型%s"
 
-#: plperl.c:2148
+#: plperl.c:2159
 #, c-format
 msgid "didn't get a CODE reference from compiling function \"%s\""
 msgstr "没有从正在编译的函数 \"%s\"得到CODE参考"
 
-#: plperl.c:2241
+#: plperl.c:2252
 #, c-format
 msgid "didn't get a return item from function"
 msgstr "没有从函数得到一个返回项"
 
-#: plperl.c:2285 plperl.c:2352
+#: plperl.c:2296 plperl.c:2363
 #, c-format
 msgid "couldn't fetch $_TD"
 msgstr "无法取得 $_TD"
 
-#: plperl.c:2309 plperl.c:2372
+#: plperl.c:2320 plperl.c:2383
 #, c-format
 msgid "didn't get a return item from trigger function"
 msgstr "没有从触发器函数得到一个返回项"
 
-#: plperl.c:2433
+#: plperl.c:2444
 #, c-format
 msgid "set-valued function called in context that cannot accept a set"
 msgstr "集值函数在不能使用集合的环境中调用"
 
-#: plperl.c:2478
+#: plperl.c:2489
 #, c-format
 msgid "set-returning PL/Perl function must return reference to array or use return_next"
 msgstr "返回集合的PL/Perl函数必须返回对数组的引用或者使用return_next"
 
-#: plperl.c:2599
+#: plperl.c:2610
 #, c-format
 msgid "ignoring modified row in DELETE trigger"
 msgstr "在DELETE触发器中忽略已修改的记录"
 
-#: plperl.c:2607
+#: plperl.c:2618
 #, c-format
 msgid "result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\""
 msgstr "PL/Perl 触发器函数的结果必须是undef, \"SKIP\", 或 \"MODIFY\""
 
-#: plperl.c:2855
+#: plperl.c:2866
 #, c-format
 msgid "trigger functions can only be called as triggers"
 msgstr "触发器函数只能以触发器的形式调用"
 
-#: plperl.c:3195
+#: plperl.c:3213
 #, c-format
 msgid "query result has too many rows to fit in a Perl array"
 msgstr "查询结果中的行太多,无法放在一个Perl数组中"
 
-#: plperl.c:3265
+#: plperl.c:3283
 #, c-format
 msgid "cannot use return_next in a non-SETOF function"
 msgstr "不能在非SETOF函数中使用return_next"
 
-#: plperl.c:3339
+#: plperl.c:3357
 #, 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:4113
+#: plperl.c:4132
 #, c-format
 msgid "PL/Perl function \"%s\""
 msgstr "PL/Perl函数\"%s\""
 
-#: plperl.c:4125
+#: plperl.c:4144
 #, c-format
 msgid "compilation of PL/Perl function \"%s\""
 msgstr "编译PL/Perl函数\"%s\""
 
-#: plperl.c:4134
+#: plperl.c:4153
 #, c-format
 msgid "PL/Perl anonymous code block"
 msgstr "PL/Perl匿名代码块"
-
index 1aea854d0ec118e4db10ef77e21cd64aee32fbd2..bbbf72c4c98aa46975be05e582c49539b0465724 100644 (file)
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: plpgsql (PostgreSQL) 11\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2019-04-12 17:42+0800\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:08+0000\n"
 "PO-Revision-Date: 2019-05-16 18:20+0800\n"
 "Last-Translator: Jie Zhang <zhangjie2@cn.fujitsu.com>\n"
 "Language-Team: Chinese (Simplified) <zhangjie2@cn.fujitsu.com>\n"
@@ -18,93 +18,93 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: pl_comp.c:434 pl_handler.c:457
+#: pl_comp.c:436 pl_handler.c:461
 #, c-format
 msgid "PL/pgSQL functions cannot accept type %s"
 msgstr "PL/pgSQL函数不使用类型%s"
 
-#: pl_comp.c:522
+#: pl_comp.c:524
 #, c-format
 msgid "could not determine actual return type for polymorphic function \"%s\""
 msgstr "无法确定多态函数\"%s\"的实际返回类型"
 
-#: pl_comp.c:552
+#: pl_comp.c:554
 #, c-format
 msgid "trigger functions can only be called as triggers"
 msgstr "触发器函数只能以触发器的形式调用"
 
-#: pl_comp.c:556 pl_handler.c:441
+#: pl_comp.c:558 pl_handler.c:445
 #, c-format
 msgid "PL/pgSQL functions cannot return type %s"
 msgstr "PL/pgSQL函数不能返回类型%s"
 
-#: pl_comp.c:595
+#: pl_comp.c:597
 #, c-format
 msgid "trigger functions cannot have declared arguments"
 msgstr "触发器函数不能有已声明的参数"
 
-#: pl_comp.c:596
+#: pl_comp.c:598
 #, 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:719
+#: pl_comp.c:721
 #, c-format
 msgid "event trigger functions cannot have declared arguments"
 msgstr "事件触发器函数不能有已声明的参数"
 
-#: pl_comp.c:976
+#: pl_comp.c:980
 #, c-format
 msgid "compilation of PL/pgSQL function \"%s\" near line %d"
 msgstr "在第%2$d行附件编译PL/pgSQL函数\"%1$s\""
 
-#: pl_comp.c:999
+#: pl_comp.c:1003
 #, c-format
 msgid "parameter name \"%s\" used more than once"
 msgstr "多次使用参数名称 \"%s\""
 
-#: pl_comp.c:1109
+#: pl_comp.c:1115
 #, c-format
 msgid "column reference \"%s\" is ambiguous"
 msgstr "字段关联 \"%s\" 是不明确的"
 
-#: pl_comp.c:1111
+#: pl_comp.c:1117
 #, c-format
 msgid "It could refer to either a PL/pgSQL variable or a table column."
 msgstr "可以指向一个PL/pgSQL变量或表中的列"
 
-#: pl_comp.c:1294 pl_exec.c:5079 pl_exec.c:5444 pl_exec.c:5531 pl_exec.c:5622
-#: pl_exec.c:6540
+#: pl_comp.c:1300 pl_exec.c:5106 pl_exec.c:5471 pl_exec.c:5558 pl_exec.c:5649
+#: pl_exec.c:6566
 #, c-format
 msgid "record \"%s\" has no field \"%s\""
 msgstr "记录\"%s\"没有字段\"%s\""
 
-#: pl_comp.c:1756
+#: pl_comp.c:1765
 #, c-format
 msgid "relation \"%s\" does not exist"
 msgstr "关系 \"%s\" 不存在"
 
-#: pl_comp.c:1848
+#: pl_comp.c:1857
 #, c-format
 msgid "variable \"%s\" has pseudo-type %s"
 msgstr "变量\"%s\"具有伪类型%s"
 
-#: pl_comp.c:2028
+#: pl_comp.c:2037
 #, c-format
 msgid "type \"%s\" is only a shell"
 msgstr "类型 \"%s\" 只是一个 shell"
 
-#: pl_comp.c:2125 pl_comp.c:2178
+#: pl_comp.c:2134 pl_comp.c:2187
 #, c-format
 msgid "unrecognized exception condition \"%s\""
 msgstr "不可识别的异常条件\"%s\""
 
-#: pl_comp.c:2392
+#: pl_comp.c:2401
 #, c-format
 msgid "could not determine actual argument type for polymorphic function \"%s\""
 msgstr "无法确定多态函数\"%s\"的实际参数类型"
 
-#: pl_exec.c:475 pl_exec.c:887 pl_exec.c:1105
+#: pl_exec.c:475 pl_exec.c:887 pl_exec.c:1125
 msgid "during initialization of execution state"
 msgstr "在执行状态的初始化期间"
 
@@ -112,7 +112,7 @@ msgstr "在执行状态的初始化期间"
 msgid "while storing call arguments into local variables"
 msgstr "在将调用的参数存储到本地变量时"
 
-#: pl_exec.c:569 pl_exec.c:940
+#: pl_exec.c:569 pl_exec.c:960
 msgid "during function entry"
 msgstr "在进入函数期间"
 
@@ -125,37 +125,37 @@ msgstr "控制流程到达函数的结束部分,但是没有看到RETURN"
 msgid "while casting return value to function's return type"
 msgstr "正在将返回值强行指派为函数的返回类型"
 
-#: pl_exec.c:614 pl_exec.c:3542
+#: pl_exec.c:614 pl_exec.c:3556
 #, c-format
 msgid "set-valued function called in context that cannot accept a set"
 msgstr "集值函数在不接受使用集合的环境中调用"
 
-#: pl_exec.c:740 pl_exec.c:969 pl_exec.c:1130
+#: pl_exec.c:740 pl_exec.c:989 pl_exec.c:1150
 msgid "during function exit"
 msgstr "在函数退出期间"
 
-#: pl_exec.c:795 pl_exec.c:834 pl_exec.c:3387
+#: pl_exec.c:795 pl_exec.c:834 pl_exec.c:3401
 msgid "returned record type does not match expected record type"
 msgstr "所返回的记录类型与所期待的记录类型不匹配"
 
-#: pl_exec.c:965 pl_exec.c:1126
+#: pl_exec.c:985 pl_exec.c:1146
 #, c-format
 msgid "control reached end of trigger procedure without RETURN"
 msgstr "控制流程到达触发器/存储过程的结束部分,但是没有看到RETURN"
 
-#: pl_exec.c:974
+#: pl_exec.c:994
 #, c-format
 msgid "trigger procedure cannot return a set"
 msgstr "触发器存储过程无法返回集合"
 
-#: pl_exec.c:1013 pl_exec.c:1041
+#: pl_exec.c:1033 pl_exec.c:1061
 msgid "returned row structure does not match the structure of the triggering table"
 msgstr "所返回的记录结构与触发表的结构不匹配"
 
 #. translator: last %s is a phrase such as "during statement block
 #. local variable initialization"
 #.
-#: pl_exec.c:1178
+#: pl_exec.c:1198
 #, c-format
 msgid "PL/pgSQL function %s line %d %s"
 msgstr "PL/pgSQL 函数%s在第%d行%s"
@@ -163,319 +163,340 @@ msgstr "PL/pgSQL 函数%s在第%d行%s"
 #. translator: last %s is a phrase such as "while storing call
 #. arguments into local variables"
 #.
-#: pl_exec.c:1189
+#: pl_exec.c:1209
 #, 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:1197
+#: pl_exec.c:1217
 #, c-format
 msgid "PL/pgSQL function %s line %d at %s"
 msgstr "在%3$s的第%2$d行的PL/pgSQL函数%1$s"
 
-#: pl_exec.c:1203
+#: pl_exec.c:1223
 #, c-format
 msgid "PL/pgSQL function %s"
 msgstr "PL/pgSQL函数 %s"
 
-#: pl_exec.c:1541
+#: pl_exec.c:1561
 msgid "during statement block local variable initialization"
 msgstr "在初始化语句块的局部变量期间"
 
-#: pl_exec.c:1639
+#: pl_exec.c:1659
 msgid "during statement block entry"
 msgstr "在进入语句块期间"
 
-#: pl_exec.c:1671
+#: pl_exec.c:1691
 msgid "during statement block exit"
 msgstr "在退出语句块期间"
 
-#: pl_exec.c:1709
+#: pl_exec.c:1729
 msgid "during exception cleanup"
 msgstr "在清理异常期间"
 
-#: pl_exec.c:2205
+#: pl_exec.c:2225
 #, c-format
 msgid "procedure parameter \"%s\" is an output parameter but corresponding argument is not writable"
 msgstr "过程参数\"%s\"是输出参数,但相应的参数不可写"
 
-#: pl_exec.c:2210
+#: pl_exec.c:2230
 #, c-format
 msgid "procedure parameter %d is an output parameter but corresponding argument is not writable"
 msgstr "过程参数%d是输出参数,但相应的参数不可写"
 
-#: pl_exec.c:2321
+#: pl_exec.c:2341
 #, c-format
 msgid "GET STACKED DIAGNOSTICS cannot be used outside an exception handler"
 msgstr "GET STACKED DIAGNOSTICS不能用于异常处理之外"
 
-#: pl_exec.c:2526
+#: pl_exec.c:2540
 #, c-format
 msgid "case not found"
 msgstr "没有找到CASE"
 
-#: pl_exec.c:2527
+#: pl_exec.c:2541
 #, c-format
 msgid "CASE statement is missing ELSE part."
 msgstr "在CASE语句结构中丢失ELSE部分"
 
-#: pl_exec.c:2620
+#: pl_exec.c:2634
 #, c-format
 msgid "lower bound of FOR loop cannot be null"
 msgstr "FOR循环的低位边界不能为空"
 
-#: pl_exec.c:2636
+#: pl_exec.c:2650
 #, c-format
 msgid "upper bound of FOR loop cannot be null"
 msgstr "FOR循环的高位边界不能为空"
 
-#: pl_exec.c:2654
+#: pl_exec.c:2668
 #, c-format
 msgid "BY value of FOR loop cannot be null"
 msgstr "FOR循环的BY值不能为空"
 
-#: pl_exec.c:2660
+#: pl_exec.c:2674
 #, c-format
 msgid "BY value of FOR loop must be greater than zero"
 msgstr "FOR循环的BY值必须大于0"
 
-#: pl_exec.c:2794 pl_exec.c:4509
+#: pl_exec.c:2808 pl_exec.c:4530
 #, c-format
 msgid "cursor \"%s\" already in use"
 msgstr "游标\"%s\"已经在使用"
 
-#: pl_exec.c:2817 pl_exec.c:4574
+#: pl_exec.c:2831 pl_exec.c:4595
 #, c-format
 msgid "arguments given for cursor without arguments"
 msgstr "给不带有参数的游标指定参数"
 
-#: pl_exec.c:2836 pl_exec.c:4593
+#: pl_exec.c:2850 pl_exec.c:4614
 #, c-format
 msgid "arguments required for cursor"
 msgstr "游标需要参数"
 
-#: pl_exec.c:2923
+#: pl_exec.c:2937
 #, c-format
 msgid "FOREACH expression must not be null"
 msgstr "FOREACH表达式不能为空"
 
-#: pl_exec.c:2938
+#: pl_exec.c:2952
 #, c-format
 msgid "FOREACH expression must yield an array, not type %s"
 msgstr "FOREACH表达式的结果必须是数组, 而不是类型 %s"
 
-#: pl_exec.c:2955
+#: pl_exec.c:2969
 #, c-format
 msgid "slice dimension (%d) is out of the valid range 0..%d"
 msgstr "索引维数(%d)超出有效范围: 0..%d"
 
-#: pl_exec.c:2982
+#: pl_exec.c:2996
 #, c-format
 msgid "FOREACH ... SLICE loop variable must be of an array type"
 msgstr "FOREACH ... SLICE循环变量必须属于数组类型"
 
-#: pl_exec.c:2986
+#: pl_exec.c:3000
 #, c-format
 msgid "FOREACH loop variable must not be of an array type"
 msgstr "FOREACH循环变量不能为数组类型"
 
-#: pl_exec.c:3148 pl_exec.c:3205 pl_exec.c:3380
+#: pl_exec.c:3162 pl_exec.c:3219 pl_exec.c:3394
 #, c-format
 msgid "cannot return non-composite value from function returning composite type"
 msgstr "返回值为组合类型的函数不能返回非组合型的值"
 
-#: pl_exec.c:3244 pl_gram.y:3267
+#: pl_exec.c:3258 pl_gram.y:3305
 #, c-format
 msgid "cannot use RETURN NEXT in a non-SETOF function"
 msgstr "无法在非SETOF函数中使用RETURN NEXT"
 
-#: pl_exec.c:3285 pl_exec.c:3417
+#: pl_exec.c:3299 pl_exec.c:3431
 #, c-format
 msgid "wrong result type supplied in RETURN NEXT"
 msgstr "在RETURN NEXT中提供了错误的结果类型"
 
-#: pl_exec.c:3323 pl_exec.c:3344
+#: pl_exec.c:3337 pl_exec.c:3358
 #, c-format
 msgid "wrong record type supplied in RETURN NEXT"
 msgstr "在RETURN NEXT中提供了错误的记录类型"
 
-#: pl_exec.c:3436
+#: pl_exec.c:3450
 #, c-format
 msgid "RETURN NEXT must have a parameter"
 msgstr "RETURN NEXT必须有一个参数"
 
-#: pl_exec.c:3462 pl_gram.y:3330
+#: pl_exec.c:3476 pl_gram.y:3369
 #, c-format
 msgid "cannot use RETURN QUERY in a non-SETOF function"
 msgstr "无法在非SETOF函数中使用RETURN QUERY"
 
-#: pl_exec.c:3486
+#: pl_exec.c:3500
 msgid "structure of query does not match function result type"
 msgstr "查询的结构与函数的返回类型不匹配"
 
-#: pl_exec.c:3570 pl_exec.c:3708
+#: pl_exec.c:3584 pl_exec.c:3722
 #, c-format
 msgid "RAISE option already specified: %s"
 msgstr "已经指定了RAISE选项:%s"
 
-#: pl_exec.c:3604
+#: pl_exec.c:3618
 #, c-format
 msgid "RAISE without parameters cannot be used outside an exception handler"
 msgstr "不带有参数的RAISE不能在异常处理的外部使用"
 
-#: pl_exec.c:3698
+#: pl_exec.c:3712
 #, c-format
 msgid "RAISE statement option cannot be null"
 msgstr "RAISE语句选项不能为空"
 
-#: pl_exec.c:3768
+#: pl_exec.c:3782
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: pl_exec.c:3823
+#: pl_exec.c:3837
 #, c-format
 msgid "assertion failed"
 msgstr "断言失败"
 
-#: pl_exec.c:4160 pl_exec.c:4347
+#: pl_exec.c:4179 pl_exec.c:4369
 #, c-format
 msgid "cannot COPY to/from client in PL/pgSQL"
 msgstr "无法在PL/pgSQL中从客户端或向客户端使用COPY命令"
 
-#: pl_exec.c:4166
+#: pl_exec.c:4185
 #, c-format
 msgid "unsupported transaction command in PL/pgSQL"
 msgstr "PL/pgSQL中不支持的事务命令"
 
-#: pl_exec.c:4190 pl_exec.c:4377
+#: pl_exec.c:4208 pl_exec.c:4398
 #, c-format
 msgid "INTO used with a command that cannot return data"
 msgstr "使用了带有无法返回数据的命令的INTO"
 
-#: pl_exec.c:4213 pl_exec.c:4400
+#: pl_exec.c:4231 pl_exec.c:4421
 #, c-format
 msgid "query returned no rows"
 msgstr "查询没有返回记录"
 
-#: pl_exec.c:4232 pl_exec.c:4419
+#: pl_exec.c:4253 pl_exec.c:4440
 #, c-format
 msgid "query returned more than one row"
 msgstr "查询返回多条记录"
 
-#: pl_exec.c:4249
+#: pl_exec.c:4255
+#, c-format
+msgid "Make sure the query returns a single row, or use LIMIT 1."
+msgstr ""
+
+#: pl_exec.c:4271
 #, c-format
 msgid "query has no destination for result data"
 msgstr "对于结果数据,查询没有目标"
 
-#: pl_exec.c:4250
+#: pl_exec.c:4272
 #, c-format
 msgid "If you want to discard the results of a SELECT, use PERFORM instead."
 msgstr "如果您想要放弃SELECT语句的结果,请使用PERFORM."
 
-#: pl_exec.c:4283 pl_exec.c:8301
+#: pl_exec.c:4305 pl_exec.c:8416
 #, c-format
 msgid "query string argument of EXECUTE is null"
 msgstr "EXECUTE的查询字符串参数是空值"
 
-#: pl_exec.c:4339
+#: pl_exec.c:4361
 #, c-format
 msgid "EXECUTE of SELECT ... INTO is not implemented"
 msgstr "没有执行EXECUTE of SELECT ... INTO "
 
-#: pl_exec.c:4340
+#: pl_exec.c:4362
 #, 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:4353
+#: pl_exec.c:4375
 #, c-format
 msgid "EXECUTE of transaction commands is not implemented"
 msgstr "未执行事务命令"
 
-#: pl_exec.c:4655 pl_exec.c:4743
+#: pl_exec.c:4676 pl_exec.c:4764
 #, c-format
 msgid "cursor variable \"%s\" is null"
 msgstr "游标变量\"%s\"是空的"
 
-#: pl_exec.c:4666 pl_exec.c:4754
+#: pl_exec.c:4687 pl_exec.c:4775
 #, c-format
 msgid "cursor \"%s\" does not exist"
 msgstr "游标 \"%s\" 不存在"
 
-#: pl_exec.c:4679
+#: pl_exec.c:4700
 #, c-format
 msgid "relative or absolute cursor position is null"
 msgstr "游标的相对或绝对位置是空的"
 
-#: pl_exec.c:4929 pl_exec.c:5024
+#: pl_exec.c:4956 pl_exec.c:5051
 #, c-format
 msgid "null value cannot be assigned to variable \"%s\" declared NOT NULL"
 msgstr "不能将声明为NOT NULL的变量\"%s\" 分配空值"
 
-#: pl_exec.c:5005
+#: pl_exec.c:5032
 #, c-format
 msgid "cannot assign non-composite value to a row variable"
 msgstr "无法将非组合值分配给记录变量"
 
-#: pl_exec.c:5037
+#: pl_exec.c:5064
 #, c-format
 msgid "cannot assign non-composite value to a record variable"
 msgstr "无法将非组合值分配给记录类型变量"
 
-#: pl_exec.c:5088
+#: pl_exec.c:5115
 #, c-format
 msgid "cannot assign to system column \"%s\""
 msgstr "不能指定系统字段名 \"%s\""
 
-#: pl_exec.c:5152
+#: pl_exec.c:5179
 #, c-format
 msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
 msgstr "数组维数(%d)超过了最大允许值(%d)"
 
-#: pl_exec.c:5184
+#: pl_exec.c:5211
 #, c-format
 msgid "subscripted object is not an array"
 msgstr "下标对象不是一个数组"
 
-#: pl_exec.c:5222
+#: pl_exec.c:5249
 #, c-format
 msgid "array subscript in assignment must not be null"
 msgstr "在赋值中数组下标不能为空"
 
-#: pl_exec.c:5729
+#: pl_exec.c:5756
 #, c-format
 msgid "query \"%s\" did not return data"
 msgstr "查询\"%s\"没有返回数据"
 
-#: pl_exec.c:5737
+#: pl_exec.c:5764
 #, c-format
 msgid "query \"%s\" returned %d column"
 msgid_plural "query \"%s\" returned %d columns"
 msgstr[0] "查询\"%s\"返回%d列"
 
-#: pl_exec.c:5765
+#: pl_exec.c:5792
 #, c-format
 msgid "query \"%s\" returned more than one row"
 msgstr "查询\"%s\"返回多条数据"
 
-#: pl_exec.c:5828
+#: pl_exec.c:5855
 #, c-format
 msgid "query \"%s\" is not a SELECT"
 msgstr "查询 \"%s\"不是SELECT语句"
 
-#: pl_exec.c:6554 pl_exec.c:6594 pl_exec.c:6634
+#: pl_exec.c:6580 pl_exec.c:6620 pl_exec.c:6660
 #, c-format
 msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)"
 msgstr "第%d个参数(%s)的类型与正在执行计划(%s)中的不匹配"
 
-#: pl_exec.c:7409
+#: pl_exec.c:6996 pl_exec.c:7030 pl_exec.c:7104 pl_exec.c:7130
+#, c-format
+msgid "number of source and target fields in assignment does not match"
+msgstr ""
+
+#. translator: %s represents a name of an extra check
+#: pl_exec.c:6998 pl_exec.c:7032 pl_exec.c:7106 pl_exec.c:7132
+#, c-format
+msgid "%s check of %s is active."
+msgstr ""
+
+#: pl_exec.c:7002 pl_exec.c:7036 pl_exec.c:7110 pl_exec.c:7136
+#, c-format
+msgid "Make sure the query returns the exact list of columns."
+msgstr ""
+
+#: pl_exec.c:7518
 #, c-format
 msgid "record \"%s\" is not assigned yet"
 msgstr "记录 \"%s\"还没有分配"
 
-#: pl_exec.c:7410
+#: pl_exec.c:7519
 #, c-format
 msgid "The tuple structure of a not-yet-assigned record is indeterminate."
 msgstr "未分配记录的元组结构未确定."
@@ -512,312 +533,312 @@ msgstr "SQL语句"
 msgid "FOR over EXECUTE statement"
 msgstr "在EXECUTE语句上的FOR语句"
 
-#: pl_gram.y:485
+#: pl_gram.y:489
 #, c-format
 msgid "block label must be placed before DECLARE, not after"
 msgstr "代码块标签必须放在DECLARE的前面,而不是后面"
 
-#: pl_gram.y:505
+#: pl_gram.y:509
 #, c-format
 msgid "collations are not supported by type %s"
 msgstr "类型 %s不支持校对函数"
 
-#: pl_gram.y:524
+#: pl_gram.y:528
 #, c-format
 msgid "variable \"%s\" must have a default value, since it's declared NOT NULL"
 msgstr "变量\"%s\"必须有默认值,因为它声明为非空"
 
-#: pl_gram.y:670 pl_gram.y:685 pl_gram.y:711
+#: 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:729 pl_gram.y:757
+#: pl_gram.y:733 pl_gram.y:761
 msgid "duplicate declaration"
 msgstr "重复声明"
 
-#: pl_gram.y:740 pl_gram.y:768
+#: pl_gram.y:744 pl_gram.y:772
 #, c-format
 msgid "variable \"%s\" shadows a previously defined variable"
 msgstr "变量\"%s\"隐藏了前一个已定义的变量"
 
-#: pl_gram.y:984
+#: pl_gram.y:992
 #, c-format
 msgid "diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS"
 msgstr "诊断项 %s 不允许出现在GET STACKED DIAGNOSTICS的结果中"
 
-#: pl_gram.y:1002
+#: pl_gram.y:1010
 #, c-format
 msgid "diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS"
 msgstr "诊断项 %s 不允许出现在GET CURRENT DIAGNOSTICS的结果中"
 
-#: pl_gram.y:1100
+#: pl_gram.y:1105
 msgid "unrecognized GET DIAGNOSTICS item"
 msgstr "无法识别的项GET DIAGNOSTICS"
 
-#: pl_gram.y:1110 pl_gram.y:3509
+#: pl_gram.y:1115 pl_gram.y:3549
 #, c-format
 msgid "\"%s\" is not a scalar variable"
 msgstr "\"%s\" 不是一个标量变量"
 
-#: pl_gram.y:1358 pl_gram.y:1551
+#: pl_gram.y:1369 pl_gram.y:1565
 #, c-format
 msgid "loop variable of loop over rows must be a record variable or list of scalar variables"
 msgstr "在记录集上进行循环的循环变量必须是记录变量或标量变量列表"
 
-#: pl_gram.y:1392
+#: pl_gram.y:1404
 #, c-format
 msgid "cursor FOR loop must have only one target variable"
 msgstr "游标的FOR循环只能有一个目标变量"
 
-#: pl_gram.y:1399
+#: pl_gram.y:1411
 #, c-format
 msgid "cursor FOR loop must use a bound cursor variable"
 msgstr "游标的FOR循环必须使用有界游标变量"
 
-#: pl_gram.y:1486
+#: pl_gram.y:1498
 #, c-format
 msgid "integer FOR loop must have only one target variable"
 msgstr "整数FOR循环必须只能有一个目标变量"
 
-#: pl_gram.y:1522
+#: pl_gram.y:1535
 #, c-format
 msgid "cannot specify REVERSE in query FOR loop"
 msgstr "无法在查询FOR循环中指定REVERSE "
 
-#: pl_gram.y:1653
+#: pl_gram.y:1668
 #, c-format
 msgid "loop variable of FOREACH must be a known variable or list of variables"
 msgstr "FOREACH的循环变量必须是已知类型或者是变量列表"
 
-#: pl_gram.y:1694
+#: pl_gram.y:1710
 #, c-format
 msgid "there is no label \"%s\" attached to any block or loop enclosing this statement"
 msgstr "在任何包围这个语句的块或者循环上都没有附着标签\"%s\""
 
-#: pl_gram.y:1702
+#: pl_gram.y:1718
 #, c-format
 msgid "block label \"%s\" cannot be used in CONTINUE"
 msgstr "块标签 \"%s\" 不能被用在 CONTINUE 中"
 
-#: pl_gram.y:1717
+#: pl_gram.y:1733
 #, c-format
 msgid "EXIT cannot be used outside a loop, unless it has a label"
 msgstr "不能在循环外部使用EXIT,除非该循环有一个标签"
 
-#: pl_gram.y:1718
+#: pl_gram.y:1734
 #, c-format
 msgid "CONTINUE cannot be used outside a loop"
 msgstr "在循环的外部不能使用CONTINUE"
 
-#: pl_gram.y:1742 pl_gram.y:1779 pl_gram.y:1827 pl_gram.y:2959 pl_gram.y:3042
-#: pl_gram.y:3153 pl_gram.y:3910
+#: pl_gram.y:1758 pl_gram.y:1796 pl_gram.y:1844 pl_gram.y:2994 pl_gram.y:3079
+#: pl_gram.y:3190 pl_gram.y:3950
 msgid "unexpected end of function definition"
 msgstr "在函数定义中意外出现的结束标志"
 
-#: pl_gram.y:1847 pl_gram.y:1871 pl_gram.y:1887 pl_gram.y:1893 pl_gram.y:2010
-#: pl_gram.y:2018 pl_gram.y:2032 pl_gram.y:2126 pl_gram.y:2361 pl_gram.y:2455
-#: pl_gram.y:2613 pl_gram.y:3752 pl_gram.y:3813 pl_gram.y:3891
+#: pl_gram.y:1864 pl_gram.y:1888 pl_gram.y:1904 pl_gram.y:1910 pl_gram.y:2029
+#: pl_gram.y:2037 pl_gram.y:2051 pl_gram.y:2146 pl_gram.y:2395 pl_gram.y:2489
+#: pl_gram.y:2648 pl_gram.y:3792 pl_gram.y:3853 pl_gram.y:3931
 msgid "syntax error"
 msgstr "语法错误"
 
-#: pl_gram.y:1875 pl_gram.y:1877 pl_gram.y:2365 pl_gram.y:2367
+#: pl_gram.y:1892 pl_gram.y:1894 pl_gram.y:2399 pl_gram.y:2401
 msgid "invalid SQLSTATE code"
 msgstr "无效的SQLSTATE代码"
 
-#: pl_gram.y:2074
+#: pl_gram.y:2094
 msgid "syntax error, expected \"FOR\""
 msgstr "语法错误,期望\"FOR\""
 
-#: pl_gram.y:2135
+#: pl_gram.y:2155
 #, c-format
 msgid "FETCH statement cannot return multiple rows"
 msgstr "FETCH语句无法返回多条记录"
 
-#: pl_gram.y:2245
+#: pl_gram.y:2279
 #, c-format
 msgid "cursor variable must be a simple variable"
 msgstr "游标变量必须是一个简单变量"
 
-#: pl_gram.y:2251
+#: pl_gram.y:2285
 #, c-format
 msgid "variable \"%s\" must be of type cursor or refcursor"
 msgstr "变量\"%s\" 必须属于游标类型或refcursor类型"
 
-#: pl_gram.y:2584 pl_gram.y:2595
+#: pl_gram.y:2619 pl_gram.y:2630
 #, c-format
 msgid "\"%s\" is not a known variable"
 msgstr "\"%s\" 不是一个已知变量"
 
-#: pl_gram.y:2699 pl_gram.y:2709 pl_gram.y:2864
+#: pl_gram.y:2734 pl_gram.y:2744 pl_gram.y:2899
 msgid "mismatched parentheses"
 msgstr "括号不匹配"
 
-#: pl_gram.y:2713
+#: pl_gram.y:2748
 #, c-format
 msgid "missing \"%s\" at end of SQL expression"
 msgstr "在SQL表达式的结尾处丢失\"%s\""
 
-#: pl_gram.y:2719
+#: pl_gram.y:2754
 #, c-format
 msgid "missing \"%s\" at end of SQL statement"
 msgstr "在SQL语句的结尾处丢失\"%s\""
 
-#: pl_gram.y:2736
+#: pl_gram.y:2771
 msgid "missing expression"
 msgstr "缺少表达式"
 
-#: pl_gram.y:2738
+#: pl_gram.y:2773
 msgid "missing SQL statement"
 msgstr "缺少SQL语句"
 
-#: pl_gram.y:2866
+#: pl_gram.y:2901
 msgid "incomplete data type declaration"
 msgstr "未完成的数据类型声明"
 
-#: pl_gram.y:2889
+#: pl_gram.y:2924
 msgid "missing data type declaration"
 msgstr "丢失数据类型声明"
 
-#: pl_gram.y:2967
+#: pl_gram.y:3002
 msgid "INTO specified more than once"
 msgstr "多次指定INTO"
 
-#: pl_gram.y:3134
+#: pl_gram.y:3171
 msgid "expected FROM or IN"
 msgstr "期望关键字FROM或IN"
 
-#: pl_gram.y:3194
+#: pl_gram.y:3232
 #, c-format
 msgid "RETURN cannot have a parameter in function returning set"
 msgstr "在返回为集合的函数中RETURN不能带有参数"
 
-#: pl_gram.y:3195
+#: pl_gram.y:3233
 #, c-format
 msgid "Use RETURN NEXT or RETURN QUERY."
 msgstr "使用RETURN NEXT或RETURN QUERY."
 
-#: pl_gram.y:3205
+#: pl_gram.y:3243
 #, c-format
 msgid "RETURN cannot have a parameter in a procedure"
 msgstr "在过程中RETURN不能带有参数"
 
-#: pl_gram.y:3210
+#: pl_gram.y:3248
 #, c-format
 msgid "RETURN cannot have a parameter in function returning void"
 msgstr "在返回为空的函数中RETURN不能有参数"
 
-#: pl_gram.y:3219
+#: pl_gram.y:3257
 #, c-format
 msgid "RETURN cannot have a parameter in function with OUT parameters"
 msgstr "在带有输出参数的函数中RETURN不能有参数"
 
-#: pl_gram.y:3281
+#: pl_gram.y:3320
 #, c-format
 msgid "RETURN NEXT cannot have a parameter in function with OUT parameters"
 msgstr "在带有输出参数的函数中RETURN NEXT不能有参数"
 
-#: pl_gram.y:3388
+#: pl_gram.y:3428
 #, c-format
 msgid "variable \"%s\" is declared CONSTANT"
 msgstr "变量\"%s\"被声明为常量"
 
-#: pl_gram.y:3451
+#: pl_gram.y:3491
 #, c-format
 msgid "record variable cannot be part of multiple-item INTO list"
 msgstr "记录变量不能作为带有多个项的INTO列表中的一部分"
 
-#: pl_gram.y:3497
+#: pl_gram.y:3537
 #, c-format
 msgid "too many INTO variables specified"
 msgstr "在INTO后面指定了太多的变量"
 
-#: pl_gram.y:3705
+#: pl_gram.y:3745
 #, c-format
 msgid "end label \"%s\" specified for unlabelled block"
 msgstr "为没有标签的代码块指定结束标签\"%s\" "
 
-#: pl_gram.y:3712
+#: pl_gram.y:3752
 #, c-format
 msgid "end label \"%s\" differs from block's label \"%s\""
 msgstr "结束标签\"%s\" 与代码块标签\"%s\"不同"
 
-#: pl_gram.y:3747
+#: pl_gram.y:3787
 #, c-format
 msgid "cursor \"%s\" has no arguments"
 msgstr "游标\"%s\" 没有参数"
 
-#: pl_gram.y:3761
+#: pl_gram.y:3801
 #, c-format
 msgid "cursor \"%s\" has arguments"
 msgstr "游标\"%s\"有参数"
 
-#: pl_gram.y:3803
+#: pl_gram.y:3843
 #, c-format
 msgid "cursor \"%s\" has no argument named \"%s\""
 msgstr "游标\"%s\" 没有名为 \"%s\"的参数"
 
-#: pl_gram.y:3823
+#: pl_gram.y:3863
 #, c-format
 msgid "value for parameter \"%s\" of cursor \"%s\" specified more than once"
 msgstr "游标\"%2$s\"中的参数值\"%1$s\"指定了多次"
 
-#: pl_gram.y:3848
+#: pl_gram.y:3888
 #, c-format
 msgid "not enough arguments for cursor \"%s\""
 msgstr "游标 \"%s\"没有足够的参数"
 
-#: pl_gram.y:3855
+#: pl_gram.y:3895
 #, c-format
 msgid "too many arguments for cursor \"%s\""
 msgstr "游标 \"%s\"给定的参数太多"
 
-#: pl_gram.y:3942
+#: pl_gram.y:3982
 msgid "unrecognized RAISE statement option"
 msgstr "无法识别的RAISE语句选项"
 
-#: pl_gram.y:3946
+#: pl_gram.y:3986
 msgid "syntax error, expected \"=\""
 msgstr "语法错误,期望\"=\""
 
-#: pl_gram.y:3987
+#: pl_gram.y:4027
 #, c-format
 msgid "too many parameters specified for RAISE"
 msgstr "为RAISE子句指定参数过多"
 
-#: pl_gram.y:3991
+#: pl_gram.y:4031
 #, c-format
 msgid "too few parameters specified for RAISE"
 msgstr "为RAISE子句指定参数过少"
 
-#: pl_handler.c:154
+#: pl_handler.c:158
 msgid "Sets handling of conflicts between PL/pgSQL variable names and table column names."
 msgstr "设置在PL/pgSQL变量名称和表中列名冲突时的处理原则"
 
-#: pl_handler.c:163
+#: pl_handler.c:167
 msgid "Print information about parameters in the DETAIL part of the error messages generated on INTO ... STRICT failures."
 msgstr "打印产生于INTO...STRICT失败时的详细的错误消息里的参数信息"
 
-#: pl_handler.c:171
+#: pl_handler.c:175
 msgid "Perform checks given in ASSERT statements."
 msgstr "执行在ASSERT语句中给定的检查。"
 
-#: pl_handler.c:179
+#: pl_handler.c:183
 msgid "List of programming constructs that should produce a warning."
 msgstr "程序构造列表必须输出警告."
 
-#: pl_handler.c:189
+#: pl_handler.c:193
 msgid "List of programming constructs that should produce an error."
 msgstr "程序构造列表必须输出一个错误信息提示."
 
 #. translator: %s is typically the translation of "syntax error"
-#: pl_scanner.c:630
+#: pl_scanner.c:508
 #, c-format
 msgid "%s at end of input"
 msgstr "%s 在输入的末尾"
 
 #. translator: first %s is typically the translation of "syntax error"
-#: pl_scanner.c:646
+#: pl_scanner.c:524
 #, c-format
 msgid "%s at or near \"%s\""
 msgstr "%s 在 \"%s\" 或附近的"
index c3bda15c629144edf3de589b531de784fe1c0af6..64c7532887ca2a95366a273761ea0c7259dbf09f 100644 (file)
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: plpython (PostgreSQL) 11\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2019-05-14 19:08+0000\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:08+0000\n"
 "PO-Revision-Date: 2019-05-17 18:48+0800\n"
 "Last-Translator: Jie Zhang <zhangjie2@cn.fujitsu.com>\n"
 "Language-Team: Chinese (Simplified) <zhangjie2@cn.fujitsu.com>\n"
@@ -18,165 +18,171 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: plpy_cursorobject.c:101
+#: plpy_cursorobject.c:78
 #, c-format
 msgid "plpy.cursor expected a query or a plan"
 msgstr "plpy.cursor期望一个查询或一个计划"
 
-#: plpy_cursorobject.c:184
+#: plpy_cursorobject.c:161
 #, c-format
 msgid "plpy.cursor takes a sequence as its second argument"
 msgstr "plpy.cursor将一个序列作为它的第二个参数"
 
-#: plpy_cursorobject.c:200 plpy_spi.c:211
+#: plpy_cursorobject.c:177 plpy_spi.c:211
 #, c-format
 msgid "could not execute plan"
 msgstr "无法执行计划"
 
-#: plpy_cursorobject.c:203 plpy_spi.c:214
+#: plpy_cursorobject.c:180 plpy_spi.c:214
 #, 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:352
+#: plpy_cursorobject.c:329
 #, c-format
 msgid "iterating a closed cursor"
 msgstr "遍历一个关闭的游标"
 
-#: plpy_cursorobject.c:360 plpy_cursorobject.c:426
+#: plpy_cursorobject.c:337 plpy_cursorobject.c:403
 #, c-format
 msgid "iterating a cursor in an aborted subtransaction"
 msgstr "在终止的子事务里遍历一个游标"
 
 # sql_help.h:109
-#: plpy_cursorobject.c:418
+#: plpy_cursorobject.c:395
 #, c-format
 msgid "fetch from a closed cursor"
 msgstr "从关闭的游标里获取结果"
 
-#: plpy_cursorobject.c:461 plpy_spi.c:409
+#: plpy_cursorobject.c:438 plpy_spi.c:409
 #, c-format
 msgid "query result has too many rows to fit in a Python list"
 msgstr "查询结果中的行太多,无法放在一个Python列表中"
 
-#: plpy_cursorobject.c:512
+#: plpy_cursorobject.c:490
 #, c-format
 msgid "closing a cursor in an aborted subtransaction"
 msgstr "在终止的子事务里关闭一个游标"
 
-#: plpy_elog.c:127 plpy_elog.c:128 plpy_plpymodule.c:559
+#: plpy_elog.c:129 plpy_elog.c:130 plpy_plpymodule.c:553
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: plpy_exec.c:142
+#: plpy_exec.c:143
 #, c-format
 msgid "unsupported set function return mode"
 msgstr "不支持集合函数返回模式"
 
-#: plpy_exec.c:143
+#: plpy_exec.c:144
 #, c-format
 msgid "PL/Python set-returning functions only support returning one value per call."
 msgstr "PL/Python集合返回函数只支持在每次调用时返回一个值。"
 
-#: plpy_exec.c:156
+#: plpy_exec.c:157
 #, c-format
 msgid "returned object cannot be iterated"
 msgstr "所返回的对象无法迭代"
 
-#: plpy_exec.c:157
+#: plpy_exec.c:158
 #, c-format
 msgid "PL/Python set-returning functions must return an iterable object."
 msgstr "PL/Python集合返回函数必须返回一个可迭代的对象."
 
-#: plpy_exec.c:171
+#: plpy_exec.c:172
 #, c-format
 msgid "error fetching next item from iterator"
 msgstr "当从迭代器中取回下一个成员时出现错误"
 
-#: plpy_exec.c:214
+#: plpy_exec.c:215
 #, c-format
 msgid "PL/Python procedure did not return None"
 msgstr "PL/Python过程没有返回None"
 
-#: plpy_exec.c:218
+#: plpy_exec.c:219
 #, c-format
 msgid "PL/Python function with return type \"void\" did not return None"
 msgstr "返回类型为\"void\"的PL/Python函数不返回None"
 
-#: plpy_exec.c:374 plpy_exec.c:400
+#: plpy_exec.c:375 plpy_exec.c:401
 #, c-format
 msgid "unexpected return value from trigger procedure"
 msgstr "在触发器存储过程出现非期望的返回值"
 
-#: plpy_exec.c:375
+#: plpy_exec.c:376
 #, c-format
 msgid "Expected None or a string."
 msgstr "期望空值或一个字符串"
 
-#: plpy_exec.c:390
+#: plpy_exec.c:391
 #, c-format
 msgid "PL/Python trigger function returned \"MODIFY\" in a DELETE trigger -- ignored"
 msgstr "在DELETE触发器中的PL/Python 触发器函数返回 \"MODIFY\"  -- 忽略"
 
-#: plpy_exec.c:401
+#: plpy_exec.c:402
 #, c-format
 msgid "Expected None, \"OK\", \"SKIP\", or \"MODIFY\"."
 msgstr "期望None, \"OK\", \"SKIP\", 或\"MODIFY\""
 
-#: plpy_exec.c:451
+#: plpy_exec.c:452
 #, c-format
 msgid "PyList_SetItem() failed, while setting up arguments"
 msgstr "当设置参数的同时, 执行PyList_SetItem()失败"
 
-#: plpy_exec.c:455
+#: plpy_exec.c:456
 #, c-format
 msgid "PyDict_SetItemString() failed, while setting up arguments"
 msgstr "当设置参数的同时, 执行PyDict_SetItemString()失败"
 
-#: plpy_exec.c:467
+#: plpy_exec.c:468
 #, c-format
 msgid "function returning record called in context that cannot accept type record"
 msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用"
 
-#: plpy_exec.c:684
+#: plpy_exec.c:685
 #, c-format
 msgid "while creating return value"
 msgstr "同时在创建返回值"
 
-#: plpy_exec.c:909
+#: plpy_exec.c:919
 #, c-format
 msgid "TD[\"new\"] deleted, cannot modify row"
 msgstr "TD[\"new\"] 已删除,无法修改记录"
 
-#: plpy_exec.c:914
+#: plpy_exec.c:924
 #, c-format
 msgid "TD[\"new\"] is not a dictionary"
 msgstr "TD[\"new\"]不是一个字典"
 
-#: plpy_exec.c:941
+#: plpy_exec.c:951
 #, c-format
 msgid "TD[\"new\"] dictionary key at ordinal position %d is not a string"
 msgstr "在顺序位置%d的TD[\"new\"]字典键值不是字符串"
 
-#: plpy_exec.c:948
+#: plpy_exec.c:958
 #, 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:953
+#: plpy_exec.c:963
 #, c-format
 msgid "cannot set system attribute \"%s\""
 msgstr "不能设置系统属性\"%s\""
 
-#: plpy_exec.c:1011
+#: plpy_exec.c:968
+#, fuzzy, c-format
+#| msgid "cannot set system attribute \"%s\""
+msgid "cannot set generated column \"%s\""
+msgstr "不能设置系统属性\"%s\""
+
+#: plpy_exec.c:1026
 #, c-format
 msgid "while modifying trigger row"
 msgstr "同时正在修改触发器记录"
 
-#: plpy_exec.c:1072
+#: plpy_exec.c:1087
 #, c-format
 msgid "forcibly aborting a subtransaction that has not been exited"
 msgstr "强行终止一个还未退出的子事务"
@@ -221,46 +227,46 @@ msgstr "PL/Python函数\"%s\""
 msgid "PL/Python anonymous code block"
 msgstr "PL/Python匿名代码块"
 
-#: plpy_plpymodule.c:192 plpy_plpymodule.c:195
+#: plpy_plpymodule.c:186 plpy_plpymodule.c:189
 #, c-format
 msgid "could not import \"plpy\" module"
 msgstr "无法导入模块\"plpy\" "
 
-#: plpy_plpymodule.c:210
+#: plpy_plpymodule.c:204
 #, c-format
 msgid "could not create the spiexceptions module"
 msgstr "无法创建spiexceptions模块"
 
-#: plpy_plpymodule.c:218
+#: plpy_plpymodule.c:212
 #, c-format
 msgid "could not add the spiexceptions module"
 msgstr "无法添加spiexceptions模块 "
 
-#: plpy_plpymodule.c:286
+#: plpy_plpymodule.c:280
 #, c-format
 msgid "could not generate SPI exceptions"
 msgstr "无法产生SPI异常"
 
-#: plpy_plpymodule.c:454
+#: plpy_plpymodule.c:448
 #, c-format
 msgid "could not unpack arguments in plpy.elog"
 msgstr "无法解析plpy.elog中的参数"
 
-#: plpy_plpymodule.c:463
+#: plpy_plpymodule.c:457
 msgid "could not parse error message in plpy.elog"
 msgstr "无法解析在plpy.elog中的错误消息"
 
-#: plpy_plpymodule.c:480
+#: plpy_plpymodule.c:474
 #, c-format
 msgid "argument 'message' given by name and position"
 msgstr "由名称和位置提供的参数'message'"
 
-#: plpy_plpymodule.c:507
+#: plpy_plpymodule.c:501
 #, c-format
 msgid "'%s' is an invalid keyword argument for this function"
 msgstr "对于这个函数,'%s'是一个无效的关键词参数"
 
-#: plpy_plpymodule.c:518 plpy_plpymodule.c:524
+#: plpy_plpymodule.c:512 plpy_plpymodule.c:518
 #, c-format
 msgid "invalid SQLSTATE code"
 msgstr "无效的SQLSTATE代码"
@@ -290,7 +296,7 @@ msgstr "无法编译PL/Python函数\"%s\""
 msgid "could not compile anonymous PL/Python code block"
 msgstr "无法编译PL/Python中的匿名代码块"
 
-#: plpy_resultobject.c:150 plpy_resultobject.c:176 plpy_resultobject.c:202
+#: plpy_resultobject.c:121 plpy_resultobject.c:147 plpy_resultobject.c:173
 #, c-format
 msgid "command did not produce a result set"
 msgstr "命令没有产生结果集"
@@ -325,22 +331,22 @@ msgstr "执行SPI_execute_plan失败: %s"
 msgid "SPI_execute failed: %s"
 msgstr "SPI_execute执行失败: %s"
 
-#: plpy_subxactobject.c:122
+#: plpy_subxactobject.c:97
 #, c-format
 msgid "this subtransaction has already been entered"
 msgstr "已经进入该子事务"
 
-#: plpy_subxactobject.c:128 plpy_subxactobject.c:186
+#: plpy_subxactobject.c:103 plpy_subxactobject.c:161
 #, c-format
 msgid "this subtransaction has already been exited"
 msgstr "已经退出该子事务"
 
-#: plpy_subxactobject.c:180
+#: plpy_subxactobject.c:155
 #, c-format
 msgid "this subtransaction has not been entered"
 msgstr "该子事务仍没有进入"
 
-#: plpy_subxactobject.c:192
+#: plpy_subxactobject.c:167
 #, c-format
 msgid "there is no subtransaction to exit from"
 msgstr "没有子事务可以退出"
@@ -360,87 +366,87 @@ msgstr "模块中没有小数位属性"
 msgid "conversion from numeric to Decimal failed"
 msgstr "由numeric数值到Decimal小数转换失败"
 
-#: plpy_typeio.c:908
+#: plpy_typeio.c:915
 #, c-format
 msgid "could not create bytes representation of Python object"
 msgstr "无法创建Python对象的字节表达式"
 
-#: plpy_typeio.c:1056
+#: plpy_typeio.c:1063
 #, c-format
 msgid "could not create string representation of Python object"
 msgstr "无法创建Python对象的字符串表达式"
 
-#: plpy_typeio.c:1067
+#: plpy_typeio.c:1074
 #, 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:1176
+#: plpy_typeio.c:1183
 #, c-format
 msgid "number of array dimensions exceeds the maximum allowed (%d)"
 msgstr "数组的维数超过最大允许值(%d)"
 
-#: plpy_typeio.c:1180
+#: plpy_typeio.c:1187
 #, c-format
 msgid "could not determine sequence length for function return value"
 msgstr "无法确定函数返回值的序列长度"
 
-#: plpy_typeio.c:1183 plpy_typeio.c:1187
+#: plpy_typeio.c:1190 plpy_typeio.c:1194
 #, c-format
 msgid "array size exceeds the maximum allowed"
 msgstr "数组的大小超过了最大允许值"
 
-#: plpy_typeio.c:1213
+#: plpy_typeio.c:1220
 #, c-format
 msgid "return value of function with array return type is not a Python sequence"
 msgstr "带有数组返回类型的函数返回值不是一个Python序列"
 
-#: plpy_typeio.c:1259
+#: plpy_typeio.c:1266
 #, c-format
 msgid "wrong length of inner sequence: has length %d, but %d was expected"
 msgstr "内部序列的长度错误:长度为%d,但应为%d"
 
-#: plpy_typeio.c:1261
+#: plpy_typeio.c:1268
 #, c-format
 msgid "To construct a multidimensional array, the inner sequences must all have the same length."
 msgstr "要构造多维数组,内部序列的长度必须相同."
 
-#: plpy_typeio.c:1340
+#: plpy_typeio.c:1347
 #, c-format
 msgid "malformed record literal: \"%s\""
 msgstr "有缺陷的记录常量: \"%s\""
 
-#: plpy_typeio.c:1341
+#: plpy_typeio.c:1348
 #, c-format
 msgid "Missing left parenthesis."
 msgstr "缺少一个左括弧"
 
-#: plpy_typeio.c:1342 plpy_typeio.c:1543
+#: plpy_typeio.c:1349 plpy_typeio.c:1550
 #, c-format
 msgid "To return a composite type in an array, return the composite type as a Python tuple, e.g., \"[('foo',)]\"."
 msgstr "要返回数组中的复合类型,请将复合类型作为Python元组返回,例如 \"[('foo',)]\"."
 
-#: plpy_typeio.c:1389
+#: plpy_typeio.c:1396
 #, c-format
 msgid "key \"%s\" not found in mapping"
 msgstr "在映射中没有找到键\"%s\""
 
-#: plpy_typeio.c:1390
+#: plpy_typeio.c:1397
 #, 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:1443
+#: plpy_typeio.c:1450
 #, c-format
 msgid "length of returned sequence did not match number of columns in row"
 msgstr "所返回序列的长度与在记录中列的数量不匹配"
 
-#: plpy_typeio.c:1541
+#: plpy_typeio.c:1548
 #, c-format
 msgid "attribute \"%s\" does not exist in Python object"
 msgstr "在Python对象中不存在属性\"%s\""
 
-#: plpy_typeio.c:1544
+#: plpy_typeio.c:1551
 #, c-format
 msgid "To return null in a column, let the returned object have an attribute named after column with value None."
 msgstr "为了在一列中返回空值, 需要让返回的对象在带有值None的列后面的带有已命名属性"
index dbf3b25feeca00a4b780a0a733ebbcbacb0f9395..4a9bc3800373a0113ce97d442227d5da5a0f19b2 100644 (file)
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: pltcl (PostgreSQL) 11\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2019-05-16 09:07+0800\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:07+0000\n"
 "PO-Revision-Date: 2019-05-17 18:00+0800\n"
 "Last-Translator: Jie Zhang <zhangjie2@cn.fujitsu.com>\n"
 "Language-Team: Chinese (Simplified) <zhangjie2@cn.fujitsu.com>\n"
@@ -17,51 +17,51 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: pltcl.c:466
+#: pltcl.c:464
 msgid "PL/Tcl function to call once when pltcl is first used."
 msgstr "PL/Tcl函数在首次使用pltcl时调用一次."
 
-#: pltcl.c:473
+#: pltcl.c:471
 msgid "PL/TclU function to call once when pltclu is first used."
 msgstr "PL/TclU函数在首次使用pltcl时调用一次."
 
-#: pltcl.c:640
+#: pltcl.c:636
 #, c-format
 msgid "function \"%s\" is in the wrong language"
 msgstr "函数\"%s\"的语言错误"
 
-#: pltcl.c:651
+#: pltcl.c:647
 #, c-format
 msgid "function \"%s\" must not be SECURITY DEFINER"
 msgstr "函数\"%s\"不能是安全定义者"
 
 #. translator: %s is "pltcl.start_proc" or "pltclu.start_proc"
-#: pltcl.c:685
+#: pltcl.c:681
 #, c-format
 msgid "processing %s parameter"
 msgstr "正在处理%s参数"
 
-#: pltcl.c:846
+#: pltcl.c:842
 #, c-format
 msgid "set-valued function called in context that cannot accept a set"
 msgstr "在不能接受使用集合的环境中调用set-valued函数"
 
-#: pltcl.c:1019
+#: pltcl.c:1015
 #, c-format
 msgid "function returning record called in context that cannot accept type record"
 msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用"
 
-#: pltcl.c:1296
+#: pltcl.c:1299
 #, c-format
 msgid "could not split return value from trigger: %s"
 msgstr "无法分离来自触发器的返回值:%s"
 
-#: pltcl.c:1376 pltcl.c:1806
+#: pltcl.c:1379 pltcl.c:1809
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: pltcl.c:1377
+#: pltcl.c:1380
 #, c-format
 msgid ""
 "%s\n"
@@ -70,37 +70,43 @@ msgstr ""
 "%s\n"
 "在PL/Tcl函数\"%s\"中"
 
-#: pltcl.c:1541
+#: pltcl.c:1544
 #, c-format
 msgid "trigger functions can only be called as triggers"
 msgstr "触发器函数只能以触发器的形式调用"
 
-#: pltcl.c:1545
+#: pltcl.c:1548
 #, c-format
 msgid "PL/Tcl functions cannot return type %s"
 msgstr "PL/Tcl函数不能返回类型%s"
 
-#: pltcl.c:1584
+#: pltcl.c:1587
 #, c-format
 msgid "PL/Tcl functions cannot accept type %s"
 msgstr "PL/Tcl函数不能使用类型 %s"
 
-#: pltcl.c:1698
+#: pltcl.c:1701
 #, c-format
 msgid "could not create internal procedure \"%s\": %s"
 msgstr "无法创建内部过程\"%s\":%s"
 
-#: pltcl.c:3220
+#: pltcl.c:3208
 #, c-format
 msgid "column name/value list must have even number of elements"
 msgstr "列名/值列表必须具有偶数个元素"
 
-#: pltcl.c:3238
+#: pltcl.c:3226
 #, c-format
 msgid "column name/value list contains nonexistent column name \"%s\""
 msgstr "列名/值列表包含不存在的列名\"%s\""
 
-#: pltcl.c:3245
+#: pltcl.c:3233
 #, c-format
 msgid "cannot set system attribute \"%s\""
 msgstr "不能设置系统属性\"%s\""
+
+#: pltcl.c:3239
+#, fuzzy, c-format
+#| msgid "cannot set system attribute \"%s\""
+msgid "cannot set generated column \"%s\""
+msgstr "不能设置系统属性\"%s\""
index a7d0bec24cf305a019eed78d3409b0d9dbad208d..78bad7f729fa0bf35194c060679ca555b2ac7710 100644 (file)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: postgres (PostgreSQL) 11\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2019-04-12 19:35+0800\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:09+0000\n"
 "PO-Revision-Date: 2019-05-15 18:21+0800\n"
 "Last-Translator: Jie Zhang <zhangjie2@cn.fujitsu.com>\n"
 "Language-Team: Chinese (Simplified) <zhangjie2@cn.fujitsu.com>\n"
@@ -24,104 +24,189 @@ msgstr ""
 msgid "not recorded"
 msgstr "没有被记录"
 
-#: ../common/controldata_utils.c:58 commands/copy.c:3196
-#: commands/extension.c:3337 utils/adt/genfile.c:151
+#: ../common/controldata_utils.c:68 commands/copy.c:3544
+#: commands/extension.c:3341 utils/adt/genfile.c:153
 #, c-format
 msgid "could not open file \"%s\" for reading: %m"
 msgstr "为了读取, 无法打开文件 \"%s\": %m"
 
-#: ../common/controldata_utils.c:62
-#, c-format
-msgid "%s: could not open file \"%s\" for reading: %s\n"
-msgstr "%s: 为了读取, 无法打开文件 \"%s\": %s\n"
-
-#: ../common/controldata_utils.c:75 access/transam/timeline.c:347
-#: access/transam/xlog.c:3440 access/transam/xlog.c:10942
-#: access/transam/xlog.c:10955 access/transam/xlog.c:11380
-#: access/transam/xlog.c:11460 access/transam/xlog.c:11499
-#: access/transam/xlog.c:11542 access/transam/xlogfuncs.c:658
-#: access/transam/xlogfuncs.c:677 commands/extension.c:3347 libpq/hba.c:499
-#: replication/logical/origin.c:719 replication/logical/origin.c:749
-#: replication/logical/reorderbuffer.c:3304 replication/walsender.c:510
-#: storage/file/copydir.c:195 utils/adt/genfile.c:168 utils/adt/misc.c:944
+#: ../common/controldata_utils.c:86 access/transam/timeline.c:347
+#: access/transam/twophase.c:1293 access/transam/xlog.c:3456
+#: access/transam/xlog.c:4603 access/transam/xlog.c:10779
+#: access/transam/xlog.c:10792 access/transam/xlog.c:11217
+#: access/transam/xlog.c:11297 access/transam/xlog.c:11336
+#: access/transam/xlog.c:11379 access/transam/xlogfuncs.c:663
+#: access/transam/xlogfuncs.c:682 commands/extension.c:3351 libpq/hba.c:499
+#: replication/logical/origin.c:717 replication/logical/origin.c:753
+#: replication/logical/reorderbuffer.c:3308
+#: replication/logical/snapbuild.c:1746 replication/logical/snapbuild.c:1788
+#: replication/logical/snapbuild.c:1816 replication/logical/snapbuild.c:1843
+#: replication/slot.c:1424 replication/slot.c:1465 replication/walsender.c:513
+#: storage/file/copydir.c:195 utils/adt/genfile.c:170 utils/adt/misc.c:753
+#: utils/cache/relmapper.c:741
 #, c-format
 msgid "could not read file \"%s\": %m"
 msgstr "无法读取文件 \"%s\": %m"
 
-#: ../common/controldata_utils.c:78
-#, c-format
-msgid "%s: could not read file \"%s\": %s\n"
-msgstr "%s: 无法读取文件 \"%s\": %s\n"
-
-#: ../common/controldata_utils.c:86
+#: ../common/controldata_utils.c:97 access/transam/twophase.c:1296
+#: access/transam/xlog.c:3461 access/transam/xlog.c:4608
+#: replication/logical/origin.c:722 replication/logical/origin.c:761
+#: replication/logical/snapbuild.c:1751 replication/logical/snapbuild.c:1793
+#: replication/logical/snapbuild.c:1821 replication/logical/snapbuild.c:1848
+#: replication/slot.c:1428 replication/slot.c:1469 replication/walsender.c:518
+#: utils/cache/relmapper.c:745
 #, c-format
-msgid "could not read file \"%s\": read %d of %d"
-msgstr "无法读取文件\"%1$s\":读取了%3$d中的%2$d"
+msgid "could not read file \"%s\": read %d of %zu"
+msgstr "无法读取文件\"%1$s\":读取了%3$zu中的%2$d"
 
-#: ../common/controldata_utils.c:90
+#: ../common/controldata_utils.c:112 ../common/controldata_utils.c:256
+#: access/heap/rewriteheap.c:1208 access/heap/rewriteheap.c:1310
+#: access/transam/timeline.c:377 access/transam/timeline.c:421
+#: access/transam/timeline.c:499 access/transam/twophase.c:1305
+#: access/transam/twophase.c:1728 access/transam/xlog.c:3328
+#: access/transam/xlog.c:3496 access/transam/xlog.c:3501
+#: access/transam/xlog.c:3798 access/transam/xlog.c:4573
+#: access/transam/xlog.c:5522 access/transam/xlogfuncs.c:688
+#: commands/copy.c:1815 libpq/be-fsstubs.c:462 libpq/be-fsstubs.c:535
+#: replication/logical/origin.c:655 replication/logical/origin.c:794
+#: replication/logical/reorderbuffer.c:3366
+#: replication/logical/snapbuild.c:1658 replication/logical/snapbuild.c:1856
+#: replication/slot.c:1322 replication/slot.c:1476 replication/walsender.c:528
+#: storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:654
+#: storage/file/fd.c:3308 storage/file/fd.c:3411 utils/cache/relmapper.c:753
+#: utils/cache/relmapper.c:892
 #, c-format
-msgid "%s: could not read file \"%s\": read %d of %d\n"
-msgstr "%1$s:无法读取文件\"%2$s\":读取了%4$d中的%3$d\n"
+msgid "could not close file \"%s\": %m"
+msgstr "无法关闭文件 \"%s\": %m"
 
-#: ../common/controldata_utils.c:112
+#: ../common/controldata_utils.c:135
 msgid "byte ordering mismatch"
 msgstr "字节排序不匹配"
 
-#: ../common/controldata_utils.c:114
+#: ../common/controldata_utils.c:197 access/heap/rewriteheap.c:1293
+#: access/transam/timeline.c:111 access/transam/timeline.c:236
+#: access/transam/timeline.c:333 access/transam/twophase.c:1249
+#: access/transam/xlog.c:3230 access/transam/xlog.c:3370
+#: access/transam/xlog.c:3411 access/transam/xlog.c:3609
+#: access/transam/xlog.c:3694 access/transam/xlog.c:3772
+#: access/transam/xlog.c:4593 access/transam/xlogutils.c:708
+#: postmaster/syslogger.c:1489 replication/basebackup.c:517
+#: replication/basebackup.c:1394 replication/logical/origin.c:707
+#: replication/logical/reorderbuffer.c:2308
+#: replication/logical/reorderbuffer.c:2575
+#: replication/logical/reorderbuffer.c:3288
+#: replication/logical/snapbuild.c:1613 replication/logical/snapbuild.c:1717
+#: replication/slot.c:1396 replication/walsender.c:486
+#: replication/walsender.c:2450 storage/file/copydir.c:161
+#: storage/file/fd.c:629 storage/file/fd.c:3295 storage/file/fd.c:3382
+#: storage/smgr/md.c:462 utils/cache/relmapper.c:724
+#: utils/cache/relmapper.c:836 utils/error/elog.c:1861
+#: utils/init/miscinit.c:1269 utils/init/miscinit.c:1404
+#: utils/init/miscinit.c:1481 utils/misc/guc.c:8060 utils/misc/guc.c:8092
 #, 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"
+msgid "could not open file \"%s\": %m"
+msgstr "无法打开文件 \"%s\": %m"
+
+#: ../common/controldata_utils.c:221 access/transam/twophase.c:1701
+#: access/transam/twophase.c:1710 access/transam/xlog.c:10536
+#: access/transam/xlog.c:10574 access/transam/xlog.c:10987
+#: access/transam/xlogfuncs.c:742 postmaster/syslogger.c:1500
+#: postmaster/syslogger.c:1513 utils/cache/relmapper.c:870
+#, c-format
+msgid "could not write file \"%s\": %m"
+msgstr "无法写入文件 \"%s\": %m"
 
-#: ../common/exec.c:127 ../common/exec.c:241 ../common/exec.c:284
+#: ../common/controldata_utils.c:239 access/heap/rewriteheap.c:981
+#: access/heap/rewriteheap.c:1202 access/heap/rewriteheap.c:1304
+#: access/transam/timeline.c:415 access/transam/timeline.c:493
+#: access/transam/twophase.c:1722 access/transam/xlog.c:3321
+#: access/transam/xlog.c:3490 access/transam/xlog.c:4566
+#: access/transam/xlog.c:10054 access/transam/xlog.c:10080
+#: replication/logical/snapbuild.c:1651 replication/slot.c:1312
+#: replication/slot.c:1406 storage/file/fd.c:646 storage/file/fd.c:3403
+#: storage/smgr/md.c:885 storage/smgr/md.c:918 storage/sync/sync.c:395
+#: utils/cache/relmapper.c:885 utils/misc/guc.c:7840
 #, c-format
-msgid "could not identify current directory: %s"
+msgid "could not fsync file \"%s\": %m"
+msgstr "无法 fsync 文件 \"%s\": %m"
+
+#: ../common/exec.c:138 ../common/exec.c:255 ../common/exec.c:301
+#, fuzzy, c-format
+#| msgid "could not identify current directory: %s"
+msgid "could not identify current directory: %m"
 msgstr "无法确认当前目录: %s"
 
 # command.c:122
-#: ../common/exec.c:146
+#: ../common/exec.c:157
 #, c-format
 msgid "invalid binary \"%s\""
 msgstr "无效的二进制码 \"%s\""
 
 # command.c:1103
-#: ../common/exec.c:195
+#: ../common/exec.c:207
 #, c-format
 msgid "could not read binary \"%s\""
 msgstr "无法读取二进制码 \"%s\""
 
-#: ../common/exec.c:202
+#: ../common/exec.c:215
 #, c-format
 msgid "could not find a \"%s\" to execute"
 msgstr "未能找到一个 \"%s\" 来执行"
 
-#: ../common/exec.c:257 ../common/exec.c:293
+#: ../common/exec.c:271 ../common/exec.c:310 utils/init/miscinit.c:220
 #, c-format
-msgid "could not change directory to \"%s\": %s"
-msgstr "无法跳转到目录 \"%s\" 中: %s"
+msgid "could not change directory to \"%s\": %m"
+msgstr "无法跳转到目录 \"%s\" 中: %m"
 
-#: ../common/exec.c:272
+#: ../common/exec.c:288 access/transam/xlog.c:10409
+#: replication/basebackup.c:1232 utils/adt/misc.c:324
 #, c-format
-msgid "could not read symbolic link \"%s\""
-msgstr "无法读取符号链接 \"%s\""
+msgid "could not read symbolic link \"%s\": %m"
+msgstr "无法读取符号链接 \"%s\": %m"
 
-#: ../common/exec.c:523
-#, c-format
-msgid "pclose failed: %s"
+#: ../common/exec.c:541
+#, fuzzy, c-format
+#| msgid "pclose failed: %s"
+msgid "pclose failed: %m"
 msgstr "pclose调用失败: %s"
 
+#: ../common/exec.c:670 ../common/exec.c:715 ../common/exec.c:807
+#: ../common/psprintf.c:143 ../port/path.c:630 ../port/path.c:668
+#: ../port/path.c:685 access/transam/twophase.c:1394 access/transam/xlog.c:6346
+#: lib/dshash.c:246 lib/stringinfo.c:283 libpq/auth.c:1093 libpq/auth.c:1483
+#: libpq/auth.c:1551 libpq/auth.c:2069 postmaster/bgworker.c:337
+#: postmaster/bgworker.c:907 postmaster/postmaster.c:2454
+#: postmaster/postmaster.c:2476 postmaster/postmaster.c:4068
+#: postmaster/postmaster.c:4757 postmaster/postmaster.c:4832
+#: postmaster/postmaster.c:5509 postmaster/postmaster.c:5856
+#: replication/libpqwalreceiver/libpqwalreceiver.c:257
+#: replication/logical/logical.c:179 storage/buffer/localbuf.c:436
+#: storage/file/fd.c:795 storage/file/fd.c:1191 storage/file/fd.c:1352
+#: storage/file/fd.c:2161 storage/ipc/procarray.c:1047
+#: storage/ipc/procarray.c:1542 storage/ipc/procarray.c:1549
+#: storage/ipc/procarray.c:1973 storage/ipc/procarray.c:2600
+#: utils/adt/cryptohashes.c:45 utils/adt/cryptohashes.c:65
+#: utils/adt/formatting.c:1603 utils/adt/formatting.c:1726
+#: utils/adt/formatting.c:1850 utils/adt/pg_locale.c:473
+#: utils/adt/pg_locale.c:637 utils/adt/regexp.c:223 utils/fmgr/dfmgr.c:229
+#: utils/hash/dynahash.c:448 utils/hash/dynahash.c:557
+#: utils/hash/dynahash.c:1069 utils/mb/mbutils.c:365 utils/mb/mbutils.c:698
+#: utils/misc/guc.c:4634 utils/misc/guc.c:4650 utils/misc/guc.c:4663
+#: utils/misc/guc.c:7818 utils/misc/tzparser.c:468 utils/mmgr/aset.c:484
+#: utils/mmgr/dsa.c:701 utils/mmgr/dsa.c:723 utils/mmgr/dsa.c:804
+#: utils/mmgr/generation.c:249 utils/mmgr/mcxt.c:796 utils/mmgr/mcxt.c:832
+#: utils/mmgr/mcxt.c:870 utils/mmgr/mcxt.c:908 utils/mmgr/mcxt.c:944
+#: utils/mmgr/mcxt.c:975 utils/mmgr/mcxt.c:1011 utils/mmgr/mcxt.c:1063
+#: utils/mmgr/mcxt.c:1098 utils/mmgr/mcxt.c:1133 utils/mmgr/slab.c:239
+#, c-format
+msgid "out of memory"
+msgstr "内存用尽"
+
 #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75
-#: ../common/fe_memutils.c:98 ../common/psprintf.c:182 ../port/path.c:632
-#: ../port/path.c:670 ../port/path.c:687 utils/misc/ps_status.c:171
-#: utils/misc/ps_status.c:179 utils/misc/ps_status.c:209
-#: utils/misc/ps_status.c:217
+#: ../common/fe_memutils.c:98 ../common/psprintf.c:145 ../port/path.c:632
+#: ../port/path.c:670 ../port/path.c:687 utils/misc/ps_status.c:176
+#: utils/misc/ps_status.c:184 utils/misc/ps_status.c:214
+#: utils/misc/ps_status.c:222
 #, c-format
 msgid "out of memory\n"
 msgstr "内存溢出\n"
@@ -132,82 +217,21 @@ msgstr "内存溢出\n"
 msgid "cannot duplicate null pointer (internal error)\n"
 msgstr "无法复制空指针 (内部错误)\n"
 
-#: ../common/file_utils.c:82 ../common/file_utils.c:186
+#: ../common/logging.c:188
 #, c-format
-msgid "%s: could not stat file \"%s\": %s\n"
-msgstr "%s: 无法统计文件: \"%s\": %s\n"
-
-#: ../common/file_utils.c:162
-#, c-format
-msgid "%s: could not open directory \"%s\": %s\n"
-msgstr "%s: 无法打开目录 \"%s\": %s\n"
-
-#: ../common/file_utils.c:198
-#, c-format
-msgid "%s: could not read directory \"%s\": %s\n"
-msgstr "%s: 无法读取目录 \"%s\": %s\n"
-
-#: ../common/file_utils.c:231 ../common/file_utils.c:291
-#: ../common/file_utils.c:367
-#, c-format
-msgid "%s: could not open file \"%s\": %s\n"
-msgstr "%s: 无法打开文件 \"%s\": %s\n"
-
-#: ../common/file_utils.c:304 ../common/file_utils.c:376
-#, c-format
-msgid "%s: could not fsync file \"%s\": %s\n"
-msgstr "%s: 无法对文件 \"%s\"进行fsync同步: %s\n"
-
-#: ../common/file_utils.c:387
-#, c-format
-msgid "%s: could not rename file \"%s\" to \"%s\": %s\n"
-msgstr "%s: 无法将文件 \"%s\" 重命名为 \"%s\":%s\n"
-
-#: ../common/pgfnames.c:45
-#, c-format
-msgid "could not open directory \"%s\": %s\n"
-msgstr "无法打开目录 \"%s\": %s\n"
-
-#: ../common/pgfnames.c:72
-#, c-format
-msgid "could not read directory \"%s\": %s\n"
-msgstr "无法读取目录 \"%s\": %s\n"
+msgid "fatal: "
+msgstr ""
 
-#: ../common/pgfnames.c:84
-#, c-format
-msgid "could not close directory \"%s\": %s\n"
-msgstr "无法关闭目录 \"%s\": %s\n"
+#: ../common/logging.c:195
+#, fuzzy, c-format
+#| msgid "SSL error: %s"
+msgid "error: "
+msgstr "SSL 错误: %s"
 
-#: ../common/psprintf.c:180 ../port/path.c:630 ../port/path.c:668
-#: ../port/path.c:685 access/transam/twophase.c:1383 access/transam/xlog.c:6482
-#: lib/dshash.c:246 lib/stringinfo.c:277 libpq/auth.c:1134 libpq/auth.c:1505
-#: libpq/auth.c:1573 libpq/auth.c:2091 postmaster/bgworker.c:337
-#: postmaster/bgworker.c:907 postmaster/postmaster.c:2390
-#: postmaster/postmaster.c:2412 postmaster/postmaster.c:3979
-#: postmaster/postmaster.c:4687 postmaster/postmaster.c:4762
-#: postmaster/postmaster.c:5454 postmaster/postmaster.c:5791
-#: replication/libpqwalreceiver/libpqwalreceiver.c:260
-#: replication/logical/logical.c:179 storage/buffer/localbuf.c:436
-#: storage/file/fd.c:781 storage/file/fd.c:1220 storage/file/fd.c:1381
-#: storage/file/fd.c:2294 storage/ipc/procarray.c:1066
-#: storage/ipc/procarray.c:1554 storage/ipc/procarray.c:1561
-#: storage/ipc/procarray.c:1982 storage/ipc/procarray.c:2606
-#: utils/adt/cryptohashes.c:45 utils/adt/cryptohashes.c:65
-#: utils/adt/formatting.c:1568 utils/adt/formatting.c:1690
-#: utils/adt/formatting.c:1813 utils/adt/pg_locale.c:468
-#: utils/adt/pg_locale.c:652 utils/adt/regexp.c:223 utils/fmgr/dfmgr.c:221
-#: utils/hash/dynahash.c:448 utils/hash/dynahash.c:557
-#: utils/hash/dynahash.c:1069 utils/mb/mbutils.c:365 utils/mb/mbutils.c:698
-#: utils/misc/guc.c:4240 utils/misc/guc.c:4256 utils/misc/guc.c:4269
-#: utils/misc/guc.c:7244 utils/misc/tzparser.c:468 utils/mmgr/aset.c:484
-#: utils/mmgr/dsa.c:714 utils/mmgr/dsa.c:796 utils/mmgr/generation.c:249
-#: utils/mmgr/mcxt.c:796 utils/mmgr/mcxt.c:832 utils/mmgr/mcxt.c:870
-#: utils/mmgr/mcxt.c:908 utils/mmgr/mcxt.c:944 utils/mmgr/mcxt.c:975
-#: utils/mmgr/mcxt.c:1011 utils/mmgr/mcxt.c:1063 utils/mmgr/mcxt.c:1098
-#: utils/mmgr/mcxt.c:1133 utils/mmgr/slab.c:239
+#: ../common/logging.c:202
 #, c-format
-msgid "out of memory"
-msgstr "内存用尽"
+msgid "warning: "
+msgstr ""
 
 #: ../common/relpath.c:58
 #, c-format
@@ -219,51 +243,6 @@ msgstr "无效分支名称"
 msgid "Valid fork names are \"main\", \"fsm\", \"vm\", and \"init\"."
 msgstr "有效的分支名称是 \"main\", \"fsm\", \"vm\"和\"init\"."
 
-#: ../common/restricted_token.c:68
-#, c-format
-msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
-msgstr "%s: WARNING: 无法为该平台创建受限制的令牌\n"
-
-#: ../common/restricted_token.c:77
-#, c-format
-msgid "%s: could not open process token: error code %lu\n"
-msgstr "%s:无法打开进程令牌 (token): 错误码 %lu\n"
-
-#: ../common/restricted_token.c:90
-#, c-format
-msgid "%s: could not allocate SIDs: error code %lu\n"
-msgstr "%s: 无法分配SID: 错误码 %lu\n"
-
-#: ../common/restricted_token.c:110
-#, c-format
-msgid "%s: could not create restricted token: error code %lu\n"
-msgstr "%s: 无法创建受限令牌: 错误码为 %lu\n"
-
-#: ../common/restricted_token.c:132
-#, c-format
-msgid "%s: could not start process for command \"%s\": error code %lu\n"
-msgstr "%s: 无法为命令 \"%s\"创建进程: 错误码 %lu\n"
-
-#: ../common/restricted_token.c:170
-#, c-format
-msgid "%s: could not re-execute with restricted token: error code %lu\n"
-msgstr "%s: 无法使用受限令牌再次执行: 错误码 %lu\n"
-
-#: ../common/restricted_token.c:186
-#, c-format
-msgid "%s: could not get exit code from subprocess: error code %lu\n"
-msgstr "%s: 无法从子进程得到退出码: 错误码 %lu\n"
-
-#: ../common/rmtree.c:77
-#, c-format
-msgid "could not stat file or directory \"%s\": %s\n"
-msgstr "无法获取文件或目录\"%s\"的状态: %s\n"
-
-#: ../common/rmtree.c:104 ../common/rmtree.c:121
-#, c-format
-msgid "could not remove file or directory \"%s\": %s\n"
-msgstr "无法删除目录 \"%s\": %s\n"
-
 #: ../common/saslprep.c:1093
 #, c-format
 msgid "password too long"
@@ -274,7 +253,7 @@ msgstr "密码太长"
 msgid "could not look up effective user ID %ld: %s"
 msgstr "无法找到有效的用户ID %ld: %s"
 
-#: ../common/username.c:45 libpq/auth.c:2038
+#: ../common/username.c:45 libpq/auth.c:2016
 msgid "user does not exist"
 msgstr "用户不存在"
 
@@ -298,22 +277,18 @@ msgstr "命令没有找到"
 msgid "child process exited with exit code %d"
 msgstr "子进程已退出, 退出码为 %d"
 
-#: ../common/wait_error.c:61
+#: ../common/wait_error.c:62
 #, c-format
 msgid "child process was terminated by exception 0x%X"
 msgstr "子进程被例外(exception) 0x%X 终止"
 
-#: ../common/wait_error.c:71
-#, c-format
-msgid "child process was terminated by signal %s"
-msgstr "子进程被信号 %s 终止"
-
-#: ../common/wait_error.c:75
-#, c-format
-msgid "child process was terminated by signal %d"
+#: ../common/wait_error.c:66
+#, fuzzy, c-format
+#| msgid "child process was terminated by signal %d"
+msgid "child process was terminated by signal %d: %s"
 msgstr "子进程被信号 %d 终止"
 
-#: ../common/wait_error.c:80
+#: ../common/wait_error.c:72
 #, c-format
 msgid "child process exited with unrecognized status %d"
 msgstr "子进程已退出, 未知状态 %d"
@@ -349,25 +324,25 @@ msgid "could not get junction for \"%s\": %s\n"
 msgstr "无法得到联接 \"%s\": %s\n"
 
 # fe-lobj.c:400 fe-lobj.c:483
-#: ../port/open.c:111
+#: ../port/open.c:128
 #, c-format
 msgid "could not open file \"%s\": %s"
 msgstr "无法打开文件 \"%s\": %s"
 
-#: ../port/open.c:112
+#: ../port/open.c:129
 msgid "lock violation"
 msgstr "锁冲突"
 
-#: ../port/open.c:112
+#: ../port/open.c:129
 msgid "sharing violation"
 msgstr "共享冲突"
 
-#: ../port/open.c:113
+#: ../port/open.c:130
 #, c-format
 msgid "Continuing to retry for 30 seconds."
 msgstr "继续重新尝试30秒"
 
-#: ../port/open.c:114
+#: ../port/open.c:131
 #, c-format
 msgid "You might have antivirus, backup, or similar software interfering with the database system."
 msgstr "您可能有反病毒,备份或类似的软件与数据库系统冲突"
@@ -377,10 +352,10 @@ msgstr "您可能有反病毒,备份或类似的软件与数据库系统冲突
 msgid "could not get current working directory: %s\n"
 msgstr "无法得到当前工作目录: %s\n"
 
-#: ../port/strerror.c:25
+#: ../port/strerror.c:72
 #, c-format
-msgid "unrecognized error %d"
-msgstr "æ\9cªç\9f¥ç\9a\84 SSL é\94\99误ç \81: %d"
+msgid "operating system error %d"
+msgstr "æ\93\8dä½\9cç³»ç»\9fé\94\99误 %d"
 
 #: ../port/win32security.c:62
 #, c-format
@@ -397,45 +372,44 @@ msgstr "无法获取PowerUsers组的SID:错误代码%lu\n"
 msgid "could not check access token membership: error code %lu\n"
 msgstr "无法检查访问令牌成员身份: 错误码 %lu\n"
 
-#: access/brin/brin.c:200
+#: access/brin/brin.c:204
 #, c-format
 msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded"
 msgstr "未记录对索引\"%s\"页%u的BRIN范围摘要的请求"
 
-#: access/brin/brin.c:877 access/brin/brin.c:954 access/gin/ginfast.c:1018
-#: access/transam/xlog.c:10354 access/transam/xlog.c:10881
-#: access/transam/xlogfuncs.c:286 access/transam/xlogfuncs.c:313
-#: access/transam/xlogfuncs.c:352 access/transam/xlogfuncs.c:373
-#: access/transam/xlogfuncs.c:394 access/transam/xlogfuncs.c:464
-#: access/transam/xlogfuncs.c:520
+#: access/brin/brin.c:881 access/brin/brin.c:958 access/gin/ginfast.c:1041
+#: access/transam/xlog.c:10189 access/transam/xlog.c:10718
+#: access/transam/xlogfuncs.c:289 access/transam/xlogfuncs.c:316
+#: access/transam/xlogfuncs.c:355 access/transam/xlogfuncs.c:376
+#: access/transam/xlogfuncs.c:397 access/transam/xlogfuncs.c:467
+#: access/transam/xlogfuncs.c:524
 #, c-format
 msgid "recovery is in progress"
 msgstr "恢复操作正在进行中"
 
-#: access/brin/brin.c:878 access/brin/brin.c:955
+#: access/brin/brin.c:882 access/brin/brin.c:959
 #, c-format
 msgid "BRIN control functions cannot be executed during recovery."
 msgstr "在恢复期间无法执行BRIN控制函数"
 
-#: access/brin/brin.c:886 access/brin/brin.c:963
+#: access/brin/brin.c:890 access/brin/brin.c:967
 #, c-format
 msgid "block number out of range: %s"
 msgstr "块号超出范围: %s"
 
-#: access/brin/brin.c:909 access/brin/brin.c:986
+#: access/brin/brin.c:913 access/brin/brin.c:990
 #, c-format
 msgid "\"%s\" is not a BRIN index"
 msgstr "\"%s\" 不是一个 BRIN 索引"
 
-#: access/brin/brin.c:925 access/brin/brin.c:1002
+#: access/brin/brin.c:929 access/brin/brin.c:1006
 #, c-format
 msgid "could not open parent table of index %s"
 msgstr "无法打开索引 %s 的父表"
 
 #: access/brin/brin_pageops.c:77 access/brin/brin_pageops.c:363
 #: access/brin/brin_pageops.c:844 access/gin/ginentrypage.c:110
-#: access/gist/gist.c:1381 access/nbtree/nbtinsert.c:678
-#: access/nbtree/nbtsort.c:830 access/spgist/spgdoinsert.c:1957
+#: access/gist/gist.c:1445 access/spgist/spgdoinsert.c:1957
 #, c-format
 msgid "index row size %zu exceeds maximum %zu for index \"%s\""
 msgstr "索引行的大小 %1$zu 超过了索引\"%3$s\"所允许的最大值%2$zu"
@@ -471,27 +445,27 @@ msgstr "访问方法%2$s的运算符族\"%1$s\"包含的函数 %3$s 对支持编
 
 #: access/brin/brin_validate.c:154 access/gin/ginvalidate.c:180
 #: access/gist/gistvalidate.c:178 access/hash/hashvalidate.c:153
-#: access/nbtree/nbtvalidate.c:142 access/spgist/spgvalidate.c:196
+#: access/nbtree/nbtvalidate.c:142 access/spgist/spgvalidate.c:197
 #, c-format
 msgid "operator family \"%s\" of access method %s contains operator %s with invalid strategy number %d"
 msgstr "访问方法%2$s的运算符族\"%1$s\"包含具有无效策略编号 %4$d 的操作符 %3$s"
 
 #: access/brin/brin_validate.c:183 access/gin/ginvalidate.c:193
 #: access/hash/hashvalidate.c:166 access/nbtree/nbtvalidate.c:155
-#: access/spgist/spgvalidate.c:209
+#: access/spgist/spgvalidate.c:213
 #, c-format
 msgid "operator family \"%s\" of access method %s contains invalid ORDER BY specification for operator %s"
 msgstr "访问方法%2$s的运算符族\"%1$s\"包含操作符 %3$s 的无效 ORDER BY 声明"
 
 #: access/brin/brin_validate.c:196 access/gin/ginvalidate.c:206
 #: access/gist/gistvalidate.c:226 access/hash/hashvalidate.c:179
-#: access/nbtree/nbtvalidate.c:168 access/spgist/spgvalidate.c:222
+#: access/nbtree/nbtvalidate.c:168 access/spgist/spgvalidate.c:229
 #, c-format
 msgid "operator family \"%s\" of access method %s contains operator %s with wrong signature"
 msgstr "访问方法%2$s的运算符族\"%1$s\"包含具有错误签名的操作符 %3$s"
 
 #: access/brin/brin_validate.c:234 access/hash/hashvalidate.c:219
-#: access/nbtree/nbtvalidate.c:226 access/spgist/spgvalidate.c:249
+#: access/nbtree/nbtvalidate.c:226 access/spgist/spgvalidate.c:256
 #, c-format
 msgid "operator family \"%s\" of access method %s is missing operator(s) for types %s and %s"
 msgstr "访问方法%2$s的运算符族\"%1$s\"缺少类型 %3$s 和 %4$s 的操作符"
@@ -502,7 +476,7 @@ msgid "operator family \"%s\" of access method %s is missing support function(s)
 msgstr "访问方法%2$s的运算符族\"%1$s\"中缺少用于类型 %3$s 和 %4$s 的支持函数"
 
 #: access/brin/brin_validate.c:257 access/hash/hashvalidate.c:233
-#: access/nbtree/nbtvalidate.c:250 access/spgist/spgvalidate.c:282
+#: access/nbtree/nbtvalidate.c:250 access/spgist/spgvalidate.c:289
 #, c-format
 msgid "operator class \"%s\" of access method %s is missing operator(s)"
 msgstr "访问方法 %2$s 操作符表 \"%1$s\" 缺少运算符"
@@ -513,7 +487,7 @@ msgstr "访问方法 %2$s 操作符表 \"%1$s\" 缺少运算符"
 msgid "operator class \"%s\" of access method %s is missing support function %d"
 msgstr "访问方法 %2$s 操作符表 \"%1$s\"缺少支持函数 %3$d"
 
-#: access/common/heaptuple.c:1080 access/common/heaptuple.c:1796
+#: access/common/heaptuple.c:1036 access/common/heaptuple.c:1371
 #, c-format
 msgid "number of columns (%d) exceeds limit (%d)"
 msgstr "字段个数 (%d) 超出限制 (%d)"
@@ -523,94 +497,100 @@ msgstr "字段个数 (%d) 超出限制 (%d)"
 msgid "number of index columns (%d) exceeds limit (%d)"
 msgstr "索引字段个数 (%d) 超出限制 (%d)"
 
-#: access/common/indextuple.c:179 access/spgist/spgutils.c:685
+#: access/common/indextuple.c:179 access/spgist/spgutils.c:691
 #, c-format
 msgid "index row requires %zu bytes, maximum size is %zu"
 msgstr "索引行需要 %zu 字节, 最大值为 %zu"
 
-#: access/common/printtup.c:365 tcop/fastpath.c:180 tcop/fastpath.c:530
-#: tcop/postgres.c:1778
+#: access/common/printtup.c:369 tcop/fastpath.c:180 tcop/fastpath.c:530
+#: tcop/postgres.c:1834
 #, c-format
 msgid "unsupported format code: %d"
 msgstr "不支持的格式代码: %d"
 
-#: access/common/reloptions.c:568
+#: access/common/reloptions.c:582
 #, c-format
 msgid "user-defined relation parameter types limit exceeded"
 msgstr "用户定义的关系参数类型超过限制"
 
-#: access/common/reloptions.c:849
+#: access/common/reloptions.c:863
 #, c-format
 msgid "RESET must not include values for parameters"
 msgstr "RESET中不能包含参数的值"
 
-#: access/common/reloptions.c:881
+#: access/common/reloptions.c:895
 #, c-format
 msgid "unrecognized parameter namespace \"%s\""
 msgstr "未识别的参数命名空间 \"%s\""
 
-#: access/common/reloptions.c:1121 parser/parse_clause.c:277
+#: access/common/reloptions.c:932 utils/misc/guc.c:11746
+#, fuzzy, c-format
+#| msgid "COPY (query) WITH OIDS is not supported"
+msgid "tables declared WITH OIDS are not supported"
+msgstr "不支持 COPY (query) WITH OIDS"
+
+#: access/common/reloptions.c:1150
 #, c-format
 msgid "unrecognized parameter \"%s\""
 msgstr "未识别的参数 \"%s\""
 
-#: access/common/reloptions.c:1151
+#: access/common/reloptions.c:1180
 #, c-format
 msgid "parameter \"%s\" specified more than once"
 msgstr "表名 \"%s\" 被指定多次"
 
-#: access/common/reloptions.c:1167
+#: access/common/reloptions.c:1196
 #, c-format
 msgid "invalid value for boolean option \"%s\": %s"
 msgstr "布尔选项\"%s\"的值无效:%s"
 
-#: access/common/reloptions.c:1179
+#: access/common/reloptions.c:1208
 #, c-format
 msgid "invalid value for integer option \"%s\": %s"
 msgstr "参数 \"%s\" 的值无效: \"%s\""
 
-#: access/common/reloptions.c:1185 access/common/reloptions.c:1205
+#: access/common/reloptions.c:1214 access/common/reloptions.c:1234
 #, c-format
 msgid "value %s out of bounds for option \"%s\""
 msgstr "值 %s超出了选项\"%s\"的范围"
 
-#: access/common/reloptions.c:1187
+#: access/common/reloptions.c:1216
 #, c-format
 msgid "Valid values are between \"%d\" and \"%d\"."
 msgstr "有效值在\"%d\"和\"%d\"之间."
 
-#: access/common/reloptions.c:1199
+#: access/common/reloptions.c:1228
 #, c-format
 msgid "invalid value for floating point option \"%s\": %s"
 msgstr "浮点数类型选项\"%s\"的值无效:%s"
 
-#: access/common/reloptions.c:1207
+#: access/common/reloptions.c:1236
 #, c-format
 msgid "Valid values are between \"%f\" and \"%f\"."
 msgstr "有效值在 \"%f\"和 \"%f\"之间"
 
-#: access/common/tupconvert.c:108
+#: access/common/tupconvert.c:107
 #, c-format
 msgid "Returned type %s does not match expected type %s in column %d."
 msgstr "在第%3$d列中返回类型%1$s与期望的类型%2$s不匹配."
 
-#: access/common/tupconvert.c:136
+#: access/common/tupconvert.c:135
 #, c-format
 msgid "Number of returned columns (%d) does not match expected column count (%d)."
 msgstr "所返回列的数量(%d)与所期望列的数量(%d)不匹配."
 
-#: access/common/tupconvert.c:329
+#: access/common/tupconvert.c:303
 #, c-format
 msgid "Attribute \"%s\" of type %s does not match corresponding attribute of type %s."
 msgstr "类型%2$s的属性\"%1$s\"与对应类型%3$s的属性不匹配。"
 
-#: access/common/tupconvert.c:341
+#: access/common/tupconvert.c:315
 #, c-format
 msgid "Attribute \"%s\" of type %s does not exist in type %s."
 msgstr "类型%2$s的属性\"%1$s\"在类型%3$s中不存在."
 
-#: access/common/tupdesc.c:837 parser/parse_clause.c:819
-#: parser/parse_relation.c:1539
+#: access/common/tupdesc.c:842 parser/parse_clause.c:779
+#: parser/parse_relation.c:1578
 #, c-format
 msgid "column \"%s\" cannot be declared SETOF"
 msgstr "字段 \"%s\" 不能被声明为 SETOF"
@@ -625,17 +605,17 @@ msgstr "位置列表太长"
 msgid "Reduce maintenance_work_mem."
 msgstr "减小 maintenance_work_mem"
 
-#: access/gin/ginfast.c:1019
+#: access/gin/ginfast.c:1042
 #, c-format
 msgid "GIN pending list cannot be cleaned up during recovery."
 msgstr "在恢复期间不能清理 GIN 待处理列表。"
 
-#: access/gin/ginfast.c:1026
+#: access/gin/ginfast.c:1049
 #, c-format
 msgid "\"%s\" is not a GIN index"
 msgstr "\"%s\" 不是一个 GIN 索引"
 
-#: access/gin/ginfast.c:1037
+#: access/gin/ginfast.c:1060
 #, c-format
 msgid "cannot access temporary indexes of other sessions"
 msgstr "不能访问其他会话的临时索引"
@@ -650,9 +630,9 @@ msgstr "老的GIN索引不支持完整索引 (whole-index) 扫描,也不支持
 msgid "To fix this, do REINDEX INDEX \"%s\"."
 msgstr "要解决此问题, 可执行REINDEX INDEX \"%s\"."
 
-#: access/gin/ginutil.c:138 executor/execExpr.c:1868
-#: utils/adt/arrayfuncs.c:3789 utils/adt/arrayfuncs.c:6387
-#: utils/adt/rowtypes.c:935
+#: access/gin/ginutil.c:139 executor/execExpr.c:1860
+#: utils/adt/arrayfuncs.c:3789 utils/adt/arrayfuncs.c:6416
+#: utils/adt/rowtypes.c:936
 #, c-format
 msgid "could not identify a comparison function for type %s"
 msgstr "无法为类型 %s 确认一个比对函数"
@@ -668,31 +648,31 @@ msgstr "访问方法%2$s的运算符族 \"%1$s\"包含支持函数%3$s,具有
 msgid "operator class \"%s\" of access method %s is missing support function %d or %d"
 msgstr "访问方法%2$s的运算符类 \"%1$s\"缺少支持函数 %3$d 或 %4$d"
 
-#: access/gist/gist.c:717 access/gist/gistvacuum.c:258
+#: access/gist/gist.c:751 access/gist/gistvacuum.c:424
 #, c-format
 msgid "index \"%s\" contains an inner tuple marked as invalid"
 msgstr "索引\"%s\"包含无效的内部元组"
 
-#: access/gist/gist.c:719 access/gist/gistvacuum.c:260
+#: access/gist/gist.c:753 access/gist/gistvacuum.c:426
 #, 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:720 access/gist/gistutil.c:759 access/gist/gistutil.c:770
-#: access/gist/gistvacuum.c:261 access/hash/hashutil.c:241
+#: access/gist/gist.c:754 access/gist/gistutil.c:787 access/gist/gistutil.c:798
+#: access/gist/gistvacuum.c:427 access/hash/hashutil.c:241
 #: access/hash/hashutil.c:252 access/hash/hashutil.c:264
-#: access/hash/hashutil.c:285 access/nbtree/nbtpage.c:678
-#: access/nbtree/nbtpage.c:689
+#: access/hash/hashutil.c:285 access/nbtree/nbtpage.c:747
+#: access/nbtree/nbtpage.c:758
 #, c-format
 msgid "Please REINDEX it."
 msgstr "请重建索引 (REINDEX)."
 
-#: access/gist/gistbuild.c:252
+#: access/gist/gistbuild.c:253
 #, c-format
 msgid "invalid value for \"buffering\" option"
 msgstr "\"buffering\"选项值无效"
 
-#: access/gist/gistbuild.c:253
+#: access/gist/gistbuild.c:254
 #, c-format
 msgid "Valid values are \"on\", \"off\", and \"auto\"."
 msgstr "有效值为\"on\", \"off\", 或 \"auto\"之一."
@@ -712,14 +692,14 @@ msgstr "为索引\"%2$s\"的第%1$d列执行picksplit方法失败"
 msgid "The index is not optimal. To optimize it, contact a developer, or try to use the column as the second one in the CREATE INDEX command."
 msgstr "索引没有优化.为了优化索引,请联系开发人员,或者在CREATE INDEX命令中尝试在这一列上创建第二个索引."
 
-#: access/gist/gistutil.c:756 access/hash/hashutil.c:238
-#: access/nbtree/nbtpage.c:675
+#: access/gist/gistutil.c:784 access/hash/hashutil.c:238
+#: access/nbtree/nbtpage.c:744
 #, c-format
 msgid "index \"%s\" contains unexpected zero page at block %u"
 msgstr "索引\"%s\"在块%u上包含未期望的零页"
 
-#: access/gist/gistutil.c:767 access/hash/hashutil.c:249
-#: access/hash/hashutil.c:261 access/nbtree/nbtpage.c:686
+#: access/gist/gistutil.c:795 access/hash/hashutil.c:249
+#: access/hash/hashutil.c:261 access/nbtree/nbtpage.c:755
 #, c-format
 msgid "index \"%s\" contains corrupted page at block %u"
 msgstr "索引\"%s\"在块%u上包含已损坏的页"
@@ -734,13 +714,31 @@ msgstr "访问方法%1$s的运算符族\"%2$s\"包含操作符 %3$s 的不支持
 msgid "operator family \"%s\" of access method %s contains incorrect ORDER BY opfamily specification for operator %s"
 msgstr "访问方法%1$s的运算符族\"%2$s\"包含操作符 %3$s 的不正确的 ORDER BY opfamily 声明"
 
-#: access/hash/hashinsert.c:83
+#: access/hash/hashfunc.c:255 access/hash/hashfunc.c:311
+#: utils/adt/varchar.c:992 utils/adt/varchar.c:1052
+#, fuzzy, c-format
+#| msgid "could not determine which collation to use for string comparison"
+msgid "could not determine which collation to use for string hashing"
+msgstr "无法确定字符串比较中使用哪种排序规则"
+
+#: access/hash/hashfunc.c:256 access/hash/hashfunc.c:312 catalog/heap.c:678
+#: commands/createas.c:207 commands/createas.c:491 commands/indexcmds.c:1697
+#: commands/tablecmds.c:15089 commands/view.c:105 regex/regc_pg_locale.c:263
+#: utils/adt/formatting.c:1571 utils/adt/formatting.c:1694
+#: utils/adt/formatting.c:1818 utils/adt/like.c:194
+#: utils/adt/like_support.c:965 utils/adt/varchar.c:734 utils/adt/varchar.c:993
+#: utils/adt/varchar.c:1053 utils/adt/varlena.c:1456
+#, c-format
+msgid "Use the COLLATE clause to set the collation explicitly."
+msgstr "使用COLLATE子句来显示设置排序规则."
+
+#: access/hash/hashinsert.c:82
 #, c-format
 msgid "index row size %zu exceeds hash maximum %zu"
 msgstr "索引行大小 %zu 超过散列最大值 %zu"
 
-#: access/hash/hashinsert.c:85 access/spgist/spgdoinsert.c:1961
-#: access/spgist/spgutils.c:746
+#: access/hash/hashinsert.c:84 access/spgist/spgdoinsert.c:1961
+#: access/spgist/spgutils.c:752
 #, c-format
 msgid "Values larger than a buffer page cannot be indexed."
 msgstr "大于一个缓冲页的值无法用于创建索引."
@@ -750,7 +748,7 @@ msgstr "大于一个缓冲页的值无法用于创建索引."
 msgid "invalid overflow block number %u"
 msgstr "无效的溢出块编号%u"
 
-#: access/hash/hashovfl.c:283 access/hash/hashpage.c:463
+#: access/hash/hashovfl.c:283 access/hash/hashpage.c:453
 #, c-format
 msgid "out of overflow pages in hash index \"%s\""
 msgstr "散列索引 \"%s\" 中页溢出"
@@ -780,143 +778,252 @@ msgstr "访问方法%1$s的运算符族\"%2$s\"缺少操作符 %3$s 的支持函
 msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)"
 msgstr "访问方法%1$s的运算符族\"%2$s\"缺少跨类型操作符"
 
-#: access/heap/heapam.c:1304 access/heap/heapam.c:1333
-#: access/heap/heapam.c:1366 catalog/aclchk.c:1828
-#, c-format
-msgid "\"%s\" is an index"
-msgstr "\"%s\" 是一个索引"
-
-#: access/heap/heapam.c:1309 access/heap/heapam.c:1338
-#: access/heap/heapam.c:1371 catalog/aclchk.c:1835 commands/tablecmds.c:10837
-#: commands/tablecmds.c:14122
+#: access/heap/heapam.c:1304
 #, c-format
-msgid "\"%s\" is a composite type"
-msgstr "\"%s\" 为混和类型"
+msgid "only heap AM is supported"
+msgstr ""
 
-#: access/heap/heapam.c:2645
+#: access/heap/heapam.c:2077
 #, c-format
 msgid "cannot insert tuples in a parallel worker"
 msgstr "无法在并行操作期间插入元组"
 
-#: access/heap/heapam.c:3092
+#: access/heap/heapam.c:2487
 #, c-format
 msgid "cannot delete tuples during a parallel operation"
 msgstr "无法在并行操作期间删除元组"
 
-#: access/heap/heapam.c:3138
+#: access/heap/heapam.c:2533
 #, c-format
 msgid "attempted to delete invisible tuple"
 msgstr "试图删除不可见元组"
 
-#: access/heap/heapam.c:3572 access/heap/heapam.c:6409
+#: access/heap/heapam.c:2954 access/heap/heapam.c:5711
 #, c-format
 msgid "cannot update tuples during a parallel operation"
 msgstr "无法在并行操作期间更新元组"
 
-#: access/heap/heapam.c:3720
+#: access/heap/heapam.c:3087
 #, c-format
 msgid "attempted to update invisible tuple"
 msgstr "试图更新不可见元组"
 
-#: access/heap/heapam.c:5085 access/heap/heapam.c:5123
-#: access/heap/heapam.c:5375 executor/execMain.c:2662
+#: access/heap/heapam.c:4375 access/heap/heapam.c:4413
+#: access/heap/heapam.c:4670 access/heap/heapam_handler.c:454
 #, c-format
 msgid "could not obtain lock on row in relation \"%s\""
 msgstr "无法在关系 \"%s\"中的记录上获得锁"
 
-#: access/heap/hio.c:338 access/heap/rewriteheap.c:682
+#: access/heap/heapam_handler.c:405
+#, c-format
+msgid "tuple to be locked was already moved to another partition due to concurrent update"
+msgstr "由于同时更新,要锁定的元组已移动到另一个分区"
+
+#: access/heap/hio.c:345 access/heap/rewriteheap.c:681
 #, c-format
 msgid "row is too big: size %zu, maximum size %zu"
 msgstr "行太大: 尺寸 %zu, 最大值 %zu"
 
-#: access/heap/rewriteheap.c:942
+#: access/heap/rewriteheap.c:941
 #, c-format
 msgid "could not write to file \"%s\", wrote %d of %d: %m"
 msgstr "无法往文件 \"%s\" 偏移量 %d, %d 写入: %m"
 
-#: access/heap/rewriteheap.c:982 access/heap/rewriteheap.c:1203
-#: access/heap/rewriteheap.c:1302 access/transam/timeline.c:411
-#: access/transam/timeline.c:490 access/transam/xlog.c:3307
-#: access/transam/xlog.c:3473 replication/logical/snapbuild.c:1648
-#: replication/slot.c:1313 replication/slot.c:1405 storage/file/fd.c:639
-#: storage/file/fd.c:3533 storage/smgr/md.c:1044 storage/smgr/md.c:1289
-#: storage/smgr/md.c:1463 utils/misc/guc.c:7266
-#, c-format
-msgid "could not fsync file \"%s\": %m"
-msgstr "无法 fsync 文件 \"%s\": %m"
-
-#: access/heap/rewriteheap.c:1036 access/heap/rewriteheap.c:1155
-#: access/transam/timeline.c:314 access/transam/timeline.c:465
-#: access/transam/xlog.c:3261 access/transam/xlog.c:3411
-#: access/transam/xlog.c:10692 access/transam/xlog.c:10730
-#: access/transam/xlog.c:11133 postmaster/postmaster.c:4454
-#: replication/logical/origin.c:575 replication/slot.c:1262
-#: storage/file/copydir.c:167 storage/smgr/md.c:327 utils/time/snapmgr.c:1297
+#: access/heap/rewriteheap.c:1035 access/heap/rewriteheap.c:1154
+#: access/transam/timeline.c:314 access/transam/timeline.c:468
+#: access/transam/xlog.c:3253 access/transam/xlog.c:3425
+#: access/transam/xlog.c:4545 access/transam/xlog.c:10527
+#: access/transam/xlog.c:10565 access/transam/xlog.c:10970
+#: access/transam/xlogfuncs.c:736 postmaster/postmaster.c:4524
+#: replication/logical/origin.c:575 replication/slot.c:1261
+#: storage/file/copydir.c:167 storage/smgr/md.c:204 utils/time/snapmgr.c:1299
 #, c-format
 msgid "could not create file \"%s\": %m"
 msgstr "无法创建文件 \"%s\": %m"
 
-#: access/heap/rewriteheap.c:1165
+#: access/heap/rewriteheap.c:1164
 #, c-format
 msgid "could not truncate file \"%s\" to %u: %m"
 msgstr "无法将文件\"%s\"截断为%u:%m"
 
-#: access/heap/rewriteheap.c:1173 replication/walsender.c:490
-#: storage/smgr/md.c:1999
+#: access/heap/rewriteheap.c:1172 replication/walsender.c:493
+#: storage/smgr/md.c:1245
 #, c-format
 msgid "could not seek to end of file \"%s\": %m"
 msgstr "无法查找到文件\"%s\"的末端: %m"
 
-#: access/heap/rewriteheap.c:1190 access/transam/timeline.c:369
-#: access/transam/timeline.c:404 access/transam/timeline.c:482
-#: access/transam/xlog.c:3293 access/transam/xlog.c:3464
-#: postmaster/postmaster.c:4464 postmaster/postmaster.c:4474
-#: replication/logical/origin.c:590 replication/logical/origin.c:635
-#: replication/logical/origin.c:657 replication/logical/snapbuild.c:1624
-#: replication/slot.c:1296 storage/file/copydir.c:208
-#: utils/init/miscinit.c:1349 utils/init/miscinit.c:1360
-#: utils/init/miscinit.c:1368 utils/misc/guc.c:7227 utils/misc/guc.c:7258
-#: utils/misc/guc.c:9120 utils/misc/guc.c:9134 utils/time/snapmgr.c:1302
-#: utils/time/snapmgr.c:1309
+#: access/heap/rewriteheap.c:1189 access/transam/timeline.c:369
+#: access/transam/timeline.c:408 access/transam/timeline.c:485
+#: access/transam/xlog.c:3309 access/transam/xlog.c:3481
+#: access/transam/xlog.c:4557 postmaster/postmaster.c:4534
+#: postmaster/postmaster.c:4544 replication/logical/origin.c:587
+#: replication/logical/origin.c:629 replication/logical/origin.c:648
+#: replication/logical/snapbuild.c:1627 replication/slot.c:1295
+#: storage/file/copydir.c:207 utils/init/miscinit.c:1345
+#: utils/init/miscinit.c:1356 utils/init/miscinit.c:1364 utils/misc/guc.c:7801
+#: utils/misc/guc.c:7832 utils/misc/guc.c:9760 utils/misc/guc.c:9774
+#: utils/time/snapmgr.c:1304 utils/time/snapmgr.c:1311
 #, c-format
 msgid "could not write to file \"%s\": %m"
 msgstr "无法写入文件 \"%s\": %m"
 
-#: access/heap/rewriteheap.c:1277 access/transam/xlogarchive.c:112
-#: access/transam/xlogarchive.c:459 postmaster/postmaster.c:1275
-#: postmaster/syslogger.c:1456 replication/logical/origin.c:563
-#: replication/logical/reorderbuffer.c:2810
-#: replication/logical/snapbuild.c:1567 replication/logical/snapbuild.c:1966
-#: replication/slot.c:1375 storage/file/fd.c:690 storage/file/fd.c:3133
-#: storage/file/fd.c:3195 storage/file/reinit.c:255 storage/ipc/dsm.c:315
-#: storage/smgr/md.c:426 storage/smgr/md.c:475 storage/smgr/md.c:1410
-#: utils/time/snapmgr.c:1640
+#: access/heap/rewriteheap.c:1279 access/transam/twophase.c:1661
+#: access/transam/xlogarchive.c:112 access/transam/xlogarchive.c:459
+#: postmaster/postmaster.c:1277 postmaster/syslogger.c:1466
+#: replication/logical/origin.c:563 replication/logical/reorderbuffer.c:2814
+#: replication/logical/snapbuild.c:1569 replication/logical/snapbuild.c:2011
+#: replication/slot.c:1381 storage/file/fd.c:704 storage/file/fd.c:3000
+#: storage/file/fd.c:3062 storage/file/reinit.c:255 storage/ipc/dsm.c:307
+#: storage/smgr/md.c:298 storage/smgr/md.c:354 storage/sync/sync.c:210
+#: utils/time/snapmgr.c:1644
 #, c-format
 msgid "could not remove file \"%s\": %m"
 msgstr "无法删除文件 \"%s\": %m"
 
-#: access/heap/rewriteheap.c:1291 access/transam/timeline.c:111
-#: access/transam/timeline.c:236 access/transam/timeline.c:333
-#: access/transam/xlog.c:3238 access/transam/xlog.c:3356
-#: access/transam/xlog.c:3397 access/transam/xlog.c:3674
-#: access/transam/xlog.c:3752 access/transam/xlogutils.c:708
-#: postmaster/syslogger.c:1465 replication/basebackup.c:517
-#: replication/basebackup.c:1391 replication/logical/origin.c:712
-#: replication/logical/reorderbuffer.c:2304
-#: replication/logical/reorderbuffer.c:2571
-#: replication/logical/reorderbuffer.c:3284
-#: replication/logical/snapbuild.c:1610 replication/logical/snapbuild.c:1710
-#: replication/slot.c:1390 replication/walsender.c:483
-#: replication/walsender.c:2412 storage/file/copydir.c:161
-#: storage/file/fd.c:622 storage/file/fd.c:3428 storage/file/fd.c:3512
-#: storage/smgr/md.c:608 utils/error/elog.c:1872 utils/init/miscinit.c:1273
-#: utils/init/miscinit.c:1408 utils/init/miscinit.c:1485 utils/misc/guc.c:7486
-#: utils/misc/guc.c:7518
+#: access/heap/vacuumlazy.c:267
+#, fuzzy, c-format
+#| msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\""
+msgid "skipping redundant vacuum to prevent wraparound of table \"%s.%s.%s\""
+msgstr "autovacuum: 正在删除遗留的临时表\"%s.%s.%s\""
+
+#: access/heap/vacuumlazy.c:405
+#, fuzzy, c-format
+#| msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n"
+msgid "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n"
+msgstr "自动积极的清理表\"%s.%s.%s\":索引扫描:%d\n"
+
+#: access/heap/vacuumlazy.c:410
 #, c-format
-msgid "could not open file \"%s\": %m"
-msgstr "无法打开文件 \"%s\": %m"
+msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n"
+msgstr "自动积极的清理表\"%s.%s.%s\":索引扫描:%d\n"
+
+#: access/heap/vacuumlazy.c:412
+#, c-format
+msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n"
+msgstr "自动清理表\"%s.%s.%s\":索引扫描:%d\n"
+
+#: access/heap/vacuumlazy.c:419
+#, c-format
+msgid "pages: %u removed, %u remain, %u skipped due to pins, %u skipped frozen\n"
+msgstr "页面:%u 被移除,%u 保留,%u 由于被占用而跳过,%u 被跳过的已被冻结\n"
+
+#: access/heap/vacuumlazy.c:425
+#, c-format
+msgid "tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable, oldest xmin: %u\n"
+msgstr "元组:%.0f被移除,%.0f保留,%.0f已经死亡但还不能被移除,最老xmin: %u\n"
+
+#: access/heap/vacuumlazy.c:431
+#, c-format
+msgid "buffer usage: %d hits, %d misses, %d dirtied\n"
+msgstr "缓冲区使用:%d次命中,%d次失效,%d次脏\n"
+
+#: access/heap/vacuumlazy.c:435
+#, c-format
+msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"
+msgstr "平均读取率:%.3f MB/s,平均写入率:%.3f MB/s\n"
+
+#: access/heap/vacuumlazy.c:437
+#, c-format
+msgid "system usage: %s"
+msgstr "系统用法:%s"
+
+#: access/heap/vacuumlazy.c:533
+#, c-format
+msgid "aggressively vacuuming \"%s.%s\""
+msgstr "正在积极清理\"%s.%s\""
+
+#: access/heap/vacuumlazy.c:538 commands/cluster.c:910
+#, c-format
+msgid "vacuuming \"%s.%s\""
+msgstr "正在清理 (vacuum)  \"%s.%s\""
+
+#: access/heap/vacuumlazy.c:1476
+#, c-format
+msgid "\"%s\": removed %.0f row versions in %u pages"
+msgstr "\"%1$s\": 在%3$u页中已删除%2$.0f行版本号"
+
+#: access/heap/vacuumlazy.c:1486
+#, c-format
+msgid "%.0f dead row versions cannot be removed yet, oldest xmin: %u\n"
+msgstr "%.0f的死亡行版本还不能被移除,最老的xmin: %u\n"
+
+#: access/heap/vacuumlazy.c:1488
+#, fuzzy, c-format
+#| msgid "There were %.0f unused item pointers.\n"
+msgid "There were %.0f unused item identifiers.\n"
+msgstr "有%.0f个未用的项指针。\n"
+
+#: access/heap/vacuumlazy.c:1490
+#, c-format
+msgid "Skipped %u page due to buffer pins, "
+msgid_plural "Skipped %u pages due to buffer pins, "
+msgstr[0] "由于缓冲区占用而跳过%u个页面,"
+
+#: access/heap/vacuumlazy.c:1494
+#, c-format
+msgid "%u frozen page.\n"
+msgid_plural "%u frozen pages.\n"
+msgstr[0] "%u个冻结页面.\n"
+
+#: access/heap/vacuumlazy.c:1498
+#, c-format
+msgid "%u page is entirely empty.\n"
+msgid_plural "%u pages are entirely empty.\n"
+msgstr[0] "%u 个页面完全为空。\n"
+
+#: access/heap/vacuumlazy.c:1502 commands/indexcmds.c:3276
+#: commands/indexcmds.c:3294
+#, c-format
+msgid "%s."
+msgstr "%s"
+
+#: access/heap/vacuumlazy.c:1505
+#, c-format
+msgid "\"%s\": found %.0f removable, %.0f nonremovable row versions in %u out of %u pages"
+msgstr "\"%1$s\": 在超出%5$u页的%4$u中找到可删除版本号%2$.0f, 不可删除的版本号%3$.0f"
+
+#: access/heap/vacuumlazy.c:1574
+#, c-format
+msgid "\"%s\": removed %d row versions in %d pages"
+msgstr "\"%1$s\": 在%3$d个页中已删除%2$d记录版本"
+
+#: access/heap/vacuumlazy.c:1765
+#, c-format
+msgid "scanned index \"%s\" to remove %d row versions"
+msgstr "扫描索引\"%s\"来删除%d记录版本"
+
+#: access/heap/vacuumlazy.c:1818
+#, c-format
+msgid "index \"%s\" now contains %.0f row versions in %u pages"
+msgstr "索引\"%1$s\"在%3$u个页中包含了行版本号%2$.0f"
+
+#: access/heap/vacuumlazy.c:1822
+#, c-format
+msgid ""
+"%.0f index row versions were removed.\n"
+"%u index pages have been deleted, %u are currently reusable.\n"
+"%s."
+msgstr ""
+"索引行版本%.0f被删除.\n"
+"%u个索引页已经被删除,%u当前可重用.\n"
+"%s."
+
+#: access/heap/vacuumlazy.c:1920
+#, c-format
+msgid "\"%s\": stopping truncate due to conflicting lock request"
+msgstr "\"%s\":由于与锁请求相冲突,停止截断操作"
+
+#: access/heap/vacuumlazy.c:1985
+#, c-format
+msgid "\"%s\": truncated %u to %u pages"
+msgstr "\"%s\": 将%u截断到%u pages"
 
-#: access/index/amapi.c:83 commands/amcmds.c:163
+#: access/heap/vacuumlazy.c:2050
+#, c-format
+msgid "\"%s\": suspending truncate due to conflicting lock request"
+msgstr "\"%s\":由于与锁请求相冲突,暂停截断操作"
+
+#: access/index/amapi.c:83 commands/amcmds.c:167
 #, c-format
 msgid "access method \"%s\" is not of type %s"
 msgstr "访问方法 \"%s\" 不是类型 %s 的"
@@ -926,85 +1033,138 @@ msgstr "访问方法 \"%s\" 不是类型 %s 的"
 msgid "index access method \"%s\" does not have a handler"
 msgstr "索引访问方法 \"%s\" 没有处理器"
 
-#: access/index/indexam.c:160 catalog/objectaddress.c:1223
-#: commands/indexcmds.c:2282 commands/tablecmds.c:249 commands/tablecmds.c:273
-#: commands/tablecmds.c:14113 commands/tablecmds.c:15406
+#: access/index/indexam.c:136 catalog/objectaddress.c:1259
+#: commands/indexcmds.c:2407 commands/tablecmds.c:248 commands/tablecmds.c:272
+#: commands/tablecmds.c:14796 commands/tablecmds.c:16128
 #, c-format
 msgid "\"%s\" is not an index"
 msgstr "\"%s\" 不是一个索引"
 
-#: access/nbtree/nbtinsert.c:530
+#: access/nbtree/nbtinsert.c:565
 #, c-format
 msgid "duplicate key value violates unique constraint \"%s\""
 msgstr "重复键违反唯一约束\"%s\""
 
-#: access/nbtree/nbtinsert.c:532
+#: access/nbtree/nbtinsert.c:567
 #, c-format
 msgid "Key %s already exists."
 msgstr "键值\"%s\" 已经存在"
 
-#: access/nbtree/nbtinsert.c:599
+#: access/nbtree/nbtinsert.c:638
 #, c-format
 msgid "failed to re-find tuple within index \"%s\""
 msgstr "在索引\"%s\"中重新寻找元组失败"
 
-#: access/nbtree/nbtinsert.c:601
+#: access/nbtree/nbtinsert.c:640
 #, c-format
 msgid "This may be because of a non-immutable index expression."
 msgstr "这可能是由于一个非不可改变的索引表达式引起的"
 
-#: access/nbtree/nbtinsert.c:681 access/nbtree/nbtsort.c:833
-#, c-format
-msgid ""
-"Values larger than 1/3 of a buffer page cannot be indexed.\n"
-"Consider a function index of an MD5 hash of the value, or use full text indexing."
-msgstr ""
-"值大于缓冲页的1/3,不能建索引.\n"
-"请考虑这个值MD5哈希函数索引,或者使用全文索引."
-
-#: access/nbtree/nbtpage.c:318 access/nbtree/nbtpage.c:529
-#: access/nbtree/nbtpage.c:618 parser/parse_utilcmd.c:2054
+#: access/nbtree/nbtpage.c:171 access/nbtree/nbtpage.c:359
+#: access/nbtree/nbtpage.c:572 parser/parse_utilcmd.c:2117
 #, c-format
 msgid "index \"%s\" is not a btree"
 msgstr "索引 \"%s\" 不是一个 btree"
 
-#: access/nbtree/nbtpage.c:325 access/nbtree/nbtpage.c:536
-#: access/nbtree/nbtpage.c:625
+#: access/nbtree/nbtpage.c:178 access/nbtree/nbtpage.c:366
+#: access/nbtree/nbtpage.c:579
 #, c-format
 msgid "version mismatch in index \"%s\": file version %d, current version %d, minimal supported version %d"
 msgstr "在索引 \"%s\" 中版本不匹配: 文件版本 %d, 当前版本%d,最低支持版本%d"
 
-#: access/nbtree/nbtpage.c:1320
+#: access/nbtree/nbtpage.c:1388
 #, c-format
 msgid "index \"%s\" contains a half-dead internal page"
 msgstr "索引 \"%s\" 包含一个半死的内部页."
 
-#: access/nbtree/nbtpage.c:1322
+#: access/nbtree/nbtpage.c:1390
 #, c-format
 msgid "This can be caused by an interrupted VACUUM in version 9.3 or older, before upgrade. Please REINDEX it."
 msgstr "可能是由于升级之前, 使用了9.3或者更老的版本里的VACUUM命令并产生中断造成的. 请为它重建索引."
 
+#: access/nbtree/nbtutils.c:2563
+#, fuzzy, c-format
+#| msgid "index row size %zu exceeds maximum %zu for index \"%s\""
+msgid "index row size %zu exceeds btree version %u maximum %zu for index \"%s\""
+msgstr "索引行的大小 %1$zu 超过了索引\"%3$s\"所允许的最大值%2$zu"
+
+#: access/nbtree/nbtutils.c:2569
+#, fuzzy, c-format
+#| msgid "while deleting tuple (%u,%u) in relation \"%s\""
+msgid "Index row references tuple (%u,%u) in relation \"%s\"."
+msgstr "当删除关系\"%3$s\"的元组(%1$u, %2$u)时"
+
+#: access/nbtree/nbtutils.c:2573
+#, c-format
+msgid ""
+"Values larger than 1/3 of a buffer page cannot be indexed.\n"
+"Consider a function index of an MD5 hash of the value, or use full text indexing."
+msgstr ""
+"值大于缓冲页的1/3,不能建索引.\n"
+"请考虑这个值MD5哈希函数索引,或者使用全文索引."
+
 #: access/nbtree/nbtvalidate.c:236
 #, c-format
 msgid "operator family \"%s\" of access method %s is missing support function for types %s and %s"
 msgstr "访问方法%1$s的运算符族\"%2$s\" 缺少类型 %3$s 和 %4$s 的支持函数"
 
-#: access/spgist/spgutils.c:136
+#: access/spgist/spgutils.c:142
 #, c-format
 msgid "compress method must be defined when leaf type is different from input type"
 msgstr "当叶类型与输入类型不同时,必须定义压缩方法"
 
-#: access/spgist/spgutils.c:743
+#: access/spgist/spgutils.c:749
 #, c-format
 msgid "SP-GiST inner tuple size %zu exceeds maximum %zu"
 msgstr "SP-GiST内部元组大小%zu超出最大值%zu"
 
-#: access/spgist/spgvalidate.c:269
+#: access/spgist/spgvalidate.c:276
 #, c-format
 msgid "operator family \"%s\" of access method %s is missing support function %d for type %s"
 msgstr "访问方法%1$s的运算符族\"%2$s\"缺少类型 %4$s 的支持函数 %3$d"
 
-#: access/tablesample/bernoulli.c:152 access/tablesample/system.c:156
+#: access/table/table.c:49 access/table/table.c:78 access/table/table.c:111
+#: catalog/aclchk.c:1832
+#, c-format
+msgid "\"%s\" is an index"
+msgstr "\"%s\" 是一个索引"
+
+#: access/table/table.c:54 access/table/table.c:83 access/table/table.c:116
+#: catalog/aclchk.c:1839 commands/tablecmds.c:11607 commands/tablecmds.c:14805
+#, c-format
+msgid "\"%s\" is a composite type"
+msgstr "\"%s\" 为混和类型"
+
+#: access/table/tableam.c:236
+#, fuzzy, c-format
+#| msgid "relation \"%s\" is not a partition of relation \"%s\""
+msgid "tid (%u, %u) is not valid for relation \"%s\""
+msgstr "关系\"%s\"不是关系\"%s\"的分区"
+
+#: access/table/tableamapi.c:109
+#, c-format
+msgid "default_table_access_method may not be empty."
+msgstr ""
+
+#: access/table/tableamapi.c:115 utils/misc/guc.c:11648
+#, fuzzy, c-format
+#| msgid "recovery_target_name is too long (maximum %d characters)"
+msgid "%s is too long (maximum %d characters)."
+msgstr "recovery_target_name 值超长 (最大长度为 %d 个字符)"
+
+#: access/table/tableamapi.c:137
+#, fuzzy, c-format
+#| msgid "access method \"%s\" does not exist"
+msgid "table access method \"%s\" does not exist"
+msgstr "访问方式 \"%s\" 不存在"
+
+#: access/table/tableamapi.c:142
+#, fuzzy, c-format
+#| msgid "access method \"%s\" does not exist"
+msgid "Table access method \"%s\" does not exist."
+msgstr "访问方式 \"%s\" 不存在"
+
+#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:152
 #, c-format
 msgid "sample percentage must be between 0 and 100"
 msgstr "采样百分率必须位于0和100之间"
@@ -1104,8 +1264,8 @@ msgid "MultiXactId wrap limit is %u, limited by database with OID %u"
 msgstr "MultiXactId的封装限制是%u, 限制于OID为%u的数据库."
 
 #: access/transam/multixact.c:2323 access/transam/multixact.c:2332
-#: access/transam/varsup.c:146 access/transam/varsup.c:153
-#: access/transam/varsup.c:405 access/transam/varsup.c:412
+#: access/transam/varsup.c:149 access/transam/varsup.c:156
+#: access/transam/varsup.c:447 access/transam/varsup.c:454
 #, c-format
 msgid ""
 "To avoid a database shutdown, execute a database-wide VACUUM in that database.\n"
@@ -1144,94 +1304,94 @@ msgstr "没有找到最旧的多事务%u,最新的多事务是%u,跳过截
 msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation"
 msgstr "无法一直截断到多事务%u,因为它在磁盘上不存在,跳过截断"
 
-#: access/transam/multixact.c:3355
+#: access/transam/multixact.c:3343
 #, c-format
 msgid "invalid MultiXactId: %u"
 msgstr "无效的MultiXactId:%u"
 
-#: access/transam/parallel.c:664 access/transam/parallel.c:787
+#: access/transam/parallel.c:673 access/transam/parallel.c:792
 #, c-format
 msgid "parallel worker failed to initialize"
 msgstr "并行工作进程初始化失败"
 
-#: access/transam/parallel.c:665 access/transam/parallel.c:788
+#: access/transam/parallel.c:674 access/transam/parallel.c:793
 #, c-format
 msgid "More details may be available in the server log."
 msgstr "有关详细信息,请参阅服务器日志."
 
-#: access/transam/parallel.c:849
+#: access/transam/parallel.c:854
 #, c-format
 msgid "postmaster exited during a parallel transaction"
 msgstr "在并行操作期间postmaster退出"
 
 # fe-exec.c:745
-#: access/transam/parallel.c:1036
+#: access/transam/parallel.c:1041
 #, c-format
 msgid "lost connection to parallel worker"
 msgstr "并行工作者进程的连接丢失"
 
-#: access/transam/parallel.c:1102 access/transam/parallel.c:1104
+#: access/transam/parallel.c:1107 access/transam/parallel.c:1109
 msgid "parallel worker"
 msgstr "并行工作者进程"
 
-#: access/transam/parallel.c:1249
+#: access/transam/parallel.c:1259
 #, c-format
 msgid "could not map dynamic shared memory segment"
 msgstr "无法映射动态共享内存段"
 
-#: access/transam/parallel.c:1254
+#: access/transam/parallel.c:1264
 #, c-format
 msgid "invalid magic number in dynamic shared memory segment"
 msgstr "动态共享内存段中有非法magic号"
 
-#: access/transam/slru.c:668
+#: access/transam/slru.c:674
 #, c-format
 msgid "file \"%s\" doesn't exist, reading as zeroes"
 msgstr "文件 \"%s\" 不存在, 假设读取了 0 字节"
 
-#: access/transam/slru.c:906 access/transam/slru.c:912
-#: access/transam/slru.c:919 access/transam/slru.c:926
-#: access/transam/slru.c:933 access/transam/slru.c:940
+#: access/transam/slru.c:912 access/transam/slru.c:918
+#: access/transam/slru.c:925 access/transam/slru.c:932
+#: access/transam/slru.c:939 access/transam/slru.c:946
 #, c-format
 msgid "could not access status of transaction %u"
 msgstr "无法处理事物 %u 的状态"
 
-#: access/transam/slru.c:907
+#: access/transam/slru.c:913
 #, c-format
 msgid "Could not open file \"%s\": %m."
 msgstr "无法打开文件 \"%s\": %m"
 
-#: access/transam/slru.c:913
+#: access/transam/slru.c:919
 #, c-format
 msgid "Could not seek in file \"%s\" to offset %u: %m."
 msgstr "无法在文件 \"%s\" 偏移量 %u 查找: %m"
 
-#: access/transam/slru.c:920
+#: access/transam/slru.c:926
 #, c-format
 msgid "Could not read from file \"%s\" at offset %u: %m."
 msgstr "无法从文件 \"%s\" 偏移量 %u 读取: %m"
 
-#: access/transam/slru.c:927
+#: access/transam/slru.c:933
 #, c-format
 msgid "Could not write to file \"%s\" at offset %u: %m."
 msgstr "无法往文件 \"%s\" 偏移量 %u 写入: %m"
 
-#: access/transam/slru.c:934
+#: access/transam/slru.c:940
 #, c-format
 msgid "Could not fsync file \"%s\": %m."
 msgstr "无法在文件 \"%s\"上执行系统调用fsync: %m"
 
-#: access/transam/slru.c:941
+#: access/transam/slru.c:947
 #, c-format
 msgid "Could not close file \"%s\": %m."
 msgstr "无法关闭文件 \"%s\": %m"
 
-#: access/transam/slru.c:1198
+#: access/transam/slru.c:1204
 #, c-format
 msgid "could not truncate directory \"%s\": apparent wraparound"
 msgstr "无法清空目录\"%s\": 有明显的重叠"
 
-#: access/transam/slru.c:1253 access/transam/slru.c:1309
+#: access/transam/slru.c:1259 access/transam/slru.c:1315
 #, c-format
 msgid "removing file \"%s\""
 msgstr "删除文件 \"%s\""
@@ -1272,187 +1432,192 @@ msgstr "历史文件 \"%s\" 中存在无效数据"
 msgid "Timeline IDs must be less than child timeline's ID."
 msgstr "Timeline ID 必须小于子 timeline 的 ID."
 
-#: access/transam/timeline.c:417 access/transam/timeline.c:496
-#: access/transam/xlog.c:3314 access/transam/xlog.c:3479
-#: access/transam/xlogfuncs.c:683 commands/copy.c:1760
-#: storage/file/copydir.c:219
-#, c-format
-msgid "could not close file \"%s\": %m"
-msgstr "无法关闭文件 \"%s\": %m"
-
-#: access/transam/timeline.c:578
+#: access/transam/timeline.c:580
 #, c-format
 msgid "requested timeline %u is not in this server's history"
 msgstr "服务器上没有起始时间表 %u"
 
-#: access/transam/twophase.c:381
+#: access/transam/twophase.c:382
 #, c-format
 msgid "transaction identifier \"%s\" is too long"
 msgstr "事务标示符 \"%s\" 太长"
 
 # large_obj.c:55
-#: access/transam/twophase.c:388
+#: access/transam/twophase.c:389
 #, c-format
 msgid "prepared transactions are disabled"
 msgstr "禁用已准备好的事务"
 
-#: access/transam/twophase.c:389
+#: access/transam/twophase.c:390
 #, c-format
 msgid "Set max_prepared_transactions to a nonzero value."
 msgstr "将max_prepared_transactions设置为一个非零值"
 
-#: access/transam/twophase.c:408
+#: access/transam/twophase.c:409
 #, c-format
 msgid "transaction identifier \"%s\" is already in use"
 msgstr "事务标示符\"%s\"已经在使用"
 
-#: access/transam/twophase.c:417 access/transam/twophase.c:2435
+#: access/transam/twophase.c:418 access/transam/twophase.c:2420
 #, c-format
 msgid "maximum number of prepared transactions reached"
 msgstr "已经达到已准备好事务的最大数量"
 
-#: access/transam/twophase.c:418 access/transam/twophase.c:2436
+#: access/transam/twophase.c:419 access/transam/twophase.c:2421
 #, c-format
 msgid "Increase max_prepared_transactions (currently %d)."
 msgstr "增加max_prepared_transactions的值(当前值是%d)."
 
-#: access/transam/twophase.c:586
+#: access/transam/twophase.c:587
 #, c-format
 msgid "prepared transaction with identifier \"%s\" is busy"
 msgstr "标示符为\"%s\"的事务处于繁忙状态."
 
-#: access/transam/twophase.c:592
+#: access/transam/twophase.c:593
 #, c-format
 msgid "permission denied to finish prepared transaction"
 msgstr "完成已准备好事务的权限不够"
 
-#: access/transam/twophase.c:593
+#: access/transam/twophase.c:594
 #, c-format
 msgid "Must be superuser or the user that prepared the transaction."
 msgstr "必须是超级用户或者是准备好事务的用户"
 
-#: access/transam/twophase.c:604
+#: access/transam/twophase.c:605
 #, c-format
 msgid "prepared transaction belongs to another database"
 msgstr "已准备好的事务属于另一个数据库"
 
-#: access/transam/twophase.c:605
+#: access/transam/twophase.c:606
 #, c-format
 msgid "Connect to the database where the transaction was prepared to finish it."
 msgstr "连接到带有准备好完成事务的数据库"
 
-#: access/transam/twophase.c:620
+#: access/transam/twophase.c:621
 #, c-format
 msgid "prepared transaction with identifier \"%s\" does not exist"
 msgstr "带有标示符\"%s\" 已准备好事务不存在"
 
-#: access/transam/twophase.c:1103
+#: access/transam/twophase.c:1115
 #, c-format
 msgid "two-phase state file maximum length exceeded"
 msgstr "超过两阶段状态文件的最大长度"
 
-#: access/transam/twophase.c:1232
+#: access/transam/twophase.c:1261 access/transam/xlog.c:10512
+#: access/transam/xlog.c:10550 access/transam/xlog.c:10767
+#: access/transam/xlogarchive.c:104 access/transam/xlogarchive.c:264
+#: commands/copy.c:1945 commands/copy.c:3554 commands/extension.c:3330
+#: commands/tablespace.c:787 commands/tablespace.c:878
+#: replication/basebackup.c:343 replication/basebackup.c:523
+#: replication/basebackup.c:593 replication/logical/snapbuild.c:1527
+#: storage/file/copydir.c:68 storage/file/copydir.c:107 storage/file/fd.c:1703
+#: storage/file/fd.c:2980 storage/file/fd.c:3162 storage/file/fd.c:3247
+#: utils/adt/dbsize.c:70 utils/adt/dbsize.c:222 utils/adt/dbsize.c:302
+#: utils/adt/genfile.c:133 utils/adt/genfile.c:386 guc-file.l:1004
 #, c-format
-msgid "could not open two-phase state file \"%s\": %m"
-msgstr "无法打开两阶段提交状态文件\"%s\": %m"
+msgid "could not stat file \"%s\": %m"
+msgstr "无法取文件 \"%s\" 的状态: %m"
 
-#: access/transam/twophase.c:1253
-#, c-format
-msgid "could not stat two-phase state file \"%s\": %m"
-msgstr "无法获取两阶段提交状态文件 \"%s\" 的状态: %m"
+#: access/transam/twophase.c:1269
+#, fuzzy, c-format
+#| msgid "could not write to file \"%s\": %m"
+msgid "incorrect size of file \"%s\": %zu byte"
+msgid_plural "incorrect size of file \"%s\": %zu bytes"
+msgstr[0] "无法写入文件 \"%s\": %m"
 
-#: access/transam/twophase.c:1292
+#: access/transam/twophase.c:1278
 #, c-format
-msgid "could not read two-phase state file \"%s\": %m"
-msgstr "无法读取两阶段提交状态文件 \"%s\": %m"
+msgid "incorrect alignment of CRC offset for file \"%s\""
+msgstr ""
+
+#: access/transam/twophase.c:1311
+#, fuzzy, c-format
+#| msgid "invalid segment number %d in file \"%s\""
+msgid "invalid magic number stored in file \"%s\""
+msgstr "文件\"%2$s\"中的段号%1$d无效"
+
+#: access/transam/twophase.c:1317
+#, fuzzy, c-format
+#| msgid "invalid data in file \"%s\""
+msgid "invalid size stored in file \"%s\""
+msgstr "文件 \"%s\" 中存在无效数据"
 
-#: access/transam/twophase.c:1384 access/transam/xlog.c:6483
+#: access/transam/twophase.c:1329
+#, fuzzy, c-format
+#| msgid "calculated CRC checksum does not match value stored in file"
+msgid "calculated CRC checksum does not match value stored in file \"%s\""
+msgstr "计算得到的 CRC 校验与存储在文件中的值不匹配"
+
+#: access/transam/twophase.c:1395 access/transam/xlog.c:6347
 #, c-format
 msgid "Failed while allocating a WAL reading processor."
 msgstr "分配WAL读取处理器失败."
 
-#: access/transam/twophase.c:1390
+#: access/transam/twophase.c:1401
 #, c-format
 msgid "could not read two-phase state from WAL at %X/%X"
 msgstr "无法从 %X/%X 位置的 WAL 读取两阶段状态"
 
-#: access/transam/twophase.c:1398
+#: access/transam/twophase.c:1409
 #, c-format
 msgid "expected two-phase state data is not present in WAL at %X/%X"
 msgstr "预期的两阶段状态数据没有出现在 WAL 的 %X/%X 位置上"
 
-#: access/transam/twophase.c:1636
-#, c-format
-msgid "could not remove two-phase state file \"%s\": %m"
-msgstr "无法删除两阶段提交状态文件\"%s\": %m"
-
-#: access/transam/twophase.c:1665
-#, c-format
-msgid "could not recreate two-phase state file \"%s\": %m"
-msgstr "无法重新创建两阶段提交状态文件 \"%s\": %m"
-
-#: access/transam/twophase.c:1682 access/transam/twophase.c:1695
-#, c-format
-msgid "could not write two-phase state file: %m"
-msgstr "无法对两阶段提交状态文件进行写操作: %m"
-
-#: access/transam/twophase.c:1712
-#, c-format
-msgid "could not fsync two-phase state file: %m"
-msgstr "无法在两阶段提交状态文件上执行系统调用fsync: %m"
-
-#: access/transam/twophase.c:1719
-#, c-format
-msgid "could not close two-phase state file: %m"
-msgstr "无法关闭两阶段提交状态文件: %m"
+#: access/transam/twophase.c:1689
+#, fuzzy, c-format
+#| msgid "could not create file \"%s\": %m"
+msgid "could not recreate file \"%s\": %m"
+msgstr "无法创建文件 \"%s\": %m"
 
-#: access/transam/twophase.c:1807
+#: access/transam/twophase.c:1816
 #, c-format
 msgid "%u two-phase state file was written for a long-running prepared transaction"
 msgid_plural "%u two-phase state files were written for long-running prepared transactions"
 msgstr[0] "为长时间运行的准备好事务写了 %u 个两阶段状态文件"
 
-#: access/transam/twophase.c:2036
+#: access/transam/twophase.c:2050
 #, c-format
 msgid "recovering prepared transaction %u from shared memory"
 msgstr "正在从共享内存中恢复已准备事务%u"
 
-#: access/transam/twophase.c:2126
+#: access/transam/twophase.c:2141
 #, c-format
 msgid "removing stale two-phase state file for transaction %u"
 msgstr "正在删除事务%u无用的两阶段提交状态文件"
 
-#: access/transam/twophase.c:2133
+#: access/transam/twophase.c:2148
 #, c-format
 msgid "removing stale two-phase state from memory for transaction %u"
 msgstr "正在从内存中删除事务%u的无用的两阶段提交状态"
 
-#: access/transam/twophase.c:2146
+#: access/transam/twophase.c:2161
 #, c-format
 msgid "removing future two-phase state file for transaction %u"
 msgstr "正在删除事务%u的未来两阶段状态文件"
 
-#: access/transam/twophase.c:2153
+#: access/transam/twophase.c:2168
 #, c-format
 msgid "removing future two-phase state from memory for transaction %u"
 msgstr "正在从内存中删除事务%u的未来两阶段提交状态"
 
-#: access/transam/twophase.c:2167 access/transam/twophase.c:2186
-#, c-format
-msgid "removing corrupt two-phase state file for transaction %u"
+#: access/transam/twophase.c:2193
+#, fuzzy, c-format
+#| msgid "removing corrupt two-phase state file for transaction %u"
+msgid "corrupted two-phase state file for transaction %u"
 msgstr "正在删除事务%u已损坏的两阶段提交状态文件"
 
-#: access/transam/twophase.c:2193
-#, c-format
-msgid "removing corrupt two-phase state from memory for transaction %u"
+#: access/transam/twophase.c:2198
+#, fuzzy, c-format
+#| msgid "removing corrupt two-phase state from memory for transaction %u"
+msgid "corrupted two-phase state in memory for transaction %u"
 msgstr "正在从内存中删除事务%u已损坏的两阶段提交状态"
 
-#: access/transam/varsup.c:124
+#: access/transam/varsup.c:127
 #, c-format
 msgid "database is not accepting commands to avoid wraparound data loss in database \"%s\""
 msgstr "数据库没有接收命令来避免在数据库\"%s\"中的重叠数据损失"
 
-#: access/transam/varsup.c:126 access/transam/varsup.c:133
+#: access/transam/varsup.c:129 access/transam/varsup.c:136
 #, c-format
 msgid ""
 "Stop the postmaster and vacuum that database in single-user mode.\n"
@@ -1461,1186 +1626,1041 @@ msgstr ""
 "停止postmaster进程,然后在单用户模式下清理数据库.\n"
 "您也可能需要提交或回滚旧的已准备好事务,或者旧的复制槽."
 
-#: access/transam/varsup.c:131
+#: access/transam/varsup.c:134
 #, c-format
 msgid "database is not accepting commands to avoid wraparound data loss in database with OID %u"
 msgstr "数据库没有接受命令来避免在带有OID为%u的数据库中的重叠数据损失"
 
-#: access/transam/varsup.c:143 access/transam/varsup.c:402
+#: access/transam/varsup.c:146 access/transam/varsup.c:444
 #, c-format
 msgid "database \"%s\" must be vacuumed within %u transactions"
 msgstr "数据库 \"%s\"在运行%u个事务中进行清理(vacuume)."
 
-#: access/transam/varsup.c:150 access/transam/varsup.c:409
+#: access/transam/varsup.c:153 access/transam/varsup.c:451
 #, c-format
 msgid "database with OID %u must be vacuumed within %u transactions"
 msgstr "带有OID为%u的数据库必须在%u个事务中进行清理(vacuume)."
 
-#: access/transam/varsup.c:367
+#: access/transam/varsup.c:409
 #, c-format
 msgid "transaction ID wrap limit is %u, limited by database with OID %u"
 msgstr "事务ID的封装限制是%u, 由带有OID为%u的数据库限制."
 
-#: access/transam/xact.c:960
+#: access/transam/xact.c:1027
 #, c-format
 msgid "cannot have more than 2^32-2 commands in a transaction"
 msgstr "一个事物中拥有最多不能超过 2^32-2 个命令"
 
-#: access/transam/xact.c:1485
+#: access/transam/xact.c:1552
 #, c-format
 msgid "maximum number of committed subtransactions (%d) exceeded"
 msgstr "超过已提交子事务的最大数量(%d)"
 
-#: access/transam/xact.c:2296
-#, c-format
-msgid "cannot PREPARE a transaction that has operated on temporary tables"
-msgstr "无法在一个已经在临时表上操作的事务上执行PREPARE操作"
-
-#: access/transam/xact.c:2308
+#: access/transam/xact.c:2377
 #, c-format
 msgid "cannot PREPARE a transaction that has operated on temporary objects"
 msgstr "无法在一个已经在临时对象上操作的事务上执行PREPARE操作"
 
-#: access/transam/xact.c:2318
+#: access/transam/xact.c:2387
 #, c-format
 msgid "cannot PREPARE a transaction that has exported snapshots"
 msgstr "无法在一个已经导出快照的事务上执行PREPARE操作"
 
-#: access/transam/xact.c:2327
+#: access/transam/xact.c:2396
 #, c-format
 msgid "cannot PREPARE a transaction that has manipulated logical replication workers"
 msgstr "无法在已操作逻辑复制的事务上执行PREPARE操作"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3212
+#: access/transam/xact.c:3337
 #, c-format
 msgid "%s cannot run inside a transaction block"
 msgstr "%s 无法在事物块中运行"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3222
+#: access/transam/xact.c:3347
 #, c-format
 msgid "%s cannot run inside a subtransaction"
 msgstr "%s 无法在一个子事物中运行"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3232
+#: access/transam/xact.c:3357
 #, c-format
 msgid "%s cannot be executed from a function"
 msgstr "%s 无法从函数执行"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3301 access/transam/xact.c:3925
-#: access/transam/xact.c:3994 access/transam/xact.c:4105
+#: access/transam/xact.c:3426 access/transam/xact.c:4062
+#: access/transam/xact.c:4131 access/transam/xact.c:4242
 #, c-format
 msgid "%s can only be used in transaction blocks"
 msgstr "%s 只能在事务块中使用"
 
-#: access/transam/xact.c:3494
+#: access/transam/xact.c:3619
 #, c-format
 msgid "there is already a transaction in progress"
 msgstr "已经有一个事物在运行中"
 
-#: access/transam/xact.c:3605 access/transam/xact.c:3675
-#: access/transam/xact.c:3784
+#: access/transam/xact.c:3730 access/transam/xact.c:3800
+#: access/transam/xact.c:3916
 #, c-format
 msgid "there is no transaction in progress"
 msgstr "没有事物在运行中"
 
-#: access/transam/xact.c:3686
+#: access/transam/xact.c:3811
 #, c-format
 msgid "cannot commit during a parallel operation"
 msgstr "并行操作期间无法提交"
 
-#: access/transam/xact.c:3795
+#: access/transam/xact.c:3927
 #, c-format
 msgid "cannot abort during a parallel operation"
 msgstr "在并行操作期间无法中止"
 
-#: access/transam/xact.c:3889
+#: access/transam/xact.c:4026
 #, c-format
 msgid "cannot define savepoints during a parallel operation"
 msgstr "在并行操作期间无法定义保存点"
 
-#: access/transam/xact.c:3976
+#: access/transam/xact.c:4113
 #, c-format
 msgid "cannot release savepoints during a parallel operation"
 msgstr "在并行操作期间不能释放保存点"
 
-#: access/transam/xact.c:3986 access/transam/xact.c:4037
-#: access/transam/xact.c:4097 access/transam/xact.c:4146
+#: access/transam/xact.c:4123 access/transam/xact.c:4174
+#: access/transam/xact.c:4234 access/transam/xact.c:4283
 #, c-format
 msgid "savepoint \"%s\" does not exist"
 msgstr "保存点\"%s\"不存在"
 
-#: access/transam/xact.c:4043 access/transam/xact.c:4152
+#: access/transam/xact.c:4180 access/transam/xact.c:4289
 #, c-format
 msgid "savepoint \"%s\" does not exist within current savepoint level"
 msgstr "当前保存点级别中不存在保存点\"%s\""
 
-#: access/transam/xact.c:4085
+#: access/transam/xact.c:4222
 #, c-format
 msgid "cannot rollback to savepoints during a parallel operation"
 msgstr "在并行操作期间无法回滚到保存点"
 
-#: access/transam/xact.c:4213
+#: access/transam/xact.c:4350
 #, c-format
 msgid "cannot start subtransactions during a parallel operation"
 msgstr "在并行操作期间不能开始子事务"
 
-#: access/transam/xact.c:4281
+#: access/transam/xact.c:4418
 #, c-format
 msgid "cannot commit subtransactions during a parallel operation"
 msgstr "在并行操作期间不能提交子事务"
 
-#: access/transam/xact.c:4919
+#: access/transam/xact.c:5056
 #, c-format
 msgid "cannot have more than 2^32-1 subtransactions in a transaction"
 msgstr "在一个事物中不可以超过有 2^32-1 个子事物"
 
-#: access/transam/xlog.c:2492
-#, c-format
-msgid "could not seek in log file %s to offset %u: %m"
-msgstr "无法在日志文件 \"%s\" 中定位 %u: %m"
-
-#: access/transam/xlog.c:2514
+#: access/transam/xlog.c:2507
 #, 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:2792
+#: access/transam/xlog.c:2783
 #, c-format
 msgid "updated min recovery point to %X/%X on timeline %u"
 msgstr "在时间点%3$u上将最小恢复点更新到%1$X/%2$X"
 
-#: access/transam/xlog.c:3444
-#, c-format
-msgid "not enough data in file \"%s\""
-msgstr "文件 \"%s\" 中的数据不足"
-
-#: access/transam/xlog.c:3589
-#, c-format
-msgid "could not open write-ahead log file \"%s\": %m"
-msgstr "无法打开预写日志文件 \"%s\": %m"
-
-#: access/transam/xlog.c:3778 access/transam/xlog.c:5673
-#, c-format
-msgid "could not close log file %s: %m"
-msgstr "无法关闭日志文件 %s: %m"
-
-#: access/transam/xlog.c:3844 access/transam/xlogutils.c:703
-#: replication/walsender.c:2407
+#: access/transam/xlog.c:3864 access/transam/xlogutils.c:703
+#: replication/walsender.c:2445
 #, c-format
 msgid "requested WAL segment %s has already been removed"
 msgstr "所要求的WAL段%s已经被删除"
 
-#: access/transam/xlog.c:4051
+#: access/transam/xlog.c:4106
 #, c-format
 msgid "recycled write-ahead log file \"%s\""
 msgstr "回收预写日志文件 \"%s\""
 
-#: access/transam/xlog.c:4063
+#: access/transam/xlog.c:4118
 #, c-format
 msgid "removing write-ahead log file \"%s\""
 msgstr "删除预写日志文件 \"%s\""
 
-#: access/transam/xlog.c:4083
-#, c-format
-msgid "could not rename old write-ahead log file \"%s\": %m"
-msgstr "无法重命名旧的预写日志文件\"%s\": %m"
+#: access/transam/xlog.c:4138
+#, fuzzy, c-format
+#| msgid "could not remove file \"%s\": %m"
+msgid "could not rename file \"%s\": %m"
+msgstr "无法删除文件 \"%s\": %m"
 
-#: access/transam/xlog.c:4125 access/transam/xlog.c:4135
+#: access/transam/xlog.c:4180 access/transam/xlog.c:4190
 #, c-format
 msgid "required WAL directory \"%s\" does not exist"
 msgstr "所需要的WAL目录 \"%s\" 不存在"
 
-#: access/transam/xlog.c:4141
+#: access/transam/xlog.c:4196
 #, c-format
 msgid "creating missing WAL directory \"%s\""
 msgstr "正在创建丢失的WAL目录\"%s\""
 
-#: access/transam/xlog.c:4144
+#: access/transam/xlog.c:4199
 #, c-format
 msgid "could not create missing directory \"%s\": %m"
 msgstr "无法创建丢失的目录 \"%s\": %m"
 
-#: access/transam/xlog.c:4252
+#: access/transam/xlog.c:4304
 #, 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:4380
+#: access/transam/xlog.c:4432
 #, c-format
 msgid "new timeline %u is not a child of database system timeline %u"
 msgstr "新的时间线%u不附属于数据库系统时间线%u"
 
-#: access/transam/xlog.c:4394
+#: access/transam/xlog.c:4446
 #, c-format
 msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X"
 msgstr "在当前恢复点%3$X/%4$X之前, 新的时间点%1$u脱离了当前茅的数据库系统时间点%2$u"
 
-#: access/transam/xlog.c:4413
+#: access/transam/xlog.c:4465
 #, c-format
 msgid "new target timeline is %u"
 msgstr "新的目标时间线为%u"
 
-#: access/transam/xlog.c:4493
-#, c-format
-msgid "could not create control file \"%s\": %m"
-msgstr "无法创建控制文件 \"%s\": %m"
-
-#: access/transam/xlog.c:4505 access/transam/xlog.c:4759
-#, c-format
-msgid "could not write to control file: %m"
-msgstr "无法写入控制文件: %m"
-
-#: access/transam/xlog.c:4513 access/transam/xlog.c:4767
-#, c-format
-msgid "could not fsync control file: %m"
-msgstr "无法 fsync 控制文件: %m"
-
-#: access/transam/xlog.c:4519 access/transam/xlog.c:4773
-#, c-format
-msgid "could not close control file: %m"
-msgstr "无法关闭控制文件: %m"
-
-#: access/transam/xlog.c:4538 access/transam/xlog.c:4747
-#, c-format
-msgid "could not open control file \"%s\": %m"
-msgstr "无法打开控制文件 \"%s\": %m"
-
-#: access/transam/xlog.c:4548
-#, c-format
-msgid "could not read from control file: %m"
-msgstr "无法读取控制文件: %m"
-
-#: access/transam/xlog.c:4551
-#, c-format
-msgid "could not read from control file: read %d bytes, expected %d"
-msgstr "无法从控制文件中读取:读取%d字节,应为%d"
-
-#: access/transam/xlog.c:4566 access/transam/xlog.c:4575
-#: access/transam/xlog.c:4599 access/transam/xlog.c:4606
-#: access/transam/xlog.c:4613 access/transam/xlog.c:4618
-#: access/transam/xlog.c:4625 access/transam/xlog.c:4632
-#: access/transam/xlog.c:4639 access/transam/xlog.c:4646
-#: access/transam/xlog.c:4653 access/transam/xlog.c:4660
-#: access/transam/xlog.c:4669 access/transam/xlog.c:4676
-#: access/transam/xlog.c:4685 access/transam/xlog.c:4692
-#: utils/init/miscinit.c:1506
+#: access/transam/xlog.c:4624 access/transam/xlog.c:4633
+#: access/transam/xlog.c:4657 access/transam/xlog.c:4664
+#: access/transam/xlog.c:4671 access/transam/xlog.c:4676
+#: access/transam/xlog.c:4683 access/transam/xlog.c:4690
+#: access/transam/xlog.c:4697 access/transam/xlog.c:4704
+#: access/transam/xlog.c:4711 access/transam/xlog.c:4718
+#: access/transam/xlog.c:4727 access/transam/xlog.c:4734
+#: access/transam/xlog.c:4743 access/transam/xlog.c:4750
+#: utils/init/miscinit.c:1502
 #, c-format
 msgid "database files are incompatible with server"
 msgstr "数据库文件和服务器不兼容"
 
-#: access/transam/xlog.c:4567
+#: access/transam/xlog.c:4625
 #, c-format
 msgid "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), but the server was compiled with PG_CONTROL_VERSION %d (0x%08x)."
 msgstr "数据库集群是以 PG_CONTROL_VERSION %d (0x%08x)初始化的, 但是 服务器是以 PG_CONTROL_VERSION %d (0x%08x)编译的."
 
-#: access/transam/xlog.c:4571
+#: access/transam/xlog.c:4629
 #, 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:4576
+#: access/transam/xlog.c:4634
 #, c-format
 msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d."
 msgstr "数据库集群是以 PG_CONTROL_VERSION %d 初始化的, 但是 服务器是以 PG_CONTROL_VERSION %d 编译的."
 
-#: access/transam/xlog.c:4579 access/transam/xlog.c:4603
-#: access/transam/xlog.c:4610 access/transam/xlog.c:4615
+#: access/transam/xlog.c:4637 access/transam/xlog.c:4661
+#: access/transam/xlog.c:4668 access/transam/xlog.c:4673
 #, c-format
 msgid "It looks like you need to initdb."
 msgstr "看上去, 你需要初始化数据库."
 
-#: access/transam/xlog.c:4590
+#: access/transam/xlog.c:4648
 #, c-format
 msgid "incorrect checksum in control file"
 msgstr "控制文件的校验值不正确"
 
-#: access/transam/xlog.c:4600
+#: access/transam/xlog.c:4658
 #, c-format
 msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d."
 msgstr "数据库簇是以 CATALOG_VERSION_NO %d 初始化的, 但是 服务器是以 CATALOG_VERSION_NO %d 编译的."
 
-#: access/transam/xlog.c:4607
+#: access/transam/xlog.c:4665
 #, c-format
 msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d."
 msgstr "数据库集群是以 MAXALIGN%d 初始化的, 但是 服务器是以 NAMEDATALEN %d 编译的."
 
-#: access/transam/xlog.c:4614
+#: access/transam/xlog.c:4672
 #, c-format
 msgid "The database cluster appears to use a different floating-point number format than the server executable."
 msgstr "数据库集群在使用与服务器执行部分不同的浮点数格式"
 
-#: access/transam/xlog.c:4619
+#: access/transam/xlog.c:4677
 #, 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:4622 access/transam/xlog.c:4629
-#: access/transam/xlog.c:4636 access/transam/xlog.c:4643
-#: access/transam/xlog.c:4650 access/transam/xlog.c:4657
-#: access/transam/xlog.c:4664 access/transam/xlog.c:4672
-#: access/transam/xlog.c:4679 access/transam/xlog.c:4688
-#: access/transam/xlog.c:4695
+#: access/transam/xlog.c:4680 access/transam/xlog.c:4687
+#: access/transam/xlog.c:4694 access/transam/xlog.c:4701
+#: access/transam/xlog.c:4708 access/transam/xlog.c:4715
+#: access/transam/xlog.c:4722 access/transam/xlog.c:4730
+#: access/transam/xlog.c:4737 access/transam/xlog.c:4746
+#: access/transam/xlog.c:4753
 #, c-format
 msgid "It looks like you need to recompile or initdb."
 msgstr "看上去, 你需要重新编译或初始化数据库."
 
-#: access/transam/xlog.c:4626
+#: access/transam/xlog.c:4684
 #, c-format
 msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d."
 msgstr "数据库簇是以 RELSEG_SIZE %d 初始化的, 但是 服务器是以 RELSEG_SIZE %d 编译的."
 
-#: access/transam/xlog.c:4633
+#: access/transam/xlog.c:4691
 #, c-format
 msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d."
 msgstr "数据库集群是以 XLOG_BLCKSZ %d 初始化的, 但是 服务器是以 XLOG_BLCKSZ %d 编译的."
 
-#: access/transam/xlog.c:4640
+#: access/transam/xlog.c:4698
 #, c-format
 msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d."
 msgstr "数据库簇是以 NAMEDATALEN %d 初始化的, 但是 服务器是以 NAMEDATALEN %d 编译的."
 
-#: access/transam/xlog.c:4647
+#: access/transam/xlog.c:4705
 #, c-format
 msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d."
 msgstr "数据库集群是以 INDEX_MAX_KEYS  %d 初始化的, 但是 服务器是以 INDEX_MAX_KEYS %d 编译的."
 
-#: access/transam/xlog.c:4654
+#: access/transam/xlog.c:4712
 #, c-format
 msgid "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the server was compiled with TOAST_MAX_CHUNK_SIZE %d."
 msgstr "数据库集群是以 TOAST_MAX_CHUNK_SIZE %d 初始化的, 但是 服务器是以 TOAST_MAX_CHUNK_SIZE %d 编译的."
 
-#: access/transam/xlog.c:4661
+#: access/transam/xlog.c:4719
 #, c-format
 msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d."
 msgstr "数据库簇是以 LOBLKSIZE %d 初始化的, 但是 服务器是以 LOBLKSIZE %d 编译的."
 
-#: access/transam/xlog.c:4670
+#: access/transam/xlog.c:4728
 #, c-format
 msgid "The database cluster was initialized without USE_FLOAT4_BYVAL but the server was compiled with USE_FLOAT4_BYVAL."
 msgstr "数据库集群在初始化时没带有USE_FLOAT4_BYVAL选项, 但是服务器是以USE_FLOAT4_BYVAL选项编译的."
 
-#: access/transam/xlog.c:4677
+#: access/transam/xlog.c:4735
 #, c-format
 msgid "The database cluster was initialized with USE_FLOAT4_BYVAL but the server was compiled without USE_FLOAT4_BYVAL."
 msgstr "数据库集群是以USE_FLOAT4_BYVAL 初始化的, 但是服务器是以USE_FLOAT4_BYVAL编译的."
 
-#: access/transam/xlog.c:4686
+#: access/transam/xlog.c:4744
 #, c-format
 msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL."
 msgstr "数据库集群在初始化时没有带有 USE_FLOAT8_BYVAL, 但是服务器是以 USE_FLOAT8_BYVAL编译的."
 
-#: access/transam/xlog.c:4693
+#: access/transam/xlog.c:4751
 #, c-format
 msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL."
 msgstr "数据库集群是以USE_FLOAT8_BYVAL初始化的, 但是 服务器没有以USE_FLOAT8_BYVAL编译."
 
-#: access/transam/xlog.c:4702
+#: access/transam/xlog.c:4760
 #, c-format
 msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte"
 msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes"
 msgstr[0] "WAL段大小必须是1 MB到1 GB之间的2的幂,但控制文件指定了%d字节"
 
-#: access/transam/xlog.c:4714
+#: access/transam/xlog.c:4772
 #, c-format
 msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\""
 msgstr "\"min_wal_size\"必须至少是\"wal_segment_size\"的两倍"
 
-#: access/transam/xlog.c:4718
+#: access/transam/xlog.c:4776
 #, c-format
 msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\""
 msgstr "\"max_wal_size\"必须至少是\"wal_segment_size\"的两倍"
 
-#: access/transam/xlog.c:5105
+#: access/transam/xlog.c:5128
 #, c-format
 msgid "could not generate secret authorization token"
 msgstr "无法生成机密授权令牌"
 
-#: access/transam/xlog.c:5195
+#: access/transam/xlog.c:5218
 #, c-format
 msgid "could not write bootstrap write-ahead log file: %m"
 msgstr "无法写入 bootstrap 预写日志文件: %m"
 
-#: access/transam/xlog.c:5203
+#: access/transam/xlog.c:5226
 #, c-format
 msgid "could not fsync bootstrap write-ahead log file: %m"
 msgstr "无法同步 (fsync) 预写日志文件: %m"
 
-#: access/transam/xlog.c:5209
+#: access/transam/xlog.c:5232
 #, c-format
 msgid "could not close bootstrap write-ahead log file: %m"
 msgstr "无法关闭 bootstrap 预写日志文件: %m"
 
-#: access/transam/xlog.c:5291
-#, c-format
-msgid "could not open recovery command file \"%s\": %m"
-msgstr "无法打开恢复命令文件 \"%s\": %m"
-
-#: access/transam/xlog.c:5337 access/transam/xlog.c:5451
-#, c-format
-msgid "invalid value for recovery parameter \"%s\": \"%s\""
-msgstr "恢复参数 \"%s\" 的值无效:\"%s\""
-
-#: access/transam/xlog.c:5340
-#, c-format
-msgid "Valid values are \"pause\", \"promote\", and \"shutdown\"."
-msgstr "有效值为\"pause\"、\"promote\"和\"shutdown\"。"
-
-#: access/transam/xlog.c:5360
-#, c-format
-msgid "recovery_target_timeline is not a valid number: \"%s\""
-msgstr "recovery_target_timeline 不是一个有效的数字: \"%s\""
-
-#: access/transam/xlog.c:5377
-#, c-format
-msgid "recovery_target_xid is not a valid number: \"%s\""
-msgstr "recovery_target_xid 不是一个有效的数字: \"%s\""
-
-#: access/transam/xlog.c:5397
-#, c-format
-msgid "recovery_target_time is not a valid timestamp: \"%s\""
-msgstr "recovery_target_timeline 不是一个有效的时间戳: \"%s\""
-
-#: access/transam/xlog.c:5420
-#, c-format
-msgid "recovery_target_name is too long (maximum %d characters)"
-msgstr "recovery_target_name 值超长 (最大长度为 %d 个字符)"
-
-#: access/transam/xlog.c:5454
-#, c-format
-msgid "The only allowed value is \"immediate\"."
-msgstr "唯一有效的值是\"immediate\"."
-
-#: access/transam/xlog.c:5467 access/transam/xlog.c:5478
-#: commands/extension.c:547 commands/extension.c:555 utils/misc/guc.c:5993
-#, c-format
-msgid "parameter \"%s\" requires a Boolean value"
-msgstr "参数 \"%s\" 需要一个布尔值"
-
-#: access/transam/xlog.c:5513
-#, c-format
-msgid "parameter \"%s\" requires a temporal value"
-msgstr "参数 \"%s\" 需要一个临时值"
-
-#: access/transam/xlog.c:5515 catalog/dependency.c:969 catalog/dependency.c:970
-#: catalog/dependency.c:976 catalog/dependency.c:977 catalog/dependency.c:988
-#: catalog/dependency.c:989 commands/tablecmds.c:1072
-#: commands/tablecmds.c:11297 commands/user.c:1064 commands/view.c:509
-#: libpq/auth.c:336 replication/syncrep.c:1162 storage/lmgr/deadlock.c:1139
-#: storage/lmgr/proc.c:1331 utils/adt/acl.c:5344 utils/misc/guc.c:6015
-#: utils/misc/guc.c:6108 utils/misc/guc.c:10098 utils/misc/guc.c:10132
-#: utils/misc/guc.c:10166 utils/misc/guc.c:10200 utils/misc/guc.c:10235
-#, c-format
-msgid "%s"
-msgstr "%s"
+#: access/transam/xlog.c:5311
+#, fuzzy, c-format
+#| msgid "log format \"%s\" is not supported"
+msgid "using recovery command file \"%s\" is not supported"
+msgstr "不支持日志格式\"%s\""
 
-#: access/transam/xlog.c:5522
+#: access/transam/xlog.c:5376
 #, c-format
-msgid "unrecognized recovery parameter \"%s\""
-msgstr "未认可的恢复参数 \"%s\""
+msgid "standby mode is not supported by single-user servers"
+msgstr "单用户服务器不支持待机模式"
 
-#: access/transam/xlog.c:5533
-#, c-format
-msgid "recovery command file \"%s\" specified neither primary_conninfo nor restore_command"
+#: access/transam/xlog.c:5393
+#, fuzzy, c-format
+#| msgid "recovery command file \"%s\" specified neither primary_conninfo nor restore_command"
+msgid "specified neither primary_conninfo nor restore_command"
 msgstr "恢复命令文件 \"%s\" 既没有指定restore_command,也没有指定primary_conninfo"
 
-#: access/transam/xlog.c:5535
+#: access/transam/xlog.c:5394
 #, c-format
 msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there."
 msgstr "数据服务器将会通过定期轮询pg_wal子目录来检查放在这里的文件。"
 
-#: access/transam/xlog.c:5542
-#, c-format
-msgid "recovery command file \"%s\" must specify restore_command when standby mode is not enabled"
+#: access/transam/xlog.c:5402
+#, fuzzy, c-format
+#| msgid "recovery command file \"%s\" must specify restore_command when standby mode is not enabled"
+msgid "must specify restore_command when standby mode is not enabled"
 msgstr "当没有启用备份模式的时候恢复命令文件 \"%s\" 必须指定 restore_command的值"
 
-#: access/transam/xlog.c:5563
-#, c-format
-msgid "standby mode is not supported by single-user servers"
-msgstr "单用户服务器不支持待机模式"
-
-#: access/transam/xlog.c:5582
+#: access/transam/xlog.c:5428
 #, c-format
 msgid "recovery target timeline %u does not exist"
 msgstr "恢复目标的时间线 %u 不存在"
 
-#: access/transam/xlog.c:5703
+#: access/transam/xlog.c:5555
 #, c-format
 msgid "archive recovery complete"
 msgstr "归档恢复完毕"
 
-#: access/transam/xlog.c:5762 access/transam/xlog.c:6028
+#: access/transam/xlog.c:5614 access/transam/xlog.c:5880
 #, c-format
 msgid "recovery stopping after reaching consistency"
 msgstr "达到一致性前恢复停止"
 
-#: access/transam/xlog.c:5783
+#: access/transam/xlog.c:5635
 #, c-format
 msgid "recovery stopping before WAL location (LSN) \"%X/%X\""
 msgstr "恢复停止在WAL位置(LSN) \"%X/%X\"之前"
 
-#: access/transam/xlog.c:5869
+#: access/transam/xlog.c:5721
 #, c-format
 msgid "recovery stopping before commit of transaction %u, time %s"
 msgstr "恢复停止在事物 %u 提交之前, 时间 %s"
 
-#: access/transam/xlog.c:5876
+#: access/transam/xlog.c:5728
 #, c-format
 msgid "recovery stopping before abort of transaction %u, time %s"
 msgstr "恢复停止在事物 %u 中断之前, 时间 %s"
 
-#: access/transam/xlog.c:5922
+#: access/transam/xlog.c:5774
 #, c-format
 msgid "recovery stopping at restore point \"%s\", time %s"
 msgstr "恢复停止在恢复点 \"%s\", 时间 %s"
 
-#: access/transam/xlog.c:5940
+#: access/transam/xlog.c:5792
 #, c-format
 msgid "recovery stopping after WAL location (LSN) \"%X/%X\""
 msgstr "恢复停止在WAL位置(LSN) \"%X/%X\"之后"
 
-#: access/transam/xlog.c:6008
+#: access/transam/xlog.c:5860
 #, c-format
 msgid "recovery stopping after commit of transaction %u, time %s"
 msgstr "恢复停止在事物 %u 提交之后, 时间 %s"
 
-#: access/transam/xlog.c:6016
+#: access/transam/xlog.c:5868
 #, c-format
 msgid "recovery stopping after abort of transaction %u, time %s"
 msgstr "恢复停止在事物 %u 中断之后, 时间 %s"
 
-#: access/transam/xlog.c:6056
+#: access/transam/xlog.c:5908
 #, c-format
 msgid "recovery has paused"
 msgstr "恢复操作已暂停"
 
-#: access/transam/xlog.c:6057
+#: access/transam/xlog.c:5909
 #, c-format
 msgid "Execute pg_wal_replay_resume() to continue."
 msgstr "执行 pg_wal_replay_resume() 以继续."
 
-#: access/transam/xlog.c:6265
+#: access/transam/xlog.c:6117
 #, c-format
 msgid "hot standby is not possible because %s = %d is a lower setting than on the master server (its value was %d)"
 msgstr "在备用点无法实施热备操作,因为%s = %d这个设置低于在主服务器的设置(它的值是%d)"
 
-#: access/transam/xlog.c:6291
+#: access/transam/xlog.c:6143
 #, c-format
 msgid "WAL was generated with wal_level=minimal, data may be missing"
 msgstr "WAL文件由wal_level=minimal的设置而产生,这种情况下数据可能会丢失"
 
-#: access/transam/xlog.c:6292
+#: access/transam/xlog.c:6144
 #, c-format
 msgid "This happens if you temporarily set wal_level=minimal without taking a new base backup."
 msgstr "发生这种情况是因为您临时将wal_level设置为minimal,而没有同时进行基础备份"
 
-#: access/transam/xlog.c:6303
+#: access/transam/xlog.c:6155
 #, c-format
 msgid "hot standby is not possible because wal_level was not set to \"replica\" or higher on the master server"
 msgstr "无法实施热后备,因为在主服务器上 wal_level 没有被设置为 \"replica\" 或更高的值"
 
-#: access/transam/xlog.c:6304
+#: access/transam/xlog.c:6156
 #, c-format
 msgid "Either set wal_level to \"replica\" on the master, or turn off hot_standby here."
 msgstr "要么在主服务器上把 wal_level 设置为\"replica\" ,要么在这里把 hot_standby 关闭。"
 
-#: access/transam/xlog.c:6356
+#: access/transam/xlog.c:6220
 #, c-format
 msgid "control file contains invalid data"
 msgstr "控制文件包含无效的数据"
 
-#: access/transam/xlog.c:6362
+#: access/transam/xlog.c:6226
 #, c-format
 msgid "database system was shut down at %s"
 msgstr "数据库上次关闭时间为 %s"
 
-#: access/transam/xlog.c:6367
+#: access/transam/xlog.c:6231
 #, c-format
 msgid "database system was shut down in recovery at %s"
 msgstr "在%s,数据库在恢复中关闭"
 
-#: access/transam/xlog.c:6371
+#: access/transam/xlog.c:6235
 #, c-format
 msgid "database system shutdown was interrupted; last known up at %s"
 msgstr "数据库系统关闭操作被中断;上一次已知的运行是在%s"
 
-#: access/transam/xlog.c:6375
+#: access/transam/xlog.c:6239
 #, c-format
 msgid "database system was interrupted while in recovery at %s"
 msgstr "恢复时, 数据库系统在 %s 被中断"
 
-#: access/transam/xlog.c:6377
+#: access/transam/xlog.c:6241
 #, 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:6381
+#: access/transam/xlog.c:6245
 #, c-format
 msgid "database system was interrupted while in recovery at log time %s"
 msgstr "当日志时间%s进行恢复时,数据库系统被中断"
 
-#: access/transam/xlog.c:6383
+#: access/transam/xlog.c:6247
 #, c-format
 msgid "If this has occurred more than once some data might be corrupted and you might need to choose an earlier recovery target."
 msgstr "如果这种现象多次发生,那么表示数据可能已经损坏,您可能需要选择更早一点的恢复目标"
 
-#: access/transam/xlog.c:6387
+#: access/transam/xlog.c:6251
 #, c-format
 msgid "database system was interrupted; last known up at %s"
 msgstr "数据库系统中断;上一次的启动时间是在%s"
 
-#: access/transam/xlog.c:6443
+#: access/transam/xlog.c:6307
 #, c-format
 msgid "entering standby mode"
 msgstr "正在进入备用模式"
 
-#: access/transam/xlog.c:6446
+#: access/transam/xlog.c:6310
 #, c-format
 msgid "starting point-in-time recovery to XID %u"
 msgstr "开始执行到XID %u的基于时间点恢复"
 
-#: access/transam/xlog.c:6450
+#: access/transam/xlog.c:6314
 #, c-format
 msgid "starting point-in-time recovery to %s"
 msgstr "开始执行到%s的基于时间点恢复"
 
-#: access/transam/xlog.c:6454
+#: access/transam/xlog.c:6318
 #, c-format
 msgid "starting point-in-time recovery to \"%s\""
 msgstr "开始执行到基于时间点恢复的时间点\"%s\""
 
-#: access/transam/xlog.c:6458
+#: access/transam/xlog.c:6322
 #, c-format
 msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\""
 msgstr "开始执行到基于时间点恢复到WAL位置(LSN) \"%X/%X\""
 
-#: access/transam/xlog.c:6463
+#: access/transam/xlog.c:6327
 #, c-format
 msgid "starting point-in-time recovery to earliest consistent point"
 msgstr "开始执行到最早一致点的基于时间点恢复"
 
-#: access/transam/xlog.c:6466
+#: access/transam/xlog.c:6330
 #, c-format
 msgid "starting archive recovery"
 msgstr "开始归档恢复"
 
-#: access/transam/xlog.c:6520 access/transam/xlog.c:6645
+#: access/transam/xlog.c:6384 access/transam/xlog.c:6516
 #, c-format
 msgid "checkpoint record is at %X/%X"
 msgstr "checkpoint 记录位置在 %X/%X"
 
-#: access/transam/xlog.c:6534
+#: access/transam/xlog.c:6398
 #, c-format
 msgid "could not find redo location referenced by checkpoint record"
 msgstr "无法找到checkpoint 记录对应的重做日志位置"
 
-#: access/transam/xlog.c:6535 access/transam/xlog.c:6542
+#: access/transam/xlog.c:6399 access/transam/xlog.c:6409
 #, c-format
-msgid "If you are not restoring from a backup, try removing the file \"%s/backup_label\"."
-msgstr "如果你不是从备份恢复, 请删除 \"%s/backup_label\"."
+msgid ""
+"If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n"
+"If you are not restoring from a backup, try removing the file \"%s/backup_label\".\n"
+"Be careful: removing \"%s/backup_label\" will result in a corrupt cluster if restoring from a backup."
+msgstr ""
 
-#: access/transam/xlog.c:6541
+#: access/transam/xlog.c:6408
 #, c-format
 msgid "could not locate required checkpoint record"
 msgstr "无法找到需要的 checkpoint 记录"
 
-#: access/transam/xlog.c:6567 commands/tablespace.c:641
+#: access/transam/xlog.c:6437 commands/tablespace.c:646
 #, c-format
 msgid "could not create symbolic link \"%s\": %m"
 msgstr "无法创建符号链接 \"%s\": %m"
 
-#: access/transam/xlog.c:6599 access/transam/xlog.c:6605
+#: access/transam/xlog.c:6469 access/transam/xlog.c:6475
 #, c-format
 msgid "ignoring file \"%s\" because no file \"%s\" exists"
 msgstr "忽略文件\"%s\",因为不存在文件\"%s\""
 
-#: access/transam/xlog.c:6601 access/transam/xlog.c:11621
+#: access/transam/xlog.c:6471 access/transam/xlog.c:11458
 #, c-format
 msgid "File \"%s\" was renamed to \"%s\"."
 msgstr "文件\"%s\" 被重新命名为\"%s\"。"
 
-#: access/transam/xlog.c:6607
+#: access/transam/xlog.c:6477
 #, c-format
 msgid "Could not rename file \"%s\" to \"%s\": %m."
 msgstr "无法把文件\"%s\"重命名为\"%s\":%m。"
 
-#: access/transam/xlog.c:6657
+#: access/transam/xlog.c:6528
 #, c-format
 msgid "could not locate a valid checkpoint record"
 msgstr "无法找到一个有效的 checkpoint 记录"
 
-#: access/transam/xlog.c:6695
+#: access/transam/xlog.c:6566
 #, c-format
 msgid "requested timeline %u is not a child of this server's history"
 msgstr "所要求的时间线%u不在服务器的历史时间线里"
 
-#: access/transam/xlog.c:6697
+#: access/transam/xlog.c:6568
 #, c-format
 msgid "Latest checkpoint is at %X/%X on timeline %u, but in the history of the requested timeline, the server forked off from that timeline at %X/%X."
 msgstr "最近的检查点位于%X/%X,时间点为%u, 但是在请求的历史时间点中,服务器端在那个时间点会产生分支%X/%X."
 
-#: access/transam/xlog.c:6713
+#: access/transam/xlog.c:6584
 #, 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:6744
+#: access/transam/xlog.c:6615
 #, c-format
 msgid "invalid next transaction ID"
 msgstr "无效的下一个事务 ID"
 
-#: access/transam/xlog.c:6839
+#: access/transam/xlog.c:6709
 #, c-format
 msgid "invalid redo in checkpoint record"
 msgstr "在检查点记录中无效的redo操作"
 
-#: access/transam/xlog.c:6850
+#: access/transam/xlog.c:6720
 #, c-format
 msgid "invalid redo record in shutdown checkpoint"
 msgstr "在关闭检查点中的redo记录无效"
 
-#: access/transam/xlog.c:6878
+#: access/transam/xlog.c:6748
 #, c-format
 msgid "database system was not properly shut down; automatic recovery in progress"
 msgstr "数据库系统没有正确的关闭; 处于自动恢复状态中"
 
-#: access/transam/xlog.c:6882
+#: access/transam/xlog.c:6752
 #, c-format
 msgid "crash recovery starts in timeline %u and has target timeline %u"
 msgstr "崩溃恢复开始于时间线%u, 目标时间线是%u"
 
-#: access/transam/xlog.c:6925
+#: access/transam/xlog.c:6795
 #, c-format
 msgid "backup_label contains data inconsistent with control file"
 msgstr "backup_label 包含了与控制文件不一致的数据"
 
-#: access/transam/xlog.c:6926
+#: access/transam/xlog.c:6796
 #, 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:7017
+#: access/transam/xlog.c:6887
 #, c-format
 msgid "initializing for hot standby"
 msgstr "正在为热备进行初始化"
 
-#: access/transam/xlog.c:7149
+#: access/transam/xlog.c:7019
 #, c-format
 msgid "redo starts at %X/%X"
 msgstr "redo 在 %X/%X 开始"
 
-#: access/transam/xlog.c:7383
+#: access/transam/xlog.c:7243
 #, c-format
 msgid "requested recovery stop point is before consistent recovery point"
 msgstr "所要求的恢复停止点在一致性恢复点之前"
 
-#: access/transam/xlog.c:7421
+#: access/transam/xlog.c:7281
 #, c-format
 msgid "redo done at %X/%X"
 msgstr "redo 在 %X/%X 完成"
 
-#: access/transam/xlog.c:7426
+#: access/transam/xlog.c:7286
 #, c-format
 msgid "last completed transaction was at log time %s"
 msgstr "上一次完成事务是在日志时间%s完成的."
 
-#: access/transam/xlog.c:7435
+#: access/transam/xlog.c:7295
 #, c-format
 msgid "redo is not required"
 msgstr "不需要 redo"
 
-#: access/transam/xlog.c:7510 access/transam/xlog.c:7514
+#: access/transam/xlog.c:7370 access/transam/xlog.c:7374
 #, c-format
 msgid "WAL ends before end of online backup"
 msgstr "联机备份终止之前,WAL已经终止"
 
-#: access/transam/xlog.c:7511
+#: access/transam/xlog.c:7371
 #, c-format
 msgid "All WAL generated while online backup was taken must be available at recovery."
 msgstr "所有联机备份时产生的WAL日志在恢复时必须存在."
 
-#: access/transam/xlog.c:7515
+#: access/transam/xlog.c:7375
 #, c-format
 msgid "Online backup started with pg_start_backup() must be ended with pg_stop_backup(), and all WAL up to that point must be available at recovery."
 msgstr "由pg_start_backup()发起的联机备份必须通过调用pg_stop_backup()来终止, 并且到那一刻为止所有的WAL日志在恢复时必须存在."
 
-#: access/transam/xlog.c:7518
+#: access/transam/xlog.c:7378
 #, c-format
 msgid "WAL ends before consistent recovery point"
 msgstr "在一致性恢复点前结束WAL"
 
-#: access/transam/xlog.c:7552
+#: access/transam/xlog.c:7412
 #, c-format
 msgid "selected new timeline ID: %u"
 msgstr "已选择的新时间线ID:%u"
 
-#: access/transam/xlog.c:7989
+#: access/transam/xlog.c:7849
 #, c-format
 msgid "consistent recovery state reached at %X/%X"
 msgstr "在%X/%X上已到达一致性恢复状态"
 
-#: access/transam/xlog.c:8181
+#: access/transam/xlog.c:8041
 #, c-format
 msgid "invalid primary checkpoint link in control file"
 msgstr "在控制文件中无效的主 checkpoint 链接"
 
-#: access/transam/xlog.c:8185
+#: access/transam/xlog.c:8045
 #, c-format
 msgid "invalid checkpoint link in backup_label file"
 msgstr "在 backup_label 文件中无效的 checkpoint 链接"
 
-#: access/transam/xlog.c:8202
+#: access/transam/xlog.c:8062
 #, c-format
 msgid "invalid primary checkpoint record"
 msgstr "无效的主 checkpoint 记录"
 
-#: access/transam/xlog.c:8206
+#: access/transam/xlog.c:8066
 #, c-format
 msgid "invalid checkpoint record"
 msgstr "无效的 checkpoint 记录"
 
-#: access/transam/xlog.c:8217
+#: access/transam/xlog.c:8077
 #, c-format
 msgid "invalid resource manager ID in primary checkpoint record"
 msgstr "在主 checkpoint 记录中的无效资源管理器 ID"
 
-#: access/transam/xlog.c:8221
+#: access/transam/xlog.c:8081
 #, c-format
 msgid "invalid resource manager ID in checkpoint record"
 msgstr "在 checkpoint 记录中的无效资源管理器 ID"
 
-#: access/transam/xlog.c:8234
+#: access/transam/xlog.c:8094
 #, c-format
 msgid "invalid xl_info in primary checkpoint record"
 msgstr "在主 checkpoint 记录中无效的 xl_info"
 
-#: access/transam/xlog.c:8238
+#: access/transam/xlog.c:8098
 #, c-format
 msgid "invalid xl_info in checkpoint record"
 msgstr "在 checkpoint 记录中无效的 xl_info"
 
-#: access/transam/xlog.c:8249
+#: access/transam/xlog.c:8109
 #, c-format
 msgid "invalid length of primary checkpoint record"
 msgstr "无效的主 checkpoint 记录长度"
 
-#: access/transam/xlog.c:8253
+#: access/transam/xlog.c:8113
 #, c-format
 msgid "invalid length of checkpoint record"
 msgstr "无效的 checkpoint 记录长度"
 
-#: access/transam/xlog.c:8459
+#: access/transam/xlog.c:8293
 #, c-format
 msgid "shutting down"
 msgstr "正在关闭"
 
-#: access/transam/xlog.c:8779
+#: access/transam/xlog.c:8613
 #, c-format
 msgid "checkpoint skipped because system is idle"
 msgstr "由于系统空闲,跳过了检查点"
 
-#: access/transam/xlog.c:8984
+#: access/transam/xlog.c:8813
 #, c-format
 msgid "concurrent write-ahead log activity while database system is shutting down"
 msgstr "当数据库正在关闭时, 仍有活跃的并发预写日志"
 
-#: access/transam/xlog.c:9241
+#: access/transam/xlog.c:9069
 #, c-format
 msgid "skipping restartpoint, recovery has already ended"
 msgstr "正在跳过重新启动点, 恢复已经结束"
 
-#: access/transam/xlog.c:9264
+#: access/transam/xlog.c:9092
 #, c-format
 msgid "skipping restartpoint, already performed at %X/%X"
 msgstr "跳过重新启动点,它已经在%X/%X上执行了."
 
-#: access/transam/xlog.c:9431
+#: access/transam/xlog.c:9259
 #, c-format
 msgid "recovery restart point at %X/%X"
 msgstr "恢复得重新启动点是在%X/%X开始"
 
-#: access/transam/xlog.c:9433
+#: access/transam/xlog.c:9261
 #, c-format
 msgid "Last completed transaction was at log time %s."
 msgstr "上一次完成事务是在日志时间%s完成的."
 
-#: access/transam/xlog.c:9567
+#: access/transam/xlog.c:9395
 #, c-format
 msgid "restore point \"%s\" created at %X/%X"
 msgstr "恢复点\"%s\",创建于%X/%X"
 
-#: access/transam/xlog.c:9705
+#: access/transam/xlog.c:9536
 #, c-format
 msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record"
 msgstr "在检查点记录中出现未期望的时间线ID%u(当前时间线%u)"
 
-#: access/transam/xlog.c:9714
+#: access/transam/xlog.c:9545
 #, c-format
 msgid "unexpected timeline ID %u (after %u) in checkpoint record"
 msgstr "在检查点记录中出现未期望的时间线ID%u(在%u之后)"
 
-#: access/transam/xlog.c:9730
+#: access/transam/xlog.c:9561
 #, c-format
 msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u"
 msgstr "在达到最小恢复点%2$X/%3$X之前,时间点%4$u处,在检查点记录中出现意外的时间点ID %1$u"
 
-#: access/transam/xlog.c:9806
+#: access/transam/xlog.c:9637
 #, c-format
 msgid "online backup was canceled, recovery cannot continue"
 msgstr "在线备份操作已取消,恢复操作无法继续"
 
-#: access/transam/xlog.c:9862 access/transam/xlog.c:9918
-#: access/transam/xlog.c:9941
+#: access/transam/xlog.c:9691 access/transam/xlog.c:9745
+#: access/transam/xlog.c:9768
 #, c-format
 msgid "unexpected timeline ID %u (should be %u) in checkpoint record"
 msgstr "在检查点记录中出现未期望的时间线ID%u(应该是%u)"
 
-#: access/transam/xlog.c:10222
-#, c-format
-msgid "could not fsync log segment %s: %m"
-msgstr "无法同步 (fsync) 日志段 %s: %m"
-
-#: access/transam/xlog.c:10247
-#, c-format
-msgid "could not fsync log file %s: %m"
-msgstr "无法 fsync 日志文件 %s: %m"
-
-#: access/transam/xlog.c:10255
-#, c-format
-msgid "could not fsync write-through log file %s: %m"
+#: access/transam/xlog.c:10088
+#, fuzzy, c-format
+#| msgid "could not fsync write-through log file %s: %m"
+msgid "could not fsync write-through file \"%s\": %m"
 msgstr "无法同步 (fsync) 写入日志文件%s: %m"
 
-#: access/transam/xlog.c:10264
-#, c-format
-msgid "could not fdatasync log file %s: %m"
-msgstr "无法同步 (fdatasync) 日志文件 %s: %m"
+#: access/transam/xlog.c:10097
+#, fuzzy, c-format
+#| msgid "could not fsync file \"%s\": %m"
+msgid "could not fdatasync file \"%s\": %m"
+msgstr "无法 fsync 文件 \"%s\": %m"
 
-#: access/transam/xlog.c:10355 access/transam/xlog.c:10882
-#: access/transam/xlogfuncs.c:287 access/transam/xlogfuncs.c:314
-#: access/transam/xlogfuncs.c:353 access/transam/xlogfuncs.c:374
-#: access/transam/xlogfuncs.c:395
+#: access/transam/xlog.c:10190 access/transam/xlog.c:10719
+#: access/transam/xlogfuncs.c:290 access/transam/xlogfuncs.c:317
+#: access/transam/xlogfuncs.c:356 access/transam/xlogfuncs.c:377
+#: access/transam/xlogfuncs.c:398
 #, c-format
 msgid "WAL control functions cannot be executed during recovery."
 msgstr "在恢复期间无法执行WAL控制函数"
 
-#: access/transam/xlog.c:10364 access/transam/xlog.c:10891
+#: access/transam/xlog.c:10199 access/transam/xlog.c:10728
 #, c-format
 msgid "WAL level not sufficient for making an online backup"
 msgstr "WAL的级别不能满足在线备份的要求"
 
-#: access/transam/xlog.c:10365 access/transam/xlog.c:10892
-#: access/transam/xlogfuncs.c:320
+#: access/transam/xlog.c:10200 access/transam/xlog.c:10729
+#: access/transam/xlogfuncs.c:323
 #, c-format
 msgid "wal_level must be set to \"replica\" or \"logical\" at server start."
 msgstr "wal_level 必须在服务器启动的时候被设置为 \"replica\" 或 \"logical\"。"
 
-#: access/transam/xlog.c:10370
+#: access/transam/xlog.c:10205
 #, c-format
 msgid "backup label too long (max %d bytes)"
 msgstr "备份标签名超长(最大为%d字节)"
 
-#: access/transam/xlog.c:10407 access/transam/xlog.c:10683
-#: access/transam/xlog.c:10721
+#: access/transam/xlog.c:10242 access/transam/xlog.c:10518
+#: access/transam/xlog.c:10556
 #, c-format
 msgid "a backup is already in progress"
 msgstr "一个备份已经在运行中"
 
-#: access/transam/xlog.c:10408
+#: access/transam/xlog.c:10243
 #, c-format
 msgid "Run pg_stop_backup() and try again."
 msgstr "运行pg_stop_backup(),然后重新尝试一次."
 
-#: access/transam/xlog.c:10504
+#: access/transam/xlog.c:10339
 #, 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:10506 access/transam/xlog.c:11087
+#: access/transam/xlog.c:10341 access/transam/xlog.c:10924
 #, c-format
 msgid "This means that the backup being taken on the standby is corrupt and should not be used. Enable full_page_writes and run CHECKPOINT on the master, and then try an online backup again."
 msgstr "这意味着备用节点上的备份已经损坏,不应该使用。启用 full_page_writes并在主节点上运行CHECKPOINT,然后再试着执行联机备份."
 
-#: access/transam/xlog.c:10574 replication/basebackup.c:1232
-#: utils/adt/misc.c:517
-#, c-format
-msgid "could not read symbolic link \"%s\": %m"
-msgstr "无法读取符号链接 \"%s\": %m"
-
-#: access/transam/xlog.c:10581 replication/basebackup.c:1237
-#: utils/adt/misc.c:522
+#: access/transam/xlog.c:10416 replication/basebackup.c:1237
+#: utils/adt/misc.c:329
 #, c-format
 msgid "symbolic link \"%s\" target is too long"
 msgstr "符号链接 \"%s\" 目标超长"
 
-#: access/transam/xlog.c:10633 commands/tablespace.c:391
-#: commands/tablespace.c:553 replication/basebackup.c:1252 utils/adt/misc.c:530
+#: access/transam/xlog.c:10468 commands/tablespace.c:394
+#: commands/tablespace.c:558 replication/basebackup.c:1252 utils/adt/misc.c:337
 #, c-format
 msgid "tablespaces are not supported on this platform"
 msgstr "在此平台上不支持表空间"
 
-#: access/transam/xlog.c:10677 access/transam/xlog.c:10715
-#: access/transam/xlog.c:10930 access/transam/xlogarchive.c:104
-#: access/transam/xlogarchive.c:264 commands/copy.c:1890 commands/copy.c:3206
-#: commands/extension.c:3326 commands/tablespace.c:782
-#: commands/tablespace.c:873 guc-file.l:1004 replication/basebackup.c:523
-#: replication/basebackup.c:593 replication/logical/snapbuild.c:1525
-#: storage/file/copydir.c:68 storage/file/copydir.c:107 storage/file/fd.c:1733
-#: storage/file/fd.c:3113 storage/file/fd.c:3295 storage/file/fd.c:3380
-#: utils/adt/dbsize.c:70 utils/adt/dbsize.c:222 utils/adt/dbsize.c:302
-#: utils/adt/genfile.c:131 utils/adt/genfile.c:382
-#, c-format
-msgid "could not stat file \"%s\": %m"
-msgstr "无法取文件 \"%s\" 的状态: %m"
-
-#: access/transam/xlog.c:10684 access/transam/xlog.c:10722
+#: access/transam/xlog.c:10519 access/transam/xlog.c:10557
 #, 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:10701 access/transam/xlog.c:10739
-#: access/transam/xlog.c:11150 postmaster/syslogger.c:1476
-#: postmaster/syslogger.c:1489
-#, c-format
-msgid "could not write file \"%s\": %m"
-msgstr "无法写入文件 \"%s\": %m"
-
-#: access/transam/xlog.c:10907
+#: access/transam/xlog.c:10744
 #, c-format
 msgid "exclusive backup not in progress"
 msgstr "排除备份不在运行中"
 
-#: access/transam/xlog.c:10934
+#: access/transam/xlog.c:10771
 #, c-format
 msgid "a backup is not in progress"
 msgstr "没有备份在运行中"
 
-#: access/transam/xlog.c:11020 access/transam/xlog.c:11033
-#: access/transam/xlog.c:11394 access/transam/xlog.c:11400
-#: access/transam/xlog.c:11448 access/transam/xlog.c:11521
-#: access/transam/xlogfuncs.c:688
+#: access/transam/xlog.c:10857 access/transam/xlog.c:10870
+#: access/transam/xlog.c:11231 access/transam/xlog.c:11237
+#: access/transam/xlog.c:11285 access/transam/xlog.c:11358
+#: access/transam/xlogfuncs.c:693
 #, c-format
 msgid "invalid data in file \"%s\""
 msgstr "文件 \"%s\" 中存在无效数据"
 
-#: access/transam/xlog.c:11037 replication/basebackup.c:1089
+#: access/transam/xlog.c:10874 replication/basebackup.c:1089
 #, c-format
 msgid "the standby was promoted during online backup"
 msgstr "联机备份期间,备用节点已提升为主节点"
 
-#: access/transam/xlog.c:11038 replication/basebackup.c:1090
+#: access/transam/xlog.c:10875 replication/basebackup.c:1090
 #, 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:11085
+#: access/transam/xlog.c:10922
 #, 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:11205
-#, c-format
-msgid "pg_stop_backup cleanup done, waiting for required WAL segments to be archived"
+#: access/transam/xlog.c:11042
+#, fuzzy, c-format
+#| msgid "pg_stop_backup cleanup done, waiting for required WAL segments to be archived"
+msgid "base backup done, waiting for required WAL segments to be archived"
 msgstr "pg_stop_backup命令所执行的清理操作已完成,正在等待所要求的WAL段归档"
 
-#: access/transam/xlog.c:11215
-#, c-format
-msgid "pg_stop_backup still waiting for all required WAL segments to be archived (%d seconds elapsed)"
+#: access/transam/xlog.c:11052
+#, fuzzy, c-format
+#| msgid "pg_stop_backup still waiting for all required WAL segments to be archived (%d seconds elapsed)"
+msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)"
 msgstr "pg_stop_backup在等待所有需要的WAL段归档(已过去%d秒)"
 
-#: access/transam/xlog.c:11217
-#, c-format
-msgid "Check that your archive_command is executing properly.  pg_stop_backup can be canceled safely, but the database backup will not be usable without all the WAL segments."
+#: access/transam/xlog.c:11054
+#, fuzzy, c-format
+#| msgid "Check that your archive_command is executing properly.  pg_stop_backup can be canceled safely, but the database backup will not be usable without all the WAL segments."
+msgid "Check that your archive_command is executing properly.  You can safely cancel this backup, but the database backup will not be usable without all the WAL segments."
 msgstr "请检查您的归档命令是否正确执行。pg_stop_backup命令可以安全退出,但是如果没有所有需要的WAL段,数据库备份将无法使用."
 
-#: access/transam/xlog.c:11224
-#, c-format
-msgid "pg_stop_backup complete, all required WAL segments have been archived"
+#: access/transam/xlog.c:11061
+#, fuzzy, c-format
+#| msgid "pg_stop_backup complete, all required WAL segments have been archived"
+msgid "all required WAL segments have been archived"
 msgstr "pg_stop_backup 执行完成,所有需要的WAL段都已经归档完成。"
 
-#: access/transam/xlog.c:11228
+#: access/transam/xlog.c:11065
 #, c-format
 msgid "WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup"
 msgstr "没有启用WAL归档;您必须确保所有的WAL段已通过其他的方法拷贝,这样才能完成备份"
 
-#: access/transam/xlog.c:11431
+#: access/transam/xlog.c:11268
 #, c-format
 msgid "backup time %s in file \"%s\""
 msgstr "文件 \"%2$s\"中的备份时间%1$s"
 
-#: access/transam/xlog.c:11436
+#: access/transam/xlog.c:11273
 #, c-format
 msgid "backup label %s in file \"%s\""
 msgstr "文件 \"%2$s\"中的备份标签%1$s"
 
-#: access/transam/xlog.c:11449
+#: access/transam/xlog.c:11286
 #, c-format
 msgid "Timeline ID parsed is %u, but expected %u"
 msgstr "解析的时间线ID为%u,但应为%u"
 
-#: access/transam/xlog.c:11453
+#: access/transam/xlog.c:11290
 #, c-format
 msgid "backup timeline %u in file \"%s\""
 msgstr "文件\"%2$s\"中的备份时间线%1$u"
 
 #. translator: %s is a WAL record description
-#: access/transam/xlog.c:11561
+#: access/transam/xlog.c:11398
 #, c-format
 msgid "WAL redo at %X/%X for %s"
 msgstr "%3$s WAL 重做在 %1$X/%2$X 位置"
 
-#: access/transam/xlog.c:11610
+#: access/transam/xlog.c:11447
 #, c-format
 msgid "online backup mode was not canceled"
 msgstr "在线备份模式没有取消"
 
-#: access/transam/xlog.c:11611
+#: access/transam/xlog.c:11448
 #, c-format
 msgid "File \"%s\" could not be renamed to \"%s\": %m."
 msgstr "文件\"%s\"不能被重命名为\"%s\":%m。"
 
-#: access/transam/xlog.c:11620 access/transam/xlog.c:11632
-#: access/transam/xlog.c:11642
+#: access/transam/xlog.c:11457 access/transam/xlog.c:11469
+#: access/transam/xlog.c:11479
 #, c-format
 msgid "online backup mode canceled"
 msgstr "在线备份模式已取消"
 
-#: access/transam/xlog.c:11633
+#: access/transam/xlog.c:11470
 #, c-format
 msgid "Files \"%s\" and \"%s\" were renamed to \"%s\" and \"%s\", respectively."
 msgstr "文件\"%s\"和\"%s\"分别被重命名为\"%s\"和\"%s\"。"
 
-#: access/transam/xlog.c:11643
+#: access/transam/xlog.c:11480
 #, 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:11769 access/transam/xlogutils.c:727
-#: replication/walreceiver.c:1019 replication/walsender.c:2424
-#, c-format
-msgid "could not seek in log segment %s to offset %u: %m"
-msgstr "无法在日志段%s中查找, 偏移量 %u: %m"
-
-#: access/transam/xlog.c:11785
+#: access/transam/xlog.c:11613
 #, c-format
 msgid "could not read from log segment %s, offset %u: %m"
 msgstr "无法从日志段%s中读取偏移量 %u: %m"
 
-#: access/transam/xlog.c:12314
+#: access/transam/xlog.c:11619 replication/walsender.c:2489
+#, fuzzy, c-format
+#| msgid "could not read from log segment %s, offset %u: %m"
+msgid "could not read from log segment %s, offset %u: read %d of %zu"
+msgstr "无法从日志段%s中读取偏移量 %u: %m"
+
+#: access/transam/xlog.c:12152
 #, c-format
 msgid "received promote request"
 msgstr "接收到提或请求"
 
-#: access/transam/xlog.c:12327
-#, c-format
-msgid "trigger file found: %s"
+#: access/transam/xlog.c:12165
+#, fuzzy, c-format
+#| msgid "trigger file found: %s"
+msgid "promote trigger file found: %s"
 msgstr "已找到触发器文件:%s"
 
-#: access/transam/xlog.c:12336
-#, c-format
-msgid "could not stat trigger file \"%s\": %m"
+#: access/transam/xlog.c:12174
+#, fuzzy, c-format
+#| msgid "could not stat trigger file \"%s\": %m"
+msgid "could not stat promote trigger file \"%s\": %m"
 msgstr "无法统计触发器文件 \"%s\": %m"
 
 #: access/transam/xlogarchive.c:243
@@ -2658,7 +2678,7 @@ msgstr "从归档中恢复日志文件 \"%s\""
 msgid "could not restore file \"%s\" from archive: %s"
 msgstr "无法从归档文件%2$s中恢复文件 \"%1$s\""
 
-#. translator: First %s represents a recovery.conf parameter name like
+#. translator: First %s represents a postgresql.conf parameter name like
 #. "recovery_end_command", the 2nd is the value of that parameter, the
 #. third an already translated error message.
 #: access/transam/xlogarchive.c:406
@@ -2666,10 +2686,10 @@ msgstr "无法从归档文件%2$s中恢复文件 \"%1$s\""
 msgid "%s \"%s\": %s"
 msgstr "%s \"%s\": %s"
 
-#: access/transam/xlogarchive.c:449 postmaster/syslogger.c:1500
-#: replication/logical/snapbuild.c:1663 replication/slot.c:598
-#: replication/slot.c:1211 replication/slot.c:1326 storage/file/fd.c:650
-#: storage/file/fd.c:745 utils/time/snapmgr.c:1318
+#: access/transam/xlogarchive.c:449 postmaster/syslogger.c:1524
+#: replication/logical/snapbuild.c:1670 replication/slot.c:598
+#: replication/slot.c:1210 replication/slot.c:1332 storage/file/fd.c:664
+#: storage/file/fd.c:759 utils/time/snapmgr.c:1320
 #, c-format
 msgid "could not rename file \"%s\" to \"%s\": %m"
 msgstr "无法把文件 \"%s\" 重命名为 \"%s\": %m"
@@ -2684,96 +2704,107 @@ msgstr "无法创建归档状态文件 \"%s\": %m"
 msgid "could not write archive status file \"%s\": %m"
 msgstr "无法写入归档状态文件 \"%s\": %m"
 
-#: access/transam/xlogfuncs.c:54
+#: access/transam/xlogfuncs.c:57
 #, c-format
 msgid "aborting backup due to backend exiting before pg_stop_backup was called"
 msgstr "由于后端在 pg_stop_backup 被调用前退出而中断备份"
 
-#: access/transam/xlogfuncs.c:84
+#: access/transam/xlogfuncs.c:87
 #, c-format
 msgid "a backup is already in progress in this session"
 msgstr "这个会话中已经有一个备份在运行中"
 
-#: access/transam/xlogfuncs.c:142 access/transam/xlogfuncs.c:224
+#: access/transam/xlogfuncs.c:145 access/transam/xlogfuncs.c:227
 #, c-format
 msgid "non-exclusive backup in progress"
 msgstr "非排除备份在运行中"
 
-#: access/transam/xlogfuncs.c:143 access/transam/xlogfuncs.c:225
+#: access/transam/xlogfuncs.c:146 access/transam/xlogfuncs.c:228
 #, c-format
 msgid "Did you mean to use pg_stop_backup('f')?"
 msgstr "你是想使用 pg_stop_backup('f') 吗?"
 
-#: access/transam/xlogfuncs.c:195 commands/event_trigger.c:1464
-#: commands/event_trigger.c:2016 commands/extension.c:1902
-#: commands/extension.c:2011 commands/extension.c:2235 commands/prepare.c:722
-#: executor/execExpr.c:2209 executor/execSRF.c:715 executor/functions.c:1034
-#: foreign/foreign.c:488 libpq/hba.c:2603 replication/logical/launcher.c:1127
-#: replication/logical/logicalfuncs.c:176 replication/logical/origin.c:1460
-#: replication/slotfuncs.c:200 replication/walsender.c:3203
+#: access/transam/xlogfuncs.c:198 commands/event_trigger.c:1473
+#: commands/event_trigger.c:2025 commands/extension.c:1908
+#: commands/extension.c:2017 commands/extension.c:2241 commands/prepare.c:712
+#: executor/execExpr.c:2201 executor/execSRF.c:720 executor/functions.c:1023
+#: foreign/foreign.c:520 libpq/hba.c:2666 replication/logical/launcher.c:1112
+#: replication/logical/logicalfuncs.c:176 replication/logical/origin.c:1468
+#: replication/slotfuncs.c:236 replication/walsender.c:3245
 #: utils/adt/jsonfuncs.c:1701 utils/adt/jsonfuncs.c:1832
 #: utils/adt/jsonfuncs.c:2020 utils/adt/jsonfuncs.c:2147
-#: utils/adt/jsonfuncs.c:3576 utils/adt/pgstatfuncs.c:457
-#: utils/adt/pgstatfuncs.c:558 utils/fmgr/funcapi.c:62 utils/misc/guc.c:8829
+#: utils/adt/jsonfuncs.c:3576 utils/adt/pgstatfuncs.c:458
+#: utils/adt/pgstatfuncs.c:563 utils/fmgr/funcapi.c:63 utils/misc/guc.c:9460
 #: utils/mmgr/portalmem.c:1134
 #, c-format
 msgid "set-valued function called in context that cannot accept a set"
 msgstr "在不能接受使用集合的环境中调用set-valued函数"
 
-#: access/transam/xlogfuncs.c:199 commands/event_trigger.c:1468
-#: commands/event_trigger.c:2020 commands/extension.c:1906
-#: commands/extension.c:2015 commands/extension.c:2239 commands/prepare.c:726
-#: foreign/foreign.c:493 libpq/hba.c:2607 replication/logical/launcher.c:1131
-#: replication/logical/logicalfuncs.c:180 replication/logical/origin.c:1464
-#: replication/slotfuncs.c:204 replication/walsender.c:3207
-#: utils/adt/pgstatfuncs.c:461 utils/adt/pgstatfuncs.c:562
-#: utils/misc/guc.c:8833 utils/misc/pg_config.c:43 utils/mmgr/portalmem.c:1138
+#: access/transam/xlogfuncs.c:202 commands/event_trigger.c:1477
+#: commands/event_trigger.c:2029 commands/extension.c:1912
+#: commands/extension.c:2021 commands/extension.c:2245 commands/prepare.c:716
+#: foreign/foreign.c:525 libpq/hba.c:2670 replication/logical/launcher.c:1116
+#: replication/logical/logicalfuncs.c:180 replication/logical/origin.c:1472
+#: replication/slotfuncs.c:240 replication/walsender.c:3249
+#: utils/adt/pgstatfuncs.c:462 utils/adt/pgstatfuncs.c:567
+#: utils/misc/guc.c:9464 utils/misc/pg_config.c:43 utils/mmgr/portalmem.c:1138
 #, c-format
 msgid "materialize mode required, but it is not allowed in this context"
 msgstr "要求使用物化模式,但是在这种环境下不允许使用."
 
-#: access/transam/xlogfuncs.c:241
+#: access/transam/xlogfuncs.c:244
 #, c-format
 msgid "non-exclusive backup is not in progress"
 msgstr "非排除备份不在运行中"
 
-#: access/transam/xlogfuncs.c:242
+#: access/transam/xlogfuncs.c:245
 #, c-format
 msgid "Did you mean to use pg_stop_backup('t')?"
 msgstr "你是想使用 pg_stop_backup('t') 吗?"
 
-#: access/transam/xlogfuncs.c:319
+#: access/transam/xlogfuncs.c:322
 #, c-format
 msgid "WAL level not sufficient for creating a restore point"
 msgstr "WAL的级别不能满足创建恢复点的要求"
 
-#: access/transam/xlogfuncs.c:327
+#: access/transam/xlogfuncs.c:330
 #, c-format
 msgid "value too long for restore point (maximum %d characters)"
 msgstr "恢复点值超长(最大%d个字符)"
 
-#: access/transam/xlogfuncs.c:465
-#, c-format
-msgid "pg_walfile_name_offset() cannot be executed during recovery."
-msgstr "在恢复过程中不能执行pg_walfile_name_offset()"
-
-#: access/transam/xlogfuncs.c:521
-#, c-format
-msgid "pg_walfile_name() cannot be executed during recovery."
-msgstr "在恢复过程中无法执行pg_walfile_name() "
+#: access/transam/xlogfuncs.c:468 access/transam/xlogfuncs.c:525
+#, fuzzy, c-format
+#| msgid "cannot execute %s during recovery"
+msgid "%s cannot be executed during recovery."
+msgstr "无法在恢复期间执行%s"
 
-#: access/transam/xlogfuncs.c:541 access/transam/xlogfuncs.c:561
-#: access/transam/xlogfuncs.c:578
+#: access/transam/xlogfuncs.c:546 access/transam/xlogfuncs.c:566
+#: access/transam/xlogfuncs.c:583 access/transam/xlogfuncs.c:723
 #, c-format
 msgid "recovery is not in progress"
 msgstr "恢复操作没在进行中"
 
-#: access/transam/xlogfuncs.c:542 access/transam/xlogfuncs.c:562
-#: access/transam/xlogfuncs.c:579
+#: access/transam/xlogfuncs.c:547 access/transam/xlogfuncs.c:567
+#: access/transam/xlogfuncs.c:584 access/transam/xlogfuncs.c:724
 #, c-format
 msgid "Recovery control functions can only be executed during recovery."
 msgstr "在恢复期间无法执行恢复控制函数"
 
+#: access/transam/xlogfuncs.c:729
+#, c-format
+msgid "\"wait_seconds\" cannot be negative or equal zero"
+msgstr ""
+
+#: access/transam/xlogfuncs.c:749 storage/ipc/signalfuncs.c:164
+#, c-format
+msgid "failed to send signal to postmaster: %m"
+msgstr "无法发送信号到postmaster进程: %m"
+
+#: access/transam/xlogfuncs.c:776
+#, c-format
+msgid "server did not promote within %d seconds"
+msgstr ""
+
 #: access/transam/xlogreader.c:299
 #, c-format
 msgid "invalid record offset at %X/%X"
@@ -2784,12 +2815,12 @@ msgstr "%X/%X处有无效记录偏移量"
 msgid "contrecord is requested by %X/%X"
 msgstr "%X/%X位置处要求继续记录"
 
-#: access/transam/xlogreader.c:348 access/transam/xlogreader.c:646
+#: access/transam/xlogreader.c:348 access/transam/xlogreader.c:645
 #, c-format
 msgid "invalid record length at %X/%X: wanted %u, got %u"
 msgstr "%X/%X 处的记录长度不合法:想要 %u,但得到的是 %u"
 
-#: access/transam/xlogreader.c:363
+#: access/transam/xlogreader.c:372
 #, c-format
 msgid "record length %u at %X/%X too long"
 msgstr "%2$X/%3$X处的记录长度%1$u太长"
@@ -2804,138 +2835,144 @@ msgstr "在%X/%X处没有继续记录标志"
 msgid "invalid contrecord length %u at %X/%X"
 msgstr "在%2$X/%3$X处的继续记录长度%1$u不合法"
 
-#: access/transam/xlogreader.c:654
+#: access/transam/xlogreader.c:653
 #, c-format
 msgid "invalid resource manager ID %u at %X/%X"
 msgstr "在%2$X/%3$X处的资源管理器ID%1$u不合法"
 
-#: access/transam/xlogreader.c:668 access/transam/xlogreader.c:685
+#: access/transam/xlogreader.c:667 access/transam/xlogreader.c:684
 #, c-format
 msgid "record with incorrect prev-link %X/%X at %X/%X"
 msgstr "具有不正确向前链接%X/%X的记录出现在%X/%X"
 
-#: access/transam/xlogreader.c:722
+#: access/transam/xlogreader.c:721
 #, c-format
 msgid "incorrect resource manager data checksum in record at %X/%X"
 msgstr "在%X/%X处的记录中的资源管理器数据校验和不正确"
 
-#: access/transam/xlogreader.c:759
+#: access/transam/xlogreader.c:758
 #, c-format
 msgid "invalid magic number %04X in log segment %s, offset %u"
 msgstr "日志段%2$s、偏移量%3$u中的magic号%1$04X无效"
 
-#: access/transam/xlogreader.c:773 access/transam/xlogreader.c:824
+#: access/transam/xlogreader.c:772 access/transam/xlogreader.c:823
 #, c-format
 msgid "invalid info bits %04X in log segment %s, offset %u"
 msgstr "日志段%2$s、偏移量%3$u中的info位%1$04X无效"
 
-#: access/transam/xlogreader.c:799
+#: access/transam/xlogreader.c:798
 #, c-format
 msgid "WAL file is from different database system: WAL file database system identifier is %s, pg_control database system identifier is %s"
 msgstr "WAL文件来自于不同的数据库系统:WAL文件数据库系统标识符为%s,pg_control数据库标识符为%s"
 
-#: access/transam/xlogreader.c:806
+#: access/transam/xlogreader.c:805
 #, c-format
 msgid "WAL file is from different database system: incorrect segment size in page header"
 msgstr "WAL文件来自于不同的数据库系统:页头部中的段大小不正确"
 
-#: access/transam/xlogreader.c:812
+#: access/transam/xlogreader.c:811
 #, c-format
 msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header"
 msgstr "WAL文件来自于不同的数据库系统:页头部中的XLOG_BLCKSZ不正确"
 
-#: access/transam/xlogreader.c:843
+#: access/transam/xlogreader.c:842
 #, c-format
 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:868
+#: access/transam/xlogreader.c:867
 #, 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之后)"
 
-#: access/transam/xlogreader.c:1113
+#: access/transam/xlogreader.c:1112
 #, c-format
 msgid "out-of-order block_id %u at %X/%X"
 msgstr "乱序的block_id %u位于%X/%X"
 
-#: access/transam/xlogreader.c:1136
+#: access/transam/xlogreader.c:1135
 #, c-format
 msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X"
 msgstr "BKPBLOCK_HAS_DATA已设置,但是在%X/%X没有包括数据"
 
-#: access/transam/xlogreader.c:1143
+#: access/transam/xlogreader.c:1142
 #, 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:1179
+#: access/transam/xlogreader.c:1178
 #, c-format
 msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X"
 msgstr "BKPIMAGE_HAS_HOLE被设置,但是洞偏移为%u,长度为%u,块映像长度为%u,它位于%X/%X"
 
-#: access/transam/xlogreader.c:1195
+#: access/transam/xlogreader.c:1194
 #, 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:1210
+#: access/transam/xlogreader.c:1209
 #, 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:1225
+#: access/transam/xlogreader.c:1224
 #, c-format
 msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image length is %u at %X/%X"
 msgstr "既没有设置BKPIMAGE_HAS_HOLE也没有设置BKPIMAGE_IS_COMPRESSED,但是块映像长度是%u,它位于%X/%X"
 
-#: access/transam/xlogreader.c:1241
+#: access/transam/xlogreader.c:1240
 #, c-format
 msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X"
 msgstr "设置了BKPBLOCK_SAME_REL,但是在%X/%X位置没有记录先前的关系"
 
-#: access/transam/xlogreader.c:1253
+#: access/transam/xlogreader.c:1252
 #, c-format
 msgid "invalid block_id %u at %X/%X"
 msgstr "%2$X/%3$X处的block_id %1$u无效"
 
-#: access/transam/xlogreader.c:1342
+#: access/transam/xlogreader.c:1341
 #, c-format
 msgid "record with invalid length at %X/%X"
 msgstr "在%X/%X处的记录的长度无效"
 
-#: access/transam/xlogreader.c:1431
+#: access/transam/xlogreader.c:1430
 #, c-format
 msgid "invalid compressed image at %X/%X, block %d"
 msgstr "在%X/%X、块%d处有无效压缩映像"
 
-#: access/transam/xlogutils.c:751 replication/walsender.c:2443
+#: access/transam/xlogutils.c:727 replication/walreceiver.c:959
+#: replication/walsender.c:2462
+#, c-format
+msgid "could not seek in log segment %s to offset %u: %m"
+msgstr "无法在日志段%s中查找, 偏移量 %u: %m"
+
+#: access/transam/xlogutils.c:751
 #, c-format
 msgid "could not read from log segment %s, offset %u, length %lu: %m"
 msgstr "无法在日志段%s,偏移量为%u, 长度为%lu的位置上进行读操作: %m"
 
-#: bootstrap/bootstrap.c:268
+#: bootstrap/bootstrap.c:271
 #, c-format
 msgid "-X requires a power of two value between 1 MB and 1 GB"
 msgstr "-X需要两个介于1 MB和1 GB之间的2的幂次方"
 
-#: bootstrap/bootstrap.c:285 postmaster/postmaster.c:826 tcop/postgres.c:3581
+#: bootstrap/bootstrap.c:288 postmaster/postmaster.c:821 tcop/postgres.c:3648
 #, c-format
 msgid "--%s requires a value"
 msgstr "--%s 需要一个值"
 
-#: bootstrap/bootstrap.c:290 postmaster/postmaster.c:831 tcop/postgres.c:3586
+#: bootstrap/bootstrap.c:293 postmaster/postmaster.c:826 tcop/postgres.c:3653
 #, c-format
 msgid "-c %s requires a value"
 msgstr "-c %s 需要一个值"
 
-#: bootstrap/bootstrap.c:301 postmaster/postmaster.c:843
-#: postmaster/postmaster.c:856
+#: bootstrap/bootstrap.c:304 postmaster/postmaster.c:838
+#: postmaster/postmaster.c:851
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "请用 \"%s --help\" 获取更多的信息.\n"
 
-#: bootstrap/bootstrap.c:310
+#: bootstrap/bootstrap.c:313
 #, c-format
 msgid "%s: invalid command-line arguments\n"
 msgstr "%s: 无效的命令行参数\n"
@@ -2985,12 +3022,12 @@ msgstr "不能从关系\"%2$s\"的列\"%1$s\"上撤销所有权限"
 msgid "not all privileges could be revoked for \"%s\""
 msgstr "不能为\"%s\"撤销所有权限"
 
-#: catalog/aclchk.c:456 catalog/aclchk.c:995
+#: catalog/aclchk.c:456 catalog/aclchk.c:999
 #, c-format
 msgid "invalid privilege type %s for relation"
 msgstr "关系的权限类型%s无效"
 
-#: catalog/aclchk.c:460 catalog/aclchk.c:999
+#: catalog/aclchk.c:460 catalog/aclchk.c:1003
 #, c-format
 msgid "invalid privilege type %s for sequence"
 msgstr "序列的权限类型 %s 无效"
@@ -3005,7 +3042,7 @@ msgstr "无效的数据库权限类型 %s"
 msgid "invalid privilege type %s for domain"
 msgstr "域的权限类型%s无效"
 
-#: catalog/aclchk.c:472 catalog/aclchk.c:1003
+#: catalog/aclchk.c:472 catalog/aclchk.c:1007
 #, c-format
 msgid "invalid privilege type %s for function"
 msgstr "无效的函数权限类型 %s"
@@ -3020,17 +3057,17 @@ msgstr "无效的语言权限类型 %s"
 msgid "invalid privilege type %s for large object"
 msgstr "用于大对象的无效权限类型%s"
 
-#: catalog/aclchk.c:484 catalog/aclchk.c:1019
+#: catalog/aclchk.c:484 catalog/aclchk.c:1023
 #, c-format
 msgid "invalid privilege type %s for schema"
 msgstr "无效的模式权限类型 %s"
 
-#: catalog/aclchk.c:488 catalog/aclchk.c:1007
+#: catalog/aclchk.c:488 catalog/aclchk.c:1011
 #, c-format
 msgid "invalid privilege type %s for procedure"
 msgstr "程序的权限类型 %s无效"
 
-#: catalog/aclchk.c:492 catalog/aclchk.c:1011
+#: catalog/aclchk.c:492 catalog/aclchk.c:1015
 #, c-format
 msgid "invalid privilege type %s for routine"
 msgstr "routine的权限类型%s无效"
@@ -3040,7 +3077,7 @@ msgstr "routine的权限类型%s无效"
 msgid "invalid privilege type %s for tablespace"
 msgstr "无效的表空间权限类型 %s"
 
-#: catalog/aclchk.c:500 catalog/aclchk.c:1015
+#: catalog/aclchk.c:500 catalog/aclchk.c:1019
 #, c-format
 msgid "invalid privilege type %s for type"
 msgstr "类型的权限类型 %s无效"
@@ -3060,615 +3097,645 @@ msgstr "外部服务器的权限类型%s无效"
 msgid "column privileges are only valid for relations"
 msgstr "列权限只对关系有效"
 
-#: catalog/aclchk.c:707 catalog/aclchk.c:4131 catalog/aclchk.c:4913
-#: catalog/objectaddress.c:928 catalog/pg_largeobject.c:111
-#: storage/large_object/inv_api.c:284
+#: catalog/aclchk.c:707 catalog/aclchk.c:4135 catalog/aclchk.c:4917
+#: catalog/objectaddress.c:964 catalog/pg_largeobject.c:116
+#: storage/large_object/inv_api.c:283
 #, c-format
 msgid "large object %u does not exist"
 msgstr "大对象 %u 不存在"
 
-#: catalog/aclchk.c:932 catalog/aclchk.c:941 commands/collationcmds.c:113
-#: commands/copy.c:1063 commands/copy.c:1083 commands/copy.c:1092
-#: commands/copy.c:1101 commands/copy.c:1110 commands/copy.c:1119
-#: commands/copy.c:1128 commands/copy.c:1137 commands/copy.c:1146
-#: commands/copy.c:1164 commands/copy.c:1180 commands/copy.c:1200
-#: commands/copy.c:1217 commands/dbcommands.c:155 commands/dbcommands.c:164
-#: commands/dbcommands.c:173 commands/dbcommands.c:182
-#: commands/dbcommands.c:191 commands/dbcommands.c:200
-#: commands/dbcommands.c:209 commands/dbcommands.c:218
-#: commands/dbcommands.c:227 commands/dbcommands.c:1427
-#: commands/dbcommands.c:1436 commands/dbcommands.c:1445
-#: commands/dbcommands.c:1454 commands/extension.c:1685
-#: commands/extension.c:1695 commands/extension.c:1705
-#: commands/extension.c:1715 commands/extension.c:2956
-#: commands/foreigncmds.c:537 commands/foreigncmds.c:546
-#: commands/functioncmds.c:559 commands/functioncmds.c:684
-#: commands/functioncmds.c:693 commands/functioncmds.c:702
-#: commands/functioncmds.c:711 commands/functioncmds.c:2105
-#: commands/functioncmds.c:2113 commands/publicationcmds.c:92
-#: commands/sequence.c:1255 commands/sequence.c:1265 commands/sequence.c:1275
-#: commands/sequence.c:1285 commands/sequence.c:1295 commands/sequence.c:1305
-#: commands/sequence.c:1315 commands/sequence.c:1325 commands/sequence.c:1335
-#: commands/subscriptioncmds.c:110 commands/subscriptioncmds.c:120
-#: commands/subscriptioncmds.c:130 commands/subscriptioncmds.c:140
-#: commands/subscriptioncmds.c:154 commands/subscriptioncmds.c:165
-#: commands/subscriptioncmds.c:179 commands/tablecmds.c:6296
-#: commands/typecmds.c:295 commands/typecmds.c:1444 commands/typecmds.c:1453
-#: commands/typecmds.c:1461 commands/typecmds.c:1469 commands/typecmds.c:1477
-#: commands/user.c:134 commands/user.c:148 commands/user.c:157
-#: commands/user.c:166 commands/user.c:175 commands/user.c:184
-#: commands/user.c:193 commands/user.c:202 commands/user.c:211
-#: commands/user.c:220 commands/user.c:229 commands/user.c:238
-#: commands/user.c:247 commands/user.c:555 commands/user.c:563
-#: commands/user.c:571 commands/user.c:579 commands/user.c:587
-#: commands/user.c:595 commands/user.c:603 commands/user.c:611
-#: commands/user.c:620 commands/user.c:628 commands/user.c:636
-#: parser/parse_utilcmd.c:407 replication/pgoutput/pgoutput.c:111
-#: replication/pgoutput/pgoutput.c:132 replication/walsender.c:804
-#: replication/walsender.c:815 replication/walsender.c:825
+#: catalog/aclchk.c:936 catalog/aclchk.c:945 commands/collationcmds.c:117
+#: commands/copy.c:1140 commands/copy.c:1160 commands/copy.c:1169
+#: commands/copy.c:1178 commands/copy.c:1187 commands/copy.c:1196
+#: commands/copy.c:1205 commands/copy.c:1214 commands/copy.c:1232
+#: commands/copy.c:1248 commands/copy.c:1268 commands/copy.c:1285
+#: commands/dbcommands.c:156 commands/dbcommands.c:165
+#: commands/dbcommands.c:174 commands/dbcommands.c:183
+#: commands/dbcommands.c:192 commands/dbcommands.c:201
+#: commands/dbcommands.c:210 commands/dbcommands.c:219
+#: commands/dbcommands.c:228 commands/dbcommands.c:1429
+#: commands/dbcommands.c:1438 commands/dbcommands.c:1447
+#: commands/dbcommands.c:1456 commands/extension.c:1688
+#: commands/extension.c:1698 commands/extension.c:1708
+#: commands/extension.c:1718 commands/extension.c:2960
+#: commands/foreigncmds.c:543 commands/foreigncmds.c:552
+#: commands/functioncmds.c:568 commands/functioncmds.c:734
+#: commands/functioncmds.c:743 commands/functioncmds.c:752
+#: commands/functioncmds.c:761 commands/functioncmds.c:2193
+#: commands/functioncmds.c:2201 commands/publicationcmds.c:91
+#: commands/sequence.c:1267 commands/sequence.c:1277 commands/sequence.c:1287
+#: commands/sequence.c:1297 commands/sequence.c:1307 commands/sequence.c:1317
+#: commands/sequence.c:1327 commands/sequence.c:1337 commands/sequence.c:1347
+#: commands/subscriptioncmds.c:111 commands/subscriptioncmds.c:121
+#: commands/subscriptioncmds.c:131 commands/subscriptioncmds.c:141
+#: commands/subscriptioncmds.c:155 commands/subscriptioncmds.c:166
+#: commands/subscriptioncmds.c:180 commands/tablecmds.c:6491
+#: commands/typecmds.c:299 commands/typecmds.c:1428 commands/typecmds.c:1437
+#: commands/typecmds.c:1445 commands/typecmds.c:1453 commands/typecmds.c:1461
+#: commands/user.c:133 commands/user.c:147 commands/user.c:156
+#: commands/user.c:165 commands/user.c:174 commands/user.c:183
+#: commands/user.c:192 commands/user.c:201 commands/user.c:210
+#: commands/user.c:219 commands/user.c:228 commands/user.c:237
+#: commands/user.c:246 commands/user.c:562 commands/user.c:570
+#: commands/user.c:578 commands/user.c:586 commands/user.c:594
+#: commands/user.c:602 commands/user.c:610 commands/user.c:618
+#: commands/user.c:627 commands/user.c:635 commands/user.c:643
+#: parser/parse_utilcmd.c:385 replication/pgoutput/pgoutput.c:111
+#: replication/pgoutput/pgoutput.c:132 replication/walsender.c:817
+#: replication/walsender.c:828 replication/walsender.c:838
 #, c-format
 msgid "conflicting or redundant options"
 msgstr "选项冲突或过多"
 
-#: catalog/aclchk.c:1052
+#: catalog/aclchk.c:1056
 #, c-format
 msgid "default privileges cannot be set for columns"
 msgstr "无法为列设置缺省权限"
 
-#: catalog/aclchk.c:1212
+#: catalog/aclchk.c:1216
 #, c-format
 msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS"
 msgstr "在使用GRANT/REVOKE ON SCHEMAS时不能使用IN SCHEMA子句"
 
-#: catalog/aclchk.c:1576 catalog/objectaddress.c:1390 commands/analyze.c:433
-#: commands/copy.c:4826 commands/sequence.c:1690 commands/tablecmds.c:5942
-#: commands/tablecmds.c:6090 commands/tablecmds.c:6147
-#: commands/tablecmds.c:6221 commands/tablecmds.c:6315
-#: commands/tablecmds.c:6374 commands/tablecmds.c:6513
-#: commands/tablecmds.c:6595 commands/tablecmds.c:6687
-#: commands/tablecmds.c:6781 commands/tablecmds.c:9510
-#: commands/tablecmds.c:9804 commands/tablecmds.c:10285 commands/trigger.c:904
-#: parser/analyze.c:2343 parser/parse_relation.c:2735
-#: parser/parse_relation.c:2798 parser/parse_target.c:1030
-#: parser/parse_type.c:127 utils/adt/acl.c:2886 utils/adt/ruleutils.c:2466
+#: catalog/aclchk.c:1584 catalog/catalog.c:519 catalog/objectaddress.c:1426
+#: commands/analyze.c:383 commands/copy.c:5129 commands/sequence.c:1702
+#: commands/tablecmds.c:6033 commands/tablecmds.c:6191
+#: commands/tablecmds.c:6265 commands/tablecmds.c:6335
+#: commands/tablecmds.c:6416 commands/tablecmds.c:6510
+#: commands/tablecmds.c:6569 commands/tablecmds.c:6708
+#: commands/tablecmds.c:6790 commands/tablecmds.c:6882
+#: commands/tablecmds.c:6976 commands/tablecmds.c:10209
+#: commands/tablecmds.c:10524 commands/tablecmds.c:11040 commands/trigger.c:928
+#: parser/analyze.c:2330 parser/parse_relation.c:2788
+#: parser/parse_relation.c:2851 parser/parse_target.c:1031
+#: parser/parse_type.c:127 utils/adt/acl.c:2885 utils/adt/ruleutils.c:2511
 #, c-format
 msgid "column \"%s\" of relation \"%s\" does not exist"
 msgstr "关系 \"%2$s\" 的 \"%1$s\" 字段不存在"
 
-#: catalog/aclchk.c:1843 catalog/objectaddress.c:1230 commands/sequence.c:1128
-#: commands/tablecmds.c:231 commands/tablecmds.c:14086 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
+#: catalog/aclchk.c:1847 catalog/objectaddress.c:1266 commands/sequence.c:1140
+#: commands/tablecmds.c:230 commands/tablecmds.c:14769 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
 #, c-format
 msgid "\"%s\" is not a sequence"
 msgstr "\"%s\" 不是一个序列"
 
-#: catalog/aclchk.c:1881
+#: catalog/aclchk.c:1885
 #, c-format
 msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges"
 msgstr "序列\"%s\"只支持权限USAGE, SELECT 和UPDATE"
 
-#: catalog/aclchk.c:1898
+#: catalog/aclchk.c:1902
 #, c-format
 msgid "invalid privilege type %s for table"
 msgstr "无效的表权限类型 %s"
 
-#: catalog/aclchk.c:2064
+#: catalog/aclchk.c:2068
 #, c-format
 msgid "invalid privilege type %s for column"
 msgstr "列的权限类型%s无效"
 
-#: catalog/aclchk.c:2077
+#: catalog/aclchk.c:2081
 #, c-format
 msgid "sequence \"%s\" only supports SELECT column privileges"
 msgstr "序列\"%s\"只支持在列上的SELECT权限"
 
-#: catalog/aclchk.c:2659
+#: catalog/aclchk.c:2663
 #, c-format
 msgid "language \"%s\" is not trusted"
 msgstr "语言 \"%s\" 不可信"
 
-#: catalog/aclchk.c:2661
+#: catalog/aclchk.c:2665
 #, c-format
 msgid "GRANT and REVOKE are not allowed on untrusted languages, because only superusers can use untrusted languages."
 msgstr "在不受信任的语言中,GRANT和REVOKE不允许被使用,因为只有超级用户才能使用不受信任的语言."
 
-#: catalog/aclchk.c:3175
+#: catalog/aclchk.c:3179
 #, c-format
 msgid "cannot set privileges of array types"
 msgstr "不能设置数组类型的权限"
 
-#: catalog/aclchk.c:3176
+#: catalog/aclchk.c:3180
 #, c-format
 msgid "Set the privileges of the element type instead."
 msgstr "设置元素类型的权限."
 
-#: catalog/aclchk.c:3183 catalog/objectaddress.c:1520
+#: catalog/aclchk.c:3187 catalog/objectaddress.c:1560
 #, c-format
 msgid "\"%s\" is not a domain"
 msgstr "\"%s\" 不是一个域"
 
-#: catalog/aclchk.c:3303
+#: catalog/aclchk.c:3307
 #, c-format
 msgid "unrecognized privilege type \"%s\""
 msgstr "未知的权限类型: \"%s\""
 
-#: catalog/aclchk.c:3364
+#: catalog/aclchk.c:3368
 #, c-format
 msgid "permission denied for aggregate %s"
 msgstr "对聚合 %s 权限不够"
 
-#: catalog/aclchk.c:3367
+#: catalog/aclchk.c:3371
 #, c-format
 msgid "permission denied for collation %s"
 msgstr "对排序规则 %s 权限不够"
 
-#: catalog/aclchk.c:3370
+#: catalog/aclchk.c:3374
 #, c-format
 msgid "permission denied for column %s"
 msgstr "访问列 %s 的权限不够"
 
-#: catalog/aclchk.c:3373
+#: catalog/aclchk.c:3377
 #, c-format
 msgid "permission denied for conversion %s"
 msgstr "对编码转换 %s 权限不够"
 
-#: catalog/aclchk.c:3376
+#: catalog/aclchk.c:3380
 #, c-format
 msgid "permission denied for database %s"
 msgstr "对数据库 %s 权限不够"
 
-#: catalog/aclchk.c:3379
+#: catalog/aclchk.c:3383
 #, c-format
 msgid "permission denied for domain %s"
 msgstr "访问域 %s 的权限不够"
 
-#: catalog/aclchk.c:3382
+#: catalog/aclchk.c:3386
 #, c-format
 msgid "permission denied for event trigger %s"
 msgstr "事件触发器 %s, 权限不够"
 
-#: catalog/aclchk.c:3385
+#: catalog/aclchk.c:3389
 #, c-format
 msgid "permission denied for extension %s"
 msgstr "对扩展 %s 权限不够"
 
-#: catalog/aclchk.c:3388
+#: catalog/aclchk.c:3392
 #, c-format
 msgid "permission denied for foreign-data wrapper %s"
 msgstr "访问外部数据封装器 %s 的权限不足"
 
-#: catalog/aclchk.c:3391
+#: catalog/aclchk.c:3395
 #, c-format
 msgid "permission denied for foreign server %s"
 msgstr "访问外部服务器%s的权限不足"
 
-#: catalog/aclchk.c:3394
+#: catalog/aclchk.c:3398
 #, c-format
 msgid "permission denied for foreign table %s"
 msgstr "访问外部表%s的权限不足"
 
-#: catalog/aclchk.c:3397
+#: catalog/aclchk.c:3401
 #, c-format
 msgid "permission denied for function %s"
 msgstr "对函数 %s 权限不够"
 
-#: catalog/aclchk.c:3400
+#: catalog/aclchk.c:3404
 #, c-format
 msgid "permission denied for index %s"
 msgstr "对索引 %s 权限不够"
 
-#: catalog/aclchk.c:3403
+#: catalog/aclchk.c:3407
 #, c-format
 msgid "permission denied for language %s"
 msgstr "对语言 %s 权限不够"
 
-#: catalog/aclchk.c:3406
+#: catalog/aclchk.c:3410
 #, c-format
 msgid "permission denied for large object %s"
 msgstr "在大对象%s上的权限不够"
 
-#: catalog/aclchk.c:3409
+#: catalog/aclchk.c:3413
 #, c-format
 msgid "permission denied for materialized view %s"
 msgstr "对物化视图 %s 权限不够"
 
-#: catalog/aclchk.c:3412
+#: catalog/aclchk.c:3416
 #, c-format
 msgid "permission denied for operator class %s"
 msgstr "对操作符表 %s 权限不够"
 
-#: catalog/aclchk.c:3415
+#: catalog/aclchk.c:3419
 #, c-format
 msgid "permission denied for operator %s"
 msgstr "对操作符 %s 权限不够"
 
-#: catalog/aclchk.c:3418
+#: catalog/aclchk.c:3422
 #, c-format
 msgid "permission denied for operator family %s"
 msgstr "对于操作符表%s的权限不够"
 
-#: catalog/aclchk.c:3421
+#: catalog/aclchk.c:3425
 #, c-format
 msgid "permission denied for policy %s"
 msgstr "对策略 %s 的权限不够"
 
-#: catalog/aclchk.c:3424
+#: catalog/aclchk.c:3428
 #, c-format
 msgid "permission denied for procedure %s"
 msgstr "对过程 %s 权限不够"
 
-#: catalog/aclchk.c:3427
+#: catalog/aclchk.c:3431
 #, c-format
 msgid "permission denied for publication %s"
 msgstr "对发布 %s 权限不够"
 
-#: catalog/aclchk.c:3430
+#: catalog/aclchk.c:3434
 #, c-format
 msgid "permission denied for routine %s"
 msgstr "对routine %s 权限不够"
 
-#: catalog/aclchk.c:3433
+#: catalog/aclchk.c:3437
 #, c-format
 msgid "permission denied for schema %s"
 msgstr "对模式 %s 权限不够"
 
-#: catalog/aclchk.c:3436 commands/sequence.c:598 commands/sequence.c:832
-#: commands/sequence.c:874 commands/sequence.c:915 commands/sequence.c:1788
-#: commands/sequence.c:1852
+#: catalog/aclchk.c:3440 commands/sequence.c:610 commands/sequence.c:844
+#: commands/sequence.c:886 commands/sequence.c:927 commands/sequence.c:1800
+#: commands/sequence.c:1864
 #, c-format
 msgid "permission denied for sequence %s"
 msgstr "对于序列 %s, 权限不够"
 
-#: catalog/aclchk.c:3439
+#: catalog/aclchk.c:3443
 #, c-format
 msgid "permission denied for statistics object %s"
 msgstr "在统计信息对象 %s上的权限不够"
 
-#: catalog/aclchk.c:3442
+#: catalog/aclchk.c:3446
 #, c-format
 msgid "permission denied for subscription %s"
 msgstr "对订阅 %s 权限不够"
 
-#: catalog/aclchk.c:3445
+#: catalog/aclchk.c:3449
 #, c-format
 msgid "permission denied for table %s"
 msgstr "对表 %s 权限不够"
 
-#: catalog/aclchk.c:3448
+#: catalog/aclchk.c:3452
 #, c-format
 msgid "permission denied for tablespace %s"
 msgstr "对表空间 %s 权限不够"
 
-#: catalog/aclchk.c:3451
+#: catalog/aclchk.c:3455
 #, c-format
 msgid "permission denied for text search configuration %s"
 msgstr "访问文本搜索配置%s的权限不足"
 
-#: catalog/aclchk.c:3454
+#: catalog/aclchk.c:3458
 #, c-format
 msgid "permission denied for text search dictionary %s"
 msgstr "访问文本搜索字典%s的权限不够"
 
-#: catalog/aclchk.c:3457
+#: catalog/aclchk.c:3461
 #, c-format
 msgid "permission denied for type %s"
 msgstr "对类型 %s 权限不够"
 
-#: catalog/aclchk.c:3460
+#: catalog/aclchk.c:3464
 #, c-format
 msgid "permission denied for view %s"
 msgstr "对视图 %s 权限不够"
 
-#: catalog/aclchk.c:3495
+#: catalog/aclchk.c:3499
 #, c-format
 msgid "must be owner of aggregate %s"
 msgstr "必须是聚合 %s 的属主"
 
-#: catalog/aclchk.c:3498
+#: catalog/aclchk.c:3502
 #, c-format
 msgid "must be owner of collation %s"
 msgstr "必须是排序规则 %s 的属主"
 
-#: catalog/aclchk.c:3501
+#: catalog/aclchk.c:3505
 #, c-format
 msgid "must be owner of conversion %s"
 msgstr "必须是编码转换 %s 的属主"
 
-#: catalog/aclchk.c:3504
+#: catalog/aclchk.c:3508
 #, c-format
 msgid "must be owner of database %s"
 msgstr "必须是数据库 %s 的属主"
 
-#: catalog/aclchk.c:3507
+#: catalog/aclchk.c:3511
 #, c-format
 msgid "must be owner of domain %s"
 msgstr "必须是域 %s 的属主"
 
-#: catalog/aclchk.c:3510
+#: catalog/aclchk.c:3514
 #, c-format
 msgid "must be owner of event trigger %s"
 msgstr "必须是事件触发器 %s 的属主"
 
-#: catalog/aclchk.c:3513
+#: catalog/aclchk.c:3517
 #, c-format
 msgid "must be owner of extension %s"
 msgstr "必须是扩展 %s 的属主"
 
-#: catalog/aclchk.c:3516
+#: catalog/aclchk.c:3520
 #, c-format
 msgid "must be owner of foreign-data wrapper %s"
 msgstr "必须是外部数据封装器 %s 的属主"
 
-#: catalog/aclchk.c:3519
+#: catalog/aclchk.c:3523
 #, c-format
 msgid "must be owner of foreign server %s"
 msgstr "必须是外部服务器 %s 的属主"
 
-#: catalog/aclchk.c:3522
+#: catalog/aclchk.c:3526
 #, c-format
 msgid "must be owner of foreign table %s"
 msgstr "必须是外部表 %s 的属主"
 
-#: catalog/aclchk.c:3525
+#: catalog/aclchk.c:3529
 #, c-format
 msgid "must be owner of function %s"
 msgstr "必须是函数 %s 的属主"
 
-#: catalog/aclchk.c:3528
+#: catalog/aclchk.c:3532
 #, c-format
 msgid "must be owner of index %s"
 msgstr "必须是索引 %s 的属主"
 
-#: catalog/aclchk.c:3531
+#: catalog/aclchk.c:3535
 #, c-format
 msgid "must be owner of language %s"
 msgstr "必须是语言 %s 的属主"
 
-#: catalog/aclchk.c:3534
+#: catalog/aclchk.c:3538
 #, c-format
 msgid "must be owner of large object %s"
 msgstr "必须是大对象%s的属主"
 
-#: catalog/aclchk.c:3537
+#: catalog/aclchk.c:3541
 #, c-format
 msgid "must be owner of materialized view %s"
 msgstr "必须是物化视图 %s 的属主"
 
-#: catalog/aclchk.c:3540
+#: catalog/aclchk.c:3544
 #, c-format
 msgid "must be owner of operator class %s"
 msgstr "必须是操作符表 %s 的属主"
 
-#: catalog/aclchk.c:3543
+#: catalog/aclchk.c:3547
 #, c-format
 msgid "must be owner of operator %s"
 msgstr "必须是操作符 %s 的属主"
 
-#: catalog/aclchk.c:3546
+#: catalog/aclchk.c:3550
 #, c-format
 msgid "must be owner of operator family %s"
 msgstr "必须是操作符集合 %s 的属主"
 
-#: catalog/aclchk.c:3549
+#: catalog/aclchk.c:3553
 #, c-format
 msgid "must be owner of procedure %s"
 msgstr "必须是过程 %s 的属主"
 
-#: catalog/aclchk.c:3552
+#: catalog/aclchk.c:3556
 #, c-format
 msgid "must be owner of publication %s"
 msgstr "必须是发布 %s 的属主"
 
-#: catalog/aclchk.c:3555
+#: catalog/aclchk.c:3559
 #, c-format
 msgid "must be owner of routine %s"
 msgstr "必须是routine %s 的属主"
 
-#: catalog/aclchk.c:3558
+#: catalog/aclchk.c:3562
 #, c-format
 msgid "must be owner of sequence %s"
 msgstr "必须是序列 %s 的属主"
 
-#: catalog/aclchk.c:3561
+#: catalog/aclchk.c:3565
 #, c-format
 msgid "must be owner of subscription %s"
 msgstr "必须是订阅 %s 的属主"
 
-#: catalog/aclchk.c:3564
+#: catalog/aclchk.c:3568
 #, c-format
 msgid "must be owner of table %s"
 msgstr "必须是表 %s 的属主"
 
-#: catalog/aclchk.c:3567
+#: catalog/aclchk.c:3571
 #, c-format
 msgid "must be owner of type %s"
 msgstr "必须是类型 %s 的属主"
 
-#: catalog/aclchk.c:3570
+#: catalog/aclchk.c:3574
 #, c-format
 msgid "must be owner of view %s"
 msgstr "必须是视图 %s 的属主"
 
-#: catalog/aclchk.c:3573
+#: catalog/aclchk.c:3577
 #, c-format
 msgid "must be owner of schema %s"
 msgstr "必须是模式 %s 的属主"
 
-#: catalog/aclchk.c:3576
+#: catalog/aclchk.c:3580
 #, c-format
 msgid "must be owner of statistics object %s"
 msgstr "必须是统计信息对象 %s的属主"
 
-#: catalog/aclchk.c:3579
+#: catalog/aclchk.c:3583
 #, c-format
 msgid "must be owner of tablespace %s"
 msgstr "必须是表空间 %s 的属主"
 
 # describe.c:97
-#: catalog/aclchk.c:3582
+#: catalog/aclchk.c:3586
 #, c-format
 msgid "must be owner of text search configuration %s"
 msgstr "必须是文本搜索配置%s的属主"
 
 # describe.c:1549
-#: catalog/aclchk.c:3585
+#: catalog/aclchk.c:3589
 #, c-format
 msgid "must be owner of text search dictionary %s"
 msgstr "必须是文本搜寻字典%s的属主"
 
-#: catalog/aclchk.c:3599
+#: catalog/aclchk.c:3603
 #, c-format
 msgid "must be owner of relation %s"
 msgstr "必须是关系 %s 的属主"
 
-#: catalog/aclchk.c:3643
+#: catalog/aclchk.c:3647
 #, c-format
 msgid "permission denied for column \"%s\" of relation \"%s\""
 msgstr "访问关系\"%2$s\"的列\"%1$s\"的权限不够"
 
-#: catalog/aclchk.c:3764 catalog/aclchk.c:3772
+#: catalog/aclchk.c:3768 catalog/aclchk.c:3776
 #, c-format
 msgid "attribute %d of relation with OID %u does not exist"
 msgstr "带有OID为%2$u的关系的属性%1$d不存在"
 
-#: catalog/aclchk.c:3845 catalog/aclchk.c:4764
+#: catalog/aclchk.c:3849 catalog/aclchk.c:4768
 #, c-format
 msgid "relation with OID %u does not exist"
 msgstr "OID 为 %u 的关系不存在"
 
-#: catalog/aclchk.c:3944 catalog/aclchk.c:5182
+#: catalog/aclchk.c:3948 catalog/aclchk.c:5186
 #, c-format
 msgid "database with OID %u does not exist"
 msgstr "OID 为 %u 的数据库不存在"
 
-#: catalog/aclchk.c:3998 catalog/aclchk.c:4842 tcop/fastpath.c:221
-#: utils/fmgr/fmgr.c:2195
+#: catalog/aclchk.c:4002 catalog/aclchk.c:4846 tcop/fastpath.c:221
+#: utils/fmgr/fmgr.c:2017
 #, c-format
 msgid "function with OID %u does not exist"
 msgstr "OID 为 %u 的函数不存在"
 
-#: catalog/aclchk.c:4052 catalog/aclchk.c:4868
+#: catalog/aclchk.c:4056 catalog/aclchk.c:4872
 #, c-format
 msgid "language with OID %u does not exist"
 msgstr "OID 为 %u 的语言不存在"
 
-#: catalog/aclchk.c:4216 catalog/aclchk.c:4940
+#: catalog/aclchk.c:4220 catalog/aclchk.c:4944
 #, c-format
 msgid "schema with OID %u does not exist"
 msgstr "OID 为 %u 的模式不存在"
 
-#: catalog/aclchk.c:4270 catalog/aclchk.c:4967
+#: catalog/aclchk.c:4274 catalog/aclchk.c:4971 utils/adt/genfile.c:637
 #, c-format
 msgid "tablespace with OID %u does not exist"
 msgstr "OID 为 %u 的表空间不存在"
 
-#: catalog/aclchk.c:4329 catalog/aclchk.c:5101 commands/foreigncmds.c:324
+#: catalog/aclchk.c:4333 catalog/aclchk.c:5105 commands/foreigncmds.c:328
 #, c-format
 msgid "foreign-data wrapper with OID %u does not exist"
 msgstr "带有OID为%u的外部数据封装器(foreign-data wrapper)不存在"
 
-#: catalog/aclchk.c:4391 catalog/aclchk.c:5128 commands/foreigncmds.c:459
+#: catalog/aclchk.c:4395 catalog/aclchk.c:5132 commands/foreigncmds.c:465
 #, c-format
 msgid "foreign server with OID %u does not exist"
 msgstr "带有OID为%u的外部服务器不存在"
 
-#: catalog/aclchk.c:4451 catalog/aclchk.c:4790 utils/cache/typcache.c:368
+#: catalog/aclchk.c:4455 catalog/aclchk.c:4794 utils/cache/typcache.c:369
 #, c-format
 msgid "type with OID %u does not exist"
 msgstr "OID 为 %u 的类型不存在"
 
-#: catalog/aclchk.c:4816
+#: catalog/aclchk.c:4820
 #, c-format
 msgid "operator with OID %u does not exist"
 msgstr "OID 为 %u 的操作符不存在"
 
-#: catalog/aclchk.c:4993
+#: catalog/aclchk.c:4997
 #, c-format
 msgid "operator class with OID %u does not exist"
 msgstr "OID 为 %u 的操作符表不存在"
 
-#: catalog/aclchk.c:5020
+#: catalog/aclchk.c:5024
 #, c-format
 msgid "operator family with OID %u does not exist"
 msgstr "OID 为 %u 的操作符表不存在"
 
-#: catalog/aclchk.c:5047
+#: catalog/aclchk.c:5051
 #, c-format
 msgid "text search dictionary with OID %u does not exist"
 msgstr "带有OID为%u的文本搜索字典不存在"
 
-#: catalog/aclchk.c:5074
+#: catalog/aclchk.c:5078
 #, c-format
 msgid "text search configuration with OID %u does not exist"
 msgstr "带有OID为%u的文本搜索配置不存在"
 
-#: catalog/aclchk.c:5155 commands/event_trigger.c:590
+#: catalog/aclchk.c:5159 commands/event_trigger.c:596
 #, c-format
 msgid "event trigger with OID %u does not exist"
 msgstr "OID 为 %u 的事件触发器不存在"
 
-#: catalog/aclchk.c:5208 commands/collationcmds.c:347
+#: catalog/aclchk.c:5212 commands/collationcmds.c:366
 #, c-format
 msgid "collation with OID %u does not exist"
 msgstr "OID 为 %u 的排序规则不存在"
 
-#: catalog/aclchk.c:5234
+#: catalog/aclchk.c:5238
 #, c-format
 msgid "conversion with OID %u does not exist"
 msgstr "OID 为 %u 的编码转换不存在"
 
-#: catalog/aclchk.c:5275
+#: catalog/aclchk.c:5279
 #, c-format
 msgid "extension with OID %u does not exist"
 msgstr "OID 为 %u 的扩展不存在"
 
-#: catalog/aclchk.c:5302 commands/publicationcmds.c:747
+#: catalog/aclchk.c:5306 commands/publicationcmds.c:759
 #, c-format
 msgid "publication with OID %u does not exist"
 msgstr "OID 为 %u 的发布不存在"
 
-#: catalog/aclchk.c:5328 commands/subscriptioncmds.c:1098
+#: catalog/aclchk.c:5332 commands/subscriptioncmds.c:1121
 #, c-format
 msgid "subscription with OID %u does not exist"
 msgstr "OID 为 %u 的订阅不存在"
 
-#: catalog/aclchk.c:5354
+#: catalog/aclchk.c:5358
 #, c-format
 msgid "statistics object with OID %u does not exist"
 msgstr "OID 为 %u 的统计信息对象不存在"
 
-#: catalog/dependency.c:611
+#: catalog/catalog.c:498
+#, fuzzy, c-format
+#| msgid "must be superuser to set grantor"
+msgid "must be superuser to call pg_nextoid()"
+msgstr "只有超级用户能设置授权者"
+
+#: catalog/catalog.c:506
+#, fuzzy, c-format
+#| msgid "ON COMMIT can only be used on temporary tables"
+msgid "pg_nextoid() can only be used on system catalogs"
+msgstr "ON COMMIT 只能被用于临时表"
+
+#: catalog/catalog.c:511 parser/parse_utilcmd.c:2064
+#, c-format
+msgid "index \"%s\" does not belong to table \"%s\""
+msgstr "索引 \"%s\" 不属于表\"%s\""
+
+#: catalog/catalog.c:528
+#, fuzzy, c-format
+#| msgid "column \"%s\" is not of tsvector type"
+msgid "column \"%s\" is not of type oid"
+msgstr "列\"%s\"不属于tsvector类型"
+
+#: catalog/catalog.c:535
+#, fuzzy, c-format
+#| msgid "\"%s\" is not an index for table \"%s\""
+msgid "index \"%s\" is not the index for column \"%s\""
+msgstr "对于表 \"%2$s\" \"%1$s\" 不是一个索引"
+
+#: catalog/dependency.c:808 catalog/dependency.c:1036
 #, c-format
 msgid "cannot drop %s because %s requires it"
 msgstr "无法删除 %s, 因为 %s 需要它"
 
-#: catalog/dependency.c:614
+#: catalog/dependency.c:810 catalog/dependency.c:1038
 #, c-format
 msgid "You can drop %s instead."
 msgstr "您也可以删除 %s 代替."
 
-#: catalog/dependency.c:787 catalog/pg_shdepend.c:574
+#: catalog/dependency.c:908 catalog/pg_shdepend.c:641
 #, c-format
 msgid "cannot drop %s because it is required by the database system"
 msgstr "无法删除 %s, 因为它是数据库系统所需要的"
 
-#: catalog/dependency.c:905
+#: catalog/dependency.c:1104
 #, c-format
 msgid "drop auto-cascades to %s"
 msgstr "自动递归删除 %s"
 
-#: catalog/dependency.c:917 catalog/dependency.c:926
+#: catalog/dependency.c:1116 catalog/dependency.c:1125
 #, c-format
 msgid "%s depends on %s"
 msgstr "%s 倚赖于 %s"
 
-#: catalog/dependency.c:938 catalog/dependency.c:947
+#: catalog/dependency.c:1137 catalog/dependency.c:1146
 #, c-format
 msgid "drop cascades to %s"
 msgstr "递归删除 %s"
 
-#: catalog/dependency.c:955 catalog/pg_shdepend.c:685
+#: catalog/dependency.c:1154 catalog/pg_shdepend.c:770
 #, c-format
 msgid ""
 "\n"
@@ -3680,257 +3747,280 @@ msgstr[0] ""
 "\n"
 "%d个其它对象(相关列表参见服务器日志)"
 
-#: catalog/dependency.c:967
+#: catalog/dependency.c:1166
 #, c-format
 msgid "cannot drop %s because other objects depend on it"
 msgstr "无法删除 %s 因为有其它对象倚赖它"
 
-#: catalog/dependency.c:971 catalog/dependency.c:978
+#: catalog/dependency.c:1168 catalog/dependency.c:1169
+#: catalog/dependency.c:1175 catalog/dependency.c:1176
+#: catalog/dependency.c:1187 catalog/dependency.c:1188
+#: commands/tablecmds.c:1192 commands/tablecmds.c:12067 commands/user.c:1073
+#: commands/view.c:505 libpq/auth.c:333 replication/syncrep.c:1163
+#: storage/lmgr/deadlock.c:1139 storage/lmgr/proc.c:1348 utils/adt/acl.c:5344
+#: utils/misc/guc.c:6576 utils/misc/guc.c:6612 utils/misc/guc.c:6682
+#: utils/misc/guc.c:10731 utils/misc/guc.c:10765 utils/misc/guc.c:10799
+#: utils/misc/guc.c:10833 utils/misc/guc.c:10868 utils/misc/guc.c:11613
+#: utils/misc/guc.c:11700
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: catalog/dependency.c:1170 catalog/dependency.c:1177
 #, c-format
 msgid "Use DROP ... CASCADE to drop the dependent objects too."
 msgstr "使用 DROP .. CASCADE 把倚赖对象一并删除."
 
-#: catalog/dependency.c:975
+#: catalog/dependency.c:1174
 #, 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:984
+#: catalog/dependency.c:1183
 #, c-format
 msgid "drop cascades to %d other object"
 msgid_plural "drop cascades to %d other objects"
 msgstr[0] "串联删除%d个其它对象"
 
-#: catalog/dependency.c:1644
+#: catalog/dependency.c:1845
 #, c-format
 msgid "constant of the type %s cannot be used here"
 msgstr "不能在这里使用类型%s"
 
-#: catalog/heap.c:286
+#: catalog/heap.c:332
 #, c-format
 msgid "permission denied to create \"%s.%s\""
 msgstr "创建 \"%s.%s\" 权限不够"
 
-#: catalog/heap.c:288
+#: catalog/heap.c:334
 #, c-format
 msgid "System catalog modifications are currently disallowed."
 msgstr "系统表修改是不被同时允许的"
 
-#: catalog/heap.c:433 commands/tablecmds.c:1884 commands/tablecmds.c:2417
-#: commands/tablecmds.c:5509
+#: catalog/heap.c:502 commands/tablecmds.c:2043 commands/tablecmds.c:2554
+#: commands/tablecmds.c:5638
 #, c-format
 msgid "tables can have at most %d columns"
 msgstr "表最多可以有 %d 个字段"
 
-#: catalog/heap.c:452 commands/tablecmds.c:5805
+#: catalog/heap.c:520 commands/tablecmds.c:5923
 #, c-format
 msgid "column name \"%s\" conflicts with a system column name"
 msgstr "字段名 \"%s\" 与系统字段名冲突"
 
-#: catalog/heap.c:468
+#: catalog/heap.c:536
 #, c-format
 msgid "column name \"%s\" specified more than once"
 msgstr "字段名称\"%s\" 被定义多次"
 
-#: catalog/heap.c:521
+#: catalog/heap.c:604
 #, c-format
 msgid "column \"%s\" has pseudo-type %s"
 msgstr "字段 \"%s\" 有伪类型 %s"
 
-#: catalog/heap.c:551
+#: catalog/heap.c:634
 #, c-format
 msgid "composite type %s cannot be made a member of itself"
 msgstr "混合类型 %s 的成员不能为自身"
 
-#: catalog/heap.c:593 commands/createas.c:201 commands/createas.c:498
+#: catalog/heap.c:676 commands/createas.c:204 commands/createas.c:488
 #, c-format
 msgid "no collation was derived for column \"%s\" with collatable type %s"
 msgstr "没有来自列 \"%s\"的排序规则带有可排序类型 %s"
 
-#: catalog/heap.c:595 commands/createas.c:204 commands/createas.c:501
-#: commands/indexcmds.c:1588 commands/tablecmds.c:14372 commands/view.c:105
-#: regex/regc_pg_locale.c:263 utils/adt/formatting.c:1536
-#: utils/adt/formatting.c:1658 utils/adt/formatting.c:1781 utils/adt/like.c:184
-#: utils/adt/selfuncs.c:5807 utils/adt/varlena.c:1416 utils/adt/varlena.c:1881
-#, c-format
-msgid "Use the COLLATE clause to set the collation explicitly."
-msgstr "使用COLLATE子句来显示设置排序规则."
-
-#: catalog/heap.c:1084 catalog/index.c:876 commands/tablecmds.c:3179
+#: catalog/heap.c:1122 catalog/index.c:819 commands/tablecmds.c:3321
 #, c-format
 msgid "relation \"%s\" already exists"
 msgstr "关系 \"%s\" 已经存在"
 
-#: catalog/heap.c:1100 catalog/pg_type.c:417 catalog/pg_type.c:732
-#: commands/typecmds.c:236 commands/typecmds.c:787 commands/typecmds.c:1186
-#: commands/typecmds.c:1419 commands/typecmds.c:2174
+#: catalog/heap.c:1138 catalog/pg_type.c:427 catalog/pg_type.c:749
+#: commands/typecmds.c:240 commands/typecmds.c:791 commands/typecmds.c:1191
+#: commands/typecmds.c:1403 commands/typecmds.c:2160
 #, c-format
 msgid "type \"%s\" already exists"
 msgstr "类型 \"%s\" 已经存在"
 
-#: catalog/heap.c:1101
+#: catalog/heap.c:1139
 #, c-format
 msgid "A relation has an associated type of the same name, so you must use a name that doesn't conflict with any existing type."
 msgstr "关系和与它相关联的类型名称相同,所以不能使用与任何已存在类型名称相冲突的名称."
 
-#: catalog/heap.c:1130
+#: catalog/heap.c:1168
 #, c-format
 msgid "pg_class heap OID value not set when in binary upgrade mode"
 msgstr "当处于二进制升级模式时没有设置pg_class的堆OID值"
 
-#: catalog/heap.c:2333
+#: catalog/heap.c:2369
 #, c-format
 msgid "cannot add NO INHERIT constraint to partitioned table \"%s\""
 msgstr "无法向分区表\"%s\"添加NO INHERIT约束"
 
-#: catalog/heap.c:2598
+#: catalog/heap.c:2639
 #, c-format
 msgid "check constraint \"%s\" already exists"
 msgstr "检查约束 \"%s\" 已经存在"
 
-#: catalog/heap.c:2768 catalog/index.c:890 catalog/pg_constraint.c:679
-#: commands/tablecmds.c:7157
+#: catalog/heap.c:2809 catalog/index.c:833 catalog/pg_constraint.c:669
+#: commands/tablecmds.c:7316
 #, c-format
 msgid "constraint \"%s\" for relation \"%s\" already exists"
 msgstr "关系 \"%2$s\" 的约束 \"%1$s\" 已经存在"
 
-#: catalog/heap.c:2775
+#: catalog/heap.c:2816
 #, c-format
 msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\""
 msgstr "关系\"%2$s\"上的约束\"%1$s\"与非继承约束相冲突"
 
-#: catalog/heap.c:2786
+#: catalog/heap.c:2827
 #, c-format
 msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\""
 msgstr "关系\"%2$s\"上的约束\"%1$s\"与继承约束相冲突"
 
-#: catalog/heap.c:2796
+#: catalog/heap.c:2837
 #, c-format
 msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\""
 msgstr "关系\"%2$s\"上的约束\"%1$s\"与NOT VALID约束相冲突"
 
-#: catalog/heap.c:2801
+#: catalog/heap.c:2842
 #, c-format
 msgid "merging constraint \"%s\" with inherited definition"
 msgstr "正在合并带有已继承定义的约束\"%s\" "
 
-#: catalog/heap.c:2916
+#: catalog/heap.c:2944
+#, fuzzy, c-format
+#| msgid "cannot use system column \"%s\" in partition key"
+msgid "cannot use generated column \"%s\" in column generation expression"
+msgstr "无法在分区键中使用系统列\"%s\""
+
+#: catalog/heap.c:2946
 #, c-format
-msgid "cannot use column references in default expression"
-msgstr "在默认的表达式中不能使用字段关联"
+msgid "A generated column cannot reference another generated column."
+msgstr ""
+
+#: catalog/heap.c:2998
+#, fuzzy, c-format
+#| msgid "referenced relation \"%s\" is not a table"
+msgid "generation expression is not immutable"
+msgstr "关联的关系 \"%s\" 不是一个表"
 
-#: catalog/heap.c:2941 rewrite/rewriteHandler.c:1177
+#: catalog/heap.c:3026 rewrite/rewriteHandler.c:1189
 #, c-format
 msgid "column \"%s\" is of type %s but default expression is of type %s"
 msgstr "字段 \"%s\" 类型是 %s, 但默认表达式类型是 %s"
 
-#: catalog/heap.c:2946 commands/prepare.c:384 parser/parse_node.c:430
-#: parser/parse_target.c:590 parser/parse_target.c:865
-#: parser/parse_target.c:875 rewrite/rewriteHandler.c:1182
+#: catalog/heap.c:3031 commands/prepare.c:384 parser/parse_node.c:435
+#: parser/parse_target.c:591 parser/parse_target.c:866
+#: parser/parse_target.c:876 rewrite/rewriteHandler.c:1194
 #, c-format
 msgid "You will need to rewrite or cast the expression."
 msgstr "你需要重写或转换表达式"
 
-#: catalog/heap.c:2993
+#: catalog/heap.c:3078
 #, c-format
 msgid "only table \"%s\" can be referenced in check constraint"
 msgstr "在检查约束中只有表 \"%s\" 能被关联的"
 
-#: catalog/heap.c:3243
+#: catalog/heap.c:3328
 #, c-format
 msgid "unsupported ON COMMIT and foreign key combination"
 msgstr "不支持ON COMMIT和外键一同使用"
 
-#: catalog/heap.c:3244
+#: catalog/heap.c:3329
 #, 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:3249
+#: catalog/heap.c:3334
 #, c-format
 msgid "cannot truncate a table referenced in a foreign key constraint"
 msgstr "在一个外键约束中无法删除 (truncate) 一个表的关联"
 
-#: catalog/heap.c:3250
+#: catalog/heap.c:3335
 #, c-format
 msgid "Table \"%s\" references \"%s\"."
 msgstr "表\"%s\" 引用\"%s\"."
 
-#: catalog/heap.c:3252
+#: catalog/heap.c:3337
 #, c-format
 msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE."
 msgstr "同时截断表\"%s\" ,或者使用TRUNCATE ... CASCADE."
 
-#: catalog/index.c:233 parser/parse_utilcmd.c:1823 parser/parse_utilcmd.c:1910
+#: catalog/index.c:219 parser/parse_utilcmd.c:1873 parser/parse_utilcmd.c:1972
 #, c-format
 msgid "multiple primary keys for table \"%s\" are not allowed"
 msgstr "对表 \"%s\" 指定多个主键是不允许的"
 
-#: catalog/index.c:251
+#: catalog/index.c:237
 #, c-format
 msgid "primary keys cannot be expressions"
 msgstr "主键不能是表达式"
 
-#: catalog/index.c:820 catalog/index.c:1291
+#: catalog/index.c:254
+#, fuzzy, c-format
+#| msgid "column \"%s\" is marked NOT NULL in parent table"
+msgid "primary key column \"%s\" is not marked NOT NULL"
+msgstr "列\"%s\"在父表中标记为NOT NULL"
+
+#: catalog/index.c:763 catalog/index.c:1709
 #, c-format
 msgid "user-defined indexes on system catalog tables are not supported"
 msgstr "在系统表上用户定义的索引是不被支持的"
 
-#: catalog/index.c:830
+#: catalog/index.c:773
 #, c-format
 msgid "concurrent index creation on system catalog tables is not supported"
 msgstr "不支持在系统目录表上同时创建索引"
 
-#: catalog/index.c:848
+#: catalog/index.c:791
 #, c-format
 msgid "shared indexes cannot be created after initdb"
 msgstr "在 initdb 之后, 不能创建共享索引"
 
-#: catalog/index.c:868 commands/createas.c:250 commands/sequence.c:152
-#: parser/parse_utilcmd.c:205
+#: catalog/index.c:811 commands/createas.c:253 commands/sequence.c:154
+#: parser/parse_utilcmd.c:208
 #, c-format
 msgid "relation \"%s\" already exists, skipping"
 msgstr "关系 \"%s\" 已经存在, 跳过"
 
-#: catalog/index.c:918
+#: catalog/index.c:861
 #, c-format
 msgid "pg_class index OID value not set when in binary upgrade mode"
 msgstr "当处于二进制升级模式时没有设置pg_class的索引OID值"
 
-#: catalog/index.c:1566
+#: catalog/index.c:1985
 #, c-format
 msgid "DROP INDEX CONCURRENTLY must be first action in transaction"
 msgstr "DROP INDEX CONCURRENTLY在一个事务当中必须是最先执行"
 
-#: catalog/index.c:2295
+#: catalog/index.c:2682
 #, c-format
 msgid "building index \"%s\" on table \"%s\" serially"
 msgstr "为表 \"%2$s\" 串行的建立索引\"%1$s\""
 
-#: catalog/index.c:2300
+#: catalog/index.c:2687
 #, c-format
 msgid "building index \"%s\" on table \"%s\" with request for %d parallel worker"
 msgid_plural "building index \"%s\" on table \"%s\" with request for %d parallel workers"
 msgstr[0] "为表 \"%2$s\" 建立索引\"%1$s\",请求%3$d个并行工作线程"
 
-#: catalog/index.c:3689
+#: catalog/index.c:3310
 #, c-format
 msgid "cannot reindex temporary tables of other sessions"
 msgstr "不能重新创建其他会话的临时表上的索引"
 
-#: catalog/index.c:3820
+#: catalog/index.c:3441
 #, c-format
 msgid "index \"%s\" was reindexed"
 msgstr "索引\"%s\"已被重新索引"
 
-#: catalog/index.c:3891
+#: catalog/index.c:3514 commands/indexcmds.c:2871
 #, c-format
 msgid "REINDEX of partitioned tables is not yet implemented, skipping \"%s\""
 msgstr "分区表的重新索引尚未实现,跳过\"%s\""
 
 #: catalog/namespace.c:249 catalog/namespace.c:453 catalog/namespace.c:545
-#: commands/trigger.c:5405
+#: commands/trigger.c:5396
 #, c-format
 msgid "cross-database references are not implemented: \"%s.%s.%s\""
 msgstr "未实现跨数据库关联: \"%s.%s.%s\""
@@ -3945,24 +4035,24 @@ msgstr "临时表不能指定模式名称"
 msgid "could not obtain lock on relation \"%s.%s\""
 msgstr "无法在关系 \"%s.%s\" 上获得锁"
 
-#: catalog/namespace.c:392 commands/lockcmds.c:162 commands/lockcmds.c:248
+#: catalog/namespace.c:392 commands/lockcmds.c:162 commands/lockcmds.c:249
 #, c-format
 msgid "could not obtain lock on relation \"%s\""
 msgstr "无法在关系 \"%s\" 上获得锁"
 
-#: catalog/namespace.c:420 parser/parse_relation.c:1158
+#: catalog/namespace.c:420 parser/parse_relation.c:1172
 #, c-format
 msgid "relation \"%s.%s\" does not exist"
 msgstr "关系 \"%s.%s\" 不存在"
 
-#: catalog/namespace.c:425 parser/parse_relation.c:1171
-#: parser/parse_relation.c:1179
+#: catalog/namespace.c:425 parser/parse_relation.c:1185
+#: parser/parse_relation.c:1193
 #, c-format
 msgid "relation \"%s\" does not exist"
 msgstr "关系 \"%s\" 不存在"
 
-#: catalog/namespace.c:491 catalog/namespace.c:3008 commands/extension.c:1466
-#: commands/extension.c:1472
+#: catalog/namespace.c:491 catalog/namespace.c:3009 commands/extension.c:1469
+#: commands/extension.c:1475
 #, c-format
 msgid "no schema has been selected to create in"
 msgstr "创建中没有选择模式"
@@ -3982,317 +4072,317 @@ msgstr "不能在非临时方案上创建临时关系"
 msgid "only temporary relations may be created in temporary schemas"
 msgstr "临时方案里只能创建临时关系"
 
-#: catalog/namespace.c:2200
+#: catalog/namespace.c:2201
 #, c-format
 msgid "statistics object \"%s\" does not exist"
 msgstr "统计信息对象 \"%s\" 不存在"
 
-#: catalog/namespace.c:2323
+#: catalog/namespace.c:2324
 #, c-format
 msgid "text search parser \"%s\" does not exist"
 msgstr "文本搜索解析器 \"%s\" 不存在"
 
-#: catalog/namespace.c:2449
+#: catalog/namespace.c:2450
 #, c-format
 msgid "text search dictionary \"%s\" does not exist"
 msgstr "文本搜索字典 \"%s\" 不存在"
 
-#: catalog/namespace.c:2576
+#: catalog/namespace.c:2577
 #, c-format
 msgid "text search template \"%s\" does not exist"
 msgstr "文本搜索模版 \"%s\" 不存在"
 
-#: catalog/namespace.c:2702 commands/tsearchcmds.c:1185
-#: utils/cache/ts_cache.c:616
+#: catalog/namespace.c:2703 commands/tsearchcmds.c:1197
+#: utils/cache/ts_cache.c:615
 #, c-format
 msgid "text search configuration \"%s\" does not exist"
 msgstr "文本搜寻配置 \"%s\" 不存在"
 
-#: catalog/namespace.c:2815 parser/parse_expr.c:793 parser/parse_target.c:1220
+#: catalog/namespace.c:2816 parser/parse_expr.c:866 parser/parse_target.c:1221
 #, c-format
 msgid "cross-database references are not implemented: %s"
 msgstr "未实现跨数据库关联: %s"
 
-#: catalog/namespace.c:2821 gram.y:14708 gram.y:16140 parser/parse_expr.c:800
-#: parser/parse_target.c:1227
+#: catalog/namespace.c:2822 parser/parse_expr.c:873 parser/parse_target.c:1228
+#: gram.y:14731 gram.y:16165
 #, c-format
 msgid "improper qualified name (too many dotted names): %s"
 msgstr "不合适的条件名称 (名字中太多的点符号): %s"
 
-#: catalog/namespace.c:2951
+#: catalog/namespace.c:2952
 #, c-format
 msgid "cannot move objects into or out of temporary schemas"
 msgstr "无法将对象移入或移出临时模式"
 
-#: catalog/namespace.c:2957
+#: catalog/namespace.c:2958
 #, c-format
 msgid "cannot move objects into or out of TOAST schema"
 msgstr "无法将对象移入或移出TOAST模式"
 
-#: catalog/namespace.c:3029 commands/schemacmds.c:256 commands/schemacmds.c:334
-#: commands/tablecmds.c:1017
+#: catalog/namespace.c:3031 commands/schemacmds.c:257 commands/schemacmds.c:337
+#: commands/tablecmds.c:1137
 #, c-format
 msgid "schema \"%s\" does not exist"
 msgstr "模式 \"%s\" 不存在"
 
-#: catalog/namespace.c:3060
+#: catalog/namespace.c:3062
 #, c-format
 msgid "improper relation name (too many dotted names): %s"
 msgstr "不合适的关系名称 (名字中太多的点符号): %s"
 
-#: catalog/namespace.c:3594
+#: catalog/namespace.c:3596
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" does not exist"
 msgstr "编码 \"%2$s\" 中的排序规则 \"%1$s\" 不存在"
 
-#: catalog/namespace.c:3649
+#: catalog/namespace.c:3651
 #, c-format
 msgid "conversion \"%s\" does not exist"
 msgstr "编码转换 \"%s\" 不存在"
 
-#: catalog/namespace.c:3889
+#: catalog/namespace.c:3891
 #, c-format
 msgid "permission denied to create temporary tables in database \"%s\""
 msgstr "不允许在数据库 \"%s\" 中创建临时表"
 
-#: catalog/namespace.c:3905
+#: catalog/namespace.c:3907
 #, c-format
 msgid "cannot create temporary tables during recovery"
 msgstr "不能在恢复过程中创建临时表"
 
-#: catalog/namespace.c:3911
+#: catalog/namespace.c:3913
 #, c-format
 msgid "cannot create temporary tables during a parallel operation"
 msgstr "在并行操作期间无法创建临时表"
 
-#: catalog/namespace.c:4194 commands/tablespace.c:1171 commands/variable.c:64
-#: utils/misc/guc.c:10267 utils/misc/guc.c:10345
+#: catalog/namespace.c:4196 commands/tablespace.c:1186 commands/variable.c:64
+#: utils/misc/guc.c:10900 utils/misc/guc.c:10978
 #, c-format
 msgid "List syntax is invalid."
 msgstr "列表语法无效."
 
-#: catalog/objectaddress.c:1238 catalog/pg_publication.c:66
-#: commands/policy.c:94 commands/policy.c:394 commands/policy.c:484
-#: commands/tablecmds.c:225 commands/tablecmds.c:267 commands/tablecmds.c:1742
-#: commands/tablecmds.c:5004 commands/tablecmds.c:9628
+#: catalog/objectaddress.c:1274 catalog/pg_publication.c:66
+#: commands/policy.c:95 commands/policy.c:395 commands/policy.c:485
+#: commands/tablecmds.c:224 commands/tablecmds.c:266 commands/tablecmds.c:1899
+#: commands/tablecmds.c:5142 commands/tablecmds.c:10327
 #, c-format
 msgid "\"%s\" is not a table"
 msgstr "\"%s\" 不是一个表"
 
-#: catalog/objectaddress.c:1245 commands/tablecmds.c:237
-#: commands/tablecmds.c:5034 commands/tablecmds.c:14091 commands/view.c:143
+#: catalog/objectaddress.c:1281 commands/tablecmds.c:236
+#: commands/tablecmds.c:5172 commands/tablecmds.c:14774 commands/view.c:138
 #, c-format
 msgid "\"%s\" is not a view"
 msgstr "\"%s\" 不是一个视图"
 
-#: catalog/objectaddress.c:1252 commands/matview.c:172 commands/tablecmds.c:243
-#: commands/tablecmds.c:14096
+#: catalog/objectaddress.c:1288 commands/matview.c:175 commands/tablecmds.c:242
+#: commands/tablecmds.c:14779
 #, c-format
 msgid "\"%s\" is not a materialized view"
 msgstr "\"%s\" 不是一个物化视图"
 
-#: catalog/objectaddress.c:1259 commands/tablecmds.c:261
-#: commands/tablecmds.c:5037 commands/tablecmds.c:14101
+#: catalog/objectaddress.c:1295 commands/tablecmds.c:260
+#: commands/tablecmds.c:5175 commands/tablecmds.c:14784
 #, c-format
 msgid "\"%s\" is not a foreign table"
 msgstr "\"%s\" 不是一个外部表"
 
-#: catalog/objectaddress.c:1300
+#: catalog/objectaddress.c:1336
 #, c-format
 msgid "must specify relation and object name"
 msgstr "必须指定关系和对象名称"
 
-#: catalog/objectaddress.c:1376 catalog/objectaddress.c:1429
+#: catalog/objectaddress.c:1412 catalog/objectaddress.c:1465
 #, c-format
 msgid "column name must be qualified"
 msgstr "不能限定列名称"
 
-#: catalog/objectaddress.c:1472
+#: catalog/objectaddress.c:1512
 #, c-format
 msgid "default value for column \"%s\" of relation \"%s\" does not exist"
 msgstr "关系\"%2$s\"的列\"%1$s\"的默认值不存在"
 
-#: catalog/objectaddress.c:1509 commands/functioncmds.c:133
-#: commands/tablecmds.c:253 commands/typecmds.c:3324 parser/parse_type.c:226
-#: parser/parse_type.c:255 parser/parse_type.c:828 utils/adt/acl.c:4452
+#: catalog/objectaddress.c:1549 commands/functioncmds.c:132
+#: commands/tablecmds.c:252 commands/typecmds.c:3321 parser/parse_type.c:226
+#: parser/parse_type.c:255 parser/parse_type.c:828 utils/adt/acl.c:4451
 #, c-format
 msgid "type \"%s\" does not exist"
 msgstr "类型 \"%s\" 不存在"
 
-#: catalog/objectaddress.c:1628
+#: catalog/objectaddress.c:1668
 #, c-format
 msgid "operator %d (%s, %s) of %s does not exist"
 msgstr "%4$s的操作符%1$d (%2$s,%3$s)不存在"
 
-#: catalog/objectaddress.c:1659
+#: catalog/objectaddress.c:1699
 #, c-format
 msgid "function %d (%s, %s) of %s does not exist"
 msgstr "%4$s的函数%1$d (%2$s, %3$s)不存在"
 
-#: catalog/objectaddress.c:1710 catalog/objectaddress.c:1736
+#: catalog/objectaddress.c:1750 catalog/objectaddress.c:1776
 #, c-format
 msgid "user mapping for user \"%s\" on server \"%s\" does not exist"
 msgstr "用户\"%s\"在服务器\"%s\"上的用户映射不存在"
 
-#: catalog/objectaddress.c:1725 commands/foreigncmds.c:428
-#: commands/foreigncmds.c:1004 commands/foreigncmds.c:1381
-#: foreign/foreign.c:688
+#: catalog/objectaddress.c:1765 commands/foreigncmds.c:433
+#: commands/foreigncmds.c:1016 commands/foreigncmds.c:1396
+#: foreign/foreign.c:723
 #, c-format
 msgid "server \"%s\" does not exist"
 msgstr "服务器\"%s\" 不存在"
 
-#: catalog/objectaddress.c:1792
+#: catalog/objectaddress.c:1832
 #, c-format
 msgid "publication relation \"%s\" in publication \"%s\" does not exist"
 msgstr "发布关系\"%s\"在发布\"%s\"中不存在"
 
-#: catalog/objectaddress.c:1854
+#: catalog/objectaddress.c:1894
 #, c-format
 msgid "unrecognized default ACL object type \"%c\""
 msgstr "无法识别的默认ACL对象类型\"%c\""
 
-#: catalog/objectaddress.c:1855
+#: catalog/objectaddress.c:1895
 #, c-format
 msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"."
 msgstr "有效的对象类型为 \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"."
 
-#: catalog/objectaddress.c:1906
+#: catalog/objectaddress.c:1946
 #, c-format
 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:1911
+#: catalog/objectaddress.c:1951
 #, c-format
 msgid "default ACL for user \"%s\" on %s does not exist"
 msgstr "用户\"%s\"在%s上的默认ACL不存在"
 
-#: catalog/objectaddress.c:1938 catalog/objectaddress.c:1996
-#: catalog/objectaddress.c:2053
+#: catalog/objectaddress.c:1978 catalog/objectaddress.c:2036
+#: catalog/objectaddress.c:2093
 #, c-format
 msgid "name or argument lists may not contain nulls"
 msgstr "名称或者参数列表不能包含空值"
 
-#: catalog/objectaddress.c:1972
+#: catalog/objectaddress.c:2012
 #, c-format
 msgid "unsupported object type \"%s\""
 msgstr "不支持的对象类型\"%s\""
 
-#: catalog/objectaddress.c:1992 catalog/objectaddress.c:2010
-#: catalog/objectaddress.c:2151
+#: catalog/objectaddress.c:2032 catalog/objectaddress.c:2050
+#: catalog/objectaddress.c:2191
 #, c-format
 msgid "name list length must be exactly %d"
 msgstr "名字列表的长度必须正好是 %d"
 
-#: catalog/objectaddress.c:2014
+#: catalog/objectaddress.c:2054
 #, c-format
 msgid "large object OID may not be null"
 msgstr "大对象OID不能为空"
 
-#: catalog/objectaddress.c:2023 catalog/objectaddress.c:2086
-#: catalog/objectaddress.c:2093
+#: catalog/objectaddress.c:2063 catalog/objectaddress.c:2126
+#: catalog/objectaddress.c:2133
 #, c-format
 msgid "name list length must be at least %d"
 msgstr "名称列表的长度必须至少为%d"
 
-#: catalog/objectaddress.c:2079 catalog/objectaddress.c:2100
+#: catalog/objectaddress.c:2119 catalog/objectaddress.c:2140
 #, c-format
 msgid "argument list length must be exactly %d"
 msgstr "参数列表的长度必须正好为%d"
 
-#: catalog/objectaddress.c:2330 libpq/be-fsstubs.c:321
+#: catalog/objectaddress.c:2370 libpq/be-fsstubs.c:321
 #, c-format
 msgid "must be owner of large object %u"
 msgstr "必须是大对象%u的属主"
 
-#: catalog/objectaddress.c:2345 commands/functioncmds.c:1454
+#: catalog/objectaddress.c:2385 commands/functioncmds.c:1535
 #, c-format
 msgid "must be owner of type %s or type %s"
 msgstr "只能是类型 %s 或 %s 的所由者"
 
-#: catalog/objectaddress.c:2395 catalog/objectaddress.c:2412
+#: catalog/objectaddress.c:2435 catalog/objectaddress.c:2452
 #, c-format
 msgid "must be superuser"
 msgstr "必须是超级用户"
 
-#: catalog/objectaddress.c:2402
+#: catalog/objectaddress.c:2442
 #, c-format
 msgid "must have CREATEROLE privilege"
 msgstr "必须拥有CREATEROLE权限."
 
-#: catalog/objectaddress.c:2481
+#: catalog/objectaddress.c:2521
 #, c-format
 msgid "unrecognized object type \"%s\""
 msgstr "无法识别的对象类型\"%s\""
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:2694
+#: catalog/objectaddress.c:2742
 #, c-format
 msgid "column %s of %s"
 msgstr "%2$s的列%1$s"
 
-#: catalog/objectaddress.c:2704
+#: catalog/objectaddress.c:2752
 #, c-format
 msgid "function %s"
 msgstr "函数 %s"
 
-#: catalog/objectaddress.c:2709
+#: catalog/objectaddress.c:2757
 #, c-format
 msgid "type %s"
 msgstr "类型 %s"
 
-#: catalog/objectaddress.c:2739
+#: catalog/objectaddress.c:2787
 #, c-format
 msgid "cast from %s to %s"
 msgstr "%s 转换为 %s"
 
-#: catalog/objectaddress.c:2767
+#: catalog/objectaddress.c:2815
 #, c-format
 msgid "collation %s"
 msgstr "排序规则 %s"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:2793
+#: catalog/objectaddress.c:2841
 #, c-format
 msgid "constraint %s on %s"
 msgstr "在%2$s上的约束%1$s "
 
-#: catalog/objectaddress.c:2799
+#: catalog/objectaddress.c:2847
 #, c-format
 msgid "constraint %s"
 msgstr "约束 %s"
 
-#: catalog/objectaddress.c:2826
+#: catalog/objectaddress.c:2874
 #, c-format
 msgid "conversion %s"
 msgstr "编码转换 %s"
 
 #. translator: %s is typically "column %s of table %s"
-#: catalog/objectaddress.c:2865
+#: catalog/objectaddress.c:2913
 #, c-format
 msgid "default value for %s"
 msgstr "%s的缺省值"
 
-#: catalog/objectaddress.c:2874
+#: catalog/objectaddress.c:2922
 #, c-format
 msgid "language %s"
 msgstr "语言 %s"
 
-#: catalog/objectaddress.c:2879
+#: catalog/objectaddress.c:2927
 #, c-format
 msgid "large object %u"
 msgstr "大对象 %u "
 
-#: catalog/objectaddress.c:2884
+#: catalog/objectaddress.c:2932
 #, c-format
 msgid "operator %s"
 msgstr "操作符 %s"
 
-#: catalog/objectaddress.c:2916
+#: catalog/objectaddress.c:2964
 #, c-format
 msgid "operator class %s for access method %s"
 msgstr "处理方法 %s 的操作符类 %s"
 
-#: catalog/objectaddress.c:2939
+#: catalog/objectaddress.c:2987
 #, c-format
 msgid "access method %s"
 msgstr "访问方法 %s"
@@ -4301,7 +4391,7 @@ msgstr "访问方法 %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:2981
+#: catalog/objectaddress.c:3029
 #, c-format
 msgid "operator %d (%s, %s) of %s: %s"
 msgstr "%5$s: %4$s中的操作符%1$d (%2$s,%3$s)"
@@ -4310,626 +4400,655 @@ 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:3031
+#: catalog/objectaddress.c:3079
 #, c-format
 msgid "function %d (%s, %s) of %s: %s"
 msgstr "%4$s: %5$s 的函数%1$d (%2$s, %3$s)"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:3075
+#: catalog/objectaddress.c:3123
 #, c-format
 msgid "rule %s on %s"
 msgstr "规则 %s 在 %s"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:3113
+#: catalog/objectaddress.c:3161
 #, c-format
 msgid "trigger %s on %s"
 msgstr "触发器 %s 在 %s"
 
-#: catalog/objectaddress.c:3129
+#: catalog/objectaddress.c:3177
 #, c-format
 msgid "schema %s"
 msgstr "模式 %s"
 
-#: catalog/objectaddress.c:3152
+#: catalog/objectaddress.c:3200
 #, c-format
 msgid "statistics object %s"
 msgstr "统计信息对象%s"
 
-#: catalog/objectaddress.c:3179
+#: catalog/objectaddress.c:3227
 #, c-format
 msgid "text search parser %s"
 msgstr "文本搜寻解析器 %s"
 
 # sql_help.h:301
-#: catalog/objectaddress.c:3205
+#: catalog/objectaddress.c:3253
 #, c-format
 msgid "text search dictionary %s"
 msgstr "文本搜寻字典 %s"
 
 # describe.c:1753
-#: catalog/objectaddress.c:3231
+#: catalog/objectaddress.c:3279
 #, c-format
 msgid "text search template %s"
 msgstr "文本搜寻模版 %s"
 
-#: catalog/objectaddress.c:3257
+#: catalog/objectaddress.c:3305
 #, c-format
 msgid "text search configuration %s"
 msgstr "文本搜寻配置 %s"
 
-#: catalog/objectaddress.c:3266
+#: catalog/objectaddress.c:3314
 #, c-format
 msgid "role %s"
 msgstr "角色 %s"
 
-#: catalog/objectaddress.c:3279
+#: catalog/objectaddress.c:3327
 #, c-format
 msgid "database %s"
 msgstr "数据库 %s"
 
 # describe.c:1342
-#: catalog/objectaddress.c:3291
+#: catalog/objectaddress.c:3339
 #, c-format
 msgid "tablespace %s"
 msgstr "表空间 %s"
 
-#: catalog/objectaddress.c:3300
+#: catalog/objectaddress.c:3348
 #, c-format
 msgid "foreign-data wrapper %s"
 msgstr "外部数据封装器 %s"
 
-#: catalog/objectaddress.c:3309
+#: catalog/objectaddress.c:3357
 #, c-format
 msgid "server %s"
 msgstr "服务器 %s"
 
-#: catalog/objectaddress.c:3337
+#: catalog/objectaddress.c:3385
 #, c-format
 msgid "user mapping for %s on server %s"
 msgstr "%s在服务器%s上的用户映射"
 
-#: catalog/objectaddress.c:3382
+#: catalog/objectaddress.c:3430
 #, c-format
 msgid "default privileges on new relations belonging to role %s in schema %s"
 msgstr "在模式 %2$s上,在新的关系上的缺省权限属于角色%1$s"
 
-#: catalog/objectaddress.c:3386
+#: catalog/objectaddress.c:3434
 #, c-format
 msgid "default privileges on new relations belonging to role %s"
 msgstr "在新的关系上的缺省权限属于角色%s"
 
-#: catalog/objectaddress.c:3392
+#: catalog/objectaddress.c:3440
 #, c-format
 msgid "default privileges on new sequences belonging to role %s in schema %s"
 msgstr "在模式 %2$s上,在新的序列上的缺省权限属于角色%1$s"
 
-#: catalog/objectaddress.c:3396
+#: catalog/objectaddress.c:3444
 #, c-format
 msgid "default privileges on new sequences belonging to role %s"
 msgstr "在新的序列上的缺省权限属于角色%s"
 
-#: catalog/objectaddress.c:3402
+#: catalog/objectaddress.c:3450
 #, c-format
 msgid "default privileges on new functions belonging to role %s in schema %s"
 msgstr "在模式 %2$s上,在新的函数上的缺省权限属于角色%1$s"
 
-#: catalog/objectaddress.c:3406
+#: catalog/objectaddress.c:3454
 #, c-format
 msgid "default privileges on new functions belonging to role %s"
 msgstr "在新的函数上的缺省权限属于角色%s"
 
-#: catalog/objectaddress.c:3412
+#: catalog/objectaddress.c:3460
 #, c-format
 msgid "default privileges on new types belonging to role %s in schema %s"
 msgstr "对属于角色%s(在模式%s中)的新类型的默认权限"
 
-#: catalog/objectaddress.c:3416
+#: catalog/objectaddress.c:3464
 #, c-format
 msgid "default privileges on new types belonging to role %s"
 msgstr "在新类型上的缺省权限属于角色 %s"
 
-#: catalog/objectaddress.c:3422
+#: catalog/objectaddress.c:3470
 #, c-format
 msgid "default privileges on new schemas belonging to role %s"
 msgstr "在新的模式上的缺省权限属于角色%s"
 
-#: catalog/objectaddress.c:3429
+#: catalog/objectaddress.c:3477
 #, c-format
 msgid "default privileges belonging to role %s in schema %s"
 msgstr "在模式%2$s上,缺省权限属于角色%1$s"
 
-#: catalog/objectaddress.c:3433
+#: catalog/objectaddress.c:3481
 #, c-format
 msgid "default privileges belonging to role %s"
 msgstr "缺省权限属于角色%s"
 
-#: catalog/objectaddress.c:3451
+#: catalog/objectaddress.c:3499
 #, c-format
 msgid "extension %s"
 msgstr "扩展 %s"
 
 # describe.c:1549
-#: catalog/objectaddress.c:3464
+#: catalog/objectaddress.c:3512
 #, c-format
 msgid "event trigger %s"
 msgstr "事件触发器%s"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:3500
+#: catalog/objectaddress.c:3548
 #, c-format
 msgid "policy %s on %s"
 msgstr "策略%s在 %s上"
 
-#: catalog/objectaddress.c:3510
+#: catalog/objectaddress.c:3558
 #, c-format
 msgid "publication %s"
 msgstr "发布 %s"
 
 #. translator: first %s is, e.g., "table %s"
-#: catalog/objectaddress.c:3535
+#: catalog/objectaddress.c:3584
 #, c-format
 msgid "publication of %s in publication %s"
 msgstr "在发布%s中发布%s"
 
-#: catalog/objectaddress.c:3544
+#: catalog/objectaddress.c:3593
 #, c-format
 msgid "subscription %s"
 msgstr "订阅 %s"
 
-#: catalog/objectaddress.c:3562
+#: catalog/objectaddress.c:3612
 #, c-format
 msgid "transform for %s language %s"
 msgstr "用于把%s转换到语言%s的转换"
 
-#: catalog/objectaddress.c:3625
+#: catalog/objectaddress.c:3675
 #, c-format
 msgid "table %s"
 msgstr "表 %s"
 
-#: catalog/objectaddress.c:3630
+#: catalog/objectaddress.c:3680
 #, c-format
 msgid "index %s"
 msgstr "索引 %s"
 
-#: catalog/objectaddress.c:3634
+#: catalog/objectaddress.c:3684
 #, c-format
 msgid "sequence %s"
 msgstr "序列 %s"
 
-#: catalog/objectaddress.c:3638
+#: catalog/objectaddress.c:3688
 #, c-format
 msgid "toast table %s"
 msgstr "toast 表 %s"
 
-#: catalog/objectaddress.c:3642
+#: catalog/objectaddress.c:3692
 #, c-format
 msgid "view %s"
 msgstr "视图 %s"
 
-#: catalog/objectaddress.c:3646
+#: catalog/objectaddress.c:3696
 #, c-format
 msgid "materialized view %s"
 msgstr "物化视图 %s"
 
-#: catalog/objectaddress.c:3650
+#: catalog/objectaddress.c:3700
 #, c-format
 msgid "composite type %s"
 msgstr "复合类型 %s"
 
-#: catalog/objectaddress.c:3654
+#: catalog/objectaddress.c:3704
 #, c-format
 msgid "foreign table %s"
 msgstr "外部表 %s"
 
-#: catalog/objectaddress.c:3659
+#: catalog/objectaddress.c:3709
 #, c-format
 msgid "relation %s"
 msgstr "关系 %s"
 
-#: catalog/objectaddress.c:3696
+#: catalog/objectaddress.c:3746
 #, c-format
 msgid "operator family %s for access method %s"
 msgstr "访问方法 %2$s 的操作符类 %1$s"
 
-#: catalog/partition.c:180 commands/analyze.c:1514 commands/indexcmds.c:928
-#: commands/tablecmds.c:944 commands/tablecmds.c:7897 commands/tablecmds.c:9690
-#: commands/tablecmds.c:14985 commands/tablecmds.c:15514
-#: executor/execExprInterp.c:3275 executor/execMain.c:1940
-#: executor/execMain.c:2019 executor/execMain.c:2067 executor/execMain.c:2173
-#: executor/execPartition.c:462 executor/execPartition.c:522
-#: executor/execPartition.c:638 executor/execPartition.c:741
-#: executor/execPartition.c:812 executor/execPartition.c:1010
-#: executor/nodeModifyTable.c:1859
+#: catalog/partition.c:214 commands/analyze.c:1353 commands/indexcmds.c:1092
+#: commands/tablecmds.c:1068 commands/tablecmds.c:8114
+#: commands/tablecmds.c:8257 commands/tablecmds.c:8448
+#: commands/tablecmds.c:8585 commands/tablecmds.c:10389
+#: commands/tablecmds.c:15681 commands/tablecmds.c:16236
+#: executor/execExprInterp.c:3303 executor/execMain.c:1865
+#: executor/execMain.c:1951 executor/execMain.c:2001 executor/execMain.c:2109
+#: executor/execPartition.c:590 executor/execPartition.c:650
+#: executor/execPartition.c:794 executor/execPartition.c:908
+#: executor/execPartition.c:941 executor/execPartition.c:1046
+#: executor/nodeModifyTable.c:1963
 msgid "could not convert row type"
 msgstr "无法转换记录类型"
 
-#: catalog/pg_aggregate.c:126
+#: catalog/pg_aggregate.c:129
 #, 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:149 catalog/pg_aggregate.c:159
+#: catalog/pg_aggregate.c:152 catalog/pg_aggregate.c:162
 #, c-format
 msgid "cannot determine transition data type"
 msgstr "无法确定转换数据类型"
 
-#: catalog/pg_aggregate.c:150 catalog/pg_aggregate.c:160
+#: catalog/pg_aggregate.c:153 catalog/pg_aggregate.c:163
 #, c-format
 msgid "An aggregate using a polymorphic transition type must have at least one polymorphic argument."
 msgstr "使用多态转换类型的聚合函数必须至少有一个多态的参数"
 
-#: catalog/pg_aggregate.c:173
+#: catalog/pg_aggregate.c:176
 #, c-format
 msgid "a variadic ordered-set aggregate must use VARIADIC type ANY"
 msgstr "一个可变有序集聚集必须使用可变类型ANY"
 
-#: catalog/pg_aggregate.c:199
+#: catalog/pg_aggregate.c:202
 #, c-format
 msgid "a hypothetical-set aggregate must have direct arguments matching its aggregated arguments"
 msgstr "一个判定集聚集的直接参数必须与它的聚集参数相匹配"
 
-#: catalog/pg_aggregate.c:246 catalog/pg_aggregate.c:290
+#: catalog/pg_aggregate.c:249 catalog/pg_aggregate.c:293
 #, c-format
 msgid "return type of transition function %s is not %s"
 msgstr "转换函数的返回类型 %s 不是 %s"
 
-#: catalog/pg_aggregate.c:266 catalog/pg_aggregate.c:309
+#: catalog/pg_aggregate.c:269 catalog/pg_aggregate.c:312
 #, 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:335
+#: catalog/pg_aggregate.c:338
 #, c-format
 msgid "return type of inverse transition function %s is not %s"
 msgstr "逆向转换函数的返回类型 %s 不是 %s"
 
-#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:2838
+#: catalog/pg_aggregate.c:355 executor/nodeWindowAgg.c:2851
 #, c-format
 msgid "strictness of aggregate's forward and inverse transition functions must match"
 msgstr "聚集函数的正向和逆向转换函数必须匹配"
 
-#: catalog/pg_aggregate.c:396 catalog/pg_aggregate.c:549
+#: catalog/pg_aggregate.c:399 catalog/pg_aggregate.c:552
 #, c-format
 msgid "final function with extra arguments must not be declared STRICT"
 msgstr "带参数的终止函数不能定义为STRICT"
 
-#: catalog/pg_aggregate.c:427
+#: catalog/pg_aggregate.c:430
 #, c-format
 msgid "return type of combine function %s is not %s"
 msgstr "组合函数 %s 的返回类型不是 %s"
 
-#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:2947
+#: catalog/pg_aggregate.c:442 executor/nodeAgg.c:2973
 #, c-format
 msgid "combine function with transition type %s must not be declared STRICT"
 msgstr "转换类型为%s的组合函数不能声明为STRICT"
 
-#: catalog/pg_aggregate.c:458
+#: catalog/pg_aggregate.c:461
 #, c-format
 msgid "return type of serialization function %s is not %s"
 msgstr "序列化函数 %s 的返回类型不是 %s"
 
-#: catalog/pg_aggregate.c:479
+#: catalog/pg_aggregate.c:482
 #, c-format
 msgid "return type of deserialization function %s is not %s"
 msgstr "反序列化函数 %s 的返回类型不是 %s"
 
-#: catalog/pg_aggregate.c:495 catalog/pg_proc.c:240 catalog/pg_proc.c:247
+#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:243 catalog/pg_proc.c:250
 #, c-format
 msgid "cannot determine result data type"
 msgstr "无法确定结构数据类型"
 
-#: catalog/pg_aggregate.c:496
+#: catalog/pg_aggregate.c:499
 #, c-format
 msgid "An aggregate returning a polymorphic type must have at least one polymorphic argument."
 msgstr "使用多态类型的聚合函数必须至少有一个多态的参数"
 
-#: catalog/pg_aggregate.c:508 catalog/pg_proc.c:253
+#: catalog/pg_aggregate.c:511 catalog/pg_proc.c:256
 #, c-format
 msgid "unsafe use of pseudo-type \"internal\""
 msgstr "使用伪类型\"internal\"的方式不安全"
 
-#: catalog/pg_aggregate.c:509 catalog/pg_proc.c:254
+#: catalog/pg_aggregate.c:512 catalog/pg_proc.c:257
 #, c-format
 msgid "A function returning \"internal\" must have at least one \"internal\" argument."
 msgstr "返回\"internal\"类型结果的函数必须至少有一个\"internal\" 类型的参数"
 
-#: catalog/pg_aggregate.c:562
+#: catalog/pg_aggregate.c:565
 #, c-format
 msgid "moving-aggregate implementation returns type %s, but plain implementation returns type %s"
 msgstr "moving-aggregate的实现返回类型为%s, 但是普通的实现返回类型为%s"
 
-#: catalog/pg_aggregate.c:573
+#: catalog/pg_aggregate.c:576
 #, c-format
 msgid "sort operator can only be specified for single-argument aggregates"
 msgstr "只能为单一参数的聚合函数而定义排序操作符."
 
-#: catalog/pg_aggregate.c:819 commands/typecmds.c:1766 commands/typecmds.c:1817
-#: commands/typecmds.c:1848 commands/typecmds.c:1871 commands/typecmds.c:1892
-#: commands/typecmds.c:1919 commands/typecmds.c:1946 commands/typecmds.c:2023
-#: commands/typecmds.c:2065 parser/parse_func.c:408 parser/parse_func.c:437
-#: parser/parse_func.c:462 parser/parse_func.c:476 parser/parse_func.c:596
-#: parser/parse_func.c:616 parser/parse_func.c:2086
+#: catalog/pg_aggregate.c:703 catalog/pg_proc.c:396
+#, c-format
+msgid "cannot change routine kind"
+msgstr "无法改变常规种类"
+
+#: catalog/pg_aggregate.c:705
+#, fuzzy, c-format
+#| msgid "\"%s\" is an aggregate function."
+msgid "\"%s\" is an ordinary aggregate function."
+msgstr "\"%s\" 是一个聚合函数"
+
+#: catalog/pg_aggregate.c:707
+#, fuzzy, c-format
+#| msgid "\"%s\" is an aggregate function."
+msgid "\"%s\" is an ordered-set aggregate."
+msgstr "\"%s\" 是一个聚合函数"
+
+#: catalog/pg_aggregate.c:709
+#, c-format
+msgid "\"%s\" is a hypothetical-set aggregate."
+msgstr ""
+
+#: catalog/pg_aggregate.c:714
+#, fuzzy, c-format
+#| msgid "cannot change inheritance of a partition"
+msgid "cannot change number of direct args of an aggregate function"
+msgstr "无法更改分区的继承"
+
+#: catalog/pg_aggregate.c:869 commands/functioncmds.c:665
+#: commands/typecmds.c:1751 commands/typecmds.c:1802 commands/typecmds.c:1833
+#: commands/typecmds.c:1856 commands/typecmds.c:1877 commands/typecmds.c:1904
+#: commands/typecmds.c:1931 commands/typecmds.c:2008 commands/typecmds.c:2050
+#: parser/parse_func.c:418 parser/parse_func.c:447 parser/parse_func.c:472
+#: parser/parse_func.c:486 parser/parse_func.c:606 parser/parse_func.c:626
+#: parser/parse_func.c:2139 parser/parse_func.c:2330
 #, c-format
 msgid "function %s does not exist"
 msgstr "函数 %s 不存在"
 
-#: catalog/pg_aggregate.c:825
+#: catalog/pg_aggregate.c:875
 #, c-format
 msgid "function %s returns a set"
 msgstr "函数 %s 返回一个组合"
 
-#: catalog/pg_aggregate.c:840
+#: catalog/pg_aggregate.c:890
 #, c-format
 msgid "function %s must accept VARIADIC ANY to be used in this aggregate"
 msgstr "函数%s必须接受VARIADIC ANY类型,用于聚集函数中"
 
-#: catalog/pg_aggregate.c:864
+#: catalog/pg_aggregate.c:914
 #, c-format
 msgid "function %s requires run-time type coercion"
 msgstr "函数 %s 需要运行时类型强制"
 
-#: catalog/pg_collation.c:92 catalog/pg_collation.c:139
+#: catalog/pg_collation.c:93 catalog/pg_collation.c:140
 #, c-format
 msgid "collation \"%s\" already exists, skipping"
 msgstr "排序规则 \"%s\" 已经存在, 跳过"
 
-#: catalog/pg_collation.c:94
+#: catalog/pg_collation.c:95
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" already exists, skipping"
 msgstr "编码\"%2$s\"的排序规则\"%1$s\"已经存在,跳过"
 
-#: catalog/pg_collation.c:102 catalog/pg_collation.c:146
+#: catalog/pg_collation.c:103 catalog/pg_collation.c:147
 #, c-format
 msgid "collation \"%s\" already exists"
 msgstr "排序规则 \"%s\" 已经存在"
 
-#: catalog/pg_collation.c:104
+#: catalog/pg_collation.c:105
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" already exists"
 msgstr "编码 \"%2$s\" 的排序规则 \"%1$s\" 已经存在"
 
-#: catalog/pg_constraint.c:687
+#: catalog/pg_constraint.c:677
 #, c-format
 msgid "constraint \"%s\" for domain %s already exists"
 msgstr "域 %2$s 的约束 \"%1$s\" 已经存在"
 
-#: catalog/pg_constraint.c:874 catalog/pg_constraint.c:967
+#: catalog/pg_constraint.c:875 catalog/pg_constraint.c:968
 #, c-format
 msgid "constraint \"%s\" for table \"%s\" does not exist"
 msgstr "表 \"%2$s\" 的 \"%1$s\" 约束不存在"
 
-#: catalog/pg_constraint.c:1056
+#: catalog/pg_constraint.c:1057
 #, c-format
 msgid "constraint \"%s\" for domain %s does not exist"
 msgstr "域 %2$s 的 \"%1$s\" 约束不存在"
 
-#: catalog/pg_conversion.c:65
+#: catalog/pg_conversion.c:67
 #, c-format
 msgid "conversion \"%s\" already exists"
 msgstr "编码转换 \"%s\" 已经存在"
 
-#: catalog/pg_conversion.c:78
+#: catalog/pg_conversion.c:80
 #, c-format
 msgid "default conversion for %s to %s already exists"
 msgstr "默认的 %s 到 %s 的转换已经存在"
 
-#: catalog/pg_depend.c:163 commands/extension.c:3225
+#: catalog/pg_depend.c:162 commands/extension.c:3229
 #, c-format
 msgid "%s is already a member of extension \"%s\""
 msgstr "\"%s\" 已经是扩展\"%s\"的成员"
 
-#: catalog/pg_depend.c:322
+#: catalog/pg_depend.c:489
 #, c-format
 msgid "cannot remove dependency on %s because it is a system object"
 msgstr "无法删除在%s上的依赖关系,因为它是一个系统对象"
 
-#: catalog/pg_enum.c:115 catalog/pg_enum.c:201 catalog/pg_enum.c:488
+#: catalog/pg_enum.c:128 catalog/pg_enum.c:231 catalog/pg_enum.c:526
 #, c-format
 msgid "invalid enum label \"%s\""
 msgstr "无效的枚举类型标签 \"%s\""
 
-#: catalog/pg_enum.c:116 catalog/pg_enum.c:202 catalog/pg_enum.c:489
+#: catalog/pg_enum.c:129 catalog/pg_enum.c:232 catalog/pg_enum.c:527
 #, c-format
 msgid "Labels must be %d characters or less."
 msgstr "标签必需为 %d 个字符或更少"
 
-#: catalog/pg_enum.c:230
+#: catalog/pg_enum.c:260
 #, c-format
 msgid "enum label \"%s\" already exists, skipping"
 msgstr "枚举标签 \"%s\" 已经存在, 跳过"
 
-#: catalog/pg_enum.c:237 catalog/pg_enum.c:532
+#: catalog/pg_enum.c:267 catalog/pg_enum.c:570
 #, c-format
 msgid "enum label \"%s\" already exists"
 msgstr "枚举标签 \"%s\" 已经存在"
 
-#: catalog/pg_enum.c:292 catalog/pg_enum.c:527
+#: catalog/pg_enum.c:322 catalog/pg_enum.c:565
 #, c-format
 msgid "\"%s\" is not an existing enum label"
 msgstr "枚举标签\"%s\" 不存在"
 
-#: catalog/pg_enum.c:350
+#: catalog/pg_enum.c:380
 #, c-format
 msgid "pg_enum OID value not set when in binary upgrade mode"
 msgstr "当处于二进制升级模式时没有设置pg_enum OID值"
 
-#: catalog/pg_enum.c:360
+#: catalog/pg_enum.c:390
 #, c-format
 msgid "ALTER TYPE ADD BEFORE/AFTER is incompatible with binary upgrade"
 msgstr "ALTER TYPE ADD BEFORE/AFTER与二进制升级不兼容"
 
-#: catalog/pg_namespace.c:63 commands/schemacmds.c:264
+#: catalog/pg_namespace.c:64 commands/schemacmds.c:266
 #, c-format
 msgid "schema \"%s\" already exists"
 msgstr "模式 \"%s\" 已经存在"
 
-#: catalog/pg_operator.c:218 catalog/pg_operator.c:357
+#: catalog/pg_operator.c:219 catalog/pg_operator.c:361
 #, c-format
 msgid "\"%s\" is not a valid operator name"
 msgstr "\"%s\" 不是一个有效的操作符名称"
 
-#: catalog/pg_operator.c:366
+#: catalog/pg_operator.c:370
 #, c-format
 msgid "only binary operators can have commutators"
 msgstr "只有二进制操作符能有交换 (commutators)"
 
-#: catalog/pg_operator.c:370 commands/operatorcmds.c:485
+#: catalog/pg_operator.c:374 commands/operatorcmds.c:485
 #, c-format
 msgid "only binary operators can have join selectivity"
 msgstr "只有二进制操作符能有可选择性联合"
 
-#: catalog/pg_operator.c:374
+#: catalog/pg_operator.c:378
 #, c-format
 msgid "only binary operators can merge join"
 msgstr "只有二进制操作符可以合并联合"
 
-#: catalog/pg_operator.c:378
+#: catalog/pg_operator.c:382
 #, c-format
 msgid "only binary operators can hash"
 msgstr "只有二进制操作符可以散列"
 
-#: catalog/pg_operator.c:389
+#: catalog/pg_operator.c:393
 #, c-format
 msgid "only boolean operators can have negators"
 msgstr "只有布尔类型的操作符能够具有负号."
 
-#: catalog/pg_operator.c:393 commands/operatorcmds.c:493
+#: catalog/pg_operator.c:397 commands/operatorcmds.c:493
 #, c-format
 msgid "only boolean operators can have restriction selectivity"
 msgstr "只有布尔类型操作能够具有限制选择性"
 
-#: catalog/pg_operator.c:397 commands/operatorcmds.c:497
+#: catalog/pg_operator.c:401 commands/operatorcmds.c:497
 #, c-format
 msgid "only boolean operators can have join selectivity"
 msgstr "只有布尔类型操作能够具有连接选择性"
 
-#: catalog/pg_operator.c:401
+#: catalog/pg_operator.c:405
 #, c-format
 msgid "only boolean operators can merge join"
 msgstr "只有布尔类型操作符可以进行合并联合操作"
 
-#: catalog/pg_operator.c:405
+#: catalog/pg_operator.c:409
 #, c-format
 msgid "only boolean operators can hash"
 msgstr "只有布尔操作符可以进行散列操作"
 
-#: catalog/pg_operator.c:417
+#: catalog/pg_operator.c:421
 #, c-format
 msgid "operator %s already exists"
 msgstr "操作符 %s 已经存在"
 
-#: catalog/pg_operator.c:611
+#: catalog/pg_operator.c:621
 #, c-format
 msgid "operator cannot be its own negator or sort operator"
 msgstr "操作符不能否定自己或者排序分类操作符"
 
-#: catalog/pg_proc.c:128 parser/parse_func.c:2122
+#: catalog/pg_proc.c:131 parser/parse_func.c:2201
 #, 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:241
+#: catalog/pg_proc.c:244
 #, c-format
 msgid "A function returning a polymorphic type must have at least one polymorphic argument."
 msgstr "返回一个多态类型的函数必须至少有一个多态参数"
 
-#: catalog/pg_proc.c:248
+#: catalog/pg_proc.c:251
 #, c-format
 msgid "A function returning \"anyrange\" must have at least one \"anyrange\" argument."
 msgstr "返回\"anyrange\"类型结果的函数必须至少有一个\"anyrange\" 类型的参数"
 
-#: catalog/pg_proc.c:383
+#: catalog/pg_proc.c:386
 #, c-format
 msgid "function \"%s\" already exists with same argument types"
 msgstr "带相同参数类型的函数 \"%s\" 已经存在"
 
-#: catalog/pg_proc.c:393
-#, c-format
-msgid "cannot change routine kind"
-msgstr "无法改变常规种类"
-
-#: catalog/pg_proc.c:395
+#: catalog/pg_proc.c:398
 #, c-format
 msgid "\"%s\" is an aggregate function."
 msgstr "\"%s\" 是一个聚合函数"
 
-#: catalog/pg_proc.c:397
+#: catalog/pg_proc.c:400
 #, c-format
 msgid "\"%s\" is a function."
 msgstr "\"%s\" 是一个函数"
 
-#: catalog/pg_proc.c:399
+#: catalog/pg_proc.c:402
 #, c-format
 msgid "\"%s\" is a procedure."
 msgstr "\"%s\" 是一个程序"
 
-#: catalog/pg_proc.c:401
+#: catalog/pg_proc.c:404
 #, c-format
 msgid "\"%s\" is a window function."
 msgstr "\"%s\"是一个窗口函数."
 
-#: catalog/pg_proc.c:419
+#: catalog/pg_proc.c:424
 #, c-format
 msgid "cannot change whether a procedure has output parameters"
 msgstr "无法更改过程是否具有输出参数"
 
-#: catalog/pg_proc.c:420 catalog/pg_proc.c:446
+#: catalog/pg_proc.c:425 catalog/pg_proc.c:455
 #, c-format
 msgid "cannot change return type of existing function"
 msgstr "不能改变已经存在的函数的返回值类型"
 
+#. translator: first %s is DROP FUNCTION, DROP PROCEDURE or DROP
+#. AGGREGATE
+#.
 #. translator: first %s is DROP FUNCTION or DROP PROCEDURE
-#: catalog/pg_proc.c:422 catalog/pg_proc.c:449 catalog/pg_proc.c:494
-#: catalog/pg_proc.c:520 catalog/pg_proc.c:548
+#: catalog/pg_proc.c:431 catalog/pg_proc.c:458 catalog/pg_proc.c:503
+#: catalog/pg_proc.c:529 catalog/pg_proc.c:557
 #, c-format
 msgid "Use %s %s first."
 msgstr "请先使用 %s %s."
 
-#: catalog/pg_proc.c:447
+#: catalog/pg_proc.c:456
 #, c-format
 msgid "Row type defined by OUT parameters is different."
 msgstr "由OUT模式参数定义的记录类型不同"
 
-#: catalog/pg_proc.c:491
+#: catalog/pg_proc.c:500
 #, c-format
 msgid "cannot change name of input parameter \"%s\""
 msgstr "无法改变输入参数\"%s\"的名称"
 
-#: catalog/pg_proc.c:518
+#: catalog/pg_proc.c:527
 #, c-format
 msgid "cannot remove parameter defaults from existing function"
 msgstr "不能从已存在的函数种删除参数缺正值"
 
-#: catalog/pg_proc.c:546
+#: catalog/pg_proc.c:555
 #, c-format
 msgid "cannot change data type of existing parameter default value"
 msgstr "不能改变已经存在参数缺省值的数据类型"
 
-#: catalog/pg_proc.c:749
+#: catalog/pg_proc.c:772
 #, c-format
 msgid "there is no built-in function named \"%s\""
 msgstr "没有名为 \"%s\" 的内建函数"
 
-#: catalog/pg_proc.c:847
+#: catalog/pg_proc.c:870
 #, c-format
 msgid "SQL functions cannot return type %s"
 msgstr "SQL 函数无法返回 %s 类型"
 
-#: catalog/pg_proc.c:862
+#: catalog/pg_proc.c:885
 #, c-format
 msgid "SQL functions cannot have arguments of type %s"
 msgstr "SQL 函数不能有 %s 类型的参数"
 
-#: catalog/pg_proc.c:950 executor/functions.c:1434
+#: catalog/pg_proc.c:973 executor/functions.c:1423
 #, c-format
 msgid "SQL function \"%s\""
 msgstr "SQL 函数 \"%s\""
 
-#: catalog/pg_publication.c:57 commands/trigger.c:235 commands/trigger.c:253
+#: catalog/pg_publication.c:57 commands/trigger.c:238 commands/trigger.c:256
 #, c-format
 msgid "\"%s\" is a partitioned table"
 msgstr "\"%s\" 是一个分区表"
@@ -4969,18 +5088,18 @@ msgstr "无法复制表\"%s\""
 msgid "Temporary and unlogged relations cannot be replicated."
 msgstr "无法复制临时关系和未加载关系."
 
-#: catalog/pg_publication.c:175
+#: catalog/pg_publication.c:182
 #, c-format
 msgid "relation \"%s\" is already member of publication \"%s\""
 msgstr "关系\"%s\"已经是发布 \"%s\"的成员"
 
-#: catalog/pg_publication.c:403 catalog/pg_publication.c:424
-#: commands/publicationcmds.c:415 commands/publicationcmds.c:716
+#: catalog/pg_publication.c:418 catalog/pg_publication.c:440
+#: commands/publicationcmds.c:422 commands/publicationcmds.c:727
 #, c-format
 msgid "publication \"%s\" does not exist"
 msgstr "发布 \"%s\" 不存在"
 
-#: catalog/pg_shdepend.c:692
+#: catalog/pg_shdepend.c:777
 #, c-format
 msgid ""
 "\n"
@@ -4992,490 +5111,460 @@ msgstr[0] ""
 "\n"
 "对象在 %d 个其它数据库中"
 
-#: catalog/pg_shdepend.c:998
+#: catalog/pg_shdepend.c:1083
 #, c-format
 msgid "role %u was concurrently dropped"
 msgstr "角色%u被同时删除"
 
-#: catalog/pg_shdepend.c:1017
+#: catalog/pg_shdepend.c:1102
 #, c-format
 msgid "tablespace %u was concurrently dropped"
 msgstr "表空间 %u 被同时删除"
 
-#: catalog/pg_shdepend.c:1032
+#: catalog/pg_shdepend.c:1117
 #, c-format
 msgid "database %u was concurrently dropped"
 msgstr "数据库 %u 被同时删除"
 
-#: catalog/pg_shdepend.c:1077
+#: catalog/pg_shdepend.c:1162
 #, c-format
 msgid "owner of %s"
 msgstr "%s的属主"
 
-#: catalog/pg_shdepend.c:1079
+#: catalog/pg_shdepend.c:1164
 #, c-format
 msgid "privileges for %s"
 msgstr "%s的权限"
 
-#: catalog/pg_shdepend.c:1081
+#: catalog/pg_shdepend.c:1166
 #, c-format
 msgid "target of %s"
 msgstr "%s的目标"
 
 #. translator: %s will always be "database %s"
-#: catalog/pg_shdepend.c:1089
+#: catalog/pg_shdepend.c:1174
 #, c-format
 msgid "%d object in %s"
 msgid_plural "%d objects in %s"
 msgstr[0] "在%2$s中的%1$d个对象"
 
-#: catalog/pg_shdepend.c:1200
+#: catalog/pg_shdepend.c:1285
 #, c-format
 msgid "cannot drop objects owned by %s because they are required by the database system"
 msgstr "无法删除由%s所拥有的对象, 因为数据库系统需要这些对象"
 
-#: catalog/pg_shdepend.c:1315
+#: catalog/pg_shdepend.c:1408
 #, c-format
 msgid "cannot reassign ownership of objects owned by %s because they are required by the database system"
 msgstr "无法再分配由%s所拥有的对象, 因为数据库系统需要这些对象"
 
-#: catalog/pg_subscription.c:176 commands/subscriptioncmds.c:633
-#: commands/subscriptioncmds.c:843 commands/subscriptioncmds.c:1067
+#: catalog/pg_subscription.c:177 commands/subscriptioncmds.c:648
+#: commands/subscriptioncmds.c:862 commands/subscriptioncmds.c:1089
 #, c-format
 msgid "subscription \"%s\" does not exist"
 msgstr "订阅\"%s\"不存在"
 
-#: catalog/pg_type.c:135 catalog/pg_type.c:459
+#: catalog/pg_type.c:131 catalog/pg_type.c:467
 #, c-format
 msgid "pg_type OID value not set when in binary upgrade mode"
 msgstr "当处于二进制升级模式时没有设置pg_type OID值"
 
-#: catalog/pg_type.c:241
+#: catalog/pg_type.c:249
 #, c-format
 msgid "invalid type internal size %d"
 msgstr "无效类型内部大小 %d"
 
-#: catalog/pg_type.c:257 catalog/pg_type.c:265 catalog/pg_type.c:273
-#: catalog/pg_type.c:282
+#: catalog/pg_type.c:265 catalog/pg_type.c:273 catalog/pg_type.c:281
+#: catalog/pg_type.c:290
 #, c-format
 msgid "alignment \"%c\" is invalid for passed-by-value type of size %d"
 msgstr "对齐方式 \"%c\"对于大小为%d的passed-by-value 类型是无效的"
 
-#: catalog/pg_type.c:289
+#: catalog/pg_type.c:297
 #, c-format
 msgid "internal size %d is invalid for passed-by-value type"
 msgstr "internal 大小 %d 对于 passed-by-value 类型是无效的"
 
-#: catalog/pg_type.c:298 catalog/pg_type.c:304
+#: catalog/pg_type.c:306 catalog/pg_type.c:312
 #, c-format
 msgid "alignment \"%c\" is invalid for variable-length type"
 msgstr "对齐方式 \"%c\"对于大小为可变长度的类型是无效的"
 
-#: catalog/pg_type.c:312
+#: catalog/pg_type.c:320
 #, c-format
 msgid "fixed-size types must have storage PLAIN"
 msgstr "固定大小类型必需有明确的存储"
 
-#: catalog/pg_type.c:801
+#: catalog/pg_type.c:818
 #, c-format
 msgid "could not form array type name for type \"%s\""
 msgstr "无法为类型\"%s\"来形成数组类型名称"
 
-#: catalog/toasting.c:105 commands/indexcmds.c:443 commands/tablecmds.c:5016
-#: commands/tablecmds.c:13979
+#: catalog/storage.c:344 storage/buffer/bufmgr.c:922
 #, c-format
-msgid "\"%s\" is not a table or materialized view"
-msgstr "\"%s\" 不是一个表或物化视图"
+msgid "invalid page in block %u of relation %s"
+msgstr "关系 \"%2$s\" 中的块 %1$u 存在无效的页"
 
-#: catalog/toasting.c:158
+#: catalog/toasting.c:106 commands/indexcmds.c:585 commands/tablecmds.c:5154
+#: commands/tablecmds.c:14640
 #, c-format
-msgid "shared tables cannot be toasted after initdb"
-msgstr "在 initdb 之后, 不可以 toasted 共享表"
+msgid "\"%s\" is not a table or materialized view"
+msgstr "\"%s\" 不是一个表或物化视图"
 
-#: commands/aggregatecmds.c:166
+#: commands/aggregatecmds.c:171
 #, c-format
 msgid "only ordered-set aggregates can be hypothetical"
 msgstr "只有有序集聚焦函数可用被用于判定"
 
-#: commands/aggregatecmds.c:191
+#: commands/aggregatecmds.c:196
 #, c-format
 msgid "aggregate attribute \"%s\" not recognized"
 msgstr "聚集属性 \"%s\" 不被认可"
 
-#: commands/aggregatecmds.c:201
+#: commands/aggregatecmds.c:206
 #, c-format
 msgid "aggregate stype must be specified"
 msgstr "聚集 stype 必须指定"
 
-#: commands/aggregatecmds.c:205
+#: commands/aggregatecmds.c:210
 #, c-format
 msgid "aggregate sfunc must be specified"
 msgstr "聚集 sfunc 必须指定"
 
-#: commands/aggregatecmds.c:217
+#: commands/aggregatecmds.c:222
 #, c-format
 msgid "aggregate msfunc must be specified when mstype is specified"
 msgstr "当mstype指定了的时候, 聚集 sfunc 必须指定"
 
-#: commands/aggregatecmds.c:221
+#: commands/aggregatecmds.c:226
 #, c-format
 msgid "aggregate minvfunc must be specified when mstype is specified"
 msgstr "当mstype指定了的时候, 聚集 minvfunc 必须指定"
 
-#: commands/aggregatecmds.c:228
+#: commands/aggregatecmds.c:233
 #, c-format
 msgid "aggregate msfunc must not be specified without mstype"
 msgstr "当mstype没被指定时, 聚集 msfunc 也不能指定"
 
-#: commands/aggregatecmds.c:232
+#: commands/aggregatecmds.c:237
 #, c-format
 msgid "aggregate minvfunc must not be specified without mstype"
 msgstr "没有mstype, 就不能指定聚集minvfunc"
 
-#: commands/aggregatecmds.c:236
+#: commands/aggregatecmds.c:241
 #, c-format
 msgid "aggregate mfinalfunc must not be specified without mstype"
 msgstr "没有mstype, 就不能指定聚集 mfinalfunc"
 
-#: commands/aggregatecmds.c:240
+#: commands/aggregatecmds.c:245
 #, c-format
 msgid "aggregate msspace must not be specified without mstype"
 msgstr "没有指定mstype,就不能指定聚集msspace"
 
-#: commands/aggregatecmds.c:244
+#: commands/aggregatecmds.c:249
 #, c-format
 msgid "aggregate minitcond must not be specified without mstype"
 msgstr "没有指定mstype,就不能指定minitcond"
 
-#: commands/aggregatecmds.c:273
+#: commands/aggregatecmds.c:278
 #, c-format
 msgid "aggregate input type must be specified"
 msgstr "必须指定聚合函数的输入参数类型"
 
-#: commands/aggregatecmds.c:303
+#: commands/aggregatecmds.c:308
 #, c-format
 msgid "basetype is redundant with aggregate input type specification"
 msgstr "如果带有聚合函数输入类型定义,那么基类型定义就是冗余的."
 
-#: commands/aggregatecmds.c:344 commands/aggregatecmds.c:385
+#: commands/aggregatecmds.c:349 commands/aggregatecmds.c:390
 #, c-format
 msgid "aggregate transition data type cannot be %s"
 msgstr "聚集转换数据类型不能为 %s"
 
-#: commands/aggregatecmds.c:356
+#: commands/aggregatecmds.c:361
 #, c-format
 msgid "serialization functions may be specified only when the aggregate transition data type is %s"
 msgstr "只有当聚集转移数据类型是%s时,才能指定序列化函数"
 
-#: commands/aggregatecmds.c:366
+#: commands/aggregatecmds.c:371
 #, c-format
 msgid "must specify both or neither of serialization and deserialization functions"
 msgstr "必须同时指定序列化和反序列化函数或两者都不指定"
 
-#: commands/aggregatecmds.c:431 commands/functioncmds.c:604
+#: commands/aggregatecmds.c:436 commands/functioncmds.c:613
 #, c-format
 msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE"
 msgstr "参数 \"parallel\" 必须为 SAFE、RESTRICTED 或者 UNSAFE"
 
-#: commands/aggregatecmds.c:486
+#: commands/aggregatecmds.c:492
 #, c-format
 msgid "parameter \"%s\" must be READ_ONLY, SHAREABLE, or READ_WRITE"
 msgstr "参数\"%s\"必须为READ_ONLY、SHAREABLE或READ_WRITE"
 
-#: commands/alter.c:84 commands/event_trigger.c:236
+#: commands/alter.c:85 commands/event_trigger.c:237
 #, c-format
 msgid "event trigger \"%s\" already exists"
 msgstr "事件触发器 \"%s\" 已经存在"
 
-#: commands/alter.c:87 commands/foreigncmds.c:595
+#: commands/alter.c:88 commands/foreigncmds.c:601
 #, c-format
 msgid "foreign-data wrapper \"%s\" already exists"
 msgstr "外部数据封装器\"%s\"已经存在"
 
-#: commands/alter.c:90 commands/foreigncmds.c:898
+#: commands/alter.c:91 commands/foreigncmds.c:907
 #, c-format
 msgid "server \"%s\" already exists"
 msgstr "服务器 \"%s\" 已经存在"
 
-#: commands/alter.c:93 commands/proclang.c:363
+#: commands/alter.c:94 commands/proclang.c:368
 #, c-format
 msgid "language \"%s\" already exists"
 msgstr "语言 \"%s\" 已经存在"
 
-#: commands/alter.c:96 commands/publicationcmds.c:176
+#: commands/alter.c:97 commands/publicationcmds.c:176
 #, c-format
 msgid "publication \"%s\" already exists"
 msgstr "发布 \"%s\" 已经存在"
 
-#: commands/alter.c:99 commands/subscriptioncmds.c:358
+#: commands/alter.c:100 commands/subscriptioncmds.c:369
 #, c-format
 msgid "subscription \"%s\" already exists"
 msgstr "订阅 \"%s\" 已经存在"
 
-#: commands/alter.c:122
+#: commands/alter.c:123
 #, c-format
 msgid "conversion \"%s\" already exists in schema \"%s\""
 msgstr "约束 \"%s\" 已经存在于模式 \"%s\" 中"
 
-#: commands/alter.c:126
+#: commands/alter.c:127
 #, c-format
 msgid "statistics object \"%s\" already exists in schema \"%s\""
 msgstr "在模式\"%2$s\"中已经存在统计信息对象\"%1$s\""
 
-#: commands/alter.c:130
+#: commands/alter.c:131
 #, c-format
 msgid "text search parser \"%s\" already exists in schema \"%s\""
 msgstr "文本搜索解析器\"%s\"已存在于方案\"%s\"中"
 
-#: commands/alter.c:134
+#: commands/alter.c:135
 #, c-format
 msgid "text search dictionary \"%s\" already exists in schema \"%s\""
 msgstr "文本搜索字典\"%s\" 已经存在于方案\"%s\"中"
 
-#: commands/alter.c:138
+#: commands/alter.c:139
 #, c-format
 msgid "text search template \"%s\" already exists in schema \"%s\""
 msgstr "文本搜索模板\"%s\" 已经存在于方案\"%s\"中"
 
-#: commands/alter.c:142
+#: commands/alter.c:143
 #, c-format
 msgid "text search configuration \"%s\" already exists in schema \"%s\""
 msgstr "文本搜索配置\"%s\"已存在于方案\"%s\"中"
 
-#: commands/alter.c:216
+#: commands/alter.c:217
 #, c-format
 msgid "must be superuser to rename %s"
 msgstr "必须为超级用户才能进行重命名\"%s\" "
 
-#: commands/alter.c:713
+#: commands/alter.c:714
 #, c-format
 msgid "must be superuser to set schema of %s"
 msgstr "只有超级用户能设置%s的模式"
 
-#: commands/amcmds.c:58
+#: commands/amcmds.c:59
 #, c-format
 msgid "permission denied to create access method \"%s\""
 msgstr "权限不允许创建访问方法 \"%s\""
 
-#: commands/amcmds.c:60
+#: commands/amcmds.c:61
 #, c-format
 msgid "Must be superuser to create an access method."
 msgstr "只有超级用户能创建访问方法。"
 
-#: commands/amcmds.c:68
+#: commands/amcmds.c:70
 #, c-format
 msgid "access method \"%s\" already exists"
 msgstr "访问方法 \"%s\" 已存在"
 
-#: commands/amcmds.c:123
+#: commands/amcmds.c:127
 #, c-format
 msgid "must be superuser to drop access methods"
 msgstr "只有超级用户可以删除访问方法"
 
-#: commands/amcmds.c:174 commands/indexcmds.c:173 commands/indexcmds.c:583
-#: commands/opclasscmds.c:364 commands/opclasscmds.c:778
+#: commands/amcmds.c:178 commands/indexcmds.c:187 commands/indexcmds.c:730
+#: commands/opclasscmds.c:372 commands/opclasscmds.c:791
 #, c-format
 msgid "access method \"%s\" does not exist"
 msgstr "访问方式 \"%s\" 不存在"
 
-#: commands/amcmds.c:250
+#: commands/amcmds.c:267
 #, c-format
 msgid "handler function is not specified"
 msgstr "没有指定处理器函数"
 
-#: commands/amcmds.c:262 commands/event_trigger.c:245
-#: commands/foreigncmds.c:487 commands/proclang.c:116 commands/proclang.c:285
-#: commands/trigger.c:696 parser/parse_clause.c:990
+#: commands/amcmds.c:288 commands/event_trigger.c:246
+#: commands/foreigncmds.c:493 commands/proclang.c:115 commands/proclang.c:287
+#: commands/trigger.c:719 parser/parse_clause.c:950
 #, c-format
 msgid "function %s must return type %s"
 msgstr "函数 %s 必须返回类型 %s"
 
-#: commands/analyze.c:187
-#, c-format
-msgid "skipping analyze of \"%s\" --- lock not available"
-msgstr "跳过对 \"%s\"的分析 --- 锁无法得到"
-
-#: commands/analyze.c:192
-#, c-format
-msgid "skipping analyze of \"%s\" --- relation no longer exists"
-msgstr "跳过对 \"%s\"的分析 --- 关系不再存在"
-
-#: commands/analyze.c:209
-#, c-format
-msgid "skipping \"%s\" --- only superuser can analyze it"
-msgstr "忽略 \"%s\" --- 只有超级用户能够分析它"
-
-#: commands/analyze.c:213
-#, c-format
-msgid "skipping \"%s\" --- only superuser or database owner can analyze it"
-msgstr "忽略 \"%s\" --- 只有超级用户或数据库的属主能够分析它"
-
-#: commands/analyze.c:217
-#, c-format
-msgid "skipping \"%s\" --- only table or database owner can analyze it"
-msgstr "忽略 \"%s\" --- 只有表或数据库的属主能够分析它"
-
-#: commands/analyze.c:275
+#: commands/analyze.c:225
 #, c-format
 msgid "skipping \"%s\" --- cannot analyze this foreign table"
 msgstr "忽略 \"%s\" --- 无法分析该外部表"
 
-#: commands/analyze.c:292
+#: commands/analyze.c:242
 #, c-format
 msgid "skipping \"%s\" --- cannot analyze non-tables or special system tables"
 msgstr "忽略 \"%s\" --- 无法分析非表或特殊的系统表"
 
-#: commands/analyze.c:373
+#: commands/analyze.c:323
 #, c-format
 msgid "analyzing \"%s.%s\" inheritance tree"
 msgstr "正在分析 \"%s.%s\"继承树"
 
-#: commands/analyze.c:378
+#: commands/analyze.c:328
 #, c-format
 msgid "analyzing \"%s.%s\""
 msgstr "正在分析 \"%s.%s\""
 
-#: commands/analyze.c:438
+#: commands/analyze.c:388
 #, c-format
 msgid "column \"%s\" of relation \"%s\" appears more than once"
 msgstr "关系 \"%2$s\" 的 \"%1$s\" 字段出现多次"
 
-#: commands/analyze.c:718
+#: commands/analyze.c:668
 #, c-format
 msgid "automatic analyze of table \"%s.%s.%s\" system usage: %s"
 msgstr "自动分析表 \"%s.%s.%s\"的系统使用情况: %s"
 
-#: commands/analyze.c:1288
+#: commands/analyze.c:1127
 #, c-format
 msgid "\"%s\": scanned %d of %u pages, containing %.0f live rows and %.0f dead rows; %d rows in sample, %.0f estimated total rows"
 msgstr "\"%1$s\": 已经扫描了%3$u页的%2$d, 包含%4$.0f可用的记录和%5$.0f不能用的记录; 在示例中有%6$d条记录,估算所有记录为%7$.0f ."
 
-#: commands/analyze.c:1368
+#: commands/analyze.c:1207
 #, c-format
 msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no child tables"
 msgstr "跳过\"%s.%s\"继承树的分析 --- 这个继承树不包含子表"
 
-#: commands/analyze.c:1466
+#: commands/analyze.c:1305
 #, c-format
 msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables"
 msgstr "跳过\"%s.%s\"继承树的分析 --- 这个继承树包含不可分析的子表"
 
-#: commands/async.c:558
+#: commands/async.c:557
 #, c-format
 msgid "channel name cannot be empty"
 msgstr "通道名称不能为空"
 
-#: commands/async.c:563
+#: commands/async.c:562
 #, c-format
 msgid "channel name too long"
 msgstr "通道名称太长"
 
-#: commands/async.c:570
+#: commands/async.c:569
 #, c-format
 msgid "payload string too long"
 msgstr "流量负载字符串太长"
 
-#: commands/async.c:756
+#: commands/async.c:755
 #, c-format
 msgid "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY"
 msgstr "无法在一个已经执行了LISTEN或UNLISTEN、NOTIFY操作的事务上执行PREPARE"
 
-#: commands/async.c:859
+#: commands/async.c:858
 #, c-format
 msgid "too many notifications in the NOTIFY queue"
 msgstr "在NOTIFY队列中的通知太多了"
 
-#: commands/async.c:1491
+#: commands/async.c:1490
 #, c-format
 msgid "NOTIFY queue is %.0f%% full"
 msgstr "NOTIFY队列达到了%.0f%%的容量"
 
-#: commands/async.c:1493
+#: commands/async.c:1492
 #, c-format
 msgid "The server process with PID %d is among those with the oldest transactions."
 msgstr "带有PID为%d的服务器进程在那些带有最老事务的进程中。"
 
-#: commands/async.c:1496
+#: commands/async.c:1495
 #, c-format
 msgid "The NOTIFY queue cannot be emptied until that process ends its current transaction."
 msgstr "在进程结束它所处理的当前事务前, NOTIFY队列不能为空."
 
-#: commands/cluster.c:129 commands/cluster.c:372
+#: commands/cluster.c:126 commands/cluster.c:388
 #, c-format
 msgid "cannot cluster temporary tables of other sessions"
 msgstr "无法为其它会话的临时表建簇"
 
-#: commands/cluster.c:137
+#: commands/cluster.c:134
 #, c-format
 msgid "cannot cluster a partitioned table"
 msgstr "无法对分区表进行群集"
 
-#: commands/cluster.c:167
+#: commands/cluster.c:164
 #, c-format
 msgid "there is no previously clustered index for table \"%s\""
 msgstr "在表 \"%s\" 中未找到先前建簇的索引"
 
-#: commands/cluster.c:181 commands/tablecmds.c:11136 commands/tablecmds.c:13041
+#: commands/cluster.c:178 commands/tablecmds.c:11906 commands/tablecmds.c:13708
 #, c-format
 msgid "index \"%s\" for table \"%s\" does not exist"
 msgstr "表 \"%2$s\" 的 \"%1$s\" 索引不存在"
 
-#: commands/cluster.c:361
+#: commands/cluster.c:377
 #, c-format
 msgid "cannot cluster a shared catalog"
 msgstr "无法在共享目录视图上进行聚簇操作"
 
-#: commands/cluster.c:376
+#: commands/cluster.c:392
 #, c-format
 msgid "cannot vacuum temporary tables of other sessions"
 msgstr "无法对其它会话的临时表进行清理操作"
 
-#: commands/cluster.c:439 commands/tablecmds.c:13051
+#: commands/cluster.c:458 commands/tablecmds.c:13718
 #, c-format
 msgid "\"%s\" is not an index for table \"%s\""
 msgstr "对于表 \"%2$s\" \"%1$s\" 不是一个索引"
 
-#: commands/cluster.c:447
+#: commands/cluster.c:466
 #, c-format
 msgid "cannot cluster on index \"%s\" because access method does not support clustering"
 msgstr "无法在索引\"%s\"进行聚簇操作,因为访问方法不支持进行聚簇操作"
 
-#: commands/cluster.c:459
+#: commands/cluster.c:478
 #, c-format
 msgid "cannot cluster on partial index \"%s\""
 msgstr "无法在部分索引 \"%s\"上进行聚簇操作"
 
-#: commands/cluster.c:473
+#: commands/cluster.c:492
 #, c-format
 msgid "cannot cluster on invalid index \"%s\""
 msgstr "无法在无效索引\"%s\"进行聚簇操作"
 
-#: commands/cluster.c:497
+#: commands/cluster.c:516
 #, c-format
 msgid "cannot mark index clustered in partitioned table"
 msgstr "无法在分区表中标记聚集索引"
 
-#: commands/cluster.c:938
+#: commands/cluster.c:899
 #, c-format
 msgid "clustering \"%s.%s\" using index scan on \"%s\""
 msgstr "簇 \"%s.%s\" 正在 \"%s\"进行索引扫描"
 
-#: commands/cluster.c:944
+#: commands/cluster.c:905
 #, c-format
 msgid "clustering \"%s.%s\" using sequential scan and sort"
 msgstr "簇 \"%s.%s\"正在进行顺序扫描和排序"
 
-#: commands/cluster.c:949 commands/vacuumlazy.c:505
-#, c-format
-msgid "vacuuming \"%s.%s\""
-msgstr "正在清理 (vacuum)  \"%s.%s\""
-
-#: commands/cluster.c:1106
+#: commands/cluster.c:936
 #, 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:1110
+#: commands/cluster.c:940
 #, c-format
 msgid ""
 "%.0f dead row versions cannot be removed yet.\n"
@@ -5484,98 +5573,105 @@ msgstr ""
 "%.0f 死行版本号仍不能移除.\n"
 "%s."
 
-#: commands/collationcmds.c:100
+#: commands/collationcmds.c:104
 #, c-format
 msgid "collation attribute \"%s\" not recognized"
 msgstr "无法识别排序规则属性 \"%s\""
 
-#: commands/collationcmds.c:142
+#: commands/collationcmds.c:147
 #, c-format
 msgid "collation \"default\" cannot be copied"
 msgstr "无法复制排序规则\"default\""
 
-#: commands/collationcmds.c:172
+#: commands/collationcmds.c:180
 #, c-format
 msgid "unrecognized collation provider: %s"
 msgstr "无法识别的排序规则提供程序: %s"
 
-#: commands/collationcmds.c:181
+#: commands/collationcmds.c:189
 #, c-format
 msgid "parameter \"lc_collate\" must be specified"
 msgstr "参数\"lc_collate\" 必须指定"
 
-#: commands/collationcmds.c:186
+#: commands/collationcmds.c:194
 #, c-format
 msgid "parameter \"lc_ctype\" must be specified"
 msgstr "参数\"lc_ctype\"必须指定"
 
-#: commands/collationcmds.c:245
+# fe-auth.c:640
+#: commands/collationcmds.c:204
+#, fuzzy, c-format
+#| msgid "peer authentication is not supported on this platform"
+msgid "nondeterministic collations not supported with this provider"
+msgstr "对等认证在这个平台上不支持"
+
+#: commands/collationcmds.c:264
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\""
 msgstr "在模式\"%3$s\"中已经存在对应于编码\"%2$s\"的排序规则\"%1$s\""
 
-#: commands/collationcmds.c:256
+#: commands/collationcmds.c:275
 #, c-format
 msgid "collation \"%s\" already exists in schema \"%s\""
 msgstr "在模式\"%2$s\"中已经存在排序规则\"%1$s\""
 
-#: commands/collationcmds.c:304
+#: commands/collationcmds.c:323
 #, c-format
 msgid "changing version from %s to %s"
 msgstr "将版本从%s更改为%s"
 
-#: commands/collationcmds.c:319
+#: commands/collationcmds.c:338
 #, c-format
 msgid "version has not changed"
 msgstr "版本未更改"
 
-#: commands/collationcmds.c:450
+#: commands/collationcmds.c:469
 #, c-format
 msgid "could not convert locale name \"%s\" to language tag: %s"
 msgstr "无法将区域设置名称\"%s\"转换为语言标记: %s"
 
-#: commands/collationcmds.c:511
+#: commands/collationcmds.c:530
 #, c-format
 msgid "must be superuser to import system collations"
 msgstr "必须是超级用户才能导入系统排序规则"
 
-#: commands/collationcmds.c:534 commands/copy.c:1844 commands/copy.c:3181
+#: commands/collationcmds.c:553 commands/copy.c:1899 commands/copy.c:3529
 #: libpq/be-secure-common.c:80
 #, c-format
 msgid "could not execute command \"%s\": %m"
 msgstr "无法执行命令 \"%s\": %m"
 
 # describe.c:1542
-#: commands/collationcmds.c:665
+#: commands/collationcmds.c:684
 #, c-format
 msgid "no usable system locales were found"
 msgstr "没有找到可用的系统本地化名称"
 
-#: commands/comment.c:61 commands/dbcommands.c:808 commands/dbcommands.c:996
-#: commands/dbcommands.c:1100 commands/dbcommands.c:1290
-#: commands/dbcommands.c:1513 commands/dbcommands.c:1627
-#: commands/dbcommands.c:2043 utils/init/postinit.c:853
-#: utils/init/postinit.c:958 utils/init/postinit.c:975
+#: commands/comment.c:61 commands/dbcommands.c:810 commands/dbcommands.c:998
+#: commands/dbcommands.c:1102 commands/dbcommands.c:1292
+#: commands/dbcommands.c:1515 commands/dbcommands.c:1629
+#: commands/dbcommands.c:2046 utils/init/postinit.c:890
+#: utils/init/postinit.c:995 utils/init/postinit.c:1012
 #, c-format
 msgid "database \"%s\" does not exist"
 msgstr "数据库 \"%s\" 不存在"
 
-#: commands/comment.c:101 commands/seclabel.c:117 parser/parse_utilcmd.c:925
+#: commands/comment.c:101 commands/seclabel.c:117 parser/parse_utilcmd.c:944
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, composite type, or foreign table"
 msgstr "\"%s\" 不是一个表,物化视图,组合类型或者外部表"
 
-#: commands/constraint.c:60 utils/adt/ri_triggers.c:2256
+#: commands/constraint.c:63 utils/adt/ri_triggers.c:1915
 #, c-format
 msgid "function \"%s\" was not called by trigger manager"
 msgstr "函数 \"%s\" 没有被触发器管理器调用"
 
-#: commands/constraint.c:67 utils/adt/ri_triggers.c:2265
+#: commands/constraint.c:70 utils/adt/ri_triggers.c:1924
 #, c-format
 msgid "function \"%s\" must be fired AFTER ROW"
 msgstr "函数 \"%s\"必须为AFTER ROW触发"
 
-#: commands/constraint.c:81
+#: commands/constraint.c:84
 #, c-format
 msgid "function \"%s\" must be fired for INSERT or UPDATE"
 msgstr "函数 \"%s\"必须为INSERT或UPDATE操作触发"
@@ -5595,773 +5691,768 @@ msgstr "目标编码 \"%s\" 不存在"
 msgid "encoding conversion function %s must return type %s"
 msgstr "编码转换函数 %s 必须返回类型 %s"
 
-#: commands/copy.c:374 commands/copy.c:408
+#: commands/copy.c:428 commands/copy.c:462
 #, c-format
 msgid "COPY BINARY is not supported to stdout or from stdin"
 msgstr "COPOY BINARY 不支持输出到标准输出或来自标准输入"
 
-#: commands/copy.c:508
+#: commands/copy.c:562
 #, c-format
 msgid "could not write to COPY program: %m"
 msgstr "无法写入 COPY 程序: %m"
 
-#: commands/copy.c:513
+#: commands/copy.c:567
 #, c-format
 msgid "could not write to COPY file: %m"
 msgstr "无法写入 COPY 文件: %m"
 
-#: commands/copy.c:526
+#: commands/copy.c:580
 #, c-format
 msgid "connection lost during COPY to stdout"
 msgstr "COPY 到标准输出的过程中联接中断"
 
-#: commands/copy.c:570
+#: commands/copy.c:624
 #, c-format
 msgid "could not read from COPY file: %m"
 msgstr "无法从COPY命令中文件进行读操作: %m"
 
-#: commands/copy.c:588 commands/copy.c:609 commands/copy.c:613
+#: commands/copy.c:642 commands/copy.c:663 commands/copy.c:667
 #: tcop/postgres.c:348 tcop/postgres.c:384 tcop/postgres.c:411
 #, c-format
 msgid "unexpected EOF on client connection with an open transaction"
 msgstr "在客户端连接上的已打开事务中出现意外 EOF"
 
-#: commands/copy.c:626
+#: commands/copy.c:680
 #, c-format
 msgid "COPY from stdin failed: %s"
 msgstr "从标准输入上 COPY 失败: %s"
 
-#: commands/copy.c:642
+#: commands/copy.c:696
 #, c-format
 msgid "unexpected message type 0x%02X during COPY from stdin"
 msgstr "意外的信息类型 0x%02X, 在标准输入上 COPY 的过程中"
 
-#: commands/copy.c:808
+#: commands/copy.c:863
 #, c-format
 msgid "must be superuser or a member of the pg_execute_server_program role to COPY to or from an external program"
 msgstr "必须是超级用户或pg_execute_server_program角色的成员才能 COPY 到外部程序或者从外部程序进行COPY"
 
-#: commands/copy.c:809 commands/copy.c:818 commands/copy.c:825
+#: commands/copy.c:864 commands/copy.c:873 commands/copy.c:880
 #, c-format
 msgid "Anyone can COPY to stdout or from stdin. psql's \\copy command also works for anyone."
 msgstr "任何人可以 COPY 到标准输出或来自标准输入的 COPY. 任何人也可以使用 Psql 的 \\copy 命令."
 
-#: commands/copy.c:817
+#: commands/copy.c:872
 #, c-format
 msgid "must be superuser or a member of the pg_read_server_files role to COPY from a file"
 msgstr "必须是超级用户或pg_read_server_files角色的成员才能从一个文件COPY"
 
-#: commands/copy.c:824
+#: commands/copy.c:879
 #, c-format
 msgid "must be superuser or a member of the pg_write_server_files role to COPY to a file"
 msgstr "必须是超级用户或pg_write_server_files角色的成员才能COPY到一个文件"
 
-#: commands/copy.c:887
+#: commands/copy.c:963
 #, c-format
 msgid "COPY FROM not supported with row-level security"
 msgstr "在行级安全性下不支持COPY FROM"
 
-#: commands/copy.c:888
+#: commands/copy.c:964
 #, c-format
 msgid "Use INSERT statements instead."
 msgstr "请使用INSERT语句代替。"
 
-#: commands/copy.c:1075
+#: commands/copy.c:1152
 #, c-format
 msgid "COPY format \"%s\" not recognized"
 msgstr "没有识别COPY命令的格式\"%s\""
 
-#: commands/copy.c:1155 commands/copy.c:1171 commands/copy.c:1186
-#: commands/copy.c:1208
+#: commands/copy.c:1223 commands/copy.c:1239 commands/copy.c:1254
+#: commands/copy.c:1276
 #, c-format
 msgid "argument to option \"%s\" must be a list of column names"
 msgstr "选项 \"%s\"的参数必须是一个包含列名的列表"
 
-#: commands/copy.c:1223
+#: commands/copy.c:1291
 #, c-format
 msgid "argument to option \"%s\" must be a valid encoding name"
 msgstr "选项 \"%s\"的参数必须是一个有效的编码名"
 
-#: commands/copy.c:1230 commands/dbcommands.c:242 commands/dbcommands.c:1461
+#: commands/copy.c:1298 commands/dbcommands.c:243 commands/dbcommands.c:1463
 #, c-format
 msgid "option \"%s\" not recognized"
 msgstr "未识别选项\"%s\""
 
-#: commands/copy.c:1242
+#: commands/copy.c:1310
 #, c-format
 msgid "cannot specify DELIMITER in BINARY mode"
 msgstr "在 BINARY 模式中你不能指定 DELIMITER"
 
-#: commands/copy.c:1247
+#: commands/copy.c:1315
 #, c-format
 msgid "cannot specify NULL in BINARY mode"
 msgstr "在 BINARY 模式中你不能指定 NULL"
 
-#: commands/copy.c:1269
+#: commands/copy.c:1337
 #, c-format
 msgid "COPY delimiter must be a single one-byte character"
 msgstr "COPY命令中 的分隔符必需是单字节字符"
 
-#: commands/copy.c:1276
+#: commands/copy.c:1344
 #, c-format
 msgid "COPY delimiter cannot be newline or carriage return"
 msgstr "COPY 命令中的分隔符不能使新行或回车符"
 
-#: commands/copy.c:1282
+#: commands/copy.c:1350
 #, c-format
 msgid "COPY null representation cannot use newline or carriage return"
 msgstr "在COPY命令中空表达式中不能使用新行或换行回车."
 
-#: commands/copy.c:1299
+#: commands/copy.c:1367
 #, c-format
 msgid "COPY delimiter cannot be \"%s\""
 msgstr "COPY命令中的分隔符不能为\"%s\""
 
-#: commands/copy.c:1305
+#: commands/copy.c:1373
 #, c-format
 msgid "COPY HEADER available only in CSV mode"
 msgstr "只在CSV 模式中才能使用COPY HEADER命令"
 
-#: commands/copy.c:1311
+#: commands/copy.c:1379
 #, c-format
 msgid "COPY quote available only in CSV mode"
 msgstr "只有在CSV模式中才能在COPY命令中使用引号"
 
-#: commands/copy.c:1316
+#: commands/copy.c:1384
 #, c-format
 msgid "COPY quote must be a single one-byte character"
 msgstr "在COPY命令中的引号必须是单字节字符"
 
-#: commands/copy.c:1321
+#: commands/copy.c:1389
 #, c-format
 msgid "COPY delimiter and quote must be different"
 msgstr "COPY命令中的分隔符和引号不能一样."
 
-#: commands/copy.c:1327
+#: commands/copy.c:1395
 #, c-format
 msgid "COPY escape available only in CSV mode"
 msgstr "COPY 转义 (escape) 只在 CSV 模式中有效"
 
-#: commands/copy.c:1332
+#: commands/copy.c:1400
 #, c-format
 msgid "COPY escape must be a single one-byte character"
 msgstr "在COPY命令中的转义字符必须是单个单字节字符"
 
-#: commands/copy.c:1338
+#: commands/copy.c:1406
 #, c-format
 msgid "COPY force quote available only in CSV mode"
 msgstr "只有在CSV模式中才能在COPY命令中进行强制引用操作"
 
-#: commands/copy.c:1342
+#: commands/copy.c:1410
 #, c-format
 msgid "COPY force quote only available using COPY TO"
 msgstr "只有使用COPY TO命令时, COPY强制引用操作才有效"
 
-#: commands/copy.c:1348
+#: commands/copy.c:1416
 #, c-format
 msgid "COPY force not null available only in CSV mode"
 msgstr "只有在CSV模式中强制不为空的COPY命令才有效"
 
-#: commands/copy.c:1352
+#: commands/copy.c:1420
 #, c-format
 msgid "COPY force not null only available using COPY FROM"
 msgstr "只有在使用COPY FROM命令时,在COPY命令中的强制不可为空的操作才有效"
 
-#: commands/copy.c:1358
+#: commands/copy.c:1426
 #, c-format
 msgid "COPY force null available only in CSV mode"
 msgstr "只有在CSV模式中强制为空的COPY命令才有效"
 
-#: commands/copy.c:1363
+#: commands/copy.c:1431
 #, c-format
 msgid "COPY force null only available using COPY FROM"
 msgstr "只有在使用COPY FROM命令时,在COPY命令中的强制为空的操作才有效"
 
-#: commands/copy.c:1369
+#: commands/copy.c:1437
 #, c-format
 msgid "COPY delimiter must not appear in the NULL specification"
 msgstr "COPY分隔符不能出现NULL定义中"
 
-#: commands/copy.c:1376
+#: commands/copy.c:1444
 #, c-format
 msgid "CSV quote character must not appear in the NULL specification"
 msgstr "CSV引用字符不能出现在NULL定义中."
 
-#: commands/copy.c:1437
-#, c-format
-msgid "table \"%s\" does not have OIDs"
-msgstr "表 \"%s\" 没有 OID"
-
-#: commands/copy.c:1454
-#, c-format
-msgid "COPY (query) WITH OIDS is not supported"
-msgstr "不支持 COPY (query) WITH OIDS"
-
-#: commands/copy.c:1475
+#: commands/copy.c:1530
 #, c-format
 msgid "DO INSTEAD NOTHING rules are not supported for COPY"
 msgstr "对 COPY 语句不支持 DO INSTEAD NOTHING 规则"
 
-#: commands/copy.c:1489
+#: commands/copy.c:1544
 #, c-format
 msgid "conditional DO INSTEAD rules are not supported for COPY"
 msgstr "对 COPY 语句不支持有条件的 DO INSTEAD 规则"
 
-#: commands/copy.c:1493
+#: commands/copy.c:1548
 #, c-format
 msgid "DO ALSO rules are not supported for the COPY"
 msgstr "对 COPY 语句不支持 DO ALSO 规则"
 
-#: commands/copy.c:1498
+#: commands/copy.c:1553
 #, c-format
 msgid "multi-statement DO INSTEAD rules are not supported for COPY"
 msgstr "对 COPY 语句不支持多语句 DO INSTEAD 规则"
 
-#: commands/copy.c:1508
+#: commands/copy.c:1563
 #, c-format
 msgid "COPY (SELECT INTO) is not supported"
 msgstr "不支持使用COPY (SELECT INTO)命令."
 
-#: commands/copy.c:1525
+#: commands/copy.c:1580
 #, c-format
 msgid "COPY query must have a RETURNING clause"
 msgstr "COPY 查询必须有 RETURNING 子句"
 
-#: commands/copy.c:1553
+#: commands/copy.c:1608
 #, c-format
 msgid "relation referenced by COPY statement has changed"
 msgstr "COPY语句引用的关系已经改变"
 
-#: commands/copy.c:1612
+#: commands/copy.c:1667
 #, c-format
 msgid "FORCE_QUOTE column \"%s\" not referenced by COPY"
 msgstr "FORCE_QUOTE 列 \"%s\" 没有被 COPY 引用"
 
-#: commands/copy.c:1635
+#: commands/copy.c:1690
 #, c-format
 msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY"
 msgstr "FORCE_NOT_NULL 列 \"%s\" 没有被 COPY 引用"
 
-#: commands/copy.c:1658
+#: commands/copy.c:1713
 #, c-format
 msgid "FORCE_NULL column \"%s\" not referenced by COPY"
 msgstr "FORCE_NULL 列 \"%s\" 没有被 COPY 引用"
 
-#: commands/copy.c:1724 libpq/be-secure-common.c:102
+#: commands/copy.c:1779 libpq/be-secure-common.c:102
 #, c-format
 msgid "could not close pipe to external command: %m"
 msgstr "无法为外部命令: %m关闭管道"
 
-#: commands/copy.c:1739
+#: commands/copy.c:1794
 #, c-format
 msgid "program \"%s\" failed"
 msgstr "程序\"%s\"失败"
 
-#: commands/copy.c:1790
+#: commands/copy.c:1845
 #, c-format
 msgid "cannot copy from view \"%s\""
 msgstr "不可以从视图 \"%s\" 拷贝"
 
-#: commands/copy.c:1792 commands/copy.c:1798 commands/copy.c:1804
-#: commands/copy.c:1815
+#: commands/copy.c:1847 commands/copy.c:1853 commands/copy.c:1859
+#: commands/copy.c:1870
 #, c-format
 msgid "Try the COPY (SELECT ...) TO variant."
 msgstr "尝试不同形式的COPY (SELECT ...) TO命令"
 
-#: commands/copy.c:1796
+#: commands/copy.c:1851
 #, c-format
 msgid "cannot copy from materialized view \"%s\""
 msgstr "不可以从物化视图 \"%s\" 拷贝"
 
-#: commands/copy.c:1802
+#: commands/copy.c:1857
 #, c-format
 msgid "cannot copy from foreign table \"%s\""
 msgstr "不可以从外部表 \"%s\" 拷贝"
 
-#: commands/copy.c:1808
+#: commands/copy.c:1863
 #, c-format
 msgid "cannot copy from sequence \"%s\""
 msgstr "不可以从序列 \"%s\" 拷贝"
 
-#: commands/copy.c:1813
+#: commands/copy.c:1868
 #, c-format
 msgid "cannot copy from partitioned table \"%s\""
 msgstr "不可以从分区表 \"%s\" 拷贝"
 
-#: commands/copy.c:1819
+#: commands/copy.c:1874
 #, c-format
 msgid "cannot copy from non-table relation \"%s\""
 msgstr "不可以从非表关系 \"%s\" 拷贝"
 
-#: commands/copy.c:1859
+#: commands/copy.c:1914
 #, c-format
 msgid "relative path not allowed for COPY to file"
 msgstr "COPY 到文件不允许相对路径"
 
-#: commands/copy.c:1880
+#: commands/copy.c:1935
 #, c-format
 msgid "could not open file \"%s\" for writing: %m"
 msgstr "为了写入, 无法打开文件 \"%s\": %m"
 
-#: commands/copy.c:1883
+#: commands/copy.c:1938
 #, c-format
 msgid "COPY TO instructs the PostgreSQL server process to write a file. You may want a client-side facility such as psql's \\copy."
 msgstr "COPY TO指示PostgreSQL服务器进程写入文件。您可能需要客户端工具,如psql的\\copy。"
 
-#: commands/copy.c:1896 commands/copy.c:3212
+#: commands/copy.c:1951 commands/copy.c:3560
 #, c-format
 msgid "\"%s\" is a directory"
 msgstr "\"%s\" 是一个目录"
 
-#: commands/copy.c:2222
+#: commands/copy.c:2253
 #, c-format
 msgid "COPY %s, line %s, column %s"
 msgstr "COPY %s, 行 %s, 列 %s"
 
-#: commands/copy.c:2226 commands/copy.c:2273
+#: commands/copy.c:2257 commands/copy.c:2304
 #, c-format
 msgid "COPY %s, line %s"
 msgstr "COPY %s, 行 %s"
 
-#: commands/copy.c:2237
+#: commands/copy.c:2268
 #, c-format
 msgid "COPY %s, line %s, column %s: \"%s\""
 msgstr "COPY %s, 行 %s, 列 %s: \"%s\""
 
-#: commands/copy.c:2245
+#: commands/copy.c:2276
 #, c-format
 msgid "COPY %s, line %s, column %s: null input"
 msgstr "COPY %s, 行 %s, 列 %s: 空的输入"
 
-#: commands/copy.c:2267
+#: commands/copy.c:2298
 #, c-format
 msgid "COPY %s, line %s: \"%s\""
 msgstr "COPY %s, 行 %s: \"%s\""
 
-#: commands/copy.c:2363
+#: commands/copy.c:2692
 #, c-format
 msgid "cannot copy to view \"%s\""
 msgstr "不可以拷贝到视图 \"%s\""
 
-#: commands/copy.c:2365
+#: commands/copy.c:2694
 #, c-format
 msgid "To enable copying to a view, provide an INSTEAD OF INSERT trigger."
 msgstr "启用向视图拷贝操作, 要提供INSTEAD OF INSERT触发器."
 
-#: commands/copy.c:2369
+#: commands/copy.c:2698
 #, c-format
 msgid "cannot copy to materialized view \"%s\""
 msgstr "不可以拷贝到物化视图 \"%s\""
 
-#: commands/copy.c:2374
+#: commands/copy.c:2703
 #, c-format
 msgid "cannot copy to sequence \"%s\""
 msgstr "不可以拷贝到序列 \"%s\""
 
-#: commands/copy.c:2379
+#: commands/copy.c:2708
 #, c-format
 msgid "cannot copy to non-table relation \"%s\""
 msgstr "不可以拷贝到非表关系 \"%s\""
 
-#: commands/copy.c:2471
-#, c-format
-msgid "cannot perform FREEZE on a partitioned table"
+#: commands/copy.c:2796
+#, fuzzy, c-format
+#| msgid "cannot perform FREEZE on a partitioned table"
+msgid "cannot perform COPY FREEZE on a partitioned table"
 msgstr "在分区表上无法执行FREEZE操作"
 
-#: commands/copy.c:2486
-#, c-format
-msgid "cannot perform FREEZE because of prior transaction activity"
+#: commands/copy.c:2811
+#, fuzzy, c-format
+#| msgid "cannot perform FREEZE because of prior transaction activity"
+msgid "cannot perform COPY FREEZE because of prior transaction activity"
 msgstr "由于前一个事务是活动的,无法执行FREEZE操作"
 
-#: commands/copy.c:2492
-#, c-format
-msgid "cannot perform FREEZE because the table was not created or truncated in the current subtransaction"
+#: commands/copy.c:2817
+#, fuzzy, c-format
+#| msgid "cannot perform FREEZE because the table was not created or truncated in the current subtransaction"
+msgid "cannot perform COPY FREEZE because the table was not created or truncated in the current subtransaction"
 msgstr "当前子事务中,因为表未建或被截短,无法执行FREEZE操作"
 
-#: commands/copy.c:3199
+#: commands/copy.c:3547
 #, c-format
 msgid "COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \\copy."
 msgstr "COPY FROM指示PostgreSQL服务器进程读取文件。您可能需要客户端工具,如psql的\\copy"
 
-#: commands/copy.c:3232
+#: commands/copy.c:3575
 #, c-format
 msgid "COPY file signature not recognized"
 msgstr "文件签字不被认可"
 
-#: commands/copy.c:3237
+#: commands/copy.c:3580
 #, c-format
 msgid "invalid COPY file header (missing flags)"
 msgstr "无效的 COPY 文件头 (缺少标志)"
 
-#: commands/copy.c:3243
+#: commands/copy.c:3584
+#, fuzzy, c-format
+#| msgid "invalid COPY file header (wrong length)"
+msgid "invalid COPY file header (WITH OIDS)"
+msgstr "无效的 COPY 文件头 (错误长度)"
+
+#: commands/copy.c:3589
 #, c-format
 msgid "unrecognized critical flags in COPY file header"
 msgstr "在 COPY 文件头有不认可的危险标志"
 
-#: commands/copy.c:3249
+#: commands/copy.c:3595
 #, c-format
 msgid "invalid COPY file header (missing length)"
 msgstr "无效的 COPY 文件头 (缺少长度)"
 
-#: commands/copy.c:3256
+#: commands/copy.c:3602
 #, c-format
 msgid "invalid COPY file header (wrong length)"
 msgstr "无效的 COPY 文件头 (错误长度)"
 
-#: commands/copy.c:3387 commands/copy.c:4096 commands/copy.c:4326
+#: commands/copy.c:3721 commands/copy.c:4386 commands/copy.c:4616
 #, c-format
 msgid "extra data after last expected column"
 msgstr "最后期望字段后有额外数据"
 
-#: commands/copy.c:3397
-#, c-format
-msgid "missing data for OID column"
-msgstr "OID列丢失数据"
-
-#: commands/copy.c:3403
-#, c-format
-msgid "null OID in COPY data"
-msgstr "在 COPY 数据中没有 OID"
-
-#: commands/copy.c:3413 commands/copy.c:3537
-#, c-format
-msgid "invalid OID in COPY data"
-msgstr "在 COPY 数据中无效的 OID"
-
-#: commands/copy.c:3429
+#: commands/copy.c:3735
 #, c-format
 msgid "missing data for column \"%s\""
 msgstr "字段 \"%s\" 缺少数据"
 
-#: commands/copy.c:3512
+#: commands/copy.c:3818
 #, c-format
 msgid "received copy data after EOF marker"
 msgstr "在EOF标志后收到了复制数据"
 
-#: commands/copy.c:3519
+#: commands/copy.c:3825
 #, c-format
 msgid "row field count is %d, expected %d"
 msgstr "元组字段计数是 %d, 期望计数是 %d"
 
-#: commands/copy.c:3860 commands/copy.c:3877
+#: commands/copy.c:4145 commands/copy.c:4162
 #, c-format
 msgid "literal carriage return found in data"
 msgstr "在数据中找到了文字的回车换行符"
 
-#: commands/copy.c:3861 commands/copy.c:3878
+#: commands/copy.c:4146 commands/copy.c:4163
 #, c-format
 msgid "unquoted carriage return found in data"
 msgstr "在数据中找到了未用引号引起来的回车换行符"
 
-#: commands/copy.c:3863 commands/copy.c:3880
+#: commands/copy.c:4148 commands/copy.c:4165
 #, c-format
 msgid "Use \"\\r\" to represent carriage return."
 msgstr "使用\"\\r\"来代表换行回车"
 
-#: commands/copy.c:3864 commands/copy.c:3881
+#: commands/copy.c:4149 commands/copy.c:4166
 #, c-format
 msgid "Use quoted CSV field to represent carriage return."
 msgstr "使用以引号引起来的CSV字段代表换行回车."
 
-#: commands/copy.c:3893
+#: commands/copy.c:4178
 #, c-format
 msgid "literal newline found in data"
 msgstr "在数据中找到了文字形式的新行"
 
-#: commands/copy.c:3894
+#: commands/copy.c:4179
 #, c-format
 msgid "unquoted newline found in data"
 msgstr "在数据中找到了未用引号引起来的新行"
 
-#: commands/copy.c:3896
+#: commands/copy.c:4181
 #, c-format
 msgid "Use \"\\n\" to represent newline."
 msgstr "使用 \"\\n\" 表示新行."
 
-#: commands/copy.c:3897
+#: commands/copy.c:4182
 #, c-format
 msgid "Use quoted CSV field to represent newline."
 msgstr "使用用引号因起来的CSV字段来表示新行."
 
-#: commands/copy.c:3943 commands/copy.c:3979
+#: commands/copy.c:4228 commands/copy.c:4264
 #, c-format
 msgid "end-of-copy marker does not match previous newline style"
 msgstr "end-of-copy标示不匹配先前的新数据行的风格."
 
-#: commands/copy.c:3952 commands/copy.c:3968
+#: commands/copy.c:4237 commands/copy.c:4253
 #, c-format
 msgid "end-of-copy marker corrupt"
 msgstr "copy命令结束标记损坏"
 
-#: commands/copy.c:4410
+#: commands/copy.c:4700
 #, c-format
 msgid "unterminated CSV quoted field"
 msgstr "CSV 引号域没有结束"
 
-#: commands/copy.c:4487 commands/copy.c:4506
+#: commands/copy.c:4777 commands/copy.c:4796
 #, c-format
 msgid "unexpected EOF in COPY data"
 msgstr "在 COPY 数据中意外的 EOF"
 
-#: commands/copy.c:4496
+#: commands/copy.c:4786
 #, c-format
 msgid "invalid field size"
 msgstr "无效字段尺寸"
 
-#: commands/copy.c:4519
+#: commands/copy.c:4809
 #, c-format
 msgid "incorrect binary data format"
 msgstr "不正确的二进制数据格式"
 
-#: commands/copy.c:4831 commands/indexcmds.c:1473 commands/statscmds.c:206
-#: commands/tablecmds.c:1910 commands/tablecmds.c:2467
-#: commands/tablecmds.c:2848 parser/parse_relation.c:3288
-#: parser/parse_relation.c:3308 utils/adt/tsvector_op.c:2561
+#: commands/copy.c:5117
+#, fuzzy, c-format
+#| msgid "column \"%s\" has a type conflict"
+msgid "column \"%s\" is a generated column"
+msgstr "属性 \"%s\" 类型冲突"
+
+#: commands/copy.c:5119
+#, c-format
+msgid "Generated columns cannot be used in COPY."
+msgstr ""
+
+#: commands/copy.c:5134 commands/indexcmds.c:1582 commands/statscmds.c:210
+#: commands/tablecmds.c:2069 commands/tablecmds.c:2604
+#: commands/tablecmds.c:2983 parser/parse_relation.c:3353
+#: parser/parse_relation.c:3373 utils/adt/tsvector_op.c:2559
 #, c-format
 msgid "column \"%s\" does not exist"
 msgstr "字段 \"%s\" 不存在"
 
-#: commands/copy.c:4838 commands/tablecmds.c:1937 commands/trigger.c:913
-#: parser/parse_target.c:1046 parser/parse_target.c:1057
+#: commands/copy.c:5141 commands/tablecmds.c:2096 commands/trigger.c:937
+#: parser/parse_target.c:1047 parser/parse_target.c:1058
 #, c-format
 msgid "column \"%s\" specified more than once"
 msgstr "字段 \"%s\" 被指定多次"
 
-#: commands/createas.c:213 commands/createas.c:509
+#: commands/createas.c:216 commands/createas.c:499
 #, c-format
 msgid "too many column names were specified"
 msgstr "指定了太多的列名"
 
-#: commands/createas.c:550
+#: commands/createas.c:541
 #, c-format
 msgid "policies not yet implemented for this command"
 msgstr "还没有为该命令实现策略"
 
-#: commands/dbcommands.c:235
+#: commands/dbcommands.c:236
 #, c-format
 msgid "LOCATION is not supported anymore"
 msgstr "不再支持 LOCATION"
 
-#: commands/dbcommands.c:236
+#: commands/dbcommands.c:237
 #, c-format
 msgid "Consider using tablespaces instead."
 msgstr "考虑使用表空间代替."
 
-#: commands/dbcommands.c:262 utils/adt/ascii.c:145
+#: commands/dbcommands.c:263 utils/adt/ascii.c:145
 #, c-format
 msgid "%d is not a valid encoding code"
 msgstr "%d 是一个无效编码"
 
-#: commands/dbcommands.c:273 utils/adt/ascii.c:127
+#: commands/dbcommands.c:274 utils/adt/ascii.c:127
 #, c-format
 msgid "%s is not a valid encoding name"
 msgstr "%s 是一个无效编码名字"
 
 # fe-connect.c:2558
-#: commands/dbcommands.c:292 commands/dbcommands.c:1494 commands/user.c:276
-#: commands/user.c:664
+#: commands/dbcommands.c:293 commands/dbcommands.c:1496 commands/user.c:275
+#: commands/user.c:671
 #, c-format
 msgid "invalid connection limit: %d"
 msgstr "无效的连接限制:%d"
 
-#: commands/dbcommands.c:311
+#: commands/dbcommands.c:312
 #, c-format
 msgid "permission denied to create database"
 msgstr "创建数据库权限不够"
 
-#: commands/dbcommands.c:334
+#: commands/dbcommands.c:335
 #, c-format
 msgid "template database \"%s\" does not exist"
 msgstr "template 数据库 \"%s\" 不存在"
 
-#: commands/dbcommands.c:346
+#: commands/dbcommands.c:347
 #, c-format
 msgid "permission denied to copy database \"%s\""
 msgstr "拷贝数据库 \"%s\" 权限不够"
 
-#: commands/dbcommands.c:362
+#: commands/dbcommands.c:363
 #, c-format
 msgid "invalid server encoding %d"
 msgstr "无效服务器编码 %d"
 
-#: commands/dbcommands.c:368 commands/dbcommands.c:373
+#: commands/dbcommands.c:369 commands/dbcommands.c:374
 #, c-format
 msgid "invalid locale name: \"%s\""
 msgstr "无效的语言环境名称: \"%s\""
 
-#: commands/dbcommands.c:393
+#: commands/dbcommands.c:394
 #, c-format
 msgid "new encoding (%s) is incompatible with the encoding of the template database (%s)"
 msgstr "新的编码(%s)与模板数据库(%s)的编码不兼容"
 
-#: commands/dbcommands.c:396
+#: commands/dbcommands.c:397
 #, c-format
 msgid "Use the same encoding as in the template database, or use template0 as template."
 msgstr "在模版数据库中使用同一编码,或者使用template0作为模版."
 
-#: commands/dbcommands.c:401
+#: commands/dbcommands.c:402
 #, c-format
 msgid "new collation (%s) is incompatible with the collation of the template database (%s)"
 msgstr "新的排序规则(%s)与模版数据库(%s)中的排序规则不兼容"
 
-#: commands/dbcommands.c:403
+#: commands/dbcommands.c:404
 #, c-format
 msgid "Use the same collation as in the template database, or use template0 as template."
 msgstr "在模版数据库中使用同一排序规则,或者使用template0作为模版."
 
-#: commands/dbcommands.c:408
+#: commands/dbcommands.c:409
 #, c-format
 msgid "new LC_CTYPE (%s) is incompatible with the LC_CTYPE of the template database (%s)"
 msgstr "新的LC_CTYPE (%s)与模版数据库(%s)中的LC_CTYPE不兼容."
 
-#: commands/dbcommands.c:410
+#: commands/dbcommands.c:411
 #, c-format
 msgid "Use the same LC_CTYPE as in the template database, or use template0 as template."
 msgstr "在模版数据库中使用同一LC_CTYPE,或者使用template0作为模版."
 
-#: commands/dbcommands.c:432 commands/dbcommands.c:1146
+#: commands/dbcommands.c:433 commands/dbcommands.c:1148
 #, c-format
 msgid "pg_global cannot be used as default tablespace"
 msgstr "pg_global不能作为缺省表空间使用"
 
-#: commands/dbcommands.c:458
+#: commands/dbcommands.c:459
 #, c-format
 msgid "cannot assign new default tablespace \"%s\""
 msgstr "无法分配新的默认表空间 \"%s\""
 
-#: commands/dbcommands.c:460
+#: commands/dbcommands.c:461
 #, c-format
 msgid "There is a conflict because database \"%s\" already has some tables in this tablespace."
 msgstr "此处有冲突, 因为数据库 \"%s\" 已经有一些表在此表空间中."
 
-#: commands/dbcommands.c:480 commands/dbcommands.c:1016
+#: commands/dbcommands.c:481 commands/dbcommands.c:1018
 #, c-format
 msgid "database \"%s\" already exists"
 msgstr "数据库 \"%s\" 已经存在"
 
-#: commands/dbcommands.c:494
+#: commands/dbcommands.c:495
 #, c-format
 msgid "source database \"%s\" is being accessed by other users"
 msgstr "其他用户正在使用源数据库 \"%s\""
 
-#: commands/dbcommands.c:736 commands/dbcommands.c:751
+#: commands/dbcommands.c:738 commands/dbcommands.c:753
 #, c-format
 msgid "encoding \"%s\" does not match locale \"%s\""
 msgstr "编码 \"%s\"与本地化环境\"%s\"不匹配"
 
-#: commands/dbcommands.c:739
+#: commands/dbcommands.c:741
 #, c-format
 msgid "The chosen LC_CTYPE setting requires encoding \"%s\"."
 msgstr "所选择的LC_CTYPE设置需要编码\"%s\"."
 
-#: commands/dbcommands.c:754
+#: commands/dbcommands.c:756
 #, c-format
 msgid "The chosen LC_COLLATE setting requires encoding \"%s\"."
 msgstr "所选择的 LC_COLLATE设置需要编码\"%s\"."
 
-#: commands/dbcommands.c:815
+#: commands/dbcommands.c:817
 #, c-format
 msgid "database \"%s\" does not exist, skipping"
 msgstr "数据库 \"%s\" 不存在,跳过"
 
-#: commands/dbcommands.c:839
+#: commands/dbcommands.c:841
 #, c-format
 msgid "cannot drop a template database"
 msgstr "无法删除模板数据库"
 
-#: commands/dbcommands.c:845
+#: commands/dbcommands.c:847
 #, c-format
 msgid "cannot drop the currently open database"
 msgstr "无法删除当前使用的数据库"
 
-#: commands/dbcommands.c:858
+#: commands/dbcommands.c:860
 #, c-format
 msgid "database \"%s\" is used by an active logical replication slot"
 msgstr "数据库\"%s\"被一个活动的逻辑复制槽使用"
 
-#: commands/dbcommands.c:860
+#: commands/dbcommands.c:862
 #, c-format
 msgid "There is %d active slot."
 msgid_plural "There are %d active slots."
 msgstr[0] "有%d个活动插槽."
 
-#: commands/dbcommands.c:874 commands/dbcommands.c:1038
-#: commands/dbcommands.c:1168
+#: commands/dbcommands.c:876 commands/dbcommands.c:1040
+#: commands/dbcommands.c:1170
 #, c-format
 msgid "database \"%s\" is being accessed by other users"
 msgstr "其他用户正在使用数据库 \"%s\""
 
-#: commands/dbcommands.c:887
+#: commands/dbcommands.c:889
 #, c-format
 msgid "database \"%s\" is being used by logical replication subscription"
 msgstr "逻辑复制订阅正在使用数据库\"%s\""
 
-#: commands/dbcommands.c:889
+#: commands/dbcommands.c:891
 #, c-format
 msgid "There is %d subscription."
 msgid_plural "There are %d subscriptions."
 msgstr[0] "有%d个订阅."
 
-#: commands/dbcommands.c:1007
+#: commands/dbcommands.c:1009
 #, c-format
 msgid "permission denied to rename database"
 msgstr "重命名数据库权限不够"
 
-#: commands/dbcommands.c:1027
+#: commands/dbcommands.c:1029
 #, c-format
 msgid "current database cannot be renamed"
 msgstr "不能对当前数据库进行改名"
 
-#: commands/dbcommands.c:1124
+#: commands/dbcommands.c:1126
 #, c-format
 msgid "cannot change the tablespace of the currently open database"
 msgstr "无法改变当前已打开数据库的表空间"
 
-#: commands/dbcommands.c:1227
+#: commands/dbcommands.c:1229
 #, c-format
 msgid "some relations of database \"%s\" are already in tablespace \"%s\""
 msgstr "在表空间 \"%2$s\"中已经存储了数据库\"%1$s\"中的一些关系了"
 
-#: commands/dbcommands.c:1229
+#: commands/dbcommands.c:1231
 #, c-format
 msgid "You must move them back to the database's default tablespace before using this command."
 msgstr "在使用这条命令前,您必须把它们移动回数据库的缺省表空间"
 
-#: commands/dbcommands.c:1355 commands/dbcommands.c:1900
-#: commands/dbcommands.c:2104 commands/dbcommands.c:2159
-#: commands/tablespace.c:606
+#: commands/dbcommands.c:1356 commands/dbcommands.c:1902
+#: commands/dbcommands.c:2107 commands/dbcommands.c:2162
+#: commands/tablespace.c:611
 #, c-format
 msgid "some useless files may be left behind in old database directory \"%s\""
 msgstr "在原先的数据库目录\"%s\"可能留下了一些无用的文件"
 
-#: commands/dbcommands.c:1475
+#: commands/dbcommands.c:1477
 #, c-format
 msgid "option \"%s\" cannot be specified with other options"
 msgstr "选项\"%s\"不能和其他选项一起指定"
 
 # command.c:981
-#: commands/dbcommands.c:1530
+#: commands/dbcommands.c:1533
 #, c-format
 msgid "cannot disallow connections for current database"
 msgstr "无法禁止到当前数据库的连接"
 
-#: commands/dbcommands.c:1667
+#: commands/dbcommands.c:1669
 #, c-format
 msgid "permission denied to change owner of database"
 msgstr "改变数据库属主的权限不够"
 
-#: commands/dbcommands.c:1987
+#: commands/dbcommands.c:1990
 #, c-format
 msgid "There are %d other session(s) and %d prepared transaction(s) using the database."
 msgstr "这里有%d个其它的会话和%d个已准备好的事务正在使用数据库."
 
-#: commands/dbcommands.c:1990
+#: commands/dbcommands.c:1993
 #, c-format
 msgid "There is %d other session using the database."
 msgid_plural "There are %d other sessions using the database."
 msgstr[0] "那里有%d个其它会话正在使用数据库."
 
-#: commands/dbcommands.c:1995
+#: commands/dbcommands.c:1998
 #, c-format
 msgid "There is %d prepared transaction using the database."
 msgid_plural "There are %d prepared transactions using the database."
@@ -6404,8 +6495,8 @@ msgstr "%s 的参数必需是一个类型名"
 msgid "invalid argument for %s: \"%s\""
 msgstr "%s 的无效参数: \"%s\""
 
-#: commands/dropcmds.c:99 commands/functioncmds.c:1212
-#: utils/adt/ruleutils.c:2564
+#: commands/dropcmds.c:99 commands/functioncmds.c:1272
+#: utils/adt/ruleutils.c:2609
 #, c-format
 msgid "\"%s\" is an aggregate function"
 msgstr "\"%s\" 是一个聚合函数"
@@ -6415,19 +6506,19 @@ msgstr "\"%s\" 是一个聚合函数"
 msgid "Use DROP AGGREGATE to drop aggregate functions."
 msgstr "使用 DROP AGGREGATE 删除一个聚合函数."
 
-#: commands/dropcmds.c:157 commands/sequence.c:440 commands/tablecmds.c:2932
-#: commands/tablecmds.c:3090 commands/tablecmds.c:3133
-#: commands/tablecmds.c:13424 tcop/utility.c:1163
+#: commands/dropcmds.c:157 commands/sequence.c:447 commands/tablecmds.c:3067
+#: commands/tablecmds.c:3225 commands/tablecmds.c:3270
+#: commands/tablecmds.c:14087 tcop/utility.c:1174
 #, c-format
 msgid "relation \"%s\" does not exist, skipping"
 msgstr "关系 \"%s\" 不存在,忽略"
 
-#: commands/dropcmds.c:187 commands/dropcmds.c:286 commands/tablecmds.c:1022
+#: commands/dropcmds.c:187 commands/dropcmds.c:286 commands/tablecmds.c:1142
 #, c-format
 msgid "schema \"%s\" does not exist, skipping"
 msgstr "模式 \"%s\" 不存在"
 
-#: commands/dropcmds.c:227 commands/dropcmds.c:266 commands/tablecmds.c:254
+#: commands/dropcmds.c:227 commands/dropcmds.c:266 commands/tablecmds.c:253
 #, c-format
 msgid "type \"%s\" does not exist, skipping"
 msgstr "类型 \"%s\" 不存在"
@@ -6542,7 +6633,7 @@ msgstr "关系 \"%2$s\"的规则\"%1$s\"不存在,跳过"
 msgid "foreign-data wrapper \"%s\" does not exist, skipping"
 msgstr "外部数据封装器\"%s\" 不存在,跳过"
 
-#: commands/dropcmds.c:452
+#: commands/dropcmds.c:452 commands/foreigncmds.c:1400
 #, c-format
 msgid "server \"%s\" does not exist, skipping"
 msgstr "服务器 \"%s\"不存在,跳过"
@@ -6562,1010 +6653,1076 @@ msgstr "访问方法\"%2$s\"的操作符表 \"%1$s\" 不存在, 跳过"
 msgid "publication \"%s\" does not exist, skipping"
 msgstr "发布 \"%s\" 不存在,跳过"
 
-#: commands/event_trigger.c:187
+#: commands/event_trigger.c:188
 #, c-format
 msgid "permission denied to create event trigger \"%s\""
 msgstr "创建事件触发器 \"%s\" 权限不够"
 
-#: commands/event_trigger.c:189
+#: commands/event_trigger.c:190
 #, c-format
 msgid "Must be superuser to create an event trigger."
 msgstr "只有超级用户能创建事件触发器."
 
-#: commands/event_trigger.c:198
+#: commands/event_trigger.c:199
 #, c-format
 msgid "unrecognized event name \"%s\""
 msgstr "无法识别的事件名:\"%s\""
 
-#: commands/event_trigger.c:215
+#: commands/event_trigger.c:216
 #, c-format
 msgid "unrecognized filter variable \"%s\""
 msgstr "不可识别的过滤器变量 \"%s\""
 
-#: commands/event_trigger.c:270
+#: commands/event_trigger.c:271
 #, 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:276 commands/event_trigger.c:346
+#: commands/event_trigger.c:277 commands/event_trigger.c:347
 #, c-format
 msgid "event triggers are not supported for %s"
 msgstr "事件触发器在%s中不被支持"
 
-#: commands/event_trigger.c:369
+#: commands/event_trigger.c:370
 #, c-format
 msgid "filter variable \"%s\" specified more than once"
 msgstr "过滤器变量 \"%s\" 被指定多次"
 
-#: commands/event_trigger.c:516 commands/event_trigger.c:559
-#: commands/event_trigger.c:651
+#: commands/event_trigger.c:520 commands/event_trigger.c:564
+#: commands/event_trigger.c:658
 #, c-format
 msgid "event trigger \"%s\" does not exist"
 msgstr "过滤器变量\"%s\" 不存在"
 
-#: commands/event_trigger.c:620
+#: commands/event_trigger.c:626
 #, c-format
 msgid "permission denied to change owner of event trigger \"%s\""
 msgstr "修改事件触发器的 \"%s\" 的属主权限不够"
 
-#: commands/event_trigger.c:622
+#: commands/event_trigger.c:628
 #, c-format
 msgid "The owner of an event trigger must be a superuser."
 msgstr "事件触发器的属主必须是超级用户."
 
-#: commands/event_trigger.c:1457
+#: commands/event_trigger.c:1466
 #, c-format
 msgid "%s can only be called in a sql_drop event trigger function"
 msgstr "%s只能在sql_drop事件触发器函数中被调用"
 
-#: commands/event_trigger.c:1577 commands/event_trigger.c:1598
+#: commands/event_trigger.c:1586 commands/event_trigger.c:1607
 #, c-format
 msgid "%s can only be called in a table_rewrite event trigger function"
 msgstr "%s只能在table_rewrite事件触发器函数中被调用"
 
-#: commands/event_trigger.c:2009
+#: commands/event_trigger.c:2018
 #, c-format
 msgid "%s can only be called in an event trigger function"
 msgstr "%s只能在事件触发器函数中被调用"
 
-#: commands/explain.c:192
+#: commands/explain.c:193
 #, c-format
 msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\""
 msgstr "用于EXPLAIN选项\"%s\"的值无效:\"%s\""
 
-#: commands/explain.c:199
+#: commands/explain.c:200
 #, c-format
 msgid "unrecognized EXPLAIN option \"%s\""
 msgstr "无法识别的EXPLAIN选项\"%s\""
 
-#: commands/explain.c:207
+#: commands/explain.c:208
 #, c-format
 msgid "EXPLAIN option BUFFERS requires ANALYZE"
 msgstr "在EXPLAIN命令中BUFFERS和ANALYZE选项需要一起使用"
 
-#: commands/explain.c:216
+#: commands/explain.c:217
 #, c-format
 msgid "EXPLAIN option TIMING requires ANALYZE"
 msgstr "在EXPLAIN命令中的TIMING选项需要ANALYZE"
 
-#: commands/extension.c:168 commands/extension.c:2914
+#: commands/extension.c:171 commands/extension.c:2918
 #, c-format
 msgid "extension \"%s\" does not exist"
 msgstr "扩展 \"%s\" 不存在"
 
-#: commands/extension.c:267 commands/extension.c:276 commands/extension.c:288
-#: commands/extension.c:298
+#: commands/extension.c:270 commands/extension.c:279 commands/extension.c:291
+#: commands/extension.c:301
 #, c-format
 msgid "invalid extension name: \"%s\""
 msgstr "无效扩展名: \"%s\""
 
-#: commands/extension.c:268
+#: commands/extension.c:271
 #, c-format
 msgid "Extension names must not be empty."
 msgstr "扩展名不能为空."
 
-#: commands/extension.c:277
+#: commands/extension.c:280
 #, c-format
 msgid "Extension names must not contain \"--\"."
 msgstr "扩展名不能包含\"--\"."
 
-#: commands/extension.c:289
+#: commands/extension.c:292
 #, c-format
 msgid "Extension names must not begin or end with \"-\"."
 msgstr "扩展名不能以 \"-\"作为开始或结束符."
 
-#: commands/extension.c:299
+#: commands/extension.c:302
 #, c-format
 msgid "Extension names must not contain directory separator characters."
 msgstr "扩展名不能包含目录分隔符."
 
-#: commands/extension.c:314 commands/extension.c:323 commands/extension.c:332
-#: commands/extension.c:342
+#: commands/extension.c:317 commands/extension.c:326 commands/extension.c:335
+#: commands/extension.c:345
 #, c-format
 msgid "invalid extension version name: \"%s\""
 msgstr "无效的扩展版本名: \"%s\""
 
-#: commands/extension.c:315
+#: commands/extension.c:318
 #, c-format
 msgid "Version names must not be empty."
 msgstr "版本名不能为空."
 
-#: commands/extension.c:324
+#: commands/extension.c:327
 #, c-format
 msgid "Version names must not contain \"--\"."
 msgstr "版本名不能包含\"--\"."
 
-#: commands/extension.c:333
+#: commands/extension.c:336
 #, c-format
 msgid "Version names must not begin or end with \"-\"."
 msgstr "版本名不能以 \"-\"作为开始或结束符."
 
-#: commands/extension.c:343
+#: commands/extension.c:346
 #, c-format
 msgid "Version names must not contain directory separator characters."
 msgstr "版本名不能包含目录分隔符."
 
-#: commands/extension.c:493
+#: commands/extension.c:496
 #, c-format
 msgid "could not open extension control file \"%s\": %m"
 msgstr "无法打开扩展控制文件 \"%s\": %m"
 
-#: commands/extension.c:515 commands/extension.c:525
+#: commands/extension.c:518 commands/extension.c:528
 #, c-format
 msgid "parameter \"%s\" cannot be set in a secondary extension control file"
 msgstr "第二扩展控制文件中, 无法设置参数 \"%s\""
 
-#: commands/extension.c:564
+#: commands/extension.c:550 commands/extension.c:558 utils/misc/guc.c:6554
+#, c-format
+msgid "parameter \"%s\" requires a Boolean value"
+msgstr "参数 \"%s\" 需要一个布尔值"
+
+#: commands/extension.c:567
 #, c-format
 msgid "\"%s\" is not a valid encoding name"
 msgstr "\"%s\" 是一个无效编码名"
 
-#: commands/extension.c:578
+#: commands/extension.c:581
 #, c-format
 msgid "parameter \"%s\" must be a list of extension names"
 msgstr "参数 \"%s\"必须是一个包含扩展名的列表"
 
-#: commands/extension.c:585
+#: commands/extension.c:588
 #, c-format
 msgid "unrecognized parameter \"%s\" in file \"%s\""
 msgstr "文件\"%2$s\"中出现未识别的参数 \"%1$s\""
 
-#: commands/extension.c:594
+#: commands/extension.c:597
 #, c-format
 msgid "parameter \"schema\" cannot be specified when \"relocatable\" is true"
 msgstr "当\"relocatable\"为真时,参数\"schema\"不允许被指定"
 
-#: commands/extension.c:761
+#: commands/extension.c:762
 #, c-format
 msgid "transaction control statements are not allowed within an extension script"
 msgstr "扩展脚本中不允许出现事务控制语句"
 
-#: commands/extension.c:807
+#: commands/extension.c:808
 #, c-format
 msgid "permission denied to create extension \"%s\""
 msgstr "创建扩展 \"%s\" 权限不够"
 
-#: commands/extension.c:809
+#: commands/extension.c:810
 #, c-format
 msgid "Must be superuser to create this extension."
 msgstr "只有超级用户能创建扩展."
 
-#: commands/extension.c:813
+#: commands/extension.c:814
 #, c-format
 msgid "permission denied to update extension \"%s\""
 msgstr "更新扩展 \"%s\" 权限不够"
 
-#: commands/extension.c:815
+#: commands/extension.c:816
 #, c-format
 msgid "Must be superuser to update this extension."
 msgstr "只有超级用户能更新扩展."
 
-#: commands/extension.c:1097
+#: commands/extension.c:1100
 #, c-format
 msgid "extension \"%s\" has no update path from version \"%s\" to version \"%s\""
 msgstr "扩展 \"%s\" 没有从版本\"%s\"到版本\"%s\"的更新路径"
 
-#: commands/extension.c:1304 commands/extension.c:2975
+#: commands/extension.c:1307 commands/extension.c:2979
 #, c-format
 msgid "version to install must be specified"
 msgstr "必须指定安装版本"
 
-#: commands/extension.c:1326
+#: commands/extension.c:1329
 #, c-format
 msgid "FROM version must be different from installation target version \"%s\""
 msgstr "FROM 版本与安装的目标版本 \"%s\" 必须不同"
 
-#: commands/extension.c:1391
+#: commands/extension.c:1394
 #, c-format
 msgid "extension \"%s\" has no installation script nor update path for version \"%s\""
 msgstr "扩展 \"%s\" 没有安装脚本,也没有版本\"%s\"的更新路径"
 
-#: commands/extension.c:1426
+#: commands/extension.c:1429
 #, c-format
 msgid "extension \"%s\" must be installed in schema \"%s\""
 msgstr "扩展\"%s\"已经安装到模式\"%s\"中了"
 
-#: commands/extension.c:1586
+#: commands/extension.c:1589
 #, c-format
 msgid "cyclic dependency detected between extensions \"%s\" and \"%s\""
 msgstr "在扩展 \"%s\" 和 \"%s\" 之间检测到循环依赖"
 
-#: commands/extension.c:1591
+#: commands/extension.c:1594
 #, c-format
 msgid "installing required extension \"%s\""
 msgstr "正在安装所需的扩展 \"%s\""
 
-#: commands/extension.c:1615
+#: commands/extension.c:1618
 #, c-format
 msgid "required extension \"%s\" is not installed"
 msgstr "所需要的扩展\"%s\"没被安装"
 
-#: commands/extension.c:1618
+#: commands/extension.c:1621
 #, c-format
 msgid "Use CREATE EXTENSION ... CASCADE to install required extensions too."
 msgstr "请使用 CREATE EXTENSION ... CASCADE 安装所需的扩展。"
 
-#: commands/extension.c:1655
+#: commands/extension.c:1658
 #, c-format
 msgid "extension \"%s\" already exists, skipping"
 msgstr "扩展 \"%s\" 已经存在,跳过"
 
-#: commands/extension.c:1662
+#: commands/extension.c:1665
 #, c-format
 msgid "extension \"%s\" already exists"
 msgstr "扩展 \"%s\" 已经存在"
 
-#: commands/extension.c:1673
+#: commands/extension.c:1676
 #, c-format
 msgid "nested CREATE EXTENSION is not supported"
 msgstr "不支持嵌套的CREATE EXTENSION"
 
-#: commands/extension.c:1854
+#: commands/extension.c:1860
 #, c-format
 msgid "cannot drop extension \"%s\" because it is being modified"
 msgstr "无法删除扩展\"%s\",因为它正被修改中"
 
-#: commands/extension.c:2356
-#, c-format
-msgid "pg_extension_config_dump() can only be called from an SQL script executed by CREATE EXTENSION"
+#: commands/extension.c:2362
+#, fuzzy, c-format
+#| msgid "pg_extension_config_dump() can only be called from an SQL script executed by CREATE EXTENSION"
+msgid "%s can only be called from an SQL script executed by CREATE EXTENSION"
 msgstr "pg_extension_config_dump() 只能在执行 CREATE EXTENSION的SQL脚本里调用"
 
-#: commands/extension.c:2368
+#: commands/extension.c:2374
 #, c-format
 msgid "OID %u does not refer to a table"
 msgstr "OID %u没有引用任何表"
 
-#: commands/extension.c:2373
+#: commands/extension.c:2379
 #, c-format
 msgid "table \"%s\" is not a member of the extension being created"
 msgstr "表\"%s\"不是被创建的任何一个扩展的成员"
 
-#: commands/extension.c:2729
+#: commands/extension.c:2733
 #, c-format
 msgid "cannot move extension \"%s\" into schema \"%s\" because the extension contains the schema"
 msgstr "不能将扩展 \"%s\" 转移到模式 \"%s\" 里,因为该扩展已经拥有该模式"
 
-#: commands/extension.c:2770 commands/extension.c:2833
+#: commands/extension.c:2774 commands/extension.c:2837
 #, c-format
 msgid "extension \"%s\" does not support SET SCHEMA"
 msgstr "扩展 \"%s\" 不支持SET SCHEMA操作"
 
-#: commands/extension.c:2835
+#: commands/extension.c:2839
 #, c-format
 msgid "%s is not in the extension's schema \"%s\""
 msgstr "扩展模式\"%2$s\"中不存在%1$s"
 
-#: commands/extension.c:2894
+#: commands/extension.c:2898
 #, c-format
 msgid "nested ALTER EXTENSION is not supported"
 msgstr "不支持使用嵌套的ALTER  EXTENSION"
 
-#: commands/extension.c:2986
+#: commands/extension.c:2990
 #, c-format
 msgid "version \"%s\" of extension \"%s\" is already installed"
 msgstr "扩展\"%2$s\"的版本\"%1$s\"已经安装"
 
-#: commands/extension.c:3237
+#: commands/extension.c:3241
 #, c-format
 msgid "cannot add schema \"%s\" to extension \"%s\" because the schema contains the extension"
 msgstr "无法为扩展\"%2$s\"添加模式\"%1$s\",因为该模式已经包含此扩展"
 
-#: commands/extension.c:3265
+#: commands/extension.c:3269
 #, c-format
 msgid "%s is not a member of extension \"%s\""
 msgstr "%s不是扩展的成员\"%s\""
 
-#: commands/extension.c:3331
+#: commands/extension.c:3335
 #, c-format
 msgid "file \"%s\" is too large"
 msgstr "文件\"%s\"太大"
 
-#: commands/foreigncmds.c:150 commands/foreigncmds.c:159
+#: commands/foreigncmds.c:151 commands/foreigncmds.c:160
 #, c-format
 msgid "option \"%s\" not found"
 msgstr "没有找到选项 \"%s\" "
 
-#: commands/foreigncmds.c:169
+#: commands/foreigncmds.c:170
 #, c-format
 msgid "option \"%s\" provided more than once"
 msgstr "选项 \"%s\" 被提供了多次"
 
-#: commands/foreigncmds.c:223 commands/foreigncmds.c:231
+#: commands/foreigncmds.c:224 commands/foreigncmds.c:232
 #, c-format
 msgid "permission denied to change owner of foreign-data wrapper \"%s\""
 msgstr "修改外部数据封装器的 \"%s\" 的属主权限不够"
 
-#: commands/foreigncmds.c:225
+#: commands/foreigncmds.c:226
 #, c-format
 msgid "Must be superuser to change owner of a foreign-data wrapper."
 msgstr "只有超级用户可以更改外部数据封装器的属主"
 
-#: commands/foreigncmds.c:233
+#: commands/foreigncmds.c:234
 #, c-format
 msgid "The owner of a foreign-data wrapper must be a superuser."
 msgstr "外部数据封装器的属主必须是超级用户."
 
-#: commands/foreigncmds.c:291 commands/foreigncmds.c:706 foreign/foreign.c:667
+#: commands/foreigncmds.c:294 commands/foreigncmds.c:715 foreign/foreign.c:701
 #, c-format
 msgid "foreign-data wrapper \"%s\" does not exist"
 msgstr "外部数据封装器 \"%s\" 不存在"
 
-#: commands/foreigncmds.c:582
+#: commands/foreigncmds.c:588
 #, c-format
 msgid "permission denied to create foreign-data wrapper \"%s\""
 msgstr "创建外部数据封装器\"%s\"失败"
 
-#: commands/foreigncmds.c:584
+#: commands/foreigncmds.c:590
 #, c-format
 msgid "Must be superuser to create a foreign-data wrapper."
 msgstr "只有超级用户能创建外部数据封装器"
 
-#: commands/foreigncmds.c:696
+#: commands/foreigncmds.c:705
 #, c-format
 msgid "permission denied to alter foreign-data wrapper \"%s\""
 msgstr "不允许修改外部数据封装器\"%s\""
 
-#: commands/foreigncmds.c:698
+#: commands/foreigncmds.c:707
 #, c-format
 msgid "Must be superuser to alter a foreign-data wrapper."
 msgstr "只有超级用户才能修改一个外部数据封装器."
 
-#: commands/foreigncmds.c:729
+#: commands/foreigncmds.c:738
 #, c-format
 msgid "changing the foreign-data wrapper handler can change behavior of existing foreign tables"
 msgstr "改变外部数据封装器可能会改变现存的外部表的行为"
 
-#: commands/foreigncmds.c:744
+#: commands/foreigncmds.c:753
 #, c-format
 msgid "changing the foreign-data wrapper validator can cause the options for dependent objects to become invalid"
 msgstr "改变外部数据封装器的验证能够使所它依赖对象的选项变为无效"
 
-#: commands/foreigncmds.c:890
+#: commands/foreigncmds.c:899
 #, c-format
 msgid "server \"%s\" already exists, skipping"
 msgstr "服务 \"%s\" 已存在, 跳过"
 
-#: commands/foreigncmds.c:1175
-#, c-format
-msgid "user mapping for \"%s\" already exists for server %s, skipping"
+#: commands/foreigncmds.c:1187
+#, fuzzy, c-format
+#| msgid "user mapping for \"%s\" already exists for server %s, skipping"
+msgid "user mapping for \"%s\" already exists for server \"%s\", skipping"
 msgstr "对于服务器%2$s,用户映射\"%1$s\"已存在, 跳过"
 
-#: commands/foreigncmds.c:1185
-#, c-format
-msgid "user mapping for \"%s\" already exists for server %s"
+#: commands/foreigncmds.c:1197
+#, fuzzy, c-format
+#| msgid "user mapping for \"%s\" already exists for server %s"
+msgid "user mapping for \"%s\" already exists for server \"%s\""
 msgstr "对于服务器%2$s,用户映射\"%1$s\"已存在 "
 
-#: commands/foreigncmds.c:1282 commands/foreigncmds.c:1397
-#, c-format
-msgid "user mapping for \"%s\" does not exist for the server"
+#: commands/foreigncmds.c:1297 commands/foreigncmds.c:1414
+#, fuzzy, c-format
+#| msgid "user mapping for \"%s\" does not exist for the server"
+msgid "user mapping for \"%s\" does not exist for server \"%s\""
 msgstr "对于服务器来说,用户映射\"%s\"不存在"
 
-#: commands/foreigncmds.c:1384
-#, c-format
-msgid "server does not exist, skipping"
-msgstr "服务器不存在,跳过"
-
-#: commands/foreigncmds.c:1402
-#, c-format
-msgid "user mapping for \"%s\" does not exist for the server, skipping"
+#: commands/foreigncmds.c:1419
+#, fuzzy, c-format
+#| msgid "user mapping for \"%s\" does not exist for the server, skipping"
+msgid "user mapping for \"%s\" does not exist for server \"%s\", skipping"
 msgstr "用户映射\"%s\"对于服务器来说不存在,跳过"
 
-#: commands/foreigncmds.c:1553 foreign/foreign.c:357
+#: commands/foreigncmds.c:1570 foreign/foreign.c:389
 #, c-format
 msgid "foreign-data wrapper \"%s\" has no handler"
 msgstr "外部数据封装器 \"%s\"没有处理函数"
 
-#: commands/foreigncmds.c:1559
+#: commands/foreigncmds.c:1576
 #, c-format
 msgid "foreign-data wrapper \"%s\" does not support IMPORT FOREIGN SCHEMA"
 msgstr "外部数据包装器\"%s\"不支持IMPORT FOREIGN SCHEMA"
 
-#: commands/foreigncmds.c:1662
+#: commands/foreigncmds.c:1679
 #, c-format
 msgid "importing foreign table \"%s\""
 msgstr "导入外部表\"%s\""
 
-#: commands/functioncmds.c:104
+#: commands/functioncmds.c:103
 #, c-format
 msgid "SQL function cannot return shell type %s"
 msgstr "SQL 函数不能返回 shell 类型 %s"
 
-#: commands/functioncmds.c:109
+#: commands/functioncmds.c:108
 #, c-format
 msgid "return type %s is only a shell"
 msgstr "返回类型 %s 只是一个 shell"
 
-#: commands/functioncmds.c:139 parser/parse_type.c:337
+#: commands/functioncmds.c:138 parser/parse_type.c:337
 #, c-format
 msgid "type modifier cannot be specified for shell type \"%s\""
 msgstr "不能为shell类型\"%s\"指定类型修改器"
 
-#: commands/functioncmds.c:145
+#: commands/functioncmds.c:144
 #, c-format
 msgid "type \"%s\" is not yet defined"
 msgstr "类型 \"%s\" 仍没被定义"
 
-#: commands/functioncmds.c:146
+#: commands/functioncmds.c:145
 #, c-format
 msgid "Creating a shell type definition."
 msgstr "创建一个 shell 类型定义."
 
-#: commands/functioncmds.c:238
+#: commands/functioncmds.c:237
 #, c-format
 msgid "SQL function cannot accept shell type %s"
 msgstr "SQL 函数不能接收 shell 类型 %s"
 
-#: commands/functioncmds.c:244
+#: commands/functioncmds.c:243
 #, c-format
 msgid "aggregate cannot accept shell type %s"
 msgstr "聚集函数不能接收 shell 类型 %s"
 
-#: commands/functioncmds.c:249
+#: commands/functioncmds.c:248
 #, c-format
 msgid "argument type %s is only a shell"
 msgstr "参数类型 %s 只是一个 shell"
 
-#: commands/functioncmds.c:259
+#: commands/functioncmds.c:258
 #, c-format
 msgid "type %s does not exist"
 msgstr "类型 %s 不存在"
 
-#: commands/functioncmds.c:273
+#: commands/functioncmds.c:272
 #, c-format
 msgid "aggregates cannot accept set arguments"
 msgstr "聚合函数不能接受集合类型参数"
 
-#: commands/functioncmds.c:277
+#: commands/functioncmds.c:276
 #, c-format
 msgid "procedures cannot accept set arguments"
 msgstr "过程不能接受集合类型参数"
 
-#: commands/functioncmds.c:281
+#: commands/functioncmds.c:280
 #, c-format
 msgid "functions cannot accept set arguments"
 msgstr "函数不能接收设定参数"
 
-#: commands/functioncmds.c:289
+#: commands/functioncmds.c:288
 #, c-format
 msgid "procedures cannot have OUT arguments"
 msgstr "过程不能有输出参数"
 
-#: commands/functioncmds.c:290
+#: commands/functioncmds.c:289
 #, c-format
 msgid "INOUT arguments are permitted."
 msgstr "允许输入输出参数."
 
-#: commands/functioncmds.c:300
+#: commands/functioncmds.c:299
 #, c-format
 msgid "VARIADIC parameter must be the last input parameter"
 msgstr "参数VARIADIC必须是最后一个输入参数"
 
-#: commands/functioncmds.c:330
+#: commands/functioncmds.c:329
 #, c-format
 msgid "VARIADIC parameter must be an array"
 msgstr "参数VARIADIC必须是一个数组"
 
-#: commands/functioncmds.c:370
+#: commands/functioncmds.c:369
 #, c-format
 msgid "parameter name \"%s\" used more than once"
 msgstr "多次使用参数名称 \"%s\""
 
-#: commands/functioncmds.c:385
+#: commands/functioncmds.c:384
 #, c-format
 msgid "only input parameters can have default values"
 msgstr "只有输入参数才能有缺省值"
 
-#: commands/functioncmds.c:400
+#: commands/functioncmds.c:399
 #, c-format
 msgid "cannot use table references in parameter default value"
 msgstr "在参数缺省值中不能使用表引用"
 
-#: commands/functioncmds.c:424
+#: commands/functioncmds.c:423
 #, c-format
 msgid "input parameters after one with a default value must also have defaults"
 msgstr "在带有缺省值参数后面的输入参数必须也带有缺省值."
 
-#: commands/functioncmds.c:566 commands/functioncmds.c:716
+#: commands/functioncmds.c:575 commands/functioncmds.c:766
 #, c-format
 msgid "invalid attribute in procedure definition"
 msgstr "过程定义中的属性无效"
 
-#: commands/functioncmds.c:747
+#: commands/functioncmds.c:671
+#, fuzzy, c-format
+#| msgid "function %s must return type %s"
+msgid "support function %s must return type %s"
+msgstr "函数 %s 必须返回类型 %s"
+
+#: commands/functioncmds.c:682
+#, fuzzy, c-format
+#| msgid "must be superuser to set grantor"
+msgid "must be superuser to specify a support function"
+msgstr "只有超级用户能设置授权者"
+
+#: commands/functioncmds.c:798
 #, c-format
 msgid "no function body specified"
 msgstr "没有指定函数体"
 
-#: commands/functioncmds.c:757
+#: commands/functioncmds.c:808
 #, c-format
 msgid "no language specified"
 msgstr "没有指定语言"
 
-#: commands/functioncmds.c:782 commands/functioncmds.c:1256
+#: commands/functioncmds.c:833 commands/functioncmds.c:1317
 #, c-format
 msgid "COST must be positive"
 msgstr "COST必需为正数"
 
-#: commands/functioncmds.c:790 commands/functioncmds.c:1264
+#: commands/functioncmds.c:841 commands/functioncmds.c:1325
 #, c-format
 msgid "ROWS must be positive"
 msgstr "ROWS必需为正数"
 
-#: commands/functioncmds.c:842
+#: commands/functioncmds.c:895
 #, c-format
 msgid "only one AS item needed for language \"%s\""
 msgstr "对于 \"%s\" 语言只能要求一个 AS 项目"
 
-#: commands/functioncmds.c:937 commands/functioncmds.c:2139
-#: commands/proclang.c:557
+#: commands/functioncmds.c:993 commands/functioncmds.c:2227
+#: commands/proclang.c:568
 #, c-format
 msgid "language \"%s\" does not exist"
 msgstr "语言 \"%s\" 不存在"
 
-#: commands/functioncmds.c:939 commands/functioncmds.c:2141
+#: commands/functioncmds.c:995 commands/functioncmds.c:2229
 #, c-format
 msgid "Use CREATE EXTENSION to load the language into the database."
 msgstr "使用CREATE EXTENSION向数据库加载语言."
 
-#: commands/functioncmds.c:974 commands/functioncmds.c:1248
+#: commands/functioncmds.c:1030 commands/functioncmds.c:1309
 #, c-format
 msgid "only superuser can define a leakproof function"
 msgstr "只有超级用户才能定义一个密封函数"
 
-#: commands/functioncmds.c:1023
+#: commands/functioncmds.c:1079
 #, c-format
 msgid "function result type must be %s because of OUT parameters"
 msgstr "因为OUT参数,函数的结果类型必须是%s"
 
-#: commands/functioncmds.c:1036
+#: commands/functioncmds.c:1092
 #, c-format
 msgid "function result type must be specified"
 msgstr "必须指定函数返回结果的类型"
 
-#: commands/functioncmds.c:1088 commands/functioncmds.c:1268
+#: commands/functioncmds.c:1144 commands/functioncmds.c:1329
 #, c-format
 msgid "ROWS is not applicable when function does not return a set"
 msgstr "当转换函数不返回一个组合时,不适用ROWS"
 
-#: commands/functioncmds.c:1440
+#: commands/functioncmds.c:1521
 #, c-format
 msgid "source data type %s is a pseudo-type"
 msgstr "源数据类型 %s 是一个伪类型"
 
-#: commands/functioncmds.c:1446
+#: commands/functioncmds.c:1527
 #, c-format
 msgid "target data type %s is a pseudo-type"
 msgstr "目标数据类型 %s 是一个伪类型"
 
-#: commands/functioncmds.c:1470
+#: commands/functioncmds.c:1551
 #, c-format
 msgid "cast will be ignored because the source data type is a domain"
 msgstr "转换将被忽略,因为源数据类型是一个域"
 
-#: commands/functioncmds.c:1475
+#: commands/functioncmds.c:1556
 #, c-format
 msgid "cast will be ignored because the target data type is a domain"
 msgstr "转换将被忽略,因为目标数据类型是一个域"
 
-#: commands/functioncmds.c:1500
+#: commands/functioncmds.c:1581
 #, c-format
 msgid "cast function must take one to three arguments"
 msgstr "类型转换函数只能带一到三个参数"
 
-#: commands/functioncmds.c:1504
+#: commands/functioncmds.c:1585
 #, c-format
 msgid "argument of cast function must match or be binary-coercible from source data type"
 msgstr "功能指派函数的参数必须匹配或者是或者从源数据类型以二进制方式强制转换的"
 
-#: commands/functioncmds.c:1508
+#: commands/functioncmds.c:1589
 #, c-format
 msgid "second argument of cast function must be type %s"
 msgstr "类型转换函数的第二个参数必须为类型%s"
 
-#: commands/functioncmds.c:1513
+#: commands/functioncmds.c:1594
 #, c-format
 msgid "third argument of cast function must be type %s"
 msgstr "类型转换函数的第三个参数必须为类型%s"
 
-#: commands/functioncmds.c:1518
+#: commands/functioncmds.c:1599
 #, c-format
 msgid "return data type of cast function must match or be binary-coercible to target data type"
 msgstr "功能指派函数的返回数据类型必须匹配或者强制二进制方式转换的目标数据类型"
 
-#: commands/functioncmds.c:1529
+#: commands/functioncmds.c:1610
 #, c-format
 msgid "cast function must not be volatile"
 msgstr "类型转换函数不能为易失的 (volatile)"
 
-#: commands/functioncmds.c:1534
+#: commands/functioncmds.c:1615
 #, c-format
 msgid "cast function must be a normal function"
 msgstr "强转换函数必须是普通函数"
 
-#: commands/functioncmds.c:1538
+#: commands/functioncmds.c:1619
 #, c-format
 msgid "cast function must not return a set"
 msgstr "转换函数不能返回一个组合"
 
-#: commands/functioncmds.c:1564
+#: commands/functioncmds.c:1645
 #, c-format
 msgid "must be superuser to create a cast WITHOUT FUNCTION"
 msgstr "只有超级用户能创建一个非函数的类型转换"
 
-#: commands/functioncmds.c:1579
+#: commands/functioncmds.c:1660
 #, c-format
 msgid "source and target data types are not physically compatible"
 msgstr "源数据类型和目标数据类型不相容"
 
-#: commands/functioncmds.c:1594
+#: commands/functioncmds.c:1675
 #, c-format
 msgid "composite data types are not binary-compatible"
 msgstr "组合数据类型不是二进制兼容"
 
-#: commands/functioncmds.c:1600
+#: commands/functioncmds.c:1681
 #, c-format
 msgid "enum data types are not binary-compatible"
 msgstr "枚举数据类型不是二进制兼容"
 
-#: commands/functioncmds.c:1606
+#: commands/functioncmds.c:1687
 #, c-format
 msgid "array data types are not binary-compatible"
 msgstr "数组数据类型不是二进制兼容的"
 
-#: commands/functioncmds.c:1623
+#: commands/functioncmds.c:1704
 #, c-format
 msgid "domain data types must not be marked binary-compatible"
 msgstr "域数据类型不能标为二进制兼容"
 
-#: commands/functioncmds.c:1633
+#: commands/functioncmds.c:1714
 #, c-format
 msgid "source data type and target data type are the same"
 msgstr "源数据类型和目标数据类型相同"
 
-#: commands/functioncmds.c:1666
+#: commands/functioncmds.c:1747
 #, c-format
 msgid "cast from type %s to type %s already exists"
 msgstr "类型 %s 到 %s 的转换已经存在"
 
-#: commands/functioncmds.c:1739
+#: commands/functioncmds.c:1822
 #, c-format
 msgid "cast from type %s to type %s does not exist"
 msgstr "类型 %s 到类型 %s 的转换不存在"
 
-#: commands/functioncmds.c:1778
+#: commands/functioncmds.c:1861
 #, c-format
 msgid "transform function must not be volatile"
 msgstr "转换函数不能是不稳定的 (volatile)"
 
-#: commands/functioncmds.c:1782
+#: commands/functioncmds.c:1865
 #, c-format
 msgid "transform function must be a normal function"
 msgstr "转换函数必须是普通函数"
 
-#: commands/functioncmds.c:1786
+#: commands/functioncmds.c:1869
 #, c-format
 msgid "transform function must not return a set"
 msgstr "转换函数不能返回一个集合"
 
-#: commands/functioncmds.c:1790
+#: commands/functioncmds.c:1873
 #, c-format
 msgid "transform function must take one argument"
 msgstr "转换函数必须有一个参数"
 
-#: commands/functioncmds.c:1794
+#: commands/functioncmds.c:1877
 #, c-format
 msgid "first argument of transform function must be type %s"
 msgstr "转换函数的第一个参数必须为类型%s"
 
-#: commands/functioncmds.c:1832
+#: commands/functioncmds.c:1915
 #, c-format
 msgid "data type %s is a pseudo-type"
 msgstr "数据类型 %s是一个伪类型"
 
-#: commands/functioncmds.c:1838
+#: commands/functioncmds.c:1921
 #, c-format
 msgid "data type %s is a domain"
 msgstr "数据类型%s是一个域"
 
-#: commands/functioncmds.c:1878
+#: commands/functioncmds.c:1961
 #, c-format
 msgid "return data type of FROM SQL function must be %s"
 msgstr "FROM SQL函数的返回数据类型必须是%s"
 
-#: commands/functioncmds.c:1904
+#: commands/functioncmds.c:1987
 #, c-format
 msgid "return data type of TO SQL function must be the transform data type"
 msgstr "TO SQL函数的返回数据类型必须是转换数据类型"
 
-#: commands/functioncmds.c:1931
+#: commands/functioncmds.c:2016
 #, c-format
 msgid "transform for type %s language \"%s\" already exists"
 msgstr "类型%s语言\"%s\"的转换已经存在"
 
-#: commands/functioncmds.c:2020
+#: commands/functioncmds.c:2108
 #, c-format
 msgid "transform for type %s language \"%s\" does not exist"
 msgstr "类型%s语言\"%s\"的转换不存在"
 
-#: commands/functioncmds.c:2071
+#: commands/functioncmds.c:2159
 #, c-format
 msgid "function %s already exists in schema \"%s\""
 msgstr "在模式 \"%2$s\" 中函数 %1$s 已经存在"
 
-#: commands/functioncmds.c:2126
+#: commands/functioncmds.c:2214
 #, c-format
 msgid "no inline code specified"
 msgstr "没有指定内联代码"
 
-#: commands/functioncmds.c:2172
+#: commands/functioncmds.c:2260
 #, c-format
 msgid "language \"%s\" does not support inline code execution"
 msgstr "语言 \"%s\" 不支持执行内联代码"
 
-#: commands/functioncmds.c:2284
+#: commands/functioncmds.c:2372
 #, c-format
 msgid "cannot pass more than %d argument to a procedure"
 msgid_plural "cannot pass more than %d arguments to a procedure"
 msgstr[0] "向过程传递的参数不多于%d个"
 
-#: commands/indexcmds.c:393
+#: commands/indexcmds.c:536
 #, c-format
 msgid "must specify at least one column"
 msgstr "必需至少指定一个字段"
 
-#: commands/indexcmds.c:397
+#: commands/indexcmds.c:540
 #, c-format
 msgid "cannot use more than %d columns in an index"
 msgstr "在一个索引中不能使用超过 %d 个字段"
 
-#: commands/indexcmds.c:437
+#: commands/indexcmds.c:579
 #, c-format
 msgid "cannot create index on foreign table \"%s\""
 msgstr "外部表\"%s\"上无法创建索引"
 
-#: commands/indexcmds.c:462
+#: commands/indexcmds.c:604
 #, c-format
 msgid "cannot create index on partitioned table \"%s\" concurrently"
 msgstr "无法同时在分区表\"%s\"上创建索引"
 
-#: commands/indexcmds.c:467
+#: commands/indexcmds.c:609
 #, c-format
 msgid "cannot create exclusion constraints on partitioned table \"%s\""
 msgstr "无法在分区表\"%s\"上创建排他约束"
 
-#: commands/indexcmds.c:477
+#: commands/indexcmds.c:619
 #, c-format
 msgid "cannot create indexes on temporary tables of other sessions"
 msgstr "不能在其他会话的临时表上创建索引"
 
-#: commands/indexcmds.c:542 commands/tablecmds.c:617 commands/tablecmds.c:11445
-#: commands/tablecmds.c:11579
+#: commands/indexcmds.c:657 commands/tablecmds.c:673 commands/tablespace.c:1155
+#, fuzzy, c-format
+#| msgid "cannot assign new default tablespace \"%s\""
+msgid "cannot specify default tablespace for partitioned relations"
+msgstr "无法分配新的默认表空间 \"%s\""
+
+#: commands/indexcmds.c:689 commands/tablecmds.c:704 commands/tablecmds.c:12213
+#: commands/tablecmds.c:12325
 #, c-format
 msgid "only shared relations can be placed in pg_global tablespace"
 msgstr "在pg_global表空间中只能放置共享关系"
 
-#: commands/indexcmds.c:575
+#: commands/indexcmds.c:722
 #, c-format
 msgid "substituting access method \"gist\" for obsolete method \"rtree\""
 msgstr "将已作废的方法\"rtree\"替换为访问方法\"gist\" "
 
-#: commands/indexcmds.c:593
+#: commands/indexcmds.c:743
 #, c-format
 msgid "access method \"%s\" does not support unique indexes"
 msgstr "存取方法 \"%s\" 不支持唯一索引"
 
-#: commands/indexcmds.c:598
+#: commands/indexcmds.c:748
 #, c-format
 msgid "access method \"%s\" does not support included columns"
 msgstr "存取方法 \"%s\" 不支持包含的列"
 
-#: commands/indexcmds.c:603
+#: commands/indexcmds.c:753
 #, c-format
 msgid "access method \"%s\" does not support multicolumn indexes"
 msgstr "存取方法 \"%s\" 不支持多字段索引"
 
-#: commands/indexcmds.c:608
+#: commands/indexcmds.c:758
 #, c-format
 msgid "access method \"%s\" does not support exclusion constraints"
 msgstr "访问方法 \"%s\" 不支持排他约束"
 
-#: commands/indexcmds.c:720
+#: commands/indexcmds.c:870
 #, c-format
 msgid "unsupported %s constraint with partition key definition"
 msgstr "不支持带分区键定义的%s约束"
 
-#: commands/indexcmds.c:722
+#: commands/indexcmds.c:872
 #, c-format
 msgid "%s constraints cannot be used when partition keys include expressions."
 msgstr "当分区键包含表达式时,不能使用%s约束."
 
-#: commands/indexcmds.c:740
+#: commands/indexcmds.c:890
 #, c-format
 msgid "insufficient columns in %s constraint definition"
 msgstr "%s约束定义中的列不足"
 
-#: commands/indexcmds.c:742
+#: commands/indexcmds.c:892
 #, c-format
 msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key."
 msgstr "表\"%2$s\"上的约束%1$s缺少列\"%3$s\",该列是分区键的一部分."
 
-#: commands/indexcmds.c:761 commands/indexcmds.c:781
+#: commands/indexcmds.c:911 commands/indexcmds.c:930
 #, c-format
 msgid "index creation on system columns is not supported"
 msgstr "不支持在系统列上创建索引"
 
-#: commands/indexcmds.c:806
+#: commands/indexcmds.c:955
 #, 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:1402
+#: commands/indexcmds.c:1511
 #, c-format
 msgid "functions in index predicate must be marked IMMUTABLE"
 msgstr "索引声明中函数必需标记为 IMMUTABLE"
 
-#: commands/indexcmds.c:1468 parser/parse_utilcmd.c:2237
-#: parser/parse_utilcmd.c:2361
+#: commands/indexcmds.c:1577 parser/parse_utilcmd.c:2307
+#: parser/parse_utilcmd.c:2441
 #, c-format
 msgid "column \"%s\" named in key does not exist"
 msgstr "在键字中命名的字段 \"%s\" 不存在"
 
-#: commands/indexcmds.c:1492 parser/parse_utilcmd.c:1586
+#: commands/indexcmds.c:1601 parser/parse_utilcmd.c:1633
 #, c-format
 msgid "expressions are not supported in included columns"
 msgstr "包含的列中不支持表达式"
 
-#: commands/indexcmds.c:1533
+#: commands/indexcmds.c:1642
 #, c-format
 msgid "functions in index expression must be marked IMMUTABLE"
 msgstr "索引表达式中函数必需标记为 IMMUTABLE"
 
-#: commands/indexcmds.c:1548
+#: commands/indexcmds.c:1657
 #, c-format
 msgid "including column does not support a collation"
 msgstr "包含的列不支持排序规则"
 
 # sql_help.h:61
-#: commands/indexcmds.c:1552
+#: commands/indexcmds.c:1661
 #, c-format
 msgid "including column does not support an operator class"
 msgstr "包含的列不支持运算符类"
 
-#: commands/indexcmds.c:1556
+#: commands/indexcmds.c:1665
 #, c-format
 msgid "including column does not support ASC/DESC options"
 msgstr "包含的列不支持ASC/DESC选项"
 
-#: commands/indexcmds.c:1560
+#: commands/indexcmds.c:1669
 #, c-format
 msgid "including column does not support NULLS FIRST/LAST options"
 msgstr "包含的列不支持NULLS FIRST/LAST选项"
 
-#: commands/indexcmds.c:1587
+#: commands/indexcmds.c:1696
 #, c-format
 msgid "could not determine which collation to use for index expression"
 msgstr "索引表达式上无法确定使用哪个排序规则"
 
-#: commands/indexcmds.c:1595 commands/tablecmds.c:14379 commands/typecmds.c:833
-#: parser/parse_expr.c:2772 parser/parse_type.c:549 parser/parse_utilcmd.c:3392
-#: utils/adt/misc.c:681
+#: commands/indexcmds.c:1704 commands/tablecmds.c:15096 commands/typecmds.c:837
+#: parser/parse_expr.c:2854 parser/parse_type.c:549 parser/parse_utilcmd.c:3514
+#: utils/adt/misc.c:490
 #, c-format
 msgid "collations are not supported by type %s"
 msgstr "类型%s不能使用排序规则"
 
-#: commands/indexcmds.c:1633
+#: commands/indexcmds.c:1742
 #, c-format
 msgid "operator %s is not commutative"
 msgstr "操作符%s不是可交换的"
 
-#: commands/indexcmds.c:1635
+#: commands/indexcmds.c:1744
 #, c-format
 msgid "Only commutative operators can be used in exclusion constraints."
 msgstr "只有可交换操作符能够在排他约束中使用."
 
-#: commands/indexcmds.c:1661
+#: commands/indexcmds.c:1770
 #, c-format
 msgid "operator %s is not a member of operator family \"%s\""
 msgstr "操作符%s不是操作符表\"%s\"的成员"
 
-#: commands/indexcmds.c:1664
+#: commands/indexcmds.c:1773
 #, c-format
 msgid "The exclusion operator must be related to the index operator class for the constraint."
 msgstr "排他操作符必须和用于约束的索引操作符级别相关联"
 
-#: commands/indexcmds.c:1699
+#: commands/indexcmds.c:1808
 #, c-format
 msgid "access method \"%s\" does not support ASC/DESC options"
 msgstr "访问方法 \"%s\" 不支持ASC/DESC选项"
 
-#: commands/indexcmds.c:1704
+#: commands/indexcmds.c:1813
 #, c-format
 msgid "access method \"%s\" does not support NULLS FIRST/LAST options"
 msgstr "访问方法 \"%s\" 不支持NULLS FIRST/LAST选项"
 
-#: commands/indexcmds.c:1763 commands/typecmds.c:1996
+#: commands/indexcmds.c:1873 commands/tablecmds.c:15121
+#: commands/tablecmds.c:15127 commands/typecmds.c:1981
 #, c-format
 msgid "data type %s has no default operator class for access method \"%s\""
 msgstr "对访问方法 \"%2$s\" 数据类型 %1$s 没有默认的操作符表"
 
-#: commands/indexcmds.c:1765
+#: commands/indexcmds.c:1875
 #, 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:1794 commands/indexcmds.c:1802
-#: commands/opclasscmds.c:206
+#: commands/indexcmds.c:1904 commands/indexcmds.c:1912
+#: commands/opclasscmds.c:208
 #, c-format
 msgid "operator class \"%s\" does not exist for access method \"%s\""
 msgstr "处理方法 \"%s\" 的操作符类 \"%s\" 不存在"
 
-#: commands/indexcmds.c:1815 commands/typecmds.c:1984
+#: commands/indexcmds.c:1926 commands/typecmds.c:1969
 #, c-format
 msgid "operator class \"%s\" does not accept data type %s"
 msgstr "操作符表 \"%s\" 不能处理数据类型 %s"
 
-#: commands/indexcmds.c:1905
+#: commands/indexcmds.c:2016
 #, c-format
 msgid "there are multiple default operator classes for data type %s"
 msgstr "数据类型 %s 有多个默认的操作符表"
 
-#: commands/indexcmds.c:2320
+#: commands/indexcmds.c:2456
 #, c-format
 msgid "table \"%s\" has no indexes"
 msgstr "表 \"%s\" 没有索引"
 
-#: commands/indexcmds.c:2375
+#: commands/indexcmds.c:2494
+#, fuzzy, c-format
+#| msgid "concurrent index creation on system catalog tables is not supported"
+msgid "concurrent reindex of system catalogs is not supported"
+msgstr "不支持在系统目录表上同时创建索引"
+
+#: commands/indexcmds.c:2517
 #, c-format
 msgid "can only reindex the currently open database"
 msgstr "只能在当前打开的数据库上重建索引"
 
-#: commands/indexcmds.c:2493
+#: commands/indexcmds.c:2608
+#, c-format
+msgid "concurrent reindex is not supported for catalog relations, skipping all"
+msgstr ""
+
+#: commands/indexcmds.c:2659 commands/indexcmds.c:3292
 #, c-format
 msgid "table \"%s.%s\" was reindexed"
 msgstr "表 \"%s.%s\" 已被重新索引"
 
-#: commands/indexcmds.c:2515
+#: commands/indexcmds.c:2756 commands/indexcmds.c:2850
+#, fuzzy, c-format
+#| msgid "cannot create index on partitioned table \"%s\" concurrently"
+msgid "cannot reindex a system catalog concurrently"
+msgstr "无法同时在分区表\"%s\"上创建索引"
+
+#: commands/indexcmds.c:2771 commands/indexcmds.c:2817
+#, fuzzy, c-format
+#| msgid "cannot create index on partitioned table \"%s\" concurrently"
+msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping"
+msgstr "无法同时在分区表\"%s\"上创建索引"
+
+#: commands/indexcmds.c:2777
+#, fuzzy, c-format
+#| msgid "cannot create index on partitioned table \"%s\" concurrently"
+msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping"
+msgstr "无法同时在分区表\"%s\"上创建索引"
+
+#: commands/indexcmds.c:2878
+#, fuzzy, c-format
+#| msgid "cannot create index on partitioned table \"%s\" concurrently"
+msgid "cannot reindex this type of relation concurrently"
+msgstr "无法同时在分区表\"%s\"上创建索引"
+
+#: commands/indexcmds.c:3274 commands/indexcmds.c:3285
+#, fuzzy, c-format
+#| msgid "index \"%s\" was reindexed"
+msgid "index \"%s.%s\" was reindexed"
+msgstr "索引\"%s\"已被重新索引"
+
+#: commands/indexcmds.c:3317
 #, c-format
 msgid "REINDEX is not yet implemented for partitioned indexes"
 msgstr "对于分区索引,没有实现REINDEX"
 
-#: commands/lockcmds.c:102
+#: commands/lockcmds.c:102 commands/tablecmds.c:5145 commands/trigger.c:313
+#: rewrite/rewriteDefine.c:271 rewrite/rewriteDefine.c:928
 #, c-format
-msgid "\"%s\" is not a table or view"
+msgid "\"%s\" is not a table or view"
 msgstr "\"%s\" 不是一个视图或视图"
 
-#: commands/lockcmds.c:234 rewrite/rewriteHandler.c:1836
-#: rewrite/rewriteHandler.c:3532
+#: commands/lockcmds.c:235 rewrite/rewriteHandler.c:1974
+#: rewrite/rewriteHandler.c:3707
 #, c-format
 msgid "infinite recursion detected in rules for relation \"%s\""
 msgstr "在关系 \"%s\" 的规则中发现无限循环"
 
-#: commands/matview.c:179
+#: commands/matview.c:182
 #, c-format
 msgid "CONCURRENTLY cannot be used when the materialized view is not populated"
 msgstr "CONCURRENTLY 不能用于物化视图未被产生之前"
 
-#: commands/matview.c:185
+#: commands/matview.c:188
 #, c-format
 msgid "CONCURRENTLY and WITH NO DATA options cannot be used together"
 msgstr "CONCURRENTLY 和 WITH NO DATA 两个选项不能同时使用"
@@ -7596,184 +7753,184 @@ msgstr "行: %s"
 msgid "operator family \"%s\" does not exist for access method \"%s\""
 msgstr "访问方法\"%2$s\"的操作符表 \"%1$s\" 不存在"
 
-#: commands/opclasscmds.c:265
+#: commands/opclasscmds.c:269
 #, c-format
 msgid "operator family \"%s\" for access method \"%s\" already exists"
 msgstr "访问方法 \"%2$s\" 操作符表 \"%1$s\" 已经存在"
 
-#: commands/opclasscmds.c:403
+#: commands/opclasscmds.c:412
 #, c-format
 msgid "must be superuser to create an operator class"
 msgstr "只有超级用户能创建一个操作符表"
 
-#: commands/opclasscmds.c:476 commands/opclasscmds.c:850
-#: commands/opclasscmds.c:974
+#: commands/opclasscmds.c:485 commands/opclasscmds.c:864
+#: commands/opclasscmds.c:988
 #, c-format
 msgid "invalid operator number %d, must be between 1 and %d"
 msgstr "无效的操作符号 %d, 必需在 1 到 %d 之间"
 
-#: commands/opclasscmds.c:520 commands/opclasscmds.c:894
-#: commands/opclasscmds.c:989
+#: commands/opclasscmds.c:529 commands/opclasscmds.c:908
+#: commands/opclasscmds.c:1003
 #, c-format
 msgid "invalid function number %d, must be between 1 and %d"
 msgstr "无效的函数号 %d, 必需在 1 到 %d 之间"
 
-#: commands/opclasscmds.c:549
+#: commands/opclasscmds.c:558
 #, c-format
 msgid "storage type specified more than once"
 msgstr "存储类型指定了多次"
 
-#: commands/opclasscmds.c:576
+#: commands/opclasscmds.c:585
 #, c-format
 msgid "storage type cannot be different from data type for access method \"%s\""
 msgstr "存储类型应该和用于访问方法 \"%s\" 数据类型一样"
 
-#: commands/opclasscmds.c:592
+#: commands/opclasscmds.c:601
 #, c-format
 msgid "operator class \"%s\" for access method \"%s\" already exists"
 msgstr "访问方法 \"%2$s\" 操作符表 \"%1$s\" 已经存在"
 
-#: commands/opclasscmds.c:620
+#: commands/opclasscmds.c:629
 #, c-format
 msgid "could not make operator class \"%s\" be default for type %s"
 msgstr "无法把操作符表 \"%s\" 设置为类型 %s 的默认操作符表"
 
-#: commands/opclasscmds.c:623
+#: commands/opclasscmds.c:632
 #, c-format
 msgid "Operator class \"%s\" already is the default."
 msgstr "操作符表 \"%s\" 已经是默认的了."
 
-#: commands/opclasscmds.c:748
+#: commands/opclasscmds.c:760
 #, c-format
 msgid "must be superuser to create an operator family"
 msgstr "只有超级用户能创建一个操作符表"
 
-#: commands/opclasscmds.c:804
+#: commands/opclasscmds.c:818
 #, c-format
 msgid "must be superuser to alter an operator family"
 msgstr "只有超级用户能修改一个操作符表"
 
-#: commands/opclasscmds.c:859
+#: commands/opclasscmds.c:873
 #, c-format
 msgid "operator argument types must be specified in ALTER OPERATOR FAMILY"
 msgstr "在ALTER OPERATOR FAMILY中必须指定操作符参数类型"
 
-#: commands/opclasscmds.c:922
+#: commands/opclasscmds.c:936
 #, c-format
 msgid "STORAGE cannot be specified in ALTER OPERATOR FAMILY"
 msgstr "在ALTER OPERATOR FAMILY中无法指定参数STORAGE"
 
-#: commands/opclasscmds.c:1044
+#: commands/opclasscmds.c:1058
 #, c-format
 msgid "one or two argument types must be specified"
 msgstr "必须指定一个或两个参数类型"
 
-#: commands/opclasscmds.c:1070
+#: commands/opclasscmds.c:1084
 #, c-format
 msgid "index operators must be binary"
 msgstr "索引操作符必须为二进制"
 
-#: commands/opclasscmds.c:1089
+#: commands/opclasscmds.c:1103
 #, c-format
 msgid "access method \"%s\" does not support ordering operators"
 msgstr "访问方法 \"%s\" 不支持排序操作符"
 
-#: commands/opclasscmds.c:1100
+#: commands/opclasscmds.c:1114
 #, c-format
 msgid "index search operators must return boolean"
 msgstr "索引搜索操作符必须返回布尔值"
 
-#: commands/opclasscmds.c:1144
+#: commands/opclasscmds.c:1158
 #, c-format
 msgid "btree comparison functions must have two arguments"
 msgstr "B树比较函数必须有两个参数"
 
-#: commands/opclasscmds.c:1148
+#: commands/opclasscmds.c:1162
 #, c-format
 msgid "btree comparison functions must return integer"
 msgstr "B树比较函数必须返回整数"
 
-#: commands/opclasscmds.c:1165
+#: commands/opclasscmds.c:1179
 #, c-format
 msgid "btree sort support functions must accept type \"internal\""
 msgstr "B树排序支持的函数必须接受\"internal\"类型"
 
-#: commands/opclasscmds.c:1169
+#: commands/opclasscmds.c:1183
 #, c-format
 msgid "btree sort support functions must return void"
 msgstr "B树排序支持的函数必须返回void"
 
-#: commands/opclasscmds.c:1180
+#: commands/opclasscmds.c:1194
 #, c-format
 msgid "btree in_range functions must have five arguments"
 msgstr "B树in_range函数必须有五个参数"
 
-#: commands/opclasscmds.c:1184
+#: commands/opclasscmds.c:1198
 #, c-format
 msgid "btree in_range functions must return boolean"
 msgstr "B树in_range函数必需返回布尔类型"
 
-#: commands/opclasscmds.c:1203
+#: commands/opclasscmds.c:1217
 #, c-format
 msgid "hash function 1 must have one argument"
 msgstr "哈希函数1必须有一个参数"
 
-#: commands/opclasscmds.c:1207
+#: commands/opclasscmds.c:1221
 #, c-format
 msgid "hash function 1 must return integer"
 msgstr "哈希函数1必须返回整数"
 
-#: commands/opclasscmds.c:1214
+#: commands/opclasscmds.c:1228
 #, c-format
 msgid "hash function 2 must have two arguments"
 msgstr "哈希函数2必须有两个参数"
 
-#: commands/opclasscmds.c:1218
+#: commands/opclasscmds.c:1232
 #, c-format
 msgid "hash function 2 must return bigint"
 msgstr "哈希函数2不能返回bigint类型"
 
-#: commands/opclasscmds.c:1243
+#: commands/opclasscmds.c:1257
 #, c-format
 msgid "associated data types must be specified for index support function"
 msgstr "必须为索引支持的函数指定相关联的数据类型"
 
-#: commands/opclasscmds.c:1268
+#: commands/opclasscmds.c:1282
 #, c-format
 msgid "function number %d for (%s,%s) appears more than once"
 msgstr "对于(%2$s,%3$s)函数号%1$d出现过多次"
 
-#: commands/opclasscmds.c:1275
+#: commands/opclasscmds.c:1289
 #, c-format
 msgid "operator number %d for (%s,%s) appears more than once"
 msgstr "对于(%2$s,%3$s)操作符号%1$d出现过多次"
 
-#: commands/opclasscmds.c:1324
+#: commands/opclasscmds.c:1338
 #, 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:1438
+#: commands/opclasscmds.c:1455
 #, 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:1526
+#: commands/opclasscmds.c:1546
 #, 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:1566
+#: commands/opclasscmds.c:1586
 #, 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:1696
+#: commands/opclasscmds.c:1716
 #, c-format
 msgid "operator class \"%s\" for access method \"%s\" already exists in schema \"%s\""
 msgstr "访问方法 \"%s\" 的操作符表 \"%s\" 已经在模式 \"%s\" 存在了"
 
-#: commands/opclasscmds.c:1719
+#: commands/opclasscmds.c:1739
 #, c-format
 msgid "operator family \"%s\" for access method \"%s\" already exists in schema \"%s\""
 msgstr "对于访问方法 \"%2$s\" 的操作符表 \"%1$s\" 已经在模式 \"%3$s\" 存在了"
@@ -7813,53 +7970,53 @@ msgstr "连接估算器函数 %s 必需返回类型 %s"
 msgid "operator attribute \"%s\" cannot be changed"
 msgstr "操作符属性 \"%s\" 不能被更改"
 
-#: commands/policy.c:87 commands/policy.c:400 commands/policy.c:490
-#: commands/tablecmds.c:1278 commands/tablecmds.c:1755
-#: commands/tablecmds.c:2742 commands/tablecmds.c:4986
-#: commands/tablecmds.c:7394 commands/tablecmds.c:14012
-#: commands/tablecmds.c:14047 commands/trigger.c:316 commands/trigger.c:1526
-#: commands/trigger.c:1635 rewrite/rewriteDefine.c:272
-#: rewrite/rewriteDefine.c:924
+#: commands/policy.c:88 commands/policy.c:401 commands/policy.c:491
+#: commands/tablecmds.c:1428 commands/tablecmds.c:1910
+#: commands/tablecmds.c:2877 commands/tablecmds.c:5124
+#: commands/tablecmds.c:7594 commands/tablecmds.c:14695
+#: commands/tablecmds.c:14730 commands/trigger.c:319 commands/trigger.c:1545
+#: commands/trigger.c:1654 rewrite/rewriteDefine.c:277
+#: rewrite/rewriteDefine.c:933
 #, c-format
 msgid "permission denied: \"%s\" is a system catalog"
 msgstr "权限不够: \"%s\" 是一个系统表"
 
-#: commands/policy.c:170
+#: commands/policy.c:171
 #, c-format
 msgid "ignoring specified roles other than PUBLIC"
 msgstr "忽略所指定的除 PUBLIC 之外的角色"
 
-#: commands/policy.c:171
+#: commands/policy.c:172
 #, c-format
 msgid "All roles are members of the PUBLIC role."
 msgstr "所有角色都是 PUBLIC 角色的成员。"
 
-#: commands/policy.c:514
+#: commands/policy.c:515
 #, c-format
 msgid "role \"%s\" could not be removed from policy \"%s\" on \"%s\""
 msgstr "不能从 \"%3$s\" 上的策略 \"%2$s\" 中移除角色 \"%1$s\""
 
-#: commands/policy.c:720
+#: commands/policy.c:724
 #, c-format
 msgid "WITH CHECK cannot be applied to SELECT or DELETE"
 msgstr "不能把WITH CHECK应用到SELECT或者DELETE"
 
-#: commands/policy.c:729 commands/policy.c:1027
+#: commands/policy.c:733 commands/policy.c:1038
 #, c-format
 msgid "only WITH CHECK expression allowed for INSERT"
 msgstr "对INSERT只允许WITH CHECK表达式"
 
-#: commands/policy.c:802 commands/policy.c:1247
+#: commands/policy.c:808 commands/policy.c:1260
 #, c-format
 msgid "policy \"%s\" for table \"%s\" already exists"
 msgstr "用于表\"%2$s\"的策略\"%1$s\"已经存在"
 
-#: commands/policy.c:999 commands/policy.c:1275 commands/policy.c:1347
+#: commands/policy.c:1010 commands/policy.c:1288 commands/policy.c:1359
 #, c-format
 msgid "policy \"%s\" for table \"%s\" does not exist"
 msgstr "用于表\"%2$s\"的策略\"%1$s\"不存在"
 
-#: commands/policy.c:1017
+#: commands/policy.c:1028
 #, c-format
 msgid "only USING expression allowed for SELECT, DELETE"
 msgstr "对SELECT、DELETE只允许USING表达式"
@@ -7870,7 +8027,7 @@ msgid "invalid cursor name: must not be empty"
 msgstr "无效的游标名称: 不能为空"
 
 #: commands/portalcmds.c:190 commands/portalcmds.c:244
-#: executor/execCurrent.c:69 utils/adt/xml.c:2472 utils/adt/xml.c:2642
+#: executor/execCurrent.c:70 utils/adt/xml.c:2608 utils/adt/xml.c:2778
 #, c-format
 msgid "cursor \"%s\" does not exist"
 msgstr "游标 \"%s\" 不存在"
@@ -7880,7 +8037,7 @@ msgstr "游标 \"%s\" 不存在"
 msgid "invalid statement name: must not be empty"
 msgstr "无效的语句名称: 不能为空"
 
-#: commands/prepare.c:141 parser/parse_param.c:304 tcop/postgres.c:1399
+#: commands/prepare.c:141 parser/parse_param.c:304 tcop/postgres.c:1468
 #, c-format
 msgid "could not determine data type of parameter $%d"
 msgstr "无法确定参数 $%d 的数据类型"
@@ -7910,98 +8067,99 @@ 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:475
+#: commands/prepare.c:465
 #, c-format
 msgid "prepared statement \"%s\" already exists"
 msgstr "准备好的语句 \"%s\" 已经存在"
 
-#: commands/prepare.c:514
+#: commands/prepare.c:504
 #, c-format
 msgid "prepared statement \"%s\" does not exist"
 msgstr "准备好的语句 \"%s\" 不存在"
 
-#: commands/proclang.c:86
+#: commands/proclang.c:85
 #, c-format
 msgid "using pg_pltemplate information instead of CREATE LANGUAGE parameters"
 msgstr "使用pg_pltemplate信息,而不是CREATE LANGUAGE的参数"
 
-#: commands/proclang.c:96
+#: commands/proclang.c:95
 #, c-format
 msgid "must be superuser to create procedural language \"%s\""
 msgstr "只有有超级用户权限的用户才能创建过程语言\"%s\""
 
-#: commands/proclang.c:248
+#: commands/proclang.c:250
 #, c-format
 msgid "unsupported language \"%s\""
 msgstr "不支持语言 \"%s\""
 
-#: commands/proclang.c:250
+#: commands/proclang.c:252
 #, c-format
 msgid "The supported languages are listed in the pg_pltemplate system catalog."
 msgstr "在pg_pltemplate系统目录视图中列出了所支持的语言."
 
-#: commands/proclang.c:258
+#: commands/proclang.c:260
 #, c-format
 msgid "must be superuser to create custom procedural language"
 msgstr "只有有超级用户权限的用户才能创建过程语言"
 
-#: commands/proclang.c:277 commands/trigger.c:688 commands/typecmds.c:454
-#: commands/typecmds.c:471
+#: commands/proclang.c:279 commands/trigger.c:711 commands/typecmds.c:458
+#: commands/typecmds.c:475
 #, c-format
 msgid "changing return type of function %s from %s to %s"
 msgstr "把函数 %1$s 的返回类型从 %2$s 改成 %3$s"
 
-#: commands/publicationcmds.c:109
+#: commands/publicationcmds.c:108
 #, c-format
 msgid "invalid list syntax for \"publish\" option"
 msgstr "\"publish\"选项使用了无效的列表语法"
 
-#: commands/publicationcmds.c:127
+#: commands/publicationcmds.c:126
 #, c-format
 msgid "unrecognized \"publish\" value: \"%s\""
 msgstr "未知的\"publish\"值: \"%s\""
 
-#: commands/publicationcmds.c:133
-#, c-format
-msgid "unrecognized publication parameter: %s"
+#: commands/publicationcmds.c:132
+#, fuzzy, c-format
+#| msgid "unrecognized publication parameter: %s"
+msgid "unrecognized publication parameter: \"%s\""
 msgstr "未识别发布参数: %s"
 
-#: commands/publicationcmds.c:166
+#: commands/publicationcmds.c:165
 #, c-format
 msgid "must be superuser to create FOR ALL TABLES publication"
 msgstr "只有超级用户能创建FOR ALL TABLES发布"
 
-#: commands/publicationcmds.c:335
+#: commands/publicationcmds.c:341
 #, c-format
 msgid "publication \"%s\" is defined as FOR ALL TABLES"
 msgstr "发布\"%s\"被定义为FOR ALL TABLES"
 
-#: commands/publicationcmds.c:337
+#: commands/publicationcmds.c:343
 #, c-format
 msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications."
 msgstr "对于FOR ALL TABLES发布,不能将表添加到或从中删除."
 
-#: commands/publicationcmds.c:638
+#: commands/publicationcmds.c:648
 #, c-format
 msgid "relation \"%s\" is not part of the publication"
 msgstr "关系 \"%s\" 不是发布的一部分"
 
-#: commands/publicationcmds.c:681
+#: commands/publicationcmds.c:691
 #, c-format
 msgid "permission denied to change owner of publication \"%s\""
 msgstr "改变发布\"%s\"属主的权限不够"
 
-#: commands/publicationcmds.c:683
+#: commands/publicationcmds.c:693
 #, c-format
 msgid "The owner of a FOR ALL TABLES publication must be a superuser."
 msgstr "FOR ALL TABLES发布的属主必须是超级用户."
 
-#: commands/schemacmds.c:106 commands/schemacmds.c:280
+#: commands/schemacmds.c:106 commands/schemacmds.c:282
 #, c-format
 msgid "unacceptable schema name \"%s\""
 msgstr "不可访问的模式名字 \"%s\""
 
-#: commands/schemacmds.c:107 commands/schemacmds.c:281
+#: commands/schemacmds.c:107 commands/schemacmds.c:283
 #, c-format
 msgid "The prefix \"pg_\" is reserved for system schemas."
 msgstr "前缀 \"pg_\" 是保留给系统模式的."
@@ -8026,532 +8184,520 @@ msgstr "当多个安全提供者已经加载时,必须指定提供者"
 msgid "security label provider \"%s\" is not loaded"
 msgstr "安装标签提供者\"%s\"没有加载"
 
-#: commands/sequence.c:138
+#: commands/sequence.c:140
 #, c-format
 msgid "unlogged sequences are not supported"
 msgstr "非事务日志型序列不被支持"
 
-#: commands/sequence.c:697
+#: commands/sequence.c:709
 #, c-format
 msgid "nextval: reached maximum value of sequence \"%s\" (%s)"
 msgstr "nextval: 达到序列 \"%s\" 的最大值了 (%s)"
 
-#: commands/sequence.c:720
+#: commands/sequence.c:732
 #, c-format
 msgid "nextval: reached minimum value of sequence \"%s\" (%s)"
 msgstr "nextval: 达到序列 \"%s\" 的最小值了 (%s)"
 
-#: commands/sequence.c:838
+#: commands/sequence.c:850
 #, c-format
 msgid "currval of sequence \"%s\" is not yet defined in this session"
 msgstr "在此会话中序列 \"%s\" 的 currval 仍没被定义"
 
-#: commands/sequence.c:857 commands/sequence.c:863
+#: commands/sequence.c:869 commands/sequence.c:875
 #, c-format
 msgid "lastval is not yet defined in this session"
 msgstr "在这个会话中还没有定义lastval "
 
-#: commands/sequence.c:951
+#: commands/sequence.c:963
 #, c-format
 msgid "setval: value %s is out of bounds for sequence \"%s\" (%s..%s)"
 msgstr "setval: 值 %s 超出序列 \"%s\" 的范围 (%s..%s)"
 
-#: commands/sequence.c:1348
+#: commands/sequence.c:1360
 #, c-format
 msgid "invalid sequence option SEQUENCE NAME"
 msgstr "序列选项SEQUENCE NAME无效 "
 
-#: commands/sequence.c:1374
+#: commands/sequence.c:1386
 #, c-format
 msgid "identity column type must be smallint, integer, or bigint"
 msgstr "标识列类型必须是smallint、integer或bigint"
 
-#: commands/sequence.c:1375
+#: commands/sequence.c:1387
 #, c-format
 msgid "sequence type must be smallint, integer, or bigint"
 msgstr "序列类型必须是smallint、integer或bigint"
 
-#: commands/sequence.c:1409
+#: commands/sequence.c:1421
 #, c-format
 msgid "INCREMENT must not be zero"
 msgstr "INCREMENT 不必为零"
 
-#: commands/sequence.c:1462
+#: commands/sequence.c:1474
 #, c-format
 msgid "MAXVALUE (%s) is out of range for sequence data type %s"
 msgstr "MAXVALUE (%s) 超出序列数据类型%s的范围"
 
-#: commands/sequence.c:1499
+#: commands/sequence.c:1511
 #, c-format
 msgid "MINVALUE (%s) is out of range for sequence data type %s"
 msgstr "MINVALUE (%s)超出序列数据类型%s的范围"
 
-#: commands/sequence.c:1513
+#: commands/sequence.c:1525
 #, c-format
 msgid "MINVALUE (%s) must be less than MAXVALUE (%s)"
 msgstr "MINVALUE (%s) 必需小于 MAXVALUE (%s)"
 
-#: commands/sequence.c:1540
+#: commands/sequence.c:1552
 #, c-format
 msgid "START value (%s) cannot be less than MINVALUE (%s)"
 msgstr "START 值 (%s) 不能小于 MINVALUE (%s)"
 
-#: commands/sequence.c:1552
+#: commands/sequence.c:1564
 #, c-format
 msgid "START value (%s) cannot be greater than MAXVALUE (%s)"
 msgstr "START 值 (%s) 不能大于 MAXVALUE (%s)"
 
-#: commands/sequence.c:1582
+#: commands/sequence.c:1594
 #, c-format
 msgid "RESTART value (%s) cannot be less than MINVALUE (%s)"
 msgstr "RESTART值 (%s) 不能小于 MINVALUE (%s)"
 
-#: commands/sequence.c:1594
+#: commands/sequence.c:1606
 #, c-format
 msgid "RESTART value (%s) cannot be greater than MAXVALUE (%s)"
 msgstr "RESTART 值 (%s) 不能大于 MAXVALUE (%s)"
 
-#: commands/sequence.c:1609
+#: commands/sequence.c:1621
 #, c-format
 msgid "CACHE (%s) must be greater than zero"
 msgstr "CACHE (%s) 必须大于零"
 
-#: commands/sequence.c:1646
+#: commands/sequence.c:1658
 #, c-format
 msgid "invalid OWNED BY option"
 msgstr "无效的OWNED BY选项"
 
-#: commands/sequence.c:1647
+#: commands/sequence.c:1659
 #, c-format
 msgid "Specify OWNED BY table.column or OWNED BY NONE."
 msgstr "指定OWNED BY 表.列 or OWNED BY NONE."
 
-#: commands/sequence.c:1672
+#: commands/sequence.c:1684
 #, c-format
 msgid "referenced relation \"%s\" is not a table or foreign table"
 msgstr "关联的关系 \"%s\" 不是一个表或外部参照表"
 
-#: commands/sequence.c:1679
+#: commands/sequence.c:1691
 #, c-format
 msgid "sequence must have same owner as table it is linked to"
 msgstr "序列的属主必须和与它相链接的表的属主相同."
 
-#: commands/sequence.c:1683
+#: commands/sequence.c:1695
 #, c-format
 msgid "sequence must be in same schema as table it is linked to"
 msgstr "序列必须和与它相链接的表存放在同一个模式"
 
-#: commands/sequence.c:1705
+#: commands/sequence.c:1717
 #, c-format
 msgid "cannot change ownership of identity sequence"
 msgstr "无法更改标识序列的所有权"
 
-#: commands/sequence.c:1706 commands/tablecmds.c:10827
-#: commands/tablecmds.c:13444
+#: commands/sequence.c:1718 commands/tablecmds.c:11597
+#: commands/tablecmds.c:14107
 #, c-format
 msgid "Sequence \"%s\" is linked to table \"%s\"."
 msgstr "序列 \"%s\"已链接到表\"%s\"."
 
-#: commands/statscmds.c:93 commands/statscmds.c:102
+#: commands/statscmds.c:97 commands/statscmds.c:106
 #, c-format
 msgid "only a single relation is allowed in CREATE STATISTICS"
 msgstr "在创建统计信息中只允许一个关系"
 
-#: commands/statscmds.c:120
+#: commands/statscmds.c:124
 #, c-format
 msgid "relation \"%s\" is not a table, foreign table, or materialized view"
 msgstr "关系\"%s\"不是表、外部表或物化视图"
 
-#: commands/statscmds.c:163
+#: commands/statscmds.c:167
 #, c-format
 msgid "statistics object \"%s\" already exists, skipping"
 msgstr "统计信息对象 \"%s\" 已经存在, 跳过"
 
-#: commands/statscmds.c:171
+#: commands/statscmds.c:175
 #, c-format
 msgid "statistics object \"%s\" already exists"
 msgstr "统计信息对象 \"%s\" 已经存在"
 
-#: commands/statscmds.c:193 commands/statscmds.c:199
+#: commands/statscmds.c:197 commands/statscmds.c:203
 #, c-format
 msgid "only simple column references are allowed in CREATE STATISTICS"
 msgstr "创建统计信息中只允许简单列引用"
 
-#: commands/statscmds.c:214
+#: commands/statscmds.c:218
 #, c-format
 msgid "statistics creation on system columns is not supported"
 msgstr "不支持在系统列上创建统计信息"
 
-#: commands/statscmds.c:221
+#: commands/statscmds.c:225
 #, c-format
 msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class"
 msgstr "列\"%s\"不能用于统计,因为它的类型%s没有默认的B树运算符类"
 
-#: commands/statscmds.c:228
+#: commands/statscmds.c:232
 #, c-format
 msgid "cannot have more than %d columns in statistics"
 msgstr "在一个统计信息中不能使用超过 %d 个字段"
 
-#: commands/statscmds.c:243
+#: commands/statscmds.c:247
 #, c-format
 msgid "extended statistics require at least 2 columns"
 msgstr "扩展统计信息至少需要2列"
 
-#: commands/statscmds.c:261
+#: commands/statscmds.c:265
 #, c-format
 msgid "duplicate column name in statistics definition"
 msgstr "统计信息定义中有重复的列名"
 
-#: commands/statscmds.c:289
+#: commands/statscmds.c:299
 #, c-format
 msgid "unrecognized statistics kind \"%s\""
 msgstr "未识别的统计类型\"%s\""
 
-#: commands/subscriptioncmds.c:187
-#, c-format
-msgid "unrecognized subscription parameter: %s"
+#: commands/subscriptioncmds.c:188
+#, fuzzy, c-format
+#| msgid "unrecognized subscription parameter: %s"
+msgid "unrecognized subscription parameter: \"%s\""
 msgstr "未识别的订阅参数: %s"
 
-#: commands/subscriptioncmds.c:200
-#, c-format
-msgid "connect = false and enabled = true are mutually exclusive options"
+#. translator: both %s are strings of the form "option = value"
+#: commands/subscriptioncmds.c:202 commands/subscriptioncmds.c:208
+#: commands/subscriptioncmds.c:214 commands/subscriptioncmds.c:233
+#: commands/subscriptioncmds.c:239
+#, fuzzy, c-format
+#| msgid "connect = false and enabled = true are mutually exclusive options"
+msgid "%s and %s are mutually exclusive options"
 msgstr "connect = false和enabled = true是互斥选项"
 
-#: commands/subscriptioncmds.c:205
-#, c-format
-msgid "connect = false and create_slot = true are mutually exclusive options"
-msgstr "connect = false和create_slot = true是互斥选项"
-
-#: commands/subscriptioncmds.c:210
-#, c-format
-msgid "connect = false and copy_data = true are mutually exclusive options"
-msgstr "connect = false和copy_data = true是互斥选项"
-
-#: commands/subscriptioncmds.c:227
-#, c-format
-msgid "slot_name = NONE and enabled = true are mutually exclusive options"
-msgstr "slot_name = NONE和enabled = true是互斥选项"
-
-#: commands/subscriptioncmds.c:232
-#, c-format
-msgid "slot_name = NONE and create_slot = true are mutually exclusive options"
-msgstr "slot_name = NONE和create_slot = true是互斥选项"
-
-#: commands/subscriptioncmds.c:237
-#, c-format
-msgid "subscription with slot_name = NONE must also set enabled = false"
+#. translator: both %s are strings of the form "option = value"
+#: commands/subscriptioncmds.c:246 commands/subscriptioncmds.c:252
+#, fuzzy, c-format
+#| msgid "subscription with slot_name = NONE must also set enabled = false"
+msgid "subscription with %s must also set %s"
 msgstr "有slot_name = NONE选项的订阅还必须设置enabled = false"
 
-#: commands/subscriptioncmds.c:242
-#, c-format
-msgid "subscription with slot_name = NONE must also set create_slot = false"
-msgstr "有slot_name = NONE选项的订阅还必须设置create_slot = false"
-
-#: commands/subscriptioncmds.c:283
+#: commands/subscriptioncmds.c:294
 #, c-format
 msgid "publication name \"%s\" used more than once"
 msgstr "发布名称\"%s\"使用了多次"
 
-#: commands/subscriptioncmds.c:347
+#: commands/subscriptioncmds.c:358
 #, c-format
 msgid "must be superuser to create subscriptions"
 msgstr "只有超级用户能创建订阅"
 
-#: commands/subscriptioncmds.c:427 commands/subscriptioncmds.c:520
-#: replication/logical/tablesync.c:856 replication/logical/worker.c:1722
+#: commands/subscriptioncmds.c:441 commands/subscriptioncmds.c:534
+#: replication/logical/tablesync.c:846 replication/logical/worker.c:1704
 #, c-format
 msgid "could not connect to the publisher: %s"
 msgstr "无法连接到发布服务器:%s"
 
-#: commands/subscriptioncmds.c:469
+#: commands/subscriptioncmds.c:483
 #, c-format
 msgid "created replication slot \"%s\" on publisher"
 msgstr "在发布服务器上创建复制槽 \"%s\""
 
-#: commands/subscriptioncmds.c:486
-#, c-format
-msgid "tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables"
+#. translator: %s is an SQL ALTER statement
+#: commands/subscriptioncmds.c:501
+#, fuzzy, c-format
+#| msgid "tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables"
+msgid "tables were not subscribed, you will have to run %s to subscribe the tables"
 msgstr "没有订阅表,您必须运行ALTER SUBSCRIPTION ... REFRESH PUBLICATION订阅表"
 
-#: commands/subscriptioncmds.c:576
+#: commands/subscriptioncmds.c:590
 #, c-format
 msgid "table \"%s.%s\" added to subscription \"%s\""
 msgstr "表\"%s.%s\"添加到订阅\"%s\"中"
 
-#: commands/subscriptioncmds.c:600
+#: commands/subscriptioncmds.c:614
 #, c-format
 msgid "table \"%s.%s\" removed from subscription \"%s\""
 msgstr "已从订阅\"%3$s\"中删除表\"%1$s.%2$s\""
 
-#: commands/subscriptioncmds.c:669
-#, c-format
-msgid "cannot set slot_name = NONE for enabled subscription"
+#: commands/subscriptioncmds.c:686
+#, fuzzy, c-format
+#| msgid "cannot set slot_name = NONE for enabled subscription"
+msgid "cannot set %s for enabled subscription"
 msgstr "无法为启用的订阅设置slot_name = NONE"
 
-#: commands/subscriptioncmds.c:703
+#: commands/subscriptioncmds.c:721
 #, c-format
 msgid "cannot enable subscription that does not have a slot name"
 msgstr "无法启用没有槽名称的订阅"
 
-#: commands/subscriptioncmds.c:749
+#: commands/subscriptioncmds.c:767
 #, c-format
 msgid "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions"
 msgstr "禁用的订阅不允许使用带刷新的ALTER SUBSCRIPTION"
 
-#: commands/subscriptioncmds.c:750
+#: commands/subscriptioncmds.c:768
 #, c-format
 msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)."
 msgstr "使用ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)."
 
-#: commands/subscriptioncmds.c:768
+#: commands/subscriptioncmds.c:786
 #, c-format
 msgid "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions"
 msgstr "ALTER SUBSCRIPTION ... REFRESH不允许用于已禁用的订阅"
 
-#: commands/subscriptioncmds.c:847
+#: commands/subscriptioncmds.c:866
 #, c-format
 msgid "subscription \"%s\" does not exist, skipping"
 msgstr "订阅\"%s\"不存在,跳过"
 
-#: commands/subscriptioncmds.c:972
+#: commands/subscriptioncmds.c:992
 #, c-format
 msgid "could not connect to publisher when attempting to drop the replication slot \"%s\""
 msgstr "尝试删除复制槽\"%s\"时无法连接到发布服务器"
 
-#: commands/subscriptioncmds.c:974 commands/subscriptioncmds.c:988
-#: replication/logical/tablesync.c:905 replication/logical/tablesync.c:927
+#: commands/subscriptioncmds.c:994 commands/subscriptioncmds.c:1009
+#: replication/logical/tablesync.c:895 replication/logical/tablesync.c:917
 #, c-format
 msgid "The error was: %s"
 msgstr "错误是: %s"
 
-#: commands/subscriptioncmds.c:975
-#, c-format
-msgid "Use ALTER SUBSCRIPTION ... SET (slot_name = NONE) to disassociate the subscription from the slot."
+#. translator: %s is an SQL ALTER command
+#: commands/subscriptioncmds.c:996
+#, fuzzy, c-format
+#| msgid "Use ALTER SUBSCRIPTION ... SET (slot_name = NONE) to disassociate the subscription from the slot."
+msgid "Use %s to disassociate the subscription from the slot."
 msgstr "使用ALTER SUBSCRIPTION ... SET (slot_name = NONE)取消订阅与插槽的关联."
 
-#: commands/subscriptioncmds.c:986
+#: commands/subscriptioncmds.c:1007
 #, c-format
 msgid "could not drop the replication slot \"%s\" on publisher"
 msgstr "无法删除发布服务器上的复制槽\"%s\""
 
-#: commands/subscriptioncmds.c:991
+#: commands/subscriptioncmds.c:1012
 #, c-format
 msgid "dropped replication slot \"%s\" on publisher"
 msgstr "已删除发布服务器上的复制槽\"%s\""
 
-#: commands/subscriptioncmds.c:1032
+#: commands/subscriptioncmds.c:1053
 #, c-format
 msgid "permission denied to change owner of subscription \"%s\""
 msgstr "更改订阅所有者\"%s\"的权限被拒绝"
 
-#: commands/subscriptioncmds.c:1034
+#: commands/subscriptioncmds.c:1055
 #, c-format
 msgid "The owner of a subscription must be a superuser."
 msgstr "订阅的所有者必须是超级用户."
 
-#: commands/subscriptioncmds.c:1147
+#: commands/subscriptioncmds.c:1170
 #, c-format
 msgid "could not receive list of replicated tables from the publisher: %s"
 msgstr "无法从发布服务器接收已复制表的列表: %s"
 
-#: commands/tablecmds.c:223 commands/tablecmds.c:265
+#: commands/tablecmds.c:222 commands/tablecmds.c:264
 #, c-format
 msgid "table \"%s\" does not exist"
 msgstr "表 \"%s\" 不存在"
 
-#: commands/tablecmds.c:224 commands/tablecmds.c:266
+#: commands/tablecmds.c:223 commands/tablecmds.c:265
 #, c-format
 msgid "table \"%s\" does not exist, skipping"
 msgstr "表 \"%s\" 不存在"
 
-#: commands/tablecmds.c:226 commands/tablecmds.c:268
+#: commands/tablecmds.c:225 commands/tablecmds.c:267
 msgid "Use DROP TABLE to remove a table."
 msgstr "请使用 DROP TABLE 删除一个表."
 
-#: commands/tablecmds.c:229
+#: commands/tablecmds.c:228
 #, c-format
 msgid "sequence \"%s\" does not exist"
 msgstr "序列 \"%s\" 不存在"
 
-#: commands/tablecmds.c:230
+#: commands/tablecmds.c:229
 #, c-format
 msgid "sequence \"%s\" does not exist, skipping"
 msgstr "序列 \"%s\" 不存在"
 
-#: commands/tablecmds.c:232
+#: commands/tablecmds.c:231
 msgid "Use DROP SEQUENCE to remove a sequence."
 msgstr "请使用 DROP SEQUENCE 删除一个序列."
 
-#: commands/tablecmds.c:235
+#: commands/tablecmds.c:234
 #, c-format
 msgid "view \"%s\" does not exist"
 msgstr "视图 \"%s\" 不存在"
 
-#: commands/tablecmds.c:236
+#: commands/tablecmds.c:235
 #, c-format
 msgid "view \"%s\" does not exist, skipping"
 msgstr "视图 \"%s\" 不存在"
 
-#: commands/tablecmds.c:238
+#: commands/tablecmds.c:237
 msgid "Use DROP VIEW to remove a view."
 msgstr "请使用 DROP VIEW 删除一个视图."
 
-#: commands/tablecmds.c:241
+#: commands/tablecmds.c:240
 #, c-format
 msgid "materialized view \"%s\" does not exist"
 msgstr "物化视图 \"%s\" 不存在"
 
-#: commands/tablecmds.c:242
+#: commands/tablecmds.c:241
 #, c-format
 msgid "materialized view \"%s\" does not exist, skipping"
 msgstr "物化视图 \"%s\" 不存在,跳过"
 
-#: commands/tablecmds.c:244
+#: commands/tablecmds.c:243
 msgid "Use DROP MATERIALIZED VIEW to remove a materialized view."
 msgstr "请使用 DROP MATERIALIZED VIEW 删除一个物化视图."
 
-#: commands/tablecmds.c:247 commands/tablecmds.c:271 commands/tablecmds.c:15449
-#: parser/parse_utilcmd.c:1982
+#: commands/tablecmds.c:246 commands/tablecmds.c:270 commands/tablecmds.c:16171
+#: parser/parse_utilcmd.c:2045
 #, c-format
 msgid "index \"%s\" does not exist"
 msgstr "索引 \"%s\" 不存在"
 
-#: commands/tablecmds.c:248 commands/tablecmds.c:272
+#: commands/tablecmds.c:247 commands/tablecmds.c:271
 #, c-format
 msgid "index \"%s\" does not exist, skipping"
 msgstr "索引 \"%s\" 不存在"
 
-#: commands/tablecmds.c:250 commands/tablecmds.c:274
+#: commands/tablecmds.c:249 commands/tablecmds.c:273
 msgid "Use DROP INDEX to remove an index."
 msgstr "请使用 DROP INDEX 删除一个索引."
 
-#: commands/tablecmds.c:255
+#: commands/tablecmds.c:254
 #, c-format
 msgid "\"%s\" is not a type"
 msgstr "\"%s\" 不是一个类型"
 
-#: commands/tablecmds.c:256
+#: commands/tablecmds.c:255
 msgid "Use DROP TYPE to remove a type."
 msgstr "请使用 DROP TYPE 删除一个类型."
 
-#: commands/tablecmds.c:259 commands/tablecmds.c:10271
-#: commands/tablecmds.c:13224
+#: commands/tablecmds.c:258 commands/tablecmds.c:11026
+#: commands/tablecmds.c:13887
 #, c-format
 msgid "foreign table \"%s\" does not exist"
 msgstr "外部表 \"%s\" 不存在"
 
-#: commands/tablecmds.c:260
+#: commands/tablecmds.c:259
 #, c-format
 msgid "foreign table \"%s\" does not exist, skipping"
 msgstr "外部表 \"%s\" 不存在, 跳过"
 
-#: commands/tablecmds.c:262
+#: commands/tablecmds.c:261
 msgid "Use DROP FOREIGN TABLE to remove a foreign table."
 msgstr "请使用 DROP FOREIGN TABLE 删除一个外部表."
 
-#: commands/tablecmds.c:557
+#: commands/tablecmds.c:589
 #, c-format
 msgid "ON COMMIT can only be used on temporary tables"
 msgstr "ON COMMIT 只能被用于临时表"
 
-#: commands/tablecmds.c:585
+#: commands/tablecmds.c:620
 #, c-format
 msgid "cannot create temporary table within security-restricted operation"
 msgstr "不能在安全限制的操作中创建临时表"
 
-#: commands/tablecmds.c:686
+#: commands/tablecmds.c:656 commands/tablecmds.c:12791
 #, c-format
-msgid "cannot create table with OIDs as partition of table without OIDs"
-msgstr "无法使用OIDs创建表作为没有OIDs的表的分区"
+msgid "relation \"%s\" would be inherited from more than once"
+msgstr "关系 \"%s\" 将被继承多次"
 
-#: commands/tablecmds.c:810
+#: commands/tablecmds.c:826
+#, fuzzy, c-format
+#| msgid "exclusion constraints are not supported on partitioned tables"
+msgid "specifying a table access method is not supported on a partitioned table"
+msgstr "分区表上不支持排除约束"
+
+#: commands/tablecmds.c:922
 #, c-format
 msgid "\"%s\" is not partitioned"
 msgstr "\"%s\" 未分区"
 
-#: commands/tablecmds.c:891
+#: commands/tablecmds.c:1015
 #, c-format
 msgid "cannot partition using more than %d columns"
 msgstr "无法使用超过%d列进行分区"
 
-#: commands/tablecmds.c:1098
+#: commands/tablecmds.c:1218
 #, c-format
 msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects"
 msgstr "DROP INDEX CONCURRENTLY不支持同时删除多个对象"
 
-#: commands/tablecmds.c:1102
+#: commands/tablecmds.c:1222
 #, c-format
 msgid "DROP INDEX CONCURRENTLY does not support CASCADE"
 msgstr "DROP INDEX CONCURRENTLY 不支持级联操作"
 
-#: commands/tablecmds.c:1401
+#: commands/tablecmds.c:1564
 #, c-format
 msgid "cannot truncate only a partitioned table"
 msgstr "不能只截断分区表"
 
-#: commands/tablecmds.c:1402
+#: commands/tablecmds.c:1565
 #, c-format
 msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly."
 msgstr "不要指定ONLY关键字,或者分区上直接使用TRUNCATE ONLY."
 
-#: commands/tablecmds.c:1471
+#: commands/tablecmds.c:1634
 #, c-format
 msgid "truncate cascades to table \"%s\""
 msgstr "级联截断表\"%s\""
 
-#: commands/tablecmds.c:1765
+#: commands/tablecmds.c:1929
 #, c-format
 msgid "cannot truncate temporary tables of other sessions"
 msgstr "不能缩短其他会话的临时表"
 
-#: commands/tablecmds.c:2006 commands/tablecmds.c:11975
+#: commands/tablecmds.c:2149 commands/tablecmds.c:12688
 #, c-format
 msgid "cannot inherit from partitioned table \"%s\""
 msgstr "无法从分区表\"%s\"继承"
 
-#: commands/tablecmds.c:2011
+#: commands/tablecmds.c:2154
 #, c-format
 msgid "cannot inherit from partition \"%s\""
 msgstr "无法从分区\"%s\"继承"
 
-#: commands/tablecmds.c:2019 parser/parse_utilcmd.c:2199
-#: parser/parse_utilcmd.c:2322
+#: commands/tablecmds.c:2162 parser/parse_utilcmd.c:2269
+#: parser/parse_utilcmd.c:2410
 #, c-format
 msgid "inherited relation \"%s\" is not a table or foreign table"
 msgstr "被继承的关系\"%s\" 不是一个表或外部表"
 
-#: commands/tablecmds.c:2031
+#: commands/tablecmds.c:2174
 #, c-format
 msgid "cannot create a temporary relation as partition of permanent relation \"%s\""
 msgstr "无法创建临时关系作为永久关系的分区\"%s\""
 
-#: commands/tablecmds.c:2040 commands/tablecmds.c:11954
+#: commands/tablecmds.c:2183 commands/tablecmds.c:12667
 #, c-format
 msgid "cannot inherit from temporary relation \"%s\""
 msgstr "不能从临时关系 \"%s\" 继承"
 
-#: commands/tablecmds.c:2050 commands/tablecmds.c:11962
+#: commands/tablecmds.c:2193 commands/tablecmds.c:12675
 #, c-format
 msgid "cannot inherit from temporary relation of another session"
 msgstr "不能从另一个会话的临时关系继承"
 
-#: commands/tablecmds.c:2067 commands/tablecmds.c:12086
-#, c-format
-msgid "relation \"%s\" would be inherited from more than once"
-msgstr "关系 \"%s\" 将被继承多次"
-
-#: commands/tablecmds.c:2116
+#: commands/tablecmds.c:2245
 #, c-format
 msgid "merging multiple inherited definitions of column \"%s\""
 msgstr "合并属性 \"%s\" 的多个继承定义"
 
-#: commands/tablecmds.c:2124
+#: commands/tablecmds.c:2253
 #, c-format
 msgid "inherited column \"%s\" has a type conflict"
 msgstr "继承属性 \"%s\" 类型冲突"
 
-#: commands/tablecmds.c:2126 commands/tablecmds.c:2149
-#: commands/tablecmds.c:2354 commands/tablecmds.c:2384
+#: commands/tablecmds.c:2255 commands/tablecmds.c:2278
+#: commands/tablecmds.c:2491 commands/tablecmds.c:2521
 #: parser/parse_coerce.c:1721 parser/parse_coerce.c:1741
 #: parser/parse_coerce.c:1761 parser/parse_coerce.c:1807
 #: parser/parse_coerce.c:1846 parser/parse_param.c:218
@@ -8559,1139 +8705,1154 @@ msgstr "继承属性 \"%s\" 类型冲突"
 msgid "%s versus %s"
 msgstr "%s 对 %s"
 
-#: commands/tablecmds.c:2135
+#: commands/tablecmds.c:2264
 #, c-format
 msgid "inherited column \"%s\" has a collation conflict"
 msgstr "继承列 \"%s\" 出现排序规则冲突"
 
-#: commands/tablecmds.c:2137 commands/tablecmds.c:2366
-#: commands/tablecmds.c:5446
+#: commands/tablecmds.c:2266 commands/tablecmds.c:2503
+#: commands/tablecmds.c:5586
 #, c-format
 msgid "\"%s\" versus \"%s\""
 msgstr "\"%s\" 对 \"%s\""
 
-#: commands/tablecmds.c:2147
+#: commands/tablecmds.c:2276
 #, c-format
 msgid "inherited column \"%s\" has a storage parameter conflict"
 msgstr "继承列 \"%s\" 有一个存储参数冲突"
 
-#: commands/tablecmds.c:2260 commands/tablecmds.c:9699
-#: parser/parse_utilcmd.c:1116 parser/parse_utilcmd.c:1515
-#: parser/parse_utilcmd.c:1622
+#: commands/tablecmds.c:2292
+#, fuzzy, c-format
+#| msgid "inherited column \"%s\" has a collation conflict"
+msgid "inherited column \"%s\" has a generation conflict"
+msgstr "继承列 \"%s\" 出现排序规则冲突"
+
+#: commands/tablecmds.c:2397 commands/tablecmds.c:10398
+#: parser/parse_utilcmd.c:1063 parser/parse_utilcmd.c:1149
+#: parser/parse_utilcmd.c:1562 parser/parse_utilcmd.c:1669
 #, c-format
 msgid "cannot convert whole-row table reference"
 msgstr "无法转换整行表引用"
 
-#: commands/tablecmds.c:2261 parser/parse_utilcmd.c:1117
+#: commands/tablecmds.c:2398 parser/parse_utilcmd.c:1150
 #, c-format
 msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"."
 msgstr "约束\"%s\"包含到表\"%s\"的整行引用."
 
-#: commands/tablecmds.c:2340
+#: commands/tablecmds.c:2477
 #, c-format
 msgid "merging column \"%s\" with inherited definition"
 msgstr "合并属性 \"%s\" 连同继承定义"
 
-#: commands/tablecmds.c:2344
+#: commands/tablecmds.c:2481
 #, c-format
 msgid "moving and merging column \"%s\" with inherited definition"
 msgstr "移动\"%s\"并且将它与继承的定义合并"
 
-#: commands/tablecmds.c:2345
+#: commands/tablecmds.c:2482
 #, c-format
 msgid "User-specified column moved to the position of the inherited column."
 msgstr "被移动到继承列位置的用户指定列。"
 
-#: commands/tablecmds.c:2352
+#: commands/tablecmds.c:2489
 #, c-format
 msgid "column \"%s\" has a type conflict"
 msgstr "属性 \"%s\" 类型冲突"
 
-#: commands/tablecmds.c:2364
+#: commands/tablecmds.c:2501
 #, c-format
 msgid "column \"%s\" has a collation conflict"
 msgstr "列 \"%s\" 出现排序规则冲突"
 
-#: commands/tablecmds.c:2382
+#: commands/tablecmds.c:2519
 #, c-format
 msgid "column \"%s\" has a storage parameter conflict"
 msgstr "列 \"%s\" 带有一个冲突的存储参数"
 
-#: commands/tablecmds.c:2485
+#: commands/tablecmds.c:2622
 #, c-format
 msgid "column \"%s\" inherits conflicting default values"
 msgstr "属性 \"%s\" 继承与默认值冲突"
 
-#: commands/tablecmds.c:2487
+#: commands/tablecmds.c:2624
 #, c-format
 msgid "To resolve the conflict, specify a default explicitly."
 msgstr "要解决冲突, 指定明确的默认值"
 
-#: commands/tablecmds.c:2534
+#: commands/tablecmds.c:2669
 #, c-format
 msgid "check constraint name \"%s\" appears multiple times but with different expressions"
 msgstr "检查约束名称\"%s\"出现多次,但是带有不同的表达式"
 
-#: commands/tablecmds.c:2711
+#: commands/tablecmds.c:2846
 #, c-format
 msgid "cannot rename column of typed table"
 msgstr "无法重新命名已确定类型表(typed table)的列"
 
-#: commands/tablecmds.c:2730
+#: commands/tablecmds.c:2865
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, composite type, index, or foreign table"
 msgstr "\"%s\" 不是一个表,视图,物化视图,组合类型,索引或者外部表"
 
-#: commands/tablecmds.c:2824
+#: commands/tablecmds.c:2959
 #, c-format
 msgid "inherited column \"%s\" must be renamed in child tables too"
 msgstr "在子表中继承属性 \"%s\" 也必需重命名"
 
-#: commands/tablecmds.c:2856
+#: commands/tablecmds.c:2991
 #, c-format
 msgid "cannot rename system column \"%s\""
 msgstr "不能对系统字段 \"%s\" 重命名"
 
-#: commands/tablecmds.c:2871
+#: commands/tablecmds.c:3006
 #, c-format
 msgid "cannot rename inherited column \"%s\""
 msgstr "不能对继承字段 \"%s\" 重命名"
 
-#: commands/tablecmds.c:3023
+#: commands/tablecmds.c:3158
 #, c-format
 msgid "inherited constraint \"%s\" must be renamed in child tables too"
 msgstr "继承约束 \"%s\" 在子表中也必须重命名"
 
-#: commands/tablecmds.c:3030
+#: commands/tablecmds.c:3165
 #, c-format
 msgid "cannot rename inherited constraint \"%s\""
 msgstr "无法重命名约束\"%s\""
 
 #. translator: first %s is a SQL command, eg ALTER TABLE
-#: commands/tablecmds.c:3256
+#: commands/tablecmds.c:3398
 #, 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:3266
+#: commands/tablecmds.c:3408
 #, c-format
 msgid "cannot %s \"%s\" because it has pending trigger events"
 msgstr "无法%s \"%s\"因为它有一个待发生的触发器事件"
 
-#: commands/tablecmds.c:4414
+#: commands/tablecmds.c:4536
 #, c-format
 msgid "cannot rewrite system relation \"%s\""
 msgstr "不能改写系统关系 \"%s\""
 
-#: commands/tablecmds.c:4420
+#: commands/tablecmds.c:4542
 #, c-format
 msgid "cannot rewrite table \"%s\" used as a catalog table"
 msgstr "无法重写表\"%s\",以用作一个目录表"
 
-#: commands/tablecmds.c:4430
+#: commands/tablecmds.c:4552
 #, c-format
 msgid "cannot rewrite temporary tables of other sessions"
 msgstr "不能改写其他会话的临时表"
 
-#: commands/tablecmds.c:4707
+#: commands/tablecmds.c:4831
 #, c-format
 msgid "rewriting table \"%s\""
 msgstr "重写表 \"%s\""
 
-#: commands/tablecmds.c:4711
+#: commands/tablecmds.c:4835
 #, c-format
 msgid "verifying table \"%s\""
 msgstr "校验表\"%s\""
 
-#: commands/tablecmds.c:4827
+#: commands/tablecmds.c:4965
 #, c-format
 msgid "column \"%s\" contains null values"
 msgstr "字段 \"%s\" 包含空值"
 
-#: commands/tablecmds.c:4843 commands/tablecmds.c:8920
+#: commands/tablecmds.c:4981 commands/tablecmds.c:9635
 #, c-format
 msgid "check constraint \"%s\" is violated by some row"
 msgstr "一些行违反了检查约束 \"%s\""
 
-#: commands/tablecmds.c:4861
+#: commands/tablecmds.c:4999
 #, c-format
 msgid "updated partition constraint for default partition would be violated by some row"
 msgstr "某些行将违反默认分区的更新分区约束"
 
-#: commands/tablecmds.c:4865
+#: commands/tablecmds.c:5003
 #, c-format
 msgid "partition constraint is violated by some row"
 msgstr "某些行违反了分区约束"
 
-#: commands/tablecmds.c:5007 commands/trigger.c:310 rewrite/rewriteDefine.c:266
-#: rewrite/rewriteDefine.c:919
-#, c-format
-msgid "\"%s\" is not a table or view"
-msgstr "\"%s\" 不是一个视图或视图"
-
-#: commands/tablecmds.c:5010 commands/trigger.c:1520 commands/trigger.c:1626
+#: commands/tablecmds.c:5148 commands/trigger.c:1539 commands/trigger.c:1645
 #, c-format
 msgid "\"%s\" is not a table, view, or foreign table"
 msgstr "\"%s\"不是表,视图或外部表"
 
-#: commands/tablecmds.c:5013
+#: commands/tablecmds.c:5151
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, or index"
 msgstr "\"%s\" 不是表,视图,物化视图,或者索引"
 
-#: commands/tablecmds.c:5019
+#: commands/tablecmds.c:5157
 #, c-format
 msgid "\"%s\" is not a table, materialized view, or index"
 msgstr "\"%s\" 不是一个表,物化视图或索引"
 
-#: commands/tablecmds.c:5022
+#: commands/tablecmds.c:5160
 #, c-format
 msgid "\"%s\" is not a table, materialized view, or foreign table"
 msgstr "\"%s\"不是表、物化视图或者外部表"
 
-#: commands/tablecmds.c:5025
+#: commands/tablecmds.c:5163
 #, c-format
 msgid "\"%s\" is not a table or foreign table"
 msgstr "\"%s\" 不是表或外部表"
 
-#: commands/tablecmds.c:5028
+#: commands/tablecmds.c:5166
 #, c-format
 msgid "\"%s\" is not a table, composite type, or foreign table"
 msgstr "\"%s\" 不是一个表,组合类型或者外部表"
 
-#: commands/tablecmds.c:5031 commands/tablecmds.c:6449
+#: commands/tablecmds.c:5169 commands/tablecmds.c:6644
 #, c-format
 msgid "\"%s\" is not a table, materialized view, index, or foreign table"
 msgstr "\"%s\"不是表,物化视图, 索引或外部表"
 
-#: commands/tablecmds.c:5041
+#: commands/tablecmds.c:5179
 #, c-format
 msgid "\"%s\" is of the wrong type"
 msgstr "\"%s\" 是一个错误类型"
 
-#: commands/tablecmds.c:5216 commands/tablecmds.c:5223
+#: commands/tablecmds.c:5354 commands/tablecmds.c:5361
 #, c-format
 msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it"
 msgstr "不能修改类型 \"%s\", 因为列 \"%s.%s\"正在使用它"
 
-#: commands/tablecmds.c:5230
+#: commands/tablecmds.c:5368
 #, c-format
 msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type"
 msgstr "无法修改外部表\"%s\" ,因为列\"%s.%s\"使用它的行类型"
 
-#: commands/tablecmds.c:5237
+#: commands/tablecmds.c:5375
 #, c-format
 msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type"
 msgstr "无法修改表\"%s\" ,因为列\"%s.%s\"使用它的行类型"
 
-#: commands/tablecmds.c:5291
+#: commands/tablecmds.c:5431
 #, c-format
 msgid "cannot alter type \"%s\" because it is the type of a typed table"
 msgstr "无法修改已确定类型表(typed table)中列的类型\"%s\""
 
-#: commands/tablecmds.c:5293
+#: commands/tablecmds.c:5433
 #, c-format
 msgid "Use ALTER ... CASCADE to alter the typed tables too."
 msgstr "使用ALTER .. CASCADE 把类型表一并修改."
 
-#: commands/tablecmds.c:5339
+#: commands/tablecmds.c:5479
 #, c-format
 msgid "type %s is not a composite type"
 msgstr "类型 %s 不是复合类型"
 
-#: commands/tablecmds.c:5365
+#: commands/tablecmds.c:5505
 #, c-format
 msgid "cannot add column to typed table"
 msgstr "无法为已确定类型表(typed table)添加列"
 
-#: commands/tablecmds.c:5409
+#: commands/tablecmds.c:5549
 #, c-format
 msgid "cannot add column to a partition"
 msgstr "无法将列添加到分区"
 
-#: commands/tablecmds.c:5438 commands/tablecmds.c:12213
+#: commands/tablecmds.c:5578 commands/tablecmds.c:12918
 #, c-format
 msgid "child table \"%s\" has different type for column \"%s\""
 msgstr "子表 \"%s\" 的字段 \"%s\" 有不同的类型"
 
-#: commands/tablecmds.c:5444 commands/tablecmds.c:12220
+#: commands/tablecmds.c:5584 commands/tablecmds.c:12925
 #, c-format
 msgid "child table \"%s\" has different collation for column \"%s\""
 msgstr "子表 \"%s\" 的字段 \"%s\" 有不同的排序规则"
 
-#: commands/tablecmds.c:5454
-#, c-format
-msgid "child table \"%s\" has a conflicting \"%s\" column"
-msgstr "子表\"%s\"有一个冲突列\"%s\""
-
-#: commands/tablecmds.c:5465
+#: commands/tablecmds.c:5598
 #, c-format
 msgid "merging definition of column \"%s\" for child \"%s\""
 msgstr "合并子表 \"%2$s\" 的字段 \"%1$s\" 定义"
 
-#: commands/tablecmds.c:5489
+#: commands/tablecmds.c:5622
 #, c-format
 msgid "cannot recursively add identity column to table that has child tables"
 msgstr "无法将标识列递归添加到具有子表的表中"
 
-#: commands/tablecmds.c:5738
+#: commands/tablecmds.c:5856
 #, c-format
 msgid "column must be added to child tables too"
 msgstr "属性也必需加入到子表中"
 
-#: commands/tablecmds.c:5813
+#: commands/tablecmds.c:5931
 #, c-format
 msgid "column \"%s\" of relation \"%s\" already exists, skipping"
 msgstr "关系 \"%2$s\" 的列 \"%1$s\" 已经存在,跳过"
 
-#: commands/tablecmds.c:5820
+#: commands/tablecmds.c:5938
 #, c-format
 msgid "column \"%s\" of relation \"%s\" already exists"
 msgstr "关系 \"%s\" 的属性 \"%s\" 已经存在"
 
-#: commands/tablecmds.c:5918 commands/tablecmds.c:9379
+#: commands/tablecmds.c:6004 commands/tablecmds.c:10078
 #, c-format
 msgid "cannot remove constraint from only the partitioned table when partitions exist"
 msgstr "存在分区时,不能仅从分区表中删除约束"
 
-#: commands/tablecmds.c:5919 commands/tablecmds.c:6063
-#: commands/tablecmds.c:6847 commands/tablecmds.c:9380
+#: commands/tablecmds.c:6005 commands/tablecmds.c:6274
+#: commands/tablecmds.c:7042 commands/tablecmds.c:10079
 #, c-format
 msgid "Do not specify the ONLY keyword."
 msgstr "不要指定ONLY关键字"
 
-#: commands/tablecmds.c:5951 commands/tablecmds.c:6099
-#: commands/tablecmds.c:6154 commands/tablecmds.c:6230
-#: commands/tablecmds.c:6324 commands/tablecmds.c:6383
-#: commands/tablecmds.c:6533 commands/tablecmds.c:6603
-#: commands/tablecmds.c:6695 commands/tablecmds.c:9519
-#: commands/tablecmds.c:10294
+#: commands/tablecmds.c:6042 commands/tablecmds.c:6200
+#: commands/tablecmds.c:6342 commands/tablecmds.c:6425
+#: commands/tablecmds.c:6519 commands/tablecmds.c:6578
+#: commands/tablecmds.c:6728 commands/tablecmds.c:6798
+#: commands/tablecmds.c:6890 commands/tablecmds.c:10218
+#: commands/tablecmds.c:11049
 #, c-format
 msgid "cannot alter system column \"%s\""
 msgstr "不能更改系统字段 \"%s\""
 
-#: commands/tablecmds.c:5957 commands/tablecmds.c:6160
+#: commands/tablecmds.c:6048 commands/tablecmds.c:6348
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is an identity column"
 msgstr "关系\"%2$s\"的列\"%1$s\"是标识列"
 
-#: commands/tablecmds.c:5993
+#: commands/tablecmds.c:6084
 #, c-format
 msgid "column \"%s\" is in a primary key"
 msgstr "字段 \"%s\" 是一个主键"
 
-#: commands/tablecmds.c:6015
+#: commands/tablecmds.c:6106
 #, c-format
 msgid "column \"%s\" is marked NOT NULL in parent table"
 msgstr "列\"%s\"在父表中标记为NOT NULL"
 
-#: commands/tablecmds.c:6062
+#: commands/tablecmds.c:6271 commands/tablecmds.c:7492
+#, c-format
+msgid "constraint must be added to child tables too"
+msgstr "必须也要对子表加上约束"
+
+#: commands/tablecmds.c:6272
+#, fuzzy, c-format
+#| msgid "column \"%s\" of relation \"%s\" already exists"
+msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL."
+msgstr "关系 \"%s\" 的属性 \"%s\" 已经存在"
+
+#: commands/tablecmds.c:6307
 #, c-format
-msgid "cannot add constraint to only the partitioned table when partitions exist"
-msgstr "存在分区时,无法仅向分区表添加约束"
+msgid "existing constraints on column \"%s\".\"%s\" are sufficient to prove that it does not contain nulls"
+msgstr ""
 
-#: commands/tablecmds.c:6162
+#: commands/tablecmds.c:6350
 #, c-format
 msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead."
 msgstr "用ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY代替"
 
-#: commands/tablecmds.c:6241
+#: commands/tablecmds.c:6355
+#, fuzzy, c-format
+#| msgid "column \"%s\" of relation \"%s\" is an identity column"
+msgid "column \"%s\" of relation \"%s\" is a generated column"
+msgstr "关系\"%2$s\"的列\"%1$s\"是标识列"
+
+#: commands/tablecmds.c:6436
 #, c-format
 msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added"
 msgstr "在添加标识之前,必须声明关系\"%2$s\"的列\"%1$s\"为NOT NULL"
 
-#: commands/tablecmds.c:6247
+#: commands/tablecmds.c:6442
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is already an identity column"
 msgstr "关系\"%2$s\"的列\"%1$s\"已经是标识列"
 
-#: commands/tablecmds.c:6253
+#: commands/tablecmds.c:6448
 #, c-format
 msgid "column \"%s\" of relation \"%s\" already has a default value"
 msgstr "关系\"%2$s\"的列\"%1$s\"已具有默认值"
 
-#: commands/tablecmds.c:6330 commands/tablecmds.c:6391
+#: commands/tablecmds.c:6525 commands/tablecmds.c:6586
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is not an identity column"
 msgstr "关系\"%2$s\"的列\"%1$s\"不是标识列"
 
-#: commands/tablecmds.c:6396
+#: commands/tablecmds.c:6591
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping"
 msgstr "关系\"%2$s\"的列\"%1$s\"不是标识列,跳过"
 
-#: commands/tablecmds.c:6461
+#: commands/tablecmds.c:6656
 #, c-format
 msgid "cannot refer to non-index column by number"
 msgstr "不能按数字引用非索引列"
 
-#: commands/tablecmds.c:6492
+#: commands/tablecmds.c:6687
 #, c-format
 msgid "statistics target %d is too low"
 msgstr "目标统计 %d 太低"
 
-#: commands/tablecmds.c:6500
+#: commands/tablecmds.c:6695
 #, c-format
 msgid "lowering statistics target to %d"
 msgstr "降低目标统计到 %d"
 
-#: commands/tablecmds.c:6523
+#: commands/tablecmds.c:6718
 #, c-format
 msgid "column number %d of relation \"%s\" does not exist"
 msgstr "在关系\"%2$s\"中的列号 %1$d 不存在"
 
-#: commands/tablecmds.c:6542
+#: commands/tablecmds.c:6737
 #, c-format
 msgid "cannot alter statistics on included column \"%s\" of index \"%s\""
 msgstr "无法更改索引\"%2$s\"的包含列\"%1$s\"的统计信息"
 
-#: commands/tablecmds.c:6547
+#: commands/tablecmds.c:6742
 #, c-format
 msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\""
 msgstr "无法更改索引\"%2$s\"的非表达式列\"%1$s\"的统计信息"
 
-#: commands/tablecmds.c:6549
+#: commands/tablecmds.c:6744
 #, c-format
 msgid "Alter statistics on table column instead."
 msgstr "改为更改表列的统计信息."
 
-#: commands/tablecmds.c:6675
+#: commands/tablecmds.c:6870
 #, c-format
 msgid "invalid storage type \"%s\""
 msgstr "无效存储类型 \"%s\""
 
-#: commands/tablecmds.c:6707
+#: commands/tablecmds.c:6902
 #, c-format
 msgid "column data type %s can only have storage PLAIN"
 msgstr "字段数据类型 %s 只能存储为明文 (PLAIN)"
 
-#: commands/tablecmds.c:6742
+#: commands/tablecmds.c:6937
 #, c-format
 msgid "cannot drop column from typed table"
 msgstr "无法从已确定类型表(typed table)中删除列"
 
-#: commands/tablecmds.c:6787
+#: commands/tablecmds.c:6982
 #, c-format
 msgid "column \"%s\" of relation \"%s\" does not exist, skipping"
 msgstr "关系 \"%2$s\" 的 列\"%1$s\"不存在,跳过"
 
-#: commands/tablecmds.c:6800
+#: commands/tablecmds.c:6995
 #, c-format
 msgid "cannot drop system column \"%s\""
 msgstr "不能删除系统字段 \"%s\""
 
-#: commands/tablecmds.c:6807
+#: commands/tablecmds.c:7002
 #, c-format
 msgid "cannot drop inherited column \"%s\""
 msgstr "不能删除继承字段 \"%s\""
 
-#: commands/tablecmds.c:6818
+#: commands/tablecmds.c:7013
 #, c-format
 msgid "cannot drop column named in partition key"
 msgstr "无法删除分区键中的命名列"
 
-#: commands/tablecmds.c:6822
+#: commands/tablecmds.c:7017
 #, c-format
 msgid "cannot drop column referenced in partition key expression"
 msgstr "无法删除分区键表达式中引用的列"
 
-#: commands/tablecmds.c:6846
+#: commands/tablecmds.c:7041
 #, c-format
 msgid "cannot drop column from only the partitioned table when partitions exist"
 msgstr "存在分区时,不能只从分区表中删除列"
 
-#: commands/tablecmds.c:7051
+#: commands/tablecmds.c:7213
 #, c-format
 msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables"
 msgstr "分区表不支持ALTER TABLE / ADD CONSTRAINT USING INDEX"
 
-#: commands/tablecmds.c:7076
+#: commands/tablecmds.c:7238
 #, 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:7292
-#, c-format
-msgid "constraint must be added to child tables too"
-msgstr "必须也要对子表加上约束"
-
-#: commands/tablecmds.c:7365
-#, c-format
-msgid "cannot reference partitioned table \"%s\""
-msgstr "无法引用分区表\"%s\""
-
-#: commands/tablecmds.c:7373
+#: commands/tablecmds.c:7572
 #, c-format
 msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\""
 msgstr "不能对引用关系\"%2$s\"的分区表\"%1$s\"使用ONLY作为外键"
 
-#: commands/tablecmds.c:7379
+#: commands/tablecmds.c:7578
 #, c-format
 msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\""
 msgstr "无法在引用关系\"%2$s\"的分区表\"%1$s\"添加 NOT VALID外键"
 
-#: commands/tablecmds.c:7382
+#: commands/tablecmds.c:7581
 #, c-format
 msgid "This feature is not yet supported on partitioned tables."
 msgstr "分区表尚不支持此功能"
 
-#: commands/tablecmds.c:7388
+#: commands/tablecmds.c:7588 commands/tablecmds.c:7993
 #, c-format
 msgid "referenced relation \"%s\" is not a table"
 msgstr "关联的关系 \"%s\" 不是一个表"
 
-#: commands/tablecmds.c:7411
+#: commands/tablecmds.c:7611
 #, c-format
 msgid "constraints on permanent tables may reference only permanent tables"
 msgstr "永久表上的约束只能引用永久表"
 
-#: commands/tablecmds.c:7418
+#: commands/tablecmds.c:7618
 #, c-format
 msgid "constraints on unlogged tables may reference only permanent or unlogged tables"
 msgstr "无事务日志的表上的约束只能引用持久表或者无事务日志的表"
 
-#: commands/tablecmds.c:7424
+#: commands/tablecmds.c:7624
 #, c-format
 msgid "constraints on temporary tables may reference only temporary tables"
 msgstr "临时表上的约束只能引用临时表"
 
-#: commands/tablecmds.c:7428
+#: commands/tablecmds.c:7628
 #, c-format
 msgid "constraints on temporary tables must involve temporary tables of this session"
 msgstr "临时表上的约束只能引用该会话里的临时表"
 
-#: commands/tablecmds.c:7488
+#: commands/tablecmds.c:7694 commands/tablecmds.c:7700
+#, fuzzy, c-format
+#| msgid "validating foreign key constraint \"%s\""
+msgid "invalid %s action for foreign key constraint containing generated column"
+msgstr "正验证外键约束 \"%s\""
+
+#: commands/tablecmds.c:7716
 #, c-format
 msgid "number of referencing and referenced columns for foreign key disagree"
 msgstr "外键的关联数和关联字段不一致"
 
-#: commands/tablecmds.c:7595
+#: commands/tablecmds.c:7823
 #, c-format
 msgid "foreign key constraint \"%s\" cannot be implemented"
 msgstr "无法实现外键约束 \"%s\""
 
-#: commands/tablecmds.c:7598
+#: commands/tablecmds.c:7825
 #, c-format
 msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s."
 msgstr "关键字段 \"%s\" 和 \"%s\" 为混和类型: %s 和 %s."
 
-#: commands/tablecmds.c:8220 commands/tablecmds.c:8385
-#: commands/tablecmds.c:9336 commands/tablecmds.c:9411
+#: commands/tablecmds.c:8189 commands/tablecmds.c:8577
+#: parser/parse_utilcmd.c:753 parser/parse_utilcmd.c:882
+#, c-format
+msgid "foreign key constraints are not supported on foreign tables"
+msgstr "外部表上不支持外键约束"
+
+#: commands/tablecmds.c:8944 commands/tablecmds.c:9107
+#: commands/tablecmds.c:10035 commands/tablecmds.c:10110
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" does not exist"
 msgstr "关系 \"%2$s\" 的 约束\"%1$s\" 不存在"
 
-#: commands/tablecmds.c:8227
+#: commands/tablecmds.c:8951
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint"
 msgstr "关系 \"%2$s\" 的 约束\"%1$s\"不是外键约束"
 
-#: commands/tablecmds.c:8393
+#: commands/tablecmds.c:9115
 #, 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:8463
+#: commands/tablecmds.c:9185
 #, c-format
 msgid "constraint must be validated on child tables too"
 msgstr "子表上的约束也必须进行验证"
 
-#: commands/tablecmds.c:8531
+#: commands/tablecmds.c:9251
 #, c-format
 msgid "column \"%s\" referenced in foreign key constraint does not exist"
 msgstr "在外键约束中的关联字段 \"%s\" 不存在"
 
-#: commands/tablecmds.c:8536
+#: commands/tablecmds.c:9256
 #, c-format
 msgid "cannot have more than %d keys in a foreign key"
 msgstr "在一个外键中不能超过 %d 个键"
 
-#: commands/tablecmds.c:8601
+#: commands/tablecmds.c:9321
 #, c-format
 msgid "cannot use a deferrable primary key for referenced table \"%s\""
 msgstr "无法为被引用的表\"%s\"使用可延迟的主键"
 
-#: commands/tablecmds.c:8618
+#: commands/tablecmds.c:9338
 #, c-format
 msgid "there is no primary key for referenced table \"%s\""
 msgstr "关联表 \"%s\" 没有主键"
 
-#: commands/tablecmds.c:8683
+#: commands/tablecmds.c:9403
 #, c-format
 msgid "foreign key referenced-columns list must not contain duplicates"
 msgstr "外键参照列的列表不能有重复值"
 
-#: commands/tablecmds.c:8777
+#: commands/tablecmds.c:9497
 #, c-format
 msgid "cannot use a deferrable unique constraint for referenced table \"%s\""
 msgstr "无法为被引用的表\"%s\"使用可延迟的唯一性约束"
 
-#: commands/tablecmds.c:8782
+#: commands/tablecmds.c:9502
 #, c-format
 msgid "there is no unique constraint matching given keys for referenced table \"%s\""
 msgstr "没有唯一约束与关联表 \"%s\" 给定的键值匹配"
 
-#: commands/tablecmds.c:8953
+#: commands/tablecmds.c:9670
 #, c-format
 msgid "validating foreign key constraint \"%s\""
 msgstr "正验证外键约束 \"%s\""
 
-#: commands/tablecmds.c:9292
+#: commands/tablecmds.c:9991
 #, c-format
 msgid "cannot drop inherited constraint \"%s\" of relation \"%s\""
 msgstr "不能删除关系\"%2$s\"的继承约束\"%1$s\""
 
-#: commands/tablecmds.c:9342
+#: commands/tablecmds.c:10041
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping"
 msgstr "关系 \"%2$s\" 的 约束\"%1$s\" 不存在"
 
-#: commands/tablecmds.c:9503
+#: commands/tablecmds.c:10202
 #, c-format
 msgid "cannot alter column type of typed table"
 msgstr "无法修改已确定类型表(typed table)中列的类型"
 
-#: commands/tablecmds.c:9526
+#: commands/tablecmds.c:10225
 #, c-format
 msgid "cannot alter inherited column \"%s\""
 msgstr "不能修改继承字段 \"%s\""
 
-#: commands/tablecmds.c:9537
+#: commands/tablecmds.c:10236
 #, c-format
 msgid "cannot alter type of column named in partition key"
 msgstr "无法更改分区键中命名列的类型"
 
-#: commands/tablecmds.c:9541
+#: commands/tablecmds.c:10240
 #, c-format
 msgid "cannot alter type of column referenced in partition key expression"
 msgstr "无法更改分区键表达式中引用的列的类型"
 
-#: commands/tablecmds.c:9591
+#: commands/tablecmds.c:10290
 #, c-format
 msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s"
 msgstr "用于列\"%s\"的USING子句的结果不能被自动地转换成类型%s"
 
-#: commands/tablecmds.c:9594
+#: commands/tablecmds.c:10293
 #, c-format
 msgid "You might need to add an explicit cast."
 msgstr "您可能需要增加一个显式转换。"
 
-#: commands/tablecmds.c:9598
+#: commands/tablecmds.c:10297
 #, 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:9601
+#: commands/tablecmds.c:10300
 #, c-format
 msgid "You might need to specify \"USING %s::%s\"."
 msgstr "您可能需要指定\"USING %s::%s\"。"
 
-#: commands/tablecmds.c:9700
+#: commands/tablecmds.c:10399
 #, c-format
 msgid "USING expression contains a whole-row table reference."
 msgstr "USING表达式包含整行表引用."
 
-#: commands/tablecmds.c:9711
+#: commands/tablecmds.c:10410
 #, c-format
 msgid "type of inherited column \"%s\" must be changed in child tables too"
 msgstr "在子表中继承字段 \"%s\" 的类型也必需改变"
 
-#: commands/tablecmds.c:9815
+#: commands/tablecmds.c:10535
 #, c-format
 msgid "cannot alter type of column \"%s\" twice"
 msgstr "不能更改字段 \"%s\" 的类型两遍"
 
-#: commands/tablecmds.c:9851
+#: commands/tablecmds.c:10573
+#, fuzzy, c-format
+#| msgid "default for column \"%s\" cannot be cast automatically to type %s"
+msgid "generation expression for column \"%s\" cannot be cast automatically to type %s"
+msgstr "字段 \"%s\" 的默认值不能转换成类型 %s"
+
+#: commands/tablecmds.c:10578
 #, c-format
 msgid "default for column \"%s\" cannot be cast automatically to type %s"
 msgstr "字段 \"%s\" 的默认值不能转换成类型 %s"
 
-#: commands/tablecmds.c:9957
+#: commands/tablecmds.c:10667
+#, fuzzy, c-format
+#| msgid "cannot alter type of a column used by a view or rule"
+msgid "cannot alter type of a column used by a generated column"
+msgstr "不能使用视图或规则改变一个字段的类型"
+
+#: commands/tablecmds.c:10668
+#, c-format
+msgid "Column \"%s\" is used by generated column \"%s\"."
+msgstr ""
+
+#: commands/tablecmds.c:10700
 #, c-format
 msgid "cannot alter type of a column used by a view or rule"
 msgstr "不能使用视图或规则改变一个字段的类型"
 
-#: commands/tablecmds.c:9958 commands/tablecmds.c:9977
-#: commands/tablecmds.c:9995
+#: commands/tablecmds.c:10701 commands/tablecmds.c:10720
+#: commands/tablecmds.c:10738
 #, c-format
 msgid "%s depends on column \"%s\""
 msgstr "%s 倚赖于字段 \"%s\""
 
-#: commands/tablecmds.c:9976
+#: commands/tablecmds.c:10719
 #, c-format
 msgid "cannot alter type of a column used in a trigger definition"
 msgstr "无法更改触发器定义中的列类型"
 
-#: commands/tablecmds.c:9994
+#: commands/tablecmds.c:10737
 #, c-format
 msgid "cannot alter type of a column used in a policy definition"
 msgstr "无法修改被用在策略定义中的列的类型"
 
-#: commands/tablecmds.c:10797 commands/tablecmds.c:10809
+#: commands/tablecmds.c:11567 commands/tablecmds.c:11579
 #, c-format
 msgid "cannot change owner of index \"%s\""
 msgstr "无法改变索引\"%s\" 的属主"
 
-#: commands/tablecmds.c:10799 commands/tablecmds.c:10811
+#: commands/tablecmds.c:11569 commands/tablecmds.c:11581
 #, c-format
 msgid "Change the ownership of the index's table, instead."
 msgstr "可以改变索引表的所有权"
 
-#: commands/tablecmds.c:10825
+#: commands/tablecmds.c:11595
 #, c-format
 msgid "cannot change owner of sequence \"%s\""
 msgstr "无法改变序列 \"%s\"的属主"
 
-#: commands/tablecmds.c:10839 commands/tablecmds.c:14123
+#: commands/tablecmds.c:11609 commands/tablecmds.c:14806
 #, c-format
 msgid "Use ALTER TYPE instead."
 msgstr "请使用ALTER TYPE"
 
-#: commands/tablecmds.c:10848
+#: commands/tablecmds.c:11618
 #, c-format
 msgid "\"%s\" is not a table, view, sequence, or foreign table"
 msgstr "\"%s\" 不是表,视图,序列或者外部表"
 
-#: commands/tablecmds.c:11188
+#: commands/tablecmds.c:11958
 #, c-format
 msgid "cannot have multiple SET TABLESPACE subcommands"
 msgstr "无法执行多个SET TABLESPACE子命令"
 
-#: commands/tablecmds.c:11263
+#: commands/tablecmds.c:12033
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, index, or TOAST table"
 msgstr "\"%s\"不是表,视图, 物化视图, 索引或TOAST表"
 
-#: commands/tablecmds.c:11296 commands/view.c:508
+#: commands/tablecmds.c:12066 commands/view.c:504
 #, c-format
 msgid "WITH CHECK OPTION is supported only on automatically updatable views"
 msgstr "WITH CHECK OPTION只能用于自动更新视图上"
 
-#: commands/tablecmds.c:11438
+#: commands/tablecmds.c:12206
 #, c-format
 msgid "cannot move system relation \"%s\""
 msgstr "不能删除系统关系 \"%s\""
 
-#: commands/tablecmds.c:11454
+#: commands/tablecmds.c:12222
 #, c-format
 msgid "cannot move temporary tables of other sessions"
 msgstr "不能在其他会话中删除临时表"
 
-#: commands/tablecmds.c:11645
+#: commands/tablecmds.c:12390
 #, c-format
 msgid "only tables, indexes, and materialized views exist in tablespaces"
 msgstr "只有表、索引以及物化视图存在于表空间当中"
 
-#: commands/tablecmds.c:11657
+#: commands/tablecmds.c:12402
 #, c-format
 msgid "cannot move relations in to or out of pg_global tablespace"
 msgstr "无法将关系移入或移出表空间pg_global"
 
-#: commands/tablecmds.c:11750
+#: commands/tablecmds.c:12494
 #, c-format
 msgid "aborting because lock on relation \"%s.%s\" is not available"
 msgstr "由于关系\"%s.%s\"上的锁不可用而中止"
 
 # describe.c:1542
-#: commands/tablecmds.c:11766
+#: commands/tablecmds.c:12510
 #, c-format
 msgid "no matching relations in tablespace \"%s\" found"
 msgstr "表空间\"%s\"中没有找到符合的关系"
 
-#: commands/tablecmds.c:11833 storage/buffer/bufmgr.c:915
-#, c-format
-msgid "invalid page in block %u of relation %s"
-msgstr "关系 \"%2$s\" 中的块 %1$u 存在无效的页"
-
-#: commands/tablecmds.c:11913
+#: commands/tablecmds.c:12626
 #, c-format
 msgid "cannot change inheritance of typed table"
 msgstr "无法改变已确定类型表(typed table)的继承性"
 
-#: commands/tablecmds.c:11918 commands/tablecmds.c:12461
+#: commands/tablecmds.c:12631 commands/tablecmds.c:13127
 #, c-format
 msgid "cannot change inheritance of a partition"
 msgstr "无法更改分区的继承"
 
-#: commands/tablecmds.c:11923
+#: commands/tablecmds.c:12636
 #, c-format
 msgid "cannot change inheritance of partitioned table"
 msgstr "无法更改分区表的继承"
 
-#: commands/tablecmds.c:11969
+#: commands/tablecmds.c:12682
 #, c-format
 msgid "cannot inherit to temporary relation of another session"
 msgstr "无法继承来自另一会话中的临时关系"
 
-#: commands/tablecmds.c:11982
+#: commands/tablecmds.c:12695
 #, c-format
 msgid "cannot inherit from a partition"
 msgstr "无法从分区继承"
 
-#: commands/tablecmds.c:12004 commands/tablecmds.c:14707
+#: commands/tablecmds.c:12717 commands/tablecmds.c:15442
 #, c-format
 msgid "circular inheritance not allowed"
 msgstr "不允许循环继承"
 
-#: commands/tablecmds.c:12005 commands/tablecmds.c:14708
+#: commands/tablecmds.c:12718 commands/tablecmds.c:15443
 #, c-format
 msgid "\"%s\" is already a child of \"%s\"."
 msgstr "\"%s\" 已经是 \"%s\"的子表了."
 
-#: commands/tablecmds.c:12013
-#, c-format
-msgid "table \"%s\" without OIDs cannot inherit from table \"%s\" with OIDs"
-msgstr "不带有OIDs的表\"%s\"无法从带有OIDs的表\"%s\"继承。"
-
-#: commands/tablecmds.c:12026
+#: commands/tablecmds.c:12731
 #, c-format
 msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child"
 msgstr "触发器\"%s\"阻止表\"%s\"成为继承子表"
 
-#: commands/tablecmds.c:12028
-#, c-format
-msgid "ROW triggers with transition tables are not supported in inheritance hierarchies"
+#: commands/tablecmds.c:12733
+#, fuzzy, c-format
+#| msgid "ROW triggers with transition tables are not supported in inheritance hierarchies"
+msgid "ROW triggers with transition tables are not supported in inheritance hierarchies."
 msgstr "继承层次结构中不支持具有转换表的行触发器"
 
-#: commands/tablecmds.c:12231
+#: commands/tablecmds.c:12936
 #, c-format
 msgid "column \"%s\" in child table must be marked NOT NULL"
 msgstr "在子表中的列\"%s\"必须标识为NOT NULL"
 
-#: commands/tablecmds.c:12258 commands/tablecmds.c:12297
+#: commands/tablecmds.c:12963
 #, c-format
 msgid "child table is missing column \"%s\""
 msgstr "在子表中没有列\"%s\""
 
-#: commands/tablecmds.c:12385
+#: commands/tablecmds.c:13051
 #, c-format
 msgid "child table \"%s\" has different definition for check constraint \"%s\""
 msgstr "子表 \"%s\" 对于检查约束\"%s\"有不同的定义"
 
-#: commands/tablecmds.c:12393
+#: commands/tablecmds.c:13059
 #, c-format
 msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\""
 msgstr "约束 \"%s\" 与子表中的非继承约束 \"%s\"相冲突"
 
-#: commands/tablecmds.c:12404
+#: commands/tablecmds.c:13070
 #, c-format
 msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\""
 msgstr "约束\"%s\"与子表\"%s\"上的 NOT VALID 约束冲突"
 
-#: commands/tablecmds.c:12439
+#: commands/tablecmds.c:13105
 #, c-format
 msgid "child table is missing constraint \"%s\""
 msgstr "子表丢失约束\"%s\""
 
-#: commands/tablecmds.c:12528
+#: commands/tablecmds.c:13194
 #, c-format
 msgid "relation \"%s\" is not a partition of relation \"%s\""
 msgstr "关系\"%s\"不是关系\"%s\"的分区"
 
-#: commands/tablecmds.c:12534
+#: commands/tablecmds.c:13200
 #, c-format
 msgid "relation \"%s\" is not a parent of relation \"%s\""
 msgstr "关系 \"%s\" 不是关系\"%s\"的父表"
 
-#: commands/tablecmds.c:12760
+#: commands/tablecmds.c:13428
 #, c-format
 msgid "typed tables cannot inherit"
 msgstr "类型表不能继承"
 
-#: commands/tablecmds.c:12791
+#: commands/tablecmds.c:13458
 #, c-format
 msgid "table is missing column \"%s\""
 msgstr "表中没有列\"%s\""
 
-#: commands/tablecmds.c:12802
+#: commands/tablecmds.c:13469
 #, c-format
 msgid "table has column \"%s\" where type requires \"%s\""
 msgstr "表中含有列\"%s\",需要类型\"%s\""
 
-#: commands/tablecmds.c:12811
+#: commands/tablecmds.c:13478
 #, c-format
 msgid "table \"%s\" has different type for column \"%s\""
 msgstr "表\"%s\"中的列\"%s\"带有不同的类型"
 
-#: commands/tablecmds.c:12825
+#: commands/tablecmds.c:13492
 #, c-format
 msgid "table has extra column \"%s\""
 msgstr "表含有多余的列\"%s\""
 
-#: commands/tablecmds.c:12877
+#: commands/tablecmds.c:13544
 #, c-format
 msgid "\"%s\" is not a typed table"
 msgstr "\"%s\" 不是一个类型表"
 
-#: commands/tablecmds.c:13059
+#: commands/tablecmds.c:13726
 #, c-format
 msgid "cannot use non-unique index \"%s\" as replica identity"
 msgstr "不能将非唯一索引\"%s\"用作复制标识"
 
-#: commands/tablecmds.c:13065
+#: commands/tablecmds.c:13732
 #, c-format
 msgid "cannot use non-immediate index \"%s\" as replica identity"
 msgstr "不能把非立即索引\"%s\"用作复制标识"
 
-#: commands/tablecmds.c:13071
+#: commands/tablecmds.c:13738
 #, c-format
 msgid "cannot use expression index \"%s\" as replica identity"
 msgstr "不能将表达式索引\"%s\"用作复制标识"
 
-#: commands/tablecmds.c:13077
+#: commands/tablecmds.c:13744
 #, c-format
 msgid "cannot use partial index \"%s\" as replica identity"
 msgstr "不能将局部索引\"%s\"用作复制标识"
 
-#: commands/tablecmds.c:13083
+#: commands/tablecmds.c:13750
 #, c-format
 msgid "cannot use invalid index \"%s\" as replica identity"
 msgstr "不能将无效索引\"%s\"用作复制标识"
 
-#: commands/tablecmds.c:13104
+#: commands/tablecmds.c:13767
 #, c-format
 msgid "index \"%s\" cannot be used as replica identity because column %d is a system column"
 msgstr "索引 \"%s\" 不能用做复制标识,因为列 %d 是一个系统列"
 
-#: commands/tablecmds.c:13111
+#: commands/tablecmds.c:13774
 #, c-format
 msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable"
 msgstr "索引 \"%s\" 不能用于复制标识,因为列\"%s\"非空"
 
-#: commands/tablecmds.c:13304
+#: commands/tablecmds.c:13967
 #, c-format
 msgid "cannot change logged status of table \"%s\" because it is temporary"
 msgstr "无法更改表\"%s\"的已记录状态,因为它是临时表"
 
-#: commands/tablecmds.c:13328
+#: commands/tablecmds.c:13991
 #, c-format
 msgid "cannot change table \"%s\" to unlogged because it is part of a publication"
 msgstr "无法把表\"%s\"更改为不被日志记录,因为它是发布的一部分"
 
-#: commands/tablecmds.c:13330
+#: commands/tablecmds.c:13993
 #, c-format
 msgid "Unlogged relations cannot be replicated."
 msgstr "无法复制不被日志记录的关系"
 
-#: commands/tablecmds.c:13375
+#: commands/tablecmds.c:14038
 #, c-format
 msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\""
 msgstr "无法把表\"%s\"更改为被日志记录,因为它引用了不被日志记录的表\"%s\""
 
-#: commands/tablecmds.c:13385
+#: commands/tablecmds.c:14048
 #, c-format
 msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\""
 msgstr "无法把表\"%s\"更改为不被日志记录,因为它引用了日志记录的表\"%s\""
 
-#: commands/tablecmds.c:13443
+#: commands/tablecmds.c:14106
 #, c-format
 msgid "cannot move an owned sequence into another schema"
 msgstr "无法将已分配的序列移动到另一个模式中"
 
-#: commands/tablecmds.c:13549
+#: commands/tablecmds.c:14212
 #, c-format
 msgid "relation \"%s\" already exists in schema \"%s\""
 msgstr "在模式\"%2$s\"中已经存在关系\"%1$s\""
 
-#: commands/tablecmds.c:14106
+#: commands/tablecmds.c:14789
 #, c-format
 msgid "\"%s\" is not a composite type"
 msgstr "\"%s\" 不是组合类型"
 
-#: commands/tablecmds.c:14138
+#: commands/tablecmds.c:14821
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, sequence, or foreign table"
 msgstr "\"%s\" 不是表,视图,物化视图,序列或者外部表"
 
-#: commands/tablecmds.c:14173
+#: commands/tablecmds.c:14856
 #, c-format
 msgid "unrecognized partitioning strategy \"%s\""
 msgstr "无法识别的分区策略 \"%s\""
 
-#: commands/tablecmds.c:14181
+#: commands/tablecmds.c:14864
 #, c-format
 msgid "cannot use \"list\" partition strategy with more than one column"
 msgstr "不能将\"list\"分区策略与多个列一起使用"
 
-#: commands/tablecmds.c:14246
+#: commands/tablecmds.c:14930
 #, c-format
 msgid "column \"%s\" named in partition key does not exist"
 msgstr "分区键中名为\"%s\"的列不存在"
 
-#: commands/tablecmds.c:14253
+#: commands/tablecmds.c:14938
 #, c-format
 msgid "cannot use system column \"%s\" in partition key"
 msgstr "无法在分区键中使用系统列\"%s\""
 
-#: commands/tablecmds.c:14316
+#: commands/tablecmds.c:14949 commands/tablecmds.c:15054
+#, fuzzy, c-format
+#| msgid "cannot use system column \"%s\" in partition key"
+msgid "cannot use generated column in partition key"
+msgstr "无法在分区键中使用系统列\"%s\""
+
+#: commands/tablecmds.c:14950 commands/tablecmds.c:15055 commands/trigger.c:659
+#: rewrite/rewriteHandler.c:826 rewrite/rewriteHandler.c:843
+#, fuzzy, c-format
+#| msgid "column \"%s\" has a type conflict"
+msgid "Column \"%s\" is a generated column."
+msgstr "属性 \"%s\" 类型冲突"
+
+#: commands/tablecmds.c:15014
 #, c-format
 msgid "functions in partition key expression must be marked IMMUTABLE"
 msgstr "分区键表达式中函数必需标记为 IMMUTABLE"
 
-#: commands/tablecmds.c:14333
+#: commands/tablecmds.c:15031
 #, c-format
 msgid "partition key expressions cannot contain whole-row references"
 msgstr "分区键表达式不能包含整行引用"
 
-#: commands/tablecmds.c:14340
+#: commands/tablecmds.c:15038
 #, c-format
 msgid "partition key expressions cannot contain system column references"
 msgstr "分区键表达式不能包含系统列引用"
 
-#: commands/tablecmds.c:14350
+#: commands/tablecmds.c:15067
 #, c-format
 msgid "cannot use constant expression as partition key"
 msgstr "不能将常量表达式用作分区键"
 
-#: commands/tablecmds.c:14371
+#: commands/tablecmds.c:15088
 #, c-format
 msgid "could not determine which collation to use for partition expression"
 msgstr "分区表达式上无法确定使用哪个排序规则"
 
-#: commands/tablecmds.c:14404
-#, c-format
-msgid "data type %s has no default hash operator class"
-msgstr "数据类型 %s 没有默认的哈希运算符类"
-
-#: commands/tablecmds.c:14406
+#: commands/tablecmds.c:15123
 #, c-format
 msgid "You must specify a hash operator class or define a default hash operator class for the data type."
 msgstr "你必须为数据类型指定哈希运算符类或定义默认哈希运算符类."
 
-#: commands/tablecmds.c:14410
-#, c-format
-msgid "data type %s has no default btree operator class"
-msgstr "数据类型 %s 没有默认的B树运算符类"
-
-#: commands/tablecmds.c:14412
+#: commands/tablecmds.c:15129
 #, c-format
 msgid "You must specify a btree operator class or define a default btree operator class for the data type."
 msgstr "你必须为数据类型指定B树运算符类或定义默认B树运算符类."
 
-#: commands/tablecmds.c:14537
+#: commands/tablecmds.c:15274
 #, c-format
 msgid "partition constraint for table \"%s\" is implied by existing constraints"
 msgstr "表\"%s\"的分区约束由现有约束隐含"
 
-#: commands/tablecmds.c:14541 partitioning/partbounds.c:621
-#: partitioning/partbounds.c:666
+#: commands/tablecmds.c:15278 partitioning/partbounds.c:1249
+#: partitioning/partbounds.c:1292
 #, c-format
 msgid "updated partition constraint for default partition \"%s\" is implied by existing constraints"
 msgstr "默认分区\"%s\"的更新分区约束由现有约束隐含"
 
-#: commands/tablecmds.c:14647
+#: commands/tablecmds.c:15382
 #, c-format
 msgid "\"%s\" is already a partition"
 msgstr "\"%s\" 已经是一个分区了"
 
-#: commands/tablecmds.c:14653
+#: commands/tablecmds.c:15388
 #, c-format
 msgid "cannot attach a typed table as partition"
 msgstr "无法将类型表附加为分区"
 
-#: commands/tablecmds.c:14669
+#: commands/tablecmds.c:15404
 #, c-format
 msgid "cannot attach inheritance child as partition"
 msgstr "无法将继承子级附加为分区"
 
-#: commands/tablecmds.c:14683
+#: commands/tablecmds.c:15418
 #, c-format
 msgid "cannot attach inheritance parent as partition"
 msgstr "无法将继承父级附加为分区"
 
-#: commands/tablecmds.c:14717
+#: commands/tablecmds.c:15452
 #, c-format
 msgid "cannot attach a temporary relation as partition of permanent relation \"%s\""
 msgstr "不能将临时关系附加为永久关系\"%s\"的分区"
 
-#: commands/tablecmds.c:14725
+#: commands/tablecmds.c:15460
 #, c-format
 msgid "cannot attach a permanent relation as partition of temporary relation \"%s\""
 msgstr "不能将永久关系附加为临时关系 \"%s\" 的分区"
 
-#: commands/tablecmds.c:14733
+#: commands/tablecmds.c:15468
 #, c-format
 msgid "cannot attach as partition of temporary relation of another session"
 msgstr "不能作为另一会话的临时关系的分区附加"
 
-#: commands/tablecmds.c:14740
+#: commands/tablecmds.c:15475
 #, c-format
 msgid "cannot attach temporary relation of another session as partition"
 msgstr "无法将其他会话的临时关系附加为分区"
 
-#: commands/tablecmds.c:14746
-#, c-format
-msgid "cannot attach table \"%s\" without OIDs as partition of table \"%s\" with OIDs"
-msgstr "无法将没有OIDs的表\"%s\"附加为带有OID的表\"%s\"的分区"
-
-#: commands/tablecmds.c:14754
-#, c-format
-msgid "cannot attach table \"%s\" with OIDs as partition of table \"%s\" without OIDs"
-msgstr "无法将OIDs作为表\"%s\"的分区附加到没有OIDs的表\"%s\""
-
-#: commands/tablecmds.c:14776
+#: commands/tablecmds.c:15495
 #, c-format
 msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\""
 msgstr "表\"%1$s\"包含父表\"%3$s\"中找不到的列\"%2$s\""
 
-#: commands/tablecmds.c:14779
+#: commands/tablecmds.c:15498
 #, c-format
 msgid "The new partition may contain only the columns present in parent."
 msgstr "新分区只能包含父分区中的列."
 
-#: commands/tablecmds.c:14791
+#: commands/tablecmds.c:15510
 #, c-format
 msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition"
 msgstr "触发器\"%s\"阻止表\"%s\"成为分区"
 
-#: commands/tablecmds.c:14793 commands/trigger.c:462
+#: commands/tablecmds.c:15512 commands/trigger.c:465
 #, c-format
 msgid "ROW triggers with transition tables are not supported on partitions"
 msgstr "分区上不支持具有转换表的行触发器"
 
-#: commands/tablecmds.c:15483 commands/tablecmds.c:15502
-#: commands/tablecmds.c:15524 commands/tablecmds.c:15543
-#: commands/tablecmds.c:15599
+#: commands/tablecmds.c:16205 commands/tablecmds.c:16224
+#: commands/tablecmds.c:16246 commands/tablecmds.c:16265
+#: commands/tablecmds.c:16307
 #, c-format
 msgid "cannot attach index \"%s\" as a partition of index \"%s\""
 msgstr "无法将索引\"%s\"作为索引\"%s\"分区附加"
 
-#: commands/tablecmds.c:15486
+#: commands/tablecmds.c:16208
 #, c-format
 msgid "Index \"%s\" is already attached to another index."
 msgstr "索引\"%s\"已附加到另一个索引"
 
-#: commands/tablecmds.c:15505
+#: commands/tablecmds.c:16227
 #, c-format
 msgid "Index \"%s\" is not an index on any partition of table \"%s\"."
 msgstr "索引\"%s\"不是表\"%s\"的任何分区上的索引."
 
 # sql_help.h:65
-#: commands/tablecmds.c:15527
+#: commands/tablecmds.c:16249
 #, c-format
 msgid "The index definitions do not match."
 msgstr "索引定义不匹配"
 
-#: commands/tablecmds.c:15546
+#: commands/tablecmds.c:16268
 #, c-format
 msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"."
 msgstr "索引\"%s\"属于表\"%s\"中的约束,但不存在索引\"%s\"的约束."
 
-#: commands/tablecmds.c:15602
+#: commands/tablecmds.c:16310
 #, c-format
 msgid "Another index is already attached for partition \"%s\"."
 msgstr "已经为分区\"%s\"附加了另一个索引."
 
 #: commands/tablespace.c:163 commands/tablespace.c:180
 #: commands/tablespace.c:191 commands/tablespace.c:199
-#: commands/tablespace.c:625 replication/slot.c:1199 storage/file/copydir.c:47
+#: commands/tablespace.c:630 replication/slot.c:1198 storage/file/copydir.c:47
 #, c-format
 msgid "could not create directory \"%s\": %m"
 msgstr "无法创建目录 \"%s\": %m"
 
-#: commands/tablespace.c:210 utils/adt/genfile.c:581
+#: commands/tablespace.c:210 utils/adt/genfile.c:593
 #, c-format
 msgid "could not stat directory \"%s\": %m"
 msgstr "无法取目录 \"%s\" 状态: %m"
@@ -9731,347 +9892,361 @@ msgstr "表空间路径 \"%s\" 太长"
 msgid "tablespace location should not be inside the data directory"
 msgstr "表空间位置不应该位于数据目录内"
 
-#: commands/tablespace.c:306 commands/tablespace.c:952
+#: commands/tablespace.c:306 commands/tablespace.c:957
 #, c-format
 msgid "unacceptable tablespace name \"%s\""
 msgstr "不可访问的表空间名字 \"%s\""
 
-#: commands/tablespace.c:308 commands/tablespace.c:953
+#: commands/tablespace.c:308 commands/tablespace.c:958
 #, c-format
 msgid "The prefix \"pg_\" is reserved for system tablespaces."
 msgstr "前缀 \"pg_\" 是保留给系统表空间的."
 
-#: commands/tablespace.c:318 commands/tablespace.c:965
+#: commands/tablespace.c:318 commands/tablespace.c:970
 #, c-format
 msgid "tablespace \"%s\" already exists"
 msgstr "表空间 \"%s\" 已经存在"
 
-#: commands/tablespace.c:430 commands/tablespace.c:935
-#: commands/tablespace.c:1015 commands/tablespace.c:1083
-#: commands/tablespace.c:1216 commands/tablespace.c:1416
+#: commands/tablespace.c:434 commands/tablespace.c:940
+#: commands/tablespace.c:1020 commands/tablespace.c:1088
+#: commands/tablespace.c:1231 commands/tablespace.c:1431
 #, 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:517
 #, c-format
 msgid "tablespace \"%s\" is not empty"
 msgstr "表空间 \"%s\" 不是空的"
 
-#: commands/tablespace.c:584
+#: commands/tablespace.c:589
 #, c-format
 msgid "directory \"%s\" does not exist"
 msgstr "目录 \"%s\" 不存在"
 
-#: commands/tablespace.c:585
+#: commands/tablespace.c:590
 #, c-format
 msgid "Create this directory for the tablespace before restarting the server."
 msgstr "在重新启动服务器前为这个表空间创建该目录."
 
-#: commands/tablespace.c:590
+#: commands/tablespace.c:595
 #, c-format
 msgid "could not set permissions on directory \"%s\": %m"
 msgstr "无法为目录 \"%s\" 的设置权限: %m"
 
-#: commands/tablespace.c:620
+#: commands/tablespace.c:625
 #, c-format
 msgid "directory \"%s\" already in use as a tablespace"
 msgstr "目录 \"%s\" 以一个表空间的形式正在使用"
 
-#: commands/tablespace.c:705 commands/tablespace.c:715
-#: postmaster/postmaster.c:1476 storage/file/fd.c:2695
-#: storage/file/reinit.c:122 utils/adt/genfile.c:483 utils/adt/genfile.c:554
-#: utils/adt/misc.c:436 utils/misc/tzparser.c:339
+#: commands/tablespace.c:710 commands/tablespace.c:720
+#: postmaster/postmaster.c:1474 storage/file/fd.c:2562
+#: storage/file/reinit.c:122 utils/adt/genfile.c:487 utils/adt/genfile.c:565
+#: utils/adt/misc.c:243 utils/misc/tzparser.c:339
 #, c-format
 msgid "could not open directory \"%s\": %m"
 msgstr "无法打开目录 \"%s\": %m"
 
-#: commands/tablespace.c:744 commands/tablespace.c:757
-#: commands/tablespace.c:793 commands/tablespace.c:885 storage/file/fd.c:3125
+#: commands/tablespace.c:749 commands/tablespace.c:762
+#: commands/tablespace.c:798 commands/tablespace.c:890 storage/file/fd.c:2992
 #, c-format
 msgid "could not remove directory \"%s\": %m"
 msgstr "无法删除目录 \"%s\": %m"
 
-#: commands/tablespace.c:806 commands/tablespace.c:894
+#: commands/tablespace.c:811 commands/tablespace.c:899
 #, c-format
 msgid "could not remove symbolic link \"%s\": %m"
 msgstr "无法删除符号链接 \"%s\": %m"
 
-#: commands/tablespace.c:816 commands/tablespace.c:903
+#: commands/tablespace.c:821 commands/tablespace.c:908
 #, c-format
 msgid "\"%s\" is not a directory or symbolic link"
 msgstr "\"%s\" 不是一个目录或者符号链接"
 
-#: commands/tablespace.c:1088
+#: commands/tablespace.c:1093
 #, c-format
 msgid "Tablespace \"%s\" does not exist."
 msgstr "表空间 \"%s\" 不存在."
 
-#: commands/tablespace.c:1515
+#: commands/tablespace.c:1530
 #, c-format
 msgid "directories for tablespace %u could not be removed"
 msgstr "表空间 %u 的目录不能被移除"
 
-#: commands/tablespace.c:1517
+#: commands/tablespace.c:1532
 #, c-format
 msgid "You can remove the directories manually if necessary."
 msgstr "如有必要您可以手动移除这些目录."
 
-#: commands/trigger.c:207 commands/trigger.c:218
+#: commands/trigger.c:210 commands/trigger.c:221
 #, c-format
 msgid "\"%s\" is a table"
 msgstr "\"%s\" 是一个表"
 
-#: commands/trigger.c:209 commands/trigger.c:220
+#: commands/trigger.c:212 commands/trigger.c:223
 #, c-format
 msgid "Tables cannot have INSTEAD OF triggers."
 msgstr "表不能使用INSTEAD OF触发器."
 
-#: commands/trigger.c:237
+#: commands/trigger.c:240
 #, c-format
 msgid "Partitioned tables cannot have BEFORE / FOR EACH ROW triggers."
 msgstr "分区表不能有 BEFORE / FOR EACH ROW触发器."
 
-#: commands/trigger.c:255
+#: commands/trigger.c:258
 #, c-format
 msgid "Triggers on partitioned tables cannot have transition tables."
 msgstr "分区表上的触发器不能有转换表 ."
 
-#: commands/trigger.c:267 commands/trigger.c:274 commands/trigger.c:444
+#: commands/trigger.c:270 commands/trigger.c:277 commands/trigger.c:447
 #, c-format
 msgid "\"%s\" is a view"
 msgstr "\"%s\" 是一个视图"
 
-#: commands/trigger.c:269
+#: commands/trigger.c:272
 #, c-format
 msgid "Views cannot have row-level BEFORE or AFTER triggers."
 msgstr "视图不能使用行级 BEFORE 或 AFTER 触发器."
 
-#: commands/trigger.c:276
+#: commands/trigger.c:279
 #, c-format
 msgid "Views cannot have TRUNCATE triggers."
 msgstr "视图不能使用 TRUNCATE 触发器."
 
-#: commands/trigger.c:284 commands/trigger.c:291 commands/trigger.c:303
-#: commands/trigger.c:437
+#: commands/trigger.c:287 commands/trigger.c:294 commands/trigger.c:306
+#: commands/trigger.c:440
 #, c-format
 msgid "\"%s\" is a foreign table"
 msgstr "\"%s\" 是一个外部表"
 
-#: commands/trigger.c:286
+#: commands/trigger.c:289
 #, c-format
 msgid "Foreign tables cannot have INSTEAD OF triggers."
 msgstr "外部表不能使用INSTEAD OF触发器."
 
-#: commands/trigger.c:293
+#: commands/trigger.c:296
 #, c-format
 msgid "Foreign tables cannot have TRUNCATE triggers."
 msgstr "外部表不能使用 TRUNCATE 触发器."
 
-#: commands/trigger.c:305
+#: commands/trigger.c:308
 #, c-format
 msgid "Foreign tables cannot have constraint triggers."
 msgstr "外部表不能使用约束触发器."
 
-#: commands/trigger.c:380
+#: commands/trigger.c:383
 #, c-format
 msgid "TRUNCATE FOR EACH ROW triggers are not supported"
 msgstr "不支持使用TRUNCATE FOR EACH ROW触发器"
 
-#: commands/trigger.c:388
+#: commands/trigger.c:391
 #, c-format
 msgid "INSTEAD OF triggers must be FOR EACH ROW"
 msgstr "INSTEAD OF 触发器必须使用 FOR EACH ROW"
 
-#: commands/trigger.c:392
+#: commands/trigger.c:395
 #, c-format
 msgid "INSTEAD OF triggers cannot have WHEN conditions"
 msgstr "INSTEAD OF 触发器不能使用 WHEN 条件子句"
 
-#: commands/trigger.c:396
+#: commands/trigger.c:399
 #, c-format
 msgid "INSTEAD OF triggers cannot have column lists"
 msgstr "INSTEAD OF 触发器不能带有字段列表"
 
-#: commands/trigger.c:425
+#: commands/trigger.c:428
 #, c-format
 msgid "ROW variable naming in the REFERENCING clause is not supported"
 msgstr "不支持REFERENCING子句中的行变量命名"
 
-#: commands/trigger.c:426
+#: commands/trigger.c:429
 #, c-format
 msgid "Use OLD TABLE or NEW TABLE for naming transition tables."
 msgstr "使用 OLD TABLE 或 NEW TABLE 命名转换表."
 
-#: commands/trigger.c:439
+#: commands/trigger.c:442
 #, c-format
 msgid "Triggers on foreign tables cannot have transition tables."
 msgstr "外部表上的触发器不能有转换表."
 
-#: commands/trigger.c:446
+#: commands/trigger.c:449
 #, c-format
 msgid "Triggers on views cannot have transition tables."
 msgstr "视图上的触发器不能有转换表."
 
-#: commands/trigger.c:466
+#: commands/trigger.c:469
 #, c-format
 msgid "ROW triggers with transition tables are not supported on inheritance children"
 msgstr "继承子级不支持具有转换表的行触发器"
 
-#: commands/trigger.c:472
+#: commands/trigger.c:475
 #, c-format
 msgid "transition table name can only be specified for an AFTER trigger"
 msgstr "只能为AFTER触发器指定转换表名 "
 
-#: commands/trigger.c:477
+#: commands/trigger.c:480
 #, c-format
 msgid "TRUNCATE triggers with transition tables are not supported"
 msgstr "不支持使用转换表截断触发器"
 
-#: commands/trigger.c:494
+#: commands/trigger.c:497
 #, c-format
 msgid "transition tables cannot be specified for triggers with more than one event"
 msgstr "不能为具有多个事件的触发器指定转换表"
 
-#: commands/trigger.c:505
+#: commands/trigger.c:508
 #, c-format
 msgid "transition tables cannot be specified for triggers with column lists"
 msgstr "不能为具有列列表的触发器指定转换表"
 
-#: commands/trigger.c:522
+#: commands/trigger.c:525
 #, c-format
 msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger"
 msgstr "只能为插入或更新触发器指定新表"
 
-#: commands/trigger.c:527
+#: commands/trigger.c:530
 #, c-format
 msgid "NEW TABLE cannot be specified multiple times"
 msgstr "不能多次指定新表"
 
-#: commands/trigger.c:537
+#: commands/trigger.c:540
 #, c-format
 msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger"
 msgstr "只能为删除或更新触发器指定OLD表"
 
-#: commands/trigger.c:542
+#: commands/trigger.c:545
 #, c-format
 msgid "OLD TABLE cannot be specified multiple times"
 msgstr "不能多次指定OLD表"
 
-#: commands/trigger.c:552
+#: commands/trigger.c:555
 #, c-format
 msgid "OLD TABLE name and NEW TABLE name cannot be the same"
 msgstr "旧表名和新表名不能相同"
 
-#: commands/trigger.c:614 commands/trigger.c:627
+#: commands/trigger.c:619 commands/trigger.c:632
 #, c-format
 msgid "statement trigger's WHEN condition cannot reference column values"
 msgstr "语句级触发器的WHEN条件中不能引用列的值。"
 
-#: commands/trigger.c:619
+#: commands/trigger.c:624
 #, c-format
 msgid "INSERT trigger's WHEN condition cannot reference OLD values"
 msgstr "在INSERT触发器的WHEN条件中不能引用OLD值。"
 
-#: commands/trigger.c:632
+#: commands/trigger.c:637
 #, c-format
 msgid "DELETE trigger's WHEN condition cannot reference NEW values"
 msgstr "在DELETE触发器的WHEN条件中不能引用NEW值。"
 
-#: commands/trigger.c:637
+#: commands/trigger.c:642
 #, c-format
 msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns"
 msgstr "BEFORE类型触发器的WHERE条件不能引用NEW系统列"
 
-#: commands/trigger.c:810 commands/trigger.c:1705
+#: commands/trigger.c:650 commands/trigger.c:658
+#, fuzzy, c-format
+#| msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns"
+msgid "BEFORE trigger's WHEN condition cannot reference NEW generated columns"
+msgstr "BEFORE类型触发器的WHERE条件不能引用NEW系统列"
+
+#: commands/trigger.c:651
+#, c-format
+msgid "A whole-row reference is used and the table contains generated columns."
+msgstr ""
+
+#: commands/trigger.c:833 commands/trigger.c:1724
 #, c-format
 msgid "trigger \"%s\" for relation \"%s\" already exists"
 msgstr "对于关系 \"%2$s\" 的 \"%1$s\" 触发器已经存在"
 
-#: commands/trigger.c:1230
+#: commands/trigger.c:1249
 msgid "Found referenced table's UPDATE trigger."
 msgstr "找到被引用表的UPDATE触发器"
 
-#: commands/trigger.c:1231
+#: commands/trigger.c:1250
 msgid "Found referenced table's DELETE trigger."
 msgstr "找到被引用表的DELETE触发器"
 
-#: commands/trigger.c:1232
+#: commands/trigger.c:1251
 msgid "Found referencing table's trigger."
 msgstr "找到正在引用表的触发器"
 
-#: commands/trigger.c:1341 commands/trigger.c:1357
+#: commands/trigger.c:1360 commands/trigger.c:1376
 #, c-format
 msgid "ignoring incomplete trigger group for constraint \"%s\" %s"
 msgstr "对于\"%s\" %s,忽略未完成的触发器组"
 
-#: commands/trigger.c:1370
+#: commands/trigger.c:1389
 #, c-format
 msgid "converting trigger group into constraint \"%s\" %s"
 msgstr "正在将触发器组转换为约束\"%s\" %s"
 
-#: commands/trigger.c:1591 commands/trigger.c:1750 commands/trigger.c:1886
+#: commands/trigger.c:1610 commands/trigger.c:1771 commands/trigger.c:1907
 #, c-format
 msgid "trigger \"%s\" for table \"%s\" does not exist"
 msgstr "表 \"%2$s\" 的 \"%1$s\" 触发器不存在"
 
-#: commands/trigger.c:1833
+#: commands/trigger.c:1854
 #, c-format
 msgid "permission denied: \"%s\" is a system trigger"
 msgstr "权限不够: \"%s\" 是一个系统触发器"
 
-#: commands/trigger.c:2433
+#: commands/trigger.c:2454
 #, c-format
 msgid "trigger function %u returned null value"
 msgstr "触发器函数 %u 返回了空值"
 
-#: commands/trigger.c:2499 commands/trigger.c:2714 commands/trigger.c:2953
-#: commands/trigger.c:3243
+#: commands/trigger.c:2520 commands/trigger.c:2737 commands/trigger.c:2989
+#: commands/trigger.c:3293
 #, c-format
 msgid "BEFORE STATEMENT trigger cannot return a value"
 msgstr "BEFORE STATEMENT 触发器不能返回一个值"
 
-#: commands/trigger.c:3305 executor/nodeModifyTable.c:756
-#: executor/nodeModifyTable.c:1244
+#: commands/trigger.c:3356 executor/nodeModifyTable.c:1350
+#: executor/nodeModifyTable.c:1421
 #, c-format
 msgid "tuple to be updated was already modified by an operation triggered by the current command"
 msgstr "待更新元组值已经被当前命令触发的操作修改了"
 
-#: commands/trigger.c:3306 executor/nodeModifyTable.c:757
-#: executor/nodeModifyTable.c:1245
+#: commands/trigger.c:3357 executor/nodeModifyTable.c:809
+#: executor/nodeModifyTable.c:884 executor/nodeModifyTable.c:1351
+#: executor/nodeModifyTable.c:1422
 #, 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:3320 executor/execMain.c:2727 executor/nodeLockRows.c:220
-#: executor/nodeModifyTable.c:225 executor/nodeModifyTable.c:769
-#: executor/nodeModifyTable.c:1257 executor/nodeModifyTable.c:1433
+#: commands/trigger.c:3388 executor/nodeLockRows.c:231
+#: executor/nodeLockRows.c:240 executor/nodeModifyTable.c:220
+#: executor/nodeModifyTable.c:825 executor/nodeModifyTable.c:1367
+#: executor/nodeModifyTable.c:1585
 #, c-format
 msgid "could not serialize access due to concurrent update"
 msgstr "由于同步更新而无法串行访问"
 
-#: commands/trigger.c:3324 executor/execMain.c:2731 executor/execMain.c:2806
-#: executor/nodeLockRows.c:224
-#, c-format
-msgid "tuple to be locked was already moved to another partition due to concurrent update"
-msgstr "由于同时更新,要锁定的元组已移动到另一个分区"
+#: commands/trigger.c:3396 executor/nodeModifyTable.c:916
+#: executor/nodeModifyTable.c:1439 executor/nodeModifyTable.c:1609
+#, fuzzy, c-format
+#| msgid "could not serialize access due to concurrent update"
+msgid "could not serialize access due to concurrent delete"
+msgstr "由于同步更新而无法串行访问"
 
-#: commands/trigger.c:5457
+#: commands/trigger.c:5447
 #, c-format
 msgid "constraint \"%s\" is not deferrable"
 msgstr "约束 \"%s\" 不可展缓"
 
-#: commands/trigger.c:5480
+#: commands/trigger.c:5470
 #, c-format
 msgid "constraint \"%s\" does not exist"
 msgstr "约束 \"%s\" 不存在"
 
-#: commands/tsearchcmds.c:115 commands/tsearchcmds.c:679
+#: commands/tsearchcmds.c:115 commands/tsearchcmds.c:686
 #, c-format
 msgid "function %s should return type %s"
 msgstr "函数%s应该返回类型%s的值"
@@ -10081,573 +10256,634 @@ msgstr "函数%s应该返回类型%s的值"
 msgid "must be superuser to create text search parsers"
 msgstr "只有超级用户能创建文本搜索解析器"
 
-#: commands/tsearchcmds.c:240
+#: commands/tsearchcmds.c:245
 #, c-format
 msgid "text search parser parameter \"%s\" not recognized"
 msgstr "未识别文本搜索参数\"%s\""
 
-#: commands/tsearchcmds.c:250
+#: commands/tsearchcmds.c:255
 #, c-format
 msgid "text search parser start method is required"
 msgstr "需要使用文本搜索解析器的start方法"
 
-#: commands/tsearchcmds.c:255
+#: commands/tsearchcmds.c:260
 #, c-format
 msgid "text search parser gettoken method is required"
 msgstr "需要使用文本搜索解析器的gettoken方法"
 
-#: commands/tsearchcmds.c:260
+#: commands/tsearchcmds.c:265
 #, c-format
 msgid "text search parser end method is required"
 msgstr "需要使用文本搜索解析器的end方法"
 
-#: commands/tsearchcmds.c:265
+#: commands/tsearchcmds.c:270
 #, c-format
 msgid "text search parser lextypes method is required"
 msgstr "需要使用文本搜索解析器的lextypes方法"
 
-#: commands/tsearchcmds.c:384
+#: commands/tsearchcmds.c:387
 #, c-format
 msgid "text search template \"%s\" does not accept options"
 msgstr "文本搜索模板 \"%s\"不接受使用选项"
 
 # describe.c:1753
-#: commands/tsearchcmds.c:458
+#: commands/tsearchcmds.c:461
 #, c-format
 msgid "text search template is required"
 msgstr "要求使用文本搜寻模板"
 
-#: commands/tsearchcmds.c:746
+#: commands/tsearchcmds.c:753
 #, c-format
 msgid "must be superuser to create text search templates"
 msgstr "只有超级用户能创建文本搜索模板"
 
-#: commands/tsearchcmds.c:783
+#: commands/tsearchcmds.c:795
 #, c-format
 msgid "text search template parameter \"%s\" not recognized"
 msgstr "未识别文本搜索模板参数\"%s\""
 
-#: commands/tsearchcmds.c:793
+#: commands/tsearchcmds.c:805
 #, c-format
 msgid "text search template lexize method is required"
 msgstr "要求使用文本搜索模板词汇方法"
 
-#: commands/tsearchcmds.c:1000
+#: commands/tsearchcmds.c:1009
 #, c-format
 msgid "text search configuration parameter \"%s\" not recognized"
 msgstr "未识别文本搜索配置参数\"%s\""
 
-#: commands/tsearchcmds.c:1007
+#: commands/tsearchcmds.c:1016
 #, c-format
 msgid "cannot specify both PARSER and COPY options"
 msgstr "不能同时指定PARSER和COPY选项"
 
-#: commands/tsearchcmds.c:1043
+#: commands/tsearchcmds.c:1052
 #, c-format
 msgid "text search parser is required"
 msgstr "需要使用文本搜索解析器"
 
-#: commands/tsearchcmds.c:1265
+#: commands/tsearchcmds.c:1276
 #, c-format
 msgid "token type \"%s\" does not exist"
 msgstr "符号类型 \"%s\" 不存在"
 
-#: commands/tsearchcmds.c:1486
+#: commands/tsearchcmds.c:1503
 #, c-format
 msgid "mapping for token type \"%s\" does not exist"
 msgstr "符号类型\"%s\"的映射不存在"
 
-#: commands/tsearchcmds.c:1492
+#: commands/tsearchcmds.c:1509
 #, c-format
 msgid "mapping for token type \"%s\" does not exist, skipping"
 msgstr "符号类型\"%s\"的映射不存在, 跳过"
 
-#: commands/tsearchcmds.c:1647 commands/tsearchcmds.c:1758
+#: commands/tsearchcmds.c:1664 commands/tsearchcmds.c:1775
 #, c-format
 msgid "invalid parameter list format: \"%s\""
 msgstr "无效参数列表格式: \"%s\""
 
-#: commands/typecmds.c:180
+#: commands/typecmds.c:184
 #, c-format
 msgid "must be superuser to create a base type"
 msgstr "只有超级用户能创建基类型"
 
-#: commands/typecmds.c:287 commands/typecmds.c:1483
+#: commands/typecmds.c:291 commands/typecmds.c:1467
 #, c-format
 msgid "type attribute \"%s\" not recognized"
 msgstr "类型属性 \"%s\" 不被认可"
 
-#: commands/typecmds.c:343
+#: commands/typecmds.c:347
 #, c-format
 msgid "invalid type category \"%s\": must be simple ASCII"
 msgstr "无效的类型目录 \"%s\": 必须是简单ASCII"
 
-#: commands/typecmds.c:362
+#: commands/typecmds.c:366
 #, c-format
 msgid "array element type cannot be %s"
 msgstr "排列元素类型不能为 %s"
 
-#: commands/typecmds.c:394
+#: commands/typecmds.c:398
 #, c-format
 msgid "alignment \"%s\" not recognized"
 msgstr "alignment \"%s\" 不被认可"
 
-#: commands/typecmds.c:411
+#: commands/typecmds.c:415
 #, c-format
 msgid "storage \"%s\" not recognized"
 msgstr "存储 \"%s\" 不被认可"
 
-#: commands/typecmds.c:422
+#: commands/typecmds.c:426
 #, c-format
 msgid "type input function must be specified"
 msgstr "类型输入函数必需指定"
 
-#: commands/typecmds.c:426
+#: commands/typecmds.c:430
 #, c-format
 msgid "type output function must be specified"
 msgstr "类型输出函数必需指定"
 
-#: commands/typecmds.c:431
+#: commands/typecmds.c:435
 #, c-format
 msgid "type modifier output function is useless without a type modifier input function"
 msgstr "如果没有类型修改器的输入函数,那么类型修改器的输出函数没有用"
 
-#: commands/typecmds.c:461
+#: commands/typecmds.c:465
 #, c-format
 msgid "type input function %s must return type %s"
 msgstr "类型输入函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:478
+#: commands/typecmds.c:482
 #, c-format
 msgid "type output function %s must return type %s"
 msgstr "类型输出函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:487
+#: commands/typecmds.c:491
 #, c-format
 msgid "type receive function %s must return type %s"
 msgstr "类型接收函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:496
+#: commands/typecmds.c:500
 #, c-format
 msgid "type send function %s must return type %s"
 msgstr "类型发送函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:561
+#: commands/typecmds.c:565
 #, c-format
 msgid "type input function %s should not be volatile"
 msgstr "类型输入函数%s不能是不稳定的 (volatile)"
 
-#: commands/typecmds.c:566
+#: commands/typecmds.c:570
 #, c-format
 msgid "type output function %s should not be volatile"
 msgstr "类型输出函数%s不能是不稳定的 (volatile)"
 
-#: commands/typecmds.c:571
+#: commands/typecmds.c:575
 #, c-format
 msgid "type receive function %s should not be volatile"
 msgstr "类型接收函数%s不应该是不稳定的"
 
-#: commands/typecmds.c:576
+#: commands/typecmds.c:580
 #, c-format
 msgid "type send function %s should not be volatile"
 msgstr "类型发送函数%s不应该是不稳定的"
 
-#: commands/typecmds.c:581
+#: commands/typecmds.c:585
 #, c-format
 msgid "type modifier input function %s should not be volatile"
 msgstr "类型修饰输入函数%s不应该是不稳定的"
 
-#: commands/typecmds.c:586
+#: commands/typecmds.c:590
 #, c-format
 msgid "type modifier output function %s should not be volatile"
 msgstr "类型修饰输出函数%s不应该是不稳定的"
 
-#: commands/typecmds.c:813
+#: commands/typecmds.c:817
 #, c-format
 msgid "\"%s\" is not a valid base type for a domain"
 msgstr "对于一个域, \"%s\" 不是一个有效的基本类型"
 
-#: commands/typecmds.c:899
+#: commands/typecmds.c:903
 #, c-format
 msgid "multiple default expressions"
 msgstr "多遍默认表达式"
 
-#: commands/typecmds.c:961 commands/typecmds.c:970
+#: commands/typecmds.c:966 commands/typecmds.c:975
 #, c-format
 msgid "conflicting NULL/NOT NULL constraints"
 msgstr "NULL/NOT NULL 约束冲突"
 
-#: commands/typecmds.c:986
+#: commands/typecmds.c:991
 #, c-format
 msgid "check constraints for domains cannot be marked NO INHERIT"
 msgstr "域的CHECK约束不能标为NO INHERIT"
 
-#: commands/typecmds.c:995 commands/typecmds.c:2585
+#: commands/typecmds.c:1000 commands/typecmds.c:2582
 #, c-format
 msgid "unique constraints not possible for domains"
 msgstr "唯一约束对于域不可用"
 
-#: commands/typecmds.c:1001 commands/typecmds.c:2591
+#: commands/typecmds.c:1006 commands/typecmds.c:2588
 #, c-format
 msgid "primary key constraints not possible for domains"
 msgstr "不可为域使用主键约束"
 
-#: commands/typecmds.c:1007 commands/typecmds.c:2597
+#: commands/typecmds.c:1012 commands/typecmds.c:2594
 #, c-format
 msgid "exclusion constraints not possible for domains"
 msgstr "排他约束对于域不可用"
 
-#: commands/typecmds.c:1013 commands/typecmds.c:2603
+#: commands/typecmds.c:1018 commands/typecmds.c:2600
 #, c-format
 msgid "foreign key constraints not possible for domains"
 msgstr "外键约束对于域不可用"
 
-#: commands/typecmds.c:1022 commands/typecmds.c:2612
+#: commands/typecmds.c:1027 commands/typecmds.c:2609
 #, c-format
 msgid "specifying constraint deferrability not supported for domains"
 msgstr "所指定的约束延迟对域不支持"
 
-#: commands/typecmds.c:1353 utils/cache/typcache.c:2319
+#: commands/typecmds.c:1337 utils/cache/typcache.c:2330
 #, c-format
 msgid "%s is not an enum"
 msgstr "%s 不是枚举"
 
-#: commands/typecmds.c:1491
+#: commands/typecmds.c:1475
 #, c-format
 msgid "type attribute \"subtype\" is required"
 msgstr "类型属性 \"subtype\" 不是必需的"
 
-#: commands/typecmds.c:1496
+#: commands/typecmds.c:1480
 #, c-format
 msgid "range subtype cannot be %s"
 msgstr "范围子类型不能为 %s"
 
-#: commands/typecmds.c:1515
+#: commands/typecmds.c:1499
 #, c-format
 msgid "range collation specified but subtype does not support collation"
 msgstr "已指定了范围排序规则但是子类型并不支持排序"
 
-#: commands/typecmds.c:1748
+#: commands/typecmds.c:1733
 #, c-format
 msgid "changing argument type of function %s from \"opaque\" to \"cstring\""
 msgstr "改变函数 %s 的参数类型 \"opaque\" 为 \"cstring\""
 
-#: commands/typecmds.c:1799
+#: commands/typecmds.c:1784
 #, c-format
 msgid "changing argument type of function %s from \"opaque\" to %s"
 msgstr "改变函数 %s 的参数类型 \"opaque\" 为 %s"
 
-#: commands/typecmds.c:1898
+#: commands/typecmds.c:1883
 #, c-format
 msgid "typmod_in function %s must return type %s"
 msgstr "typmod_in 函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:1925
+#: commands/typecmds.c:1910
 #, c-format
 msgid "typmod_out function %s must return type %s"
 msgstr "typmod_out 函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:1952
+#: commands/typecmds.c:1937
 #, c-format
 msgid "type analyze function %s must return type %s"
 msgstr "类型分析函数 %s 必需返回类型 %s"
 
-#: commands/typecmds.c:1998
+#: commands/typecmds.c:1983
 #, 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:2029
+#: commands/typecmds.c:2014
 #, c-format
 msgid "range canonical function %s must return range type"
 msgstr "范围的标准函数%s必须返回范围类型"
 
-#: commands/typecmds.c:2035
+#: commands/typecmds.c:2020
 #, c-format
 msgid "range canonical function %s must be immutable"
 msgstr "范围的标准函数%s必须是不可变的"
 
-#: commands/typecmds.c:2071
+#: commands/typecmds.c:2056
 #, c-format
 msgid "range subtype diff function %s must return type %s"
 msgstr "范围子类型的 diff 函数 %s 必须返回类型 %s"
 
-#: commands/typecmds.c:2078
+#: commands/typecmds.c:2063
 #, c-format
 msgid "range subtype diff function %s must be immutable"
 msgstr "范围的子类型diff函数%s必须是不可变的"
 
-#: commands/typecmds.c:2105
+#: commands/typecmds.c:2090
 #, c-format
 msgid "pg_type array OID value not set when in binary upgrade mode"
 msgstr "当处于二进制升级模式时没有设置pg_type的数组OID值"
 
-#: commands/typecmds.c:2410
+#: commands/typecmds.c:2398
 #, c-format
 msgid "column \"%s\" of table \"%s\" contains null values"
 msgstr "表 \"%2$s\" 的字段 \"%1$s\" 包含空值"
 
-#: commands/typecmds.c:2524 commands/typecmds.c:2709
+#: commands/typecmds.c:2511 commands/typecmds.c:2713
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" does not exist"
 msgstr "域 \"%2$s\" 的 约束\"%1$s\" 不存在"
 
-#: commands/typecmds.c:2528
+#: commands/typecmds.c:2515
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping"
 msgstr "域 \"%2$s\" 的 约束\"%1$s\" 不存在, 跳过"
 
-#: commands/typecmds.c:2716
+#: commands/typecmds.c:2720
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" is not a check constraint"
 msgstr "域 \"%2$s\" 的 约束\"%1$s\" 不是一个check约束"
 
-#: commands/typecmds.c:2822
+#: commands/typecmds.c:2826
 #, c-format
 msgid "column \"%s\" of table \"%s\" contains values that violate the new constraint"
 msgstr "表 \"%2$s\" 的字段 \"%1$s\" 包含的值违反了新约束"
 
-#: commands/typecmds.c:3050 commands/typecmds.c:3256 commands/typecmds.c:3338
-#: commands/typecmds.c:3525
+#: commands/typecmds.c:3055 commands/typecmds.c:3253 commands/typecmds.c:3335
+#: commands/typecmds.c:3522
 #, c-format
 msgid "%s is not a domain"
 msgstr "%s 不是一个域"
 
-#: commands/typecmds.c:3083
+#: commands/typecmds.c:3087
 #, c-format
 msgid "constraint \"%s\" for domain \"%s\" already exists"
 msgstr "域 \"%2$s\" 的约束 \"%1$s\" 已经存在"
 
-#: commands/typecmds.c:3134
+#: commands/typecmds.c:3138
 #, c-format
 msgid "cannot use table references in domain check constraint"
 msgstr "在域检查约束中不可以使用表关联"
 
-#: commands/typecmds.c:3268 commands/typecmds.c:3350 commands/typecmds.c:3642
+#: commands/typecmds.c:3265 commands/typecmds.c:3347 commands/typecmds.c:3639
 #, c-format
 msgid "%s is a table's row type"
 msgstr "%s 是一个表的记录类型"
 
-#: commands/typecmds.c:3270 commands/typecmds.c:3352 commands/typecmds.c:3644
+#: commands/typecmds.c:3267 commands/typecmds.c:3349 commands/typecmds.c:3641
 #, c-format
 msgid "Use ALTER TABLE instead."
 msgstr "请使用 ALTER TABLE命令代替."
 
-#: commands/typecmds.c:3277 commands/typecmds.c:3359 commands/typecmds.c:3557
+#: commands/typecmds.c:3274 commands/typecmds.c:3356 commands/typecmds.c:3554
 #, c-format
 msgid "cannot alter array type %s"
 msgstr "不能更改数组类型%s"
 
-#: commands/typecmds.c:3279 commands/typecmds.c:3361 commands/typecmds.c:3559
+#: commands/typecmds.c:3276 commands/typecmds.c:3358 commands/typecmds.c:3556
 #, c-format
 msgid "You can alter type %s, which will alter the array type as well."
 msgstr "您能够修改类型%s, 因而也能修改数组类型"
 
-#: commands/typecmds.c:3627
+#: commands/typecmds.c:3624
 #, c-format
 msgid "type \"%s\" already exists in schema \"%s\""
 msgstr "在于模式\"%2$s\"中已存在类型\"%1$s\""
 
-#: commands/user.c:141
+#: commands/user.c:140
 #, c-format
 msgid "SYSID can no longer be specified"
 msgstr "不能再指定SYSID"
 
-#: commands/user.c:295
+#: commands/user.c:294
 #, c-format
 msgid "must be superuser to create superusers"
 msgstr "只有超级用户能创建另一个超级用户"
 
-#: commands/user.c:302
+#: commands/user.c:301
 #, c-format
 msgid "must be superuser to create replication users"
 msgstr "只有超级用户能创建复制用户"
 
-#: commands/user.c:309 commands/user.c:707
+#: commands/user.c:308 commands/user.c:714
 #, c-format
 msgid "must be superuser to change bypassrls attribute"
 msgstr "只有超级用户能更改绕过行级安全性属性(bypassrls)"
 
-#: commands/user.c:316
+#: commands/user.c:315
 #, c-format
 msgid "permission denied to create role"
 msgstr "创建角色的权限不够"
 
-#: commands/user.c:326 commands/user.c:1195 commands/user.c:1202 gram.y:14873
-#: gram.y:14911 utils/adt/acl.c:5342 utils/adt/acl.c:5348
+#: commands/user.c:325 commands/user.c:1204 commands/user.c:1211
+#: utils/adt/acl.c:5342 utils/adt/acl.c:5348 gram.y:14896 gram.y:14934
 #, c-format
 msgid "role name \"%s\" is reserved"
 msgstr "角色名称 \"%s\" 被保留了"
 
-#: commands/user.c:328 commands/user.c:1197 commands/user.c:1204
+#: commands/user.c:327 commands/user.c:1206 commands/user.c:1213
 #, c-format
 msgid "Role names starting with \"pg_\" are reserved."
 msgstr "以 \"pg_\" 开始的角色名是被保留的。"
 
-#: commands/user.c:340 commands/user.c:1210
+#: commands/user.c:339 commands/user.c:1219
 #, c-format
 msgid "role \"%s\" already exists"
 msgstr "角色\"%s\" 已经存在"
 
-#: commands/user.c:406 commands/user.c:816
+#: commands/user.c:405 commands/user.c:823
 #, c-format
 msgid "empty string is not a valid password, clearing password"
 msgstr "空字符串不是有效密码,正在清除密码"
 
-#: commands/user.c:437
+#: commands/user.c:434
 #, c-format
 msgid "pg_authid OID value not set when in binary upgrade mode"
 msgstr "当处于二进制升级模式时没有设置pg_authid的OID值"
 
-#: commands/user.c:693 commands/user.c:915 commands/user.c:1449
-#: commands/user.c:1593
+#: commands/user.c:700 commands/user.c:924 commands/user.c:1458
+#: commands/user.c:1602
 #, c-format
 msgid "must be superuser to alter superusers"
 msgstr "只有超级用户能修改超级用户"
 
-#: commands/user.c:700
+#: commands/user.c:707
 #, c-format
 msgid "must be superuser to alter replication users"
 msgstr "只有超级用户能修改复制用户"
 
-#: commands/user.c:723 commands/user.c:923
+#: commands/user.c:730 commands/user.c:931
 #, c-format
 msgid "permission denied"
 msgstr "权限不够"
 
-#: commands/user.c:953
+#: commands/user.c:961
 #, c-format
 msgid "must be superuser to alter settings globally"
 msgstr "只有超级用户可以做全局的alter settings操作"
 
-#: commands/user.c:975
+#: commands/user.c:983
 #, c-format
 msgid "permission denied to drop role"
 msgstr "删除角色的权限不够"
 
-#: commands/user.c:999
+#: commands/user.c:1008
 #, c-format
 msgid "cannot use special role specifier in DROP ROLE"
 msgstr "不能在 DROP ROLE 中使用特殊角色说明符"
 
-#: commands/user.c:1009 commands/user.c:1166 commands/variable.c:822
-#: commands/variable.c:894 utils/adt/acl.c:5199 utils/adt/acl.c:5246
+#: commands/user.c:1018 commands/user.c:1175 commands/variable.c:770
+#: commands/variable.c:844 utils/adt/acl.c:5199 utils/adt/acl.c:5246
 #: utils/adt/acl.c:5274 utils/adt/acl.c:5292 utils/init/miscinit.c:607
 #, c-format
 msgid "role \"%s\" does not exist"
 msgstr "角色 \"%s\" 不存在"
 
-#: commands/user.c:1014
+#: commands/user.c:1023
 #, c-format
 msgid "role \"%s\" does not exist, skipping"
 msgstr "角色 \"%s\" 不存在"
 
-#: commands/user.c:1026 commands/user.c:1030
+#: commands/user.c:1036 commands/user.c:1040
 #, c-format
 msgid "current user cannot be dropped"
 msgstr "当前用户不能被删除"
 
-#: commands/user.c:1034
+#: commands/user.c:1044
 #, c-format
 msgid "session user cannot be dropped"
 msgstr "会话用户不能被删除"
 
-#: commands/user.c:1045
+#: commands/user.c:1054
 #, c-format
 msgid "must be superuser to drop superusers"
 msgstr "只有超级用户可以删除超级用户"
 
-#: commands/user.c:1061
+#: commands/user.c:1070
 #, c-format
 msgid "role \"%s\" cannot be dropped because some objects depend on it"
 msgstr "无法删除\"%s\"因为有其它对象倚赖它"
 
-#: commands/user.c:1182
+#: commands/user.c:1191
 #, c-format
 msgid "session user cannot be renamed"
 msgstr "无法重命名会话用户"
 
-#: commands/user.c:1186
+#: commands/user.c:1195
 #, c-format
 msgid "current user cannot be renamed"
 msgstr "无法重新命名当前用户"
 
-#: commands/user.c:1220
+#: commands/user.c:1229
 #, c-format
 msgid "must be superuser to rename superusers"
 msgstr "只有超级用户可以对超级用户重命名"
 
-#: commands/user.c:1227
+#: commands/user.c:1236
 #, c-format
 msgid "permission denied to rename role"
 msgstr "重命名角色的权限不够"
 
-#: commands/user.c:1248
+#: commands/user.c:1257
 #, c-format
 msgid "MD5 password cleared because of role rename"
 msgstr "由于对角色重命名, 需要清除以MD5方式加密的口令"
 
-#: commands/user.c:1308
+#: commands/user.c:1317
 #, c-format
 msgid "column names cannot be included in GRANT/REVOKE ROLE"
 msgstr "在GRANT/REVOKE ROLE中不能包含列名"
 
-#: commands/user.c:1346
+#: commands/user.c:1355
 #, c-format
 msgid "permission denied to drop objects"
 msgstr "删除对象的权限不足"
 
-#: commands/user.c:1373 commands/user.c:1382
+#: commands/user.c:1382 commands/user.c:1391
 #, c-format
 msgid "permission denied to reassign objects"
 msgstr "重新分配对象的权限不足"
 
-#: commands/user.c:1457 commands/user.c:1601
+#: commands/user.c:1466 commands/user.c:1610
 #, c-format
 msgid "must have admin option on role \"%s\""
 msgstr "在角色\"%s\"上必须有admin选项"
 
-#: commands/user.c:1474
+#: commands/user.c:1483
 #, c-format
 msgid "must be superuser to set grantor"
 msgstr "只有超级用户能设置授权者"
 
-#: commands/user.c:1499
+#: commands/user.c:1508
 #, c-format
 msgid "role \"%s\" is a member of role \"%s\""
 msgstr "角色\"%s\" 是角色\"%s\"的成员"
 
-#: commands/user.c:1514
+#: commands/user.c:1523
 #, c-format
 msgid "role \"%s\" is already a member of role \"%s\""
 msgstr "角色\"%s\" 已经是角色\"%s\"的成员"
 
-#: commands/user.c:1623
+#: commands/user.c:1632
 #, c-format
 msgid "role \"%s\" is not a member of role \"%s\""
 msgstr "角色 \"%s\"不是角色 \"%s\"的成员"
 
-#: commands/vacuum.c:111
+#: commands/vacuum.c:116
+#, fuzzy, c-format
+#| msgid "unrecognized EXPLAIN option \"%s\""
+msgid "unrecognized ANALYZE option \"%s\""
+msgstr "无法识别的EXPLAIN选项\"%s\""
+
+#: commands/vacuum.c:135
+#, c-format
+msgid "unrecognized VACUUM option \"%s\""
+msgstr "无法识别的清理选项\"%s\""
+
+#: commands/vacuum.c:169
 #, c-format
 msgid "ANALYZE option must be specified when a column list is provided"
 msgstr "提供列列表时必须指定ANALYZE选项"
 
-#: commands/vacuum.c:203
+#: commands/vacuum.c:259
 #, c-format
 msgid "%s cannot be executed from VACUUM or ANALYZE"
 msgstr "不能从VACUUM或ANALYZE执行%s"
 
-#: commands/vacuum.c:213
+#: commands/vacuum.c:269
 #, c-format
 msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL"
 msgstr "VACUUM 选项 DISABLE_PAGE_SKIPPING不能与 FULL 一起使用"
 
-#: commands/vacuum.c:657
+#: commands/vacuum.c:502
+#, c-format
+msgid "skipping \"%s\" --- only superuser can vacuum it"
+msgstr "忽略 \"%s\" --- 只有超级用户能够清理 (vacuum)"
+
+#: commands/vacuum.c:506
+#, c-format
+msgid "skipping \"%s\" --- only superuser or database owner can vacuum it"
+msgstr "忽略 \"%s\" --- 只有超级用户或数据库属主能够清理 (vacuum)"
+
+#: commands/vacuum.c:510
+#, c-format
+msgid "skipping \"%s\" --- only table or database owner can vacuum it"
+msgstr "忽略 \"%s\" --- 只有表或数据库属主能够清理 (vacuum)"
+
+#: commands/vacuum.c:525
+#, c-format
+msgid "skipping \"%s\" --- only superuser can analyze it"
+msgstr "忽略 \"%s\" --- 只有超级用户能够分析它"
+
+#: commands/vacuum.c:529
+#, c-format
+msgid "skipping \"%s\" --- only superuser or database owner can analyze it"
+msgstr "忽略 \"%s\" --- 只有超级用户或数据库的属主能够分析它"
+
+#: commands/vacuum.c:533
+#, c-format
+msgid "skipping \"%s\" --- only table or database owner can analyze it"
+msgstr "忽略 \"%s\" --- 只有表或数据库的属主能够分析它"
+
+#: commands/vacuum.c:612 commands/vacuum.c:708
+#, c-format
+msgid "skipping vacuum of \"%s\" --- lock not available"
+msgstr "跳过对 \"%s\" 的压缩处理 --- 无法获取相应锁"
+
+#: commands/vacuum.c:617
+#, c-format
+msgid "skipping vacuum of \"%s\" --- relation no longer exists"
+msgstr "跳过对 \"%s\" 的压缩处理 --- 关系不再存在"
+
+#: commands/vacuum.c:633 commands/vacuum.c:713
+#, c-format
+msgid "skipping analyze of \"%s\" --- lock not available"
+msgstr "跳过对 \"%s\"的分析 --- 锁无法得到"
+
+#: commands/vacuum.c:638
+#, c-format
+msgid "skipping analyze of \"%s\" --- relation no longer exists"
+msgstr "跳过对 \"%s\"的分析 --- 关系不再存在"
+
+#: commands/vacuum.c:935
 #, c-format
 msgid "oldest xmin is far in the past"
 msgstr "最旧的xmin已经过去很久"
 
-#: commands/vacuum.c:658
+#: commands/vacuum.c:936
 #, c-format
 msgid ""
 "Close open transactions soon to avoid wraparound problems.\n"
@@ -10656,194 +10892,40 @@ msgstr ""
 "很快关闭未结交易以避免覆盖问题.\n"
 "您可能还需要提交或回滚旧的准备好的事务,或者删除过时的复制槽."
 
-#: commands/vacuum.c:698
+#: commands/vacuum.c:976
 #, c-format
 msgid "oldest multixact is far in the past"
 msgstr "最旧的多事务已经过去很久"
 
-#: commands/vacuum.c:699
+#: commands/vacuum.c:977
 #, c-format
 msgid "Close open transactions with multixacts soon to avoid wraparound problems."
 msgstr "立即关闭已打开的事务, 以避免重叠问题."
 
-#: commands/vacuum.c:1245
+#: commands/vacuum.c:1548
 #, c-format
 msgid "some databases have not been vacuumed in over 2 billion transactions"
 msgstr "一些数据库在超过 20 亿笔事物后没有做清理 (vacuum)."
 
-#: commands/vacuum.c:1246
+#: commands/vacuum.c:1549
 #, c-format
 msgid "You might have already suffered transaction-wraparound data loss."
 msgstr "您可能已经遇到了由于事务重叠而造成的数据丢失."
 
-#: commands/vacuum.c:1418
+#: commands/vacuum.c:1707
 #, c-format
-msgid "skipping vacuum of \"%s\" --- lock not available"
-msgstr "跳过对 \"%s\" 的压缩处理 --- 无法获取相应锁"
+msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables"
+msgstr "忽略 \"%s\" --- 无法清理 (vacuum) 非表或者特殊的系统表"
 
-#: commands/vacuum.c:1423
+#: commands/variable.c:165 utils/misc/guc.c:10940 utils/misc/guc.c:11002
 #, c-format
-msgid "skipping vacuum of \"%s\" --- relation no longer exists"
-msgstr "跳过对 \"%s\" 的压缩处理 --- 关系不再存在"
+msgid "Unrecognized key word: \"%s\"."
+msgstr "未知的关键字: \"%s\"."
 
-#: commands/vacuum.c:1447
+#: commands/variable.c:177
 #, c-format
-msgid "skipping \"%s\" --- only superuser can vacuum it"
-msgstr "忽略 \"%s\" --- 只有超级用户能够清理 (vacuum)"
-
-#: commands/vacuum.c:1451
-#, c-format
-msgid "skipping \"%s\" --- only superuser or database owner can vacuum it"
-msgstr "忽略 \"%s\" --- 只有超级用户或数据库属主能够清理 (vacuum)"
-
-#: commands/vacuum.c:1455
-#, c-format
-msgid "skipping \"%s\" --- only table or database owner can vacuum it"
-msgstr "忽略 \"%s\" --- 只有表或数据库属主能够清理 (vacuum)"
-
-#: commands/vacuum.c:1472
-#, c-format
-msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables"
-msgstr "忽略 \"%s\" --- 无法清理 (vacuum) 非表或者特殊的系统表"
-
-#: commands/vacuumlazy.c:378
-#, c-format
-msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n"
-msgstr "自动积极的清理表\"%s.%s.%s\":索引扫描:%d\n"
-
-#: commands/vacuumlazy.c:380
-#, c-format
-msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n"
-msgstr "自动清理表\"%s.%s.%s\":索引扫描:%d\n"
-
-#: commands/vacuumlazy.c:386
-#, c-format
-msgid "pages: %u removed, %u remain, %u skipped due to pins, %u skipped frozen\n"
-msgstr "页面:%u 被移除,%u 保留,%u 由于被占用而跳过,%u 被跳过的已被冻结\n"
-
-#: commands/vacuumlazy.c:392
-#, c-format
-msgid "tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable, oldest xmin: %u\n"
-msgstr "元组:%.0f被移除,%.0f保留,%.0f已经死亡但还不能被移除,最老xmin: %u\n"
-
-#: commands/vacuumlazy.c:398
-#, c-format
-msgid "buffer usage: %d hits, %d misses, %d dirtied\n"
-msgstr "缓冲区使用:%d次命中,%d次失效,%d次脏\n"
-
-#: commands/vacuumlazy.c:402
-#, 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:404
-#, c-format
-msgid "system usage: %s"
-msgstr "系统用法:%s"
-
-#: commands/vacuumlazy.c:500
-#, c-format
-msgid "aggressively vacuuming \"%s.%s\""
-msgstr "正在积极清理\"%s.%s\""
-
-#: commands/vacuumlazy.c:881
-#, c-format
-msgid "relation \"%s\" page %u is uninitialized --- fixing"
-msgstr "关系 \"%s\" 页 %u 没有初始化 --- 修复"
-
-#: commands/vacuumlazy.c:1417
-#, c-format
-msgid "\"%s\": removed %.0f row versions in %u pages"
-msgstr "\"%1$s\": 在%3$u页中已删除%2$.0f行版本号"
-
-#: commands/vacuumlazy.c:1427
-#, c-format
-msgid "%.0f dead row versions cannot be removed yet, oldest xmin: %u\n"
-msgstr "%.0f的死亡行版本还不能被移除,最老的xmin: %u\n"
-
-#: commands/vacuumlazy.c:1429
-#, c-format
-msgid "There were %.0f unused item pointers.\n"
-msgstr "有%.0f个未用的项指针。\n"
-
-#: commands/vacuumlazy.c:1431
-#, c-format
-msgid "Skipped %u page due to buffer pins, "
-msgid_plural "Skipped %u pages due to buffer pins, "
-msgstr[0] "由于缓冲区占用而跳过%u个页面,"
-
-#: commands/vacuumlazy.c:1435
-#, c-format
-msgid "%u frozen page.\n"
-msgid_plural "%u frozen pages.\n"
-msgstr[0] "%u个冻结页面.\n"
-
-#: commands/vacuumlazy.c:1439
-#, c-format
-msgid "%u page is entirely empty.\n"
-msgid_plural "%u pages are entirely empty.\n"
-msgstr[0] "%u 个页面完全为空。\n"
-
-#: commands/vacuumlazy.c:1443
-#, c-format
-msgid "%s."
-msgstr "%s"
-
-#: commands/vacuumlazy.c:1446
-#, c-format
-msgid "\"%s\": found %.0f removable, %.0f nonremovable row versions in %u out of %u pages"
-msgstr "\"%1$s\": 在超出%5$u页的%4$u中找到可删除版本号%2$.0f, 不可删除的版本号%3$.0f"
-
-#: commands/vacuumlazy.c:1515
-#, c-format
-msgid "\"%s\": removed %d row versions in %d pages"
-msgstr "\"%1$s\": 在%3$d个页中已删除%2$d记录版本"
-
-#: commands/vacuumlazy.c:1704
-#, c-format
-msgid "scanned index \"%s\" to remove %d row versions"
-msgstr "扫描索引\"%s\"来删除%d记录版本"
-
-#: commands/vacuumlazy.c:1756
-#, c-format
-msgid "index \"%s\" now contains %.0f row versions in %u pages"
-msgstr "索引\"%1$s\"在%3$u个页中包含了行版本号%2$.0f"
-
-#: commands/vacuumlazy.c:1760
-#, c-format
-msgid ""
-"%.0f index row versions were removed.\n"
-"%u index pages have been deleted, %u are currently reusable.\n"
-"%s."
-msgstr ""
-"索引行版本%.0f被删除.\n"
-"%u个索引页已经被删除,%u当前可重用.\n"
-"%s."
-
-#: commands/vacuumlazy.c:1855
-#, c-format
-msgid "\"%s\": stopping truncate due to conflicting lock request"
-msgstr "\"%s\":由于与锁请求相冲突,停止截断操作"
-
-#: commands/vacuumlazy.c:1920
-#, c-format
-msgid "\"%s\": truncated %u to %u pages"
-msgstr "\"%s\": 将%u截断到%u pages"
-
-#: commands/vacuumlazy.c:1985
-#, c-format
-msgid "\"%s\": suspending truncate due to conflicting lock request"
-msgstr "\"%s\":由于与锁请求相冲突,暂停截断操作"
-
-#: commands/variable.c:165 utils/misc/guc.c:10307 utils/misc/guc.c:10369
-#, c-format
-msgid "Unrecognized key word: \"%s\"."
-msgstr "未知的关键字: \"%s\"."
-
-#: commands/variable.c:177
-#, c-format
-msgid "Conflicting \"datestyle\" specifications."
-msgstr "\"datestyle\" 规范冲突."
+msgid "Conflicting \"datestyle\" specifications."
+msgstr "\"datestyle\" 规范冲突."
 
 #: commands/variable.c:299
 #, c-format
@@ -10885,52 +10967,52 @@ msgstr "执行任意查询前必须设置事务的读写模式"
 msgid "cannot set transaction read-write mode during recovery"
 msgstr "在恢复操作期间不能设置事务的读写模式"
 
-#: commands/variable.c:557
+#: commands/variable.c:534
 #, c-format
 msgid "SET TRANSACTION ISOLATION LEVEL must be called before any query"
 msgstr "SET TRANSACTION ISOLATION LEVEL 必须在任何查询之前调用"
 
-#: commands/variable.c:564
+#: commands/variable.c:541
 #, c-format
 msgid "SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction"
 msgstr "SET TRANSACTION ISOLATION LEVEL 不能在子事物中调用"
 
-#: commands/variable.c:571 storage/lmgr/predicate.c:1603
+#: commands/variable.c:548 storage/lmgr/predicate.c:1626
 #, c-format
 msgid "cannot use serializable mode in a hot standby"
 msgstr "热备过程中无法使用可串行化模式"
 
-#: commands/variable.c:572
+#: commands/variable.c:549
 #, c-format
 msgid "You can use REPEATABLE READ instead."
 msgstr "您必须使用REPEATABLE READ来代替"
 
-#: commands/variable.c:620
+#: commands/variable.c:567
 #, c-format
 msgid "SET TRANSACTION [NOT] DEFERRABLE cannot be called within a subtransaction"
 msgstr "SET TRANSACTION [NOT] DEFERRABLE 不能在子事物中调用"
 
-#: commands/variable.c:626
+#: commands/variable.c:573
 #, c-format
 msgid "SET TRANSACTION [NOT] DEFERRABLE must be called before any query"
 msgstr "SET TRANSACTION [NOT] DEFERRABLE 必须在任何查询之前调用"
 
-#: commands/variable.c:708
+#: commands/variable.c:655
 #, c-format
 msgid "Conversion between %s and %s is not supported."
 msgstr "不支持 %s 和 %s 之间的编码转换."
 
-#: commands/variable.c:715
+#: commands/variable.c:662
 #, c-format
 msgid "Cannot change \"client_encoding\" now."
 msgstr "现在无法改变 \"client_encoding\" 值."
 
-#: commands/variable.c:776
+#: commands/variable.c:723
 #, c-format
 msgid "cannot change client_encoding during a parallel operation"
 msgstr "在并行操作期间无法更改客户端编码"
 
-#: commands/variable.c:912
+#: commands/variable.c:863
 #, c-format
 msgid "permission denied to set role \"%s\""
 msgstr "设置角色\"%s\"的权限不足"
@@ -10950,204 +11032,199 @@ msgstr "有效值为 \"local\" 和 \"cascaded\"."
 msgid "could not determine which collation to use for view column \"%s\""
 msgstr "视图中的列\"%s\"无法确定使用哪种排序规则"
 
-#: commands/view.c:117
-#, c-format
-msgid "view must have at least one column"
-msgstr "视图必需至少有一个字段"
-
-#: commands/view.c:285 commands/view.c:297
+#: commands/view.c:280 commands/view.c:291
 #, c-format
 msgid "cannot drop columns from view"
 msgstr "无法从视图中删除列"
 
-#: commands/view.c:302
+#: commands/view.c:296
 #, c-format
 msgid "cannot change name of view column \"%s\" to \"%s\""
 msgstr "不能将视图字段的名称从\"%s\"改成\"%s\""
 
-#: commands/view.c:310
+#: commands/view.c:304
 #, c-format
 msgid "cannot change data type of view column \"%s\" from %s to %s"
 msgstr "不可以将视图字段 \"%s\" 的数据类型从%s改为%s"
 
-#: commands/view.c:455
+#: commands/view.c:451
 #, c-format
 msgid "views must not contain SELECT INTO"
 msgstr "视力中不能包含SELECT INTO"
 
-#: commands/view.c:467
+#: commands/view.c:463
 #, c-format
 msgid "views must not contain data-modifying statements in WITH"
 msgstr "视图不能包含修改数据的WITH子句"
 
-#: commands/view.c:537
+#: commands/view.c:533
 #, c-format
 msgid "CREATE VIEW specifies more column names than columns"
 msgstr "CREATE VIEW 指定的字段名比实际字段多"
 
-#: commands/view.c:545
+#: commands/view.c:541
 #, c-format
 msgid "views cannot be unlogged because they do not have storage"
 msgstr "视图无法取消事务日志,因为它们没有相应存储"
 
-#: commands/view.c:559
+#: commands/view.c:555
 #, c-format
 msgid "view \"%s\" will be a temporary view"
 msgstr "视图\"%s\" 将是一个临时视图."
 
-#: executor/execCurrent.c:78
+#: executor/execCurrent.c:79
 #, c-format
 msgid "cursor \"%s\" is not a SELECT query"
 msgstr "游标 \"%s\"不是一个SELECT查询"
 
-#: executor/execCurrent.c:84
+#: executor/execCurrent.c:85
 #, c-format
 msgid "cursor \"%s\" is held from a previous transaction"
 msgstr "游标\"%s\"是前一个事务所持有的"
 
-#: executor/execCurrent.c:116
+#: executor/execCurrent.c:118
 #, c-format
 msgid "cursor \"%s\" has multiple FOR UPDATE/SHARE references to table \"%s\""
 msgstr "游标\"%s\"有多个引用表\"%s\"的FOR UPDATE/SHARE语句"
 
-#: executor/execCurrent.c:125
+#: executor/execCurrent.c:127
 #, c-format
 msgid "cursor \"%s\" does not have a FOR UPDATE/SHARE reference to table \"%s\""
 msgstr "游标\"%s\"没有引用表\"%s\"的FOR UPDATE/SHARE语句"
 
-#: executor/execCurrent.c:135 executor/execCurrent.c:180
+#: executor/execCurrent.c:137 executor/execCurrent.c:182
 #, c-format
 msgid "cursor \"%s\" is not positioned on a row"
 msgstr "没有在记录上对游标\"%s\"进行定位"
 
-#: executor/execCurrent.c:167 executor/execCurrent.c:226
-#: executor/execCurrent.c:238
+#: executor/execCurrent.c:169 executor/execCurrent.c:228
+#: executor/execCurrent.c:239
 #, c-format
 msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\""
 msgstr "游标\"%s\"不对表\"%s\"进行可更新扫描"
 
-#: executor/execCurrent.c:280 executor/execExprInterp.c:2284
+#: executor/execCurrent.c:280 executor/execExprInterp.c:2312
 #, c-format
 msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)"
 msgstr "第%d个参数(%s)的类型与正在执行计划(%s)中的不匹配"
 
-#: executor/execCurrent.c:292 executor/execExprInterp.c:2296
+#: executor/execCurrent.c:292 executor/execExprInterp.c:2324
 #, c-format
 msgid "no value found for parameter %d"
 msgstr "没有找到参数 %d 的值"
 
-#: executor/execExpr.c:856 parser/parse_agg.c:794
+#: executor/execExpr.c:857 parser/parse_agg.c:816
 #, c-format
 msgid "window function calls cannot be nested"
 msgstr "不允许嵌套调用窗口函数"
 
-#: executor/execExpr.c:1314
+#: executor/execExpr.c:1316
 #, c-format
 msgid "target type is not an array"
 msgstr "目标类型不是一个数组"
 
-#: executor/execExpr.c:1647
+#: executor/execExpr.c:1649
 #, c-format
 msgid "ROW() column has type %s instead of type %s"
 msgstr "ROW() 列类型 %s 替换为 %s"
 
-#: executor/execExpr.c:2182 executor/execSRF.c:697 parser/parse_func.c:126
-#: parser/parse_func.c:640 parser/parse_func.c:1014
+#: executor/execExpr.c:2174 executor/execSRF.c:700 parser/parse_func.c:136
+#: parser/parse_func.c:650 parser/parse_func.c:1024
 #, 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/execExpr.c:2480 executor/execExpr.c:2486
-#: executor/execExprInterp.c:2613 utils/adt/arrayfuncs.c:261
+#: executor/execExpr.c:2570 executor/execExpr.c:2576
+#: executor/execExprInterp.c:2641 utils/adt/arrayfuncs.c:261
 #: utils/adt/arrayfuncs.c:559 utils/adt/arrayfuncs.c:1301
-#: utils/adt/arrayfuncs.c:3347 utils/adt/arrayfuncs.c:5303
-#: utils/adt/arrayfuncs.c:5820
+#: utils/adt/arrayfuncs.c:3347 utils/adt/arrayfuncs.c:5302
+#: utils/adt/arrayfuncs.c:5819
 #, c-format
 msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
 msgstr "数组的维数(%d)超过最大允许值(%d)"
 
-#: executor/execExprInterp.c:1879
+#: executor/execExprInterp.c:1862
 #, c-format
 msgid "attribute %d of type %s has been dropped"
 msgstr "已删除类型%2$s的属性%1$d"
 
-#: executor/execExprInterp.c:1885
+#: executor/execExprInterp.c:1868
 #, c-format
 msgid "attribute %d of type %s has wrong type"
 msgstr "类型%2$s的属性%1$d的类型错误"
 
-#: executor/execExprInterp.c:1887 executor/execExprInterp.c:2886
-#: executor/execExprInterp.c:2933
+#: executor/execExprInterp.c:1870 executor/execExprInterp.c:2914
+#: executor/execExprInterp.c:2961
 #, c-format
 msgid "Table has type %s, but query expects %s."
 msgstr "表具有类型%s,但是查询期望类型%s."
 
-#: executor/execExprInterp.c:2374
+#: executor/execExprInterp.c:2402
 #, c-format
 msgid "WHERE CURRENT OF is not supported for this table type"
 msgstr "这种表类型不能使用WHERE CURRENT OF"
 
-#: executor/execExprInterp.c:2591
+#: executor/execExprInterp.c:2619
 #, c-format
 msgid "cannot merge incompatible arrays"
 msgstr "无法合并不兼容的排列"
 
-#: executor/execExprInterp.c:2592
+#: executor/execExprInterp.c:2620
 #, c-format
 msgid "Array with element type %s cannot be included in ARRAY construct with element type %s."
 msgstr "元素类型为 %s 的 ARRAY 结构中不能包含带有元素类型为 %s 的数组."
 
-#: executor/execExprInterp.c:2633 executor/execExprInterp.c:2663
+#: executor/execExprInterp.c:2661 executor/execExprInterp.c:2691
 #, c-format
 msgid "multidimensional arrays must have array expressions with matching dimensions"
 msgstr "多维数组必须有符合维度的数组表达式"
 
-#: executor/execExprInterp.c:2885 executor/execExprInterp.c:2932
+#: executor/execExprInterp.c:2913 executor/execExprInterp.c:2960
 #, c-format
 msgid "attribute %d has wrong type"
 msgstr "属性%d的类型错误"
 
-#: executor/execExprInterp.c:3042
+#: executor/execExprInterp.c:3070
 #, c-format
 msgid "array subscript in assignment must not be null"
 msgstr "在分配中的数组下标不能为空"
 
-#: executor/execExprInterp.c:3475 utils/adt/domains.c:149
+#: executor/execExprInterp.c:3503 utils/adt/domains.c:149
 #, c-format
 msgid "domain %s does not allow null values"
 msgstr "域 %s 不允许空值"
 
-#: executor/execExprInterp.c:3490 utils/adt/domains.c:184
+#: executor/execExprInterp.c:3518 utils/adt/domains.c:184
 #, c-format
 msgid "value for domain %s violates check constraint \"%s\""
 msgstr "域 %s 的值违反了检查约束 \"%s\""
 
-#: executor/execExprInterp.c:3861 executor/execExprInterp.c:3878
-#: executor/execExprInterp.c:3980 executor/nodeModifyTable.c:106
-#: executor/nodeModifyTable.c:117 executor/nodeModifyTable.c:134
-#: executor/nodeModifyTable.c:142
+#: executor/execExprInterp.c:3889 executor/execExprInterp.c:3906
+#: executor/execExprInterp.c:4008 executor/nodeModifyTable.c:109
+#: executor/nodeModifyTable.c:120 executor/nodeModifyTable.c:137
+#: executor/nodeModifyTable.c:145
 #, c-format
 msgid "table row type and query-specified row type do not match"
 msgstr "表记录类型和查询指定记录不匹配"
 
-#: executor/execExprInterp.c:3862
+#: executor/execExprInterp.c:3890
 #, 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/execExprInterp.c:3879 executor/nodeModifyTable.c:118
+#: executor/execExprInterp.c:3907 executor/nodeModifyTable.c:121
 #, c-format
 msgid "Table has type %s at ordinal position %d, but query expects %s."
 msgstr "表在位置%2$d具有类型%1$s,但是查询期望类型%3$s."
 
-#: executor/execExprInterp.c:3981 executor/execSRF.c:953
+#: executor/execExprInterp.c:4009 executor/execSRF.c:959
 #, c-format
 msgid "Physical storage mismatch on dropped attribute at ordinal position %d."
 msgstr "在顺序位置%d上已删除属性与物理存储上的不匹配."
 
-#: executor/execIndexing.c:543
+#: executor/execIndexing.c:547
 #, c-format
 msgid "ON CONFLICT does not support deferrable unique constraints/exclusion constraints as arbiters"
 msgstr "ON CONFLICT不支持可延迟唯一约束/排除约束作为仲裁者"
@@ -11182,260 +11259,286 @@ msgstr "键%s与已存在的键%s冲突"
 msgid "Key conflicts with existing key."
 msgstr "与现有键发生键冲突。"
 
-#: executor/execMain.c:1116
+#: executor/execMain.c:1093
 #, c-format
 msgid "cannot change sequence \"%s\""
 msgstr "不可以改变序列 \"%s\""
 
-#: executor/execMain.c:1122
+#: executor/execMain.c:1099
 #, c-format
 msgid "cannot change TOAST relation \"%s\""
 msgstr "不可以改变 TOAST 关系 \"%s\""
 
-#: executor/execMain.c:1140 rewrite/rewriteHandler.c:2773
+#: executor/execMain.c:1117 rewrite/rewriteHandler.c:2911
 #, c-format
 msgid "cannot insert into view \"%s\""
 msgstr "无法插入到视图\"%s\""
 
-#: executor/execMain.c:1142 rewrite/rewriteHandler.c:2776
+#: executor/execMain.c:1119 rewrite/rewriteHandler.c:2914
 #, c-format
 msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule."
 msgstr "启用向视图插入操作, 要提供INSTEAD OF INSERT触发器或者提供一个无条件的 ON INSERT DO INSTEAD 规则."
 
-#: executor/execMain.c:1148 rewrite/rewriteHandler.c:2781
+#: executor/execMain.c:1125 rewrite/rewriteHandler.c:2919
 #, c-format
 msgid "cannot update view \"%s\""
 msgstr "无法更新视图\"%s\""
 
-#: executor/execMain.c:1150 rewrite/rewriteHandler.c:2784
+#: executor/execMain.c:1127 rewrite/rewriteHandler.c:2922
 #, c-format
 msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule."
 msgstr "启用对视图的更新操作, 需要提供INSTEAD OF UPDATE触发器或者一个无条件的 ON UPDATE DO INSTEAD 规则."
 
-#: executor/execMain.c:1156 rewrite/rewriteHandler.c:2789
+#: executor/execMain.c:1133 rewrite/rewriteHandler.c:2927
 #, c-format
 msgid "cannot delete from view \"%s\""
 msgstr "无法删除视图\"%s\""
 
-#: executor/execMain.c:1158 rewrite/rewriteHandler.c:2792
+#: executor/execMain.c:1135 rewrite/rewriteHandler.c:2930
 #, c-format
 msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule."
 msgstr "启用从视图删除数据, 需要提供一个INSTEAD OF DELETE 触发器或者一个无条件的 ON DELETE DO INSTEAD 规则."
 
 # describe.c:933
-#: executor/execMain.c:1169
+#: executor/execMain.c:1146
 #, c-format
 msgid "cannot change materialized view \"%s\""
 msgstr "不能改变物化视图 \"%s\""
 
-#: executor/execMain.c:1181
+#: executor/execMain.c:1158
 #, c-format
 msgid "cannot insert into foreign table \"%s\""
 msgstr "不能插值到外部表 \"%s\""
 
-#: executor/execMain.c:1187
+#: executor/execMain.c:1164
 #, c-format
 msgid "foreign table \"%s\" does not allow inserts"
 msgstr "外部表 \"%s\" 不允许插入操作"
 
-#: executor/execMain.c:1194
+#: executor/execMain.c:1171
 #, c-format
 msgid "cannot update foreign table \"%s\""
 msgstr "无法更新外部表 \"%s\""
 
-#: executor/execMain.c:1200
+#: executor/execMain.c:1177
 #, c-format
 msgid "foreign table \"%s\" does not allow updates"
 msgstr "外部表 \"%s\" 不允许更新"
 
-#: executor/execMain.c:1207
+#: executor/execMain.c:1184
 #, c-format
 msgid "cannot delete from foreign table \"%s\""
 msgstr "不能从外部表 \"%s\" 删除数据"
 
-#: executor/execMain.c:1213
+#: executor/execMain.c:1190
 #, c-format
 msgid "foreign table \"%s\" does not allow deletes"
 msgstr "外部表 \"%s\" 不允许删除数据"
 
-#: executor/execMain.c:1224
+#: executor/execMain.c:1201
 #, c-format
 msgid "cannot change relation \"%s\""
 msgstr "无法改变关系 \"%s\""
 
-#: executor/execMain.c:1251
+#: executor/execMain.c:1228
 #, c-format
 msgid "cannot lock rows in sequence \"%s\""
 msgstr "无法锁定序列\"%s\"中的行"
 
-#: executor/execMain.c:1258
+#: executor/execMain.c:1235
 #, c-format
 msgid "cannot lock rows in TOAST relation \"%s\""
 msgstr "无法锁定TOAST 关系 \"%s\"中的行"
 
-#: executor/execMain.c:1265
+#: executor/execMain.c:1242
 #, c-format
 msgid "cannot lock rows in view \"%s\""
 msgstr "无法锁定 \"%s\" 中的行"
 
-#: executor/execMain.c:1273
+#: executor/execMain.c:1250
 #, c-format
 msgid "cannot lock rows in materialized view \"%s\""
 msgstr "无法锁定物化视图 \"%s\" 中的行"
 
-#: executor/execMain.c:1282 executor/execMain.c:2974
-#: executor/nodeLockRows.c:136
+#: executor/execMain.c:1259 executor/execMain.c:2637
+#: executor/nodeLockRows.c:138
 #, c-format
 msgid "cannot lock rows in foreign table \"%s\""
 msgstr "无法锁定外部表 \"%s\"中的行"
 
-#: executor/execMain.c:1288
+#: executor/execMain.c:1265
 #, c-format
 msgid "cannot lock rows in relation \"%s\""
 msgstr "无法锁定关系 \"%s\"中的行"
 
-#: executor/execMain.c:1959
+#: executor/execMain.c:1891
 #, c-format
 msgid "new row for relation \"%s\" violates partition constraint"
 msgstr "关系 \"%s\" 的新列违反了分区约束"
 
-#: executor/execMain.c:1961 executor/execMain.c:2041 executor/execMain.c:2088
-#: executor/execMain.c:2195
+#: executor/execMain.c:1893 executor/execMain.c:1975 executor/execMain.c:2024
+#: executor/execMain.c:2133
 #, c-format
 msgid "Failing row contains %s."
 msgstr "失败, 行包含%s."
 
-#: executor/execMain.c:2039
+#: executor/execMain.c:1973
 #, c-format
 msgid "null value in column \"%s\" violates not-null constraint"
 msgstr "在字段 \"%s\" 中空值违反了非空约束"
 
-#: executor/execMain.c:2086
+#: executor/execMain.c:2022
 #, c-format
 msgid "new row for relation \"%s\" violates check constraint \"%s\""
 msgstr "关系 \"%s\" 的新列违反了检查约束 \"%s\""
 
-#: executor/execMain.c:2193
+#: executor/execMain.c:2131
 #, c-format
 msgid "new row violates check option for view \"%s\""
 msgstr "新行违反了视图\"%s\"的检查选项"
 
-#: executor/execMain.c:2203
+#: executor/execMain.c:2141
 #, c-format
 msgid "new row violates row-level security policy \"%s\" for table \"%s\""
 msgstr "新行违背了表\"%2$s\"的行级安全性策略\"%1$s\""
 
-#: executor/execMain.c:2208
+#: executor/execMain.c:2146
 #, c-format
 msgid "new row violates row-level security policy for table \"%s\""
 msgstr "新行违背了表\"%s\"的行级安全策略"
 
-#: executor/execMain.c:2215
+#: executor/execMain.c:2153
 #, c-format
 msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\""
 msgstr "新行违背了表\"%s\"的行级安全策略\"%s\"(USING expression)"
 
-#: executor/execMain.c:2220
+#: executor/execMain.c:2158
 #, c-format
 msgid "new row violates row-level security policy (USING expression) for table \"%s\""
 msgstr "新行违背了表\"%s\"的行级安全策略(USING expression)"
 
 # describe.c:1542
-#: executor/execPartition.c:337
+#: executor/execPartition.c:345
 #, c-format
 msgid "no partition of relation \"%s\" found for row"
 msgstr "没有为行找到关系\"%s\"的分区"
 
-#: executor/execPartition.c:339
+#: executor/execPartition.c:348
 #, c-format
 msgid "Partition key of the failing row contains %s."
 msgstr "失败行的分区键包含%s."
 
-#: executor/execReplication.c:197 executor/execReplication.c:356
+#: executor/execReplication.c:195 executor/execReplication.c:359
 #, c-format
 msgid "tuple to be locked was already moved to another partition due to concurrent update, retrying"
 msgstr "由于并发更新,要锁定的元组已移动到另一个分区,正在重试 "
 
-#: executor/execReplication.c:201 executor/execReplication.c:360
+#: executor/execReplication.c:199 executor/execReplication.c:363
 #, c-format
 msgid "concurrent update, retrying"
 msgstr "并发更新,正在重试"
 
-#: executor/execReplication.c:257 parser/parse_oper.c:228
+#: executor/execReplication.c:205 executor/execReplication.c:369
+#, fuzzy, c-format
+#| msgid "concurrent update, retrying"
+msgid "concurrent delete, retrying"
+msgstr "并发更新,正在重试"
+
+#: executor/execReplication.c:263 parser/parse_oper.c:228
 #: utils/adt/array_userfuncs.c:719 utils/adt/array_userfuncs.c:858
-#: utils/adt/arrayfuncs.c:3625 utils/adt/arrayfuncs.c:4141
-#: utils/adt/arrayfuncs.c:6101 utils/adt/rowtypes.c:1179
+#: utils/adt/arrayfuncs.c:3625 utils/adt/arrayfuncs.c:4140
+#: utils/adt/arrayfuncs.c:6130 utils/adt/rowtypes.c:1180
 #, c-format
 msgid "could not identify an equality operator for type %s"
 msgstr "无法为类型%s识别等于操作符"
 
-#: executor/execReplication.c:573
+#: executor/execReplication.c:572
 #, c-format
 msgid "cannot update table \"%s\" because it does not have a replica identity and publishes updates"
 msgstr "无法更新表\"%s\",因为它没有副本标识并发布更新"
 
-#: executor/execReplication.c:575
+#: executor/execReplication.c:574
 #, c-format
 msgid "To enable updating the table, set REPLICA IDENTITY using ALTER TABLE."
 msgstr "若要启用表的更新,请使用ALTER TABLE设置REPLICA IDENTITY."
 
-#: executor/execReplication.c:579
+#: executor/execReplication.c:578
 #, c-format
 msgid "cannot delete from table \"%s\" because it does not have a replica identity and publishes deletes"
 msgstr "无法从表\"%s\"中删除,因为它没有副本标识并发布删除"
 
-#: executor/execReplication.c:581
+#: executor/execReplication.c:580
 #, c-format
 msgid "To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE."
 msgstr "要启用从表中删除,请使用ALTER TABLE设置REPLICA IDENTITY."
 
-#: executor/execReplication.c:600
-#, c-format
-msgid "logical replication target relation \"%s.%s\" is not a table"
-msgstr "逻辑复制目标关系 \"%s.%s\"不是一个表 "
+#: executor/execReplication.c:600 executor/execReplication.c:607
+#: executor/execReplication.c:615
+#, fuzzy, c-format
+#| msgid "cannot use expression index \"%s\" as replica identity"
+msgid "cannot use relation \"%s.%s\" as logical replication target"
+msgstr "不能将表达式索引\"%s\"用作复制标识"
+
+#: executor/execReplication.c:602
+#, fuzzy, c-format
+#| msgid "\"%s\" is a partitioned table"
+msgid "\"%s.%s\" is a partitioned table."
+msgstr "\"%s\" 是一个分区表"
+
+#: executor/execReplication.c:609
+#, fuzzy, c-format
+#| msgid "\"%s\" is a foreign table"
+msgid "\"%s.%s\" is a foreign table."
+msgstr "\"%s\" 是一个外部表"
+
+#: executor/execReplication.c:617
+#, fuzzy, c-format
+#| msgid "\"%s\" is not a table"
+msgid "\"%s.%s\" is not a table."
+msgstr "\"%s\" 不是一个表"
 
-#: executor/execSRF.c:308
+#: executor/execSRF.c:310
 #, c-format
 msgid "rows returned by function are not all of the same row type"
 msgstr "函数返回的记录不完全属于相同的记录类型"
 
-#: executor/execSRF.c:356 executor/execSRF.c:647
+#: executor/execSRF.c:358 executor/execSRF.c:649
 #, c-format
 msgid "table-function protocol for materialize mode was not followed"
 msgstr "没有跟随针对物化模式的表函数协议"
 
-#: executor/execSRF.c:363 executor/execSRF.c:665
+#: executor/execSRF.c:365 executor/execSRF.c:667
 #, c-format
 msgid "unrecognized table-function returnMode: %d"
 msgstr "未认可的表函数返回模式 (returnMode): %d"
 
-#: executor/execSRF.c:871
+#: executor/execSRF.c:876
 #, c-format
 msgid "function returning setof record called in context that cannot accept type record"
 msgstr "调用用于返回setof记录的函数的环境不能接受使用记录类型"
 
-#: executor/execSRF.c:926 executor/execSRF.c:942 executor/execSRF.c:952
+#: executor/execSRF.c:932 executor/execSRF.c:948 executor/execSRF.c:958
 #, c-format
 msgid "function return row and query-specified return row do not match"
 msgstr "指定查询返回记录和实际函数返回记录不匹配"
 
-#: executor/execSRF.c:927
+#: executor/execSRF.c:933
 #, 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/execSRF.c:943
+#: executor/execSRF.c:949
 #, c-format
 msgid "Returned type %s at ordinal position %d, but query expects %s."
 msgstr "在顺序位置%2$d的返回类型是%1$s, 但是查询期望使用类型%3$s."
 
-#: executor/execUtils.c:687
+#: executor/execUtils.c:712
 #, c-format
 msgid "materialized view \"%s\" has not been populated"
 msgstr "物化视图 \"%s\"未被初始化"
 
-#: executor/execUtils.c:689
+#: executor/execUtils.c:714
 #, c-format
 msgid "Use the REFRESH MATERIALIZED VIEW command."
 msgstr "使用命令 REFRESH MATERIALIZED VIEW."
@@ -11457,7 +11560,7 @@ msgid "%s is not allowed in a SQL function"
 msgstr "%s 不允许在一个 SQL 函数中"
 
 #. translator: %s is a SQL statement name
-#: executor/functions.c:535 executor/spi.c:1422 executor/spi.c:2212
+#: executor/functions.c:535 executor/spi.c:1474 executor/spi.c:2262
 #, c-format
 msgid "%s is not allowed in a non-volatile function"
 msgstr "%s 在一个 non-valatile 函数中是不允许的"
@@ -11467,39 +11570,39 @@ msgstr "%s 在一个 non-valatile 函数中是不允许的"
 msgid "could not determine actual result type for function declared to return type %s"
 msgstr "无法确定实际结果类型为函数声明返回类型 %s"
 
-#: executor/functions.c:1418
+#: executor/functions.c:1407
 #, c-format
 msgid "SQL function \"%s\" statement %d"
 msgstr "SQL 函数 \"%s\" 语句 %d"
 
-#: executor/functions.c:1444
+#: executor/functions.c:1433
 #, c-format
 msgid "SQL function \"%s\" during startup"
 msgstr "SQL 函数 \"%s\" 在启动的时候"
 
-#: executor/functions.c:1537
+#: executor/functions.c:1526
 #, c-format
 msgid "calling procedures with output arguments is not supported in SQL functions"
 msgstr "SQL函数中不支持使用输出参数调用过程"
 
-#: executor/functions.c:1657 executor/functions.c:1690
-#: executor/functions.c:1702 executor/functions.c:1826
+#: executor/functions.c:1646 executor/functions.c:1679
+#: executor/functions.c:1691 executor/functions.c:1826
 #: executor/functions.c:1859 executor/functions.c:1889
 #, c-format
 msgid "return type mismatch in function declared to return %s"
 msgstr "函数返回类型和声明类型 %s 不匹配"
 
-#: executor/functions.c:1659
+#: executor/functions.c:1648
 #, c-format
 msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING."
 msgstr "函数的最后语句必须是 SELECT 或 INSERT/UPDATE/DELETE RETURNING."
 
-#: executor/functions.c:1692
+#: executor/functions.c:1681
 #, c-format
 msgid "Final statement must return exactly one column."
 msgstr "最终的语句必须返回一列."
 
-#: executor/functions.c:1704
+#: executor/functions.c:1693
 #, c-format
 msgid "Actual return type is %s."
 msgstr "实际返回类型是 %s."
@@ -11519,42 +11622,42 @@ msgstr "最终语句在第 %3$d 列返回 %1$s 而不是 %2$s"
 msgid "Final statement returns too few columns."
 msgstr "最终的语句返回的列太少."
 
-#: executor/functions.c:1940
+#: executor/functions.c:1945
 #, c-format
 msgid "return type %s is not supported for SQL functions"
 msgstr "SQL 函数不支持返回类型 %s"
 
-#: executor/nodeAgg.c:2806 parser/parse_agg.c:633 parser/parse_agg.c:663
+#: executor/nodeAgg.c:2825 parser/parse_agg.c:655 parser/parse_agg.c:685
 #, c-format
 msgid "aggregate function calls cannot be nested"
 msgstr "不允许嵌套调用聚合函数"
 
-#: executor/nodeAgg.c:2992 executor/nodeWindowAgg.c:2822
+#: executor/nodeAgg.c:3030 executor/nodeWindowAgg.c:2835
 #, c-format
 msgid "aggregate %u needs to have compatible input type and transition type"
 msgstr "聚集 %u 需要有兼容的输入类型和转换类型"
 
-#: executor/nodeCustom.c:148 executor/nodeCustom.c:159
+#: executor/nodeCustom.c:146 executor/nodeCustom.c:157
 #, c-format
 msgid "custom scan \"%s\" does not support MarkPos"
 msgstr "自定义扫描 \"%s\" 不支持 MarkPos"
 
-#: executor/nodeHashjoin.c:1040 executor/nodeHashjoin.c:1070
+#: executor/nodeHashjoin.c:1059 executor/nodeHashjoin.c:1089
 #, c-format
 msgid "could not rewind hash-join temporary file: %m"
 msgstr "无法卷回 (rewind) 散列联接 (hash-join) 临时文件: %m"
 
-#: executor/nodeHashjoin.c:1228 executor/nodeHashjoin.c:1234
+#: executor/nodeHashjoin.c:1248 executor/nodeHashjoin.c:1254
 #, c-format
 msgid "could not write to hash-join temporary file: %m"
 msgstr "无法写入散列联接 (hash-join) 临时文件: %m"
 
-#: executor/nodeHashjoin.c:1275 executor/nodeHashjoin.c:1285
+#: executor/nodeHashjoin.c:1295 executor/nodeHashjoin.c:1305
 #, c-format
 msgid "could not read from hash-join temporary file: %m"
 msgstr "无法从散列联接 (hash-join) 临时文件读取: %m"
 
-#: executor/nodeIndexonlyscan.c:236
+#: executor/nodeIndexonlyscan.c:242
 #, c-format
 msgid "lossy distance functions are not supported in index-only scans"
 msgstr "在只用索引扫描中不支持有损距离函数"
@@ -11569,103 +11672,99 @@ msgstr "OFFSET后的值不能是负数"
 msgid "LIMIT must not be negative"
 msgstr "LIMIT后的值不能为负数"
 
-#: executor/nodeMergejoin.c:1567
+#: executor/nodeMergejoin.c:1570
 #, c-format
 msgid "RIGHT JOIN is only supported with merge-joinable join conditions"
 msgstr "RIGHT JOIN 只支持可合并联结条件"
 
-#: executor/nodeMergejoin.c:1585
+#: executor/nodeMergejoin.c:1588
 #, c-format
 msgid "FULL JOIN is only supported with merge-joinable join conditions"
 msgstr "只有在合并连接查询条件中才支持FULL JOIN"
 
-#: executor/nodeModifyTable.c:107
+#: executor/nodeModifyTable.c:110
 #, c-format
 msgid "Query has too many columns."
 msgstr "查询中的列太多了"
 
-#: executor/nodeModifyTable.c:135
+#: executor/nodeModifyTable.c:138
 #, c-format
 msgid "Query provides a value for a dropped column at ordinal position %d."
 msgstr "在顺序位置%d上查询为已删除的列提供了一个值"
 
-#: executor/nodeModifyTable.c:143
+#: executor/nodeModifyTable.c:146
 #, c-format
 msgid "Query has too few columns."
 msgstr "查询中的列太少了"
 
-#: executor/nodeModifyTable.c:773
-#, c-format
-msgid "tuple to be deleted was already moved to another partition due to concurrent update"
-msgstr "由于同时更新,要删除的元组已移动到另一个分区"
+#: executor/nodeModifyTable.c:808 executor/nodeModifyTable.c:883
+#, fuzzy, c-format
+#| msgid "tuple to be updated was already modified by an operation triggered by the current command"
+msgid "tuple to be deleted was already modified by an operation triggered by the current command"
+msgstr "待更新元组值已经被当前命令触发的操作修改了"
 
-#: executor/nodeModifyTable.c:1085
+#: executor/nodeModifyTable.c:1190
 #, c-format
 msgid "invalid ON UPDATE specification"
 msgstr "无效的ON UPDATE规范"
 
-#: executor/nodeModifyTable.c:1086
+#: executor/nodeModifyTable.c:1191
 #, c-format
 msgid "The result tuple would appear in a different partition than the original tuple."
 msgstr "结果元组将出现在与原始元组不同的分区中"
 
-#: executor/nodeModifyTable.c:1261
-#, c-format
-msgid "tuple to be updated was already moved to another partition due to concurrent update"
-msgstr "由于同时更新,要更新的元组已移动到另一个分区"
-
-#: executor/nodeModifyTable.c:1412
+#: executor/nodeModifyTable.c:1564
 #, c-format
 msgid "ON CONFLICT DO UPDATE command cannot affect row a second time"
 msgstr "ON CONFLICT DO UPDATE命令无法再次影响行"
 
-#: executor/nodeModifyTable.c:1413
+#: executor/nodeModifyTable.c:1565
 #, c-format
 msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values."
 msgstr "确保在具有重复受约束值的同一个命令中不会插入行。"
 
-#: executor/nodeSamplescan.c:279
+#: executor/nodeSamplescan.c:259
 #, c-format
 msgid "TABLESAMPLE parameter cannot be null"
 msgstr "TABLESAMPLE参数不能为空值"
 
-#: executor/nodeSamplescan.c:291
+#: executor/nodeSamplescan.c:271
 #, c-format
 msgid "TABLESAMPLE REPEATABLE parameter cannot be null"
 msgstr "TABLESAMPLE REPEATABLE参数不能为null"
 
 #: executor/nodeSubplan.c:347 executor/nodeSubplan.c:386
-#: executor/nodeSubplan.c:1136
+#: executor/nodeSubplan.c:1147
 #, c-format
 msgid "more than one row returned by a subquery used as an expression"
 msgstr "作为一个表达式使用的子查询返回了多列"
 
-#: executor/nodeTableFuncscan.c:375
+#: executor/nodeTableFuncscan.c:378
 #, c-format
 msgid "namespace URI must not be null"
 msgstr "命名空间URI不能为空"
 
-#: executor/nodeTableFuncscan.c:389
+#: executor/nodeTableFuncscan.c:392
 #, c-format
 msgid "row filter expression must not be null"
 msgstr "行筛选表达式不能为空"
 
-#: executor/nodeTableFuncscan.c:415
+#: executor/nodeTableFuncscan.c:418
 #, c-format
 msgid "column filter expression must not be null"
 msgstr "列筛选器表达式不能为空"
 
-#: executor/nodeTableFuncscan.c:416
+#: executor/nodeTableFuncscan.c:419
 #, c-format
 msgid "Filter for column \"%s\" is null."
 msgstr "列\"%s\"的筛选器为空."
 
-#: executor/nodeTableFuncscan.c:506
+#: executor/nodeTableFuncscan.c:509
 #, c-format
 msgid "null is not allowed in column \"%s\""
 msgstr "列\"%s\"中不允许为空"
 
-#: executor/nodeWindowAgg.c:355
+#: executor/nodeWindowAgg.c:354
 #, c-format
 msgid "moving-aggregate transition function must not return null"
 msgstr "移动聚合转换函数不能返回null值"
@@ -11690,1939 +11789,1624 @@ msgstr "框架(frame)的结束偏移量不能为空"
 msgid "frame ending offset must not be negative"
 msgstr "框架(frame)的结束偏移量不能为负数"
 
-#: executor/nodeWindowAgg.c:2738
+#: executor/nodeWindowAgg.c:2751
 #, c-format
 msgid "aggregate function %s does not support use as a window function"
 msgstr "聚合函数%s不支持用作窗口函数"
 
-#: executor/spi.c:233 executor/spi.c:272
+#: executor/spi.c:228 executor/spi.c:297
 #, c-format
 msgid "invalid transaction termination"
 msgstr "无效交易终止"
 
-#: executor/spi.c:247
+#: executor/spi.c:242
 #, c-format
 msgid "cannot commit while a subtransaction is active"
 msgstr "子事务处于活动状态时无法提交"
 
-#: executor/spi.c:278
+#: executor/spi.c:303
 #, c-format
 msgid "cannot roll back while a subtransaction is active"
 msgstr "子事务处于活动状态时无法回滚"
 
-#: executor/spi.c:317
+#: executor/spi.c:372
 #, c-format
 msgid "transaction left non-empty SPI stack"
 msgstr "事物剩下非空的 SPI 栈"
 
-#: executor/spi.c:318 executor/spi.c:381
+#: executor/spi.c:373 executor/spi.c:435
 #, c-format
 msgid "Check for missing \"SPI_finish\" calls."
 msgstr "检查是否缺少 \"SPI_finish\" 调用."
 
-#: executor/spi.c:380
+#: executor/spi.c:434
 #, c-format
 msgid "subtransaction left non-empty SPI stack"
 msgstr "子事物剩下非空的 SPI 栈"
 
-#: executor/spi.c:1283
+#: executor/spi.c:1335
 #, c-format
 msgid "cannot open multi-query plan as cursor"
 msgstr "无法作为游标打开多条查询规划"
 
 #. translator: %s is name of a SQL command, eg INSERT
-#: executor/spi.c:1288
+#: executor/spi.c:1340
 #, c-format
 msgid "cannot open %s query as cursor"
 msgstr "无法以游标的形式打开查询%s"
 
-#: executor/spi.c:1393
+#: executor/spi.c:1445
 #, c-format
 msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported"
 msgstr "不支持DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE "
 
-#: executor/spi.c:1394 parser/analyze.c:2480
+#: executor/spi.c:1446 parser/analyze.c:2493
 #, c-format
 msgid "Scrollable cursors must be READ ONLY."
 msgstr "可滚动游标必须为只读."
 
-#: executor/spi.c:2534
+#: executor/spi.c:2570
 #, c-format
 msgid "SQL statement \"%s\""
 msgstr "SQL 语句 \"%s\""
 
-#: executor/tqueue.c:70
+#: executor/tqueue.c:74
 #, c-format
 msgid "could not send tuple to shared-memory queue"
 msgstr "无法将元组发送到共享内存队列"
 
-#: foreign/foreign.c:188
+#: foreign/foreign.c:220
 #, c-format
 msgid "user mapping not found for \"%s\""
 msgstr "没有找到对于\"%s\"的用户映射"
 
-#: foreign/foreign.c:640
+#: foreign/foreign.c:672
 #, c-format
 msgid "invalid option \"%s\""
 msgstr "无效选项 \"%s\""
 
-#: foreign/foreign.c:641
+#: foreign/foreign.c:673
 #, c-format
 msgid "Valid options in this context are: %s"
 msgstr "这个环境中有效选项是:%s"
 
-#: gram.y:1026
+#: jit/jit.c:208 utils/fmgr/dfmgr.c:209 utils/fmgr/dfmgr.c:426
+#: utils/fmgr/dfmgr.c:474
 #, c-format
-msgid "UNENCRYPTED PASSWORD is no longer supported"
-msgstr "UNENCRYPTED PASSWORD 不再被支持"
+msgid "could not access file \"%s\": %m"
+msgstr "无法访问文件 \"%s\": %m"
 
-#: gram.y:1027
+#: jit/llvm/llvmjit.c:601
 #, c-format
-msgid "Remove UNENCRYPTED to store the password in encrypted form instead."
-msgstr "å\88 é\99¤ UNENCRYPTED ä»¥å\8a å¯\86å½¢å¼\8få­\98å\82¨å¯\86ç \81."
+msgid "time to inline: %.3fs, opt: %.3fs, emit: %.3fs"
+msgstr "å\9c¨çº¿æ\97¶é\97´: %.3fs, é\80\89项: %.3fs, å\8f\91å\87º: %.3fs"
 
-#: gram.y:1089
+#: lib/dshash.c:247 utils/mmgr/dsa.c:702 utils/mmgr/dsa.c:724
+#: utils/mmgr/dsa.c:805
 #, c-format
-msgid "unrecognized role option \"%s\""
-msgstr "无法识别的角色选项\"%s\""
+msgid "Failed on DSA request of size %zu."
+msgstr "在大小为%zu的DSA请求时失败."
 
-#: gram.y:1336 gram.y:1351
+#: lib/stringinfo.c:284
 #, c-format
-msgid "CREATE SCHEMA IF NOT EXISTS cannot include schema elements"
-msgstr "CREATE SCHEMA IF NOT EXISTS不能包含方案(schema)元素"
+msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes."
+msgstr "无法为包含%d字节的字符串缓冲区扩大%d个更多字节."
 
-#: gram.y:1496
+#: libpq/auth-scram.c:248
 #, c-format
-msgid "current database cannot be changed"
-msgstr "不能改变当前使用的数据库"
+msgid "client selected an invalid SASL authentication mechanism"
+msgstr "客户端选择了无效的SASL身份验证机制"
 
-#: gram.y:1620
+#: libpq/auth-scram.c:269 libpq/auth-scram.c:509 libpq/auth-scram.c:518
 #, c-format
-msgid "time zone interval must be HOUR or HOUR TO MINUTE"
-msgstr "时区间隔必须为 HOUR 或者 HOUR TO MINUTE"
+msgid "invalid SCRAM verifier for user \"%s\""
+msgstr "用户\"%s\"的SCRAM验证程序无效"
 
-#: gram.y:2138
+#: libpq/auth-scram.c:280
 #, c-format
-msgid "column number must be in range from 1 to %d"
-msgstr "列号必须是在范围1到%d之间"
+msgid "User \"%s\" does not have a valid SCRAM verifier."
+msgstr "用户\"%s\"没有有效的SCRAM验证器."
 
-#: gram.y:2677
+#: libpq/auth-scram.c:358 libpq/auth-scram.c:363 libpq/auth-scram.c:657
+#: libpq/auth-scram.c:665 libpq/auth-scram.c:776 libpq/auth-scram.c:786
+#: libpq/auth-scram.c:894 libpq/auth-scram.c:901 libpq/auth-scram.c:916
+#: libpq/auth-scram.c:931 libpq/auth-scram.c:945 libpq/auth-scram.c:963
+#: libpq/auth-scram.c:978 libpq/auth-scram.c:1264 libpq/auth-scram.c:1272
 #, c-format
-msgid "sequence option \"%s\" not supported here"
-msgstr "此处不支持序列选项\"%s\""
+msgid "malformed SCRAM message"
+msgstr "异常的SCRAM消息"
 
-#: gram.y:2706
+#: libpq/auth-scram.c:359
 #, c-format
-msgid "modulus for hash partition provided more than once"
-msgstr "哈希分区的模数提供了多次"
+msgid "The message is empty."
+msgstr "消息为空."
 
-#: gram.y:2715
+#: libpq/auth-scram.c:364
 #, c-format
-msgid "remainder for hash partition provided more than once"
-msgstr "哈希分区的剩余部分提供了多次"
+msgid "Message length does not match input length."
+msgstr "消息长度与输入长度不匹配."
 
-#: gram.y:2722
+#: libpq/auth-scram.c:396
 #, c-format
-msgid "unrecognized hash partition bound specification \"%s\""
-msgstr "不可识别的哈希分区绑定规范\"%s\""
+msgid "invalid SCRAM response"
+msgstr "无效的SCRAM响应"
 
-#: gram.y:2730
+#: libpq/auth-scram.c:397
 #, c-format
-msgid "modulus for hash partition must be specified"
-msgstr "必须指定哈希分区的模数"
+msgid "Nonce does not match."
+msgstr "Nonce不匹配."
 
-#: gram.y:2734
+#: libpq/auth-scram.c:471
 #, c-format
-msgid "remainder for hash partition must be specified"
-msgstr "必须指定哈希分区的剩余部分"
+msgid "could not generate random salt"
+msgstr "无法生成随机salt"
 
-#: gram.y:2986 gram.y:3015
+#: libpq/auth-scram.c:658
 #, c-format
-msgid "STDIN/STDOUT not allowed with PROGRAM"
-msgstr "STDIN/STDOUT 不允许与PROGRAM一起使用"
+msgid "Expected attribute \"%c\" but found \"%s\"."
+msgstr "预期属性\"%c\",但发现结果是\"%s\"."
 
-#: gram.y:3325 gram.y:3332 gram.y:11462 gram.y:11470
+#: libpq/auth-scram.c:666 libpq/auth-scram.c:787
 #, c-format
-msgid "GLOBAL is deprecated in temporary table creation"
-msgstr "GLOBAL在临时表中的创建中已经被废弃使用"
+msgid "Expected character \"=\" for attribute \"%c\"."
+msgstr "属性\"%c\"需要字符\"=\"."
 
-#: gram.y:3814 utils/adt/ri_triggers.c:308 utils/adt/ri_triggers.c:365
-#: utils/adt/ri_triggers.c:853 utils/adt/ri_triggers.c:1013
-#: utils/adt/ri_triggers.c:1198 utils/adt/ri_triggers.c:1419
-#: utils/adt/ri_triggers.c:1654 utils/adt/ri_triggers.c:1712
-#: utils/adt/ri_triggers.c:1817 utils/adt/ri_triggers.c:1997
+#: libpq/auth-scram.c:777
 #, c-format
-msgid "MATCH PARTIAL not yet implemented"
-msgstr "MATCH PARTIAL 仍未实现"
+msgid "Attribute expected, but found invalid character \"%s\"."
+msgstr "应输入属性,但发现无效字符\"%s\"."
 
-#: gram.y:5296
+#: libpq/auth-scram.c:895 libpq/auth-scram.c:917
 #, c-format
-msgid "unrecognized row security option \"%s\""
-msgstr "无法识别的行安全选项\"%s\""
+msgid "The client selected SCRAM-SHA-256-PLUS, but the SCRAM message does not include channel binding data."
+msgstr "客户端选择了SCRAM-SHA-256-PLUS,但SCRAM消息不包括通道绑定数据."
 
-#: gram.y:5297
+#: libpq/auth-scram.c:902 libpq/auth-scram.c:932
 #, c-format
-msgid "Only PERMISSIVE or RESTRICTIVE policies are supported currently."
-msgstr "当前仅支持 PERMISSIVE 或 RESTRICTIVE 策略 "
-
-#: gram.y:5405
-msgid "duplicate trigger events specified"
-msgstr "重复指定触发器事件"
+msgid "Comma expected, but found character \"%s\"."
+msgstr "应为逗号,但找到了字符\"%s\"."
 
-#: gram.y:5546 parser/parse_utilcmd.c:3313 parser/parse_utilcmd.c:3339
+#: libpq/auth-scram.c:923
 #, c-format
-msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
-msgstr "约束声明 INITIALLY DEFERRED 必须为 DEFERRABLE"
+msgid "SCRAM channel binding negotiation error"
+msgstr "SCRAM通道绑定协商错误"
 
-#: gram.y:5553
+#: libpq/auth-scram.c:924
 #, c-format
-msgid "conflicting constraint properties"
-msgstr "约束属性冲突"
+msgid "The client supports SCRAM channel binding but thinks the server does not.  However, this server does support channel binding."
+msgstr "客户端支持SCRAM通道绑定,但认为服务器不支持。但是,此服务器支持通道绑定"
 
-#: gram.y:5659
+#: libpq/auth-scram.c:946
 #, c-format
-msgid "CREATE ASSERTION is not yet implemented"
-msgstr "CREATE ASSERTION 仍未实现"
+msgid "The client selected SCRAM-SHA-256 without channel binding, but the SCRAM message includes channel binding data."
+msgstr "客户机选择的SCRAM-SHA-256没有通道绑定,但SCRAM消息包含通道绑定数据."
 
-#: gram.y:5674
+#: libpq/auth-scram.c:957
 #, c-format
-msgid "DROP ASSERTION is not yet implemented"
-msgstr "DROP ASSERTION 仍未实现"
+msgid "unsupported SCRAM channel-binding type \"%s\""
+msgstr "不支持的SCRAM通道绑定类型\"%s\""
 
-#: gram.y:6054
+#: libpq/auth-scram.c:964
 #, c-format
-msgid "RECHECK is no longer required"
-msgstr "不再需要RECHECK选项了"
+msgid "Unexpected channel-binding flag \"%s\"."
+msgstr "意外的通道绑定标志\"%s\"."
 
-# describe.c:289
-#: gram.y:6055
+#: libpq/auth-scram.c:974
 #, c-format
-msgid "Update your data type."
-msgstr "更改您的数据类型"
+msgid "client uses authorization identity, but it is not supported"
+msgstr "客户端使用授权标识,但不支持"
 
-#: gram.y:7791
+#: libpq/auth-scram.c:979
 #, c-format
-msgid "aggregates cannot have output arguments"
-msgstr "聚合函数不能使用输出参数"
+msgid "Unexpected attribute \"%s\" in client-first-message."
+msgstr "客户端第一条消息中的意外属性\"%s\""
 
-#: gram.y:8179 utils/adt/regproc.c:691 utils/adt/regproc.c:732
+#: libpq/auth-scram.c:995
 #, c-format
-msgid "missing argument"
-msgstr "缺少参数"
+msgid "client requires an unsupported SCRAM extension"
+msgstr "客户端需要不支持的SCRAM扩展"
 
-#: gram.y:8180 utils/adt/regproc.c:692 utils/adt/regproc.c:733
+#: libpq/auth-scram.c:1009
 #, c-format
-msgid "Use NONE to denote the missing argument of a unary operator."
-msgstr "使用 NONE 表示一元操作符缺少的参数."
+msgid "non-printable characters in SCRAM nonce"
+msgstr "SCRAM nonce中的不可打印字符"
 
-#: gram.y:10045 gram.y:10063
+#: libpq/auth-scram.c:1126
 #, c-format
-msgid "WITH CHECK OPTION not supported on recursive views"
-msgstr "递归视图不能使用WITH CHECK OPTION"
+msgid "could not generate random nonce"
+msgstr "无法生成随机的nonce"
 
-#: gram.y:10560
+#: libpq/auth-scram.c:1230
 #, c-format
-msgid "unrecognized VACUUM option \"%s\""
-msgstr "无法识别的清理选项\"%s\""
+msgid "SCRAM channel binding check failed"
+msgstr "SCRAM通道绑定检查失败"
 
-#: gram.y:11570
+#: libpq/auth-scram.c:1248
 #, c-format
-msgid "LIMIT #,# syntax is not supported"
-msgstr "不支持 LIMIT #,# 语法"
+msgid "unexpected SCRAM channel-binding attribute in client-final-message"
+msgstr "客户端最终消息中的意外SCRAM通道绑定属性"
 
-#: gram.y:11571
+#: libpq/auth-scram.c:1265
 #, c-format
-msgid "Use separate LIMIT and OFFSET clauses."
-msgstr "LIMIT和OFFSET子句要分隔开"
+msgid "Malformed proof in client-final-message."
+msgstr "客户端最终消息中的证明格式不正确."
 
-#: gram.y:11869 gram.y:11894
+#: libpq/auth-scram.c:1273
 #, c-format
-msgid "VALUES in FROM must have an alias"
-msgstr "FROM中的VALUES子句必须有一个别名"
+msgid "Garbage found at the end of client-final-message."
+msgstr "在客户端最终消息末尾发现垃圾"
 
-#: gram.y:11870 gram.y:11895
+#: libpq/auth.c:279
 #, c-format
-msgid "For example, FROM (VALUES ...) [AS] foo."
-msgstr "例如, FROM (SELECT ...) [AS] foo."
+msgid "authentication failed for user \"%s\": host rejected"
+msgstr "用户 \"%s\" 认证失败: 主机拒绝"
 
-#: gram.y:11875 gram.y:11900
+#: libpq/auth.c:282
 #, c-format
-msgid "subquery in FROM must have an alias"
-msgstr "FROM 中的子查询必须有一个别名"
+msgid "\"trust\" authentication failed for user \"%s\""
+msgstr "用户 \"%s\" \"trust\" 认证失败"
 
-#: gram.y:11876 gram.y:11901
+#: libpq/auth.c:285
 #, c-format
-msgid "For example, FROM (SELECT ...) [AS] foo."
-msgstr "例如, FROM (SELECT ...) [AS] foo."
+msgid "Ident authentication failed for user \"%s\""
+msgstr "用户 \"%s\" Ident 认证失败"
 
-#: gram.y:12354
+#: libpq/auth.c:288
 #, c-format
-msgid "only one DEFAULT value is allowed"
-msgstr "å\8fªå\85\81许ä¸\80个é»\98认å\80¼"
+msgid "Peer authentication failed for user \"%s\""
+msgstr "对ç\94¨æ\88·\"%s\"ç\9a\84对ç­\89认è¯\81失败"
 
-#: gram.y:12363
+#: libpq/auth.c:293
 #, c-format
-msgid "only one PATH value per column is allowed"
-msgstr "每列只允许一个路径值"
+msgid "password authentication failed for user \"%s\""
+msgstr "用户 \"%s\" Password 认证失败"
 
-#: gram.y:12372
+#: libpq/auth.c:298
 #, c-format
-msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\""
-msgstr "å\88\97\"%s\"ç\9a\84 NULL / NOT NULL å£°æ\98\8eå\86²çª\81æ\88\96å\86\97ä½\99"
+msgid "GSSAPI authentication failed for user \"%s\""
+msgstr "对äº\8eç\94¨æ\88·\"%s\"ç\9a\84GSSAPI è®¤è¯\81失败"
 
-#: gram.y:12381
+#: libpq/auth.c:301
 #, c-format
-msgid "unrecognized column option \"%s\""
-msgstr "无法识别的列选项\"%s\""
+msgid "SSPI authentication failed for user \"%s\""
+msgstr "对于用户 \"%s\" 的 SSPI 认证失败"
 
-#: gram.y:12635
+#: libpq/auth.c:304
 #, c-format
-msgid "precision for type float must be at least 1 bit"
-msgstr "浮点类型的精确度必须至少 1 位"
+msgid "PAM authentication failed for user \"%s\""
+msgstr "用户 \"%s\" 认证 PAM 失败"
 
-#: gram.y:12644
+#: libpq/auth.c:307
 #, c-format
-msgid "precision for type float must be less than 54 bits"
-msgstr "浮点类型的精确度必须小于 54 位"
+msgid "BSD authentication failed for user \"%s\""
+msgstr "对于用户 \"%s\" 的 BSD 认证失败"
 
-#: gram.y:13135
+#: libpq/auth.c:310
 #, c-format
-msgid "wrong number of parameters on left side of OVERLAPS expression"
-msgstr "OVERLAPS 表达式左边的参数个数不对"
+msgid "LDAP authentication failed for user \"%s\""
+msgstr "对于用户 \"%s\"的LDAP认证失败"
 
-#: gram.y:13140
+#: libpq/auth.c:313
 #, c-format
-msgid "wrong number of parameters on right side of OVERLAPS expression"
-msgstr "OVERLAPS 表达式右边的参数个数不对"
+msgid "certificate authentication failed for user \"%s\""
+msgstr "用户 \"%s\" 的认证失败"
 
-#: gram.y:13315
+#: libpq/auth.c:316
 #, c-format
-msgid "UNIQUE predicate is not yet implemented"
-msgstr "没有实现UNIQUE谓词"
+msgid "RADIUS authentication failed for user \"%s\""
+msgstr "用户 \"%s\" 的RADIUS认证失败"
 
-#: gram.y:13662
+#: libpq/auth.c:319
 #, c-format
-msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP"
-msgstr "WITHIN GROUP不允许多个 ORDER BY 子句"
+msgid "authentication failed for user \"%s\": invalid authentication method"
+msgstr "用户 \"%s\" 认证失败: 无效的认证方式"
 
-#: gram.y:13667
+#: libpq/auth.c:323
 #, c-format
-msgid "cannot use DISTINCT with WITHIN GROUP"
-msgstr "ä¸\8dè\83½å°\86 DISTINCT å\92\8c WITHIN GROUPæ··å\9c¨ä¸\80起使ç\94¨"
+msgid "Connection matched pg_hba.conf line %d: \"%s\""
+msgstr "ä¸\8eConnectionç\9b¸å\8c¹é\85\8dç\9a\84æ\96\87ä»¶è¡\8cä½\8däº\8e pg_hba.conf %d: \"%s\""
 
-#: gram.y:13672
+#: libpq/auth.c:370
 #, c-format
-msgid "cannot use VARIADIC with WITHIN GROUP"
-msgstr "不能将 VARIADIC 和 WITHIN GROUP在一起混用"
+msgid "client certificates can only be checked if a root certificate store is available"
+msgstr "只有在根认证有效的情况下才能检查客户端认证"
 
-#: gram.y:14125 gram.y:14148
+#: libpq/auth.c:381
 #, c-format
-msgid "frame start cannot be UNBOUNDED FOLLOWING"
-msgstr "框架的起始位置不能被执行UNBOUNDED FOLLOWING操作."
+msgid "connection requires a valid client certificate"
+msgstr "连接中需要一个有效的客户端认证"
 
-#: gram.y:14130
+#: libpq/auth.c:391
 #, c-format
-msgid "frame starting from following row cannot end with current row"
-msgstr "从后面记录启动的窗口框架(frame)不能以当前记录结束"
+msgid "GSSAPI encryption can only be used with gss, trust, or reject authentication methods"
+msgstr ""
 
-#: gram.y:14153
+#: libpq/auth.c:425
 #, c-format
-msgid "frame end cannot be UNBOUNDED PRECEDING"
-msgstr "框架的结束位置不能被执行UNBOUNDED FOLLOWING操作."
+msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s"
+msgstr "pg_hba.conf中的记录拒绝来自主机\"%s\",用户 \"%s\",%s的复制连接"
 
-#: gram.y:14159
-#, c-format
-msgid "frame starting from current row cannot have preceding rows"
-msgstr "从当前记录启动的窗口框架(frame)不能拥有正在处理的记录"
+#: libpq/auth.c:427 libpq/auth.c:443 libpq/auth.c:501 libpq/auth.c:519
+msgid "SSL off"
+msgstr "SSL 关闭"
 
-#: gram.y:14166
-#, c-format
-msgid "frame starting from following row cannot have preceding rows"
-msgstr "从后面记录启动的窗口框架(frame)不能拥有正在处理的记录"
+#: libpq/auth.c:427 libpq/auth.c:443 libpq/auth.c:501 libpq/auth.c:519
+msgid "SSL on"
+msgstr "SSL 开启"
 
-#: gram.y:14809
+#: libpq/auth.c:431
 #, c-format
-msgid "type modifier cannot have parameter name"
-msgstr "类型修改器不能有参数名称"
+msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\""
+msgstr "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\"的复制连接"
 
-#: gram.y:14815
+#: libpq/auth.c:440
 #, c-format
-msgid "type modifier cannot have ORDER BY"
-msgstr "类型修改器不能有ORDER BY"
+msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\", %s"
+msgstr "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\", 数据库\"%s\", %s的复制连接"
 
-#: gram.y:14880 gram.y:14887
+#: libpq/auth.c:447
 #, c-format
-msgid "%s cannot be used as a role name here"
-msgstr "在这里%s不能被用做一个角色名"
-
-#: gram.y:15558 gram.y:15747
-msgid "improper use of \"*\""
-msgstr "对\"*\"的使用不正确"
+msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\""
+msgstr "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\", 数据库\"%s\"的复制连接"
 
-#: gram.y:15710 gram.y:15727 tsearch/spell.c:954 tsearch/spell.c:971
-#: tsearch/spell.c:988 tsearch/spell.c:1005 tsearch/spell.c:1070
+#: libpq/auth.c:476
 #, c-format
-msgid "syntax error"
-msgstr "语法错误"
+msgid "Client IP address resolved to \"%s\", forward lookup matches."
+msgstr "客户端IP地址解析为 \"%s\", 与转发查找结果相匹配."
 
-#: gram.y:15811
+#: libpq/auth.c:479
 #, c-format
-msgid "an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type"
-msgstr "带å\8f¯å\8f\98ç\9b´æ\8e¥å\8f\82æ\95°ç\9a\84æ\9c\89åº\8fé\9b\86è\81\9aé\9b\86å\87½æ\95°å¿\85é¡»æ\9c\89ä¸\80个 ç\9b¸å\90\8cç±»å\9e\8bç\9a\84VARIADIC è\81\9aé\9b\86å\8f\82æ\95° "
+msgid "Client IP address resolved to \"%s\", forward lookup not checked."
+msgstr "客æ\88·ç«¯IPå\9c°å\9d\80è§£æ\9e\90为 \"%s\", è½¬å\8f\91æ\9f¥æ\89¾ç»\93æ\9e\9c没æ\9c\89æ£\80æ\9f¥."
 
-#: gram.y:15848
+#: libpq/auth.c:482
 #, c-format
-msgid "multiple ORDER BY clauses not allowed"
-msgstr "不允许多个 ORDER BY 子句"
+msgid "Client IP address resolved to \"%s\", forward lookup does not match."
+msgstr "客户端IP地址解析为 \"%s\", 与转发查找结果不匹配."
 
-#: gram.y:15859
+# fe-misc.c:702
+#: libpq/auth.c:485
 #, c-format
-msgid "multiple OFFSET clauses not allowed"
-msgstr "不允许多个 OFFSET 子句"
+msgid "Could not translate client host name \"%s\" to IP address: %s."
+msgstr "无法解析主机名 \"%s\" 对应的IP地址: %s."
 
-#: gram.y:15868
+# fe-connect.c:1283
+#: libpq/auth.c:490
 #, c-format
-msgid "multiple LIMIT clauses not allowed"
-msgstr "不允许多个 LIMIT 子句"
+msgid "Could not resolve client IP address to a host name: %s."
+msgstr "无法解析客户端地址主机名: %s."
 
-#: gram.y:15877
+#: libpq/auth.c:499
 #, c-format
-msgid "multiple WITH clauses not allowed"
-msgstr "不允许使用多个WITH子句"
+msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\", %s"
+msgstr "没有来自主机 \"%s\", 用户\"%s\", %s的复制连接的pg_hba.conf记录"
 
-#: gram.y:16081
+#: libpq/auth.c:506
 #, c-format
-msgid "OUT and INOUT arguments aren't allowed in TABLE functions"
-msgstr "在TABLE函数中不允许使用OUT或INOUT模式的参数"
+msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\""
+msgstr "没有来自主机 \"%s\", 用户\"%s\"的复制连接的pg_hba.conf记录"
 
-#: gram.y:16182
+#: libpq/auth.c:516
 #, c-format
-msgid "multiple COLLATE clauses not allowed"
-msgstr "不允许多个 COLLATE 子句"
+msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s"
+msgstr "没有用于主机 \"%s\", 用户 \"%s\", 数据库 \"%s\", %s 的 pg_hba.conf 记录"
 
-#. translator: %s is CHECK, UNIQUE, or similar
-#: gram.y:16220 gram.y:16233
+#: libpq/auth.c:524
 #, c-format
-msgid "%s constraints cannot be marked DEFERRABLE"
-msgstr "%s约束不能标为DEFERRABLE"
+msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\""
+msgstr "没有用于主机 \"%s\", 用户 \"%s\", 数据库 \"%s\" 的 pg_hba.conf 记录"
 
-#. translator: %s is CHECK, UNIQUE, or similar
-#: gram.y:16246
+#: libpq/auth.c:691
 #, c-format
-msgid "%s constraints cannot be marked NOT VALID"
-msgstr "%s约束不能标为NOT VALID"
+msgid "expected password response, got message type %d"
+msgstr "期望得到口令回应,但是得到了消息类型%d."
 
-#. translator: %s is CHECK, UNIQUE, or similar
-#: gram.y:16259
+#: libpq/auth.c:719
 #, c-format
-msgid "%s constraints cannot be marked NO INHERIT"
-msgstr "%s约束不能标为NO INHERIT"
+msgid "invalid password packet size"
+msgstr "无效的口令包尺寸"
 
-#: guc-file.l:316
+#: libpq/auth.c:737
 #, c-format
-msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %u"
-msgstr "未认可的配置参数 \"%s\", 文件\"%s\", 行%u"
+msgid "empty password returned by client"
+msgstr "客户端返回了空口令"
 
-#: guc-file.l:353 utils/misc/guc.c:6249 utils/misc/guc.c:6443
-#: utils/misc/guc.c:6533 utils/misc/guc.c:6623 utils/misc/guc.c:6731
-#: utils/misc/guc.c:6826
+#: libpq/auth.c:857 libpq/hba.c:1340
 #, c-format
-msgid "parameter \"%s\" cannot be changed without restarting the server"
-msgstr "å\9c¨æ²¡æ\9c\89å\90¯å\8a¨æ\9c\8då\8a¡å\99¨ç\9a\84æ\83\85å\86µä¸\8bï¼\8cä¸\8dè\83½æ\94¹å\8f\98å\8f\82æ\95° \"%s\" "
+msgid "MD5 authentication is not supported when \"db_user_namespace\" is enabled"
+msgstr "å½\93å\90¯ç\94¨ \"db_user_namespace\" æ\97¶ä¸\8dæ\94¯æ\8c\81 MD5 è®¤è¯\81"
 
-#: guc-file.l:389
+#: libpq/auth.c:863
 #, c-format
-msgid "parameter \"%s\" removed from configuration file, reset to default"
-msgstr "参数\"%s\"已从配置文件中删除,重新设置为缺省"
+msgid "could not generate random MD5 salt"
+msgstr "无法生成随机MD5"
 
-#: guc-file.l:455
+#: libpq/auth.c:909
 #, c-format
-msgid "parameter \"%s\" changed to \"%s\""
-msgstr "å\8f\82æ\95° \"%s\"被æ\94¹ä¸º\"%s\""
+msgid "SASL authentication is not supported in protocol version 2"
+msgstr "å\9c¨å\8d\8fè®®ç\89\88æ\9c¬2中ä¸\8dæ\94¯æ\8c\81SASL身份éª\8cè¯\81"
 
-#: guc-file.l:497
+#: libpq/auth.c:942
 #, c-format
-msgid "configuration file \"%s\" contains errors"
-msgstr "配置文件 \"%s\" 有错"
+msgid "expected SASL response, got message type %d"
+msgstr "期望SASL回应,但是得到了信息类型%d"
 
-#: guc-file.l:502
+#: libpq/auth.c:1071
 #, c-format
-msgid "configuration file \"%s\" contains errors; unaffected changes were applied"
-msgstr "配置文件 \"%s\" 有错; 使用了不受影响的内容变动"
+msgid "GSSAPI is not supported in protocol version 2"
+msgstr "在协议版本2中不支持使用GSSAPI"
 
-#: guc-file.l:507
+#: libpq/auth.c:1131
 #, c-format
-msgid "configuration file \"%s\" contains errors; no changes were applied"
-msgstr "配置文件 \"%s\" 有错; 没有内容变动"
+msgid "expected GSS response, got message type %d"
+msgstr "期望GSS回应,但是得到了信息类型%d"
 
-#: guc-file.l:580
-#, c-format
-msgid "could not open configuration file \"%s\": maximum nesting depth exceeded"
-msgstr "无法打开配置文件 \"%s\": 已超过最大的嵌套深度"
+#: libpq/auth.c:1193
+msgid "accepting GSS security context failed"
+msgstr "接收GSS安全环境失败"
 
-#: guc-file.l:596 libpq/hba.c:2142 libpq/hba.c:2550
-#, c-format
-msgid "could not open configuration file \"%s\": %m"
-msgstr "无法打开配置文件 \"%s\": %m"
+#: libpq/auth.c:1232
+msgid "retrieving GSS user name failed"
+msgstr "获取GSS用户名失败"
 
-#: guc-file.l:607
+#: libpq/auth.c:1363
 #, c-format
-msgid "skipping missing configuration file \"%s\""
-msgstr "忽ç\95¥ä¸¢å¤±ç\9a\84é\85\8dç½®æ\96\87ä»¶\"%s\""
+msgid "SSPI is not supported in protocol version 2"
+msgstr "å\9c¨å\8d\8fè®®ç\89\88æ\9c¬2中ä¸\8dæ\94¯æ\8c\81使ç\94¨SSPI"
 
-#: guc-file.l:861
-#, c-format
-msgid "syntax error in file \"%s\" line %u, near end of line"
-msgstr "在文件 \"%s\" 第 %u 行, 行尾附近语法错误"
+#: libpq/auth.c:1378
+msgid "could not acquire SSPI credentials"
+msgstr "无法获得SSPI证书"
 
-#: guc-file.l:871
+#: libpq/auth.c:1396
 #, c-format
-msgid "syntax error in file \"%s\" line %u, near token \"%s\""
-msgstr "在文件 \"%s\" 第 %u 行, 记号 \"%s\" 附近语法错误"
+msgid "expected SSPI response, got message type %d"
+msgstr "期望SSPI回应,但是得到了消息类型%d"
 
-#: guc-file.l:891
-#, c-format
-msgid "too many syntax errors found, abandoning file \"%s\""
-msgstr "发现太多的语法错误, 放弃文件 \"%s\""
+#: libpq/auth.c:1469
+msgid "could not accept SSPI security context"
+msgstr "无法访问SSPI安全环境"
 
-#: guc-file.l:943
-#, c-format
-msgid "could not open configuration directory \"%s\": %m"
-msgstr "无法打开配置文件目录 \"%s\": %m"
+#: libpq/auth.c:1531
+msgid "could not get token from SSPI security context"
+msgstr "无法从SSPI安全环境中获取令牌(token)"
 
-#: jit/jit.c:208 utils/fmgr/dfmgr.c:201 utils/fmgr/dfmgr.c:418
-#: utils/fmgr/dfmgr.c:466
+#: libpq/auth.c:1650 libpq/auth.c:1669
 #, c-format
-msgid "could not access file \"%s\": %m"
-msgstr "无法访问文件 \"%s\": %m"
+msgid "could not translate name"
+msgstr "不能翻译名称"
 
-#: jit/llvm/llvmjit.c:598
+#: libpq/auth.c:1682
 #, c-format
-msgid "time to inline: %.3fs, opt: %.3fs, emit: %.3fs"
-msgstr "在线时间: %.3fs, 选项: %.3fs, 发出: %.3fs"
+msgid "realm name too long"
+msgstr "realm 名称太长"
 
-#: lib/dshash.c:247 utils/mmgr/dsa.c:715 utils/mmgr/dsa.c:797
+#: libpq/auth.c:1697
 #, c-format
-msgid "Failed on DSA request of size %zu."
-msgstr "在大小为%zu的DSA请求时失败."
+msgid "translated account name too long"
+msgstr "翻译的账户名太长"
 
-#: lib/stringinfo.c:278
+#: libpq/auth.c:1883
 #, c-format
-msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes."
-msgstr "无法为包含%d字节的字符串缓冲区扩大%d个更多字节."
+msgid "could not create socket for Ident connection: %m"
+msgstr "无法为 Ident 联接创建套接字: %m"
 
-#: libpq/auth-scram.c:251
+#: libpq/auth.c:1898
 #, c-format
-msgid "client selected an invalid SASL authentication mechanism"
-msgstr "客户端选择了无效的SASL身份验证机制"
+msgid "could not bind to local address \"%s\": %m"
+msgstr "无法绑定到本地地址 \"%s\": %m"
 
-#: libpq/auth-scram.c:272 libpq/auth-scram.c:512 libpq/auth-scram.c:521
+#: libpq/auth.c:1910
 #, c-format
-msgid "invalid SCRAM verifier for user \"%s\""
-msgstr "用户\"%s\"的SCRAM验证程序无效"
+msgid "could not connect to Ident server at address \"%s\", port %s: %m"
+msgstr "无法联接到地址为 \"%s\", 端口为 %s 的 Ident 服务器: %m"
 
-#: libpq/auth-scram.c:283
+#: libpq/auth.c:1932
 #, c-format
-msgid "User \"%s\" does not have a valid SCRAM verifier."
-msgstr "用户\"%s\"没有有效的SCRAM验证器."
+msgid "could not send query to Ident server at address \"%s\", port %s: %m"
+msgstr "无法发送查询到地址为 \"%s\", 端口为 %s 的 Ident 服务器: %m"
 
-#: libpq/auth-scram.c:361 libpq/auth-scram.c:366 libpq/auth-scram.c:660
-#: libpq/auth-scram.c:668 libpq/auth-scram.c:779 libpq/auth-scram.c:789
-#: libpq/auth-scram.c:897 libpq/auth-scram.c:904 libpq/auth-scram.c:919
-#: libpq/auth-scram.c:934 libpq/auth-scram.c:948 libpq/auth-scram.c:966
-#: libpq/auth-scram.c:981 libpq/auth-scram.c:1267 libpq/auth-scram.c:1275
+#: libpq/auth.c:1949
 #, c-format
-msgid "malformed SCRAM message"
-msgstr "异常的SCRAM消息"
+msgid "could not receive response from Ident server at address \"%s\", port %s: %m"
+msgstr "无法从地址为 \"%s\", 端口为 %s 的 Ident 服务器接收应答: %m"
 
-#: libpq/auth-scram.c:362
+#: libpq/auth.c:1959
 #, c-format
-msgid "The message is empty."
-msgstr "消息为空."
+msgid "invalidly formatted response from Ident server: \"%s\""
+msgstr "从 Ident 服务器接收的无效格式应答: \"%s\""
 
-#: libpq/auth-scram.c:367
+# fe-auth.c:640
+#: libpq/auth.c:1999
 #, c-format
-msgid "Message length does not match input length."
-msgstr "消息长度与输入长度不匹配."
+msgid "peer authentication is not supported on this platform"
+msgstr "对等认证在这个平台上不支持"
 
-#: libpq/auth-scram.c:399
+#: libpq/auth.c:2003
 #, c-format
-msgid "invalid SCRAM response"
-msgstr "æ\97 æ\95\88ç\9a\84SCRAMå\93\8dåº\94"
+msgid "could not get peer credentials: %m"
+msgstr "æ\97 æ³\95è\8e·å¾\97å\90\8cç­\89 (peer) è¯\81书: %m"
 
-#: libpq/auth-scram.c:400
+#: libpq/auth.c:2014
 #, c-format
-msgid "Nonce does not match."
-msgstr "Nonce不匹配."
+msgid "could not look up local user ID %ld: %s"
+msgstr "无法查找本地用户ID %ld:%s"
 
-#: libpq/auth-scram.c:474
+#: libpq/auth.c:2102
 #, c-format
-msgid "could not generate random salt"
-msgstr "æ\97 æ³\95ç\94\9fæ\88\90é\9a\8fæ\9cºsalt"
+msgid "error from underlying PAM layer: %s"
+msgstr "æ\9d¥è\87ª PAM å±\82ä¸\8bé\9d¢ç\9a\84é\94\99误: %s"
 
-#: libpq/auth-scram.c:661
+#: libpq/auth.c:2171
 #, c-format
-msgid "Expected attribute \"%c\" but found \"%s\"."
-msgstr "预期属性\"%c\",但发现结果是\"%s\"."
+msgid "could not create PAM authenticator: %s"
+msgstr "无法创建 PAM 类型器: %s"
 
-#: libpq/auth-scram.c:669 libpq/auth-scram.c:790
+#: libpq/auth.c:2182
 #, c-format
-msgid "Expected character \"=\" for attribute \"%c\"."
-msgstr "属性\"%c\"需要字符\"=\"."
+msgid "pam_set_item(PAM_USER) failed: %s"
+msgstr "pam_set_item(PAM_USER) 失败: %s"
 
-#: libpq/auth-scram.c:780
+#: libpq/auth.c:2214
 #, c-format
-msgid "Attribute expected, but found invalid character \"%s\"."
-msgstr "应输入属性,但发现无效字符\"%s\"."
+msgid "pam_set_item(PAM_RHOST) failed: %s"
+msgstr "pam_set_item(PAM_RHOST) 失败: %s"
 
-#: libpq/auth-scram.c:898 libpq/auth-scram.c:920
+#: libpq/auth.c:2226
 #, c-format
-msgid "The client selected SCRAM-SHA-256-PLUS, but the SCRAM message does not include channel binding data."
-msgstr "客户端选择了SCRAM-SHA-256-PLUS,但SCRAM消息不包括通道绑定数据."
+msgid "pam_set_item(PAM_CONV) failed: %s"
+msgstr "pam_set_item(PAM_CONV) 失败: %s"
 
-#: libpq/auth-scram.c:905 libpq/auth-scram.c:935
+#: libpq/auth.c:2237
 #, c-format
-msgid "Comma expected, but found character \"%s\"."
-msgstr "应为逗号,但找到了字符\"%s\"."
+msgid "pam_authenticate failed: %s"
+msgstr "pam_authenticate 失败: %s"
 
-#: libpq/auth-scram.c:926
+#: libpq/auth.c:2248
 #, c-format
-msgid "SCRAM channel binding negotiation error"
-msgstr "SCRAM通道绑定协商错误"
+msgid "pam_acct_mgmt failed: %s"
+msgstr "pam_acct_mgmt 失败: %s"
 
-#: libpq/auth-scram.c:927
+#: libpq/auth.c:2259
 #, c-format
-msgid "The client supports SCRAM channel binding but thinks the server does not.  However, this server does support channel binding."
-msgstr "客户端支持SCRAM通道绑定,但认为服务器不支持。但是,此服务器支持通道绑定"
+msgid "could not release PAM authenticator: %s"
+msgstr "无法释放 PAM 类型器: %s"
 
-#: libpq/auth-scram.c:949
+#: libpq/auth.c:2335
 #, c-format
-msgid "The client selected SCRAM-SHA-256 without channel binding, but the SCRAM message includes channel binding data."
-msgstr "客户机选择的SCRAM-SHA-256没有通道绑定,但SCRAM消息包含通道绑定数据."
+msgid "could not initialize LDAP: error code %d"
+msgstr "无法初始化LDAP: 错误代码%d"
 
-#: libpq/auth-scram.c:960
-#, c-format
-msgid "unsupported SCRAM channel-binding type \"%s\""
-msgstr "不支持的SCRAM通道绑定类型\"%s\""
+#: libpq/auth.c:2372
+#, fuzzy, c-format
+#| msgid "could not receive data from client: %m"
+msgid "could not extract domain name from ldapbasedn"
+msgstr "无法从客户端获得数据: %m"
 
-#: libpq/auth-scram.c:967
-#,c-format
-msgid "Unexpected channel-binding flag \"%s\"."
-msgstr "意外的通道绑定标志\"%s\"."
+#: libpq/auth.c:2380
+#, fuzzy, c-format
+#| msgid "LDAP authentication failed for user \"%s\""
+msgid "LDAP authentication could not find DNS SRV records for \"%s\""
+msgstr "对于用户 \"%s\"的LDAP认证失败"
 
-#: libpq/auth-scram.c:977
+#: libpq/auth.c:2382
 #, c-format
-msgid "client uses authorization identity, but it is not supported"
-msgstr "客户端使用授权标识,但不支持"
+msgid "Set an LDAP server name explicitly."
+msgstr ""
 
-#: libpq/auth-scram.c:982
+#: libpq/auth.c:2434
 #, c-format
-msgid "Unexpected attribute \"%s\" in client-first-message."
-msgstr "客户端第一条消息中的意外属性\"%s\""
+msgid "could not initialize LDAP: %s"
+msgstr "无法初始化LDAP: %s"
 
-#: libpq/auth-scram.c:998
+#: libpq/auth.c:2444
 #, c-format
-msgid "client requires an unsupported SCRAM extension"
-msgstr "客户端需要不支持的SCRAM扩展"
+msgid "ldaps not supported with this LDAP library"
+msgstr "此LDAP库不支持ldaps"
 
-#: libpq/auth-scram.c:1012
+#: libpq/auth.c:2452
 #, c-format
-msgid "non-printable characters in SCRAM nonce"
-msgstr "SCRAM nonce中的不可打印字符"
+msgid "could not initialize LDAP: %m"
+msgstr "无法初始化LDAP: %m"
 
-#: libpq/auth-scram.c:1129
+#: libpq/auth.c:2462
 #, c-format
-msgid "could not generate random nonce"
-msgstr "无法生成随机的nonce"
+msgid "could not set LDAP protocol version: %s"
+msgstr "无法设置LDAP协议版本: %s"
 
-#: libpq/auth-scram.c:1233
+#: libpq/auth.c:2493
 #, c-format
-msgid "SCRAM channel binding check failed"
-msgstr "SCRAM通道绑定检查失败"
+msgid "could not load wldap32.dll"
+msgstr "无法加载wldap32.dll"
 
-#: libpq/auth-scram.c:1251
+#: libpq/auth.c:2501
 #, c-format
-msgid "unexpected SCRAM channel-binding attribute in client-final-message"
-msgstr "客户端最终消息中的意外SCRAM通道绑定属性"
+msgid "could not load function _ldap_start_tls_sA in wldap32.dll"
+msgstr "无法加载在wldap32.dll中的函数_ldap_start_tls_sA"
 
-#: libpq/auth-scram.c:1268
+#: libpq/auth.c:2502
 #, c-format
-msgid "Malformed proof in client-final-message."
-msgstr "客æ\88·ç«¯æ\9c\80ç»\88æ¶\88æ\81¯ä¸­ç\9a\84è¯\81æ\98\8eæ ¼å¼\8fä¸\8d正确."
+msgid "LDAP over SSL is not supported on this platform."
+msgstr "å\9c¨æ­¤å¹³å\8f°ä¸\8aä¸\8dæ\94¯æ\8c\81å\9c¨SSLè¿\9eæ\8e¥ä¸\8aç\9a\84LDAP"
 
-#: libpq/auth-scram.c:1276
+#: libpq/auth.c:2517
 #, c-format
-msgid "Garbage found at the end of client-final-message."
-msgstr "在客户端最终消息末尾发现垃圾"
+msgid "could not start LDAP TLS session: %s"
+msgstr "无法启动LDAP TLS会话: %s"
 
-#: libpq/auth.c:282
-#, c-format
-msgid "authentication failed for user \"%s\": host rejected"
-msgstr "用户 \"%s\" 认证失败: 主机拒绝"
+#: libpq/auth.c:2588
+#, fuzzy, c-format
+#| msgid "LDAP server not specified"
+msgid "LDAP server not specified, and no ldapbasedn"
+msgstr "没有指定LDAP服务器"
 
-#: libpq/auth.c:285
+#: libpq/auth.c:2595
 #, c-format
-msgid "\"trust\" authentication failed for user \"%s\""
-msgstr "用户 \"%s\" \"trust\" 认证失败"
+msgid "LDAP server not specified"
+msgstr "没有指定LDAP服务器"
 
-#: libpq/auth.c:288
+#: libpq/auth.c:2657
 #, c-format
-msgid "Ident authentication failed for user \"%s\""
-msgstr "用户 \"%s\" Ident 认证失败"
+msgid "invalid character in user name for LDAP authentication"
+msgstr "在需要进行LDAP认证的用户名中出现无效字符"
 
-#: libpq/auth.c:291
+#: libpq/auth.c:2674
 #, c-format
-msgid "Peer authentication failed for user \"%s\""
-msgstr "对用户\"%s\"的对等认证失败"
+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:296
+#: libpq/auth.c:2703
 #, c-format
-msgid "password authentication failed for user \"%s\""
-msgstr "用户 \"%s\" Password 认证失败"
+msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s"
+msgstr "无法在服务器\"%2$s\"上为过滤器\"%1$s\"进行的搜索LDAP:%3$s"
 
-#: libpq/auth.c:301
+#: libpq/auth.c:2717
 #, c-format
-msgid "GSSAPI authentication failed for user \"%s\""
-msgstr "对于用户\"%s\"的GSSAPI 认证失败"
+msgid "LDAP user \"%s\" does not exist"
+msgstr "LDAP用户\"%s\" 不存在"
 
-#: libpq/auth.c:304
+#: libpq/auth.c:2718
 #, c-format
-msgid "SSPI authentication failed for user \"%s\""
-msgstr "对äº\8eç\94¨æ\88· \"%s\" ç\9a\84 SSPI è®¤è¯\81失败"
+msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries."
+msgstr "å\9c¨æ\9c\8då\8a¡å\99¨\"%2$s\"ä¸\8a为è¿\87滤å\99¨\"%1$s\"è¿\9bè¡\8cç\9a\84LDAPæ\90\9cç´¢æ\97 ç»\93æ\9e\9c."
 
-#: libpq/auth.c:307
+#: libpq/auth.c:2722
 #, c-format
-msgid "PAM authentication failed for user \"%s\""
-msgstr "用户 \"%s\" 认证 PAM 失败"
+msgid "LDAP user \"%s\" is not unique"
+msgstr "LDAP用户\"%s\" 不是唯一的"
 
-#: libpq/auth.c:310
+#: libpq/auth.c:2723
 #, c-format
-msgid "BSD authentication failed for user \"%s\""
-msgstr "对于用户 \"%s\" 的 BSD 认证失败"
+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:313
+#: libpq/auth.c:2743
 #, c-format
-msgid "LDAP authentication failed for user \"%s\""
-msgstr "对于用户 \"%s\"的LDAP认证失败"
+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:316
+#: libpq/auth.c:2764
 #, c-format
-msgid "certificate authentication failed for user \"%s\""
-msgstr "用户 \"%s\" 的认证失败"
+msgid "could not unbind after searching for user \"%s\" on server \"%s\""
+msgstr "在服务器 \"%2$s\"上搜索用户\"%1$s\"后无法解除绑定"
 
-#: libpq/auth.c:319
+#: libpq/auth.c:2795
 #, c-format
-msgid "RADIUS authentication failed for user \"%s\""
-msgstr "用户 \"%s\" 的RADIUS认证失败"
+msgid "LDAP login failed for user \"%s\" on server \"%s\": %s"
+msgstr "用户 \"%s\" 在服务器 \"%s\" 进行LDAP登录失败:%s"
 
-#: libpq/auth.c:322
+#: libpq/auth.c:2824
 #, c-format
-msgid "authentication failed for user \"%s\": invalid authentication method"
-msgstr "用户 \"%s\" 认证失败: 无效的认证方式"
+msgid "LDAP diagnostics: %s"
+msgstr "LDAP诊断: %s"
 
-#: libpq/auth.c:326
+#: libpq/auth.c:2851
 #, c-format
-msgid "Connection matched pg_hba.conf line %d: \"%s\""
-msgstr "与Connection相匹配的文件行位于 pg_hba.conf %d: \"%s\""
+msgid "certificate authentication failed for user \"%s\": client certificate contains no user name"
+msgstr "用户\"%s\"的认证鉴权失败: 客户端认证没有包含用户名"
 
-#: libpq/auth.c:373
-#, c-format
-msgid "client certificates can only be checked if a root certificate store is available"
-msgstr "只有在根认证有效的情况下才能检查客户端认证"
+#: libpq/auth.c:2868
+#, fuzzy, c-format
+#| msgid "certificate authentication failed for user \"%s\""
+msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": cn mismatch"
+msgstr "用户 \"%s\" 的认证失败"
 
-#: libpq/auth.c:384
+#: libpq/auth.c:2969
 #, c-format
-msgid "connection requires a valid client certificate"
-msgstr "连接中需要一个有效的客户端认证"
+msgid "RADIUS server not specified"
+msgstr "没有指定RADIUS服务器"
 
-#: libpq/auth.c:417
+#: libpq/auth.c:2976
 #, c-format
-msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s"
-msgstr "pg_hba.conf中的记录拒绝来自主机\"%s\",用户 \"%s\",%s的复制连接"
+msgid "RADIUS secret not specified"
+msgstr "没有指定RADIUS机密(secret) "
 
-#: libpq/auth.c:419 libpq/auth.c:435 libpq/auth.c:493 libpq/auth.c:511
-msgid "SSL off"
-msgstr "SSL 关闭"
+#: libpq/auth.c:2990
+#, c-format
+msgid "RADIUS authentication does not support passwords longer than %d characters"
+msgstr "RADIUS 认证不支持长度超过 %d 个字符的口令"
 
-#: libpq/auth.c:419 libpq/auth.c:435 libpq/auth.c:493 libpq/auth.c:511
-msgid "SSL on"
-msgstr "SSL 开启"
+#: libpq/auth.c:3095 libpq/hba.c:1954
+#, c-format
+msgid "could not translate RADIUS server name \"%s\" to address: %s"
+msgstr "无法将RADIUS服务器名称 \"%s\" 翻译为相应地址:%s"
 
-#: libpq/auth.c:423
+#: libpq/auth.c:3109
 #, c-format
-msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\""
-msgstr "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\"的复制连接"
+msgid "could not generate random encryption vector"
+msgstr "无法产生随机加密向量"
 
-#: libpq/auth.c:432
+#: libpq/auth.c:3143
 #, c-format
-msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\", %s"
-msgstr "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\", 数据库\"%s\", %s的复制连接"
+msgid "could not perform MD5 encryption of password"
+msgstr "无法执行口令的MD5加密"
 
-#: libpq/auth.c:439
+#: libpq/auth.c:3169
 #, c-format
-msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\""
-msgstr "pg_hba.conf 记录拒绝来自主机\"%s\", 用户\"%s\", 数据库\"%s\"的复制连接"
+msgid "could not create RADIUS socket: %m"
+msgstr "无法创建RADIUS套接字: %m"
 
-#: libpq/auth.c:468
+#: libpq/auth.c:3191
 #, c-format
-msgid "Client IP address resolved to \"%s\", forward lookup matches."
-msgstr "客户端IP地址解析为 \"%s\", 与转发查找结果相匹配."
+msgid "could not bind local RADIUS socket: %m"
+msgstr "无法绑定本地RADIUS套接字: %m"
 
-#: libpq/auth.c:471
+#: libpq/auth.c:3201
 #, c-format
-msgid "Client IP address resolved to \"%s\", forward lookup not checked."
-msgstr "客户端IP地址解析为 \"%s\", 转发查找结果没有检查."
+msgid "could not send RADIUS packet: %m"
+msgstr "无法发送RADIUS包: %m"
 
-#: libpq/auth.c:474
+#: libpq/auth.c:3234 libpq/auth.c:3260
 #, c-format
-msgid "Client IP address resolved to \"%s\", forward lookup does not match."
-msgstr "客æ\88·ç«¯IPå\9c°å\9d\80è§£æ\9e\90为 \"%s\", ä¸\8e转å\8f\91æ\9f¥æ\89¾ç»\93æ\9e\9cä¸\8då\8c¹é\85\8d."
+msgid "timeout waiting for RADIUS response from %s"
+msgstr "å\9c¨ç­\89å¾\85è\87ª%sç\9a\84RADIUSå\9b\9eåº\94å\8c\85æ\97¶è¶\85æ\97"
 
-# fe-misc.c:702
-#: libpq/auth.c:477
+#: libpq/auth.c:3253
 #, c-format
-msgid "Could not translate client host name \"%s\" to IP address: %s."
-msgstr "无法解析主机名 \"%s\" 对应的IP地址: %s."
+msgid "could not check status on RADIUS socket: %m"
+msgstr "无法在RADIUS套接字上检查状态: %m"
 
-# fe-connect.c:1283
-#: libpq/auth.c:482
+#: libpq/auth.c:3283
 #, c-format
-msgid "Could not resolve client IP address to a host name: %s."
-msgstr "æ\97 æ³\95è§£æ\9e\90客æ\88·ç«¯å\9c°å\9d\80主æ\9cºå\90\8d: %s."
+msgid "could not read RADIUS response: %m"
+msgstr "æ\97 æ³\95读å\8f\96RADIUSå\9b\9eåº\94å\8c\85: %m"
 
-#: libpq/auth.c:491
+#: libpq/auth.c:3296 libpq/auth.c:3300
 #, c-format
-msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\", %s"
-msgstr "没æ\9c\89æ\9d¥è\87ªä¸»æ\9cº \"%s\", ç\94¨æ\88·\"%s\", %sç\9a\84å¤\8då\88¶è¿\9eæ\8e¥ç\9a\84pg_hba.confè®°å½\95"
+msgid "RADIUS response from %s was sent from incorrect port: %d"
+msgstr "æ\9d¥è\87ª%sç\9a\84RADIUSå\9b\9eåº\94æ\95°æ\8d®å\8c\85æ\98¯ä»\8eä¸\8d正确ç\9a\84端å\8f£ä¸­å\8f\91å\87ºç\9a\84: %d"
 
-#: libpq/auth.c:498
+#: libpq/auth.c:3309
 #, c-format
-msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\""
-msgstr "没æ\9c\89æ\9d¥è\87ªä¸»æ\9cº \"%s\", ç\94¨æ\88·\"%s\"ç\9a\84å¤\8då\88¶è¿\9eæ\8e¥ç\9a\84pg_hba.confè®°å½\95"
+msgid "RADIUS response from %s too short: %d"
+msgstr "æ\9d¥è\87ª%sç\9a\84RADIUSå\9b\9eåº\94å\8c\85ç\9a\84é\95¿åº¦å¤ªç\9f­:%d"
 
-#: libpq/auth.c:508
+#: libpq/auth.c:3316
 #, c-format
-msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s"
-msgstr "没æ\9c\89ç\94¨äº\8e主æ\9cº \"%s\", ç\94¨æ\88· \"%s\", æ\95°æ\8d®åº\93 \"%s\", %s ç\9a\84 pg_hba.conf è®°å½\95"
+msgid "RADIUS response from %s has corrupt length: %d (actual length %d)"
+msgstr "æ\9d¥è\87ª%sç\9a\84RADIUSå\9b\9eåº\94å\8c\85ç\9a\84é\95¿åº¦ä¸\8d正确:%d(å®\9eé\99\85é\95¿åº¦æ\98¯%d)"
 
-#: libpq/auth.c:516
+#: libpq/auth.c:3324
 #, c-format
-msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\""
-msgstr "没æ\9c\89ç\94¨äº\8e主æ\9cº \"%s\", ç\94¨æ\88· \"%s\", æ\95°æ\8d®åº\93 \"%s\" ç\9a\84 pg_hba.conf è®°å½\95"
+msgid "RADIUS response from %s is to a different request: %d (should be %d)"
+msgstr "æ\9d¥è\87ª%sç\9a\84RADIUSå\9b\9eåº\94å\8c\85å\8f\91é\80\81å\88°äº\86ä¸\80个ä¸\8då\90\8cç\9a\84请æ±\82ä¸\8a:%d (åº\94该æ\98¯%d)"
 
-#: libpq/auth.c:669
+#: libpq/auth.c:3349
 #, c-format
-msgid "expected password response, got message type %d"
-msgstr "æ\9c\9fæ\9c\9bå¾\97å\88°å\8f£ä»¤å\9b\9eåº\94,ä½\86æ\98¯å¾\97å\88°äº\86æ¶\88æ\81¯ç±»å\9e\8b%d."
+msgid "could not perform MD5 encryption of received packet"
+msgstr "æ\97 æ³\95æ\89§è¡\8cæ\89\80æ\8e¥æ\94¶æ\95°æ\8d®å\8c\85ç\9a\84MD5å\8a å¯\86"
 
-#: libpq/auth.c:697
+#: libpq/auth.c:3358
 #, c-format
-msgid "invalid password packet size"
-msgstr "æ\97 æ\95\88ç\9a\84å\8f£ä»¤å\8c\85尺寸"
+msgid "RADIUS response from %s has incorrect MD5 signature"
+msgstr "æ\9d¥è\87ª%sç\9a\84RADIUSå\9b\9eåº\94å\8c\85带æ\9c\89ä¸\8d正确ç\9a\84MD5ç­¾å\90\8d"
 
-#: libpq/auth.c:715
+#: libpq/auth.c:3376
 #, c-format
-msgid "empty password returned by client"
-msgstr "客æ\88·ç«¯è¿\94å\9b\9eäº\86空å\8f£ä»¤"
+msgid "RADIUS response from %s has invalid code (%d) for user \"%s\""
+msgstr "对äº\8eç\94¨æ\88·\"%3$s\"æ\9d¥è¯´æ\9d¥è\87ª%1$sç\9a\84RADIUSå\9b\9eåº\94å\8c\85带æ\9c\89æ\97 æ\95\88ç¼\96ç \81(%2$d) "
 
-#: libpq/auth.c:835 libpq/hba.c:1325
+#: libpq/be-fsstubs.c:119 libpq/be-fsstubs.c:150 libpq/be-fsstubs.c:178
+#: libpq/be-fsstubs.c:204 libpq/be-fsstubs.c:229 libpq/be-fsstubs.c:277
+#: libpq/be-fsstubs.c:300 libpq/be-fsstubs.c:555
 #, c-format
-msgid "MD5 authentication is not supported when \"db_user_namespace\" is enabled"
-msgstr "当启用 \"db_user_namespace\" 时不支持 MD5 认证"
+msgid "invalid large-object descriptor: %d"
+msgstr "无效的大对象描述符: %d"
 
-#: libpq/auth.c:841
+#: libpq/be-fsstubs.c:161
 #, c-format
-msgid "could not generate random MD5 salt"
-msgstr "无法生成随机MD5"
+msgid "large object descriptor %d was not opened for reading"
+msgstr "无法打开大对象描述符%d进行读操作"
 
-#: libpq/auth.c:887
+#: libpq/be-fsstubs.c:185 libpq/be-fsstubs.c:562
 #, c-format
-msgid "SASL authentication is not supported in protocol version 2"
-msgstr "在协议版本2中不支持SASL身份验证"
+msgid "large object descriptor %d was not opened for writing"
+msgstr "无法打开大对象描述符%d进行写操作"
 
-#: libpq/auth.c:920
+#: libpq/be-fsstubs.c:212
 #, c-format
-msgid "expected SASL response, got message type %d"
-msgstr "期望SASL回应,但是得到了信息类型%d"
+msgid "lo_lseek result out of range for large-object descriptor %d"
+msgstr "lo_lseek的结果超出了大对象的描述符 %d所在范围"
 
-#: libpq/auth.c:1112
+#: libpq/be-fsstubs.c:285
 #, c-format
-msgid "GSSAPI is not supported in protocol version 2"
-msgstr "在协议版本2中不支持使用GSSAPI"
+msgid "lo_tell result out of range for large-object descriptor %d"
+msgstr "lo_tell 产生的结果超出了大对象描述符%d的有效范围"
 
-#: libpq/auth.c:1172
+#: libpq/be-fsstubs.c:432
 #, c-format
-msgid "expected GSS response, got message type %d"
-msgstr "期望GSS回应,但是得到了信息类型%d"
-
-#: libpq/auth.c:1234
-msgid "accepting GSS security context failed"
-msgstr "接收GSS安全环境失败"
-
-#: libpq/auth.c:1260
-msgid "retrieving GSS user name failed"
-msgstr "获取GSS用户名失败"
+msgid "could not open server file \"%s\": %m"
+msgstr "无法打开服务器文件 \"%s\": %m"
 
-#: libpq/auth.c:1385
+#: libpq/be-fsstubs.c:454
 #, c-format
-msgid "SSPI is not supported in protocol version 2"
-msgstr "在协议版本2中不支持使用SSPI"
-
-#: libpq/auth.c:1400
-msgid "could not acquire SSPI credentials"
-msgstr "无法获得SSPI证书"
+msgid "could not read server file \"%s\": %m"
+msgstr "无法读取服务器文件 \"%s\": %m"
 
-#: libpq/auth.c:1418
+#: libpq/be-fsstubs.c:516
 #, c-format
-msgid "expected SSPI response, got message type %d"
-msgstr "期望SSPI回应,但是得到了消息类型%d"
-
-#: libpq/auth.c:1491
-msgid "could not accept SSPI security context"
-msgstr "无法访问SSPI安全环境"
-
-#: libpq/auth.c:1553
-msgid "could not get token from SSPI security context"
-msgstr "无法从SSPI安全环境中获取令牌(token)"
+msgid "could not create server file \"%s\": %m"
+msgstr "无法创建服务器文件 \"%s\": %m"
 
-#: libpq/auth.c:1672 libpq/auth.c:1691
+#: libpq/be-fsstubs.c:528
 #, c-format
-msgid "could not translate name"
-msgstr "不能翻译名称"
+msgid "could not write server file \"%s\": %m"
+msgstr "无法写入服务器文件 \"%s\": %m"
 
-#: libpq/auth.c:1704
+#: libpq/be-fsstubs.c:762
 #, c-format
-msgid "realm name too long"
-msgstr "realm 名称太长"
+msgid "large object read request is too large"
+msgstr "大对象读请求太大"
 
-#: libpq/auth.c:1719
+#: libpq/be-fsstubs.c:804 utils/adt/genfile.c:235 utils/adt/genfile.c:274
+#: utils/adt/genfile.c:310
 #, c-format
-msgid "translated account name too long"
-msgstr "翻译的账户名太长"
+msgid "requested length cannot be negative"
+msgstr "所请求的长度不能是负数"
 
-#: libpq/auth.c:1905
+#: libpq/be-fsstubs.c:857 storage/large_object/inv_api.c:295
+#: storage/large_object/inv_api.c:307 storage/large_object/inv_api.c:511
+#: storage/large_object/inv_api.c:622 storage/large_object/inv_api.c:812
 #, c-format
-msgid "could not create socket for Ident connection: %m"
-msgstr "无法为 Ident 联接创建套接字: %m"
+msgid "permission denied for large object %u"
+msgstr "访问大对象%u的权限不够"
 
-#: libpq/auth.c:1920
+#: libpq/be-secure-common.c:91
 #, c-format
-msgid "could not bind to local address \"%s\": %m"
-msgstr "无法绑定到本地地址 \"%s\": %m"
+msgid "could not read from command \"%s\": %m"
+msgstr "无法读取命令 \"%s\": %m"
 
-#: libpq/auth.c:1932
+#: libpq/be-secure-common.c:109
 #, c-format
-msgid "could not connect to Ident server at address \"%s\", port %s: %m"
-msgstr "无法联接到地址为 \"%s\", 端口为 %s 的 Ident 服务器: %m"
+msgid "command \"%s\" failed"
+msgstr "命令\"%s\"失败"
 
-#: libpq/auth.c:1954
+#: libpq/be-secure-common.c:139
 #, c-format
-msgid "could not send query to Ident server at address \"%s\", port %s: %m"
-msgstr "æ\97 æ³\95å\8f\91é\80\81æ\9f¥è¯¢å\88°å\9c°å\9d\80为 \"%s\", ç«¯å\8f£ä¸º %s ç\9a\84 Ident æ\9c\8då\8a¡å\99¨: %m"
+msgid "could not access private key file \"%s\": %m"
+msgstr "æ\97 æ³\95å¤\84ç\90\86ç§\81é\92¥æ\96\87ä»¶ \"%s\": %m"
 
-#: libpq/auth.c:1971
+#: libpq/be-secure-common.c:148
 #, c-format
-msgid "could not receive response from Ident server at address \"%s\", port %s: %m"
-msgstr "无法从地址为 \"%s\", 端口为 %s 的 Ident 服务器接收应答: %m"
+msgid "private key file \"%s\" is not a regular file"
+msgstr "私钥文件 \"%s\" 不是一个常规文件"
 
-#: libpq/auth.c:1981
+#: libpq/be-secure-common.c:163
 #, c-format
-msgid "invalidly formatted response from Ident server: \"%s\""
-msgstr "从 Ident 服务器接收的无效格式应答: \"%s\""
+msgid "private key file \"%s\" must be owned by the database user or root"
+msgstr "私钥文件 \"%s\" 必须由数据库用户或者 root 所拥有"
 
-# fe-auth.c:640
-#: libpq/auth.c:2021
+#: libpq/be-secure-common.c:186
 #, c-format
-msgid "peer authentication is not supported on this platform"
-msgstr "对等认证在这个平台上不支持"
+msgid "private key file \"%s\" has group or world access"
+msgstr "私钥文件\"%s\"具有由所在组或全局范围访问的权限"
 
-#: libpq/auth.c:2025
+#: libpq/be-secure-common.c:188
 #, c-format
-msgid "could not get peer credentials: %m"
-msgstr "无法获得同等 (peer) 证书: %m"
+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/auth.c:2036
-#, c-format
-msgid "could not look up local user ID %ld: %s"
-msgstr "无法查找本地用户ID %ld:%s"
+#: libpq/be-secure-gssapi.c:178
+msgid "GSSAPI wrap error"
+msgstr ""
 
-#: libpq/auth.c:2124
+#: libpq/be-secure-gssapi.c:182 libpq/be-secure-gssapi.c:349
 #, c-format
-msgid "error from underlying PAM layer: %s"
-msgstr "来自 PAM 层下面的错误: %s"
+msgid "GSSAPI did not provide confidentiality"
+msgstr ""
 
-#: libpq/auth.c:2193
+#: libpq/be-secure-gssapi.c:186 libpq/be-secure-gssapi.c:549
 #, c-format
-msgid "could not create PAM authenticator: %s"
-msgstr "无法创建 PAM 类型器: %s"
+msgid "server tried to send oversize GSSAPI packet: %zu bytes"
+msgstr ""
 
-#: libpq/auth.c:2204
+#: libpq/be-secure-gssapi.c:303 libpq/be-secure-gssapi.c:501
 #, c-format
-msgid "pam_set_item(PAM_USER) failed: %s"
-msgstr "pam_set_item(PAM_USER) 失败: %s"
+msgid "oversize GSSAPI packet sent by the client: %zu bytes"
+msgstr ""
 
-#: libpq/auth.c:2236
-#, c-format
-msgid "pam_set_item(PAM_RHOST) failed: %s"
-msgstr "pam_set_item(PAM_RHOST) 失败: %s"
+#: libpq/be-secure-gssapi.c:344
+msgid "GSSAPI unwrap error"
+msgstr ""
 
-#: libpq/auth.c:2248
-#, c-format
-msgid "pam_set_item(PAM_CONV) failed: %s"
-msgstr "pam_set_item(PAM_CONV) 失败: %s"
+#: libpq/be-secure-gssapi.c:522
+msgid "GSSAPI context error"
+msgstr ""
 
-#: libpq/auth.c:2259
-#, c-format
-msgid "pam_authenticate failed: %s"
-msgstr "pam_authenticate 失败: %s"
+#: libpq/be-secure-gssapi.c:594
+msgid "GSSAPI size check error"
+msgstr ""
 
-#: libpq/auth.c:2270
+#: libpq/be-secure-openssl.c:111
 #, c-format
-msgid "pam_acct_mgmt failed: %s"
-msgstr "pam_acct_mgmt 失败: %s"
+msgid "could not create SSL context: %s"
+msgstr "无法创建 SSL 环境: %s"
 
-#: libpq/auth.c:2281
+#: libpq/be-secure-openssl.c:154
 #, c-format
-msgid "could not release PAM authenticator: %s"
-msgstr "无法释放 PAM 类型器: %s"
+msgid "could not load server certificate file \"%s\": %s"
+msgstr "无法装载服务器认证文件 \"%s\": %s"
 
-#: libpq/auth.c:2357
+#: libpq/be-secure-openssl.c:174
 #, c-format
-msgid "could not initialize LDAP: error code %d"
-msgstr "无法初始化LDAP: 错误代码%d"
+msgid "private key file \"%s\" cannot be reloaded because it requires a passphrase"
+msgstr "无法重新加载私钥文件\"%s\",因为它需要密码短语"
 
-#: libpq/auth.c:2406
+#: libpq/be-secure-openssl.c:179
 #, c-format
-msgid "could not initialize LDAP: %s"
-msgstr "无法初始化LDAP: %s"
+msgid "could not load private key file \"%s\": %s"
+msgstr "无法装载私钥文件 \"%s\": %s"
 
-#: libpq/auth.c:2416
+#: libpq/be-secure-openssl.c:188
 #, c-format
-msgid "ldaps not supported with this LDAP library"
-msgstr "æ­¤LDAPåº\93ä¸\8dæ\94¯æ\8c\81ldaps"
+msgid "check of private key failed: %s"
+msgstr "æ£\80æ\9f¥ç§\81é\92¥å¤±è´¥: %s"
 
-#: libpq/auth.c:2424
+#: libpq/be-secure-openssl.c:234
 #, c-format
-msgid "could not initialize LDAP: %m"
-msgstr "无法初始化LDAP: %m"
+msgid "could not set the cipher list (no valid ciphers available)"
+msgstr "无法设置密码列表(没有有效的密码可用)"
 
-#: libpq/auth.c:2434
+#: libpq/be-secure-openssl.c:252
 #, c-format
-msgid "could not set LDAP protocol version: %s"
-msgstr "æ\97 æ³\95设置LDAPå\8d\8fè®®ç\89\88æ\9c¬: %s"
+msgid "could not load root certificate file \"%s\": %s"
+msgstr "æ\97 æ³\95è£\85载根 (root) è®¤è¯\81æ\96\87ä»¶ \"%s\": %s"
 
-#: libpq/auth.c:2465
+#: libpq/be-secure-openssl.c:279
 #, c-format
-msgid "could not load wldap32.dll"
-msgstr "无法加载wldap32.dll"
+msgid "SSL certificate revocation list file \"%s\" ignored"
+msgstr "忽略SSL认证撤销列表文件 \"%s\""
 
-#: libpq/auth.c:2473
+#: libpq/be-secure-openssl.c:281
 #, c-format
-msgid "could not load function _ldap_start_tls_sA in wldap32.dll"
-msgstr "无法加载在wldap32.dll中的函数_ldap_start_tls_sA"
+msgid "SSL library does not support certificate revocation lists."
+msgstr "SSL库不支持认证撤销列表"
 
-#: libpq/auth.c:2474
+#: libpq/be-secure-openssl.c:288
 #, c-format
-msgid "LDAP over SSL is not supported on this platform."
-msgstr "在此平台上不支持在SSL连接上的LDAP"
+msgid "could not load SSL certificate revocation list file \"%s\": %s"
+msgstr "无法装载根 (root)证书取消列表文件 \"%s\": %s"
 
-#: libpq/auth.c:2489
+#: libpq/be-secure-openssl.c:363
 #, c-format
-msgid "could not start LDAP TLS session: %s"
-msgstr "æ\97 æ³\95å\90¯å\8a¨LDAP TLSä¼\9aè¯\9d: %s"
+msgid "could not initialize SSL connection: SSL context not set up"
+msgstr "æ\97 æ³\95å\88\9då§\8bå\8c\96 SSL è\81\94æ\8e¥: æ\9cªè®¾ç½®SSLä¸\8aä¸\8bæ\96\87"
 
-#: libpq/auth.c:2552
+#: libpq/be-secure-openssl.c:371
 #, c-format
-msgid "LDAP server not specified"
-msgstr "没æ\9c\89æ\8c\87å®\9aLDAPæ\9c\8då\8a¡å\99¨"
+msgid "could not initialize SSL connection: %s"
+msgstr "æ\97 æ³\95å\88\9då§\8bå\8c\96 SSL è\81\94æ\8e¥: %s"
 
-#: libpq/auth.c:2607
+#: libpq/be-secure-openssl.c:379
 #, c-format
-msgid "invalid character in user name for LDAP authentication"
-msgstr "在需要进行LDAP认证的用户名中出现无效字符"
+msgid "could not set SSL socket: %s"
+msgstr "无法创建 SSL 套接字: %s"
 
-#: libpq/auth.c:2624
+#: libpq/be-secure-openssl.c:434
 #, 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"
+msgid "could not accept SSL connection: %m"
+msgstr "无法访问 SSL 联接: %m"
 
-#: libpq/auth.c:2653
+#: libpq/be-secure-openssl.c:438 libpq/be-secure-openssl.c:449
 #, c-format
-msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s"
-msgstr "无法在服务器\"%2$s\"上为过滤器\"%1$s\"进行的搜索LDAP:%3$s"
+msgid "could not accept SSL connection: EOF detected"
+msgstr "无法访问 SSL 联接: 发现 EOF"
 
-#: libpq/auth.c:2667
+#: libpq/be-secure-openssl.c:443
 #, c-format
-msgid "LDAP user \"%s\" does not exist"
-msgstr "LDAP用户\"%s\" 不存在"
+msgid "could not accept SSL connection: %s"
+msgstr "无法访问 SSL 联接: %s"
 
-#: libpq/auth.c:2668
+#: libpq/be-secure-openssl.c:454 libpq/be-secure-openssl.c:585
+#: libpq/be-secure-openssl.c:649
 #, c-format
-msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries."
-msgstr "在服务器\"%2$s\"上为过滤器\"%1$s\"进行的LDAP搜索无结果."
+msgid "unrecognized SSL error code: %d"
+msgstr "未知的 SSL 错误码: %d"
 
-#: libpq/auth.c:2672
+#: libpq/be-secure-openssl.c:496
 #, c-format
-msgid "LDAP user \"%s\" is not unique"
-msgstr "LDAP用户\"%s\" 不是唯一的"
+msgid "SSL certificate's common name contains embedded null"
+msgstr "在SSL认证的普通名称中包含嵌入的空值"
 
-#: libpq/auth.c:2673
+#: libpq/be-secure-openssl.c:574 libpq/be-secure-openssl.c:633
 #, 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条结果."
+msgid "SSL error: %s"
+msgstr "SSL 错误: %s"
 
-#: libpq/auth.c:2693
+#: libpq/be-secure-openssl.c:814
 #, 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"
+msgid "could not open DH parameters file \"%s\": %m"
+msgstr "无法打开DH参数文件 \"%s\": %m"
 
-#: libpq/auth.c:2714
+#: libpq/be-secure-openssl.c:826
 #, c-format
-msgid "could not unbind after searching for user \"%s\" on server \"%s\""
-msgstr "在服务器 \"%2$s\"上搜索用户\"%1$s\"后无法解除绑定"
+msgid "could not load DH parameters file: %s"
+msgstr "无法装载DH参数文件: %s"
 
-#: libpq/auth.c:2745
+#: libpq/be-secure-openssl.c:836
 #, c-format
-msgid "LDAP login failed for user \"%s\" on server \"%s\": %s"
-msgstr "用户 \"%s\" 在服务器 \"%s\" 进行LDAP登录失败:%s"
+msgid "invalid DH parameters: %s"
+msgstr "无效的DH参数: %s"
 
-#: libpq/auth.c:2774
+#: libpq/be-secure-openssl.c:844
 #, c-format
-msgid "LDAP diagnostics: %s"
-msgstr "LDAP诊断: %s"
+msgid "invalid DH parameters: p is not prime"
+msgstr "无效的DH参数:p不是主要的"
 
-#: libpq/auth.c:2799
+#: libpq/be-secure-openssl.c:852
 #, c-format
-msgid "certificate authentication failed for user \"%s\": client certificate contains no user name"
-msgstr "用户\"%s\"的认证鉴权失败: 客户端认证没有包含用户名"
+msgid "invalid DH parameters: neither suitable generator or safe prime"
+msgstr "无效的DH参数:不适用的生成器或安全素数"
 
-#: libpq/auth.c:2902
+# startup.c:446
+#: libpq/be-secure-openssl.c:1007
 #, c-format
-msgid "RADIUS server not specified"
-msgstr "没有指定RADIUS服务器"
+msgid "DH: could not load DH parameters"
+msgstr "DH: 无法加载DH参数"
 
-#: libpq/auth.c:2909
+# startup.c:446
+#: libpq/be-secure-openssl.c:1015
 #, c-format
-msgid "RADIUS secret not specified"
-msgstr "没有指定RADIUS机密(secret) "
+msgid "DH: could not set DH parameters: %s"
+msgstr "DH: 无法设置DH参数: %s"
 
-#: libpq/auth.c:2923
+#: libpq/be-secure-openssl.c:1039
 #, c-format
-msgid "RADIUS authentication does not support passwords longer than %d characters"
-msgstr "RADIUS 认证不支持长度超过 %d 个字符的口令"
+msgid "ECDH: unrecognized curve name: %s"
+msgstr "ECDH: 无法识别的曲线名: %s"
 
-#: libpq/auth.c:3028 libpq/hba.c:1908
+# fe-connect.c:891
+#: libpq/be-secure-openssl.c:1048
 #, c-format
-msgid "could not translate RADIUS server name \"%s\" to address: %s"
-msgstr "无法将RADIUS服务器名称 \"%s\" 翻译为相应地址:%s"
+msgid "ECDH: could not create key"
+msgstr "ECDH: 无法创建键"
 
-#: libpq/auth.c:3042
-#, c-format
-msgid "could not generate random encryption vector"
-msgstr "无法产生随机加密向量"
+#: libpq/be-secure-openssl.c:1076
+msgid "no SSL error reported"
+msgstr "没有报告SSL错误"
 
-#: libpq/auth.c:3076
+#: libpq/be-secure-openssl.c:1080
 #, c-format
-msgid "could not perform MD5 encryption of password"
-msgstr "无法执行口令的MD5加密"
+msgid "SSL error code %lu"
+msgstr "SSL错误代码 %lu"
 
-#: libpq/auth.c:3102
-#, c-format
-msgid "could not create RADIUS socket: %m"
-msgstr "无法创建RADIUS套接字: %m"
+# input.c:213
+#: libpq/be-secure-openssl.c:1310
+#, fuzzy, c-format
+#| msgid "SSL is not supported by this build"
+msgid "%s setting %s not supported by this build"
+msgstr "这个版本的安装不支持使用SSL"
 
-#: libpq/auth.c:3124
+#: libpq/be-secure.c:123
 #, c-format
-msgid "could not bind local RADIUS socket: %m"
-msgstr "æ\97 æ³\95ç»\91å®\9aæ\9c¬å\9c°RADIUSå¥\97æ\8e¥å­\97: %m"
+msgid "SSL connection from \"%s\""
+msgstr "æ\9d¥è\87ª \"%s\" ç\9a\84 SSL è\81\94æ\8e¥"
 
-#: libpq/auth.c:3134
+#: libpq/be-secure.c:208 libpq/be-secure.c:304
 #, c-format
-msgid "could not send RADIUS packet: %m"
-msgstr "无法发送RADIUS包: %m"
+msgid "terminating connection due to unexpected postmaster exit"
+msgstr "由于意外的 postmaster 退出而终止连接"
 
-#: libpq/auth.c:3167 libpq/auth.c:3193
+#: libpq/crypt.c:52
 #, c-format
-msgid "timeout waiting for RADIUS response from %s"
-msgstr "在等待自%s的RADIUS回应包时超时"
+msgid "Role \"%s\" does not exist."
+msgstr "角色 \"%s\" 不存在。"
 
-#: libpq/auth.c:3186
+#: libpq/crypt.c:62
 #, c-format
-msgid "could not check status on RADIUS socket: %m"
-msgstr "无法在RADIUS套接字上检查状态: %m"
+msgid "User \"%s\" has no password assigned."
+msgstr "用户 \"%s\" 没有分配密码."
 
-#: libpq/auth.c:3216
+#: libpq/crypt.c:80
 #, c-format
-msgid "could not read RADIUS response: %m"
-msgstr "无法读取RADIUS回应包: %m"
+msgid "User \"%s\" has an expired password."
+msgstr "User \"%s\" 密码过期."
 
-#: libpq/auth.c:3229 libpq/auth.c:3233
+#: libpq/crypt.c:182
 #, c-format
-msgid "RADIUS response from %s was sent from incorrect port: %d"
-msgstr "来自%s的RADIUS回应数据包是从不正确的端口中发出的: %d"
+msgid "User \"%s\" has a password that cannot be used with MD5 authentication."
+msgstr "用户\"%s\"的密码不能与MD5身份验证一起使用."
 
-#: libpq/auth.c:3242
+# command.c:915
+# command.c:939
+# startup.c:187
+# startup.c:205
+#: libpq/crypt.c:206 libpq/crypt.c:247 libpq/crypt.c:271
 #, c-format
-msgid "RADIUS response from %s too short: %d"
-msgstr "来自%s的RADIUS回应包的长度太短:%d"
+msgid "Password does not match for user \"%s\"."
+msgstr "用户 \"%s\" 的口令不匹配。"
 
-#: libpq/auth.c:3249
+#: libpq/crypt.c:290
 #, c-format
-msgid "RADIUS response from %s has corrupt length: %d (actual length %d)"
-msgstr "来自%s的RADIUS回应包的长度不正确:%d(实际长度是%d)"
+msgid "Password of user \"%s\" is in unrecognized format."
+msgstr "用户\"%s\"的密码格式无法识别"
 
-#: libpq/auth.c:3257
+#: libpq/hba.c:235
 #, c-format
-msgid "RADIUS response from %s is to a different request: %d (should be %d)"
-msgstr "来自%s的RADIUS回应包发送到了一个不同的请求上:%d (应该是%d)"
+msgid "authentication file token too long, skipping: \"%s\""
+msgstr "认证文件标记 (token) 太长, 忽略: \"%s\""
 
-#: libpq/auth.c:3282
+#: libpq/hba.c:407
 #, c-format
-msgid "could not perform MD5 encryption of received packet"
-msgstr "æ\97 æ³\95æ\89§è¡\8cæ\89\80æ\8e¥æ\94¶æ\95°æ\8d®å\8c\85ç\9a\84MD5å\8a å¯\86"
+msgid "could not open secondary authentication file \"@%s\" as \"%s\": %m"
+msgstr "æ\97 æ³\95æ\89\93å¼\80次认è¯\81æ\96\87ä»¶ \"@%s\" ä¸º \"%s\": %m"
 
-#: libpq/auth.c:3291
+#: libpq/hba.c:509
 #, c-format
-msgid "RADIUS response from %s has incorrect MD5 signature"
-msgstr "来自%s的RADIUS回应包带有不正确的MD5签名"
+msgid "authentication file line too long"
+msgstr "认证文件文本行太长"
 
-#: libpq/auth.c:3309
+#: libpq/hba.c:510 libpq/hba.c:867 libpq/hba.c:887 libpq/hba.c:925
+#: libpq/hba.c:975 libpq/hba.c:989 libpq/hba.c:1013 libpq/hba.c:1022
+#: libpq/hba.c:1035 libpq/hba.c:1056 libpq/hba.c:1069 libpq/hba.c:1089
+#: libpq/hba.c:1111 libpq/hba.c:1123 libpq/hba.c:1179 libpq/hba.c:1199
+#: libpq/hba.c:1213 libpq/hba.c:1232 libpq/hba.c:1243 libpq/hba.c:1258
+#: libpq/hba.c:1276 libpq/hba.c:1292 libpq/hba.c:1304 libpq/hba.c:1341
+#: libpq/hba.c:1382 libpq/hba.c:1395 libpq/hba.c:1417 libpq/hba.c:1430
+#: libpq/hba.c:1442 libpq/hba.c:1460 libpq/hba.c:1510 libpq/hba.c:1554
+#: libpq/hba.c:1565 libpq/hba.c:1581 libpq/hba.c:1598 libpq/hba.c:1608
+#: libpq/hba.c:1666 libpq/hba.c:1704 libpq/hba.c:1726 libpq/hba.c:1738
+#: libpq/hba.c:1825 libpq/hba.c:1843 libpq/hba.c:1937 libpq/hba.c:1956
+#: libpq/hba.c:1985 libpq/hba.c:1998 libpq/hba.c:2021 libpq/hba.c:2043
+#: libpq/hba.c:2057 tsearch/ts_locale.c:190
 #, c-format
-msgid "RADIUS response from %s has invalid code (%d) for user \"%s\""
-msgstr "对于用户\"%3$s\"来说来自%1$s的RADIUS回应包带有无效编码(%2$d) "
+msgid "line %d of configuration file \"%s\""
+msgstr "配置文件\"%2$s\"的第%1$d行"
 
-#: libpq/be-fsstubs.c:119 libpq/be-fsstubs.c:150 libpq/be-fsstubs.c:178
-#: libpq/be-fsstubs.c:204 libpq/be-fsstubs.c:229 libpq/be-fsstubs.c:277
-#: libpq/be-fsstubs.c:300 libpq/be-fsstubs.c:545
+#. translator: the second %s is a list of auth methods
+#: libpq/hba.c:865
 #, c-format
-msgid "invalid large-object descriptor: %d"
-msgstr "无效的大对象描述符: %d"
+msgid "authentication option \"%s\" is only valid for authentication methods %s"
+msgstr "认证选项\"%s\"只对认证方法%s有效"
 
-#: libpq/be-fsstubs.c:161
+# fe-auth.c:640
+#: libpq/hba.c:885
 #, c-format
-msgid "large object descriptor %d was not opened for reading"
-msgstr "无法打开大对象描述符%d进行读操作"
+msgid "authentication method \"%s\" requires argument \"%s\" to be set"
+msgstr "在认证方法\"%s\"需要设置参数\"%s\" "
 
-#: libpq/be-fsstubs.c:185 libpq/be-fsstubs.c:552
+#: libpq/hba.c:913
 #, c-format
-msgid "large object descriptor %d was not opened for writing"
-msgstr "无法打开大对象描述符%d进行写操作"
+msgid "missing entry in file \"%s\" at end of line %d"
+msgstr "在 \"%s\" 文件的第 %d 行末尾缺少记录"
 
-#: libpq/be-fsstubs.c:212
+#: libpq/hba.c:924
 #, c-format
-msgid "lo_lseek result out of range for large-object descriptor %d"
-msgstr "lo_lseek的结果超出了大对象的描述符 %d所在范围"
+msgid "multiple values in ident field"
+msgstr "识别字段出现多个值"
 
-#: libpq/be-fsstubs.c:285
+#: libpq/hba.c:973
 #, c-format
-msgid "lo_tell result out of range for large-object descriptor %d"
-msgstr "lo_tell 产生的结果超出了大对象描述符%d的有效范围"
+msgid "multiple values specified for connection type"
+msgstr "连接类型指定了多个值"
 
-#: libpq/be-fsstubs.c:432
+#: libpq/hba.c:974
 #, c-format
-msgid "could not open server file \"%s\": %m"
-msgstr "æ\97 æ³\95æ\89\93å¼\80æ\9c\8då\8a¡å\99¨æ\96\87ä»¶ \"%s\": %m"
+msgid "Specify exactly one connection type per line."
+msgstr "æ¯\8fè¡\8c精确æ\8c\87å®\9aä¸\80个è¿\9eæ\8e¥ç±»å\9e\8b."
 
-#: libpq/be-fsstubs.c:454
+# input.c:213
+#: libpq/hba.c:988
 #, c-format
-msgid "could not read server file \"%s\": %m"
-msgstr "无法读取服务器文件 \"%s\": %m"
+msgid "local connections are not supported by this build"
+msgstr "这个版本编译不支持本地连接"
 
-#: libpq/be-fsstubs.c:511
+#: libpq/hba.c:1011
 #, c-format
-msgid "could not create server file \"%s\": %m"
-msgstr "无法创建服务器文件 \"%s\": %m"
+msgid "hostssl record cannot match because SSL is disabled"
+msgstr "hotssl记录无法匹配,因为已禁用SSL"
 
-#: libpq/be-fsstubs.c:523
+#: libpq/hba.c:1012
 #, c-format
-msgid "could not write server file \"%s\": %m"
-msgstr "无法写入服务器文件 \"%s\": %m"
+msgid "Set ssl = on in postgresql.conf."
+msgstr "在postgresql.conf配置文件中设置 ssl 开关为 on."
 
-#: libpq/be-fsstubs.c:752
+# input.c:213
+#: libpq/hba.c:1020
 #, c-format
-msgid "large object read request is too large"
-msgstr "大对象读请求太大"
+msgid "hostssl record cannot match because SSL is not supported by this build"
+msgstr "hotssl记录无法匹配,因为这个版本的编译安装不支持使用SSL"
 
-#: libpq/be-fsstubs.c:794 utils/adt/genfile.c:231 utils/adt/genfile.c:270
-#: utils/adt/genfile.c:306
+#: libpq/hba.c:1021
 #, c-format
-msgid "requested length cannot be negative"
-msgstr "所请求的长度不能是负数"
+msgid "Compile with --with-openssl to use SSL connections."
+msgstr "为了使用SSL连接,在编译时需要带有 --with-openssl选项"
 
-#: libpq/be-fsstubs.c:847 storage/large_object/inv_api.c:296
-#: storage/large_object/inv_api.c:308 storage/large_object/inv_api.c:512
-#: storage/large_object/inv_api.c:623 storage/large_object/inv_api.c:813
-#, c-format
-msgid "permission denied for large object %u"
-msgstr "访问大对象%u的权限不够"
+# input.c:213
+#: libpq/hba.c:1033
+#, fuzzy, c-format
+#| msgid "hostssl record cannot match because SSL is not supported by this build"
+msgid "hostgssenc record cannot match because GSSAPI is not supported by this build"
+msgstr "hotssl记录无法匹配,因为这个版本的编译安装不支持使用SSL"
 
-#: libpq/be-secure-common.c:91
-#, c-format
-msgid "could not read from command \"%s\": %m"
-msgstr "无法读取命令 \"%s\": %m"
+#: libpq/hba.c:1034
+#, fuzzy, c-format
+#| msgid "Compile with --with-openssl to use SSL connections."
+msgid "Compile with --with-gssapi to use GSSAPI connections."
+msgstr "为了使用SSL连接,在编译时需要带有 --with-openssl选项"
 
-#: libpq/be-secure-common.c:109
+# fe-connect.c:2558
+#: libpq/hba.c:1054
 #, c-format
-msgid "command \"%s\" failed"
-msgstr "命令\"%s\"失败"
+msgid "invalid connection type \"%s\""
+msgstr "无效连接类型\"%s\""
 
-#: libpq/be-secure-common.c:139
+#: libpq/hba.c:1068
 #, c-format
-msgid "could not access private key file \"%s\": %m"
-msgstr "无法处理私钥文件 \"%s\": %m"
+msgid "end-of-line before database specification"
+msgstr "在数据库定义前面出现行结束符"
 
-#: libpq/be-secure-common.c:148
+#: libpq/hba.c:1088
 #, c-format
-msgid "private key file \"%s\" is not a regular file"
-msgstr "私钥文件 \"%s\" 不是一个常规文件"
+msgid "end-of-line before role specification"
+msgstr "在角色定义前面出现行结束符"
 
-#: libpq/be-secure-common.c:163
+#: libpq/hba.c:1110
 #, c-format
-msgid "private key file \"%s\" must be owned by the database user or root"
-msgstr "私钥文件 \"%s\" 必须由数据库用户或者 root 所拥有"
+msgid "end-of-line before IP address specification"
+msgstr "在IP地址定义前面出现行结束符"
 
-#: libpq/be-secure-common.c:186
+#: libpq/hba.c:1121
 #, c-format
-msgid "private key file \"%s\" has group or world access"
-msgstr "私钥文件\"%s\"具有由所在组或全局范围访问的权限"
+msgid "multiple values specified for host address"
+msgstr "主机地址指定了多个值"
 
-#: libpq/be-secure-common.c:188
+#: libpq/hba.c:1122
 #, c-format
-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) 或者更低。"
+msgid "Specify one address range per line."
+msgstr "每行指定一个地址范围."
 
-#: libpq/be-secure-openssl.c:104
+#: libpq/hba.c:1177
 #, c-format
-msgid "could not create SSL context: %s"
-msgstr "无法创建 SSL 环境: %s"
+msgid "invalid IP address \"%s\": %s"
+msgstr "IP地址无效\"%s\": %s"
 
-#: libpq/be-secure-openssl.c:147
+#: libpq/hba.c:1197
 #, c-format
-msgid "could not load server certificate file \"%s\": %s"
-msgstr "æ\97 æ³\95è£\85è½½æ\9c\8då\8a¡å\99¨è®¤è¯\81æ\96\87ä»¶ \"%s\": %s"
+msgid "specifying both host name and CIDR mask is invalid: \"%s\""
+msgstr "æ\8c\87å®\9a主æ\9cºå\90\8dï¼\8cå\90\8cæ\97¶ CIDR æ\8e©ç \81: \"%s\"å\80¼æ\97 æ\95\88"
 
-#: libpq/be-secure-openssl.c:167
+#: libpq/hba.c:1211
 #, c-format
-msgid "private key file \"%s\" cannot be reloaded because it requires a passphrase"
-msgstr "无法重新加载私钥文件\"%s\",因为它需要密码短语"
+msgid "invalid CIDR mask in address \"%s\""
+msgstr "在地址\"%s\"中的CIDR掩码无效"
 
-#: libpq/be-secure-openssl.c:172
+#: libpq/hba.c:1230
 #, c-format
-msgid "could not load private key file \"%s\": %s"
-msgstr "无法装载私钥文件 \"%s\": %s"
+msgid "end-of-line before netmask specification"
+msgstr "在网络掩码定义前的行结束符"
 
-#: libpq/be-secure-openssl.c:181
+#: libpq/hba.c:1231
 #, c-format
-msgid "check of private key failed: %s"
-msgstr "检查私钥失败: %s"
+msgid "Specify an address range in CIDR notation, or provide a separate netmask."
+msgstr "使用CIDR 符号指定地址范围, 或者提供独立的网络掩码."
 
-#: libpq/be-secure-openssl.c:208
+#: libpq/hba.c:1242
 #, c-format
-msgid "could not set the cipher list (no valid ciphers available)"
-msgstr "无法设置密码列表(没有有效的密码可用)"
+msgid "multiple values specified for netmask"
+msgstr "网络掩码指定了多个值"
 
-#: libpq/be-secure-openssl.c:226
+#: libpq/hba.c:1256
 #, c-format
-msgid "could not load root certificate file \"%s\": %s"
-msgstr "æ\97 æ³\95è£\85载根 (root) è®¤è¯\81æ\96\87ä»¶ \"%s\": %s"
+msgid "invalid IP mask \"%s\": %s"
+msgstr "æ\97 æ\95\88IPå\9c°å\9d\80æ\8e©ç \81\"%s\": %s"
 
-#: libpq/be-secure-openssl.c:253
+#: libpq/hba.c:1275
 #, c-format
-msgid "SSL certificate revocation list file \"%s\" ignored"
-msgstr "忽略SSL认证撤销列表文件 \"%s\""
+msgid "IP address and mask do not match"
+msgstr "IP地址与掩码不匹配"
 
-#: libpq/be-secure-openssl.c:255
+#: libpq/hba.c:1291
 #, c-format
-msgid "SSL library does not support certificate revocation lists."
-msgstr "SSL库不支持认证撤销列表"
+msgid "end-of-line before authentication method"
+msgstr "在认证方法前面出现行结束符"
 
-#: libpq/be-secure-openssl.c:262
+#: libpq/hba.c:1302
 #, c-format
-msgid "could not load SSL certificate revocation list file \"%s\": %s"
-msgstr "无法装载根 (root)证书取消列表文件 \"%s\": %s"
+msgid "multiple values specified for authentication type"
+msgstr "认证类型指定了多个值"
 
-#: libpq/be-secure-openssl.c:337
+#: libpq/hba.c:1303
 #, c-format
-msgid "could not initialize SSL connection: SSL context not set up"
-msgstr "æ\97 æ³\95å\88\9då§\8bå\8c\96 SSL è\81\94æ\8e¥: æ\9cªè®¾ç½®SSLä¸\8aä¸\8bæ\96\87"
+msgid "Specify exactly one authentication type per line."
+msgstr "æ¯\8fè¡\8c精确æ\8c\87å®\9aä¸\80个认è¯\81ç±»å\9e\8b."
 
-#: libpq/be-secure-openssl.c:345
+#: libpq/hba.c:1380
 #, c-format
-msgid "could not initialize SSL connection: %s"
-msgstr "æ\97 æ³\95å\88\9då§\8bå\8c\96 SSL è\81\94æ\8e¥: %s"
+msgid "invalid authentication method \"%s\""
+msgstr "æ\97 æ\95\88认è¯\81æ\96¹æ³\95\"%s\""
 
-#: libpq/be-secure-openssl.c:353
+# fe-auth.c:640
+#: libpq/hba.c:1393
 #, c-format
-msgid "could not set SSL socket: %s"
-msgstr "无法创建 SSL 套接字: %s"
+msgid "invalid authentication method \"%s\": not supported by this build"
+msgstr "这个版本的编译安装不支持无效的认证方法\"%s\""
 
-#: libpq/be-secure-openssl.c:408
+#: libpq/hba.c:1416
 #, c-format
-msgid "could not accept SSL connection: %m"
-msgstr "无法访问 SSL 联接: %m"
+msgid "gssapi authentication is not supported on local sockets"
+msgstr "在本地套接字上不支持gssapi认证"
 
-#: libpq/be-secure-openssl.c:412 libpq/be-secure-openssl.c:423
+#: libpq/hba.c:1429
 #, c-format
-msgid "could not accept SSL connection: EOF detected"
-msgstr "无法访问 SSL 联接: 发现 EOF"
+msgid "GSSAPI encryption only supports gss, trust, or reject authentication"
+msgstr ""
 
-#: libpq/be-secure-openssl.c:417
+#: libpq/hba.c:1441
 #, c-format
-msgid "could not accept SSL connection: %s"
-msgstr "无法访问 SSL 联接: %s"
+msgid "peer authentication is only supported on local sockets"
+msgstr "对等认证只支持在本地套接字的情形下使用"
 
-#: libpq/be-secure-openssl.c:428 libpq/be-secure-openssl.c:559
-#: libpq/be-secure-openssl.c:623
+#: libpq/hba.c:1459
 #, c-format
-msgid "unrecognized SSL error code: %d"
-msgstr "未知的 SSL 错误码: %d"
-
-#: libpq/be-secure-openssl.c:470
-#, c-format
-msgid "SSL certificate's common name contains embedded null"
-msgstr "在SSL认证的普通名称中包含嵌入的空值"
+msgid "cert authentication is only supported on hostssl connections"
+msgstr "只有在hostssl连接上才支持cert认证"
 
-#: libpq/be-secure-openssl.c:548 libpq/be-secure-openssl.c:607
+#: libpq/hba.c:1509
 #, c-format
-msgid "SSL error: %s"
-msgstr "SSL 错误: %s"
+msgid "authentication option not in name=value format: %s"
+msgstr "认证选项的格式不是名称=值:%s"
 
-#: libpq/be-secure-openssl.c:788
+#: libpq/hba.c:1553
 #, c-format
-msgid "could not open DH parameters file \"%s\": %m"
-msgstr "无法打开DH参数文件 \"%s\": %m"
+msgid "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter, or ldapurl together with ldapprefix"
+msgstr "无法和ldapprefix一同使用ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter或ldapurl"
 
-#: libpq/be-secure-openssl.c:800
+# fe-auth.c:640
+#: libpq/hba.c:1564
 #, c-format
-msgid "could not load DH parameters file: %s"
-msgstr "无法装载DH参数文件: %s"
+msgid "authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix\", or \"ldapsuffix\" to be set"
+msgstr "在认证方法\"ldap\"中需要设置参数 \"ldapbasedn\", \"ldapprefix\"或\"ldapsuffix\""
 
-#: libpq/be-secure-openssl.c:810
+#: libpq/hba.c:1580
 #, c-format
-msgid "invalid DH parameters: %s"
-msgstr "æ\97 æ\95\88ç\9a\84DHå\8f\82æ\95°: %s"
+msgid "cannot use ldapsearchattribute together with ldapsearchfilter"
+msgstr "æ\97 æ³\95å\92\8cldapsearchfilterä¸\80å\90\8c使ç\94¨ldapsearchattribute"
 
-#: libpq/be-secure-openssl.c:818
+#: libpq/hba.c:1597
 #, c-format
-msgid "invalid DH parameters: p is not prime"
-msgstr "无效的DH参数:p不是主要的"
+msgid "list of RADIUS servers cannot be empty"
+msgstr "RADIUS服务器列表不能为空"
 
-#: libpq/be-secure-openssl.c:826
+#: libpq/hba.c:1607
 #, c-format
-msgid "invalid DH parameters: neither suitable generator or safe prime"
-msgstr "无效的DH参数:不适用的生成器或安全素数"
+msgid "list of RADIUS secrets cannot be empty"
+msgstr "RADIUS机密(secret)列表不能为空 "
 
-# startup.c:446
-#: libpq/be-secure-openssl.c:981
+#: libpq/hba.c:1660
 #, c-format
-msgid "DH: could not load DH parameters"
-msgstr "DH: 无法加载DH参数"
+msgid "the number of %s (%d) must be 1 or the same as the number of %s (%d)"
+msgstr "%s的数目(%d)必须是1或与%s (%d)的数目相同"
 
-# startup.c:446
-#: libpq/be-secure-openssl.c:989
-#, c-format
-msgid "DH: could not set DH parameters: %s"
-msgstr "DH: 无法设置DH参数: %s"
+#: libpq/hba.c:1694
+msgid "ident, peer, gssapi, sspi, and cert"
+msgstr "ident, peer, gssapi, sspi和cert"
 
-#: libpq/be-secure-openssl.c:1013
+#: libpq/hba.c:1703
 #, c-format
-msgid "ECDH: unrecognized curve name: %s"
-msgstr "ECDH: 无法识别的曲线名: %s"
+msgid "clientcert can only be configured for \"hostssl\" rows"
+msgstr "只能为\"hostssl\" 记录配置clientcert "
 
-# fe-connect.c:891
-#: libpq/be-secure-openssl.c:1022
-#, c-format
-msgid "ECDH: could not create key"
-msgstr "ECDH: 无法创建键"
+#: libpq/hba.c:1725
+#, fuzzy, c-format
+#| msgid "clientcert can not be set to 0 when using \"cert\" authentication"
+msgid "clientcert can not be set to \"no-verify\" when using \"cert\" authentication"
+msgstr "当使用\"cert\"认证时clientcert不能设置为0"
 
-#: libpq/be-secure-openssl.c:1050
-msgid "no SSL error reported"
-msgstr "没有报告SSL错误"
+#: libpq/hba.c:1737
+#, fuzzy, c-format
+#| msgid "invalid value for parameter \"%s\": \"%s\""
+msgid "invalid value for clientcert: \"%s\""
+msgstr "参数 \"%s\" 的值无效: \"%s\""
 
-#: libpq/be-secure-openssl.c:1054
+# fe-lobj.c:400 fe-lobj.c:483
+#: libpq/hba.c:1771
 #, c-format
-msgid "SSL error code %lu"
-msgstr "SSL错误代码 %lu"
+msgid "could not parse LDAP URL \"%s\": %s"
+msgstr "无法解析LDAP URL \"%s\": %s"
 
-#: libpq/be-secure.c:119
+#: libpq/hba.c:1782
 #, c-format
-msgid "SSL connection from \"%s\""
-msgstr "来自 \"%s\" 的 SSL 联接"
+msgid "unsupported LDAP URL scheme: %s"
+msgstr "不支持的LDAP URL模式: %s"
 
-#: libpq/be-secure.c:196 libpq/be-secure.c:284
+#: libpq/hba.c:1806
 #, c-format
-msgid "terminating connection due to unexpected postmaster exit"
-msgstr "由于意外的 postmaster 退出而终止连接"
+msgid "LDAP URLs not supported on this platform"
+msgstr "LDAP URL不能用于此平台"
 
-#: libpq/crypt.c:51
+#: libpq/hba.c:1824
 #, c-format
-msgid "Role \"%s\" does not exist."
-msgstr "角色 \"%s\" 不存在。"
+msgid "invalid ldapscheme value: \"%s\""
+msgstr "无效的 sslmode 值:  \"%s\""
 
-#: libpq/crypt.c:61
+#: libpq/hba.c:1842
 #, c-format
-msgid "User \"%s\" has no password assigned."
-msgstr "用户 \"%s\" 没有分配密码."
+msgid "invalid LDAP port number: \"%s\""
+msgstr "无效LDAP端口号: \"%s\""
 
-#: libpq/crypt.c:79
-#, c-format
-msgid "User \"%s\" has an expired password."
-msgstr "User \"%s\" 密码过期."
+#: libpq/hba.c:1888 libpq/hba.c:1895
+msgid "gssapi and sspi"
+msgstr "gssapi, 和sspi"
 
-#: libpq/crypt.c:173
-#, c-format
-msgid "User \"%s\" has a password that cannot be used with MD5 authentication."
-msgstr "用户\"%s\"的密码不能与MD5身份验证一起使用."
+#: libpq/hba.c:1904 libpq/hba.c:1913
+msgid "sspi"
+msgstr "sspi"
 
-# command.c:915
-# command.c:939
-# startup.c:187
-# startup.c:205
-#: libpq/crypt.c:197 libpq/crypt.c:238 libpq/crypt.c:262
+#: libpq/hba.c:1935
 #, c-format
-msgid "Password does not match for user \"%s\"."
-msgstr "用户 \"%s\" 的口令不匹配。"
+msgid "could not parse RADIUS server list \"%s\""
+msgstr "无法分析RADIUS服务器列表\"%s\""
 
-#: libpq/crypt.c:281
+#: libpq/hba.c:1983
 #, c-format
-msgid "Password of user \"%s\" is in unrecognized format."
-msgstr "用户\"%s\"的密码格式无法识别"
+msgid "could not parse RADIUS port list \"%s\""
+msgstr "无法分析RADIUS端口列表\"%s\""
 
-#: libpq/hba.c:235
+#: libpq/hba.c:1997
 #, c-format
-msgid "authentication file token too long, skipping: \"%s\""
-msgstr "认证文件标记 (token) 太长, 忽略: \"%s\""
+msgid "invalid RADIUS port number: \"%s\""
+msgstr "无效RADIUS端口号: \"%s\""
 
-#: libpq/hba.c:407
+#: libpq/hba.c:2019
 #, c-format
-msgid "could not open secondary authentication file \"@%s\" as \"%s\": %m"
-msgstr "无法打开次认证文件 \"@%s\" 为 \"%s\": %m"
+msgid "could not parse RADIUS secret list \"%s\""
+msgstr "无法分析RADIUS秘密(secret)列表\"%s\""
 
-#: libpq/hba.c:509
+#: libpq/hba.c:2041
 #, c-format
-msgid "authentication file line too long"
-msgstr "认证文件文本行太长"
+msgid "could not parse RADIUS identifiers list \"%s\""
+msgstr "无法分析RADIUS标识符列表\"%s\""
 
-#: libpq/hba.c:510 libpq/hba.c:867 libpq/hba.c:887 libpq/hba.c:925
-#: libpq/hba.c:975 libpq/hba.c:989 libpq/hba.c:1011 libpq/hba.c:1020
-#: libpq/hba.c:1041 libpq/hba.c:1054 libpq/hba.c:1074 libpq/hba.c:1096
-#: libpq/hba.c:1108 libpq/hba.c:1164 libpq/hba.c:1184 libpq/hba.c:1198
-#: libpq/hba.c:1217 libpq/hba.c:1228 libpq/hba.c:1243 libpq/hba.c:1261
-#: libpq/hba.c:1277 libpq/hba.c:1289 libpq/hba.c:1326 libpq/hba.c:1367
-#: libpq/hba.c:1380 libpq/hba.c:1402 libpq/hba.c:1414 libpq/hba.c:1432
-#: libpq/hba.c:1482 libpq/hba.c:1523 libpq/hba.c:1534 libpq/hba.c:1550
-#: libpq/hba.c:1567 libpq/hba.c:1577 libpq/hba.c:1635 libpq/hba.c:1673
-#: libpq/hba.c:1689 libpq/hba.c:1779 libpq/hba.c:1797 libpq/hba.c:1891
-#: libpq/hba.c:1910 libpq/hba.c:1939 libpq/hba.c:1952 libpq/hba.c:1975
-#: libpq/hba.c:1997 libpq/hba.c:2011 tsearch/ts_locale.c:190
+#: libpq/hba.c:2055
 #, c-format
-msgid "line %d of configuration file \"%s\""
-msgstr "配置文件\"%2$s\"的第%1$d行"
+msgid "unrecognized authentication option name: \"%s\""
+msgstr "未知认证选项名称:\"%s\""
 
-#. translator: the second %s is a list of auth methods
-#: libpq/hba.c:865
+#: libpq/hba.c:2199 libpq/hba.c:2613 guc-file.l:596
 #, c-format
-msgid "authentication option \"%s\" is only valid for authentication methods %s"
-msgstr "认证选项\"%s\"只对认证方法%s有效"
+msgid "could not open configuration file \"%s\": %m"
+msgstr "无法打开配置文件 \"%s\": %m"
 
-# fe-auth.c:640
-#: libpq/hba.c:885
+#: libpq/hba.c:2250
 #, c-format
-msgid "authentication method \"%s\" requires argument \"%s\" to be set"
-msgstr "在认证方法\"%s\"需要设置参数\"%s\" "
+msgid "configuration file \"%s\" contains no entries"
+msgstr "配置文件 \"%s\" 没有配置项"
 
-#: libpq/hba.c:913
+#: libpq/hba.c:2769
 #, c-format
-msgid "missing entry in file \"%s\" at end of line %d"
-msgstr "在 \"%s\" 文件的第 %d 行末尾缺少记录"
+msgid "invalid regular expression \"%s\": %s"
+msgstr "无效的正则表达式\"%s\": %s"
 
-#: libpq/hba.c:924
+#: libpq/hba.c:2829
 #, c-format
-msgid "multiple values in ident field"
-msgstr "识别字段出现多个值"
+msgid "regular expression match for \"%s\" failed: %s"
+msgstr "正则表达式匹配\"%s\"失败:%s"
 
-#: libpq/hba.c:973
+#: libpq/hba.c:2848
 #, c-format
-msgid "multiple values specified for connection type"
-msgstr "连接类型指定了多个值"
+msgid "regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\""
+msgstr "正则表达式\"%s\"没有在\"%s\"中的后项引用所要求的子表达式."
 
-#: libpq/hba.c:974
+#: libpq/hba.c:2945
 #, c-format
-msgid "Specify exactly one connection type per line."
-msgstr "æ¯\8fè¡\8c精确æ\8c\87å®\9aä¸\80个è¿\9eæ\8e¥ç±»å\9e\8b."
+msgid "provided user name (%s) and authenticated user name (%s) do not match"
+msgstr "æ\89\80æ\8f\90ä¾\9bç\9a\84ç\94¨æ\88·å\90\8d(%s)å\92\8c被认è¯\81ç\9a\84ç\94¨æ\88·å\90\8d(%s) ä¸\8då\8c¹é\85\8d"
 
-# input.c:213
-#: libpq/hba.c:988
+#: libpq/hba.c:2965
 #, c-format
-msgid "local connections are not supported by this build"
-msgstr "这个版本编译不支持本地连接"
+msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\""
+msgstr "对于以\"%3$s\"身份认证为的用户\"%2$s\",在用户映射\"%1$s\"中没有匹配"
 
-#: libpq/hba.c:1009
+#: libpq/hba.c:2998
 #, c-format
-msgid "hostssl record cannot match because SSL is disabled"
-msgstr "hotssl记录无法匹配,因为已禁用SSL"
+msgid "could not open usermap file \"%s\": %m"
+msgstr "无法打开用户映射文件\"%s\": %m"
 
-#: libpq/hba.c:1010
+#: libpq/pqcomm.c:220
 #, c-format
-msgid "Set ssl = on in postgresql.conf."
-msgstr "在postgresql.conf配置文件中设置 ssl 开关为 on."
+msgid "could not set socket to nonblocking mode: %m"
+msgstr "无法将套接字设为非阻塞模式: %m"
 
-# input.c:213
-#: libpq/hba.c:1018
+#: libpq/pqcomm.c:374
 #, c-format
-msgid "hostssl record cannot match because SSL is not supported by this build"
-msgstr "hotssl记录无法匹配,因为这个版本的编译安装不支持使用SSL"
+msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)"
+msgstr "Unix域的套接字路径 \"%s\" 超长(最大为%d字节)"
 
-#: libpq/hba.c:1019
+#: libpq/pqcomm.c:395
 #, c-format
-msgid "Compile with --with-openssl to use SSL connections."
-msgstr "为了使用SSL连接,在编译时需要带有 --with-openssl选项"
+msgid "could not translate host name \"%s\", service \"%s\" to address: %s"
+msgstr "无法解析主机名 \"%s\", 服务 \"%s\" 到地址: %s"
 
-# fe-connect.c:2558
-#: libpq/hba.c:1039
+#: libpq/pqcomm.c:399
 #, c-format
-msgid "invalid connection type \"%s\""
-msgstr "æ\97 æ\95\88è¿\9eæ\8e¥ç±»å\9e\8b\"%s\""
+msgid "could not translate service \"%s\" to address: %s"
+msgstr "æ\97 æ³\95è§£æ\9e\90æ\9c\8då\8a¡ \"%s\" å\88°å\9c°å\9d\80: %s"
 
-#: libpq/hba.c:1053
+#: libpq/pqcomm.c:426
 #, c-format
-msgid "end-of-line before database specification"
-msgstr "在数据库定义前面出现行结束符"
+msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded"
+msgstr "无法绑定所有需要的地址:超过最大数量MAXLISTEN (%d)"
 
-#: libpq/hba.c:1073
-#, c-format
-msgid "end-of-line before role specification"
-msgstr "在角色定义前面出现行结束符"
+#: libpq/pqcomm.c:435
+msgid "IPv4"
+msgstr "IPv4"
 
-#: libpq/hba.c:1095
-#, c-format
-msgid "end-of-line before IP address specification"
-msgstr "在IP地址定义前面出现行结束符"
+#: libpq/pqcomm.c:439
+msgid "IPv6"
+msgstr "IPv6"
 
-#: libpq/hba.c:1106
-#, c-format
-msgid "multiple values specified for host address"
-msgstr "主机地址指定了多个值"
+#: libpq/pqcomm.c:444
+msgid "Unix"
+msgstr "Unix"
 
-#: libpq/hba.c:1107
+#: libpq/pqcomm.c:449
 #, c-format
-msgid "Specify one address range per line."
-msgstr "每行指定一个地址范围."
+msgid "unrecognized address family %d"
+msgstr "不认可的地址族 %d"
 
-#: libpq/hba.c:1162
+#. translator: first %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:475
 #, c-format
-msgid "invalid IP address \"%s\": %s"
-msgstr "IP地址无效\"%s\": %s"
+msgid "could not create %s socket for address \"%s\": %m"
+msgstr "无法为地址\"%2$s\"创建%1$s套接字: %m"
 
-#: libpq/hba.c:1182
+#. translator: first %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:501
 #, c-format
-msgid "specifying both host name and CIDR mask is invalid: \"%s\""
-msgstr "指定主机名,同时 CIDR 掩码: \"%s\"值无效"
+msgid "setsockopt(SO_REUSEADDR) failed for %s address \"%s\": %m"
+msgstr "%s地址\"%s\"的setsockopt(SO_REUSEADDR) 失败: %m"
 
-#: libpq/hba.c:1196
+#. translator: first %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:518
 #, c-format
-msgid "invalid CIDR mask in address \"%s\""
-msgstr "在地址\"%s\"中的CIDR掩码无效"
+msgid "setsockopt(IPV6_V6ONLY) failed for %s address \"%s\": %m"
+msgstr "%s地址\"%s\"的setsockopt(IPV6_V6ONLY) 失败: %m"
 
-#: libpq/hba.c:1215
+#. translator: first %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:538
 #, c-format
-msgid "end-of-line before netmask specification"
-msgstr "在网络掩码定义前的行结束符"
+msgid "could not bind %s address \"%s\": %m"
+msgstr "无法绑定%s地址\"%s\": %m"
 
-#: libpq/hba.c:1216
+#: libpq/pqcomm.c:541
 #, c-format
-msgid "Specify an address range in CIDR notation, or provide a separate netmask."
-msgstr "使用CIDR 符号指定地址范围, 或者提供独立的网络掩码."
+msgid "Is another postmaster already running on port %d? If not, remove socket file \"%s\" and retry."
+msgstr "是否有其它 postmaster 已经在端口 %d 上运行了? 如果没有, 删除套接字文件 \"%s\" 然后再重试."
 
-#: libpq/hba.c:1227
+#: libpq/pqcomm.c:544
 #, c-format
-msgid "multiple values specified for netmask"
-msgstr "网络掩码指定了多个值"
+msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry."
+msgstr "是否有其它 postmaster 已经在端口 %d 上运行了? 如果没有, 请等待几秒钟后然后再重试."
 
-#: libpq/hba.c:1241
+#. translator: first %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:577
 #, c-format
-msgid "invalid IP mask \"%s\": %s"
-msgstr "æ\97 æ\95\88IPå\9c°å\9d\80æ\8e©ç \81\"%s\": %s"
+msgid "could not listen on %s address \"%s\": %m"
+msgstr "æ\97 æ³\95ç\9b\91å\90¬%så\9c°å\9d\80\"%s\": %m"
 
-#: libpq/hba.c:1260
-#, c-format
-msgid "IP address and mask do not match"
-msgstr "IP地址与掩码不匹配"
-
-#: libpq/hba.c:1276
-#, c-format
-msgid "end-of-line before authentication method"
-msgstr "在认证方法前面出现行结束符"
-
-#: libpq/hba.c:1287
-#, c-format
-msgid "multiple values specified for authentication type"
-msgstr "认证类型指定了多个值"
-
-#: libpq/hba.c:1288
-#, c-format
-msgid "Specify exactly one authentication type per line."
-msgstr "每行精确指定一个认证类型."
-
-#: libpq/hba.c:1365
-#, c-format
-msgid "invalid authentication method \"%s\""
-msgstr "无效认证方法\"%s\""
-
-# fe-auth.c:640
-#: libpq/hba.c:1378
-#, c-format
-msgid "invalid authentication method \"%s\": not supported by this build"
-msgstr "这个版本的编译安装不支持无效的认证方法\"%s\""
-
-#: libpq/hba.c:1401
-#, c-format
-msgid "gssapi authentication is not supported on local sockets"
-msgstr "在本地套接字上不支持gssapi认证"
-
-#: libpq/hba.c:1413
-#, c-format
-msgid "peer authentication is only supported on local sockets"
-msgstr "对等认证只支持在本地套接字的情形下使用"
-
-#: libpq/hba.c:1431
-#, c-format
-msgid "cert authentication is only supported on hostssl connections"
-msgstr "只有在hostssl连接上才支持cert认证"
-
-#: libpq/hba.c:1481
-#, c-format
-msgid "authentication option not in name=value format: %s"
-msgstr "认证选项的格式不是名称=值:%s"
-
-#: libpq/hba.c:1522
-#, c-format
-msgid "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter, or ldapurl together with ldapprefix"
-msgstr "无法和ldapprefix一同使用ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter或ldapurl"
-
-# fe-auth.c:640
-#: libpq/hba.c:1533
-#, c-format
-msgid "authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix\", or \"ldapsuffix\" to be set"
-msgstr "在认证方法\"ldap\"中需要设置参数 \"ldapbasedn\", \"ldapprefix\"或\"ldapsuffix\""
-
-#: libpq/hba.c:1549
-#, c-format
-msgid "cannot use ldapsearchattribute together with ldapsearchfilter"
-msgstr "无法和ldapsearchfilter一同使用ldapsearchattribute"
-
-#: libpq/hba.c:1566
-#, c-format
-msgid "list of RADIUS servers cannot be empty"
-msgstr "RADIUS服务器列表不能为空"
-
-#: libpq/hba.c:1576
-#, c-format
-msgid "list of RADIUS secrets cannot be empty"
-msgstr "RADIUS机密(secret)列表不能为空 "
-
-#: libpq/hba.c:1629
-#, c-format
-msgid "the number of %s (%d) must be 1 or the same as the number of %s (%d)"
-msgstr "%s的数目(%d)必须是1或与%s (%d)的数目相同"
-
-#: libpq/hba.c:1663
-msgid "ident, peer, gssapi, sspi, and cert"
-msgstr "ident, peer, gssapi, sspi和cert"
-
-#: libpq/hba.c:1672
-#, c-format
-msgid "clientcert can only be configured for \"hostssl\" rows"
-msgstr "只能为\"hostssl\" 记录配置clientcert "
-
-#: libpq/hba.c:1688
-#, 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:1725
-#, c-format
-msgid "could not parse LDAP URL \"%s\": %s"
-msgstr "无法解析LDAP URL \"%s\": %s"
-
-#: libpq/hba.c:1736
-#, c-format
-msgid "unsupported LDAP URL scheme: %s"
-msgstr "不支持的LDAP URL模式: %s"
-
-#: libpq/hba.c:1760
-#, c-format
-msgid "LDAP URLs not supported on this platform"
-msgstr "LDAP URL不能用于此平台"
-
-#: libpq/hba.c:1778
-#, c-format
-msgid "invalid ldapscheme value: \"%s\""
-msgstr "无效的 sslmode 值:  \"%s\""
-
-#: libpq/hba.c:1796
-#, c-format
-msgid "invalid LDAP port number: \"%s\""
-msgstr "无效LDAP端口号: \"%s\""
-
-#: libpq/hba.c:1842 libpq/hba.c:1849
-msgid "gssapi and sspi"
-msgstr "gssapi, 和sspi"
-
-#: libpq/hba.c:1858 libpq/hba.c:1867
-msgid "sspi"
-msgstr "sspi"
-
-#: libpq/hba.c:1889
-#, c-format
-msgid "could not parse RADIUS server list \"%s\""
-msgstr "无法分析RADIUS服务器列表\"%s\""
-
-#: libpq/hba.c:1937
-#, c-format
-msgid "could not parse RADIUS port list \"%s\""
-msgstr "无法分析RADIUS端口列表\"%s\""
-
-#: libpq/hba.c:1951
-#, c-format
-msgid "invalid RADIUS port number: \"%s\""
-msgstr "无效RADIUS端口号: \"%s\""
-
-#: libpq/hba.c:1973
-#, c-format
-msgid "could not parse RADIUS secret list \"%s\""
-msgstr "无法分析RADIUS秘密(secret)列表\"%s\""
-
-#: libpq/hba.c:1995
-#, c-format
-msgid "could not parse RADIUS identifiers list \"%s\""
-msgstr "无法分析RADIUS标识符列表\"%s\""
-
-#: libpq/hba.c:2009
-#, c-format
-msgid "unrecognized authentication option name: \"%s\""
-msgstr "未知认证选项名称:\"%s\""
-
-#: libpq/hba.c:2193
-#, c-format
-msgid "configuration file \"%s\" contains no entries"
-msgstr "配置文件 \"%s\" 没有配置项"
-
-#: libpq/hba.c:2706
-#, c-format
-msgid "invalid regular expression \"%s\": %s"
-msgstr "无效的正则表达式\"%s\": %s"
-
-#: libpq/hba.c:2766
-#, c-format
-msgid "regular expression match for \"%s\" failed: %s"
-msgstr "正则表达式匹配\"%s\"失败:%s"
-
-#: libpq/hba.c:2785
-#, c-format
-msgid "regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\""
-msgstr "正则表达式\"%s\"没有在\"%s\"中的后项引用所要求的子表达式."
-
-#: libpq/hba.c:2882
-#, c-format
-msgid "provided user name (%s) and authenticated user name (%s) do not match"
-msgstr "所提供的用户名(%s)和被认证的用户名(%s) 不匹配"
-
-#: libpq/hba.c:2902
-#, c-format
-msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\""
-msgstr "对于以\"%3$s\"身份认证为的用户\"%2$s\",在用户映射\"%1$s\"中没有匹配"
-
-#: libpq/hba.c:2935
-#, c-format
-msgid "could not open usermap file \"%s\": %m"
-msgstr "无法打开用户映射文件\"%s\": %m"
-
-#: libpq/pqcomm.c:220
-#, c-format
-msgid "could not set socket to nonblocking mode: %m"
-msgstr "无法将套接字设为非阻塞模式: %m"
-
-#: libpq/pqcomm.c:374
-#, c-format
-msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)"
-msgstr "Unix域的套接字路径 \"%s\" 超长(最大为%d字节)"
-
-#: libpq/pqcomm.c:395
-#, c-format
-msgid "could not translate host name \"%s\", service \"%s\" to address: %s"
-msgstr "无法解析主机名 \"%s\", 服务 \"%s\" 到地址: %s"
-
-#: libpq/pqcomm.c:399
-#, c-format
-msgid "could not translate service \"%s\" to address: %s"
-msgstr "无法解析服务 \"%s\" 到地址: %s"
-
-#: libpq/pqcomm.c:426
-#, c-format
-msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded"
-msgstr "无法绑定所有需要的地址:超过最大数量MAXLISTEN (%d)"
-
-#: libpq/pqcomm.c:435
-msgid "IPv4"
-msgstr "IPv4"
-
-#: libpq/pqcomm.c:439
-msgid "IPv6"
-msgstr "IPv6"
-
-#: libpq/pqcomm.c:444
-msgid "Unix"
-msgstr "Unix"
-
-#: libpq/pqcomm.c:449
-#, c-format
-msgid "unrecognized address family %d"
-msgstr "不认可的地址族 %d"
-
-#. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:475
-#, c-format
-msgid "could not create %s socket for address \"%s\": %m"
-msgstr "无法为地址\"%2$s\"创建%1$s套接字: %m"
-
-#. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:501
-#, c-format
-msgid "setsockopt(SO_REUSEADDR) failed for %s address \"%s\": %m"
-msgstr "%s地址\"%s\"的setsockopt(SO_REUSEADDR) 失败: %m"
-
-#. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:518
-#, c-format
-msgid "setsockopt(IPV6_V6ONLY) failed for %s address \"%s\": %m"
-msgstr "%s地址\"%s\"的setsockopt(IPV6_V6ONLY) 失败: %m"
-
-#. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:538
-#, c-format
-msgid "could not bind %s address \"%s\": %m"
-msgstr "无法绑定%s地址\"%s\": %m"
-
-#: libpq/pqcomm.c:541
-#, c-format
-msgid "Is another postmaster already running on port %d? If not, remove socket file \"%s\" and retry."
-msgstr "是否有其它 postmaster 已经在端口 %d 上运行了? 如果没有, 删除套接字文件 \"%s\" 然后再重试."
-
-#: libpq/pqcomm.c:544
-#, c-format
-msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry."
-msgstr "是否有其它 postmaster 已经在端口 %d 上运行了? 如果没有, 请等待几秒钟后然后再重试."
-
-#. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:577
-#, c-format
-msgid "could not listen on %s address \"%s\": %m"
-msgstr "无法监听%s地址\"%s\": %m"
-
-#: libpq/pqcomm.c:586
+#: libpq/pqcomm.c:586
 #, c-format
 msgid "listening on Unix socket \"%s\""
 msgstr "在Unix套接字 \"%s\"上侦听"
@@ -13653,37 +13437,37 @@ msgstr "无法设置文件 \"%s\" 的权限: %m"
 msgid "could not accept new connection: %m"
 msgstr "无法访问新联接: %m"
 
-#: libpq/pqcomm.c:927
+#: libpq/pqcomm.c:928
 #, c-format
 msgid "there is no client connection"
 msgstr "没有客户端连接"
 
-#: libpq/pqcomm.c:978 libpq/pqcomm.c:1074
+#: libpq/pqcomm.c:979 libpq/pqcomm.c:1075
 #, c-format
 msgid "could not receive data from client: %m"
 msgstr "无法从客户端获得数据: %m"
 
-#: libpq/pqcomm.c:1219 tcop/postgres.c:4020
+#: libpq/pqcomm.c:1220 tcop/postgres.c:4087
 #, c-format
 msgid "terminating connection because protocol synchronization was lost"
 msgstr "由于协议同步丢失而中断连接"
 
-#: libpq/pqcomm.c:1285
+#: libpq/pqcomm.c:1286
 #, c-format
 msgid "unexpected EOF within message length word"
 msgstr "在信息长度字里有意外的 EOF"
 
-#: libpq/pqcomm.c:1296
+#: libpq/pqcomm.c:1297
 #, c-format
 msgid "invalid message length"
 msgstr "无效的信息长度"
 
-#: libpq/pqcomm.c:1318 libpq/pqcomm.c:1331
+#: libpq/pqcomm.c:1319 libpq/pqcomm.c:1332
 #, c-format
 msgid "incomplete message from client"
 msgstr "从客户端过来的不完整信息"
 
-#: libpq/pqcomm.c:1464
+#: libpq/pqcomm.c:1465
 #, c-format
 msgid "could not send data to client: %m"
 msgstr "无法发送数据给客户端: %m"
@@ -13694,7 +13478,7 @@ msgid "no data left in message"
 msgstr "信息中已经没有数据了"
 
 #: libpq/pqformat.c:517 libpq/pqformat.c:535 libpq/pqformat.c:556
-#: utils/adt/arrayfuncs.c:1470 utils/adt/rowtypes.c:566
+#: utils/adt/arrayfuncs.c:1470 utils/adt/rowtypes.c:567
 #, c-format
 msgid "insufficient data left in message"
 msgstr "信息中剩下的数据不够"
@@ -13949,14 +13733,21 @@ msgid "  -x NUM             internal use\n"
 msgstr "  -x NUM             内部使用\n"
 
 #: main/main.c:377
-#, c-format
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Please read the documentation for the complete list of run-time\n"
+#| "configuration settings and how to set them on the command line or in\n"
+#| "the configuration file.\n"
+#| "\n"
+#| "Report bugs to <pgsql-bugs@postgresql.org>.\n"
 msgid ""
 "\n"
 "Please read the documentation for the complete list of run-time\n"
 "configuration settings and how to set them on the command line or in\n"
 "the configuration file.\n"
 "\n"
-"Report bugs to <pgsql-bugs@postgresql.org>.\n"
+"Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgstr ""
 "\n"
 "请阅读文档获取运行时配置设置的完整列表\n"
@@ -14008,861 +13799,916 @@ msgstr "ExtensibleNodeMethods \"%s\" 没有注册"
 
 #: nodes/nodeFuncs.c:123 nodes/nodeFuncs.c:154 parser/parse_coerce.c:1915
 #: parser/parse_coerce.c:1943 parser/parse_coerce.c:2019
-#: parser/parse_expr.c:2119 parser/parse_func.c:695 parser/parse_oper.c:967
+#: parser/parse_expr.c:2201 parser/parse_func.c:705 parser/parse_oper.c:967
 #, c-format
 msgid "could not find array type for data type %s"
 msgstr "无法为数据类型 %s 找到数组类型"
 
-#: optimizer/path/joinrels.c:839
+#: optimizer/path/joinrels.c:833
 #, c-format
 msgid "FULL JOIN is only supported with merge-joinable or hash-joinable join conditions"
 msgstr "只有在合并连接或哈希连接的查询条件中才支持FULL JOIN"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: optimizer/plan/initsplan.c:1212
+#: optimizer/plan/initsplan.c:1195
 #, 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:1768 parser/analyze.c:1655 parser/analyze.c:1854
-#: parser/analyze.c:2687
+#: optimizer/plan/planner.c:1912 parser/analyze.c:1644 parser/analyze.c:1842
+#: parser/analyze.c:2700
 #, c-format
 msgid "%s is not allowed with UNION/INTERSECT/EXCEPT"
 msgstr "%s不允许使用UNION/INTERSECT/EXCEPT"
 
-#: optimizer/plan/planner.c:2340 optimizer/plan/planner.c:4061
+#: optimizer/plan/planner.c:2498 optimizer/plan/planner.c:4152
 #, c-format
 msgid "could not implement GROUP BY"
 msgstr "无法实现GROUP BY语句"
 
-#: optimizer/plan/planner.c:2341 optimizer/plan/planner.c:4062
-#: optimizer/plan/planner.c:4805 optimizer/prep/prepunion.c:1080
+#: optimizer/plan/planner.c:2499 optimizer/plan/planner.c:4153
+#: optimizer/plan/planner.c:4891 optimizer/prep/prepunion.c:1042
 #, c-format
 msgid "Some of the datatypes only support hashing, while others only support sorting."
 msgstr "一些数据类型只支持哈希,同时另外一些数据类型只支持排序."
 
-#: optimizer/plan/planner.c:4804
+#: optimizer/plan/planner.c:4890
 #, c-format
 msgid "could not implement DISTINCT"
 msgstr "无法实现DISTINCT语句"
 
-#: optimizer/plan/planner.c:5487
+#: optimizer/plan/planner.c:5625
 #, c-format
 msgid "could not implement window PARTITION BY"
 msgstr "无法实现与窗口函数一同使用PARTITION BY子句"
 
-#: optimizer/plan/planner.c:5488
+#: optimizer/plan/planner.c:5626
 #, c-format
 msgid "Window partitioning columns must be of sortable datatypes."
 msgstr "窗口分区列必须属于可排序的数据类型"
 
-#: optimizer/plan/planner.c:5492
+#: optimizer/plan/planner.c:5630
 #, c-format
 msgid "could not implement window ORDER BY"
 msgstr "无法实现与窗口函数一同使用ORDER BY 语句"
 
-#: optimizer/plan/planner.c:5493
+#: optimizer/plan/planner.c:5631
 #, c-format
 msgid "Window ordering columns must be of sortable datatypes."
 msgstr "窗口的排序列必须属于可排序的数据类型"
 
-#: optimizer/plan/setrefs.c:414
+#: optimizer/plan/setrefs.c:424
 #, c-format
 msgid "too many range table entries"
 msgstr "太多范围表"
 
-#: optimizer/prep/prepunion.c:544
+#: optimizer/prep/prepunion.c:505
 #, c-format
 msgid "could not implement recursive UNION"
 msgstr "无法实现递归UNION操作"
 
-#: optimizer/prep/prepunion.c:545
+#: optimizer/prep/prepunion.c:506
 #, c-format
 msgid "All column datatypes must be hashable."
 msgstr "所有列的数据类型必须可进行哈希计算."
 
 #. translator: %s is UNION, INTERSECT, or EXCEPT
-#: optimizer/prep/prepunion.c:1079
+#: optimizer/prep/prepunion.c:1041
 #, c-format
 msgid "could not implement %s"
 msgstr "无法实现%s"
 
-#: optimizer/util/clauses.c:4924
+#: optimizer/util/clauses.c:4781
 #, c-format
 msgid "SQL function \"%s\" during inlining"
 msgstr "SQL 函数 \"%s\" 在内联 (inlining) 期间"
 
-#: optimizer/util/plancat.c:127
+#: optimizer/util/plancat.c:130
 #, c-format
 msgid "cannot access temporary or unlogged relations during recovery"
 msgstr "无法在恢复过程中访问临时关系或非事务日志关系"
 
-#: optimizer/util/plancat.c:651
+#: optimizer/util/plancat.c:650
 #, c-format
 msgid "whole row unique index inference specifications are not supported"
 msgstr "不支持整行唯一索引推理规范"
 
-#: optimizer/util/plancat.c:668
+#: optimizer/util/plancat.c:667
 #, c-format
 msgid "constraint in ON CONFLICT clause has no associated index"
 msgstr "ON CONFLICT子句中的约束没有相关的索引"
 
-#: optimizer/util/plancat.c:719
+#: optimizer/util/plancat.c:717
 #, c-format
 msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints"
 msgstr "ON CONFLICT DO UPDATE不支持和排除约束一起使用"
 
-#: optimizer/util/plancat.c:824
+#: optimizer/util/plancat.c:822
 #, c-format
 msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification"
 msgstr "没有匹配ON CONFLICT说明的唯一或者排除约束"
 
-#: parser/analyze.c:711 parser/analyze.c:1418
+#: parser/analyze.c:711 parser/analyze.c:1407
 #, c-format
 msgid "VALUES lists must all be the same length"
 msgstr "在VALUES列表中每个成员的长度必须相同"
 
-#: parser/analyze.c:921
+#: parser/analyze.c:914
 #, c-format
 msgid "INSERT has more expressions than target columns"
 msgstr "INSERT 的表达式多于指定的字段数"
 
-#: parser/analyze.c:939
+#: parser/analyze.c:932
 #, c-format
 msgid "INSERT has more target columns than expressions"
 msgstr "INSERT 的指定字段数多于表达式"
 
-#: parser/analyze.c:943
+#: parser/analyze.c:936
 #, c-format
 msgid "The insertion source is a row expression containing the same number of columns expected by the INSERT. Did you accidentally use extra parentheses?"
 msgstr "插入源是一个行表达式,里边的列个数与INSERT期望值相同. 您是否偶尔使用了额外的父表达式?"
 
-#: parser/analyze.c:1229 parser/analyze.c:1628
+#: parser/analyze.c:1218 parser/analyze.c:1617
 #, c-format
 msgid "SELECT ... INTO is not allowed here"
 msgstr "这儿不允许使用SELECT ... INTO"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:1560 parser/analyze.c:2866
+#: parser/analyze.c:1549 parser/analyze.c:2879
 #, c-format
 msgid "%s cannot be applied to VALUES"
 msgstr "%s 不能用于 VALUES"
 
-#: parser/analyze.c:1779
+#: parser/analyze.c:1767
 #, c-format
 msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause"
 msgstr "无效的UNION/INTERSECT/EXCEPT ORDER BY 子句"
 
-#: parser/analyze.c:1780
+#: parser/analyze.c:1768
 #, c-format
 msgid "Only result column names can be used, not expressions or functions."
 msgstr "无法使用表达式或函数,只有结果列的名称可以使用."
 
-#: parser/analyze.c:1781
+#: parser/analyze.c:1769
 #, c-format
 msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause."
 msgstr "对每个SELECT语句增加表达式/函数, 或者将UNION移动到FROM子句中."
 
-#: parser/analyze.c:1844
+#: parser/analyze.c:1832
 #, c-format
 msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT"
 msgstr "INTO 只允许在 UNION/INTERSECT/EXCEPT 的第一个 SELECT 上使用"
 
-#: parser/analyze.c:1916
+#: parser/analyze.c:1904
 #, c-format
 msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level"
 msgstr "UNION/INTERSECT/EXCEPT的成员语句不能参考相同查询层次的其它关系"
 
-#: parser/analyze.c:2005
+#: parser/analyze.c:1993
 #, c-format
 msgid "each %s query must have the same number of columns"
 msgstr "每一个 %s 查询必须有相同的字段个数"
 
-#: parser/analyze.c:2398
+#: parser/analyze.c:2411
 #, c-format
 msgid "RETURNING must have at least one column"
 msgstr "RETURNING 必须至少有一列"
 
-#: parser/analyze.c:2439
+#: parser/analyze.c:2452
 #, c-format
 msgid "cannot specify both SCROLL and NO SCROLL"
 msgstr "不可同时指定 SCROLL 和 NO SCROLL"
 
-#: parser/analyze.c:2458
+#: parser/analyze.c:2471
 #, c-format
 msgid "DECLARE CURSOR must not contain data-modifying statements in WITH"
 msgstr "DECLARE CURSOR不能在WITH子句中包含修改数据的操作"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2466
+#: parser/analyze.c:2479
 #, c-format
 msgid "DECLARE CURSOR WITH HOLD ... %s is not supported"
 msgstr "DECLARE CURSOR WITH HOLD ... %s不能使用"
 
-#: parser/analyze.c:2469
+#: parser/analyze.c:2482
 #, c-format
 msgid "Holdable cursors must be READ ONLY."
 msgstr "可保持游标必须为只读."
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2477
+#: parser/analyze.c:2490
 #, c-format
 msgid "DECLARE SCROLL CURSOR ... %s is not supported"
 msgstr "DECLARE SCROLL CURSOR ... %s不能使用"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2488
+#: parser/analyze.c:2501
 #, c-format
 msgid "DECLARE INSENSITIVE CURSOR ... %s is not supported"
 msgstr "DECLARE INSENSITIVE CURSOR ... %s不能使用"
 
-#: parser/analyze.c:2491
+#: parser/analyze.c:2504
 #, c-format
 msgid "Insensitive cursors must be READ ONLY."
 msgstr "非敏感游标必须为只读模式(READ ONLY)."
 
-#: parser/analyze.c:2557
+#: parser/analyze.c:2570
 #, c-format
 msgid "materialized views must not use data-modifying statements in WITH"
 msgstr "物化视图不能包含修改数据的WITH子句"
 
-#: parser/analyze.c:2567
+#: parser/analyze.c:2580
 #, c-format
 msgid "materialized views must not use temporary tables or views"
 msgstr "物化视图不能使用临时表或视图"
 
-#: parser/analyze.c:2577
+#: parser/analyze.c:2590
 #, c-format
 msgid "materialized views may not be defined using bound parameters"
 msgstr "物化视图在绑定参数里可能没被定义"
 
-#: parser/analyze.c:2589
-#, c-format
-msgid "materialized views cannot be UNLOGGED"
+#: parser/analyze.c:2602
+#, fuzzy, c-format
+#| msgid "materialized views cannot be UNLOGGED"
+msgid "materialized views cannot be unlogged"
 msgstr "物化视图不能使用UNLOGGED"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2694
+#: parser/analyze.c:2707
 #, c-format
 msgid "%s is not allowed with DISTINCT clause"
 msgstr "%s不能用于DISTINCT子句中"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2701
+#: parser/analyze.c:2714
 #, c-format
 msgid "%s is not allowed with GROUP BY clause"
 msgstr "%s不能用于GROUP BY子句中"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2708
+#: parser/analyze.c:2721
 #, c-format
 msgid "%s is not allowed with HAVING clause"
 msgstr "%s不能用于HAVING子句中"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2715
+#: parser/analyze.c:2728
 #, c-format
 msgid "%s is not allowed with aggregate functions"
 msgstr "%s不能用于聚合函数中"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2722
+#: parser/analyze.c:2735
 #, c-format
 msgid "%s is not allowed with window functions"
 msgstr "%s不能用于窗口函数中"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2729
+#: parser/analyze.c:2742
 #, c-format
 msgid "%s is not allowed with set-returning functions in the target list"
 msgstr "%s不能用于目标列表中的返回集合的函数中"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2808
+#: parser/analyze.c:2821
 #, c-format
 msgid "%s must specify unqualified relation names"
 msgstr "%s 必须指定不合格的关系名"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2839
+#: parser/analyze.c:2852
 #, c-format
 msgid "%s cannot be applied to a join"
 msgstr "%s 不能用于连接(join)操作"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2848
+#: parser/analyze.c:2861
 #, c-format
 msgid "%s cannot be applied to a function"
 msgstr "%s不能用于函数"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2857
+#: parser/analyze.c:2870
 #, c-format
 msgid "%s cannot be applied to a table function"
 msgstr "%s不能应用于表函数"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2875
+#: parser/analyze.c:2888
 #, c-format
 msgid "%s cannot be applied to a WITH query"
 msgstr "%s 不能用于WITH查询"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2884
+#: parser/analyze.c:2897
 #, c-format
 msgid "%s cannot be applied to a named tuplestore"
 msgstr "%s不能应用于命名的tuplestore"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2901
+#: parser/analyze.c:2917
 #, c-format
 msgid "relation \"%s\" in %s clause not found in FROM clause"
 msgstr "子句%2$s中的关系 \"%1$s\" 在FROM子句中无法找到"
 
-#: parser/parse_agg.c:221 parser/parse_oper.c:222
+#: parser/parse_agg.c:220 parser/parse_oper.c:222
 #, c-format
 msgid "could not identify an ordering operator for type %s"
 msgstr "无法为类型%s识别顺序操作符"
 
-#: parser/parse_agg.c:223
+#: parser/parse_agg.c:222
 #, c-format
 msgid "Aggregates with DISTINCT must be able to sort their inputs."
 msgstr "带有DISTINCT关键字的聚合函数必须能够对它们的输入进行排序"
 
-#: parser/parse_agg.c:258
+#: parser/parse_agg.c:257
 #, c-format
 msgid "GROUPING must have fewer than 32 arguments"
 msgstr "GROUPING的参数不能超过32个"
 
-#: parser/parse_agg.c:361
+#: parser/parse_agg.c:360
 msgid "aggregate functions are not allowed in JOIN conditions"
 msgstr "聚合函数不允许出现在 JOIN 条件中"
 
-#: parser/parse_agg.c:363
+#: parser/parse_agg.c:362
 msgid "grouping operations are not allowed in JOIN conditions"
 msgstr "JOIN条件中不允许分组操作"
 
-#: parser/parse_agg.c:375
+#: parser/parse_agg.c:374
 msgid "aggregate functions are not allowed in FROM clause of their own query level"
 msgstr "聚合函数不允许出现在它们自己查询级别的FROM子句中"
 
-#: parser/parse_agg.c:377
+#: parser/parse_agg.c:376
 msgid "grouping operations are not allowed in FROM clause of their own query level"
 msgstr "分组操作不允许出现在它们所在查询级别的FROM子句中"
 
-#: parser/parse_agg.c:382
+#: parser/parse_agg.c:381
 msgid "aggregate functions are not allowed in functions in FROM"
 msgstr "聚合函数不允许出现在FROM子句中的函数里"
 
-#: parser/parse_agg.c:384
+#: parser/parse_agg.c:383
 msgid "grouping operations are not allowed in functions in FROM"
 msgstr "分组操作不允许出现在FROM中的函数内"
 
-#: parser/parse_agg.c:392
+#: parser/parse_agg.c:391
 msgid "aggregate functions are not allowed in policy expressions"
 msgstr "策略表达式中不允许聚集函数"
 
-#: parser/parse_agg.c:394
+#: parser/parse_agg.c:393
 msgid "grouping operations are not allowed in policy expressions"
 msgstr "策略表达式中不允许分组操作"
 
-#: parser/parse_agg.c:411
+#: parser/parse_agg.c:410
 msgid "aggregate functions are not allowed in window RANGE"
 msgstr "在聚合函数不允许出现在窗口范围子句里"
 
-#: parser/parse_agg.c:413
+#: parser/parse_agg.c:412
 msgid "grouping operations are not allowed in window RANGE"
 msgstr "窗口RANGE中不允许分组操作"
 
-#: parser/parse_agg.c:418
+#: parser/parse_agg.c:417
 msgid "aggregate functions are not allowed in window ROWS"
 msgstr "聚合函数不允许出现在窗口ROWS子句里"
 
-#: parser/parse_agg.c:420
+#: parser/parse_agg.c:419
 msgid "grouping operations are not allowed in window ROWS"
 msgstr "窗口ROWS中不允许分组操作"
 
-#: parser/parse_agg.c:425
+#: parser/parse_agg.c:424
 msgid "aggregate functions are not allowed in window GROUPS"
 msgstr "聚合函数不允许出现在窗口GROUPS子句里"
 
-#: parser/parse_agg.c:427
+#: parser/parse_agg.c:426
 msgid "grouping operations are not allowed in window GROUPS"
 msgstr "窗口GROUPS中不允许分组操作"
 
-#: parser/parse_agg.c:461
+#: parser/parse_agg.c:460
 msgid "aggregate functions are not allowed in check constraints"
 msgstr "聚合函数不允许出现在check约束中"
 
-#: parser/parse_agg.c:463
+#: parser/parse_agg.c:462
 msgid "grouping operations are not allowed in check constraints"
 msgstr "检查约束中不允许分组操作"
 
-#: parser/parse_agg.c:470
+#: parser/parse_agg.c:469
 msgid "aggregate functions are not allowed in DEFAULT expressions"
 msgstr "聚合函数不允许出现在DEFAULT表达式中"
 
-#: parser/parse_agg.c:472
+#: parser/parse_agg.c:471
 msgid "grouping operations are not allowed in DEFAULT expressions"
 msgstr "DEFAULT表达式中不允许分组操作"
 
-#: parser/parse_agg.c:477
+#: parser/parse_agg.c:476
 msgid "aggregate functions are not allowed in index expressions"
 msgstr "聚合函数不允许出现在索引表达式中"
 
-#: parser/parse_agg.c:479
+#: parser/parse_agg.c:478
 msgid "grouping operations are not allowed in index expressions"
 msgstr "索引表达式中不允许分组操作"
 
-#: parser/parse_agg.c:484
+#: parser/parse_agg.c:483
 msgid "aggregate functions are not allowed in index predicates"
 msgstr "聚合函数不允许出现在索引判定子句当中"
 
-#: parser/parse_agg.c:486
+#: parser/parse_agg.c:485
 msgid "grouping operations are not allowed in index predicates"
 msgstr "索引谓词中不允许分组操作"
 
-#: parser/parse_agg.c:491
+#: parser/parse_agg.c:490
 msgid "aggregate functions are not allowed in transform expressions"
 msgstr "聚合函数不允许出现在转换表达式中"
 
-#: parser/parse_agg.c:493
+#: parser/parse_agg.c:492
 msgid "grouping operations are not allowed in transform expressions"
 msgstr "转换表达式中不允许分组操作"
 
-#: parser/parse_agg.c:498
+#: parser/parse_agg.c:497
 msgid "aggregate functions are not allowed in EXECUTE parameters"
 msgstr "聚合函数不允许出现在EXECUTE参数中"
 
-#: parser/parse_agg.c:500
+#: parser/parse_agg.c:499
 msgid "grouping operations are not allowed in EXECUTE parameters"
 msgstr "EXECUTE参数中不允许分组操作"
 
-#: parser/parse_agg.c:505
+#: parser/parse_agg.c:504
 msgid "aggregate functions are not allowed in trigger WHEN conditions"
 msgstr "聚合函数不允许出现在触发器WHEN条件中"
 
-#: parser/parse_agg.c:507
+#: parser/parse_agg.c:506
 msgid "grouping operations are not allowed in trigger WHEN conditions"
 msgstr "触发器WHEN条件中不允许分组操作"
 
-#: parser/parse_agg.c:512
+#: parser/parse_agg.c:511
+#, fuzzy
+#| msgid "aggregate functions are not allowed in partition key expressions"
+msgid "aggregate functions are not allowed in partition bound"
+msgstr "聚合函数不允许出现在分区键表达式中"
+
+#: parser/parse_agg.c:513
+#, fuzzy
+#| msgid "grouping operations are not allowed in partition key expressions"
+msgid "grouping operations are not allowed in partition bound"
+msgstr "分区键表达式中不允许分组操作"
+
+#: parser/parse_agg.c:518
 msgid "aggregate functions are not allowed in partition key expressions"
 msgstr "聚合函数不允许出现在分区键表达式中"
 
-#: parser/parse_agg.c:514
+#: parser/parse_agg.c:520
 msgid "grouping operations are not allowed in partition key expressions"
 msgstr "分区键表达式中不允许分组操作"
 
-#: parser/parse_agg.c:520
+#: parser/parse_agg.c:526
+#, fuzzy
+#| msgid "aggregate functions are not allowed in policy expressions"
+msgid "aggregate functions are not allowed in column generation expressions"
+msgstr "策略表达式中不允许聚集函数"
+
+#: parser/parse_agg.c:528
+#, fuzzy
+#| msgid "grouping operations are not allowed in policy expressions"
+msgid "grouping operations are not allowed in column generation expressions"
+msgstr "策略表达式中不允许分组操作"
+
+#: parser/parse_agg.c:534
 msgid "aggregate functions are not allowed in CALL arguments"
 msgstr "聚合函数不允许出现在CALL参数中"
 
-#: parser/parse_agg.c:522
+#: parser/parse_agg.c:536
 msgid "grouping operations are not allowed in CALL arguments"
 msgstr "CALL参数中不允许分组操作"
 
+#: parser/parse_agg.c:542
+#, fuzzy
+#| msgid "aggregate functions are not allowed in JOIN conditions"
+msgid "aggregate functions are not allowed in COPY FROM WHERE conditions"
+msgstr "聚合函数不允许出现在 JOIN 条件中"
+
+#: parser/parse_agg.c:544
+#, fuzzy
+#| msgid "grouping operations are not allowed in JOIN conditions"
+msgid "grouping operations are not allowed in COPY FROM WHERE conditions"
+msgstr "JOIN条件中不允许分组操作"
+
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_agg.c:545 parser/parse_clause.c:1818
+#: parser/parse_agg.c:567 parser/parse_clause.c:1778
 #, 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:548
+#: parser/parse_agg.c:570
 #, c-format
 msgid "grouping operations are not allowed in %s"
 msgstr "%s中不允许分组操作"
 
-#: parser/parse_agg.c:656
+#: parser/parse_agg.c:678
 #, c-format
 msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments"
 msgstr "outer-level 聚集函数在其直接参数里不能包含更低级别的变量"
 
-#: parser/parse_agg.c:735
+#: parser/parse_agg.c:757
 #, c-format
 msgid "aggregate function calls cannot contain set-returning function calls"
 msgstr "对于聚合函数调用不能包含将返回集合函数的调用"
 
-#: parser/parse_agg.c:736 parser/parse_expr.c:1766 parser/parse_expr.c:2246
-#: parser/parse_func.c:866
+#: parser/parse_agg.c:758 parser/parse_expr.c:1839 parser/parse_expr.c:2328
+#: parser/parse_func.c:876
 #, c-format
 msgid "You might be able to move the set-returning function into a LATERAL FROM item."
 msgstr "您可以将返回集合函数移到LATERAL FROM项中"
 
-#: parser/parse_agg.c:741
+#: parser/parse_agg.c:763
 #, c-format
 msgid "aggregate function calls cannot contain window function calls"
 msgstr "对于聚合函数调用不能包含窗口函数的调用"
 
-#: parser/parse_agg.c:820
+#: parser/parse_agg.c:842
 msgid "window functions are not allowed in JOIN conditions"
 msgstr "窗口函数不允许出现在JOIN条件中"
 
-#: parser/parse_agg.c:827
+#: parser/parse_agg.c:849
 msgid "window functions are not allowed in functions in FROM"
 msgstr "窗口函数不允许出现在FROM的函数中"
 
-#: parser/parse_agg.c:833
+#: parser/parse_agg.c:855
 msgid "window functions are not allowed in policy expressions"
 msgstr "策略表达式中不允许窗口函数"
 
-#: parser/parse_agg.c:846
+#: parser/parse_agg.c:868
 msgid "window functions are not allowed in window definitions"
 msgstr "窗口函数不允许出现在窗口定义中"
 
-#: parser/parse_agg.c:878
+#: parser/parse_agg.c:900
 msgid "window functions are not allowed in check constraints"
 msgstr "窗口函数不允许出现在check约束中"
 
-#: parser/parse_agg.c:882
+#: parser/parse_agg.c:904
 msgid "window functions are not allowed in DEFAULT expressions"
 msgstr "窗口函数不允许出现在DEFAULT表达式中"
 
-#: parser/parse_agg.c:885
+#: parser/parse_agg.c:907
 msgid "window functions are not allowed in index expressions"
 msgstr "在窗口函数不允许出现在索引表达式中"
 
-#: parser/parse_agg.c:888
+#: parser/parse_agg.c:910
 msgid "window functions are not allowed in index predicates"
 msgstr "在窗口函数不允许出现在索引判定子句中"
 
-#: parser/parse_agg.c:891
+#: parser/parse_agg.c:913
 msgid "window functions are not allowed in transform expressions"
 msgstr "窗口函数不允许出现在转换表达式中"
 
-#: parser/parse_agg.c:894
+#: parser/parse_agg.c:916
 msgid "window functions are not allowed in EXECUTE parameters"
 msgstr "窗口函数不允许出现在EXECUTE参数中"
 
-#: parser/parse_agg.c:897
+#: parser/parse_agg.c:919
 msgid "window functions are not allowed in trigger WHEN conditions"
 msgstr "窗口函数不允许出现在触发器WHEN条件中"
 
-#: parser/parse_agg.c:900
-msgid "window functions are not allowed in partition key expressions"
+#: parser/parse_agg.c:922
+#, fuzzy
+#| msgid "window functions are not allowed in partition key expressions"
+msgid "window functions are not allowed in partition bound"
 msgstr "在窗口函数不允许出现在分区键表达式中"
 
-#: parser/parse_agg.c:903
+#: parser/parse_agg.c:925
+msgid "window functions are not allowed in partition key expressions"
+msgstr "在窗口函数不允许出现在分区键表达式中"
+
+#: parser/parse_agg.c:928
 msgid "window functions are not allowed in CALL arguments"
 msgstr "窗口函数不允许出现在CALL参数中"
 
+#: parser/parse_agg.c:931
+#, fuzzy
+#| msgid "window functions are not allowed in JOIN conditions"
+msgid "window functions are not allowed in COPY FROM WHERE conditions"
+msgstr "窗口函数不允许出现在JOIN条件中"
+
+#: parser/parse_agg.c:934
+#, fuzzy
+#| msgid "window functions are not allowed in policy expressions"
+msgid "window functions are not allowed in column generation expressions"
+msgstr "策略表达式中不允许窗口函数"
+
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_agg.c:923 parser/parse_clause.c:1827
+#: parser/parse_agg.c:954 parser/parse_clause.c:1787
 #, c-format
 msgid "window functions are not allowed in %s"
 msgstr "窗口函数不允许出现在%s中"
 
-#: parser/parse_agg.c:957 parser/parse_clause.c:2663
+#: parser/parse_agg.c:988 parser/parse_clause.c:2623
 #, c-format
 msgid "window \"%s\" does not exist"
 msgstr "窗口\"%s\"不存在"
 
-#: parser/parse_agg.c:1042
+#: parser/parse_agg.c:1072
 #, c-format
 msgid "too many grouping sets present (maximum 4096)"
 msgstr "出现过多分组集合(最大4096个)"
 
-#: parser/parse_agg.c:1191
+#: parser/parse_agg.c:1212
 #, c-format
 msgid "aggregate functions are not allowed in a recursive query's recursive term"
 msgstr "聚合函数不允许出现在递归查询的递归项中"
 
-#: parser/parse_agg.c:1384
+#: parser/parse_agg.c:1405
 #, 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:1387
+#: parser/parse_agg.c:1408
 #, c-format
 msgid "Direct arguments of an ordered-set aggregate must use only grouped columns."
 msgstr "有序聚集函数的直接参数必须使用分组列."
 
-#: parser/parse_agg.c:1392
+#: parser/parse_agg.c:1413
 #, c-format
 msgid "subquery uses ungrouped column \"%s.%s\" from outer query"
 msgstr "子查询使用了外层查询中的非分组列 \"%s.%s\" "
 
-#: parser/parse_agg.c:1556
+#: parser/parse_agg.c:1577
 #, c-format
 msgid "arguments to GROUPING must be grouping expressions of the associated query level"
 msgstr "GROUPING的参数必须是相关查询层次的分组表达式"
 
-#: parser/parse_clause.c:199
+#: parser/parse_clause.c:198
 #, c-format
 msgid "relation \"%s\" cannot be the target of a modifying statement"
 msgstr "关系\"%s\"不能作为修改语句的目标"
 
-#: parser/parse_clause.c:615 parser/parse_clause.c:643 parser/parse_func.c:2284
+#: parser/parse_clause.c:575 parser/parse_clause.c:603 parser/parse_func.c:2434
 #, c-format
 msgid "set-returning functions must appear at top level of FROM"
 msgstr "返回集合函数必须出现在FROM的顶层."
 
-#: parser/parse_clause.c:655
+#: parser/parse_clause.c:615
 #, c-format
 msgid "multiple column definition lists are not allowed for the same function"
 msgstr "多列定义列表不允许了现在相同的函数中"
 
-#: parser/parse_clause.c:688
+#: parser/parse_clause.c:648
 #, c-format
 msgid "ROWS FROM() with multiple functions cannot have a column definition list"
 msgstr "带多函数的ROWS FROM() 不能带有列定义列表"
 
-#: parser/parse_clause.c:689
+#: parser/parse_clause.c:649
 #, c-format
 msgid "Put a separate column definition list for each function inside ROWS FROM()."
 msgstr "在ROWS FROM()里为每个函数放置独立的列定义列表."
 
-#: parser/parse_clause.c:695
+#: parser/parse_clause.c:655
 #, c-format
 msgid "UNNEST() with multiple arguments cannot have a column definition list"
 msgstr "带多个参数的UNNEST()  不能带有列定义列表"
 
-#: parser/parse_clause.c:696
+#: parser/parse_clause.c:656
 #, 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:703
+#: parser/parse_clause.c:663
 #, c-format
 msgid "WITH ORDINALITY cannot be used with a column definition list"
 msgstr "WITH ORDINALITY 不能使用列定义列表"
 
-#: parser/parse_clause.c:704
+#: parser/parse_clause.c:664
 #, c-format
 msgid "Put the column definition list inside ROWS FROM()."
 msgstr "在 ROWS FROM()时旋转列定义列表."
 
-#: parser/parse_clause.c:807
+#: parser/parse_clause.c:767
 #, c-format
 msgid "only one FOR ORDINALITY column is allowed"
 msgstr "只允许一个FOR ORDINALITY列"
 
-#: parser/parse_clause.c:868
+#: parser/parse_clause.c:828
 #, c-format
 msgid "column name \"%s\" is not unique"
 msgstr "列名 \"%s\" 不是唯一的"
 
-#: parser/parse_clause.c:910
+#: parser/parse_clause.c:870
 #, c-format
 msgid "namespace name \"%s\" is not unique"
 msgstr "命名空间名称 \"%s\" 不是唯一的"
 
-#: parser/parse_clause.c:920
+#: parser/parse_clause.c:880
 #, c-format
 msgid "only one default namespace is allowed"
 msgstr "只允许一个默认命名空间"
 
-#: parser/parse_clause.c:982
+#: parser/parse_clause.c:942
 #, c-format
 msgid "tablesample method %s does not exist"
 msgstr "表采样方法\"%s\"不存在"
 
 # fe-auth.c:640
-#: parser/parse_clause.c:1004
+#: parser/parse_clause.c:964
 #, c-format
 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:1038
+#: parser/parse_clause.c:998
 #, c-format
 msgid "tablesample method %s does not support REPEATABLE"
 msgstr "表采样方法%s不支持REPEATABLE"
 
-#: parser/parse_clause.c:1208
+#: parser/parse_clause.c:1168
 #, c-format
 msgid "TABLESAMPLE clause can only be applied to tables and materialized views"
 msgstr "TABLESAMPLE子句只能被应用于表和物化视图"
 
-#: parser/parse_clause.c:1378
+#: parser/parse_clause.c:1338
 #, c-format
 msgid "column name \"%s\" appears more than once in USING clause"
 msgstr "在 USING 子句中字段名 \"%s\" 出现多次"
 
-#: parser/parse_clause.c:1393
+#: parser/parse_clause.c:1353
 #, c-format
 msgid "common column name \"%s\" appears more than once in left table"
 msgstr "共同的字段名 \"%s\" 在左边的表中出现了多次"
 
-#: parser/parse_clause.c:1402
+#: parser/parse_clause.c:1362
 #, c-format
 msgid "column \"%s\" specified in USING clause does not exist in left table"
 msgstr "USING 子句中指定的字段 \"%s\" 在左边的表中不存在"
 
-#: parser/parse_clause.c:1416
+#: parser/parse_clause.c:1376
 #, c-format
 msgid "common column name \"%s\" appears more than once in right table"
 msgstr "共同的字段名 \"%s\" 在右边的表中出现了多次"
 
-#: parser/parse_clause.c:1425
+#: parser/parse_clause.c:1385
 #, c-format
 msgid "column \"%s\" specified in USING clause does not exist in right table"
 msgstr "USING 子句中指定的字段 \"%s\" 在右边的表中不存在"
 
-#: parser/parse_clause.c:1479
+#: parser/parse_clause.c:1439
 #, 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:1788
+#: parser/parse_clause.c:1748
 #, 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:1953
+#: parser/parse_clause.c:1913
 #, 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:1982
+#: parser/parse_clause.c:1942
 #, 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:2004
+#: parser/parse_clause.c:1964
 #, c-format
 msgid "%s position %d is not in select list"
 msgstr "%s 位置%d不在select列表中."
 
-#: parser/parse_clause.c:2445
+#: parser/parse_clause.c:2405
 #, c-format
 msgid "CUBE is limited to 12 elements"
 msgstr "CUBE被限制为12个元素"
 
-#: parser/parse_clause.c:2651
+#: parser/parse_clause.c:2611
 #, c-format
 msgid "window \"%s\" is already defined"
 msgstr "已经定义窗口\"%s\""
 
-#: parser/parse_clause.c:2712
+#: parser/parse_clause.c:2672
 #, c-format
 msgid "cannot override PARTITION BY clause of window \"%s\""
 msgstr "无法覆盖窗口\"%s\"的PARTITION BY子句"
 
-#: parser/parse_clause.c:2724
+#: parser/parse_clause.c:2684
 #, c-format
 msgid "cannot override ORDER BY clause of window \"%s\""
 msgstr "无法覆盖窗口 \"%s\"的ORDER BY子句"
 
-#: parser/parse_clause.c:2754 parser/parse_clause.c:2760
+#: parser/parse_clause.c:2714 parser/parse_clause.c:2720
 #, c-format
 msgid "cannot copy window \"%s\" because it has a frame clause"
 msgstr "因为已有frame子句,无法复制窗口\"%s\""
 
-#: parser/parse_clause.c:2762
+#: parser/parse_clause.c:2722
 #, c-format
 msgid "Omit the parentheses in this OVER clause."
 msgstr "在这个 OVER 子句里忽略其父语句."
 
-#: parser/parse_clause.c:2782
+#: parser/parse_clause.c:2742
 #, c-format
 msgid "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column"
 msgstr "偏移量PRECEDING/FOLLOWING的范围只需要一个按列排序"
 
-#: parser/parse_clause.c:2805
+#: parser/parse_clause.c:2765
 #, c-format
 msgid "GROUPS mode requires an ORDER BY clause"
 msgstr "GROUPS模式需要一个ORDER BY子句"
 
-#: parser/parse_clause.c:2875
+#: parser/parse_clause.c:2835
 #, c-format
 msgid "in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list"
 msgstr "在带有DISTINCT子句的聚合函数中,ORDER BY子句后面的表达式必须在参数列表中出现"
 
-#: parser/parse_clause.c:2876
+#: parser/parse_clause.c:2836
 #, c-format
 msgid "for SELECT DISTINCT, ORDER BY expressions must appear in select list"
 msgstr "在查询列表中必须出现SELECT DISTINCT, ORDER BY表达式"
 
-#: parser/parse_clause.c:2908
+#: parser/parse_clause.c:2868
 #, c-format
 msgid "an aggregate with DISTINCT must have at least one argument"
 msgstr "带有DISTINCT关键字的聚合函数必须至少有一个参数"
 
-#: parser/parse_clause.c:2909
+#: parser/parse_clause.c:2869
 #, c-format
 msgid "SELECT DISTINCT must have at least one column"
 msgstr "SELECT DISTINCT 至少拥有一列"
 
-#: parser/parse_clause.c:2975 parser/parse_clause.c:3007
+#: parser/parse_clause.c:2935 parser/parse_clause.c:2967
 #, c-format
 msgid "SELECT DISTINCT ON expressions must match initial ORDER BY expressions"
 msgstr "表达式SELECT DISTINCT ON必须匹配初始化的ORDER BY表达式"
 
-#: parser/parse_clause.c:3085
+#: parser/parse_clause.c:3045
 #, c-format
 msgid "ASC/DESC is not allowed in ON CONFLICT clause"
 msgstr "ON CONFLICT子句中不允许ASC/DESC"
 
-#: parser/parse_clause.c:3091
+#: parser/parse_clause.c:3051
 #, c-format
 msgid "NULLS FIRST/LAST is not allowed in ON CONFLICT clause"
 msgstr "ON CONFLICT子句中不允许NULLS FIRST/LAST"
 
-#: parser/parse_clause.c:3170
+#: parser/parse_clause.c:3130
 #, c-format
 msgid "ON CONFLICT DO UPDATE requires inference specification or constraint name"
 msgstr "ON CONFLICT DO UPDATE需要推理规范或者约束名称"
 
-#: parser/parse_clause.c:3171
+#: parser/parse_clause.c:3131
 #, c-format
 msgid "For example, ON CONFLICT (column_name)."
 msgstr "例如:ON CONFLICT (column_name)。"
 
-#: parser/parse_clause.c:3182
+#: parser/parse_clause.c:3142
 #, c-format
 msgid "ON CONFLICT is not supported with system catalog tables"
 msgstr "系统目录表不支持ON CONFLICT"
 
-#: parser/parse_clause.c:3190
+#: parser/parse_clause.c:3150
 #, c-format
 msgid "ON CONFLICT is not supported on table \"%s\" used as a catalog table"
 msgstr "在用作目录表的表\"%s\"上不支持ON CONFLICT"
 
-#: parser/parse_clause.c:3333
+#: parser/parse_clause.c:3293
 #, c-format
 msgid "operator %s is not a valid ordering operator"
 msgstr "操作符%s不时有效的排序操作符"
 
-#: parser/parse_clause.c:3335
+#: parser/parse_clause.c:3295
 #, c-format
 msgid "Ordering operators must be \"<\" or \">\" members of btree operator families."
 msgstr "顺序操作符必须是btree操作符家族的成员\"<\"或\">\"."
 
-#: parser/parse_clause.c:3646
+#: parser/parse_clause.c:3606
 #, c-format
 msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s"
 msgstr "列类型 %s不支持偏移量PRECEDING/FOLLOWING的范围"
 
-#: parser/parse_clause.c:3652
+#: parser/parse_clause.c:3612
 #, c-format
 msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s and offset type %s"
 msgstr "对于列类型%s和偏移量类型%s,不支持偏移量在PRECEDING/FOLLOWING的范围"
 
-#: parser/parse_clause.c:3655
+#: parser/parse_clause.c:3615
 #, c-format
 msgid "Cast the offset value to an appropriate type."
 msgstr "将偏移值强制转换为适当的类型."
 
-#: parser/parse_clause.c:3660
+#: parser/parse_clause.c:3620
 #, c-format
 msgid "RANGE with offset PRECEDING/FOLLOWING has multiple interpretations for column type %s and offset type %s"
 msgstr "偏移量在PRECEDING/FOLLOWING的范围对列类型%s和偏移量类型%s有多个解释"
 
-#: parser/parse_clause.c:3663
+#: parser/parse_clause.c:3623
 #, c-format
 msgid "Cast the offset value to the exact intended type."
 msgstr "将偏移值强制转换为准确的预期类型."
 
 #: parser/parse_coerce.c:1022 parser/parse_coerce.c:1060
 #: parser/parse_coerce.c:1078 parser/parse_coerce.c:1093
-#: parser/parse_expr.c:2153 parser/parse_expr.c:2741 parser/parse_target.c:961
+#: parser/parse_expr.c:2235 parser/parse_expr.c:2823 parser/parse_target.c:962
 #, c-format
 msgid "cannot cast type %s to %s"
 msgstr "无法把类型 %s 转换为 %s"
@@ -15076,502 +14922,594 @@ msgstr "在递归查询中没有实现FOR UPDATE/SHARE "
 msgid "recursive reference to query \"%s\" must not appear more than once"
 msgstr "对查询\"%s\"的递归引用不能出现多次"
 
-#: parser/parse_expr.c:350
+#: parser/parse_expr.c:349
 #, c-format
 msgid "DEFAULT is not allowed in this context"
 msgstr "此上下文中不允许使用默认值"
 
-#: parser/parse_expr.c:403 parser/parse_relation.c:3287
-#: parser/parse_relation.c:3307
+#: parser/parse_expr.c:402 parser/parse_relation.c:3352
+#: parser/parse_relation.c:3372
 #, c-format
 msgid "column %s.%s does not exist"
 msgstr "字段 %s.%s 不存在"
 
-#: parser/parse_expr.c:415
+#: parser/parse_expr.c:414
 #, c-format
 msgid "column \"%s\" not found in data type %s"
 msgstr "在数据类型 %2$s 中未找到字段 \"%1$s\""
 
-#: parser/parse_expr.c:421
+#: parser/parse_expr.c:420
 #, c-format
 msgid "could not identify column \"%s\" in record data type"
 msgstr "在记录数据类型中无法确认字段 \"%s\""
 
-#: parser/parse_expr.c:427
+#: parser/parse_expr.c:426
 #, c-format
 msgid "column notation .%s applied to type %s, which is not a composite type"
 msgstr "将列符号.%s应用到类型%s(这个类型不是组合类型)"
 
-#: parser/parse_expr.c:458 parser/parse_target.c:728
+#: parser/parse_expr.c:457 parser/parse_target.c:729
 #, c-format
 msgid "row expansion via \"*\" is not supported here"
 msgstr "不支持通过\"*\"实现的记录扩展"
 
-#: parser/parse_expr.c:771 parser/parse_relation.c:689
-#: parser/parse_relation.c:789 parser/parse_target.c:1199
+#: parser/parse_expr.c:578
+#, fuzzy
+#| msgid "cannot use column references in default expression"
+msgid "cannot use column reference in DEFAULT expression"
+msgstr "在默认的表达式中不能使用字段关联"
+
+#: parser/parse_expr.c:581
+#, fuzzy
+#| msgid "cannot drop column referenced in partition key expression"
+msgid "cannot use column reference in partition bound expression"
+msgstr "无法删除分区键表达式中引用的列"
+
+#: parser/parse_expr.c:844 parser/parse_relation.c:692
+#: parser/parse_relation.c:803 parser/parse_target.c:1200
 #, c-format
 msgid "column reference \"%s\" is ambiguous"
 msgstr "字段关联 \"%s\" 是不明确的"
 
-#: parser/parse_expr.c:827 parser/parse_param.c:110 parser/parse_param.c:142
+#: parser/parse_expr.c:900 parser/parse_param.c:110 parser/parse_param.c:142
 #: parser/parse_param.c:199 parser/parse_param.c:298
 #, c-format
 msgid "there is no parameter $%d"
 msgstr "没有参数 $%d"
 
-#: parser/parse_expr.c:1070
+#: parser/parse_expr.c:1143
 #, c-format
 msgid "NULLIF requires = operator to yield boolean"
 msgstr "在NULLIF操作中需要等号操作符来产生布尔类型的返回值"
 
 #. translator: %s is name of a SQL construct, eg NULLIF
-#: parser/parse_expr.c:1076 parser/parse_expr.c:3057
+#: parser/parse_expr.c:1149 parser/parse_expr.c:3139
 #, c-format
 msgid "%s must not return a set"
 msgstr "%s 不能返回一个组合"
 
-#: parser/parse_expr.c:1524 parser/parse_expr.c:1556
+#: parser/parse_expr.c:1597 parser/parse_expr.c:1629
 #, c-format
 msgid "number of columns does not match number of values"
 msgstr "列的数量与值的数量不匹配"
 
-#: parser/parse_expr.c:1570
+#: parser/parse_expr.c:1643
 #, c-format
 msgid "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression"
 msgstr "多列更新项的源必须是sub-SELECT或 ROW()表达式"
 
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_expr.c:1764 parser/parse_expr.c:2244 parser/parse_func.c:2391
+#: parser/parse_expr.c:1837 parser/parse_expr.c:2326 parser/parse_func.c:2550
 #, c-format
 msgid "set-returning functions are not allowed in %s"
 msgstr "返回集合函数不允许出现在%s中"
 
-#: parser/parse_expr.c:1825
+#: parser/parse_expr.c:1898
 msgid "cannot use subquery in check constraint"
 msgstr "在检查约束中不可以使用子查询"
 
-#: parser/parse_expr.c:1829
+#: parser/parse_expr.c:1902
 msgid "cannot use subquery in DEFAULT expression"
 msgstr "DEFAULT表达式中不能使用子查询"
 
-#: parser/parse_expr.c:1832
+#: parser/parse_expr.c:1905
 msgid "cannot use subquery in index expression"
 msgstr "索引表达式中不能使用子查询"
 
-#: parser/parse_expr.c:1835
+#: parser/parse_expr.c:1908
 msgid "cannot use subquery in index predicate"
 msgstr "索引声明中不能使用子查询"
 
-#: parser/parse_expr.c:1838
+#: parser/parse_expr.c:1911
 msgid "cannot use subquery in transform expression"
 msgstr "在转换表达式中不能使用子查询"
 
-#: parser/parse_expr.c:1841
+#: parser/parse_expr.c:1914
 msgid "cannot use subquery in EXECUTE parameter"
 msgstr "在 EXECUTE 参数中不可以使用子查询"
 
-#: parser/parse_expr.c:1844
+#: parser/parse_expr.c:1917
 msgid "cannot use subquery in trigger WHEN condition"
 msgstr "在触发器的WHEN条件中无法使用子查询"
 
-#: parser/parse_expr.c:1847
+#: parser/parse_expr.c:1920
+#, fuzzy
+#| msgid "cannot use subquery in partition key expression"
+msgid "cannot use subquery in partition bound"
+msgstr "分区键表达式中不能使用子查询"
+
+#: parser/parse_expr.c:1923
 msgid "cannot use subquery in partition key expression"
 msgstr "分区键表达式中不能使用子查询"
 
-#: parser/parse_expr.c:1850
+#: parser/parse_expr.c:1926
 msgid "cannot use subquery in CALL argument"
 msgstr "在 CALL 参数中不可以使用子查询"
 
-#: parser/parse_expr.c:1903
+#: parser/parse_expr.c:1929
+#, fuzzy
+#| msgid "cannot use subquery in trigger WHEN condition"
+msgid "cannot use subquery in COPY FROM WHERE condition"
+msgstr "在触发器的WHEN条件中无法使用子查询"
+
+#: parser/parse_expr.c:1932
+#, fuzzy
+#| msgid "cannot use subquery in index expression"
+msgid "cannot use subquery in column generation expression"
+msgstr "索引表达式中不能使用子查询"
+
+#: parser/parse_expr.c:1985
 #, c-format
 msgid "subquery must return only one column"
 msgstr "子查询必须只能返回一个字段"
 
-#: parser/parse_expr.c:1987
+#: parser/parse_expr.c:2069
 #, c-format
 msgid "subquery has too many columns"
 msgstr "子查询有太多的字段"
 
-#: parser/parse_expr.c:1992
+#: parser/parse_expr.c:2074
 #, c-format
 msgid "subquery has too few columns"
 msgstr "子查询字段太少"
 
-#: parser/parse_expr.c:2093
+#: parser/parse_expr.c:2175
 #, c-format
 msgid "cannot determine type of empty array"
 msgstr "无法确定空数组的类型"
 
-#: parser/parse_expr.c:2094
+#: parser/parse_expr.c:2176
 #, c-format
 msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]."
 msgstr "显式地将值指派为期望类型,例如ARRAY[]::integer[]."
 
-#: parser/parse_expr.c:2108
+#: parser/parse_expr.c:2190
 #, c-format
 msgid "could not find element type for data type %s"
 msgstr "无法为数据类型%s找到成员类型"
 
-#: parser/parse_expr.c:2395
+#: parser/parse_expr.c:2477
 #, c-format
 msgid "unnamed XML attribute value must be a column reference"
 msgstr "未命名的XML属性值必须是一个列引用"
 
-#: parser/parse_expr.c:2396
+#: parser/parse_expr.c:2478
 #, c-format
 msgid "unnamed XML element value must be a column reference"
 msgstr "未命名的XML成员值必须是一个列引用"
 
-#: parser/parse_expr.c:2411
+#: parser/parse_expr.c:2493
 #, c-format
 msgid "XML attribute name \"%s\" appears more than once"
 msgstr "XML属性名称\"%s\"出现多次"
 
-#: parser/parse_expr.c:2518
+#: parser/parse_expr.c:2600
 #, c-format
 msgid "cannot cast XMLSERIALIZE result to %s"
 msgstr "无法把XMLSERIALIZE强制转换为%s"
 
-#: parser/parse_expr.c:2814 parser/parse_expr.c:3010
+#: parser/parse_expr.c:2896 parser/parse_expr.c:3092
 #, c-format
 msgid "unequal number of entries in row expressions"
 msgstr "在记录表达式中,项的数量不相等"
 
-#: parser/parse_expr.c:2824
+#: parser/parse_expr.c:2906
 #, c-format
 msgid "cannot compare rows of zero length"
 msgstr "无法比较零长度的记录"
 
-#: parser/parse_expr.c:2849
+#: parser/parse_expr.c:2931
 #, c-format
 msgid "row comparison operator must yield type boolean, not type %s"
 msgstr "行比较操作符必需返回布尔类型, 而不是类型%s"
 
-#: parser/parse_expr.c:2856
+#: parser/parse_expr.c:2938
 #, c-format
 msgid "row comparison operator must not return a set"
 msgstr "行比较操作符不能返回一个集合"
 
-#: parser/parse_expr.c:2915 parser/parse_expr.c:2956
+#: parser/parse_expr.c:2997 parser/parse_expr.c:3038
 #, c-format
 msgid "could not determine interpretation of row comparison operator %s"
 msgstr "无法确定行比较操作符%s的说明"
 
-#: parser/parse_expr.c:2917
+#: parser/parse_expr.c:2999
 #, c-format
 msgid "Row comparison operators must be associated with btree operator families."
 msgstr "记录比较表达式必须与btree操作符相关联."
 
-#: parser/parse_expr.c:2958
+#: parser/parse_expr.c:3040
 #, c-format
 msgid "There are multiple equally-plausible candidates."
 msgstr "有多个相等的类似候选."
 
-#: parser/parse_expr.c:3051
+#: parser/parse_expr.c:3133
 #, c-format
 msgid "IS DISTINCT FROM requires = operator to yield boolean"
 msgstr "IS DISTINCT FROM操作中需要等号来产生布尔类型的值"
 
-#: parser/parse_expr.c:3370 parser/parse_expr.c:3388
+#: parser/parse_expr.c:3452 parser/parse_expr.c:3470
 #, c-format
 msgid "operator precedence change: %s is now lower precedence than %s"
 msgstr "操作符优先级改变:%s现在比%s的优先级低"
 
-#: parser/parse_func.c:185
+#: parser/parse_func.c:195
 #, c-format
 msgid "argument name \"%s\" used more than once"
 msgstr "参数名称\"%s\"被使用多次"
 
-#: parser/parse_func.c:196
+#: parser/parse_func.c:206
 #, c-format
 msgid "positional argument cannot follow named argument"
 msgstr "已确定位置的参数不能在已命名参数的后面"
 
-#: parser/parse_func.c:278 parser/parse_func.c:2184
+#: parser/parse_func.c:288 parser/parse_func.c:2253
 #, c-format
 msgid "%s is not a procedure"
 msgstr "%s 不是过程"
 
-#: parser/parse_func.c:282
+#: parser/parse_func.c:292
 #, c-format
 msgid "To call a function, use SELECT."
 msgstr "要调用函数,请使用SELECT."
 
-#: parser/parse_func.c:288
+#: parser/parse_func.c:298
 #, c-format
 msgid "%s is a procedure"
 msgstr "%s 是一个过程"
 
-#: parser/parse_func.c:292
+#: parser/parse_func.c:302
 #, c-format
 msgid "To call a procedure, use CALL."
 msgstr "要调用过程,请使用CALL"
 
-#: parser/parse_func.c:306
+#: parser/parse_func.c:316
 #, c-format
 msgid "%s(*) specified, but %s is not an aggregate function"
 msgstr "指定了 %s(*), 但是 %s 不是一个聚合函数"
 
-#: parser/parse_func.c:313
+#: parser/parse_func.c:323
 #, c-format
 msgid "DISTINCT specified, but %s is not an aggregate function"
 msgstr "指定了 DISTINCT, 但是 %s 不是一个聚合函数"
 
-#: parser/parse_func.c:319
+#: parser/parse_func.c:329
 #, c-format
 msgid "WITHIN GROUP specified, but %s is not an aggregate function"
 msgstr "指定了 WITHIN GROUP , 但是 %s 不是一个聚合函数"
 
-#: parser/parse_func.c:325
+#: parser/parse_func.c:335
 #, c-format
 msgid "ORDER BY specified, but %s is not an aggregate function"
 msgstr "指定了ORDER BY语句, 但是%s不是一个聚合函数"
 
-#: parser/parse_func.c:331
+#: parser/parse_func.c:341
 #, c-format
 msgid "FILTER specified, but %s is not an aggregate function"
 msgstr "FILTER指定了, 但是 %s 不是一个聚合函数"
 
-#: parser/parse_func.c:337
+#: parser/parse_func.c:347
 #, c-format
 msgid "OVER specified, but %s is not a window function nor an aggregate function"
 msgstr "指定了OVER关键字,但是%s不是窗口函数或聚合函数"
 
-#: parser/parse_func.c:375
+#: parser/parse_func.c:385
 #, c-format
 msgid "WITHIN GROUP is required for ordered-set aggregate %s"
 msgstr "WITHIN GROUP在有序聚集函数 %s中是必需的"
 
-#: parser/parse_func.c:381
+#: parser/parse_func.c:391
 #, c-format
 msgid "OVER is not supported for ordered-set aggregate %s"
 msgstr "OVER不能用于有序聚集函数 %s中"
 
-#: parser/parse_func.c:412 parser/parse_func.c:441
+#: parser/parse_func.c:422 parser/parse_func.c:451
 #, c-format
 msgid "There is an ordered-set aggregate %s, but it requires %d direct arguments, not %d."
 msgstr "存在有序聚集函数 %s, 它需要 %d 个直接参数, 不是 %d个."
 
-#: parser/parse_func.c:466
+#: parser/parse_func.c:476
 #, c-format
 msgid "To use the hypothetical-set aggregate %s, the number of hypothetical direct arguments (here %d) must match the number of ordering columns (here %d)."
 msgstr "使用判定集聚集函数 %s, 直接参数的个数 (这里是 %d) 必须与有序列的数目相匹配 (这里是 %d)."
 
-#: parser/parse_func.c:480
+#: parser/parse_func.c:490
 #, c-format
 msgid "There is an ordered-set aggregate %s, but it requires at least %d direct arguments."
 msgstr "存在有序集聚集函数%s, 它至少需要%d个直接参数."
 
-#: parser/parse_func.c:499
+#: parser/parse_func.c:509
 #, c-format
 msgid "%s is not an ordered-set aggregate, so it cannot have WITHIN GROUP"
 msgstr "%s 不是有序集聚集函数, 因此它不能使用 WITHIN GROUP"
 
-#: parser/parse_func.c:512
+#: parser/parse_func.c:522
 #, c-format
 msgid "window function %s requires an OVER clause"
 msgstr "窗口函数 %s需要一个OVER子句"
 
-#: parser/parse_func.c:519
+#: parser/parse_func.c:529
 #, c-format
 msgid "window function %s cannot have WITHIN GROUP"
 msgstr "窗口函数%s不能使用WITHIN GROUP子句"
 
-#: parser/parse_func.c:548
+#: parser/parse_func.c:558
 #, c-format
 msgid "procedure %s is not unique"
 msgstr "过程 %s 不是唯一的"
 
-#: parser/parse_func.c:551
+#: parser/parse_func.c:561
 #, c-format
 msgid "Could not choose a best candidate procedure. You might need to add explicit type casts."
 msgstr "无法选择最佳候选过程. 您也许需要增加显式的类型转换."
 
-#: parser/parse_func.c:557
+#: parser/parse_func.c:567
 #, c-format
 msgid "function %s is not unique"
 msgstr "函数 %s 不是唯一的"
 
-#: parser/parse_func.c:560
+#: parser/parse_func.c:570
 #, c-format
 msgid "Could not choose a best candidate function. You might need to add explicit type casts."
 msgstr "无法选择最佳候选函数. 你也许需要增加明确的类型转换."
 
-#: parser/parse_func.c:599
+#: parser/parse_func.c:609
 #, c-format
 msgid "No aggregate function matches the given name and argument types. Perhaps you misplaced ORDER BY; ORDER BY must appear after all regular arguments of the aggregate."
 msgstr "没有匹配指定名称和参数类型的函数. 您可能将ORDER BY子句放在了不正确的位置;ORDER BY子句必须出现在所有聚合函数的常规参数的后面."
 
-#: parser/parse_func.c:607 parser/parse_func.c:2172
+#: parser/parse_func.c:617 parser/parse_func.c:2296
 #, c-format
 msgid "procedure %s does not exist"
 msgstr "过程 %s 不存在"
 
-#: parser/parse_func.c:610
+#: parser/parse_func.c:620
 #, c-format
 msgid "No procedure matches the given name and argument types. You might need to add explicit type casts."
 msgstr "没有匹配指定名称和参数类型的过程. 您也许需要增加明确的类型转换."
 
-#: parser/parse_func.c:619
+#: parser/parse_func.c:629
 #, c-format
 msgid "No function matches the given name and argument types. You might need to add explicit type casts."
 msgstr "没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换."
 
-#: parser/parse_func.c:721
+#: parser/parse_func.c:731
 #, c-format
 msgid "VARIADIC argument must be an array"
 msgstr "参数VARIADIC 必须是一个数组"
 
-#: parser/parse_func.c:773 parser/parse_func.c:837
+#: parser/parse_func.c:783 parser/parse_func.c:847
 #, c-format
 msgid "%s(*) must be used to call a parameterless aggregate function"
 msgstr "%s(*)必须用来调用没有参数的聚合函数"
 
-#: parser/parse_func.c:780
+#: parser/parse_func.c:790
 #, c-format
 msgid "aggregates cannot return sets"
 msgstr "聚合函数可以不返回集合"
 
-#: parser/parse_func.c:795
+#: parser/parse_func.c:805
 #, c-format
 msgid "aggregates cannot use named arguments"
 msgstr "聚合函数不能使用已命名的参数"
 
-#: parser/parse_func.c:827
+#: parser/parse_func.c:837
 #, c-format
 msgid "DISTINCT is not implemented for window functions"
 msgstr "对于窗口函数,没有实现DISTINCT"
 
-#: parser/parse_func.c:847
+#: parser/parse_func.c:857
 #, c-format
 msgid "aggregate ORDER BY is not implemented for window functions"
 msgstr "对于窗口函数,没有实现在按照聚合函数进行ORDER BY操作的功能"
 
-#: parser/parse_func.c:856
+#: parser/parse_func.c:866
 #, c-format
 msgid "FILTER is not implemented for non-aggregate window functions"
 msgstr "FILTER在非聚合窗口函数里并未被实现"
 
-#: parser/parse_func.c:865
+#: parser/parse_func.c:875
 #, c-format
 msgid "window function calls cannot contain set-returning function calls"
 msgstr "窗口函数调用不能包含返回集合函数的调用"
 
-#: parser/parse_func.c:873
+#: parser/parse_func.c:883
 #, c-format
 msgid "window functions cannot return sets"
 msgstr "窗口函数不能返回集合"
 
-#: parser/parse_func.c:2059
+#: parser/parse_func.c:2134 parser/parse_func.c:2325
+#, c-format
+msgid "could not find a function named \"%s\""
+msgstr "无法找到函数名\"%s\""
+
+#: parser/parse_func.c:2148 parser/parse_func.c:2343
 #, c-format
 msgid "function name \"%s\" is not unique"
 msgstr "函数名 \"%s\" 不是唯一的"
 
-#: parser/parse_func.c:2061
+#: parser/parse_func.c:2150 parser/parse_func.c:2345
 #, c-format
 msgid "Specify the argument list to select the function unambiguously."
 msgstr "指定参数列表以明确选择函数"
 
-#: parser/parse_func.c:2071
-#, c-format
-msgid "could not find a function named \"%s\""
-msgstr "无法找到函数名\"%s\""
+#: parser/parse_func.c:2194
+#, fuzzy, c-format
+#| msgid "aggregates cannot have more than %d argument"
+#| msgid_plural "aggregates cannot have more than %d arguments"
+msgid "procedures cannot have more than %d argument"
+msgid_plural "procedures cannot have more than %d arguments"
+msgstr[0] "聚集函数的参数不能多于%d个"
 
-#: parser/parse_func.c:2153
+#: parser/parse_func.c:2243
 #, c-format
 msgid "%s is not a function"
 msgstr "%s 不是一个函数"
 
-#: parser/parse_func.c:2167
+#: parser/parse_func.c:2263
+#, c-format
+msgid "function %s is not an aggregate"
+msgstr "函数 \"%s\" 不是一个聚合函数"
+
+#: parser/parse_func.c:2291
 #, c-format
 msgid "could not find a procedure named \"%s\""
 msgstr "找不到名为\"%s\"的过程"
 
 # describe.c:641
-#: parser/parse_func.c:2198
+#: parser/parse_func.c:2305
 #, c-format
 msgid "could not find an aggregate named \"%s\""
 msgstr "找不到名为\"%s\"的聚合"
 
-#: parser/parse_func.c:2203
+#: parser/parse_func.c:2310
 #, c-format
 msgid "aggregate %s(*) does not exist"
 msgstr "聚合函数 %s(*) 不存在"
 
-#: parser/parse_func.c:2208
+#: parser/parse_func.c:2315
 #, c-format
 msgid "aggregate %s does not exist"
 msgstr "聚合函数 %s(*) 不存在"
 
-#: parser/parse_func.c:2221
-#, c-format
-msgid "function %s is not an aggregate"
-msgstr "函数 \"%s\" 不是一个聚合函数"
+#: parser/parse_func.c:2350
+#, fuzzy, c-format
+#| msgid "procedure %s is not unique"
+msgid "procedure name \"%s\" is not unique"
+msgstr "过程 %s 不是唯一的"
+
+#: parser/parse_func.c:2352
+#, fuzzy, c-format
+#| msgid "Specify the argument list to select the function unambiguously."
+msgid "Specify the argument list to select the procedure unambiguously."
+msgstr "指定参数列表以明确选择函数"
+
+#: parser/parse_func.c:2357
+#, fuzzy, c-format
+#| msgid "namespace name \"%s\" is not unique"
+msgid "aggregate name \"%s\" is not unique"
+msgstr "命名空间名称 \"%s\" 不是唯一的"
+
+#: parser/parse_func.c:2359
+#, fuzzy, c-format
+#| msgid "Specify the argument list to select the function unambiguously."
+msgid "Specify the argument list to select the aggregate unambiguously."
+msgstr "指定参数列表以明确选择函数"
+
+#: parser/parse_func.c:2364
+#, fuzzy, c-format
+#| msgid "function name \"%s\" is not unique"
+msgid "routine name \"%s\" is not unique"
+msgstr "函数名 \"%s\" 不是唯一的"
 
-#: parser/parse_func.c:2271
+#: parser/parse_func.c:2366
+#, fuzzy, c-format
+#| msgid "Specify the argument list to select the function unambiguously."
+msgid "Specify the argument list to select the routine unambiguously."
+msgstr "指定参数列表以明确选择函数"
+
+#: parser/parse_func.c:2421
 msgid "set-returning functions are not allowed in JOIN conditions"
 msgstr "返回集合函数不允许出现在JOIN条件中"
 
-#: parser/parse_func.c:2292
+#: parser/parse_func.c:2442
 msgid "set-returning functions are not allowed in policy expressions"
 msgstr "策略表达式中不允许返回集合函数"
 
-#: parser/parse_func.c:2308
+#: parser/parse_func.c:2458
 msgid "set-returning functions are not allowed in window definitions"
 msgstr "返回集合函数不允许出现在窗口定义中"
 
-#: parser/parse_func.c:2346
+#: parser/parse_func.c:2496
 msgid "set-returning functions are not allowed in check constraints"
 msgstr "返回集合函数不允许出现在check约束中"
 
-#: parser/parse_func.c:2350
+#: parser/parse_func.c:2500
 msgid "set-returning functions are not allowed in DEFAULT expressions"
 msgstr "返回集合函数不允许出现在DEFAULT表达式中"
 
-#: parser/parse_func.c:2353
+#: parser/parse_func.c:2503
 msgid "set-returning functions are not allowed in index expressions"
 msgstr "在返回集合函数不允许出现在索引表达式中"
 
-#: parser/parse_func.c:2356
+#: parser/parse_func.c:2506
 msgid "set-returning functions are not allowed in index predicates"
 msgstr "返回函数集合不允许出现在索引判定子句中"
 
-#: parser/parse_func.c:2359
+#: parser/parse_func.c:2509
 msgid "set-returning functions are not allowed in transform expressions"
 msgstr "返回集合函数不允许出现在转换表达式中"
 
-#: parser/parse_func.c:2362
+#: parser/parse_func.c:2512
 msgid "set-returning functions are not allowed in EXECUTE parameters"
 msgstr "返回集合函数不允许出现在EXECUTE参数中"
 
-#: parser/parse_func.c:2365
+#: parser/parse_func.c:2515
 msgid "set-returning functions are not allowed in trigger WHEN conditions"
 msgstr "返回集合函数不允许出现在触发器WHEN条件中"
 
-#: parser/parse_func.c:2368
+#: parser/parse_func.c:2518
+#, fuzzy
+#| msgid "set-returning functions are not allowed in partition key expressions"
+msgid "set-returning functions are not allowed in partition bound"
+msgstr "在返回集合函数不允许出现在分区键表达式中"
+
+#: parser/parse_func.c:2521
 msgid "set-returning functions are not allowed in partition key expressions"
 msgstr "在返回集合函数不允许出现在分区键表达式中"
 
-#: parser/parse_func.c:2371
+#: parser/parse_func.c:2524
 msgid "set-returning functions are not allowed in CALL arguments"
 msgstr "返回集合函数不允许出现在CALL参数中"
 
+#: parser/parse_func.c:2527
+#, fuzzy
+#| msgid "set-returning functions are not allowed in JOIN conditions"
+msgid "set-returning functions are not allowed in COPY FROM WHERE conditions"
+msgstr "返回集合函数不允许出现在JOIN条件中"
+
+#: parser/parse_func.c:2530
+#, fuzzy
+#| msgid "set-returning functions are not allowed in policy expressions"
+msgid "set-returning functions are not allowed in column generation expressions"
+msgstr "策略表达式中不允许返回集合函数"
+
 #: parser/parse_node.c:87
 #, c-format
 msgid "target lists can have at most %d entries"
 msgstr "目标列表最多可以有 %d 个字段"
 
-#: parser/parse_node.c:256
+#: parser/parse_node.c:257
 #, c-format
 msgid "cannot subscript type %s because it is not an array"
 msgstr "无法下标类型 %s, 因为它不是一个数组"
 
-#: parser/parse_node.c:358 parser/parse_node.c:395
+#: parser/parse_node.c:363 parser/parse_node.c:400
 #, c-format
 msgid "array subscript must have type integer"
 msgstr "数组下标必须为整数类型"
 
-#: parser/parse_node.c:426
+#: parser/parse_node.c:431
 #, c-format
 msgid "array assignment requires type %s but expression is of type %s"
 msgstr "数组分配要求类型%s,但是表达式属于类型%s"
@@ -15637,159 +15575,166 @@ msgstr "操作ANY/ALL (array)需要不返回集合的操作符"
 msgid "inconsistent types deduced for parameter $%d"
 msgstr "对于参数$%d,推断出不一致的类型"
 
-#: parser/parse_relation.c:176
+#: parser/parse_relation.c:179
 #, c-format
 msgid "table reference \"%s\" is ambiguous"
 msgstr "表关联 \"%s\" 是不明确的"
 
-#: parser/parse_relation.c:220
+#: parser/parse_relation.c:223
 #, c-format
 msgid "table reference %u is ambiguous"
 msgstr "表关联 %u 是不明确的"
 
-#: parser/parse_relation.c:419
+#: parser/parse_relation.c:422
 #, c-format
 msgid "table name \"%s\" specified more than once"
 msgstr "表名 \"%s\" 被指定多次"
 
-#: parser/parse_relation.c:446 parser/parse_relation.c:3227
+#: parser/parse_relation.c:449 parser/parse_relation.c:3292
 #, c-format
 msgid "invalid reference to FROM-clause entry for table \"%s\""
 msgstr "对于表 \"%s\"的FROM子句项的引用无效 "
 
-#: parser/parse_relation.c:449 parser/parse_relation.c:3232
+#: parser/parse_relation.c:452 parser/parse_relation.c:3297
 #, c-format
 msgid "There is an entry for table \"%s\", but it cannot be referenced from this part of the query."
 msgstr "这里有一个对于表\"%s\"的项,但是不能从查询的这个部分中引用."
 
-#: parser/parse_relation.c:451
+#: parser/parse_relation.c:454
 #, c-format
 msgid "The combining JOIN type must be INNER or LEFT for a LATERAL reference."
 msgstr "在LATERAL引用里,组合的JOIN必须是INNER或LEFT JOIN类型."
 
-#: parser/parse_relation.c:727
+#: parser/parse_relation.c:730
 #, c-format
 msgid "system column \"%s\" reference in check constraint is invalid"
 msgstr "check约束中的系统列\"%s\"参照是无效的"
 
-#: parser/parse_relation.c:1086 parser/parse_relation.c:1366
-#: parser/parse_relation.c:1936
+#: parser/parse_relation.c:741
+#, fuzzy, c-format
+#| msgid "cannot use system column \"%s\" in partition key"
+msgid "cannot use system column \"%s\" in column generation expression"
+msgstr "无法在分区键中使用系统列\"%s\""
+
+#: parser/parse_relation.c:1100 parser/parse_relation.c:1404
+#: parser/parse_relation.c:1985
 #, c-format
 msgid "table \"%s\" has %d columns available but %d columns specified"
 msgstr "表 \"%s\" 有 %d 个有效字段, 但指定了 %d 个字段"
 
-#: parser/parse_relation.c:1173
+#: parser/parse_relation.c:1187
 #, 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:1175
+#: parser/parse_relation.c:1189
 #, c-format
 msgid "Use WITH RECURSIVE, or re-order the WITH items to remove forward references."
 msgstr "使用WITH RECURSIVE或重新排序WITH成员来删除前向引用."
 
-#: parser/parse_relation.c:1486
+#: parser/parse_relation.c:1525
 #, c-format
 msgid "a column definition list is only allowed for functions returning \"record\""
 msgstr "一个字段定义列表只允许返回 \"record\" 的函数"
 
-#: parser/parse_relation.c:1495
+#: parser/parse_relation.c:1534
 #, c-format
 msgid "a column definition list is required for functions returning \"record\""
 msgstr "一个字段定义列表需要返回 \"record\" 的函数"
 
-#: parser/parse_relation.c:1575
+#: parser/parse_relation.c:1620
 #, c-format
 msgid "function \"%s\" in FROM has unsupported return type %s"
 msgstr "FROM 中的函数 \"%s\" 不支持返回类型 %s"
 
-#: parser/parse_relation.c:1764
+#: parser/parse_relation.c:1811
 #, c-format
 msgid "VALUES lists \"%s\" have %d columns available but %d columns specified"
 msgstr "VALUES列表\"%s\"中有%d列有效, 但指定了%d个列."
 
-#: parser/parse_relation.c:1819
+#: parser/parse_relation.c:1867
 #, c-format
 msgid "joins can have at most %d columns"
 msgstr "连接最多可以有 %d 个字段"
 
-#: parser/parse_relation.c:1909
+#: parser/parse_relation.c:1958
 #, c-format
 msgid "WITH query \"%s\" does not have a RETURNING clause"
 msgstr "WITH 查询 \"%s\" 没有RETURNING子句"
 
-#: parser/parse_relation.c:2846 parser/parse_relation.c:2884
-#: parser/parse_relation.c:3011
+#: parser/parse_relation.c:2899 parser/parse_relation.c:2937
+#: parser/parse_relation.c:2946 parser/parse_relation.c:3072
+#: parser/parse_relation.c:3082
 #, c-format
 msgid "column %d of relation \"%s\" does not exist"
 msgstr "在关系\"%2$s\"中的列 %1$d 不存在"
 
-#: parser/parse_relation.c:3230
+#: parser/parse_relation.c:3295
 #, c-format
 msgid "Perhaps you meant to reference the table alias \"%s\"."
 msgstr "可能您是要引用表的化名 \"%s\"."
 
-#: parser/parse_relation.c:3238
+#: parser/parse_relation.c:3303
 #, c-format
 msgid "missing FROM-clause entry for table \"%s\""
 msgstr "对于表\"%s\",丢失FROM子句项"
 
-#: parser/parse_relation.c:3290
+#: parser/parse_relation.c:3355
 #, c-format
 msgid "Perhaps you meant to reference the column \"%s.%s\"."
 msgstr "也许您想要引用列\"%s.%s\"。"
 
-#: parser/parse_relation.c:3292
+#: parser/parse_relation.c:3357
 #, c-format
 msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query."
 msgstr "表\"%2$s\"中存在一列,名为\"%1$s\", 但是这个表名并不能从这部分查询里引用."
 
-#: parser/parse_relation.c:3309
+#: parser/parse_relation.c:3374
 #, c-format
 msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"."
 msgstr "也许您想要引用列\"%s.%s\"或者列\"%s.%s\"。"
 
-#: parser/parse_target.c:483 parser/parse_target.c:790
+#: parser/parse_target.c:484 parser/parse_target.c:791
 #, c-format
 msgid "cannot assign to system column \"%s\""
 msgstr "不能指定系统字段名 \"%s\""
 
-#: parser/parse_target.c:511
+#: parser/parse_target.c:512
 #, c-format
 msgid "cannot set an array element to DEFAULT"
 msgstr "不能设置一个数组元素为 DEFAULT"
 
-#: parser/parse_target.c:516
+#: parser/parse_target.c:517
 #, c-format
 msgid "cannot set a subfield to DEFAULT"
 msgstr "不能设置子字段为 DEFAULT"
 
-#: parser/parse_target.c:585
+#: parser/parse_target.c:586
 #, c-format
 msgid "column \"%s\" is of type %s but expression is of type %s"
 msgstr "字段 \"%s\" 的类型为 %s, 但表达式的类型为 %s"
 
-#: parser/parse_target.c:774
+#: parser/parse_target.c:775
 #, c-format
 msgid "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type"
 msgstr "无法指定列 \"%2$s\" 的字段 \"%1$s\", 因为它的类型 %3$s 不是一个复合类型"
 
-#: parser/parse_target.c:783
+#: parser/parse_target.c:784
 #, c-format
 msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s"
 msgstr "无法给字段 \"%2$s\" 的数据域 \"%1$s\" 赋值, 因为在数据类型 %3$s 中没有此列"
 
-#: parser/parse_target.c:860
+#: parser/parse_target.c:861
 #, c-format
 msgid "array assignment to \"%s\" requires type %s but expression is of type %s"
 msgstr "将数组分配给\"%s\" 时需要类型%s,但是表达式属于类型%s"
 
-#: parser/parse_target.c:870
+#: parser/parse_target.c:871
 #, c-format
 msgid "subfield \"%s\" is of type %s but expression is of type %s"
 msgstr "子字段 \"%s\" 的类型为 %s, 但表达式的类型为 %s"
 
-#: parser/parse_target.c:1289
+#: parser/parse_target.c:1290
 #, c-format
 msgid "SELECT * with no tables specified is not valid"
 msgstr "SELECT * 没有指定表是无效的"
@@ -15809,7 +15754,7 @@ msgstr "不合适的 %%TYPE 关联 (名字中太多点符号): %s"
 msgid "type reference %s converted to %s"
 msgstr "类型关联 %s 转换为 %s"
 
-#: parser/parse_type.c:261 parser/parse_type.c:838 utils/cache/typcache.c:373
+#: parser/parse_type.c:261 parser/parse_type.c:840 utils/cache/typcache.c:374
 #, c-format
 msgid "type \"%s\" is only a shell"
 msgstr "类型 \"%s\" 只是一个 shell"
@@ -15829,394 +15774,422 @@ msgstr "类型修改器必须是简单的常量或标示符."
 msgid "invalid type name \"%s\""
 msgstr "无效的类型名字 \"%s\""
 
-#: parser/parse_utilcmd.c:272
+#: parser/parse_utilcmd.c:263
 #, c-format
 msgid "cannot create partitioned table as inheritance child"
 msgstr "无法将分区表创建为继承子级"
 
-#: parser/parse_utilcmd.c:448
+#: parser/parse_utilcmd.c:426
 #, 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:571
+#: parser/parse_utilcmd.c:550
 #, c-format
 msgid "array of serial is not implemented"
 msgstr "未实现序号数组"
 
-#: parser/parse_utilcmd.c:647 parser/parse_utilcmd.c:659
+#: parser/parse_utilcmd.c:627 parser/parse_utilcmd.c:639
 #, 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:671
+#: parser/parse_utilcmd.c:651
 #, c-format
 msgid "multiple default values specified for column \"%s\" of table \"%s\""
 msgstr "对表 \"%2$s\" 的字段 \"%1$s\" 指定了多遍默认值"
 
-#: parser/parse_utilcmd.c:688
+#: parser/parse_utilcmd.c:668
 #, c-format
 msgid "identity columns are not supported on typed tables"
 msgstr "类型表不支持标识列"
 
-#: parser/parse_utilcmd.c:692
+#: parser/parse_utilcmd.c:672
 #, c-format
 msgid "identity columns are not supported on partitions"
 msgstr "分区上不支持标识列"
 
-#: parser/parse_utilcmd.c:701
+#: parser/parse_utilcmd.c:681
 #, c-format
 msgid "multiple identity specifications for column \"%s\" of table \"%s\""
 msgstr "表\"%2$s\" 的的字段 \"%1$s\"的多个标识规范"
 
-#: parser/parse_utilcmd.c:724 parser/parse_utilcmd.c:823
+#: parser/parse_utilcmd.c:700
+#, fuzzy, c-format
+#| msgid "identity columns are not supported on typed tables"
+msgid "generated columns are not supported on typed tables"
+msgstr "类型表不支持标识列"
+
+#: parser/parse_utilcmd.c:704
+#, fuzzy, c-format
+#| msgid "identity columns are not supported on partitions"
+msgid "generated columns are not supported on partitions"
+msgstr "分区上不支持标识列"
+
+#: parser/parse_utilcmd.c:709
+#, fuzzy, c-format
+#| msgid "multiple default values specified for column \"%s\" of table \"%s\""
+msgid "multiple generation clauses specified for column \"%s\" of table \"%s\""
+msgstr "对表 \"%2$s\" 的字段 \"%1$s\" 指定了多遍默认值"
+
+#: parser/parse_utilcmd.c:727 parser/parse_utilcmd.c:842
 #, c-format
 msgid "primary key constraints are not supported on foreign tables"
 msgstr "外部表上不支持主键约束"
 
-#: parser/parse_utilcmd.c:733 parser/parse_utilcmd.c:833
+#: parser/parse_utilcmd.c:736 parser/parse_utilcmd.c:852
 #, c-format
 msgid "unique constraints are not supported on foreign tables"
 msgstr "外部表上不支持唯一约束"
 
-#: parser/parse_utilcmd.c:750 parser/parse_utilcmd.c:863
-#, c-format
-msgid "foreign key constraints are not supported on foreign tables"
-msgstr "外部表上不支持外键约束"
-
-#: parser/parse_utilcmd.c:778
+#: parser/parse_utilcmd.c:781
 #, c-format
 msgid "both default and identity specified for column \"%s\" of table \"%s\""
 msgstr "对表 \"%2$s\" 的字段 \"%1$s\" 指定了默认值和标识"
 
-#: parser/parse_utilcmd.c:843
+#: parser/parse_utilcmd.c:789
+#, fuzzy, c-format
+#| msgid "both default and identity specified for column \"%s\" of table \"%s\""
+msgid "both default and generation expression specified for column \"%s\" of table \"%s\""
+msgstr "对表 \"%2$s\" 的字段 \"%1$s\" 指定了默认值和标识"
+
+#: parser/parse_utilcmd.c:797
+#, fuzzy, c-format
+#| msgid "both default and identity specified for column \"%s\" of table \"%s\""
+msgid "both identity and generation expression specified for column \"%s\" of table \"%s\""
+msgstr "对表 \"%2$s\" 的字段 \"%1$s\" 指定了默认值和标识"
+
+#: parser/parse_utilcmd.c:862
 #, c-format
 msgid "exclusion constraints are not supported on foreign tables"
 msgstr "外部表上不支持排除约束"
 
-#: parser/parse_utilcmd.c:849
+#: parser/parse_utilcmd.c:868
 #, c-format
 msgid "exclusion constraints are not supported on partitioned tables"
 msgstr "分区表上不支持排除约束"
 
-#: parser/parse_utilcmd.c:913
+#: parser/parse_utilcmd.c:932
 #, c-format
 msgid "LIKE is not supported for creating foreign tables"
 msgstr "LIKE不能用于创建外部表"
 
-#: parser/parse_utilcmd.c:1516 parser/parse_utilcmd.c:1623
+#: parser/parse_utilcmd.c:1064
+#, fuzzy, c-format
+#| msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"."
+msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"."
+msgstr "约束\"%s\"包含到表\"%s\"的整行引用."
+
+#: parser/parse_utilcmd.c:1563 parser/parse_utilcmd.c:1670
 #, c-format
 msgid "Index \"%s\" contains a whole-row table reference."
 msgstr "索引 \"%s\" 包含一个整行表引用."
 
-#: parser/parse_utilcmd.c:1973
+#: parser/parse_utilcmd.c:2036
 #, c-format
 msgid "cannot use an existing index in CREATE TABLE"
 msgstr " CREATE TABLE语句不能使用一个已存在的索引"
 
-#: parser/parse_utilcmd.c:1993
+#: parser/parse_utilcmd.c:2056
 #, c-format
 msgid "index \"%s\" is already associated with a constraint"
 msgstr "index \"%s\"与某个约束已经关联"
 
-#: parser/parse_utilcmd.c:2001
-#, c-format
-msgid "index \"%s\" does not belong to table \"%s\""
-msgstr "索引 \"%s\" 不属于表\"%s\""
-
-#: parser/parse_utilcmd.c:2008
+#: parser/parse_utilcmd.c:2071
 #, c-format
 msgid "index \"%s\" is not valid"
 msgstr "索引 \"%s\" 无效"
 
-#: parser/parse_utilcmd.c:2014
+#: parser/parse_utilcmd.c:2077
 #, c-format
 msgid "\"%s\" is not a unique index"
 msgstr "\"%s\" 不是唯一索引"
 
-#: parser/parse_utilcmd.c:2015 parser/parse_utilcmd.c:2022
-#: parser/parse_utilcmd.c:2029 parser/parse_utilcmd.c:2101
+#: parser/parse_utilcmd.c:2078 parser/parse_utilcmd.c:2085
+#: parser/parse_utilcmd.c:2092 parser/parse_utilcmd.c:2163
 #, c-format
 msgid "Cannot create a primary key or unique constraint using such an index."
 msgstr "无法使用该索引创建主键或唯一约束."
 
-#: parser/parse_utilcmd.c:2021
+#: parser/parse_utilcmd.c:2084
 #, c-format
 msgid "index \"%s\" contains expressions"
 msgstr "索引 \"%s\" 含有表达式"
 
-#: parser/parse_utilcmd.c:2028
+#: parser/parse_utilcmd.c:2091
 #, c-format
 msgid "\"%s\" is a partial index"
 msgstr "\"%s\" 是一个部分索引"
 
-#: parser/parse_utilcmd.c:2040
+#: parser/parse_utilcmd.c:2103
 #, c-format
 msgid "\"%s\" is a deferrable index"
 msgstr "\"%s\" 不是一个延迟索引"
 
-#: parser/parse_utilcmd.c:2041
+#: parser/parse_utilcmd.c:2104
 #, c-format
 msgid "Cannot create a non-deferrable constraint using a deferrable index."
 msgstr "无法为使用可延迟索引的约束创建非可延迟约束"
 
-#: parser/parse_utilcmd.c:2100
-#, c-format
-msgid "index \"%s\" does not have default sorting behavior"
+#: parser/parse_utilcmd.c:2162
+#, fuzzy, c-format
+#| msgid "index \"%s\" does not have default sorting behavior"
+msgid "index \"%s\" column number %d does not have default sorting behavior"
 msgstr "索引 \"%s\"没有缺省的排序行为"
 
-#: parser/parse_utilcmd.c:2249
+#: parser/parse_utilcmd.c:2319
 #, c-format
 msgid "column \"%s\" appears twice in primary key constraint"
 msgstr "在主键约束中字段 \"%s\" 出现了两次"
 
-#: parser/parse_utilcmd.c:2255
+#: parser/parse_utilcmd.c:2325
 #, c-format
 msgid "column \"%s\" appears twice in unique constraint"
 msgstr "字段 \"%s\" 在唯一约束中出现两次"
 
-#: parser/parse_utilcmd.c:2578
+#: parser/parse_utilcmd.c:2676
 #, c-format
 msgid "index expressions and predicates can refer only to the table being indexed"
 msgstr "索引表达式和声明只能指向要建索引的表"
 
-#: parser/parse_utilcmd.c:2624
+#: parser/parse_utilcmd.c:2722
 #, c-format
 msgid "rules on materialized views are not supported"
 msgstr "物化视图不能使用规则(rules)"
 
-#: parser/parse_utilcmd.c:2685
+#: parser/parse_utilcmd.c:2785
 #, c-format
 msgid "rule WHERE condition cannot contain references to other relations"
 msgstr "规则的WHERE条件不能包含到其它关系的引用"
 
-#: parser/parse_utilcmd.c:2757
+#: parser/parse_utilcmd.c:2859
 #, 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:2775 parser/parse_utilcmd.c:2874
-#: rewrite/rewriteHandler.c:498 rewrite/rewriteManip.c:1015
+#: parser/parse_utilcmd.c:2877 parser/parse_utilcmd.c:2976
+#: rewrite/rewriteHandler.c:501 rewrite/rewriteManip.c:1015
 #, c-format
 msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented"
 msgstr "条件工具语句 UNION/INTERSECT/EXCEPT 没有实现"
 
-#: parser/parse_utilcmd.c:2793
+#: parser/parse_utilcmd.c:2895
 #, c-format
 msgid "ON SELECT rule cannot use OLD"
 msgstr "规则ON SELECT不能使用关键词OLD"
 
-#: parser/parse_utilcmd.c:2797
+#: parser/parse_utilcmd.c:2899
 #, c-format
 msgid "ON SELECT rule cannot use NEW"
 msgstr "规则ON SELECT不能使用关键词NEW"
 
-#: parser/parse_utilcmd.c:2806
+#: parser/parse_utilcmd.c:2908
 #, c-format
 msgid "ON INSERT rule cannot use OLD"
 msgstr "规则ON INSERT不能使用关键词OLD"
 
-#: parser/parse_utilcmd.c:2812
+#: parser/parse_utilcmd.c:2914
 #, c-format
 msgid "ON DELETE rule cannot use NEW"
 msgstr "规则ON DELETE不能使用关键词NEW"
 
-#: parser/parse_utilcmd.c:2840
+#: parser/parse_utilcmd.c:2942
 #, c-format
 msgid "cannot refer to OLD within WITH query"
 msgstr "WITH查询中无法引用OLD"
 
-#: parser/parse_utilcmd.c:2847
+#: parser/parse_utilcmd.c:2949
 #, c-format
 msgid "cannot refer to NEW within WITH query"
 msgstr "WITH 查询无法引用NEW"
 
-#: parser/parse_utilcmd.c:3285
+#: parser/parse_utilcmd.c:3407
 #, c-format
 msgid "misplaced DEFERRABLE clause"
 msgstr "DEFERRABLE 子句位置错误"
 
-#: parser/parse_utilcmd.c:3290 parser/parse_utilcmd.c:3305
+#: parser/parse_utilcmd.c:3412 parser/parse_utilcmd.c:3427
 #, c-format
 msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed"
 msgstr "不允许多个 DEFERRABLE/NOT DEFERRABLE 子句"
 
-#: parser/parse_utilcmd.c:3300
+#: parser/parse_utilcmd.c:3422
 #, c-format
 msgid "misplaced NOT DEFERRABLE clause"
 msgstr "NOT DEFERRABLE 子句位置错误"
 
-#: parser/parse_utilcmd.c:3321
+#: parser/parse_utilcmd.c:3435 parser/parse_utilcmd.c:3461 gram.y:5529
+#, c-format
+msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
+msgstr "约束声明 INITIALLY DEFERRED 必须为 DEFERRABLE"
+
+#: parser/parse_utilcmd.c:3443
 #, c-format
 msgid "misplaced INITIALLY DEFERRED clause"
 msgstr "INITIALLY DEFERRED 子句位置错误"
 
-#: parser/parse_utilcmd.c:3326 parser/parse_utilcmd.c:3352
+#: parser/parse_utilcmd.c:3448 parser/parse_utilcmd.c:3474
 #, c-format
 msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed"
 msgstr "不允许多个 INITIALLY IMMEDIATE/DEFERRED 子句"
 
-#: parser/parse_utilcmd.c:3347
+#: parser/parse_utilcmd.c:3469
 #, c-format
 msgid "misplaced INITIALLY IMMEDIATE clause"
 msgstr "INITIALLY IMMEDIATE 子句位置错误"
 
-#: parser/parse_utilcmd.c:3538
+#: parser/parse_utilcmd.c:3660
 #, c-format
 msgid "CREATE specifies a schema (%s) different from the one being created (%s)"
 msgstr "CREATE 指定的模式 (%s) 和将要创建的 (%s) 不同"
 
-#: parser/parse_utilcmd.c:3572
+#: parser/parse_utilcmd.c:3694
 #, c-format
 msgid "table \"%s\" is not partitioned"
 msgstr "表\"%s\"未分区"
 
-#: parser/parse_utilcmd.c:3579
+#: parser/parse_utilcmd.c:3701
 #, c-format
 msgid "index \"%s\" is not partitioned"
 msgstr "索引 \"%s\" 未分区"
 
-#: parser/parse_utilcmd.c:3613
+#: parser/parse_utilcmd.c:3735
 #, c-format
 msgid "a hash-partitioned table may not have a default partition"
 msgstr "哈希分区表可能没有默认分区"
 
-#: parser/parse_utilcmd.c:3630
+#: parser/parse_utilcmd.c:3752
 #, c-format
 msgid "invalid bound specification for a hash partition"
 msgstr "哈希分区的绑定规范无效"
 
-#: parser/parse_utilcmd.c:3636 partitioning/partbounds.c:2127
+#: parser/parse_utilcmd.c:3758 partitioning/partbounds.c:2802
 #, c-format
 msgid "modulus for hash partition must be a positive integer"
 msgstr "哈希分区的模数必须是正整数"
 
-#: parser/parse_utilcmd.c:3643 partitioning/partbounds.c:2135
+#: parser/parse_utilcmd.c:3765 partitioning/partbounds.c:2810
 #, c-format
 msgid "remainder for hash partition must be less than modulus"
 msgstr "哈希分区的余数必须小于模数"
 
-#: parser/parse_utilcmd.c:3655
+#: parser/parse_utilcmd.c:3778
 #, c-format
 msgid "invalid bound specification for a list partition"
 msgstr "列表分区的绑定规范无效"
 
-#: parser/parse_utilcmd.c:3711
+#: parser/parse_utilcmd.c:3831
 #, c-format
 msgid "invalid bound specification for a range partition"
 msgstr "范围分区的绑定规范无效"
 
-#: parser/parse_utilcmd.c:3717
+#: parser/parse_utilcmd.c:3837
 #, c-format
 msgid "FROM must specify exactly one value per partitioning column"
 msgstr "FROM必须为每个分区列指定一个值"
 
-#: parser/parse_utilcmd.c:3721
+#: parser/parse_utilcmd.c:3841
 #, c-format
 msgid "TO must specify exactly one value per partitioning column"
 msgstr "TO必须为每个分区列指定一个值"
 
-#: parser/parse_utilcmd.c:3768 parser/parse_utilcmd.c:3782
+#: parser/parse_utilcmd.c:3955
 #, c-format
 msgid "cannot specify NULL in range bound"
 msgstr "无法在范围绑定中指定 NULL"
 
-#: parser/parse_utilcmd.c:3829
+#: parser/parse_utilcmd.c:4004
 #, c-format
 msgid "every bound following MAXVALUE must also be MAXVALUE"
 msgstr "MAXVALUE后面的每个绑定也必须是MAXVALUE"
 
-#: parser/parse_utilcmd.c:3836
+#: parser/parse_utilcmd.c:4011
 #, c-format
 msgid "every bound following MINVALUE must also be MINVALUE"
 msgstr "MINVALUE后面的每个绑定也必须是MINVALUE"
 
-#: parser/parse_utilcmd.c:3867 parser/parse_utilcmd.c:3879
+#: parser/parse_utilcmd.c:4046
+#, fuzzy, c-format
+#| msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)"
+msgid "collation of partition bound value for column \"%s\" does not match partition key collation \"%s\""
+msgstr "分区列数(%d)与提供的分区键数(%d)不匹配"
+
+#: parser/parse_utilcmd.c:4063
 #, c-format
 msgid "specified value cannot be cast to type %s for column \"%s\""
 msgstr "不能将指定的值强制转换为列\"%2$s\"的类型%1$s"
 
-#: parser/parse_utilcmd.c:3881
-#, c-format
-msgid "The cast requires a non-immutable conversion."
-msgstr "强制转换需要不可变的转换."
-
-#: parser/parse_utilcmd.c:3882
-#, c-format
-msgid "Try putting the literal value in single quotes."
-msgstr "尝试将文字值放在单引号中."
-
 #: parser/scansup.c:204
 #, c-format
 msgid "identifier \"%s\" will be truncated to \"%s\""
 msgstr "标识符\"%s\"将会被截断为\"%s\""
 
-#: partitioning/partbounds.c:331
+#: partitioning/partbounds.c:959
 #, c-format
 msgid "partition \"%s\" conflicts with existing default partition \"%s\""
 msgstr "分区\"%s\"与现有默认分区\"%s\"冲突"
 
-#: partitioning/partbounds.c:390
+#: partitioning/partbounds.c:1018
 #, c-format
 msgid "every hash partition modulus must be a factor of the next larger modulus"
 msgstr "每个散列分区模必须是下一个较大模的因子"
 
-#: partitioning/partbounds.c:486
+#: partitioning/partbounds.c:1114
 #, c-format
 msgid "empty range bound specified for partition \"%s\""
 msgstr "为分区\"%s\"指定的空范围绑定"
 
-#: partitioning/partbounds.c:488
+#: partitioning/partbounds.c:1116
 #, c-format
 msgid "Specified lower bound %s is greater than or equal to upper bound %s."
 msgstr "指定的下限%s大于或等于上限%s"
 
-#: partitioning/partbounds.c:585
+#: partitioning/partbounds.c:1213
 #, c-format
 msgid "partition \"%s\" would overlap partition \"%s\""
 msgstr "分区 \"%s\"会重叠分区\"%s\""
 
-#: partitioning/partbounds.c:685
+#: partitioning/partbounds.c:1311
 #, c-format
 msgid "skipped scanning foreign table \"%s\" which is a partition of default partition \"%s\""
 msgstr "跳过扫描外部表\"%s\",该表是默认分区 \"%s\"的分区"
 
-#: partitioning/partbounds.c:724
+#: partitioning/partbounds.c:1348
 #, c-format
 msgid "updated partition constraint for default partition \"%s\" would be violated by some row"
 msgstr "某些行将违反默认分区\"%s\"的更新分区约束"
 
-#: partitioning/partbounds.c:2131
+#: partitioning/partbounds.c:2806
 #, c-format
 msgid "remainder for hash partition must be a non-negative integer"
 msgstr "哈希分区的余数必须是非负整数"
 
-#: partitioning/partbounds.c:2158
+#: partitioning/partbounds.c:2833
 #, c-format
 msgid "\"%s\" is not a hash partitioned table"
 msgstr "\"%s\" 不是哈希分区表"
 
-#: partitioning/partbounds.c:2169 partitioning/partbounds.c:2285
+#: partitioning/partbounds.c:2844 partitioning/partbounds.c:2961
 #, c-format
 msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)"
 msgstr "分区列数(%d)与提供的分区键数(%d)不匹配"
 
-#: partitioning/partbounds.c:2189 partitioning/partbounds.c:2221
+#: partitioning/partbounds.c:2866 partitioning/partbounds.c:2898
 #, c-format
 msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\""
 msgstr "分区键的列%d的类型为\"%s\",但提供的值的类型为\"%s\""
 
-#: port/pg_shmem.c:196 port/sysv_shmem.c:196
+#: port/pg_shmem.c:216 port/sysv_shmem.c:216
 #, c-format
 msgid "could not create shared memory segment: %m"
 msgstr "无法创建共享内存段: %m"
 
-#: port/pg_shmem.c:197 port/sysv_shmem.c:197
+#: port/pg_shmem.c:217 port/sysv_shmem.c:217
 #, c-format
 msgid "Failed system call was shmget(key=%lu, size=%zu, 0%o)."
 msgstr "系统调用shmget(key=%lu, size=%zu, 0%o) 执行失败."
 
-#: port/pg_shmem.c:201 port/sysv_shmem.c:201
+#: port/pg_shmem.c:221 port/sysv_shmem.c:221
 #, c-format
 msgid ""
 "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter, or possibly that it is less than your kernel's SHMMIN parameter.\n"
@@ -16225,7 +16198,7 @@ msgstr ""
 "这个错误通常表示PostgreSQL所请求的共享内存段超过了内核中的SHMMAX参数值,或者小于内核中的SHMMIN参数值。\n"
 "PostgreSQL文档包含了关于如何配置共享内存的更多信息."
 
-#: port/pg_shmem.c:208 port/sysv_shmem.c:208
+#: port/pg_shmem.c:228 port/sysv_shmem.c:228
 #, c-format
 msgid ""
 "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMALL parameter.  You might need to reconfigure the kernel with larger SHMALL.\n"
@@ -16234,7 +16207,7 @@ msgstr ""
 "这个错误通常表示PostgreSQL所请求的共享内存段超过了内核中设定的SHMALL参数值。您可以重新配置内核, 使用更大的SHMALL参数值.\n"
 "PostgreSQL文档包含了关于如何配置共享内存的更多信息."
 
-#: port/pg_shmem.c:214 port/sysv_shmem.c:214
+#: port/pg_shmem.c:234 port/sysv_shmem.c:234
 #, c-format
 msgid ""
 "This error does *not* mean that you have run out of disk space.  It occurs either if all available shared memory IDs have been taken, in which case you need to raise the SHMMNI parameter in your kernel, or because the system's overall limit for shared memory has been reached.\n"
@@ -16243,22 +16216,32 @@ msgstr ""
 "这个错误不表示您系统上磁盘空间已经用尽.原因既有可能是系统上所有的有效共享内存ID不存在了,这样需要在内核中升高SHMMNI参数的值,或者是因为已到达系统最大的共享内存限制.如果无法增加共享内存的上限值.\n"
 "在PostgreSQL文档中包含了关于如何配置共享内存的更多信息."
 
-#: port/pg_shmem.c:505 port/sysv_shmem.c:505
+#: port/pg_shmem.c:577 port/sysv_shmem.c:577
 #, c-format
 msgid "could not map anonymous shared memory: %m"
 msgstr "无法映射匿名共享内存: %m"
 
-#: port/pg_shmem.c:507 port/sysv_shmem.c:507
+#: port/pg_shmem.c:579 port/sysv_shmem.c:579
 #, c-format
 msgid "This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently %zu bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections."
 msgstr "这个错误通常表示PostgreSQL所请求的共享内存段超过了可用内存总量或者交换空间或者巨型页大小。为减少所请求空间的大小(当前是%zu字节),减少PostgreSQL文档包含了关于如何配置共享内存的更多信息."
 
-#: port/pg_shmem.c:573 port/sysv_shmem.c:573
+#: port/pg_shmem.c:639 port/sysv_shmem.c:639
 #, c-format
 msgid "huge pages not supported on this platform"
 msgstr "此平台不支持巨型页"
 
-#: port/pg_shmem.c:668 port/sysv_shmem.c:668
+#: port/pg_shmem.c:700 port/sysv_shmem.c:700 utils/init/miscinit.c:1069
+#, c-format
+msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use"
+msgstr "先前存在的共享内存块 (key %lu, ID %lu) 仍在使用中"
+
+#: port/pg_shmem.c:703 port/sysv_shmem.c:703 utils/init/miscinit.c:1071
+#, c-format
+msgid "Terminate any old server processes associated with data directory \"%s\"."
+msgstr ""
+
+#: port/pg_shmem.c:754 port/sysv_shmem.c:754
 #, c-format
 msgid "could not stat data directory \"%s\": %m"
 msgstr "无法取目录 \"%s\" 状态: %m"
@@ -16313,17 +16296,17 @@ msgstr "生成崩溃转储文件\"%s\"\n"
 msgid "could not write crash dump to file \"%s\": error code %lu\n"
 msgstr "无法写入崩溃转储文件 \"%s\": 错误码 %lu\n"
 
-#: port/win32/signal.c:194
+#: port/win32/signal.c:196
 #, c-format
 msgid "could not create signal listener pipe for PID %d: error code %lu"
 msgstr "无法为进程PID %d 创建信号监听管道: 错误码为 %lu"
 
-#: port/win32/signal.c:274 port/win32/signal.c:306
+#: port/win32/signal.c:277 port/win32/signal.c:309
 #, c-format
 msgid "could not create signal listener pipe: error code %lu; retrying\n"
 msgstr "无法创建信号监听管道: 错误码 %lu; 重试\n"
 
-#: port/win32/signal.c:317
+#: port/win32/signal.c:320
 #, c-format
 msgid "could not create signal dispatch thread: error code %lu\n"
 msgstr "无法创建信号分发线程: 错误码 %lu\n"
@@ -16348,119 +16331,119 @@ msgstr "无法对信号灯(semaphore)解锁: 错误代码 %lu"
 msgid "could not try-lock semaphore: error code %lu"
 msgstr "无法进行锁定信号灯(semaphore)的尝试: 错误代码 %lu"
 
-#: port/win32_shmem.c:122 port/win32_shmem.c:130 port/win32_shmem.c:142
-#: port/win32_shmem.c:157
+#: port/win32_shmem.c:144 port/win32_shmem.c:152 port/win32_shmem.c:164
+#: port/win32_shmem.c:179
 #, c-format
 msgid "could not enable Lock Pages in Memory user right: error code %lu"
 msgstr "无法在内存中启用锁定页用户权限: 错误码%lu"
 
-#: port/win32_shmem.c:123 port/win32_shmem.c:131 port/win32_shmem.c:143
-#: port/win32_shmem.c:158
+#: port/win32_shmem.c:145 port/win32_shmem.c:153 port/win32_shmem.c:165
+#: port/win32_shmem.c:180
 #, c-format
 msgid "Failed system call was %s."
 msgstr "失败的系统调用是%s."
 
-#: port/win32_shmem.c:153
+#: port/win32_shmem.c:175
 #, c-format
 msgid "could not enable Lock Pages in Memory user right"
 msgstr "无法在内存中启用锁定页用户权限"
 
-#: port/win32_shmem.c:154
+#: port/win32_shmem.c:176
 #, c-format
 msgid "Assign Lock Pages in Memory user right to the Windows user account which runs PostgreSQL."
 msgstr "为运行PostgreSQL的Windows用户帐户分配内存中的锁定页用户权限."
 
-#: port/win32_shmem.c:210
+#: port/win32_shmem.c:233
 #, c-format
 msgid "the processor does not support large pages"
 msgstr "处理器不支持大页面"
 
-#: port/win32_shmem.c:212 port/win32_shmem.c:217
+#: port/win32_shmem.c:235 port/win32_shmem.c:240
 #, c-format
 msgid "disabling huge pages"
 msgstr "禁用大页面"
 
-#: port/win32_shmem.c:279 port/win32_shmem.c:315 port/win32_shmem.c:333
+#: port/win32_shmem.c:302 port/win32_shmem.c:338 port/win32_shmem.c:356
 #, c-format
 msgid "could not create shared memory segment: error code %lu"
 msgstr "无法创建共享内存段: 错误码%lu"
 
-#: port/win32_shmem.c:280
+#: port/win32_shmem.c:303
 #, c-format
 msgid "Failed system call was CreateFileMapping(size=%zu, name=%s)."
 msgstr "系统调用CreateFileMapping(size=%zu, name=%s)执行失败."
 
-#: port/win32_shmem.c:305
+#: port/win32_shmem.c:328
 #, c-format
 msgid "pre-existing shared memory block is still in use"
 msgstr "已存在的共享内存块仍在使用中"
 
-#: port/win32_shmem.c:306
+#: port/win32_shmem.c:329
 #, c-format
 msgid "Check if there are any old server processes still running, and terminate them."
 msgstr "检查原先的服务器进程是否仍在运行,如果是的话请终止这些进程."
 
-#: port/win32_shmem.c:316
+#: port/win32_shmem.c:339
 #, c-format
 msgid "Failed system call was DuplicateHandle."
 msgstr "系统调用DuplicateHandle执行失败"
 
-#: port/win32_shmem.c:334
+#: port/win32_shmem.c:357
 #, c-format
 msgid "Failed system call was MapViewOfFileEx."
 msgstr "系统调用MapViewOfFileEx执行失败."
 
-#: postmaster/autovacuum.c:406
+#: postmaster/autovacuum.c:405
 #, c-format
 msgid "could not fork autovacuum launcher process: %m"
 msgstr "无法派生autovacuum启动进程: %m"
 
-#: postmaster/autovacuum.c:442
+#: postmaster/autovacuum.c:441
 #, c-format
 msgid "autovacuum launcher started"
 msgstr "已启动autovacuum"
 
-#: postmaster/autovacuum.c:832
+#: postmaster/autovacuum.c:819
 #, c-format
 msgid "autovacuum launcher shutting down"
 msgstr "正在关闭autovacuum启动进程"
 
-#: postmaster/autovacuum.c:1494
+#: postmaster/autovacuum.c:1481
 #, c-format
 msgid "could not fork autovacuum worker process: %m"
 msgstr "无法派生autovacuum工作进程: %m"
 
-#: postmaster/autovacuum.c:1700
+#: postmaster/autovacuum.c:1687
 #, c-format
 msgid "autovacuum: processing database \"%s\""
 msgstr "autovacuum: 正在处理数据库 \"%s\""
 
-#: postmaster/autovacuum.c:2269
+#: postmaster/autovacuum.c:2256
 #, c-format
 msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\""
 msgstr "autovacuum: 正在删除遗留的临时表\"%s.%s.%s\""
 
-#: postmaster/autovacuum.c:2498
+#: postmaster/autovacuum.c:2485
 #, c-format
 msgid "automatic vacuum of table \"%s.%s.%s\""
 msgstr "对表\"%s.%s.%s\"进行自动清理"
 
-#: postmaster/autovacuum.c:2501
+#: postmaster/autovacuum.c:2488
 #, c-format
 msgid "automatic analyze of table \"%s.%s.%s\""
 msgstr "对表\"%s.%s.%s\"进行自动分析"
 
-#: postmaster/autovacuum.c:2694
+#: postmaster/autovacuum.c:2681
 #, c-format
 msgid "processing work entry for relation \"%s.%s.%s\""
 msgstr "正在处理关系\"%s.%s.%s\"的工作项"
 
-#: postmaster/autovacuum.c:3273
+#: postmaster/autovacuum.c:3262
 #, c-format
 msgid "autovacuum not started because of misconfiguration"
 msgstr "因为配制错误,而无法启动autovacuum"
 
-#: postmaster/autovacuum.c:3274
+#: postmaster/autovacuum.c:3263
 #, c-format
 msgid "Enable the \"track_counts\" option."
 msgstr "启用选项\"track_counts\" "
@@ -16526,332 +16509,345 @@ msgstr[0] "当前设置里最多可以注册%d个后台工作进程."
 msgid "Consider increasing the configuration parameter \"max_worker_processes\"."
 msgstr "考虑增大配置参数 \"max_worker_processes\"的值."
 
-#: postmaster/checkpointer.c:464
+#: postmaster/checkpointer.c:458
 #, 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:468
+#: postmaster/checkpointer.c:462
 #, c-format
 msgid "Consider increasing the configuration parameter \"max_wal_size\"."
 msgstr "考虑增大配置参数 \"max_wal_size\"的值。"
 
-#: postmaster/checkpointer.c:1082
+#: postmaster/checkpointer.c:1081
 #, c-format
 msgid "checkpoint request failed"
 msgstr "检查点请求失败"
 
-#: postmaster/checkpointer.c:1083
+#: postmaster/checkpointer.c:1082
 #, c-format
 msgid "Consult recent messages in the server log for details."
 msgstr "详细信息请参考服务器日志."
 
-#: postmaster/checkpointer.c:1278
+#: postmaster/checkpointer.c:1267
 #, c-format
 msgid "compacted fsync request queue from %d entries to %d entries"
 msgstr "将fsync请求队列从%d压缩至%d项"
 
-#: postmaster/pgarch.c:148
+#: postmaster/pgarch.c:159
 #, c-format
 msgid "could not fork archiver: %m"
 msgstr "无法 fork archiver: %m"
 
-#: postmaster/pgarch.c:456
+#: postmaster/pgarch.c:470
 #, c-format
 msgid "archive_mode enabled, yet archive_command is not set"
 msgstr "已启用归档模式参数archive_mode,但是还没有设置参数archive_command is"
 
-#: postmaster/pgarch.c:484
+#: postmaster/pgarch.c:492
+#, fuzzy, c-format
+#| msgid "could not create archive status file \"%s\": %m"
+msgid "removed orphan archive status file \"%s\""
+msgstr "无法创建归档状态文件 \"%s\": %m"
+
+#: postmaster/pgarch.c:502
+#, fuzzy, c-format
+#| msgid "archiving write-ahead log file \"%s\" failed too many times, will try again later"
+msgid "removal of orphan archive status file \"%s\" failed too many times, will try again later"
+msgstr "归档预写日志文件 \"%s\" 多次失败, 将会重试"
+
+#: postmaster/pgarch.c:538
 #, c-format
 msgid "archiving write-ahead log file \"%s\" failed too many times, will try again later"
 msgstr "归档预写日志文件 \"%s\" 多次失败, 将会重试"
 
-#: postmaster/pgarch.c:585
+#: postmaster/pgarch.c:639
 #, c-format
 msgid "archive command failed with exit code %d"
 msgstr "归档命令执行失败,退出代码为 %d"
 
-#: postmaster/pgarch.c:587 postmaster/pgarch.c:597 postmaster/pgarch.c:604
-#: postmaster/pgarch.c:610 postmaster/pgarch.c:619
+#: postmaster/pgarch.c:641 postmaster/pgarch.c:651 postmaster/pgarch.c:657
+#: postmaster/pgarch.c:666
 #, c-format
 msgid "The failed archive command was: %s"
 msgstr "执行失败的归档命令是: %s"
 
-#: postmaster/pgarch.c:594
+#: postmaster/pgarch.c:648
 #, c-format
 msgid "archive command was terminated by exception 0x%X"
 msgstr "归档命令被异常 0x%X 终止"
 
-#: postmaster/pgarch.c:596 postmaster/postmaster.c:3567
+#: postmaster/pgarch.c:650 postmaster/postmaster.c:3669
 #, c-format
 msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value."
 msgstr "关于对16进制值的描述, 参见C语言的引用文件 \"ntstatus.h\" "
 
-#: postmaster/pgarch.c:601
+#: postmaster/pgarch.c:655
 #, c-format
 msgid "archive command was terminated by signal %d: %s"
 msgstr "归档命令被信号%d终止:%s"
 
-#: postmaster/pgarch.c:608
-#, c-format
-msgid "archive command was terminated by signal %d"
-msgstr "归档命令被信号%d终止"
-
-#: postmaster/pgarch.c:617
+#: postmaster/pgarch.c:664
 #, c-format
 msgid "archive command exited with unrecognized status %d"
 msgstr "归档命令已退出, 未知状态 %d"
 
-#: postmaster/pgstat.c:395
+#: postmaster/pgstat.c:396
 #, c-format
 msgid "could not resolve \"localhost\": %s"
 msgstr "无法解析 \"localhost\": %s"
 
-#: postmaster/pgstat.c:418
+#: postmaster/pgstat.c:419
 #, c-format
 msgid "trying another address for the statistics collector"
 msgstr "为统计信息收集器尝试另一个地址"
 
-#: postmaster/pgstat.c:427
+#: postmaster/pgstat.c:428
 #, c-format
 msgid "could not create socket for statistics collector: %m"
 msgstr "无法为统计收集器创建套接字: %m"
 
-#: postmaster/pgstat.c:439
+#: postmaster/pgstat.c:440
 #, c-format
 msgid "could not bind socket for statistics collector: %m"
 msgstr "无法绑定统计收集器的套接字: %m"
 
-#: postmaster/pgstat.c:450
+#: postmaster/pgstat.c:451
 #, c-format
 msgid "could not get address of socket for statistics collector: %m"
 msgstr "无法获得统计收集器的套接字地址: %m"
 
-#: postmaster/pgstat.c:466
+#: postmaster/pgstat.c:467
 #, c-format
 msgid "could not connect socket for statistics collector: %m"
 msgstr "无法联接统计收集器的套接字: %m"
 
-#: postmaster/pgstat.c:487
+#: postmaster/pgstat.c:488
 #, c-format
 msgid "could not send test message on socket for statistics collector: %m"
 msgstr "无法为统计收集器在套接字上发送测试信息: %m"
 
-#: postmaster/pgstat.c:513
+#: postmaster/pgstat.c:514
 #, c-format
 msgid "select() failed in statistics collector: %m"
 msgstr "在统计收集器中 select() 失败: %m"
 
-#: postmaster/pgstat.c:528
+#: postmaster/pgstat.c:529
 #, c-format
 msgid "test message did not get through on socket for statistics collector"
 msgstr "统计收集器的测试消息没有通过套接字"
 
-#: postmaster/pgstat.c:543
+#: postmaster/pgstat.c:544
 #, c-format
 msgid "could not receive test message on socket for statistics collector: %m"
 msgstr "无法为统计收集器在套接字上接收测试信息: %m"
 
-#: postmaster/pgstat.c:553
+#: postmaster/pgstat.c:554
 #, c-format
 msgid "incorrect test message transmission on socket for statistics collector"
 msgstr "统计收集器在套接字上不正确的测试消息传输"
 
-#: postmaster/pgstat.c:576
+#: postmaster/pgstat.c:577
 #, c-format
 msgid "could not set statistics collector socket to nonblocking mode: %m"
 msgstr "无法把统计收集器的套接字设置为非阻塞模式: %m"
 
-#: postmaster/pgstat.c:615
+#: postmaster/pgstat.c:616
 #, c-format
 msgid "disabling statistics collector for lack of working socket"
 msgstr "当缺乏可用套接字时取消统计收集器"
 
-#: postmaster/pgstat.c:762
+#: postmaster/pgstat.c:763
 #, c-format
 msgid "could not fork statistics collector: %m"
 msgstr "无法派生 (fork) 统计收集器: %m"
 
-#: postmaster/pgstat.c:1342
+#: postmaster/pgstat.c:1347
 #, c-format
 msgid "unrecognized reset target: \"%s\""
 msgstr "未识别的重置目标:\"%s\""
 
-#: postmaster/pgstat.c:1343
+#: postmaster/pgstat.c:1348
 #, c-format
 msgid "Target must be \"archiver\" or \"bgwriter\"."
 msgstr "目标必须是\"archiver\"或\"bgwriter\"."
 
-#: postmaster/pgstat.c:4362
+#: postmaster/pgstat.c:4534
 #, c-format
 msgid "could not read statistics message: %m"
 msgstr "无法读取统计信息: %m"
 
-#: postmaster/pgstat.c:4694 postmaster/pgstat.c:4851
+#: postmaster/pgstat.c:4875 postmaster/pgstat.c:5032
 #, c-format
 msgid "could not open temporary statistics file \"%s\": %m"
 msgstr "无法打开临时统计文件 \"%s\": %m"
 
-#: postmaster/pgstat.c:4761 postmaster/pgstat.c:4896
+#: postmaster/pgstat.c:4942 postmaster/pgstat.c:5077
 #, c-format
 msgid "could not write temporary statistics file \"%s\": %m"
 msgstr "无法写临时统计文件 \"%s\": %m"
 
-#: postmaster/pgstat.c:4770 postmaster/pgstat.c:4905
+#: postmaster/pgstat.c:4951 postmaster/pgstat.c:5086
 #, c-format
 msgid "could not close temporary statistics file \"%s\": %m"
 msgstr "无法关闭临时统计文件 \"%s\": %m"
 
-#: postmaster/pgstat.c:4778 postmaster/pgstat.c:4913
+#: postmaster/pgstat.c:4959 postmaster/pgstat.c:5094
 #, c-format
 msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m"
 msgstr "无法把临时统计文件 \"%s\" 重命名为 \"%s\": %m"
 
-#: postmaster/pgstat.c:5002 postmaster/pgstat.c:5208 postmaster/pgstat.c:5361
+#: postmaster/pgstat.c:5183 postmaster/pgstat.c:5389 postmaster/pgstat.c:5542
 #, c-format
 msgid "could not open statistics file \"%s\": %m"
 msgstr "无法打开统计文件 \"%s\": %m"
 
-#: postmaster/pgstat.c:5014 postmaster/pgstat.c:5024 postmaster/pgstat.c:5045
-#: postmaster/pgstat.c:5067 postmaster/pgstat.c:5082 postmaster/pgstat.c:5145
-#: postmaster/pgstat.c:5220 postmaster/pgstat.c:5240 postmaster/pgstat.c:5258
-#: postmaster/pgstat.c:5274 postmaster/pgstat.c:5292 postmaster/pgstat.c:5308
-#: postmaster/pgstat.c:5373 postmaster/pgstat.c:5385 postmaster/pgstat.c:5397
-#: postmaster/pgstat.c:5422 postmaster/pgstat.c:5444
+#: postmaster/pgstat.c:5195 postmaster/pgstat.c:5205 postmaster/pgstat.c:5226
+#: postmaster/pgstat.c:5248 postmaster/pgstat.c:5263 postmaster/pgstat.c:5326
+#: postmaster/pgstat.c:5401 postmaster/pgstat.c:5421 postmaster/pgstat.c:5439
+#: postmaster/pgstat.c:5455 postmaster/pgstat.c:5473 postmaster/pgstat.c:5489
+#: postmaster/pgstat.c:5554 postmaster/pgstat.c:5566 postmaster/pgstat.c:5578
+#: postmaster/pgstat.c:5603 postmaster/pgstat.c:5625
 #, c-format
 msgid "corrupted statistics file \"%s\""
 msgstr "统计文件损坏\"%s\""
 
-#: postmaster/pgstat.c:5573
+#: postmaster/pgstat.c:5754
 #, c-format
 msgid "using stale statistics instead of current ones because stats collector is not responding"
 msgstr "由于统计收集器无响应而使用旧的统计信息来代替当前的统计信息"
 
-#: postmaster/pgstat.c:5900
+#: postmaster/pgstat.c:6081
 #, c-format
 msgid "database hash table corrupted during cleanup --- abort"
 msgstr "清理过程中数据库散列表毁坏 --- 终止"
 
-#: postmaster/postmaster.c:717
+#: postmaster/postmaster.c:712
 #, c-format
 msgid "%s: invalid argument for option -f: \"%s\"\n"
 msgstr "%s: 选项-f的参数无效: \"%s\"\n"
 
-#: postmaster/postmaster.c:803
+#: postmaster/postmaster.c:798
 #, c-format
 msgid "%s: invalid argument for option -t: \"%s\"\n"
 msgstr "%s: -t选项的参数无效: \"%s\"\n"
 
-#: postmaster/postmaster.c:854
+#: postmaster/postmaster.c:849
 #, c-format
 msgid "%s: invalid argument: \"%s\"\n"
 msgstr "%s: 无效参数: \"%s\"\n"
 
-#: postmaster/postmaster.c:896
-#, c-format
-msgid "%s: superuser_reserved_connections (%d) plus max_wal_senders (%d) must be less than max_connections (%d)\n"
+#: postmaster/postmaster.c:891
+#, fuzzy, c-format
+#| msgid "%s: superuser_reserved_connections (%d) plus max_wal_senders (%d) must be less than max_connections (%d)\n"
+msgid "%s: superuser_reserved_connections (%d) must be less than max_connections (%d)\n"
 msgstr "%s: superuser_reserved_connections (%d) 加上 max_wal_senders (%d) 必须低于max_connections (%d)\n"
 
-#: postmaster/postmaster.c:903
+#: postmaster/postmaster.c:898
 #, c-format
 msgid "WAL archival cannot be enabled when wal_level is \"minimal\""
 msgstr "当wal_level是\"minimal\"时无法启用WAL归档"
 
-#: postmaster/postmaster.c:906
+#: postmaster/postmaster.c:901
 #, c-format
 msgid "WAL streaming (max_wal_senders > 0) requires wal_level \"replica\" or \"logical\""
 msgstr "WAL 流复制(max_wal_senders > 0)要求将 wal_level 设置为 \"replica\" 或 \"logical\""
 
-#: postmaster/postmaster.c:914
+#: postmaster/postmaster.c:909
 #, c-format
 msgid "%s: invalid datetoken tables, please fix\n"
 msgstr "%s: 无效的 datetoken 表, 请修复\n"
 
-#: postmaster/postmaster.c:1028 postmaster/postmaster.c:1126
-#: utils/init/miscinit.c:1555
+#: postmaster/postmaster.c:998
+#, c-format
+msgid "starting %s"
+msgstr ""
+
+#: postmaster/postmaster.c:1027 postmaster/postmaster.c:1125
+#: utils/init/miscinit.c:1551
 #, c-format
 msgid "invalid list syntax in parameter \"%s\""
 msgstr "在参数\"%s\"中列表语法无效"
 
-#: postmaster/postmaster.c:1059
+#: postmaster/postmaster.c:1058
 #, c-format
 msgid "could not create listen socket for \"%s\""
 msgstr "无法为 \"%s\" 创建监听套接字"
 
 # fe-connect.c:891
-#: postmaster/postmaster.c:1065
+#: postmaster/postmaster.c:1064
 #, c-format
 msgid "could not create any TCP/IP sockets"
 msgstr "无法创建TCP/IP套接字"
 
-#: postmaster/postmaster.c:1148
+#: postmaster/postmaster.c:1147
 #, c-format
 msgid "could not create Unix-domain socket in directory \"%s\""
 msgstr "在目录\"%s\"下不能创建Unix域的网络套接字"
 
-#: postmaster/postmaster.c:1154
+#: postmaster/postmaster.c:1153
 #, c-format
 msgid "could not create any Unix-domain sockets"
 msgstr "无法创建 Unix域 套接字"
 
-#: postmaster/postmaster.c:1166
+#: postmaster/postmaster.c:1165
 #, c-format
 msgid "no socket created for listening"
 msgstr "没有为监听创建套接字"
 
 # fe-lobj.c:412
-#: postmaster/postmaster.c:1206
+#: postmaster/postmaster.c:1205
 #, c-format
 msgid "could not create I/O completion port for child queue"
 msgstr "无法为子队列创建I/O完成端口"
 
-#: postmaster/postmaster.c:1235
+#: postmaster/postmaster.c:1234
 #, c-format
 msgid "%s: could not change permissions of external PID file \"%s\": %s\n"
 msgstr "%s: 无法改变外部PID文件 \"%s\" 的权限: %s\n"
 
-#: postmaster/postmaster.c:1239
+#: postmaster/postmaster.c:1238
 #, c-format
 msgid "%s: could not write external PID file \"%s\": %s\n"
 msgstr "%s: 无法写入外部 PID 文件 \"%s\": %s\n"
 
-#: postmaster/postmaster.c:1296
+#: postmaster/postmaster.c:1298
 #, c-format
 msgid "ending log output to stderr"
 msgstr "终止日志输出到标准错误输出设备"
 
-#: postmaster/postmaster.c:1297
+#: postmaster/postmaster.c:1299
 #, c-format
 msgid "Future log output will go to log destination \"%s\"."
 msgstr "后续的日志输出将进入到目标日志 \"%s\"."
 
-#: postmaster/postmaster.c:1323 utils/init/postinit.c:214
+#: postmaster/postmaster.c:1325 utils/init/postinit.c:216
 #, c-format
 msgid "could not load pg_hba.conf"
 msgstr "无法加载pg_hba.conf"
 
-#: postmaster/postmaster.c:1349
+#: postmaster/postmaster.c:1351
 #, c-format
 msgid "postmaster became multithreaded during startup"
 msgstr "在启动期间postmaster变成多线程的"
 
-#: postmaster/postmaster.c:1350
+#: postmaster/postmaster.c:1352
 #, c-format
 msgid "Set the LC_ALL environment variable to a valid locale."
 msgstr "设定LC_ALL环境变量为一个合法的区域。"
 
-#: postmaster/postmaster.c:1455
+#: postmaster/postmaster.c:1453
 #, c-format
 msgid "%s: could not locate matching postgres executable"
 msgstr "%s: 无法找到匹配的 postgres 执行文件"
 
-#: postmaster/postmaster.c:1478 utils/misc/tzparser.c:341
+#: postmaster/postmaster.c:1476 utils/misc/tzparser.c:341
 #, c-format
 msgid "This may indicate an incomplete PostgreSQL installation, or that the file \"%s\" has been moved away from its proper location."
 msgstr "这可能表示PostgreSQL安装未完成,或者文件\"%s\"已经从正确的位置移动到另外的位置了."
 
-#: postmaster/postmaster.c:1505
+#: postmaster/postmaster.c:1503
 #, c-format
 msgid ""
 "%s: could not find the database system\n"
@@ -16862,452 +16858,449 @@ msgstr ""
 "预期在目录 \"%s\" 找到,\n"
 "但是无法打开文件 \"%s\": %s\n"
 
-#: postmaster/postmaster.c:1682
+#: postmaster/postmaster.c:1680
 #, c-format
 msgid "select() failed in postmaster: %m"
 msgstr "postmaster select() 失败: %m"
 
-#: postmaster/postmaster.c:1837
+#: postmaster/postmaster.c:1835
 #, c-format
 msgid "performing immediate shutdown because data directory lock file is invalid"
 msgstr "由于数据目录锁文件非法而执行立即关闭"
 
-#: postmaster/postmaster.c:1915 postmaster/postmaster.c:1946
+#: postmaster/postmaster.c:1934 postmaster/postmaster.c:1965
 #, c-format
 msgid "incomplete startup packet"
 msgstr "不完整的启动包"
 
-#: postmaster/postmaster.c:1927
+#: postmaster/postmaster.c:1946
 #, c-format
 msgid "invalid length of startup packet"
 msgstr "无效的启动包长度"
 
-#: postmaster/postmaster.c:1985
+#: postmaster/postmaster.c:2004
 #, c-format
 msgid "failed to send SSL negotiation response: %m"
 msgstr "发送 SSL 协商响应失败: %m"
 
-#: postmaster/postmaster.c:2011
+#: postmaster/postmaster.c:2031
+#, fuzzy, c-format
+#| msgid "failed to send SSL negotiation response: %m"
+msgid "failed to send GSSAPI negotiation response: %m"
+msgstr "发送 SSL 协商响应失败: %m"
+
+#: postmaster/postmaster.c:2056
 #, 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:2075 utils/misc/guc.c:6013 utils/misc/guc.c:6106
-#: utils/misc/guc.c:7432 utils/misc/guc.c:10195 utils/misc/guc.c:10229
+#: postmaster/postmaster.c:2120 utils/misc/guc.c:6574 utils/misc/guc.c:6610
+#: utils/misc/guc.c:6680 utils/misc/guc.c:8006 utils/misc/guc.c:10828
+#: utils/misc/guc.c:10862
 #, c-format
 msgid "invalid value for parameter \"%s\": \"%s\""
 msgstr "参数 \"%s\" 的值无效: \"%s\""
 
-#: postmaster/postmaster.c:2078
+#: postmaster/postmaster.c:2123
 #, c-format
 msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"."
 msgstr "有效值为:\"false\"、0、\"true\"、1、\"database\"。"
 
-#: postmaster/postmaster.c:2108
+#: postmaster/postmaster.c:2168
 #, c-format
 msgid "invalid startup packet layout: expected terminator as last byte"
 msgstr "无效的启动包格式: 预计结束符为最后一个字节"
 
-#: postmaster/postmaster.c:2146
+#: postmaster/postmaster.c:2206
 #, c-format
 msgid "no PostgreSQL user name specified in startup packet"
 msgstr "在启动包中没有指定 PostgreSQL 用户名"
 
-#: postmaster/postmaster.c:2205
+#: postmaster/postmaster.c:2265
 #, c-format
 msgid "the database system is starting up"
 msgstr "数据库系统启动中"
 
-#: postmaster/postmaster.c:2210
+#: postmaster/postmaster.c:2270
 #, c-format
 msgid "the database system is shutting down"
 msgstr "数据库系统停止中"
 
-#: postmaster/postmaster.c:2215
+#: postmaster/postmaster.c:2275
 #, c-format
 msgid "the database system is in recovery mode"
 msgstr "数据库系统在恢复模式中"
 
-#: postmaster/postmaster.c:2220 storage/ipc/procarray.c:292
-#: storage/ipc/sinvaladt.c:298 storage/lmgr/proc.c:346
+#: postmaster/postmaster.c:2280 storage/ipc/procarray.c:293
+#: storage/ipc/sinvaladt.c:298 storage/lmgr/proc.c:363
 #, c-format
 msgid "sorry, too many clients already"
 msgstr "对不起, 已经有太多的客户"
 
-#: postmaster/postmaster.c:2310
+#: postmaster/postmaster.c:2370
 #, c-format
 msgid "wrong key in cancel request for process %d"
 msgstr "对于进程 %d,在取消请求中的键值错误"
 
-#: postmaster/postmaster.c:2318
+#: postmaster/postmaster.c:2382
 #, c-format
 msgid "PID %d in cancel request did not match any process"
 msgstr "没有进程与取消请求中的PID %d 相匹配"
 
-#: postmaster/postmaster.c:2529
+#: postmaster/postmaster.c:2629
 #, c-format
 msgid "received SIGHUP, reloading configuration files"
 msgstr "接收到 SIGHUP, 重载配置文件"
 
-#: postmaster/postmaster.c:2554
-#, c-format
-msgid "pg_hba.conf was not reloaded"
+#. translator: %s is a configuration file
+#: postmaster/postmaster.c:2655 postmaster/postmaster.c:2659
+#, fuzzy, c-format
+#| msgid "pg_hba.conf was not reloaded"
+msgid "%s was not reloaded"
 msgstr "没有重新加载pg_hba.conf"
 
-#: postmaster/postmaster.c:2558
-#, c-format
-msgid "pg_ident.conf was not reloaded"
-msgstr "pg_ident.conf 没有重新加载"
-
-#: postmaster/postmaster.c:2568
+#: postmaster/postmaster.c:2669
 #, c-format
 msgid "SSL configuration was not reloaded"
 msgstr "SSL配置没有重新加载"
 
-#: postmaster/postmaster.c:2616
+#: postmaster/postmaster.c:2717
 #, c-format
 msgid "received smart shutdown request"
 msgstr "接到到智能 (smart) 停止请求"
 
-#: postmaster/postmaster.c:2674
+#: postmaster/postmaster.c:2775
 #, c-format
 msgid "received fast shutdown request"
 msgstr "接收到快速 (fast) 停止请求"
 
-#: postmaster/postmaster.c:2707
+#: postmaster/postmaster.c:2808
 #, c-format
 msgid "aborting any active transactions"
 msgstr "中断任何激活事务"
 
-#: postmaster/postmaster.c:2741
+#: postmaster/postmaster.c:2842
 #, c-format
 msgid "received immediate shutdown request"
 msgstr "接收到立即 (immediate) 停止请求"
 
-#: postmaster/postmaster.c:2808
+#: postmaster/postmaster.c:2909
 #, c-format
 msgid "shutdown at recovery target"
 msgstr "在恢复目标处关闭"
 
-#: postmaster/postmaster.c:2824 postmaster/postmaster.c:2847
+#: postmaster/postmaster.c:2925 postmaster/postmaster.c:2948
 msgid "startup process"
 msgstr "启动进程"
 
-#: postmaster/postmaster.c:2827
+#: postmaster/postmaster.c:2928
 #, c-format
 msgid "aborting startup due to startup process failure"
 msgstr "由于启动进程失败, 终止启动"
 
-#: postmaster/postmaster.c:2888
+#: postmaster/postmaster.c:2989
 #, c-format
 msgid "database system is ready to accept connections"
 msgstr "数据库系统准备接受连接"
 
-#: postmaster/postmaster.c:2909
+#: postmaster/postmaster.c:3010
 msgid "background writer process"
 msgstr "后台写入进程"
 
-#: postmaster/postmaster.c:2963
+#: postmaster/postmaster.c:3064
 msgid "checkpointer process"
 msgstr "检查点(checkpointer)进程"
 
-#: postmaster/postmaster.c:2979
+#: postmaster/postmaster.c:3080
 msgid "WAL writer process"
 msgstr "WAL写入进程"
 
-#: postmaster/postmaster.c:2994
+#: postmaster/postmaster.c:3095
 msgid "WAL receiver process"
 msgstr "WAL接收进程"
 
-#: postmaster/postmaster.c:3009
+#: postmaster/postmaster.c:3110
 msgid "autovacuum launcher process"
 msgstr "autovacuum启动进程"
 
-#: postmaster/postmaster.c:3024
+#: postmaster/postmaster.c:3125
 msgid "archiver process"
 msgstr "归档进程"
 
-#: postmaster/postmaster.c:3040
+#: postmaster/postmaster.c:3141
 msgid "statistics collector process"
 msgstr "统计收集器进程"
 
-#: postmaster/postmaster.c:3054
+#: postmaster/postmaster.c:3155
 msgid "system logger process"
 msgstr "系统日志进程"
 
-#: postmaster/postmaster.c:3116
+#: postmaster/postmaster.c:3217
 #, c-format
 msgid "background worker \"%s\""
 msgstr "后台工作进程 \"%s\""
 
-#: postmaster/postmaster.c:3200 postmaster/postmaster.c:3220
-#: postmaster/postmaster.c:3227 postmaster/postmaster.c:3245
+#: postmaster/postmaster.c:3301 postmaster/postmaster.c:3321
+#: postmaster/postmaster.c:3328 postmaster/postmaster.c:3346
 msgid "server process"
 msgstr "服务器进程"
 
-#: postmaster/postmaster.c:3299
+#: postmaster/postmaster.c:3400
 #, 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:3555
+#: postmaster/postmaster.c:3656
 #, c-format
 msgid "%s (PID %d) exited with exit code %d"
 msgstr "%s (PID %d) 已退出, 退出代码 %d"
 
-#: postmaster/postmaster.c:3557 postmaster/postmaster.c:3568
-#: postmaster/postmaster.c:3579 postmaster/postmaster.c:3588
-#: postmaster/postmaster.c:3598
+#: postmaster/postmaster.c:3658 postmaster/postmaster.c:3670
+#: postmaster/postmaster.c:3680 postmaster/postmaster.c:3691
 #, 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:3565
+#: postmaster/postmaster.c:3667
 #, 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:3575
+#: postmaster/postmaster.c:3677
 #, 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:3586
-#, 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:3596
+#: postmaster/postmaster.c:3689
 #, c-format
 msgid "%s (PID %d) exited with unrecognized status %d"
 msgstr "%s (PID %d) 已退出, 意外状态 %d"
 
-#: postmaster/postmaster.c:3783
+#: postmaster/postmaster.c:3872
 #, c-format
 msgid "abnormal database system shutdown"
 msgstr "数据库系统异常关闭"
 
-#: postmaster/postmaster.c:3823
+#: postmaster/postmaster.c:3912
 #, c-format
 msgid "all server processes terminated; reinitializing"
 msgstr "所有的服务器进程被中止; 重新初始化"
 
-#: postmaster/postmaster.c:3993 postmaster/postmaster.c:5418
-#: postmaster/postmaster.c:5782
+#: postmaster/postmaster.c:4082 postmaster/postmaster.c:5473
+#: postmaster/postmaster.c:5847
 #, c-format
 msgid "could not generate random cancel key"
 msgstr "无法生成随机取消密钥"
 
-#: postmaster/postmaster.c:4047
+#: postmaster/postmaster.c:4136
 #, c-format
 msgid "could not fork new process for connection: %m"
 msgstr "无法为联接派生新进程: %m"
 
-#: postmaster/postmaster.c:4089
+#: postmaster/postmaster.c:4178
 msgid "could not fork new process for connection: "
 msgstr "无法为联接派生新进程: "
 
-#: postmaster/postmaster.c:4203
+#: postmaster/postmaster.c:4288
 #, c-format
 msgid "connection received: host=%s port=%s"
 msgstr "已接收到连接: 主机=%s 端口=%s"
 
-#: postmaster/postmaster.c:4208
+#: postmaster/postmaster.c:4293
 #, c-format
 msgid "connection received: host=%s"
 msgstr "已接收到连接: 主机=%s"
 
-#: postmaster/postmaster.c:4493
+#: postmaster/postmaster.c:4563
 #, c-format
 msgid "could not execute server process \"%s\": %m"
 msgstr "无法执行服务器进程 \"%s\": %m"
 
-#: postmaster/postmaster.c:4646
+#: postmaster/postmaster.c:4716
 #, c-format
 msgid "giving up after too many tries to reserve shared memory"
 msgstr "过多尝试保留共享内存后放弃"
 
-#: postmaster/postmaster.c:4647
+#: postmaster/postmaster.c:4717
 #, c-format
 msgid "This might be caused by ASLR or antivirus software."
 msgstr "这可能是由ASLR或防病毒软件引起的."
 
-#: postmaster/postmaster.c:4858
+#: postmaster/postmaster.c:4928
 #, c-format
 msgid "SSL configuration could not be loaded in child process"
 msgstr "无法在子进程中加载SSL配置"
 
-#: postmaster/postmaster.c:4990
-#, c-format
-msgid "Please report this to <pgsql-bugs@postgresql.org>."
+#: postmaster/postmaster.c:5060
+#, fuzzy, c-format
+#| msgid "Please report this to <pgsql-bugs@postgresql.org>."
+msgid "Please report this to <pgsql-bugs@lists.postgresql.org>."
 msgstr "请向 <pgsql-bugs@postgresql.org>发送报告."
 
-#: postmaster/postmaster.c:5077
+#: postmaster/postmaster.c:5147
 #, c-format
 msgid "database system is ready to accept read only connections"
 msgstr "数据库系统准备接受只读请求的连接"
 
-#: postmaster/postmaster.c:5346
+#: postmaster/postmaster.c:5401
 #, c-format
 msgid "could not fork startup process: %m"
 msgstr "无法派生启动进程: %m"
 
-#: postmaster/postmaster.c:5350
+#: postmaster/postmaster.c:5405
 #, c-format
 msgid "could not fork background writer process: %m"
 msgstr "无法 fork 后台写入进程: %m"
 
-#: postmaster/postmaster.c:5354
+#: postmaster/postmaster.c:5409
 #, c-format
 msgid "could not fork checkpointer process: %m"
 msgstr "无法派生检查点进程: %m"
 
-#: postmaster/postmaster.c:5358
+#: postmaster/postmaster.c:5413
 #, c-format
 msgid "could not fork WAL writer process: %m"
 msgstr "无法派生WAL写入进程: %m"
 
-#: postmaster/postmaster.c:5362
+#: postmaster/postmaster.c:5417
 #, c-format
 msgid "could not fork WAL receiver process: %m"
 msgstr "无法派生WAL接收进程: %m"
 
-#: postmaster/postmaster.c:5366
+#: postmaster/postmaster.c:5421
 #, c-format
 msgid "could not fork process: %m"
 msgstr "无法派生进程: %m"
 
-#: postmaster/postmaster.c:5553 postmaster/postmaster.c:5576
+#: postmaster/postmaster.c:5618 postmaster/postmaster.c:5641
 #, c-format
 msgid "database connection requirement not indicated during registration"
 msgstr "在注册阶段没有指定需要的数据库连接"
 
-#: postmaster/postmaster.c:5560 postmaster/postmaster.c:5583
+#: postmaster/postmaster.c:5625 postmaster/postmaster.c:5648
 #, c-format
 msgid "invalid processing mode in background worker"
 msgstr "后台工作进程中的无效处理模式"
 
-#: postmaster/postmaster.c:5655
+#: postmaster/postmaster.c:5720
 #, c-format
 msgid "starting background worker process \"%s\""
 msgstr "启动后台工作进程\"%s\""
 
-#: postmaster/postmaster.c:5667
+#: postmaster/postmaster.c:5732
 #, c-format
 msgid "could not fork worker process: %m"
 msgstr "无法创建工作进程:%m"
 
-#: postmaster/postmaster.c:6100
+#: postmaster/postmaster.c:6168
 #, c-format
 msgid "could not duplicate socket %d for use in backend: error code %d"
 msgstr "无法为后端使用复制套接字 %d: 错误码为 %d"
 
-#: postmaster/postmaster.c:6132
+#: postmaster/postmaster.c:6200
 #, c-format
 msgid "could not create inherited socket: error code %d\n"
 msgstr "无法创建继承套接字: 错误码为 %d\n"
 
-#: postmaster/postmaster.c:6161
+#: postmaster/postmaster.c:6229
 #, c-format
 msgid "could not open backend variables file \"%s\": %s\n"
 msgstr "无法打开后端变量文件\"%s\":%s\n"
 
-#: postmaster/postmaster.c:6168
+#: postmaster/postmaster.c:6236
 #, c-format
 msgid "could not read from backend variables file \"%s\": %s\n"
 msgstr "无法从后端可变 (variables) 文件 \"%s\" 读取: %s\n"
 
-#: postmaster/postmaster.c:6177
+#: postmaster/postmaster.c:6245
 #, c-format
 msgid "could not remove file \"%s\": %s\n"
 msgstr "无法删除文件 \"%s\": %s\n"
 
-#: postmaster/postmaster.c:6194
+#: postmaster/postmaster.c:6262
 #, c-format
 msgid "could not map view of backend variables: error code %lu\n"
 msgstr "无法映射后端变量视图: 错误码为 %lu\n"
 
-#: postmaster/postmaster.c:6203
+#: postmaster/postmaster.c:6271
 #, c-format
 msgid "could not unmap view of backend variables: error code %lu\n"
 msgstr "无法取消后端变量视图的映射: 错误码为 %lu\n"
 
-#: postmaster/postmaster.c:6210
+#: postmaster/postmaster.c:6278
 #, c-format
 msgid "could not close handle to backend parameter variables: error code %lu\n"
 msgstr "无法关闭后端参数变量的句柄: 错误码为 %lu\n"
 
-#: postmaster/postmaster.c:6371
+#: postmaster/postmaster.c:6442
 #, c-format
 msgid "could not read exit code for process\n"
 msgstr "无法为进程读取退出代码\n"
 
-#: postmaster/postmaster.c:6376
+#: postmaster/postmaster.c:6447
 #, c-format
 msgid "could not post child completion status\n"
 msgstr "无法传递子队列的结束状态\n"
 
-#: postmaster/syslogger.c:470 postmaster/syslogger.c:1146
+#: postmaster/syslogger.c:480 postmaster/syslogger.c:1154
 #, c-format
 msgid "could not read from logger pipe: %m"
 msgstr "无法从日志管道读取: %m"
 
-#: postmaster/syslogger.c:520
+#: postmaster/syslogger.c:528
 #, c-format
 msgid "logger shutting down"
 msgstr "日志正在关闭"
 
-#: postmaster/syslogger.c:564 postmaster/syslogger.c:578
+#: postmaster/syslogger.c:572 postmaster/syslogger.c:586
 #, c-format
 msgid "could not create pipe for syslog: %m"
 msgstr "无法为统计日志 (syslog) 创建管道: %m"
 
-#: postmaster/syslogger.c:629
+#: postmaster/syslogger.c:637
 #, c-format
 msgid "could not fork system logger: %m"
 msgstr "无法派生 (fork) 系统日志: %m"
 
-#: postmaster/syslogger.c:665
+#: postmaster/syslogger.c:673
 #, c-format
 msgid "redirecting log output to logging collector process"
 msgstr "日志输出重定向到日志收集进程"
 
-#: postmaster/syslogger.c:666
+#: postmaster/syslogger.c:674
 #, c-format
 msgid "Future log output will appear in directory \"%s\"."
 msgstr "后续的日志输出将出现在目录 \"%s\"中."
 
-#: postmaster/syslogger.c:674
+#: postmaster/syslogger.c:682
 #, c-format
 msgid "could not redirect stdout: %m"
 msgstr "无法重定向到标准输出 (stdout) : %m"
 
-#: postmaster/syslogger.c:679 postmaster/syslogger.c:696
+#: postmaster/syslogger.c:687 postmaster/syslogger.c:704
 #, c-format
 msgid "could not redirect stderr: %m"
 msgstr "无法重定向到标准错误 (stderr) : %m"
 
-#: postmaster/syslogger.c:1101
+#: postmaster/syslogger.c:1109
 #, c-format
 msgid "could not write to log file: %s\n"
 msgstr "无法写入日志文件: %s\n"
 
-#: postmaster/syslogger.c:1218
+#: postmaster/syslogger.c:1226
 #, c-format
 msgid "could not open log file \"%s\": %m"
 msgstr "无法打开事务日志文件 \"%s\": %m"
 
-#: postmaster/syslogger.c:1280 postmaster/syslogger.c:1330
+#: postmaster/syslogger.c:1288 postmaster/syslogger.c:1338
 #, c-format
 msgid "disabling automatic rotation (use SIGHUP to re-enable)"
 msgstr "取消自动轮寻 (使用 SIGHUP re-enable)"
@@ -17317,23 +17310,11 @@ msgstr "取消自动轮寻 (使用 SIGHUP re-enable)"
 msgid "could not determine which collation to use for regular expression"
 msgstr "无法确定正规表达式中使用何种排序规则"
 
-#: repl_gram.y:336 repl_gram.y:368
-#, c-format
-msgid "invalid timeline %u"
-msgstr "无效时间线%u"
-
-#: repl_scanner.l:129
-msgid "invalid streaming start location"
-msgstr "无效的流起始位置"
-
-#: repl_scanner.l:180 scan.l:683
-msgid "unterminated quoted string"
-msgstr "未结束的引用字符串"
-
-#: replication/basebackup.c:343
-#, c-format
-msgid "could not stat control file \"%s\": %m"
-msgstr "无法统计控制文件 \"%s\": %m"
+#: regex/regc_pg_locale.c:269
+#, fuzzy, c-format
+#| msgid "could not determine which collation to use for regular expression"
+msgid "nondeterministic collations are not supported for regular expressions"
+msgstr "无法确定正规表达式中使用何种排序规则"
 
 #: replication/basebackup.c:450
 #, c-format
@@ -17351,7 +17332,7 @@ msgstr "找不到WAL文件\"%s\""
 msgid "unexpected WAL file size \"%s\""
 msgstr "意外的WAL文件大小\"%s\""
 
-#: replication/basebackup.c:544 replication/basebackup.c:1536
+#: replication/basebackup.c:544 replication/basebackup.c:1539
 #, c-format
 msgid "base backup could not send data, aborting backup"
 msgstr "基础备份无法发送数据,终止备份"
@@ -17374,7 +17355,7 @@ msgstr "基础备份期间的校验和验证失败"
 msgid "duplicate option \"%s\""
 msgstr "重复选项 \"%s\""
 
-#: replication/basebackup.c:717 utils/misc/guc.c:6023
+#: replication/basebackup.c:717
 #, c-format
 msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)"
 msgstr "%d 超出了参数 \"%s\" (%d .. %d) 的有效范围"
@@ -17389,201 +17370,201 @@ msgstr "无法统计文件或目录\"%s\": %m"
 msgid "skipping special file \"%s\""
 msgstr "跳过特殊文件 \"%s\""
 
-#: replication/basebackup.c:1421
+#: replication/basebackup.c:1424
 #, c-format
 msgid "invalid segment number %d in file \"%s\""
 msgstr "文件\"%2$s\"中的段号%1$d无效"
 
-#: replication/basebackup.c:1440
+#: replication/basebackup.c:1443
 #, c-format
 msgid "cannot verify checksum in file \"%s\", block %d: read buffer size %d and page size %d differ"
 msgstr "无法验证文件\"%s\"、块%d中的校验和:读取缓冲区大小%d和页大小%d不同"
 
-#: replication/basebackup.c:1484 replication/basebackup.c:1500
+#: replication/basebackup.c:1487 replication/basebackup.c:1503
 #, c-format
 msgid "could not fseek in file \"%s\": %m"
 msgstr "无法在文件\"%s\"进行查找: %m"
 
-#: replication/basebackup.c:1492
+#: replication/basebackup.c:1495
 #, c-format
 msgid "could not reread block %d of file \"%s\": %m"
 msgstr "无法在文件\"%2$s\"中重新读取块%1$d: %3$m"
 
-#: replication/basebackup.c:1516
+#: replication/basebackup.c:1519
 #, c-format
 msgid "checksum verification failed in file \"%s\", block %d: calculated %X but expected %X"
 msgstr "校验和验证在文件\"%s\"中失败,块%d :计算的为%X,但应为%X"
 
-#: replication/basebackup.c:1523
+#: replication/basebackup.c:1526
 #, c-format
 msgid "further checksum verification failures in file \"%s\" will not be reported"
 msgstr "将不会报告文件 \"%s\"中的进一步校验和验证失败。"
 
-#: replication/basebackup.c:1581
+#: replication/basebackup.c:1584
 #, c-format
 msgid "file \"%s\" has a total of %d checksum verification failures"
 msgstr "文件\"%s\"总共有%d个校验和验证失败"
 
-#: replication/basebackup.c:1609
+#: replication/basebackup.c:1615
 #, c-format
 msgid "file name too long for tar format: \"%s\""
 msgstr "文件名对于tar格式超长:\"%s\""
 
-#: replication/basebackup.c:1614
+#: replication/basebackup.c:1620
 #, c-format
 msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\""
 msgstr "符号链接目标对于tar格式过长:文件名是\"%s\",目标是\"%s\""
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:235
+#: replication/libpqwalreceiver/libpqwalreceiver.c:232
 #, c-format
 msgid "invalid connection string syntax: %s"
 msgstr "无效的连接字符串语法: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:259
+#: replication/libpqwalreceiver/libpqwalreceiver.c:256
 #, c-format
 msgid "could not parse connection string: %s"
 msgstr "无法分析连接字符串: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:332
+#: replication/libpqwalreceiver/libpqwalreceiver.c:328
 #, c-format
 msgid "could not receive database system identifier and timeline ID from the primary server: %s"
 msgstr "无法从主用服务器接收数据库系统标识符和时间线ID:%s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:343
-#: replication/libpqwalreceiver/libpqwalreceiver.c:550
+#: replication/libpqwalreceiver/libpqwalreceiver.c:339
+#: replication/libpqwalreceiver/libpqwalreceiver.c:557
 #, c-format
 msgid "invalid response from primary server"
 msgstr "来自主用服务器的回应无效"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:344
+#: replication/libpqwalreceiver/libpqwalreceiver.c:340
 #, c-format
 msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields."
 msgstr "无法识别系统: 得到 %d 行和 %d 列, 期望值为: %d 行和 %d 列."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:410
-#: replication/libpqwalreceiver/libpqwalreceiver.c:416
-#: replication/libpqwalreceiver/libpqwalreceiver.c:441
+#: replication/libpqwalreceiver/libpqwalreceiver.c:413
+#: replication/libpqwalreceiver/libpqwalreceiver.c:419
+#: replication/libpqwalreceiver/libpqwalreceiver.c:444
 #, c-format
 msgid "could not start WAL streaming: %s"
 msgstr "无法启动WAL流复制: %s"
 
 # fe-misc.c:702
-#: replication/libpqwalreceiver/libpqwalreceiver.c:460
+#: replication/libpqwalreceiver/libpqwalreceiver.c:467
 #, c-format
 msgid "could not send end-of-streaming message to primary: %s"
 msgstr "无法向主服务器:%s发送流终止的消息"
 
 # fe-exec.c:1371
-#: replication/libpqwalreceiver/libpqwalreceiver.c:482
+#: replication/libpqwalreceiver/libpqwalreceiver.c:489
 #, c-format
 msgid "unexpected result set after end-of-streaming"
 msgstr "流结束时出现意外的结果集"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:496
+#: replication/libpqwalreceiver/libpqwalreceiver.c:503
 #, c-format
 msgid "error while shutting down streaming COPY: %s"
 msgstr "关闭流式复制时出错: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:505
+#: replication/libpqwalreceiver/libpqwalreceiver.c:512
 #, c-format
 msgid "error reading result of streaming command: %s"
 msgstr "读流命令的结果时出错: %s"
 
 # fe-exec.c:1371
-#: replication/libpqwalreceiver/libpqwalreceiver.c:513
-#: replication/libpqwalreceiver/libpqwalreceiver.c:741
+#: replication/libpqwalreceiver/libpqwalreceiver.c:520
+#: replication/libpqwalreceiver/libpqwalreceiver.c:754
 #, c-format
 msgid "unexpected result after CommandComplete: %s"
 msgstr "CommandComplete %s结束后出现意外结果"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:539
+#: replication/libpqwalreceiver/libpqwalreceiver.c:546
 #, c-format
 msgid "could not receive timeline history file from the primary server: %s"
 msgstr "无法从主服务器:%s接收历史时间线"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:551
+#: replication/libpqwalreceiver/libpqwalreceiver.c:558
 #, c-format
 msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields."
 msgstr "期望得到带有两个字段的一条记录,但是现在得到了%d条记录,每条带有%d个字段."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:705
-#: replication/libpqwalreceiver/libpqwalreceiver.c:756
-#: replication/libpqwalreceiver/libpqwalreceiver.c:762
+#: replication/libpqwalreceiver/libpqwalreceiver.c:718
+#: replication/libpqwalreceiver/libpqwalreceiver.c:769
+#: replication/libpqwalreceiver/libpqwalreceiver.c:775
 #, c-format
 msgid "could not receive data from WAL stream: %s"
 msgstr "无法从WAL流中获得数据: %s"
 
 # fe-misc.c:702
-#: replication/libpqwalreceiver/libpqwalreceiver.c:781
+#: replication/libpqwalreceiver/libpqwalreceiver.c:794
 #, c-format
 msgid "could not send data to WAL stream: %s"
 msgstr "无法向WAL流:%s发送数据"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:830
+#: replication/libpqwalreceiver/libpqwalreceiver.c:843
 #, c-format
 msgid "could not create replication slot \"%s\": %s"
 msgstr "无法创建复制槽\"%s\": %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:864
+#: replication/libpqwalreceiver/libpqwalreceiver.c:877
 #, c-format
 msgid "invalid query response"
 msgstr "无效的查询响应"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:865
+#: replication/libpqwalreceiver/libpqwalreceiver.c:878
 #, c-format
 msgid "Expected %d fields, got %d fields."
 msgstr "应输入%d个字段,得到%d个字段."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:934
+#: replication/libpqwalreceiver/libpqwalreceiver.c:947
 #, c-format
 msgid "the query interface requires a database connection"
 msgstr "查询接口需要数据库连接"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:965
+#: replication/libpqwalreceiver/libpqwalreceiver.c:978
 msgid "empty query"
 msgstr "空查询"
 
-#: replication/logical/launcher.c:310
+#: replication/logical/launcher.c:307
 #, c-format
 msgid "starting logical replication worker for subscription \"%s\""
 msgstr "正在为订阅\"%s\"启动逻辑复制工作线程"
 
-#: replication/logical/launcher.c:317
+#: replication/logical/launcher.c:314
 #, c-format
 msgid "cannot start logical replication workers when max_replication_slots = 0"
 msgstr "当max_replication_slots = 0时,无法启动逻辑复制工作进程"
 
-#: replication/logical/launcher.c:397
+#: replication/logical/launcher.c:394
 #, c-format
 msgid "out of logical replication worker slots"
 msgstr "逻辑复制工作槽不足"
 
-#: replication/logical/launcher.c:398
+#: replication/logical/launcher.c:395
 #, c-format
 msgid "You might need to increase max_logical_replication_workers."
 msgstr "您可能需要增加参数max_logical_replication_workers."
 
-#: replication/logical/launcher.c:453
+#: replication/logical/launcher.c:450
 #, c-format
 msgid "out of background worker slots"
 msgstr "超出后台工作线程槽"
 
-#: replication/logical/launcher.c:454
+#: replication/logical/launcher.c:451
 #, c-format
 msgid "You might need to increase max_worker_processes."
 msgstr "您可能需要增加参数max_worker_processes."
 
-#: replication/logical/launcher.c:661
+#: replication/logical/launcher.c:650
 #, c-format
 msgid "logical replication worker slot %d is empty, cannot attach"
 msgstr "逻辑复制工作槽%d为空,无法附加"
 
-#: replication/logical/launcher.c:670
+#: replication/logical/launcher.c:659
 #, c-format
 msgid "logical replication worker slot %d is already used by another worker, cannot attach"
 msgstr "逻辑复制工作槽%d已被另一个工作进程使用,无法附加"
 
-#: replication/logical/launcher.c:988
+#: replication/logical/launcher.c:977
 #, c-format
 msgid "logical replication launcher started"
 msgstr "逻辑复制启动程序已启动"
@@ -17603,42 +17584,42 @@ msgstr "逻辑解码需要一个数据库连接"
 msgid "logical decoding cannot be used while in recovery"
 msgstr "逻辑解码不能用于恢复操作"
 
-#: replication/logical/logical.c:255 replication/logical/logical.c:386
+#: replication/logical/logical.c:258 replication/logical/logical.c:396
 #, c-format
 msgid "cannot use physical replication slot for logical decoding"
 msgstr "逻辑解码不能使用物理复制槽"
 
-#: replication/logical/logical.c:260 replication/logical/logical.c:391
+#: replication/logical/logical.c:263 replication/logical/logical.c:401
 #, c-format
 msgid "replication slot \"%s\" was not created in this database"
 msgstr "复制槽\"%s\"不能用于此数据库"
 
-#: replication/logical/logical.c:267
+#: replication/logical/logical.c:270
 #, c-format
 msgid "cannot create logical replication slot in transaction that has performed writes"
 msgstr "已经执行了写操作的事务里,不能创建逻辑复制槽"
 
-#: replication/logical/logical.c:431
+#: replication/logical/logical.c:441
 #, c-format
 msgid "starting logical decoding for slot \"%s\""
 msgstr "开始为槽\"%s\"进行逻辑解码"
 
-#: replication/logical/logical.c:433
+#: replication/logical/logical.c:443
 #, c-format
 msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X."
 msgstr "流事务在%X/%X后提交,从%X/%X位置读."
 
-#: replication/logical/logical.c:583
+#: replication/logical/logical.c:593
 #, 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:590
+#: replication/logical/logical.c:600
 #, c-format
 msgid "slot \"%s\", output plugin \"%s\", in the %s callback"
 msgstr "槽 \"%s\", 输出插件 \"%s\", 在 %s 回调"
 
-#: replication/logical/logicalfuncs.c:114 replication/slotfuncs.c:35
+#: replication/logical/logicalfuncs.c:114 replication/slotfuncs.c:34
 #, c-format
 msgid "must be superuser or replication role to use replication slots"
 msgstr "只有超级用户或者拥有复制角色的用户才能使用复制槽"
@@ -17663,8 +17644,8 @@ msgstr "数组必须是一维的"
 msgid "array must not contain nulls"
 msgstr "数组不能包含空值"
 
-#: replication/logical/logicalfuncs.c:222 utils/adt/json.c:2310
-#: utils/adt/jsonb.c:1269
+#: replication/logical/logicalfuncs.c:222 utils/adt/json.c:2312
+#: utils/adt/jsonb.c:1282
 #, c-format
 msgid "array must have even number of elements"
 msgstr "数组必须包含偶数个元素"
@@ -17709,54 +17690,49 @@ msgstr "无法删除具有OID %d的复制源头,PID %d正在使用它"
 msgid "replication origin with OID %u does not exist"
 msgstr "OID为%u的复制源不存在"
 
-#: replication/logical/origin.c:725
+#: replication/logical/origin.c:729
 #, c-format
 msgid "replication checkpoint has wrong magic %u instead of %u"
 msgstr "复制检查点具有错误的magic值%u而不是%u"
 
-#: replication/logical/origin.c:757
-#, c-format
-msgid "could not read file \"%s\": read %d of %zu"
-msgstr "无法读取文件\"%1$s\":读取了%3$zu中的%2$d"
-
-#: replication/logical/origin.c:766
+#: replication/logical/origin.c:770
 #, c-format
 msgid "could not find free replication state, increase max_replication_slots"
 msgstr "无法找到空闲的复制状态,请增加max_replication_slots的值"
 
-#: replication/logical/origin.c:784
+#: replication/logical/origin.c:788
 #, c-format
 msgid "replication slot checkpoint has wrong checksum %u, expected %u"
 msgstr "复制槽检查点具有错误的校验和%u,正确的应该是%u"
 
-#: replication/logical/origin.c:908
+#: replication/logical/origin.c:916
 #, c-format
 msgid "replication origin with OID %d is already active for PID %d"
 msgstr "OID为%d的复制源头已经被用于PID %d"
 
-#: replication/logical/origin.c:919 replication/logical/origin.c:1106
+#: replication/logical/origin.c:927 replication/logical/origin.c:1114
 #, c-format
 msgid "could not find free replication state slot for replication origin with OID %u"
 msgstr "无法为带有OID %u的复制源头找到空闲的复制状态槽"
 
-#: replication/logical/origin.c:921 replication/logical/origin.c:1108
-#: replication/slot.c:1559
+#: replication/logical/origin.c:929 replication/logical/origin.c:1116
+#: replication/slot.c:1564
 #, c-format
 msgid "Increase max_replication_slots and try again."
 msgstr "增大 max_replication_slots的值再重试."
 
-#: replication/logical/origin.c:1065
+#: replication/logical/origin.c:1073
 #, c-format
 msgid "cannot setup replication origin when one is already setup"
 msgstr "在已经设置了一个复制源头的情况下无法再设置复制源头"
 
-#: replication/logical/origin.c:1094
+#: replication/logical/origin.c:1102
 #, c-format
 msgid "replication identifier %d is already active for PID %d"
 msgstr "复制标识符%d已经被用于PID %d"
 
-#: replication/logical/origin.c:1145 replication/logical/origin.c:1343
-#: replication/logical/origin.c:1363
+#: replication/logical/origin.c:1153 replication/logical/origin.c:1351
+#: replication/logical/origin.c:1371
 #, c-format
 msgid "no replication origin is configured"
 msgstr "没有配置复制源头"
@@ -17776,227 +17752,222 @@ msgstr "逻辑复制目标关系\"%s.%s\"缺少某些已复制列"
 msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index"
 msgstr "逻辑复制目标关系\"%s.%s\"使用REPLICA IDENTITY索引中的系统列"
 
-#: replication/logical/reorderbuffer.c:2503
+#: replication/logical/reorderbuffer.c:2507
 #, c-format
 msgid "could not write to data file for XID %u: %m"
 msgstr "无法将XID %u:%m写入数据文件"
 
-#: replication/logical/reorderbuffer.c:2596
-#: replication/logical/reorderbuffer.c:2618
+#: replication/logical/reorderbuffer.c:2600
+#: replication/logical/reorderbuffer.c:2622
 #, c-format
 msgid "could not read from reorderbuffer spill file: %m"
 msgstr "无法读取重排缓冲的溢出文件:%m"
 
-#: replication/logical/reorderbuffer.c:2600
-#: replication/logical/reorderbuffer.c:2622
+#: replication/logical/reorderbuffer.c:2604
+#: replication/logical/reorderbuffer.c:2626
 #, c-format
 msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes"
 msgstr "无法读取重排缓冲的溢出文件, 读到了%d字节,而不是%u字节"
 
-#: replication/logical/reorderbuffer.c:2845
-#, c-format
-msgid "could not remove file \"%s\" during removal of pg_replslot/%s/*.xid: %m"
+#: replication/logical/reorderbuffer.c:2849
+#, fuzzy, c-format
+#| msgid "could not remove file \"%s\" during removal of pg_replslot/%s/*.xid: %m"
+msgid "could not remove file \"%s\" during removal of pg_replslot/%s/xid*: %m"
 msgstr "在删除pg_replslot/%2$s/*.xid期间无法删除文件\"%1$s\": %3$m"
 
-#: replication/logical/reorderbuffer.c:3311
+#: replication/logical/reorderbuffer.c:3315
 #, c-format
 msgid "could not read from file \"%s\": read %d instead of %d bytes"
 msgstr "无法读文件\"%s\": 读到了%d字节,而不是%d字节"
 
-#: replication/logical/snapbuild.c:612
+#: replication/logical/snapbuild.c:611
 #, c-format
 msgid "initial slot snapshot too large"
 msgstr "初始槽快照太大"
 
-#: replication/logical/snapbuild.c:664
+#: replication/logical/snapbuild.c:665
 #, c-format
 msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID"
 msgid_plural "exported logical decoding snapshot: \"%s\" with %u transaction IDs"
 msgstr[0] "导出逻辑解码快照: \"%s\" 带有 %u 个事务 ID"
 
-#: replication/logical/snapbuild.c:1269 replication/logical/snapbuild.c:1362
-#: replication/logical/snapbuild.c:1872
+#: replication/logical/snapbuild.c:1270 replication/logical/snapbuild.c:1363
+#: replication/logical/snapbuild.c:1917
 #, c-format
 msgid "logical decoding found consistent point at %X/%X"
 msgstr "在 %X/%X处,逻辑解码发现一致点"
 
-#: replication/logical/snapbuild.c:1271
+#: replication/logical/snapbuild.c:1272
 #, c-format
 msgid "There are no running transactions."
 msgstr "没有正运行的事务."
 
-#: replication/logical/snapbuild.c:1313
+#: replication/logical/snapbuild.c:1314
 #, c-format
 msgid "logical decoding found initial starting point at %X/%X"
 msgstr "逻辑解码在 %X/%X发现初始化的起始点"
 
-#: replication/logical/snapbuild.c:1315 replication/logical/snapbuild.c:1339
+#: replication/logical/snapbuild.c:1316 replication/logical/snapbuild.c:1340
 #, c-format
 msgid "Waiting for transactions (approximately %d) older than %u to end."
 msgstr "等待超过%2$u的事务(大约%1$d)结束."
 
-#: replication/logical/snapbuild.c:1337
+#: replication/logical/snapbuild.c:1338
 #, c-format
 msgid "logical decoding found initial consistent point at %X/%X"
 msgstr "在 %X/%X处,逻辑解码发现初始一致点"
 
-#: replication/logical/snapbuild.c:1364
+#: replication/logical/snapbuild.c:1365
 #, c-format
 msgid "There are no old transactions anymore."
 msgstr "不再有旧的事务."
 
-#: replication/logical/snapbuild.c:1736 replication/logical/snapbuild.c:1767
-#: replication/logical/snapbuild.c:1787 replication/logical/snapbuild.c:1806
-#, 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:1742
+#: replication/logical/snapbuild.c:1759
 #, c-format
 msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u"
 msgstr "快照构建状态文件\"%s\"具有错误的magic号:%u而不是%u"
 
-#: replication/logical/snapbuild.c:1747
+#: replication/logical/snapbuild.c:1765
 #, c-format
 msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u"
 msgstr "快照构建状态文件\"%s\"具有不被支持的版本:%u而不是%u"
 
-#: replication/logical/snapbuild.c:1819
+#: replication/logical/snapbuild.c:1864
 #, c-format
 msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u"
 msgstr "快照构建状态文件\"%s\"的校验和不匹配:现在的值是%u,正确值应该是%u"
 
-#: replication/logical/snapbuild.c:1874
+#: replication/logical/snapbuild.c:1919
 #, c-format
 msgid "Logical decoding will begin using saved snapshot."
 msgstr "逻辑解码将从使用已存的快照开始."
 
-#: replication/logical/snapbuild.c:1946
+#: replication/logical/snapbuild.c:1991
 #, c-format
 msgid "could not parse file name \"%s\""
 msgstr "无法解析文件名 \"%s\""
 
-#: replication/logical/tablesync.c:138
+#: replication/logical/tablesync.c:139
 #, c-format
 msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished"
 msgstr "订阅\"%s\"、表 \"%s\" 的逻辑复制表同步工作线程已完成"
 
-#: replication/logical/tablesync.c:685
+#: replication/logical/tablesync.c:672
 #, c-format
 msgid "could not fetch table info for table \"%s.%s\" from publisher: %s"
 msgstr "无法从发布服务器获取表\"%s.%s\"的表信息: %s"
 
-#: replication/logical/tablesync.c:691
+#: replication/logical/tablesync.c:678
 #, c-format
 msgid "table \"%s.%s\" not found on publisher"
 msgstr "在发布服务器上找不到表\"%s.%s\""
 
-#: replication/logical/tablesync.c:721
+#: replication/logical/tablesync.c:710
 #, c-format
 msgid "could not fetch table info for table \"%s.%s\": %s"
 msgstr "无法获取表\"%s.%s\"的表信息: %s"
 
-#: replication/logical/tablesync.c:791
+#: replication/logical/tablesync.c:780
 #, c-format
 msgid "could not start initial contents copy for table \"%s.%s\": %s"
 msgstr "无法启动表\"%s.%s\"的初始内容复制: %s"
 
-#: replication/logical/tablesync.c:904
+#: replication/logical/tablesync.c:894
 #, c-format
 msgid "table copy could not start transaction on publisher"
 msgstr "表复制无法在发布服务器上启动事务"
 
-#: replication/logical/tablesync.c:926
+#: replication/logical/tablesync.c:916
 #, c-format
 msgid "table copy could not finish transaction on publisher"
 msgstr "表复制无法完成发布服务器上的事务"
 
-#: replication/logical/worker.c:307
+#: replication/logical/worker.c:290
 #, c-format
 msgid "processing remote data for replication target relation \"%s.%s\" column \"%s\", remote type %s, local type %s"
 msgstr "正在处理复制目标关系\"%s.%s\" 列\"%s\",远程类型%s,本地类型%s的远程数据"
 
-#: replication/logical/worker.c:528
+#: replication/logical/worker.c:511
 #, c-format
 msgid "ORIGIN message sent out of order"
 msgstr "源消息发送不正常"
 
-#: replication/logical/worker.c:661
+#: replication/logical/worker.c:645
 #, c-format
 msgid "publisher did not send replica identity column expected by the logical replication target relation \"%s.%s\""
 msgstr "发布服务器没有发送逻辑复制目标关系\"%s.%s\"所需的副本标识列"
 
-#: replication/logical/worker.c:668
+#: replication/logical/worker.c:652
 #, c-format
 msgid "logical replication target relation \"%s.%s\" has neither REPLICA IDENTITY index nor PRIMARY KEY and published relation does not have REPLICA IDENTITY FULL"
 msgstr "逻辑复制目标关系\"%s.%s\"既没有REPLICA IDENTITY索引,也没有PRIMARY KEY,并且发布的关系没有REPLICA IDENTITY FULL"
 
-#: replication/logical/worker.c:1007
+#: replication/logical/worker.c:993
 #, c-format
 msgid "invalid logical replication message type \"%c\""
 msgstr "无效的逻辑复制消息类型 \"%c\""
 
-#: replication/logical/worker.c:1148
+#: replication/logical/worker.c:1134
 #, c-format
 msgid "data stream from publisher has ended"
 msgstr "来自发布服务器的数据流已结束"
 
-#: replication/logical/worker.c:1307
+#: replication/logical/worker.c:1289
 #, c-format
 msgid "terminating logical replication worker due to timeout"
 msgstr "由于超时而终止逻辑复制工作线程"
 
-#: replication/logical/worker.c:1455
+#: replication/logical/worker.c:1437
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was removed"
 msgstr "订阅\"%s\"的逻辑复制应用工作线程将停止,因为该订阅已被删除。"
 
-#: replication/logical/worker.c:1469
+#: replication/logical/worker.c:1451
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was disabled"
 msgstr "订阅\"%s\"的逻辑复制应用工作线程将停止,因为该订阅已被禁用"
 
-#: replication/logical/worker.c:1483
+#: replication/logical/worker.c:1465
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will restart because the connection information was changed"
 msgstr "订阅\"%s\"的逻辑复制应用工作线程将重新启动,因为连接信息已更改"
 
-#: replication/logical/worker.c:1497
+#: replication/logical/worker.c:1479
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will restart because subscription was renamed"
 msgstr "订阅\"%s\"的逻辑复制应用工作线程将重新启动,因为订阅已重命名"
 
-#: replication/logical/worker.c:1514
+#: replication/logical/worker.c:1496
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will restart because the replication slot name was changed"
 msgstr "订阅\"%s\"的逻辑复制应用工作线程将重新启动,因为复制槽名称已更改"
 
-#: replication/logical/worker.c:1528
+#: replication/logical/worker.c:1510
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will restart because subscription's publications were changed"
 msgstr "订阅\"%s\"的逻辑复制应用工作线程将重新启动,因为订阅的发布已更改"
 
-#: replication/logical/worker.c:1631
+#: replication/logical/worker.c:1614
 #, c-format
 msgid "logical replication apply worker for subscription %u will not start because the subscription was removed during startup"
 msgstr "订阅%u的逻辑复制应用工作线程将不会启动,因为在启动期间已删除该订阅"
 
-#: replication/logical/worker.c:1643
+#: replication/logical/worker.c:1626
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will not start because the subscription was disabled during startup"
 msgstr "订阅\"%s\"的逻辑复制应用工作进程将不会启动,因为在启动过程中禁用了订阅"
 
-#: replication/logical/worker.c:1661
+#: replication/logical/worker.c:1644
 #, c-format
 msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started"
 msgstr "订阅\"%s\"、表\"%s\"的逻辑复制表同步工作线程已启动"
 
-#: replication/logical/worker.c:1665
+#: replication/logical/worker.c:1648
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" has started"
 msgstr "订阅\"%s\"的逻辑复制应用工作线程已启动 "
 
-#: replication/logical/worker.c:1705
+#: replication/logical/worker.c:1687
 #, c-format
 msgid "subscription has no replication slot set"
 msgstr "订阅没有复制槽集"
@@ -18066,705 +18037,740 @@ msgstr "所有的复制槽都在使用中"
 msgid "Free one or increase max_replication_slots."
 msgstr "释放一个槽或者增大max_replication_slots的值."
 
-#: replication/slot.c:387
+#: replication/slot.c:387 replication/slotfuncs.c:663
 #, c-format
 msgid "replication slot \"%s\" does not exist"
 msgstr "复制槽名 \"%s\" 不存在"
 
-#: replication/slot.c:398 replication/slot.c:948
+#: replication/slot.c:398 replication/slot.c:947
 #, c-format
 msgid "replication slot \"%s\" is active for PID %d"
 msgstr "复制槽 \"%s\" 正用于 PID %d"
 
-#: replication/slot.c:632 replication/slot.c:1141 replication/slot.c:1495
+#: replication/slot.c:631 replication/slot.c:1139 replication/slot.c:1499
 #, c-format
 msgid "could not remove directory \"%s\""
 msgstr "无法删除目录 \"%s\""
 
-#: replication/slot.c:983
+#: replication/slot.c:982
 #, c-format
 msgid "replication slots can only be used if max_replication_slots > 0"
 msgstr "复制槽只有当 max_replication_slots > 0时才能使用"
 
-#: replication/slot.c:988
+#: replication/slot.c:987
 #, c-format
 msgid "replication slots can only be used if wal_level >= replica"
 msgstr "复制槽只有当 wal_level >= replica 时才能使用"
 
-#: replication/slot.c:1427 replication/slot.c:1467
-#, c-format
-msgid "could not read file \"%s\", read %d of %u: %m"
-msgstr "无法读取文件 \"%s\", 读到了%d字节,从%u:%m处"
-
-#: replication/slot.c:1436
+#: replication/slot.c:1437
 #, c-format
 msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u"
 msgstr "复制槽文件\"%s\"具有错误的magic号:%u,正确的应该是%u"
 
-#: replication/slot.c:1443
+#: replication/slot.c:1444
 #, c-format
 msgid "replication slot file \"%s\" has unsupported version %u"
 msgstr "复制槽文件 \"%s\" 的版本号%u不被支持"
 
-#: replication/slot.c:1450
+#: replication/slot.c:1451
 #, c-format
 msgid "replication slot file \"%s\" has corrupted length %u"
 msgstr "复制槽文件 \"%s\" 的长度 %u已损坏"
 
-#: replication/slot.c:1482
+#: replication/slot.c:1487
 #, c-format
 msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u"
 msgstr "复制槽文件\"%s\"的校验和不匹配:值为 %u,正确值应该是 %u"
 
-#: replication/slot.c:1516
+#: replication/slot.c:1521
 #, c-format
 msgid "logical replication slot \"%s\" exists, but wal_level < logical"
 msgstr "存在逻辑复制槽\"%s\",但wal_level < logical"
 
-#: replication/slot.c:1518
+#: replication/slot.c:1523
 #, c-format
 msgid "Change wal_level to be logical or higher."
 msgstr "将 wal_level更改为logical或更高级别."
 
-#: replication/slot.c:1522
+#: replication/slot.c:1527
 #, c-format
 msgid "physical replication slot \"%s\" exists, but wal_level < replica"
 msgstr "物理复制槽\"%s\"存在,但wal_level < replica"
 
-#: replication/slot.c:1524
+#: replication/slot.c:1529
 #, c-format
 msgid "Change wal_level to be replica or higher."
 msgstr "将wal_level更改为replica或更高级别."
 
-#: replication/slot.c:1558
+#: replication/slot.c:1563
 #, c-format
 msgid "too many replication slots active before shutdown"
 msgstr "关闭前有太多活动的复制槽"
 
-#: replication/slotfuncs.c:490
+#: replication/slotfuncs.c:526
 #, c-format
 msgid "invalid target wal lsn"
 msgstr "无效的目标wal lsn"
 
-#: replication/slotfuncs.c:512
+#: replication/slotfuncs.c:548
 #, c-format
 msgid "cannot advance replication slot that has not previously reserved WAL"
 msgstr "无法前进以前没有保留的WAL的复制槽"
 
-#: replication/slotfuncs.c:528
+#: replication/slotfuncs.c:564
 #, c-format
 msgid "cannot advance replication slot to %X/%X, minimum is %X/%X"
 msgstr "无法将复制槽前进到%X/%X,最小值为%X/%X"
 
-#: replication/syncrep.c:246
+#: replication/slotfuncs.c:670
+#, fuzzy, c-format
+#| msgid "cannot use physical replication slot for logical decoding"
+msgid "cannot copy physical replication slot \"%s\" as a logical replication slot"
+msgstr "逻辑解码不能使用物理复制槽"
+
+#: replication/slotfuncs.c:672
+#, fuzzy, c-format
+#| msgid "cannot use a logical replication slot for physical replication"
+msgid "cannot copy logical replication slot \"%s\" as a physical replication slot"
+msgstr "物理复制操作不能使用逻辑复制槽"
+
+#: replication/slotfuncs.c:681
+#, fuzzy, c-format
+#| msgid "cannot advance replication slot that has not previously reserved WAL"
+msgid "cannot copy a replication slot that doesn't reserve WAL"
+msgstr "无法前进以前没有保留的WAL的复制槽"
+
+#: replication/slotfuncs.c:746
+#, fuzzy, c-format
+#| msgid "could not create replication slot \"%s\": %s"
+msgid "could not copy replication slot \"%s\""
+msgstr "无法创建复制槽\"%s\": %s"
+
+#: replication/slotfuncs.c:748
+#, c-format
+msgid "The source replication slot was modified incompatibly during the copy operation."
+msgstr ""
+
+#: replication/syncrep.c:248
 #, c-format
 msgid "canceling the wait for synchronous replication and terminating connection due to administrator command"
 msgstr "取消等待同步复制,听从管理员命令终断连接"
 
-#: replication/syncrep.c:247 replication/syncrep.c:264
+#: replication/syncrep.c:249 replication/syncrep.c:266
 #, c-format
 msgid "The transaction has already committed locally, but might not have been replicated to the standby."
 msgstr "事务已经在本地提交, 但有可能还没完成到备用节点的复制."
 
-#: replication/syncrep.c:263
+#: replication/syncrep.c:265
 #, c-format
 msgid "canceling wait for synchronous replication due to user request"
 msgstr "听从用户请求,取消等待同步复制"
 
-#: replication/syncrep.c:397
+#: replication/syncrep.c:398
 #, c-format
 msgid "standby \"%s\" now has synchronous standby priority %u"
 msgstr "备用节点 \"%s\" 现在拥有同步备用优先级: %u"
 
-#: replication/syncrep.c:460
+#: replication/syncrep.c:461
 #, c-format
 msgid "standby \"%s\" is now a synchronous standby with priority %u"
 msgstr "后备 \"%s\" 现在是具有优先级 %u 的一个同步后备"
 
-#: replication/syncrep.c:464
+#: replication/syncrep.c:465
 #, c-format
 msgid "standby \"%s\" is now a candidate for quorum synchronous standby"
 msgstr "待机 \"%s\"现在是仲裁同步待机的候选"
 
-#: replication/syncrep.c:1164
+#: replication/syncrep.c:1165
 #, c-format
 msgid "synchronous_standby_names parser failed"
 msgstr "synchronous_standby_names 解析失败"
 
-#: replication/syncrep.c:1170
+#: replication/syncrep.c:1171
 #, c-format
 msgid "number of synchronous standbys (%d) must be greater than zero"
 msgstr "同步备用的数目(%d)必须大于零"
 
-#: replication/walreceiver.c:169
+#: replication/walreceiver.c:160
 #, c-format
 msgid "terminating walreceiver process due to administrator command"
 msgstr "由于管理员命令中断walreceiver进程"
 
-#: replication/walreceiver.c:309
+#: replication/walreceiver.c:276
 #, c-format
 msgid "could not connect to the primary server: %s"
 msgstr "无法连接到主用服务器:%s"
 
-#: replication/walreceiver.c:359
+#: replication/walreceiver.c:322
 #, c-format
 msgid "database system identifier differs between the primary and standby"
 msgstr "在主用服务器和备用服务器之间,数据库系统标识符是不一样的。"
 
-#: replication/walreceiver.c:360
+#: replication/walreceiver.c:323
 #, c-format
 msgid "The primary's identifier is %s, the standby's identifier is %s."
 msgstr "主用服务器的标识符是%s,备用服务器的标识符是%s。"
 
-#: replication/walreceiver.c:371
+#: replication/walreceiver.c:333
 #, c-format
 msgid "highest timeline %u of the primary is behind recovery timeline %u"
 msgstr "主服务器上的最高时间线%u还在恢复时间线%u的后边"
 
-#: replication/walreceiver.c:407
+#: replication/walreceiver.c:369
 #, c-format
 msgid "started streaming WAL from primary at %X/%X on timeline %u"
 msgstr "在时间点: %X/%X (时间安排%u)启动日志的流操作"
 
-#: replication/walreceiver.c:412
+#: replication/walreceiver.c:374
 #, c-format
 msgid "restarted WAL streaming at %X/%X on timeline %u"
 msgstr "在%X/%X处时间线%u上重启WAL流操作"
 
-#: replication/walreceiver.c:441
+#: replication/walreceiver.c:403
 #, c-format
 msgid "cannot continue WAL streaming, recovery has already ended"
 msgstr "无法继续进行WAL流复制操作,恢复已经结束"
 
-#: replication/walreceiver.c:478
+#: replication/walreceiver.c:440
 #, c-format
 msgid "replication terminated by primary server"
 msgstr "复制由主用服务器终止"
 
-#: replication/walreceiver.c:479
+#: replication/walreceiver.c:441
 #, c-format
 msgid "End of WAL reached on timeline %u at %X/%X."
 msgstr "WAL结束时,到了时间线%u和地址%X/%X."
 
-#: replication/walreceiver.c:574
+#: replication/walreceiver.c:529
 #, c-format
 msgid "terminating walreceiver due to timeout"
 msgstr "由于超时, 中止walreceiver进程"
 
-#: replication/walreceiver.c:614
+#: replication/walreceiver.c:567
 #, c-format
 msgid "primary server contains no more WAL on requested timeline %u"
 msgstr "主服务器 在时间点 %u不再有WAL"
 
-#: replication/walreceiver.c:629 replication/walreceiver.c:982
+#: replication/walreceiver.c:582 replication/walreceiver.c:922
 #, c-format
 msgid "could not close log segment %s: %m"
 msgstr "无法关闭日志段%s: %m"
 
-#: replication/walreceiver.c:754
+#: replication/walreceiver.c:700
 #, c-format
 msgid "fetching timeline history file for timeline %u from primary server"
 msgstr "从主服务器的时间点%u获取时间点历史文件"
 
-#: replication/walreceiver.c:1036
+#: replication/walreceiver.c:976
 #, 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:494
+#: replication/walsender.c:497
 #, c-format
 msgid "could not seek to beginning of file \"%s\": %m"
 msgstr "无法查找到文件\"%s\"的起始位置: %m"
 
-#: replication/walsender.c:535
+#: replication/walsender.c:548
 #, c-format
 msgid "IDENTIFY_SYSTEM has not been run before START_REPLICATION"
 msgstr "IDENTIFY_SYSTEM在START_REPLICATION之前未运行"
 
-#: replication/walsender.c:552
+#: replication/walsender.c:565
 #, c-format
 msgid "cannot use a logical replication slot for physical replication"
 msgstr "物理复制操作不能使用逻辑复制槽"
 
-#: replication/walsender.c:615
+#: replication/walsender.c:628
 #, 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:619
+#: replication/walsender.c:632
 #, c-format
 msgid "This server's history forked from timeline %u at %X/%X."
 msgstr "服务器的历史时间线在时间线%u,地址%X/%X处产生了分支."
 
-#: replication/walsender.c:664
+#: replication/walsender.c:677
 #, 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:893
-#, c-format
-msgid "CREATE_REPLICATION_SLOT ... EXPORT_SNAPSHOT must not be called inside a transaction"
-msgstr "不能在事务内部调用CREATE_REPLICATION_SLOT ... EXPORT_SNAPSHOT"
+#. translator: %s is a CREATE_REPLICATION_SLOT statement
+#: replication/walsender.c:907
+#, fuzzy, c-format
+#| msgid "%s cannot run inside a subtransaction"
+msgid "%s must not be called inside a transaction"
+msgstr "%s 无法在一个子事物中运行"
 
-#: replication/walsender.c:902
-#, c-format
-msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called inside a transaction"
-msgstr "必须在事务内部调用CREATE_REPLICATION_SLOT ... USE_SNAPSHOT"
+#. translator: %s is a CREATE_REPLICATION_SLOT statement
+#: replication/walsender.c:917
+#, fuzzy, c-format
+#| msgid "%s cannot run inside a subtransaction"
+msgid "%s must be called inside a transaction"
+msgstr "%s 无法在一个子事物中运行"
 
-#: replication/walsender.c:907
-#, c-format
-msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called in REPEATABLE READ isolation mode transaction"
+#. translator: %s is a CREATE_REPLICATION_SLOT statement
+#: replication/walsender.c:923
+#, fuzzy, c-format
+#| msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called in REPEATABLE READ isolation mode transaction"
+msgid "%s must be called in REPEATABLE READ isolation mode transaction"
 msgstr "必须在REPEATABLE READ隔离模式事务中调用CREATE_REPLICATION_SLOT ... USE_SNAPSHOT"
 
-#: replication/walsender.c:912
-#, c-format
-msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called before any query"
-msgstr "在任何查询之前必须调用CREATE_REPLICATION_SLOT ... USE_SNAPSHOT"
+#. translator: %s is a CREATE_REPLICATION_SLOT statement
+#: replication/walsender.c:929
+#, fuzzy, c-format
+#| msgid "SET TRANSACTION SNAPSHOT must be called before any query"
+msgid "%s must be called before any query"
+msgstr "SET TRANSACTION SNAPSHOT 必须在任何查询之前调用"
 
-#: replication/walsender.c:917
-#, c-format
-msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must not be called in a subtransaction"
-msgstr "不能在子事务中调用CREATE_REPLICATION_SLOT ... USE_SNAPSHOT"
+#. translator: %s is a CREATE_REPLICATION_SLOT statement
+#: replication/walsender.c:935
+#, fuzzy, c-format
+#| msgid "%s is not allowed in a SQL function"
+msgid "%s must not be called in a subtransaction"
+msgstr "%s 不允许在一个 SQL 函数中"
 
-#: replication/walsender.c:1063
+#: replication/walsender.c:1082
 #, c-format
 msgid "terminating walsender process after promotion"
 msgstr "在提升后, 中断walreceiver进程"
 
-#: replication/walsender.c:1448
+#: replication/walsender.c:1453
 #, c-format
 msgid "cannot execute new commands while WAL sender is in stopping mode"
 msgstr "当WAL sender处于停止模式时,无法执行新命令"
 
-#: replication/walsender.c:1481
+#: replication/walsender.c:1486
 #, c-format
 msgid "received replication command: %s"
 msgstr "收到的复制命令:%s"
 
-#: replication/walsender.c:1497 tcop/fastpath.c:279 tcop/postgres.c:1033
-#: tcop/postgres.c:1357 tcop/postgres.c:1617 tcop/postgres.c:2023
-#: tcop/postgres.c:2396 tcop/postgres.c:2475
+#: replication/walsender.c:1502 tcop/fastpath.c:279 tcop/postgres.c:1103
+#: tcop/postgres.c:1426 tcop/postgres.c:1684 tcop/postgres.c:2077
+#: tcop/postgres.c:2463 tcop/postgres.c:2542
 #, c-format
 msgid "current transaction is aborted, commands ignored until end of transaction block"
 msgstr "当前事务被终止, 事务块结束之前的查询被忽略"
 
-#: replication/walsender.c:1562
+#: replication/walsender.c:1570
 #, c-format
 msgid "cannot execute SQL commands in WAL sender for physical replication"
 msgstr "无法在WAL sender中执行用于物理复制的SQL命令"
 
-#: replication/walsender.c:1610 replication/walsender.c:1626
+#: replication/walsender.c:1618 replication/walsender.c:1634
 #, c-format
 msgid "unexpected EOF on standby connection"
 msgstr "在备用服务器连接上的出现意外的EOF"
 
-#: replication/walsender.c:1640
+#: replication/walsender.c:1648
 #, c-format
 msgid "unexpected standby message type \"%c\", after receiving CopyDone"
 msgstr "在接收CopyDone后出现意外的消息类型\"%c\""
 
-#: replication/walsender.c:1678
+#: replication/walsender.c:1686
 #, c-format
 msgid "invalid standby message type \"%c\""
 msgstr "无效的备用节点消息类型 \"%c\""
 
-#: replication/walsender.c:1719
+#: replication/walsender.c:1727
 #, c-format
 msgid "unexpected message type \"%c\""
 msgstr "意外的消息类型\"%c\""
 
-#: replication/walsender.c:2097
+#: replication/walsender.c:2145
 #, c-format
 msgid "terminating walsender process due to replication timeout"
 msgstr "由于复制超时, 中断walreceiver进程"
 
-#: replication/walsender.c:2181
+#: replication/walsender.c:2222
 #, c-format
 msgid "\"%s\" has now caught up with upstream server"
 msgstr "现在,\"%s\"已赶上上游服务器"
 
-#: replication/walsender.c:2290
-#, c-format
-msgid "number of requested standby connections exceeds max_wal_senders (currently %d)"
-msgstr "所要求的备用服务器连接数超过了参数max_wal_senders的值(当前设置为%d)"
+#: replication/walsender.c:2481
+#, fuzzy, c-format
+#| msgid "could not read from log segment %s, offset %u, length %lu: %m"
+msgid "could not read from log segment %s, offset %u, length %zu: %m"
+msgstr "无法在日志段%s,偏移量为%u, 长度为%lu的位置上进行读操作: %m"
 
-#: rewrite/rewriteDefine.c:112 rewrite/rewriteDefine.c:980
+#: rewrite/rewriteDefine.c:112 rewrite/rewriteDefine.c:989
 #, c-format
 msgid "rule \"%s\" for relation \"%s\" already exists"
 msgstr "关系 \"%2$s\" 的规则 \"%1$s\" 已经存在"
 
-#: rewrite/rewriteDefine.c:296
+#: rewrite/rewriteDefine.c:301
 #, c-format
 msgid "rule actions on OLD are not implemented"
 msgstr "在 OLD 上的规则动作没有实现"
 
-#: rewrite/rewriteDefine.c:297
+#: rewrite/rewriteDefine.c:302
 #, c-format
 msgid "Use views or triggers instead."
 msgstr "请使用视图或触发器代替."
 
-#: rewrite/rewriteDefine.c:301
+#: rewrite/rewriteDefine.c:306
 #, c-format
 msgid "rule actions on NEW are not implemented"
 msgstr "在 NEW 上的规则动作没有实现"
 
-#: rewrite/rewriteDefine.c:302
+#: rewrite/rewriteDefine.c:307
 #, c-format
 msgid "Use triggers instead."
 msgstr "请使用触发器代替."
 
-#: rewrite/rewriteDefine.c:315
+#: rewrite/rewriteDefine.c:320
 #, c-format
 msgid "INSTEAD NOTHING rules on SELECT are not implemented"
 msgstr "在 SELECT 上的 INSTEAD NOTHING 规则没有实现"
 
-#: rewrite/rewriteDefine.c:316
+#: rewrite/rewriteDefine.c:321
 #, c-format
 msgid "Use views instead."
 msgstr "请使用视图代替."
 
-#: rewrite/rewriteDefine.c:324
+#: rewrite/rewriteDefine.c:329
 #, c-format
 msgid "multiple actions for rules on SELECT are not implemented"
 msgstr "在 SELECT 上的多动作规则没有实现"
 
-#: rewrite/rewriteDefine.c:334
+#: rewrite/rewriteDefine.c:339
 #, c-format
 msgid "rules on SELECT must have action INSTEAD SELECT"
 msgstr "在 SELECT 上的规则必须有 INSTEAD SELECT 动作"
 
-#: rewrite/rewriteDefine.c:342
+#: rewrite/rewriteDefine.c:347
 #, c-format
 msgid "rules on SELECT must not contain data-modifying statements in WITH"
 msgstr "SELECT上的规则: 不能在WITH子句中包含数据修改操作"
 
-#: rewrite/rewriteDefine.c:350
+#: rewrite/rewriteDefine.c:355
 #, c-format
 msgid "event qualifications are not implemented for rules on SELECT"
 msgstr "在 SELECT 上规则的事件条件没有实现"
 
-#: rewrite/rewriteDefine.c:377
+#: rewrite/rewriteDefine.c:382
 #, c-format
 msgid "\"%s\" is already a view"
 msgstr "\"%s\" 已经是一个视图了"
 
-#: rewrite/rewriteDefine.c:401
+#: rewrite/rewriteDefine.c:406
 #, c-format
 msgid "view rule for \"%s\" must be named \"%s\""
 msgstr "用于 \"%s\" 的视图规则必须命名为 \"%s\""
 
-#: rewrite/rewriteDefine.c:428
+#: rewrite/rewriteDefine.c:434
 #, c-format
 msgid "cannot convert partitioned table \"%s\" to a view"
 msgstr "无法将分区表\"%s\"转换为视图"
 
-#: rewrite/rewriteDefine.c:434
+#: rewrite/rewriteDefine.c:440
 #, c-format
 msgid "cannot convert partition \"%s\" to a view"
 msgstr "无法将分区\"%s\"转换为视图"
 
-#: rewrite/rewriteDefine.c:442
+#: rewrite/rewriteDefine.c:449
 #, c-format
 msgid "could not convert table \"%s\" to a view because it is not empty"
 msgstr "无法把表 \"%s\" 转化为视图, 因为它不是空的"
 
-#: rewrite/rewriteDefine.c:450
+#: rewrite/rewriteDefine.c:458
 #, c-format
 msgid "could not convert table \"%s\" to a view because it has triggers"
 msgstr "无法把表 \"%s\" 转换为视图, 因为它有触发器"
 
-#: rewrite/rewriteDefine.c:452
+#: rewrite/rewriteDefine.c:460
 #, c-format
 msgid "In particular, the table cannot be involved in any foreign key relationships."
 msgstr "特别是在任何外键关系中不能涉及表"
 
-#: rewrite/rewriteDefine.c:457
+#: rewrite/rewriteDefine.c:465
 #, c-format
 msgid "could not convert table \"%s\" to a view because it has indexes"
 msgstr "无法把表 \"%s\" 转换为视图, 因为它有索引"
 
-#: rewrite/rewriteDefine.c:463
+#: rewrite/rewriteDefine.c:471
 #, c-format
 msgid "could not convert table \"%s\" to a view because it has child tables"
 msgstr "无法把表 \"%s\" 转换为视图, 因为它有子表"
 
-#: rewrite/rewriteDefine.c:469
+#: rewrite/rewriteDefine.c:477
 #, c-format
 msgid "could not convert table \"%s\" to a view because it has row security enabled"
 msgstr "无法把表\"%s\"转换为视图,因为它的行级安全性被启用"
 
-#: rewrite/rewriteDefine.c:475
+#: rewrite/rewriteDefine.c:483
 #, c-format
 msgid "could not convert table \"%s\" to a view because it has row security policies"
 msgstr "无法把表\"%s\"转换为视图,因为它有行级安全性策略"
 
-#: rewrite/rewriteDefine.c:502
+#: rewrite/rewriteDefine.c:510
 #, c-format
 msgid "cannot have multiple RETURNING lists in a rule"
 msgstr "在一个规则中不能有多个RETURNING列表"
 
-#: rewrite/rewriteDefine.c:507
+#: rewrite/rewriteDefine.c:515
 #, c-format
 msgid "RETURNING lists are not supported in conditional rules"
 msgstr "在条件规则中不支持RETURNING列表"
 
-#: rewrite/rewriteDefine.c:511
+#: rewrite/rewriteDefine.c:519
 #, c-format
 msgid "RETURNING lists are not supported in non-INSTEAD rules"
 msgstr "在非INSTEAD规则中不支持RETURNING列表"
 
-#: rewrite/rewriteDefine.c:675
+#: rewrite/rewriteDefine.c:683
 #, c-format
 msgid "SELECT rule's target list has too many entries"
 msgstr "SELECT 规则的目标列表的记录太多"
 
-#: rewrite/rewriteDefine.c:676
+#: rewrite/rewriteDefine.c:684
 #, c-format
 msgid "RETURNING list has too many entries"
 msgstr "RETURNING列表中的项太多."
 
-#: rewrite/rewriteDefine.c:703
+#: rewrite/rewriteDefine.c:711
 #, c-format
 msgid "cannot convert relation containing dropped columns to view"
 msgstr "无法转换包含已删除字段的关系为视图"
 
-#: rewrite/rewriteDefine.c:704
+#: rewrite/rewriteDefine.c:712
 #, c-format
 msgid "cannot create a RETURNING list for a relation containing dropped columns"
 msgstr "无法为一个包含有被删除列的关系创建一个 RETURNING 列表"
 
-#: rewrite/rewriteDefine.c:710
+#: rewrite/rewriteDefine.c:718
 #, c-format
 msgid "SELECT rule's target entry %d has different column name from column \"%s\""
 msgstr "SELECT 规则的目标记录 %d 的字段名和字段 \"%s\" 不同"
 
-#: rewrite/rewriteDefine.c:712
+#: rewrite/rewriteDefine.c:720
 #, c-format
 msgid "SELECT target entry is named \"%s\"."
 msgstr "SELECT 目标项命名为\"%s\"."
 
-#: rewrite/rewriteDefine.c:721
+#: rewrite/rewriteDefine.c:729
 #, c-format
 msgid "SELECT rule's target entry %d has different type from column \"%s\""
 msgstr "SELECT 规则的目标记录 %d 和字段 \"%s\" 的类型不同"
 
-#: rewrite/rewriteDefine.c:723
+#: rewrite/rewriteDefine.c:731
 #, c-format
 msgid "RETURNING list's entry %d has different type from column \"%s\""
 msgstr "RETURNING列表中的第%d项与列\"%s\"的类型不同"
 
-#: rewrite/rewriteDefine.c:726 rewrite/rewriteDefine.c:750
+#: rewrite/rewriteDefine.c:734 rewrite/rewriteDefine.c:758
 #, c-format
 msgid "SELECT target entry has type %s, but column has type %s."
 msgstr "SELECT 目标项类型为%s, 但其列类型为%s."
 
-#: rewrite/rewriteDefine.c:729 rewrite/rewriteDefine.c:754
+#: rewrite/rewriteDefine.c:737 rewrite/rewriteDefine.c:762
 #, c-format
 msgid "RETURNING list entry has type %s, but column has type %s."
 msgstr "RETURNING列表项类型为%s, 但是其列类型为%s."
 
-#: rewrite/rewriteDefine.c:745
+#: rewrite/rewriteDefine.c:753
 #, c-format
 msgid "SELECT rule's target entry %d has different size from column \"%s\""
 msgstr "SELECT 规则的目标记录 %d 与字段 \"%s\" 的大小不同"
 
-#: rewrite/rewriteDefine.c:747
+#: rewrite/rewriteDefine.c:755
 #, c-format
 msgid "RETURNING list's entry %d has different size from column \"%s\""
 msgstr "在RETURNING列表中的第%d项的大小与列 \"%s\"不同"
 
-#: rewrite/rewriteDefine.c:764
+#: rewrite/rewriteDefine.c:772
 #, c-format
 msgid "SELECT rule's target list has too few entries"
 msgstr "SELECT 规则的目标列表记录数太少"
 
-#: rewrite/rewriteDefine.c:765
+#: rewrite/rewriteDefine.c:773
 #, c-format
 msgid "RETURNING list has too few entries"
 msgstr "RETURNING 列表后面的项太少"
 
-#: rewrite/rewriteDefine.c:857 rewrite/rewriteDefine.c:971
+#: rewrite/rewriteDefine.c:866 rewrite/rewriteDefine.c:980
 #: rewrite/rewriteSupport.c:109
 #, c-format
 msgid "rule \"%s\" for relation \"%s\" does not exist"
 msgstr "关系 \"%2$s\" 的 \"%1$s\" 规则不存在"
 
-#: rewrite/rewriteDefine.c:990
+#: rewrite/rewriteDefine.c:999
 #, c-format
 msgid "renaming an ON SELECT rule is not allowed"
 msgstr "不允许重命名一个ON SELECT规则"
 
-#: rewrite/rewriteHandler.c:541
+#: rewrite/rewriteHandler.c:544
 #, c-format
 msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten"
 msgstr "WITH 查询名 \"%s\" 看起来好像在某规则行为和查询重写里同时出现"
 
-#: rewrite/rewriteHandler.c:601
+#: rewrite/rewriteHandler.c:604
 #, c-format
 msgid "cannot have RETURNING lists in multiple rules"
 msgstr "无法在多个规则中拥有RETURNING列表"
 
-#: rewrite/rewriteHandler.c:823
+#: rewrite/rewriteHandler.c:813 rewrite/rewriteHandler.c:825
 #, c-format
 msgid "cannot insert into column \"%s\""
 msgstr "无法插入到列\"%s\""
 
-#: rewrite/rewriteHandler.c:824 rewrite/rewriteHandler.c:839
+#: rewrite/rewriteHandler.c:814 rewrite/rewriteHandler.c:836
 #, c-format
 msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS."
 msgstr "列\"%s\"是定义为GENERATED ALWAYS的标识列."
 
-#: rewrite/rewriteHandler.c:826
+#: rewrite/rewriteHandler.c:816
 #, c-format
 msgid "Use OVERRIDING SYSTEM VALUE to override."
 msgstr "使用OVERRIDING SYSTEM VALUE覆盖."
 
-#: rewrite/rewriteHandler.c:838
+#: rewrite/rewriteHandler.c:835 rewrite/rewriteHandler.c:842
 #, c-format
 msgid "column \"%s\" can only be updated to DEFAULT"
 msgstr "列\"%s\"只能更新为默认值"
 
-#: rewrite/rewriteHandler.c:1000 rewrite/rewriteHandler.c:1018
+#: rewrite/rewriteHandler.c:1011 rewrite/rewriteHandler.c:1029
 #, c-format
 msgid "multiple assignments to same column \"%s\""
 msgstr "对同一列\"%s\"进行了多次分配"
 
-#: rewrite/rewriteHandler.c:1921
+#: rewrite/rewriteHandler.c:2059
 #, c-format
 msgid "infinite recursion detected in policy for relation \"%s\""
 msgstr "在关系\"%s\"的策略中检测到无限循环"
 
-#: rewrite/rewriteHandler.c:2241
+#: rewrite/rewriteHandler.c:2379
 msgid "Junk view columns are not updatable."
 msgstr "废弃视图列不可更新."
 
-#: rewrite/rewriteHandler.c:2246
+#: rewrite/rewriteHandler.c:2384
 msgid "View columns that are not columns of their base relation are not updatable."
 msgstr "不属于基础关系的列的那些视图列不能用于更新操作."
 
-#: rewrite/rewriteHandler.c:2249
+#: rewrite/rewriteHandler.c:2387
 msgid "View columns that refer to system columns are not updatable."
 msgstr "引用系统列的视图列不能用于更新操作."
 
-#: rewrite/rewriteHandler.c:2252
+#: rewrite/rewriteHandler.c:2390
 msgid "View columns that return whole-row references are not updatable."
 msgstr "返回整行引用的视图列不能更新"
 
-#: rewrite/rewriteHandler.c:2313
+#: rewrite/rewriteHandler.c:2451
 msgid "Views containing DISTINCT are not automatically updatable."
 msgstr "包含DISTINCT的视图列不能自动更新."
 
-#: rewrite/rewriteHandler.c:2316
+#: rewrite/rewriteHandler.c:2454
 msgid "Views containing GROUP BY are not automatically updatable."
 msgstr "包含 GROUP BY 的视图列不能自动更新."
 
-#: rewrite/rewriteHandler.c:2319
+#: rewrite/rewriteHandler.c:2457
 msgid "Views containing HAVING are not automatically updatable."
 msgstr "包含 HAVING 的视图列不能自动更新."
 
-#: rewrite/rewriteHandler.c:2322
+#: rewrite/rewriteHandler.c:2460
 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable."
 msgstr "包含 UNION, INTERSECT, 或 EXCEPT 不能用于自动更新."
 
-#: rewrite/rewriteHandler.c:2325
+#: rewrite/rewriteHandler.c:2463
 msgid "Views containing WITH are not automatically updatable."
 msgstr "包含 WITH 的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2328
+#: rewrite/rewriteHandler.c:2466
 msgid "Views containing LIMIT or OFFSET are not automatically updatable."
 msgstr "包含 LIMIT 或 OFFSET 的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2340
+#: rewrite/rewriteHandler.c:2478
 msgid "Views that return aggregate functions are not automatically updatable."
 msgstr "返回聚集函数的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2343
+#: rewrite/rewriteHandler.c:2481
 msgid "Views that return window functions are not automatically updatable."
 msgstr "返回窗口函数的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2346
+#: rewrite/rewriteHandler.c:2484
 msgid "Views that return set-returning functions are not automatically updatable."
 msgstr "返回自返回函数的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2353 rewrite/rewriteHandler.c:2357
-#: rewrite/rewriteHandler.c:2365
+#: rewrite/rewriteHandler.c:2491 rewrite/rewriteHandler.c:2495
+#: rewrite/rewriteHandler.c:2503
 msgid "Views that do not select from a single table or view are not automatically updatable."
 msgstr "不来自单表或单视图的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2368
+#: rewrite/rewriteHandler.c:2506
 msgid "Views containing TABLESAMPLE are not automatically updatable."
 msgstr "包含TABLESAMPLE的视图不能自动更新。"
 
-#: rewrite/rewriteHandler.c:2392
+#: rewrite/rewriteHandler.c:2530
 msgid "Views that have no updatable columns are not automatically updatable."
 msgstr "没有更新列的视图不能自动更新."
 
-#: rewrite/rewriteHandler.c:2849
+#: rewrite/rewriteHandler.c:2987
 #, c-format
 msgid "cannot insert into column \"%s\" of view \"%s\""
 msgstr "无法插入列\"%s\"到视图\"%s\""
 
-#: rewrite/rewriteHandler.c:2857
+#: rewrite/rewriteHandler.c:2995
 #, c-format
 msgid "cannot update column \"%s\" of view \"%s\""
 msgstr "无法更新视图 \"%2$s\" 的字段 \"%1$s\""
 
-#: rewrite/rewriteHandler.c:3327
+#: rewrite/rewriteHandler.c:3471
 #, c-format
 msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH"
 msgstr "DO INSTEAD NOTHING规则不支持在WITH子句中执行数据修改操作"
 
-#: rewrite/rewriteHandler.c:3341
+#: rewrite/rewriteHandler.c:3485
 #, c-format
 msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH"
 msgstr "DO INSTEAD 条件规则不支持在WITH子句中执行数据修改操作"
 
-#: rewrite/rewriteHandler.c:3345
+#: rewrite/rewriteHandler.c:3489
 #, c-format
 msgid "DO ALSO rules are not supported for data-modifying statements in WITH"
 msgstr "DO ALSO 规则不支持在WITH子句中执行数据修改操作"
 
-#: rewrite/rewriteHandler.c:3350
+#: rewrite/rewriteHandler.c:3494
 #, c-format
 msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH"
 msgstr "多语句 DO INSTEAD 规则不支持在WITH子句中执行数据修改操作"
 
-#: rewrite/rewriteHandler.c:3569
+#: rewrite/rewriteHandler.c:3744
 #, c-format
 msgid "cannot perform INSERT RETURNING on relation \"%s\""
 msgstr "无法在关系\"%s\"上执行INSERT RETURNING "
 
-#: rewrite/rewriteHandler.c:3571
+#: rewrite/rewriteHandler.c:3746
 #, 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:3576
+#: rewrite/rewriteHandler.c:3751
 #, c-format
 msgid "cannot perform UPDATE RETURNING on relation \"%s\""
 msgstr "无法在关系\"%s\"执行UPDATE RETURNING"
 
-#: rewrite/rewriteHandler.c:3578
+#: rewrite/rewriteHandler.c:3753
 #, c-format
 msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause."
 msgstr "您需要一个无条件的 ON UPDATE DO INSTEAD 规则."
 
-#: rewrite/rewriteHandler.c:3583
+#: rewrite/rewriteHandler.c:3758
 #, c-format
 msgid "cannot perform DELETE RETURNING on relation \"%s\""
 msgstr "无法在关系 \"%s\"上执行DELETE RETURNING"
 
-#: rewrite/rewriteHandler.c:3585
+#: rewrite/rewriteHandler.c:3760
 #, 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:3603
+#: rewrite/rewriteHandler.c:3778
 #, 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:3660
+#: rewrite/rewriteHandler.c:3835
 #, c-format
 msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries"
 msgstr "WITH 不能用于按规则可重写为多个查询的查询语句中"
@@ -18784,226 +18790,90 @@ msgstr "未实现在视图上的WHERE CURRENT OF操作"
 msgid "NEW variables in ON UPDATE rules cannot reference columns that are part of a multiple assignment in the subject UPDATE command"
 msgstr "ON UPDATE规则中的NEW变量不能引用主UPDATE命令中作为一个多重赋值的组成部分的列"
 
-#: scan.l:445
-msgid "unterminated /* comment"
-msgstr "/* 注释没有结束"
+#: snowball/dict_snowball.c:197
+#, c-format
+msgid "no Snowball stemmer available for language \"%s\" and encoding \"%s\""
+msgstr "对于语言\"%s\" 和编码\"%s\"来说,没有有效的Snowball stemmer "
 
-#: scan.l:474
-msgid "unterminated bit string literal"
-msgstr "未结束的bit字符串常量"
+#: snowball/dict_snowball.c:220 tsearch/dict_ispell.c:74
+#: tsearch/dict_simple.c:49
+#, c-format
+msgid "multiple StopWords parameters"
+msgstr "多个 StopWords参数"
 
-#: scan.l:495
-msgid "unterminated hexadecimal string literal"
-msgstr "未结束的16进制字符串常量"
+#: snowball/dict_snowball.c:229
+#, c-format
+msgid "multiple Language parameters"
+msgstr "多语言参数"
 
-#: scan.l:545
+#: snowball/dict_snowball.c:236
 #, c-format
-msgid "unsafe use of string constant with Unicode escapes"
-msgstr "这种使用带有Unicode转义字符的字符串常量的方法不安全."
+msgid "unrecognized Snowball parameter: \"%s\""
+msgstr "未识别Snowball参数: \"%s\""
 
-#: scan.l:546
+#: snowball/dict_snowball.c:244
 #, c-format
-msgid "String constants with Unicode escapes cannot be used when standard_conforming_strings is off."
-msgstr "当参数standard_conforming_strings处于关闭状态时,无法使用带有Unicode转义字符的字符串常量."
+msgid "missing Language parameter"
+msgstr "缺少语言参数"
 
-#: scan.l:592 scan.l:791
-msgid "invalid Unicode escape character"
-msgstr "无效Unicode转义字符"
+#: statistics/dependencies.c:673 statistics/dependencies.c:726
+#: statistics/mcv.c:1310 statistics/mcv.c:1341 statistics/mvdistinct.c:348
+#: statistics/mvdistinct.c:401 utils/adt/pseudotypes.c:94
+#: utils/adt/pseudotypes.c:122 utils/adt/pseudotypes.c:147
+#: utils/adt/pseudotypes.c:171 utils/adt/pseudotypes.c:282
+#: utils/adt/pseudotypes.c:307 utils/adt/pseudotypes.c:335
+#: utils/adt/pseudotypes.c:363 utils/adt/pseudotypes.c:393
+#, c-format
+msgid "cannot accept a value of type %s"
+msgstr "无法接受一个类型%s的值"
 
-#: scan.l:618 scan.l:626 scan.l:634 scan.l:635 scan.l:636 scan.l:1380
-#: scan.l:1407 scan.l:1411 scan.l:1449 scan.l:1453 scan.l:1475 scan.l:1485
-msgid "invalid Unicode surrogate pair"
-msgstr "æ\97 æ\95\88ç\9a\84Unicode代ç\90\86项对(surrogate pair)"
+#: statistics/extended_stats.c:119
+#, c-format
+msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\""
+msgstr "æ\97 æ³\95为å\85³ç³»\"%3$s.%4$s\"计ç®\97ç»\9f计对象\"%1$s.%2$s\""
 
-#: scan.l:640
+#: statistics/mcv.c:1166 utils/adt/jsonfuncs.c:1709 utils/adt/jsonfuncs.c:3266
+#: utils/adt/jsonfuncs.c:3621
 #, c-format
-msgid "invalid Unicode escape"
-msgstr "无效的Unicode转义字符"
+msgid "function returning record called in context that cannot accept type record"
+msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用"
 
-#: scan.l:641
+#: storage/buffer/bufmgr.c:545 storage/buffer/bufmgr.c:658
 #, c-format
-msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX."
-msgstr "Unicode转义字符必须是\\uXXXX或\\UXXXXXXXX."
+msgid "cannot access temporary tables of other sessions"
+msgstr "无法访问其它会话的临时表"
 
-#: scan.l:652
+#: storage/buffer/bufmgr.c:814
 #, c-format
-msgid "unsafe use of \\' in a string literal"
-msgstr "å\9c¨å­\97符串常é\87\8f中使ç\94¨\\ä¸\8då®\89å\85¨"
+msgid "unexpected data beyond EOF in block %u of relation %s"
+msgstr "å\85³ç³» \"%2$s\" ç\9a\84å\9d\97 %1$u ä¸­ç\9a\84EOFå\90\8eé\9d¢å\87ºç\8e°æ\9cªæ\9c\9fæ\9c\9bç\9a\84æ\95°æ\8d®"
 
-#: scan.l:653
+#: storage/buffer/bufmgr.c:816
 #, c-format
-msgid "Use '' to write quotes in strings. \\' is insecure in client-only encodings."
-msgstr "使用''在字符串中表示引号,在只有客户端使用的编码中使用\\'不安全."
+msgid "This has been seen to occur with buggy kernels; consider updating your system."
+msgstr "这是由于内核缺陷所致;请考虑更新您的操作系统."
 
-#: scan.l:728
-msgid "unterminated dollar-quoted string"
-msgstr "未结束的用$符号引用的字符串"
+#: storage/buffer/bufmgr.c:914
+#, c-format
+msgid "invalid page in block %u of relation %s; zeroing out page"
+msgstr "关系 \"%2$s\" 中的块 %1$u 无效的页;正在对页进行清零操作"
 
-#: scan.l:745 scan.l:771 scan.l:786
-msgid "zero-length delimited identifier"
-msgstr "长度为0的分隔标示符"
+#: storage/buffer/bufmgr.c:4056
+#, c-format
+msgid "could not write block %u of %s"
+msgstr "无法写入%2$s的块%1$u"
 
-#: scan.l:806 syncrep_scanner.l:91
-msgid "unterminated quoted identifier"
-msgstr "未结束的引用标识符"
-
-#: scan.l:969
-msgid "operator too long"
-msgstr "操作符太长"
-
-#. translator: %s is typically the translation of "syntax error"
-#: scan.l:1125
-#, c-format
-msgid "%s at end of input"
-msgstr "%s 在输入的末尾"
-
-#. translator: first %s is typically the translation of "syntax error"
-#: scan.l:1133
-#, c-format
-msgid "%s at or near \"%s\""
-msgstr "%s 在 \"%s\" 或附近的"
-
-#: scan.l:1294 scan.l:1326
-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:1322 scan.l:1467
-msgid "invalid Unicode escape value"
-msgstr "无效的Unicode转义值"
-
-#: scan.l:1531
-#, c-format
-msgid "nonstandard use of \\' in a string literal"
-msgstr "在字符串常量中以不标准的方法使用\\'"
-
-#: scan.l:1532
-#, c-format
-msgid "Use '' to write quotes in strings, or use the escape string syntax (E'...')."
-msgstr "使用''或者转义字符串语法(E'...')将字符串引起来."
-
-#: scan.l:1541
-#, c-format
-msgid "nonstandard use of \\\\ in a string literal"
-msgstr "在字符串常量中以不标准的方法使用\\\\ "
-
-#: scan.l:1542
-#, c-format
-msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'."
-msgstr "为反斜线使用转移字符串语法,例如.,E'\\\\'."
-
-#: scan.l:1556
-#, c-format
-msgid "nonstandard use of escape in a string literal"
-msgstr "在字符串常量中以不标准的方法使用转义字符"
-
-#: scan.l:1557
-#, c-format
-msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'."
-msgstr "对转移字符使用转义字符串语法,例如 E'\\r\\n'."
-
-#: snowball/dict_snowball.c:177
-#, c-format
-msgid "no Snowball stemmer available for language \"%s\" and encoding \"%s\""
-msgstr "对于语言\"%s\" 和编码\"%s\"来说,没有有效的Snowball stemmer "
-
-#: snowball/dict_snowball.c:200 tsearch/dict_ispell.c:74
-#: tsearch/dict_simple.c:49
-#, c-format
-msgid "multiple StopWords parameters"
-msgstr "多个 StopWords参数"
-
-#: snowball/dict_snowball.c:209
-#, c-format
-msgid "multiple Language parameters"
-msgstr "多语言参数"
-
-#: snowball/dict_snowball.c:216
-#, c-format
-msgid "unrecognized Snowball parameter: \"%s\""
-msgstr "未识别Snowball参数: \"%s\""
-
-#: snowball/dict_snowball.c:224
-#, c-format
-msgid "missing Language parameter"
-msgstr "缺少语言参数"
-
-#: statistics/dependencies.c:534
-#, c-format
-msgid "invalid zero-length item array in MVDependencies"
-msgstr "MVDependencies中的零长度项数组无效"
-
-#: statistics/dependencies.c:672 statistics/dependencies.c:725
-#: statistics/mvdistinct.c:341 statistics/mvdistinct.c:394
-#: utils/adt/pseudotypes.c:94 utils/adt/pseudotypes.c:122
-#: utils/adt/pseudotypes.c:147 utils/adt/pseudotypes.c:171
-#: utils/adt/pseudotypes.c:282 utils/adt/pseudotypes.c:307
-#: utils/adt/pseudotypes.c:335 utils/adt/pseudotypes.c:363
-#: utils/adt/pseudotypes.c:393
-#, c-format
-msgid "cannot accept a value of type %s"
-msgstr "无法接受一个类型%s的值"
-
-#: statistics/extended_stats.c:104
-#, c-format
-msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\""
-msgstr "无法为关系\"%3$s.%4$s\"计算统计对象\"%1$s.%2$s\""
-
-#: statistics/mvdistinct.c:262
-#, c-format
-msgid "invalid ndistinct magic %08x (expected %08x)"
-msgstr "无效的 ndistinct magic %08x(应为%08x)"
-
-#: statistics/mvdistinct.c:267
-#, c-format
-msgid "invalid ndistinct type %d (expected %d)"
-msgstr "无效的ndistinct类型%d(应为%d)"
-
-#: statistics/mvdistinct.c:272
-#, c-format
-msgid "invalid zero-length item array in MVNDistinct"
-msgstr "MVNDistinct中的无效零长度项数组"
-
-#: statistics/mvdistinct.c:281
-#, c-format
-msgid "invalid MVNDistinct size %zd (expected at least %zd)"
-msgstr "无效的MVNDistinct大小%zd(至少应为%zd) "
-
-#: 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:807
-#, c-format
-msgid "unexpected data beyond EOF in block %u of relation %s"
-msgstr "关系 \"%2$s\" 的块 %1$u 中的EOF后面出现未期望的数据"
-
-#: 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:907
-#, c-format
-msgid "invalid page in block %u of relation %s; zeroing out page"
-msgstr "关系 \"%2$s\" 中的块 %1$u 无效的页;正在对页进行清零操作"
-
-#: storage/buffer/bufmgr.c:4013
-#, c-format
-msgid "could not write block %u of %s"
-msgstr "无法写入%2$s的块%1$u"
-
-#: storage/buffer/bufmgr.c:4015
+#: storage/buffer/bufmgr.c:4058
 #, c-format
 msgid "Multiple failures --- write error might be permanent."
 msgstr "多次失败 --- 写错误可能是永久性的"
 
-#: storage/buffer/bufmgr.c:4036 storage/buffer/bufmgr.c:4055
+#: storage/buffer/bufmgr.c:4079 storage/buffer/bufmgr.c:4098
 #, c-format
 msgid "writing block %u of relation %s"
 msgstr "写入关系%2$s的块%1$u"
 
-#: storage/buffer/bufmgr.c:4358
+#: storage/buffer/bufmgr.c:4401
 #, c-format
 msgid "snapshot too old"
 msgstr "快照太旧"
@@ -19018,228 +18888,214 @@ msgstr "没有可用的本地缓冲区"
 msgid "cannot access temporary tables during a parallel operation"
 msgstr "不能在并行操作期间访问临时表"
 
-#: storage/file/buffile.c:317
+#: storage/file/buffile.c:319
 #, c-format
 msgid "could not open temporary file \"%s\" from BufFile \"%s\": %m"
 msgstr "无法打开BufFile \"%2$s\"中的临时文件\"%1$s\" :%3$m"
 
-#: storage/file/buffile.c:814
+#: storage/file/buffile.c:796
 #, c-format
 msgid "could not determine size of temporary file \"%s\" from BufFile \"%s\": %m"
 msgstr "无法从BufFile \"%2$s\"确定临时文件\"%1$s\"的大小:%3$m"
 
-#: storage/file/fd.c:451 storage/file/fd.c:523 storage/file/fd.c:559
+#: storage/file/fd.c:458 storage/file/fd.c:530 storage/file/fd.c:566
 #, c-format
 msgid "could not flush dirty data: %m"
 msgstr "无法刷出脏数据:%m"
 
-#: storage/file/fd.c:481
+#: storage/file/fd.c:488
 #, c-format
 msgid "could not determine dirty data size: %m"
 msgstr "无法确定脏数据的尺寸:%m"
 
-#: storage/file/fd.c:533
+#: storage/file/fd.c:540
 #, c-format
 msgid "could not munmap() while flushing data: %m"
 msgstr "在刷写数据时不能 munmap():%m"
 
-#: storage/file/fd.c:734
+#: storage/file/fd.c:748
 #, 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:828
+#: storage/file/fd.c:842
 #, c-format
 msgid "getrlimit failed: %m"
 msgstr "函数getrlimit执行失败: %m"
 
-#: storage/file/fd.c:918
+#: storage/file/fd.c:932
 #, c-format
 msgid "insufficient file descriptors available to start server process"
 msgstr "启动服务器进程的有效文件描述符不足"
 
-#: storage/file/fd.c:919
+#: storage/file/fd.c:933
 #, c-format
 msgid "System allows %d, we need at least %d."
 msgstr "系统允许 %d, 我们至少需要 %d."
 
-#: storage/file/fd.c:970 storage/file/fd.c:2379 storage/file/fd.c:2489
-#: storage/file/fd.c:2640
+#: storage/file/fd.c:984 storage/file/fd.c:2246 storage/file/fd.c:2356
+#: storage/file/fd.c:2507
 #, c-format
 msgid "out of file descriptors: %m; release and retry"
 msgstr "超出文件描述符: %m; 释放再重试"
 
-#: storage/file/fd.c:1313
+#: storage/file/fd.c:1284
 #, c-format
 msgid "temporary file: path \"%s\", size %lu"
 msgstr "临时文件: 路径 \"%s\", 大小%lu"
 
-#: storage/file/fd.c:1445
+#: storage/file/fd.c:1415
 #, c-format
 msgid "cannot create temporary directory \"%s\": %m"
 msgstr "无法创建临时目录 \"%s\": %m"
 
-#: storage/file/fd.c:1452
+#: storage/file/fd.c:1422
 #, c-format
 msgid "cannot create temporary subdirectory \"%s\": %m"
 msgstr "无法创建临时子目录\"%s\": %m"
 
-#: storage/file/fd.c:1645
+#: storage/file/fd.c:1615
 #, c-format
 msgid "could not create temporary file \"%s\": %m"
 msgstr "无法创建临时文件\"%s\": %m"
 
 # command.c:1148
-#: storage/file/fd.c:1680
+#: storage/file/fd.c:1650
 #, c-format
 msgid "could not open temporary file \"%s\": %m"
 msgstr "无法打开临时文件 \"%s\": %m"
 
 # command.c:1148
-#: storage/file/fd.c:1721
+#: storage/file/fd.c:1691
 #, c-format
 msgid "cannot unlink temporary file \"%s\": %m"
 msgstr "无法取消链接临时文件 \"%s\": %m"
 
-#: storage/file/fd.c:2010
+#: storage/file/fd.c:1955
 #, c-format
 msgid "temporary file size exceeds temp_file_limit (%dkB)"
 msgstr "临时文件大小超过最大允许值temp_file_limit(%dkB)"
 
-#: storage/file/fd.c:2355 storage/file/fd.c:2414
+#: storage/file/fd.c:2222 storage/file/fd.c:2281
 #, c-format
 msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\""
 msgstr "试图打开文件 \"%2$s\"超出了最大描述符范围值 (%1$d)"
 
-#: storage/file/fd.c:2459
+#: storage/file/fd.c:2326
 #, c-format
 msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\""
 msgstr "试图执行命令 \"%2$s\"时,超出了最大描述符范围值 (%1$d)"
 
-#: storage/file/fd.c:2616
+#: storage/file/fd.c:2483
 #, c-format
 msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\""
 msgstr "试图打开目录 \"%2$s\"时,超出了最大描述符范围值 (%1$d)"
 
-#: storage/file/fd.c:2707
+#: storage/file/fd.c:2574
 #, c-format
 msgid "could not read directory \"%s\": %m"
 msgstr "无法读取目录 \"%s\": %m"
 
 # command.c:1148
-#: storage/file/fd.c:3139
+#: storage/file/fd.c:3006
 #, c-format
 msgid "unexpected file found in temporary-files directory: \"%s\""
 msgstr "在临时文件目录中发现意外文件: \"%s\""
 
-#: storage/file/fd.c:3461
+#: storage/file/fd.c:3331
 #, c-format
 msgid "could not rmdir directory \"%s\": %m"
 msgstr "无法删除目录\"%s\": %m"
 
-#: storage/file/sharedfileset.c:93
+#: storage/file/sharedfileset.c:95
 #, c-format
 msgid "could not attach to a SharedFileSet that is already destroyed"
 msgstr "无法附加到已被破坏的SharedFileSet"
 
-#: storage/ipc/dsm.c:351
+#: storage/ipc/dsm.c:343
 #, c-format
 msgid "dynamic shared memory control segment is corrupt"
 msgstr "动态共享内存控制段被毁坏"
 
-#: storage/ipc/dsm.c:398
-#, c-format
-msgid "dynamic shared memory is disabled"
-msgstr "动态共享内存被禁用"
-
-#: storage/ipc/dsm.c:399
-#, c-format
-msgid "Set dynamic_shared_memory_type to a value other than \"none\"."
-msgstr "设置 dynamic_shared_memory_type  的值为非 \"none\"."
-
-#: storage/ipc/dsm.c:419
+#: storage/ipc/dsm.c:404
 #, c-format
 msgid "dynamic shared memory control segment is not valid"
 msgstr "动态共享内存控制段无效"
 
-#: storage/ipc/dsm.c:515
+#: storage/ipc/dsm.c:500
 #, c-format
 msgid "too many dynamic shared memory segments"
 msgstr "太多动态共享内存段"
 
-#: storage/ipc/dsm_impl.c:264 storage/ipc/dsm_impl.c:373
-#: storage/ipc/dsm_impl.c:594 storage/ipc/dsm_impl.c:709
-#: storage/ipc/dsm_impl.c:880 storage/ipc/dsm_impl.c:1024
+#: storage/ipc/dsm_impl.c:230 storage/ipc/dsm_impl.c:517
+#: storage/ipc/dsm_impl.c:621 storage/ipc/dsm_impl.c:792
 #, c-format
 msgid "could not unmap shared memory segment \"%s\": %m"
 msgstr "无法解除映射共享内存段 \"%s\": %m"
 
-#: storage/ipc/dsm_impl.c:274 storage/ipc/dsm_impl.c:604
-#: storage/ipc/dsm_impl.c:719 storage/ipc/dsm_impl.c:890
+#: storage/ipc/dsm_impl.c:240 storage/ipc/dsm_impl.c:527
+#: storage/ipc/dsm_impl.c:631 storage/ipc/dsm_impl.c:802
 #, c-format
 msgid "could not remove shared memory segment \"%s\": %m"
 msgstr "无法删除共享内存段 \"%s\": %m"
 
-#: storage/ipc/dsm_impl.c:295 storage/ipc/dsm_impl.c:790
-#: storage/ipc/dsm_impl.c:904
+#: storage/ipc/dsm_impl.c:261 storage/ipc/dsm_impl.c:702
+#: storage/ipc/dsm_impl.c:816
 #, c-format
 msgid "could not open shared memory segment \"%s\": %m"
 msgstr "无法打开共享内存段 \"%s\": %m"
 
-#: storage/ipc/dsm_impl.c:319 storage/ipc/dsm_impl.c:620
-#: storage/ipc/dsm_impl.c:835 storage/ipc/dsm_impl.c:928
+#: storage/ipc/dsm_impl.c:285 storage/ipc/dsm_impl.c:543
+#: storage/ipc/dsm_impl.c:747 storage/ipc/dsm_impl.c:840
 #, c-format
 msgid "could not stat shared memory segment \"%s\": %m"
 msgstr "无法统计共享内存段 \"%s\": %m"
 
-#: storage/ipc/dsm_impl.c:347 storage/ipc/dsm_impl.c:947
-#: storage/ipc/dsm_impl.c:997
+#: storage/ipc/dsm_impl.c:311 storage/ipc/dsm_impl.c:891
 #, c-format
 msgid "could not resize shared memory segment \"%s\" to %zu bytes: %m"
 msgstr "无法重新设置共享内存段\"%s\"的大小为%zu字节: %m"
 
-#: storage/ipc/dsm_impl.c:397 storage/ipc/dsm_impl.c:641
-#: storage/ipc/dsm_impl.c:811 storage/ipc/dsm_impl.c:1048
+#: storage/ipc/dsm_impl.c:332 storage/ipc/dsm_impl.c:564
+#: storage/ipc/dsm_impl.c:723 storage/ipc/dsm_impl.c:913
 #, c-format
 msgid "could not map shared memory segment \"%s\": %m"
 msgstr "无法映射共享内存段 \"%s\": %m"
 
-#: storage/ipc/dsm_impl.c:576
+#: storage/ipc/dsm_impl.c:499
 #, c-format
 msgid "could not get shared memory segment: %m"
 msgstr "无法得到共享内存段: %m"
 
-#: storage/ipc/dsm_impl.c:775
+#: storage/ipc/dsm_impl.c:687
 #, c-format
 msgid "could not create shared memory segment \"%s\": %m"
 msgstr "无法创建共享内存段\"%s\": %m"
 
-#: storage/ipc/dsm_impl.c:1090 storage/ipc/dsm_impl.c:1138
+#: storage/ipc/dsm_impl.c:924
+#, fuzzy, c-format
+#| msgid "could not open shared memory segment \"%s\": %m"
+msgid "could not close shared memory segment \"%s\": %m"
+msgstr "无法打开共享内存段 \"%s\": %m"
+
+#: storage/ipc/dsm_impl.c:963 storage/ipc/dsm_impl.c:1011
 #, c-format
 msgid "could not duplicate handle for \"%s\": %m"
 msgstr "无法复制句柄 \"%s\": %m"
 
-#: storage/ipc/latch.c:829
-#, c-format
-msgid "epoll_ctl() failed: %m"
-msgstr "epoll_ctl() 失败:%m"
-
-#: storage/ipc/latch.c:1060
-#, c-format
-msgid "epoll_wait() failed: %m"
-msgstr "epoll_wait() 失败:%m"
-
-#: storage/ipc/latch.c:1182
-#, c-format
-msgid "poll() failed: %m"
+#. translator: %s is a syscall name, such as "poll()"
+#: storage/ipc/latch.c:860 storage/ipc/latch.c:1093 storage/ipc/latch.c:1219
+#, fuzzy, c-format
+#| msgid "poll() failed: %m"
+msgid "%s failed: %m"
 msgstr "poll()失败: %m"
 
-#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:905
-#: storage/lmgr/lock.c:943 storage/lmgr/lock.c:2730 storage/lmgr/lock.c:4055
-#: storage/lmgr/lock.c:4120 storage/lmgr/lock.c:4412
-#: storage/lmgr/predicate.c:2355 storage/lmgr/predicate.c:2370
-#: storage/lmgr/predicate.c:3762 storage/lmgr/predicate.c:4905
+#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:929
+#: storage/lmgr/lock.c:967 storage/lmgr/lock.c:2754 storage/lmgr/lock.c:4084
+#: storage/lmgr/lock.c:4149 storage/lmgr/lock.c:4441
+#: storage/lmgr/predicate.c:2404 storage/lmgr/predicate.c:2419
+#: storage/lmgr/predicate.c:3918 storage/lmgr/predicate.c:5075
 #: utils/hash/dynahash.c:1065
 #, c-format
 msgid "out of shared memory"
@@ -19270,32 +19126,79 @@ msgstr "没有足够的共享内存提供给数据结构\"%s\" (需要%zu个字
 msgid "requested shared memory size overflows size_t"
 msgstr "所要求的共享内存大小超过size_t"
 
-#: storage/ipc/standby.c:558 tcop/postgres.c:3056
+#: storage/ipc/signalfuncs.c:67
+#, c-format
+msgid "PID %d is not a PostgreSQL server process"
+msgstr "PID %d 不是 PostgreSQL 服务器进程"
+
+#: storage/ipc/signalfuncs.c:98 storage/lmgr/proc.c:1364
+#, c-format
+msgid "could not send signal to process %d: %m"
+msgstr "无法发送信号到进程 %d: %m"
+
+#: storage/ipc/signalfuncs.c:118
+#, c-format
+msgid "must be a superuser to cancel superuser query"
+msgstr "只有超级用户才能取消超级用户的查询"
+
+#: storage/ipc/signalfuncs.c:123
+#, c-format
+msgid "must be a member of the role whose query is being canceled or member of pg_signal_backend"
+msgstr "必须是其查询被取消的角色的一个成员或者 pg_signal_backend 的一个成员"
+
+#: storage/ipc/signalfuncs.c:142
+#, c-format
+msgid "must be a superuser to terminate superuser process"
+msgstr "只有超级用户中止超级用户的进程"
+
+#: storage/ipc/signalfuncs.c:147
+#, c-format
+msgid "must be a member of the role whose process is being terminated or member of pg_signal_backend"
+msgstr "必须是其进程被终止的角色的一个成员或者 pg_signal_backend 的一个成员"
+
+#: storage/ipc/signalfuncs.c:183
+#, c-format
+msgid "must be superuser to rotate log files with adminpack 1.0"
+msgstr "必须是超级用户才能使用adminpack 1.0旋转日志文件"
+
+#. translator: %s is a SQL function name
+#: storage/ipc/signalfuncs.c:185 utils/adt/genfile.c:223
+#, fuzzy, c-format
+#| msgid "Consider using pg_file_read(), which is part of core, instead."
+msgid "Consider using %s, which is part of core, instead."
+msgstr "考虑使用pg_file_read(),它是核心的一部分."
+
+#: storage/ipc/signalfuncs.c:191 storage/ipc/signalfuncs.c:211
+#, c-format
+msgid "rotation not possible because log collection not active"
+msgstr "日志切换无法进行,因为没有激活日志收集功能"
+
+#: storage/ipc/standby.c:558 tcop/postgres.c:3123
 #, c-format
 msgid "canceling statement due to conflict with recovery"
 msgstr "由于与恢复操作冲突,正在取消语句命令"
 
-#: storage/ipc/standby.c:559 tcop/postgres.c:2329
+#: storage/ipc/standby.c:559 tcop/postgres.c:2397
 #, c-format
 msgid "User transaction caused buffer deadlock with recovery."
 msgstr "用户事务造成了恢复操作期间缓冲区的死锁"
 
-#: storage/large_object/inv_api.c:190
+#: storage/large_object/inv_api.c:189
 #, c-format
 msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d"
 msgstr "pg_largeobject 的 OID为 %u, 页号 %d , 数据域的大小 %d为无效值"
 
-#: storage/large_object/inv_api.c:271
+#: storage/large_object/inv_api.c:270
 #, c-format
 msgid "invalid flags for opening a large object: %d"
 msgstr "打开大对象的无效标记: %d"
 
-#: storage/large_object/inv_api.c:461
+#: storage/large_object/inv_api.c:460
 #, c-format
 msgid "invalid whence setting: %d"
 msgstr "无效的根源设置: %d"
 
-#: storage/large_object/inv_api.c:633
+#: storage/large_object/inv_api.c:632
 #, c-format
 msgid "invalid large object write request size: %d"
 msgstr "无效的大对象写请求大小: %d"
@@ -19320,347 +19223,339 @@ msgstr "检测到死锁"
 msgid "See server log for query details."
 msgstr "详细信息请查看服务器日志."
 
-#: storage/lmgr/lmgr.c:767
+#: storage/lmgr/lmgr.c:815
 #, c-format
 msgid "while updating tuple (%u,%u) in relation \"%s\""
 msgstr "当更新关系\"%3$s\"的元组(%1$u, %2$u)时"
 
-#: storage/lmgr/lmgr.c:770
+#: storage/lmgr/lmgr.c:818
 #, c-format
 msgid "while deleting tuple (%u,%u) in relation \"%s\""
 msgstr "当删除关系\"%3$s\"的元组(%1$u, %2$u)时"
 
-#: storage/lmgr/lmgr.c:773
+#: storage/lmgr/lmgr.c:821
 #, c-format
 msgid "while locking tuple (%u,%u) in relation \"%s\""
 msgstr "当锁定关系\"%3$s\"的元组(%1$u, %2$u)时"
 
-#: storage/lmgr/lmgr.c:776
+#: storage/lmgr/lmgr.c:824
 #, 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:779
+#: storage/lmgr/lmgr.c:827
 #, c-format
 msgid "while inserting index tuple (%u,%u) in relation \"%s\""
 msgstr "在往关系\"%3$s\"中插入索引元组 (%1$u,%2$u) 时"
 
-#: storage/lmgr/lmgr.c:782
+#: storage/lmgr/lmgr.c:830
 #, c-format
 msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\""
 msgstr "在检查关系\"%3$s\"中元组(%1$u, %2$u)的唯一性时"
 
-#: storage/lmgr/lmgr.c:785
+#: storage/lmgr/lmgr.c:833
 #, c-format
 msgid "while rechecking updated tuple (%u,%u) in relation \"%s\""
 msgstr "重新检查关系 \"%3$s\"中已更新的元组(%1$u, %2$u)时"
 
-#: storage/lmgr/lmgr.c:788
+#: storage/lmgr/lmgr.c:836
 #, 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:1008
+#: storage/lmgr/lmgr.c:1093
 #, c-format
 msgid "relation %u of database %u"
 msgstr "数据库%2$u的关系%1$u"
 
-#: storage/lmgr/lmgr.c:1014
+#: storage/lmgr/lmgr.c:1099
 #, c-format
 msgid "extension of relation %u of database %u"
 msgstr "数据库%2$u的关系%1$u的扩展"
 
-#: storage/lmgr/lmgr.c:1020
+#: storage/lmgr/lmgr.c:1105
 #, c-format
 msgid "page %u of relation %u of database %u"
 msgstr "数据库%3$u的关系%2$u的页%1$u"
 
-#: storage/lmgr/lmgr.c:1027
+#: storage/lmgr/lmgr.c:1112
 #, 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:1035
+#: storage/lmgr/lmgr.c:1120
 #, c-format
 msgid "transaction %u"
 msgstr "事务 %u"
 
 # sql_help.h:101
 # sql_help.h:413
-#: storage/lmgr/lmgr.c:1040
+#: storage/lmgr/lmgr.c:1125
 #, c-format
 msgid "virtual transaction %d/%u"
 msgstr "虚拟事务 %d/%u"
 
-#: storage/lmgr/lmgr.c:1046
+#: storage/lmgr/lmgr.c:1131
 #, c-format
 msgid "speculative token %u of transaction %u"
 msgstr "事务%2$u的推测记号是%1$u"
 
-#: storage/lmgr/lmgr.c:1052
+#: storage/lmgr/lmgr.c:1137
 #, c-format
 msgid "object %u of class %u of database %u"
 msgstr "数据库%3$u的类%2$u的对象%1$u"
 
-#: storage/lmgr/lmgr.c:1060
+#: storage/lmgr/lmgr.c:1145
 #, c-format
 msgid "user lock [%u,%u,%u]"
 msgstr "用户锁[%u,%u,%u]"
 
-#: storage/lmgr/lmgr.c:1067
+#: storage/lmgr/lmgr.c:1152
 #, c-format
 msgid "advisory lock [%u,%u,%u,%u]"
 msgstr "建议锁 [%u,%u,%u,%u]"
 
-#: storage/lmgr/lmgr.c:1075
+#: storage/lmgr/lmgr.c:1160
 #, c-format
 msgid "unrecognized locktag type %d"
 msgstr "未知的locktag 类型  %d"
 
-#: storage/lmgr/lock.c:740
+#: storage/lmgr/lock.c:764
 #, c-format
 msgid "cannot acquire lock mode %s on database objects while recovery is in progress"
 msgstr "在恢复操作的过程中不能在数据库对象上获取锁模式%s"
 
-#: storage/lmgr/lock.c:742
+#: storage/lmgr/lock.c:766
 #, c-format
 msgid "Only RowExclusiveLock or less can be acquired on database objects during recovery."
 msgstr "在恢复操作期间只有在数据对象上获取RowExclusiveLock或者更低级别的锁。"
 
-#: storage/lmgr/lock.c:906 storage/lmgr/lock.c:944 storage/lmgr/lock.c:2731
-#: storage/lmgr/lock.c:4056 storage/lmgr/lock.c:4121 storage/lmgr/lock.c:4413
+#: storage/lmgr/lock.c:930 storage/lmgr/lock.c:968 storage/lmgr/lock.c:2755
+#: storage/lmgr/lock.c:4085 storage/lmgr/lock.c:4150 storage/lmgr/lock.c:4442
 #, c-format
 msgid "You might need to increase max_locks_per_transaction."
 msgstr "您可能需要增加参数max_locks_per_transaction."
 
-#: storage/lmgr/lock.c:3172 storage/lmgr/lock.c:3288
+#: storage/lmgr/lock.c:3201 storage/lmgr/lock.c:3317
 #, c-format
 msgid "cannot PREPARE while holding both session-level and transaction-level locks on the same object"
 msgstr "在一个对象上同时拥有会话级和事务级锁时,无法执行PREPARE"
 
-#: storage/lmgr/predicate.c:682
+#: storage/lmgr/predicate.c:703
 #, c-format
 msgid "not enough elements in RWConflictPool to record a read/write conflict"
 msgstr "RWConflictPool(读写冲突池)没有足够的元素来记录读/写冲突"
 
-#: storage/lmgr/predicate.c:683 storage/lmgr/predicate.c:711
+#: storage/lmgr/predicate.c:704 storage/lmgr/predicate.c:732
 #, c-format
 msgid "You might need to run fewer transactions at a time or increase max_connections."
 msgstr "您可能需要每次执行更少的事务,要么增大max_connections值."
 
-#: storage/lmgr/predicate.c:710
+#: storage/lmgr/predicate.c:731
 #, c-format
 msgid "not enough elements in RWConflictPool to record a potential read/write conflict"
 msgstr "RWConflictPool(读写冲突池)没有足够的元素来记录可能的读/写冲突"
 
-#: storage/lmgr/predicate.c:1515
+#: storage/lmgr/predicate.c:1538
 #, c-format
 msgid "deferrable snapshot was unsafe; trying a new one"
 msgstr "可延缓的快照不安全;请尝试使用新的快照"
 
-#: storage/lmgr/predicate.c:1604
+#: storage/lmgr/predicate.c:1627
 #, c-format
 msgid "\"default_transaction_isolation\" is set to \"serializable\"."
 msgstr "\"default_transaction_isolation\"被设置为\"可串行化\"."
 
-#: storage/lmgr/predicate.c:1605
+#: storage/lmgr/predicate.c:1628
 #, c-format
 msgid "You can use \"SET default_transaction_isolation = 'repeatable read'\" to change the default."
 msgstr "您可以使用 \"SET default_transaction_isolation = 'repeatable read'\"来改变缺省值."
 
-#: storage/lmgr/predicate.c:1645
+#: storage/lmgr/predicate.c:1679
 #, c-format
 msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE"
 msgstr "快照导入事务不能是可延缓的只读事务"
 
-#: storage/lmgr/predicate.c:1725 utils/time/snapmgr.c:621
-#: utils/time/snapmgr.c:627
+#: storage/lmgr/predicate.c:1758 utils/time/snapmgr.c:623
+#: utils/time/snapmgr.c:629
 #, c-format
 msgid "could not import the requested snapshot"
 msgstr "无法导入请求的快照"
 
-#: storage/lmgr/predicate.c:1726 utils/time/snapmgr.c:628
+#: storage/lmgr/predicate.c:1759 utils/time/snapmgr.c:630
 #, c-format
 msgid "The source process with PID %d is not running anymore."
 msgstr "PID为%d的源进程不再运行."
 
-#: storage/lmgr/predicate.c:2356 storage/lmgr/predicate.c:2371
-#: storage/lmgr/predicate.c:3763
+#: storage/lmgr/predicate.c:2405 storage/lmgr/predicate.c:2420
+#: storage/lmgr/predicate.c:3919
 #, c-format
 msgid "You might need to increase max_pred_locks_per_transaction."
 msgstr "您可能需要增大参数max_pred_locks_per_transaction的值."
 
-#: storage/lmgr/predicate.c:3917 storage/lmgr/predicate.c:4006
-#: storage/lmgr/predicate.c:4014 storage/lmgr/predicate.c:4053
-#: storage/lmgr/predicate.c:4292 storage/lmgr/predicate.c:4629
-#: storage/lmgr/predicate.c:4641 storage/lmgr/predicate.c:4683
-#: storage/lmgr/predicate.c:4721
+#: storage/lmgr/predicate.c:4075 storage/lmgr/predicate.c:4164
+#: storage/lmgr/predicate.c:4172 storage/lmgr/predicate.c:4211
+#: storage/lmgr/predicate.c:4454 storage/lmgr/predicate.c:4791
+#: storage/lmgr/predicate.c:4803 storage/lmgr/predicate.c:4846
+#: storage/lmgr/predicate.c:4884
 #, c-format
 msgid "could not serialize access due to read/write dependencies among transactions"
 msgstr "由于多个事务间的读/写依赖而无法串行访问"
 
-#: storage/lmgr/predicate.c:3919 storage/lmgr/predicate.c:4008
-#: storage/lmgr/predicate.c:4016 storage/lmgr/predicate.c:4055
-#: storage/lmgr/predicate.c:4294 storage/lmgr/predicate.c:4631
-#: storage/lmgr/predicate.c:4643 storage/lmgr/predicate.c:4685
-#: storage/lmgr/predicate.c:4723
+#: storage/lmgr/predicate.c:4077 storage/lmgr/predicate.c:4166
+#: storage/lmgr/predicate.c:4174 storage/lmgr/predicate.c:4213
+#: storage/lmgr/predicate.c:4456 storage/lmgr/predicate.c:4793
+#: storage/lmgr/predicate.c:4805 storage/lmgr/predicate.c:4848
+#: storage/lmgr/predicate.c:4886
 #, c-format
 msgid "The transaction might succeed if retried."
 msgstr "该事务如果重试,有可能成功."
 
-#: storage/lmgr/proc.c:1318
+#: storage/lmgr/proc.c:359
+#, c-format
+msgid "number of requested standby connections exceeds max_wal_senders (currently %d)"
+msgstr "所要求的备用服务器连接数超过了参数max_wal_senders的值(当前设置为%d)"
+
+#: storage/lmgr/proc.c:1335
 #, c-format
 msgid "Process %d waits for %s on %s."
 msgstr "进程%1$d等待在%3$s上的%2$s"
 
-#: storage/lmgr/proc.c:1329
+#: storage/lmgr/proc.c:1346
 #, c-format
 msgid "sending cancel to blocking autovacuum PID %d"
 msgstr "向阻塞的自动清理(autovacuum)进程%d发送取消(cancel)请求"
 
-#: storage/lmgr/proc.c:1347 utils/adt/misc.c:270
-#, c-format
-msgid "could not send signal to process %d: %m"
-msgstr "无法发送信号到进程 %d: %m"
-
-#: storage/lmgr/proc.c:1449
+#: storage/lmgr/proc.c:1466
 #, c-format
 msgid "process %d avoided deadlock for %s on %s by rearranging queue order after %ld.%03d ms"
 msgstr "进程%1$d在%4$ld.%5$03d ms通过重新安排序列顺序来避免在%3$s上的%2$s的死锁"
 
-#: storage/lmgr/proc.c:1464
+#: storage/lmgr/proc.c:1481
 #, 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:1473
+#: storage/lmgr/proc.c:1490
 #, 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:1480
+#: storage/lmgr/proc.c:1497
 #, 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:1496
+#: storage/lmgr/proc.c:1513
 #, 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失败"
 
-#: storage/page/bufpage.c:151
+#: storage/page/bufpage.c:152
 #, c-format
 msgid "page verification failed, calculated checksum %u but expected %u"
 msgstr "页校验失败,计算出的校验和为%u,但期望值是%u"
 
-#: storage/page/bufpage.c:213 storage/page/bufpage.c:507
-#: storage/page/bufpage.c:744 storage/page/bufpage.c:877
-#: storage/page/bufpage.c:973 storage/page/bufpage.c:1083
+#: storage/page/bufpage.c:216 storage/page/bufpage.c:510
+#: storage/page/bufpage.c:747 storage/page/bufpage.c:880
+#: storage/page/bufpage.c:976 storage/page/bufpage.c:1086
 #, c-format
 msgid "corrupted page pointers: lower = %u, upper = %u, special = %u"
 msgstr "已损坏的页指针:低位=%u, 高位=%u, 特定=%u"
 
-#: storage/page/bufpage.c:529
-#, c-format
-msgid "corrupted item pointer: %u"
+#: storage/page/bufpage.c:532
+#, fuzzy, c-format
+#| msgid "corrupted item pointer: %u"
+msgid "corrupted line pointer: %u"
 msgstr "已损坏的成员指针: %u"
 
-#: storage/page/bufpage.c:556 storage/page/bufpage.c:928
+#: storage/page/bufpage.c:559 storage/page/bufpage.c:931
 #, c-format
 msgid "corrupted item lengths: total %u, available space %u"
 msgstr "已损坏的成员长度: 总长度%u,可有效使用的空间%u"
 
-#: storage/page/bufpage.c:763 storage/page/bufpage.c:989
-#: storage/page/bufpage.c:1099
-#, c-format
-msgid "corrupted item pointer: offset = %u, size = %u"
+#: storage/page/bufpage.c:766 storage/page/bufpage.c:904
+#: storage/page/bufpage.c:992 storage/page/bufpage.c:1102
+#, fuzzy, c-format
+#| msgid "corrupted item pointer: offset = %u, size = %u"
+msgid "corrupted line pointer: offset = %u, size = %u"
 msgstr "已损坏的成员指针: 偏移量 = %u, 大小 = %u"
 
-#: storage/page/bufpage.c:901
-#, c-format
-msgid "corrupted item pointer: offset = %u, length = %u"
-msgstr "损坏的项指针:偏移量 = %u,长度 = %u"
-
-#: storage/smgr/md.c:448 storage/smgr/md.c:974
+#: storage/smgr/md.c:320 storage/smgr/md.c:815
 #, c-format
 msgid "could not truncate file \"%s\": %m"
 msgstr "无法截断文件 \"%s\": %m"
 
-#: storage/smgr/md.c:515
+#: storage/smgr/md.c:394
 #, c-format
 msgid "cannot extend file \"%s\" beyond %u blocks"
 msgstr "扩展文件\"%s\"的大小不能超过%u个数据块"
 
-#: storage/smgr/md.c:537 storage/smgr/md.c:754 storage/smgr/md.c:830
-#, c-format
-msgid "could not seek to block %u in file \"%s\": %m"
-msgstr "无法在文件\"%2$s\"中查找到数据块%1$u: %3$m"
-
-#: storage/smgr/md.c:545
+#: storage/smgr/md.c:409
 #, c-format
 msgid "could not extend file \"%s\": %m"
 msgstr "无法扩展文件 \"%s\": %m"
 
-#: storage/smgr/md.c:547 storage/smgr/md.c:554 storage/smgr/md.c:857
+#: storage/smgr/md.c:411 storage/smgr/md.c:418 storage/smgr/md.c:698
 #, c-format
 msgid "Check free disk space."
 msgstr "检查空闲磁盘控件."
 
-#: storage/smgr/md.c:551
+#: storage/smgr/md.c:415
 #, c-format
 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:772
+#: storage/smgr/md.c:619
 #, c-format
 msgid "could not read block %u in file \"%s\": %m"
 msgstr "无法在文件\"%2$s\"中读取块%1$u: %3$m"
 
-#: storage/smgr/md.c:788
+#: storage/smgr/md.c:635
 #, 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:848
+#: storage/smgr/md.c:689
 #, c-format
 msgid "could not write block %u in file \"%s\": %m"
 msgstr "无法在文件 \"%2$s\"中写入块%1$u: %3$m"
 
-#: storage/smgr/md.c:853
+#: storage/smgr/md.c:694
 #, 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:945
+#: storage/smgr/md.c:786
 #, 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:1000
+#: storage/smgr/md.c:841
 #, c-format
 msgid "could not truncate file \"%s\" to %u blocks: %m"
 msgstr "无法将文件\"%s\"截断到%u个数据块: %m"
 
-#: storage/smgr/md.c:1295
-#, c-format
-msgid "could not fsync file \"%s\" but retrying: %m"
-msgstr "无法对文件\"%s\"进行fsync操作但是正在重新尝试: %m"
-
-#: storage/smgr/md.c:1458
+#: storage/smgr/md.c:913
 #, c-format
 msgid "could not forward fsync request because request queue is full"
 msgstr "请求队列已满,无法转发fsync请求"
 
-#: storage/smgr/md.c:1964
+#: storage/smgr/md.c:1210
 #, c-format
 msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks"
 msgstr "无法打开文件\"%s\"(目标块%u):上一段只有%u个块"
 
-#: storage/smgr/md.c:1978
+#: storage/smgr/md.c:1224
 #, c-format
 msgid "could not open file \"%s\" (target block %u): %m"
 msgstr "无法打开文件\"%s\"(目标数据块%u): %m"
 
+#: storage/sync/sync.c:400
+#, c-format
+msgid "could not fsync file \"%s\" but retrying: %m"
+msgstr "无法对文件\"%s\"进行fsync操作但是正在重新尝试: %m"
+
 #: tcop/fastpath.c:109 tcop/fastpath.c:461 tcop/fastpath.c:591
 #, c-format
 msgid "invalid argument size %d in function call message"
@@ -19671,8 +19566,8 @@ msgstr "在函数调用信息中, 参数大小 %d 是无效的"
 msgid "fastpath function call: \"%s\" (OID %u)"
 msgstr "快捷路径函数调用: \"%s\" (OID %u)"
 
-#: tcop/fastpath.c:389 tcop/postgres.c:1218 tcop/postgres.c:1482
-#: tcop/postgres.c:1864 tcop/postgres.c:2085
+#: tcop/fastpath.c:389 tcop/postgres.c:1288 tcop/postgres.c:1551
+#: tcop/postgres.c:1918 tcop/postgres.c:2139
 #, c-format
 msgid "duration: %s ms"
 msgstr "执行时间: %s ms"
@@ -19703,17 +19598,17 @@ msgid "unexpected EOF on client connection"
 msgstr "在客户端联接上的意外 EOF"
 
 #: tcop/postgres.c:445 tcop/postgres.c:457 tcop/postgres.c:468
-#: tcop/postgres.c:480 tcop/postgres.c:4408
+#: tcop/postgres.c:480 tcop/postgres.c:4473
 #, c-format
 msgid "invalid frontend message type %d"
 msgstr "无效前端信息类型 %d"
 
-#: tcop/postgres.c:973
+#: tcop/postgres.c:1043
 #, c-format
 msgid "statement: %s"
 msgstr "语句: %s"
 
-#: tcop/postgres.c:1223
+#: tcop/postgres.c:1293
 #, c-format
 msgid "duration: %s ms  statement: %s"
 msgstr "执行时间: %s ms 语句: %s"
@@ -19731,277 +19626,277 @@ msgstr "执行时间: %s ms 语句: %s"
 # common.c:170
 # copy.c:530
 # copy.c:575
-#: tcop/postgres.c:1273
+#: tcop/postgres.c:1343
 #, c-format
 msgid "parse %s: %s"
 msgstr "解析 %s: %s"
 
-#: tcop/postgres.c:1330
+#: tcop/postgres.c:1400
 #, c-format
 msgid "cannot insert multiple commands into a prepared statement"
 msgstr "无法插入多条命令到一个准备好的语句中"
 
-#: tcop/postgres.c:1487
+#: tcop/postgres.c:1556
 #, c-format
 msgid "duration: %s ms  parse %s: %s"
 msgstr "执行时间: %s ms  解析 %s: %s"
 
-#: tcop/postgres.c:1532
+#: tcop/postgres.c:1601
 #, c-format
 msgid "bind %s to %s"
 msgstr "将%s绑定到%s"
 
-#: tcop/postgres.c:1551 tcop/postgres.c:2377
+#: tcop/postgres.c:1620 tcop/postgres.c:2444
 #, c-format
 msgid "unnamed prepared statement does not exist"
 msgstr "未命名的准备语句不存在"
 
-#: tcop/postgres.c:1594
+#: tcop/postgres.c:1661
 #, c-format
 msgid "bind message has %d parameter formats but %d parameters"
 msgstr "绑定信息有%d个参数格式,但是实际上有%d个参数"
 
-#: tcop/postgres.c:1600
+#: tcop/postgres.c:1667
 #, c-format
 msgid "bind message supplies %d parameters, but prepared statement \"%s\" requires %d"
 msgstr "绑定消息提供了%d个参数,但是已准备好语句\"%s\" 要求%d个参数"
 
-#: tcop/postgres.c:1771
+#: tcop/postgres.c:1827
 #, c-format
 msgid "incorrect binary data format in bind parameter %d"
 msgstr "在绑定参数%d中出现不正确的二进制数据"
 
-#: tcop/postgres.c:1869
+#: tcop/postgres.c:1923
 #, c-format
 msgid "duration: %s ms  bind %s%s%s: %s"
 msgstr "执行时间: %s ms 绑定%s%s%s: %s"
 
-#: tcop/postgres.c:1917 tcop/postgres.c:2461
+#: tcop/postgres.c:1971 tcop/postgres.c:2528
 #, c-format
 msgid "portal \"%s\" does not exist"
 msgstr "入口 \"%s\" 不存在"
 
-#: tcop/postgres.c:2002
+#: tcop/postgres.c:2056
 #, c-format
 msgid "%s %s%s%s: %s"
 msgstr "%s %s%s%s: %s"
 
-#: tcop/postgres.c:2004 tcop/postgres.c:2093
+#: tcop/postgres.c:2058 tcop/postgres.c:2147
 msgid "execute fetch from"
 msgstr "执行FETCH操作"
 
-#: tcop/postgres.c:2005 tcop/postgres.c:2094
+#: tcop/postgres.c:2059 tcop/postgres.c:2148
 msgid "execute"
 msgstr "执行"
 
-#: tcop/postgres.c:2090
+#: tcop/postgres.c:2144
 #, c-format
 msgid "duration: %s ms  %s %s%s%s: %s"
 msgstr "执行时间: %s ms %s%s%s%s: %s"
 
-#: tcop/postgres.c:2216
+#: tcop/postgres.c:2285
 #, c-format
 msgid "prepare: %s"
 msgstr "准备: %s"
 
-#: tcop/postgres.c:2282
+#: tcop/postgres.c:2350
 #, c-format
 msgid "parameters: %s"
 msgstr "参数: %s"
 
-#: tcop/postgres.c:2301
+#: tcop/postgres.c:2369
 #, c-format
 msgid "abort reason: recovery conflict"
 msgstr "中断原因:与恢复操作相冲突"
 
-#: tcop/postgres.c:2317
+#: tcop/postgres.c:2385
 #, c-format
 msgid "User was holding shared buffer pin for too long."
 msgstr "用户所持有共享缓存锁的时间太长了."
 
-#: tcop/postgres.c:2320
+#: tcop/postgres.c:2388
 #, c-format
 msgid "User was holding a relation lock for too long."
 msgstr "用户对一个关系正在持有的锁的时间太长了."
 
-#: tcop/postgres.c:2323
+#: tcop/postgres.c:2391
 #, c-format
 msgid "User was or might have been using tablespace that must be dropped."
 msgstr "用户正在使用一个必须被删除的表空间"
 
-#: tcop/postgres.c:2326
+#: tcop/postgres.c:2394
 #, c-format
 msgid "User query might have needed to see row versions that must be removed."
 msgstr "用户查询可能需要看到而必须被删除的行版本号"
 
 # large_obj.c:36
-#: tcop/postgres.c:2332
+#: tcop/postgres.c:2400
 #, c-format
 msgid "User was connected to a database that must be dropped."
 msgstr "用户连接到必须被删除的数据库"
 
-#: tcop/postgres.c:2657
+#: tcop/postgres.c:2724
 #, c-format
 msgid "terminating connection because of crash of another server process"
 msgstr "中断联接, 因为其它服务器进程崩溃"
 
-#: tcop/postgres.c:2658
+#: tcop/postgres.c:2725
 #, c-format
 msgid "The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory."
 msgstr "Postmaster 命令此服务器进程回滚当前事物并退出, 因为其它服务器进程不正常的退出可能毁坏了共享内存."
 
-#: tcop/postgres.c:2662 tcop/postgres.c:2986
+#: tcop/postgres.c:2729 tcop/postgres.c:3053
 #, c-format
 msgid "In a moment you should be able to reconnect to the database and repeat your command."
 msgstr "一会儿你将可以重联接数据库并且重复你的命令."
 
-#: tcop/postgres.c:2744
+#: tcop/postgres.c:2811
 #, c-format
 msgid "floating-point exception"
 msgstr "浮点异常"
 
-#: tcop/postgres.c:2745
+#: tcop/postgres.c:2812
 #, 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:2916
+#: tcop/postgres.c:2983
 #, c-format
 msgid "canceling authentication due to timeout"
 msgstr "由于超时,正在取消认证鉴权命令"
 
-#: tcop/postgres.c:2920
+#: tcop/postgres.c:2987
 #, c-format
 msgid "terminating autovacuum process due to administrator command"
 msgstr "由于管理员命令中断autovacuum进程"
 
-#: tcop/postgres.c:2924
+#: tcop/postgres.c:2991
 #, c-format
 msgid "terminating logical replication worker due to administrator command"
 msgstr "由于管理员命令而终止逻辑复制工作线程"
 
-#: tcop/postgres.c:2928
+#: tcop/postgres.c:2995
 #, c-format
 msgid "logical replication launcher shutting down"
 msgstr "逻辑复制启动程序正在关闭"
 
-#: tcop/postgres.c:2941 tcop/postgres.c:2951 tcop/postgres.c:2984
+#: tcop/postgres.c:3008 tcop/postgres.c:3018 tcop/postgres.c:3051
 #, c-format
 msgid "terminating connection due to conflict with recovery"
 msgstr "由于与恢复操作相冲突而中断连接"
 
-#: tcop/postgres.c:2957
+#: tcop/postgres.c:3024
 #, c-format
 msgid "terminating connection due to administrator command"
 msgstr "由于管理员命令中断联接"
 
 # common.c:298
-#: tcop/postgres.c:2967
+#: tcop/postgres.c:3034
 #, c-format
 msgid "connection to client lost"
 msgstr "丢失了到客户端的连接"
 
-#: tcop/postgres.c:3033
+#: tcop/postgres.c:3100
 #, c-format
 msgid "canceling statement due to lock timeout"
 msgstr "由于锁超时,取消语句操作"
 
-#: tcop/postgres.c:3040
+#: tcop/postgres.c:3107
 #, c-format
 msgid "canceling statement due to statement timeout"
 msgstr "由于语句执行超时,正在取消查询命令"
 
-#: tcop/postgres.c:3047
+#: tcop/postgres.c:3114
 #, c-format
 msgid "canceling autovacuum task"
 msgstr "正在取消自动清理任务"
 
-#: tcop/postgres.c:3070
+#: tcop/postgres.c:3137
 #, c-format
 msgid "canceling statement due to user request"
 msgstr "由于用户请求而正在取消查询"
 
-#: tcop/postgres.c:3080
+#: tcop/postgres.c:3147
 #, c-format
 msgid "terminating connection due to idle-in-transaction timeout"
 msgstr "由于空载事务超时而终止连接"
 
-#: tcop/postgres.c:3194
+#: tcop/postgres.c:3261
 #, c-format
 msgid "stack depth limit exceeded"
 msgstr "堆栈深度超过限制"
 
-#: tcop/postgres.c:3195
+#: tcop/postgres.c:3262
 #, c-format
 msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate."
 msgstr "在确定了平台的堆栈深度限制是足够大后,增加配置参数 \"max_stack_depth\"的值(当前值为%dkB)."
 
-#: tcop/postgres.c:3258
+#: tcop/postgres.c:3325
 #, c-format
 msgid "\"max_stack_depth\" must not exceed %ldkB."
 msgstr "\"max_stack_depth\"不能超过%ldkB."
 
-#: tcop/postgres.c:3260
+#: tcop/postgres.c:3327
 #, c-format
 msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent."
 msgstr "通过命令\"ulimit -s\"或本地相同的命令来增加平台的堆栈深度限制."
 
-#: tcop/postgres.c:3620
+#: tcop/postgres.c:3687
 #, c-format
 msgid "invalid command-line argument for server process: %s"
 msgstr "服务器进程:%s的无效命令行参数"
 
-#: tcop/postgres.c:3621 tcop/postgres.c:3627
+#: tcop/postgres.c:3688 tcop/postgres.c:3694
 #, c-format
 msgid "Try \"%s --help\" for more information."
 msgstr "请用 \"%s --help\" 获取更多的信息."
 
-#: tcop/postgres.c:3625
+#: tcop/postgres.c:3692
 #, c-format
 msgid "%s: invalid command-line argument: %s"
 msgstr "%s: 无效的命令行参数:%s"
 
-#: tcop/postgres.c:3687
+#: tcop/postgres.c:3754
 #, c-format
 msgid "%s: no database nor user name specified"
 msgstr "%s: 没有指定数据库, 也没有指定用户名"
 
-#: tcop/postgres.c:4316
+#: tcop/postgres.c:4381
 #, c-format
 msgid "invalid CLOSE message subtype %d"
 msgstr "无效的 CLOSE 信息子类型 %d"
 
-#: tcop/postgres.c:4351
+#: tcop/postgres.c:4416
 #, c-format
 msgid "invalid DESCRIBE message subtype %d"
 msgstr "无效的 DESCRIBE 信息子类型 %d"
 
-#: tcop/postgres.c:4429
+#: tcop/postgres.c:4494
 #, c-format
 msgid "fastpath function calls not supported in a replication connection"
 msgstr "复制连接不能使用fastpath函数调用"
 
-#: tcop/postgres.c:4433
+#: tcop/postgres.c:4498
 #, c-format
 msgid "extended query protocol not supported in a replication connection"
 msgstr "扩展的查询协议在复制连接里不支持"
 
-#: tcop/postgres.c:4610
+#: tcop/postgres.c:4675
 #, 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:645
+#: tcop/pquery.c:642
 #, c-format
 msgid "bind message has %d result formats but query has %d columns"
 msgstr "绑定信息有%d个结果格式,但是在查询中有%d列."
 
-#: tcop/pquery.c:952
+#: tcop/pquery.c:949
 #, c-format
 msgid "cursor can only scan forward"
 msgstr "游标能够只向前扫描"
 
-#: tcop/pquery.c:953
+#: tcop/pquery.c:950
 #, c-format
 msgid "Declare it with SCROLL option to enable backward scan."
 msgstr "带 SCROLL 选项声明允许向后扫描"
@@ -20035,12 +19930,12 @@ msgstr "无法在安全限制操作中执行%s"
 msgid "must be superuser to do CHECKPOINT"
 msgstr "只有超级用户可以做 CHECKPOINT"
 
-#: tcop/utility.c:1341
+#: tcop/utility.c:1353
 #, c-format
 msgid "cannot create index on partitioned table \"%s\""
 msgstr "无法在分区表 \"%s\"上创建索引"
 
-#: tcop/utility.c:1343
+#: tcop/utility.c:1355
 #, c-format
 msgid "Table \"%s\" contains partitions that are foreign tables."
 msgstr "表\"%s\"包含属于外部表的分区."
@@ -20196,6 +20091,12 @@ msgstr "无法打开字典文件 \"%s\": %m"
 msgid "invalid regular expression: %s"
 msgstr "无效的正则表达式: %s"
 
+#: tsearch/spell.c:954 tsearch/spell.c:971 tsearch/spell.c:988
+#: tsearch/spell.c:1005 tsearch/spell.c:1070 gram.y:15735 gram.y:15752
+#, c-format
+msgid "syntax error"
+msgstr "语法错误"
+
 #: tsearch/spell.c:1161 tsearch/spell.c:1726
 #, c-format
 msgid "invalid affix alias \"%s\""
@@ -20226,7 +20127,7 @@ msgstr "别名的数目超过了指定的数目%d"
 msgid "affix file contains both old-style and new-style commands"
 msgstr "附加文件同时包含老式和新式命令"
 
-#: tsearch/to_tsany.c:185 utils/adt/tsvector.c:271 utils/adt/tsvector_op.c:1134
+#: tsearch/to_tsany.c:185 utils/adt/tsvector.c:271 utils/adt/tsvector_op.c:1132
 #, c-format
 msgid "string is too long for tsvector (%d bytes, max %d bytes)"
 msgstr "字符串对于tsvector来说太长了(当前 %d字节, 最大允许值是%d字节)"
@@ -20294,12 +20195,12 @@ msgstr "ShortWord应该大于等于0"
 msgid "MaxFragments should be >= 0"
 msgstr "MaxFragments应该大于等于0"
 
-#: utils/adt/acl.c:171 utils/adt/name.c:91
+#: utils/adt/acl.c:171 utils/adt/name.c:93
 #, c-format
 msgid "identifier too long"
 msgstr "标识符太长"
 
-#: utils/adt/acl.c:172 utils/adt/name.c:92
+#: utils/adt/acl.c:172 utils/adt/name.c:94
 #, c-format
 msgid "Identifier must be less than %d characters."
 msgstr "标识符必须小于 %d 个字符."
@@ -20364,50 +20265,50 @@ msgstr "ACL数组不能包含空值"
 msgid "extra garbage at the end of the ACL specification"
 msgstr "在ACL定义的结束部分的多余的无用部分"
 
-#: utils/adt/acl.c:1213
+#: utils/adt/acl.c:1212
 #, c-format
 msgid "grant options cannot be granted back to your own grantor"
 msgstr "不能将grant选项授予您自己的授予者 "
 
-#: utils/adt/acl.c:1274
+#: utils/adt/acl.c:1273
 #, c-format
 msgid "dependent privileges exist"
 msgstr "存在依赖权限"
 
-#: utils/adt/acl.c:1275
+#: utils/adt/acl.c:1274
 #, c-format
 msgid "Use CASCADE to revoke them too."
 msgstr "使用CASCADE回收这些权限"
 
-#: utils/adt/acl.c:1537
+#: utils/adt/acl.c:1536
 #, c-format
 msgid "aclinsert is no longer supported"
 msgstr "不再支持 aclinsert"
 
-#: utils/adt/acl.c:1547
+#: utils/adt/acl.c:1546
 #, c-format
 msgid "aclremove is no longer supported"
 msgstr "不再支持 aclremove"
 
-#: utils/adt/acl.c:1633 utils/adt/acl.c:1687
+#: utils/adt/acl.c:1632 utils/adt/acl.c:1686
 #, c-format
 msgid "unrecognized privilege type: \"%s\""
 msgstr "未知的权限类型: \"%s\""
 
-#: utils/adt/acl.c:3487 utils/adt/regproc.c:102 utils/adt/regproc.c:277
+#: utils/adt/acl.c:3486 utils/adt/regproc.c:102 utils/adt/regproc.c:277
 #, c-format
 msgid "function \"%s\" does not exist"
 msgstr "函数 \"%s\" 不存在"
 
-#: utils/adt/acl.c:4959
+#: utils/adt/acl.c:4958
 #, c-format
 msgid "must be member of role \"%s\""
 msgstr "必须是角色\"%s\"的成员"
 
 #: utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:932
 #: utils/adt/arrayfuncs.c:1532 utils/adt/arrayfuncs.c:3235
-#: utils/adt/arrayfuncs.c:3375 utils/adt/arrayfuncs.c:5910
-#: utils/adt/arrayfuncs.c:6221 utils/adt/arrayutils.c:93
+#: utils/adt/arrayfuncs.c:3375 utils/adt/arrayfuncs.c:5909
+#: utils/adt/arrayfuncs.c:6250 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)"
@@ -20415,8 +20316,8 @@ msgstr "数组的大小超过了最大允许值(%d)"
 
 #: utils/adt/array_userfuncs.c:80 utils/adt/array_userfuncs.c:466
 #: utils/adt/array_userfuncs.c:546 utils/adt/json.c:1829 utils/adt/json.c:1924
-#: utils/adt/json.c:1962 utils/adt/jsonb.c:1083 utils/adt/jsonb.c:1112
-#: utils/adt/jsonb.c:1504 utils/adt/jsonb.c:1668 utils/adt/jsonb.c:1678
+#: utils/adt/json.c:1962 utils/adt/jsonb.c:1094 utils/adt/jsonb.c:1123
+#: utils/adt/jsonb.c:1517 utils/adt/jsonb.c:1681 utils/adt/jsonb.c:1691
 #, c-format
 msgid "could not determine input data type"
 msgstr "无法确定输入数据类型"
@@ -20427,15 +20328,15 @@ msgid "input data type is not an array"
 msgstr "输入数据类型不是一个数组"
 
 #: utils/adt/array_userfuncs.c:129 utils/adt/array_userfuncs.c:181
-#: utils/adt/arrayfuncs.c:1335 utils/adt/float.c:1376 utils/adt/float.c:1464
-#: utils/adt/float.c:3765 utils/adt/float.c:3779 utils/adt/int.c:755
-#: utils/adt/int.c:777 utils/adt/int.c:791 utils/adt/int.c:805
-#: utils/adt/int.c:836 utils/adt/int.c:857 utils/adt/int.c:974
-#: utils/adt/int.c:988 utils/adt/int.c:1002 utils/adt/int.c:1035
-#: utils/adt/int.c:1049 utils/adt/int.c:1063 utils/adt/int.c:1094
-#: utils/adt/int.c:1176 utils/adt/int8.c:1164 utils/adt/numeric.c:3117
-#: utils/adt/numeric.c:3126 utils/adt/varbit.c:1173 utils/adt/varbit.c:1575
-#: utils/adt/varlena.c:1053 utils/adt/varlena.c:2983
+#: utils/adt/arrayfuncs.c:1335 utils/adt/float.c:1220 utils/adt/float.c:1308
+#: utils/adt/float.c:3883 utils/adt/float.c:3897 utils/adt/int.c:759
+#: utils/adt/int.c:781 utils/adt/int.c:795 utils/adt/int.c:809
+#: utils/adt/int.c:840 utils/adt/int.c:861 utils/adt/int.c:978
+#: utils/adt/int.c:992 utils/adt/int.c:1006 utils/adt/int.c:1039
+#: utils/adt/int.c:1053 utils/adt/int.c:1067 utils/adt/int.c:1098
+#: utils/adt/int.c:1180 utils/adt/int8.c:1167 utils/adt/numeric.c:1565
+#: utils/adt/numeric.c:3240 utils/adt/varbit.c:1183 utils/adt/varbit.c:1585
+#: utils/adt/varlena.c:1075 utils/adt/varlena.c:3362
 #, c-format
 msgid "integer out of range"
 msgstr "整数超出范围"
@@ -20535,8 +20436,8 @@ msgid "Specified array dimensions do not match array contents."
 msgstr "指定的数组维数与数组内容不匹配"
 
 #: utils/adt/arrayfuncs.c:490 utils/adt/arrayfuncs.c:517
-#: utils/adt/rangetypes.c:2178 utils/adt/rangetypes.c:2186
-#: utils/adt/rowtypes.c:209 utils/adt/rowtypes.c:217
+#: utils/adt/rangetypes.c:2179 utils/adt/rangetypes.c:2187
+#: utils/adt/rowtypes.c:210 utils/adt/rowtypes.c:218
 #, c-format
 msgid "Unexpected end of input."
 msgstr "意外的输入末尾"
@@ -20568,7 +20469,7 @@ msgid "Junk after closing right brace."
 msgstr "结尾的右括号后的是无用的内容。"
 
 #: utils/adt/arrayfuncs.c:1297 utils/adt/arrayfuncs.c:3343
-#: utils/adt/arrayfuncs.c:5816
+#: utils/adt/arrayfuncs.c:5815
 #, c-format
 msgid "invalid number of dimensions: %d"
 msgstr "无效的大小值: %d"
@@ -20583,7 +20484,7 @@ msgstr "无效的数组标记"
 msgid "wrong element type"
 msgstr "错误的元素类型"
 
-#: utils/adt/arrayfuncs.c:1366 utils/adt/rangetypes.c:334
+#: utils/adt/arrayfuncs.c:1366 utils/adt/rangetypes.c:335
 #: utils/cache/lsyscache.c:2725
 #, c-format
 msgid "no binary input function available for type %s"
@@ -20594,7 +20495,7 @@ msgstr "没有类型 %s 的有效二进制输入函数"
 msgid "improper binary format in array element %d"
 msgstr "数组元素 %d 为不正确的二进制格式"
 
-#: utils/adt/arrayfuncs.c:1587 utils/adt/rangetypes.c:339
+#: utils/adt/arrayfuncs.c:1587 utils/adt/rangetypes.c:340
 #: utils/cache/lsyscache.c:2758
 #, c-format
 msgid "no binary output function available for type %s"
@@ -20607,10 +20508,10 @@ msgstr "没有实现固定长度数组的部分"
 
 #: utils/adt/arrayfuncs.c:2243 utils/adt/arrayfuncs.c:2265
 #: utils/adt/arrayfuncs.c:2314 utils/adt/arrayfuncs.c:2550
-#: utils/adt/arrayfuncs.c:2861 utils/adt/arrayfuncs.c:5802
-#: utils/adt/arrayfuncs.c:5828 utils/adt/arrayfuncs.c:5839
-#: utils/adt/json.c:2323 utils/adt/json.c:2398 utils/adt/jsonb.c:1282
-#: utils/adt/jsonb.c:1368 utils/adt/jsonfuncs.c:4295 utils/adt/jsonfuncs.c:4446
+#: utils/adt/arrayfuncs.c:2861 utils/adt/arrayfuncs.c:5801
+#: utils/adt/arrayfuncs.c:5827 utils/adt/arrayfuncs.c:5838
+#: utils/adt/json.c:2325 utils/adt/json.c:2400 utils/adt/jsonb.c:1295
+#: utils/adt/jsonb.c:1381 utils/adt/jsonfuncs.c:4295 utils/adt/jsonfuncs.c:4446
 #: utils/adt/jsonfuncs.c:4491 utils/adt/jsonfuncs.c:4538
 #, c-format
 msgid "wrong number of array subscripts"
@@ -20653,13 +20554,13 @@ msgid "null array element not allowed in this context"
 msgstr "不支持空数组元素"
 
 #: utils/adt/arrayfuncs.c:3601 utils/adt/arrayfuncs.c:3772
-#: utils/adt/arrayfuncs.c:4124
+#: utils/adt/arrayfuncs.c:4123
 #, c-format
 msgid "cannot compare arrays of different element types"
 msgstr "无法比较不同元素类型的数组"
 
-#: utils/adt/arrayfuncs.c:3948 utils/adt/rangetypes.c:1253
-#: utils/adt/rangetypes.c:1317
+#: utils/adt/arrayfuncs.c:3948 utils/adt/rangetypes.c:1254
+#: utils/adt/rangetypes.c:1318
 #, c-format
 msgid "could not identify a hash function for type %s"
 msgstr "无法为类型 %s 确认一个哈希函数"
@@ -20669,57 +20570,57 @@ msgstr "无法为类型 %s 确认一个哈希函数"
 msgid "could not identify an extended hash function for type %s"
 msgstr "无法识别类型%s的扩展哈希函数"
 
-#: utils/adt/arrayfuncs.c:5216
+#: utils/adt/arrayfuncs.c:5215
 #, c-format
 msgid "data type %s is not an array type"
 msgstr "数据类型%s不是一个数组类型"
 
-#: utils/adt/arrayfuncs.c:5271
+#: utils/adt/arrayfuncs.c:5270
 #, c-format
 msgid "cannot accumulate null arrays"
 msgstr "无法累计空值数组"
 
-#: utils/adt/arrayfuncs.c:5299
+#: utils/adt/arrayfuncs.c:5298
 #, c-format
 msgid "cannot accumulate empty arrays"
 msgstr "无法累计空数组"
 
-#: utils/adt/arrayfuncs.c:5328 utils/adt/arrayfuncs.c:5334
+#: utils/adt/arrayfuncs.c:5327 utils/adt/arrayfuncs.c:5333
 #, c-format
 msgid "cannot accumulate arrays of different dimensionality"
 msgstr "无法累积不同维度的数组"
 
-#: utils/adt/arrayfuncs.c:5700 utils/adt/arrayfuncs.c:5740
+#: utils/adt/arrayfuncs.c:5699 utils/adt/arrayfuncs.c:5739
 #, c-format
 msgid "dimension array or low bound array cannot be null"
 msgstr "维度数组或低界数组不能为空(null)"
 
-#: utils/adt/arrayfuncs.c:5803 utils/adt/arrayfuncs.c:5829
+#: utils/adt/arrayfuncs.c:5802 utils/adt/arrayfuncs.c:5828
 #, c-format
 msgid "Dimension array must be one dimensional."
 msgstr "维度数组必须是一维"
 
-#: utils/adt/arrayfuncs.c:5808 utils/adt/arrayfuncs.c:5834
+#: utils/adt/arrayfuncs.c:5807 utils/adt/arrayfuncs.c:5833
 #, c-format
 msgid "dimension values cannot be null"
 msgstr "维度值不能为空"
 
-#: utils/adt/arrayfuncs.c:5840
+#: utils/adt/arrayfuncs.c:5839
 #, c-format
 msgid "Low bound array has different size than dimensions array."
 msgstr "低界数组的大小与多维数组不同"
 
-#: utils/adt/arrayfuncs.c:6086
+#: utils/adt/arrayfuncs.c:6115
 #, c-format
 msgid "removing elements from multidimensional arrays is not supported"
 msgstr "不支持多维数组中删除元素的操作"
 
-#: utils/adt/arrayfuncs.c:6363
+#: utils/adt/arrayfuncs.c:6392
 #, c-format
 msgid "thresholds must be one-dimensional array"
 msgstr "thresholds必须是一维数组"
 
-#: utils/adt/arrayfuncs.c:6368
+#: utils/adt/arrayfuncs.c:6397
 #, c-format
 msgid "thresholds array must not contain NULLs"
 msgstr "thresholds数组不能包含空值"
@@ -20745,43 +20646,45 @@ msgid "encoding conversion from %s to ASCII not supported"
 msgstr "编码转换不支持从 %s 到 ASCII 的转换"
 
 #. translator: first %s is inet or cidr
-#: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:3788
-#: utils/adt/float.c:241 utils/adt/float.c:315 utils/adt/float.c:339
-#: utils/adt/float.c:458 utils/adt/float.c:541 utils/adt/float.c:567
-#: utils/adt/geo_ops.c:155 utils/adt/geo_ops.c:165 utils/adt/geo_ops.c:177
-#: utils/adt/geo_ops.c:209 utils/adt/geo_ops.c:254 utils/adt/geo_ops.c:264
-#: utils/adt/geo_ops.c:934 utils/adt/geo_ops.c:1320 utils/adt/geo_ops.c:1355
-#: utils/adt/geo_ops.c:1363 utils/adt/geo_ops.c:3429 utils/adt/geo_ops.c:4562
-#: utils/adt/geo_ops.c:4578 utils/adt/geo_ops.c:4585 utils/adt/mac.c:94
-#: utils/adt/mac8.c:93 utils/adt/mac8.c:166 utils/adt/mac8.c:184
-#: utils/adt/mac8.c:202 utils/adt/mac8.c:221 utils/adt/nabstime.c:1542
-#: utils/adt/network.c:58 utils/adt/numeric.c:604 utils/adt/numeric.c:631
-#: utils/adt/numeric.c:5662 utils/adt/numeric.c:5686 utils/adt/numeric.c:5710
-#: utils/adt/numeric.c:6516 utils/adt/numeric.c:6542 utils/adt/oid.c:44
+#: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:3787
+#: utils/adt/float.c:168 utils/adt/float.c:252 utils/adt/float.c:276
+#: utils/adt/float.c:390 utils/adt/float.c:474 utils/adt/float.c:501
+#: utils/adt/geo_ops.c:220 utils/adt/geo_ops.c:230 utils/adt/geo_ops.c:242
+#: utils/adt/geo_ops.c:274 utils/adt/geo_ops.c:316 utils/adt/geo_ops.c:326
+#: utils/adt/geo_ops.c:974 utils/adt/geo_ops.c:1378 utils/adt/geo_ops.c:1413
+#: utils/adt/geo_ops.c:1421 utils/adt/geo_ops.c:3360 utils/adt/geo_ops.c:4526
+#: utils/adt/geo_ops.c:4541 utils/adt/geo_ops.c:4548 utils/adt/int8.c:128
+#: utils/adt/jsonpath.c:182 utils/adt/mac.c:94 utils/adt/mac8.c:93
+#: utils/adt/mac8.c:166 utils/adt/mac8.c:184 utils/adt/mac8.c:202
+#: utils/adt/mac8.c:221 utils/adt/network.c:74 utils/adt/numeric.c:607
+#: utils/adt/numeric.c:634 utils/adt/numeric.c:5806 utils/adt/numeric.c:5830
+#: utils/adt/numeric.c:5854 utils/adt/numeric.c:6684 utils/adt/numeric.c:6710
+#: utils/adt/numutils.c:52 utils/adt/numutils.c:62 utils/adt/numutils.c:106
+#: utils/adt/numutils.c:182 utils/adt/numutils.c:258 utils/adt/oid.c:44
 #: utils/adt/oid.c:58 utils/adt/oid.c:64 utils/adt/oid.c:86
-#: utils/adt/pg_lsn.c:44 utils/adt/pg_lsn.c:50 utils/adt/tid.c:72
-#: utils/adt/tid.c:80 utils/adt/tid.c:88 utils/adt/txid.c:405
-#: utils/adt/uuid.c:136
+#: utils/adt/pg_lsn.c:43 utils/adt/pg_lsn.c:49 utils/adt/tid.c:73
+#: utils/adt/tid.c:81 utils/adt/tid.c:89 utils/adt/timestamp.c:495
+#: utils/adt/txid.c:410 utils/adt/uuid.c:136
 #, c-format
 msgid "invalid input syntax for type %s: \"%s\""
 msgstr "无效的类型 %s 输入语法: \"%s\""
 
 #: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250
-#: utils/adt/cash.c:290 utils/adt/int8.c:117 utils/adt/numutils.c:75
-#: utils/adt/numutils.c:82 utils/adt/oid.c:70 utils/adt/oid.c:109
+#: utils/adt/cash.c:290 utils/adt/int8.c:120 utils/adt/numutils.c:76
+#: utils/adt/numutils.c:83 utils/adt/numutils.c:176 utils/adt/numutils.c:252
+#: utils/adt/oid.c:70 utils/adt/oid.c:109
 #, c-format
 msgid "value \"%s\" is out of range for type %s"
 msgstr "值 \"%s\" 超出类型 %s 的范围"
 
 #: utils/adt/cash.c:652 utils/adt/cash.c:702 utils/adt/cash.c:753
 #: utils/adt/cash.c:802 utils/adt/cash.c:854 utils/adt/cash.c:904
-#: utils/adt/float.c:852 utils/adt/float.c:916 utils/adt/float.c:3526
-#: utils/adt/float.c:3589 utils/adt/geo_ops.c:4092 utils/adt/int.c:820
-#: utils/adt/int.c:936 utils/adt/int.c:1016 utils/adt/int.c:1078
-#: utils/adt/int.c:1116 utils/adt/int.c:1144 utils/adt/int8.c:592
-#: utils/adt/int8.c:650 utils/adt/int8.c:850 utils/adt/int8.c:930
-#: utils/adt/int8.c:992 utils/adt/int8.c:1072 utils/adt/numeric.c:7080
-#: utils/adt/numeric.c:7369 utils/adt/numeric.c:8381 utils/adt/timestamp.c:3238
+#: utils/adt/int.c:824 utils/adt/int.c:940 utils/adt/int.c:1020
+#: utils/adt/int.c:1082 utils/adt/int.c:1120 utils/adt/int.c:1148
+#: utils/adt/int8.c:595 utils/adt/int8.c:653 utils/adt/int8.c:853
+#: utils/adt/int8.c:933 utils/adt/int8.c:995 utils/adt/int8.c:1075
+#: utils/adt/numeric.c:7248 utils/adt/numeric.c:7537 utils/adt/numeric.c:8549
+#: utils/adt/timestamp.c:3279
 #, c-format
 msgid "division by zero"
 msgstr "除以零"
@@ -20791,8 +20694,8 @@ msgstr "除以零"
 msgid "\"char\" out of range"
 msgstr "\"char\" 超出范围"
 
-#: utils/adt/date.c:65 utils/adt/timestamp.c:95 utils/adt/varbit.c:54
-#: utils/adt/varchar.c:46
+#: utils/adt/date.c:65 utils/adt/timestamp.c:95 utils/adt/varbit.c:55
+#: utils/adt/varchar.c:49
 #, c-format
 msgid "invalid type modifier"
 msgstr "无效的类型修改器"
@@ -20807,62 +20710,60 @@ msgstr "TIME(%d)%s 精确度不能为负数"
 msgid "TIME(%d)%s precision reduced to maximum allowed, %d"
 msgstr "TIME(%d)%s精度减少到最大允许值,%d"
 
-#: utils/adt/date.c:144 utils/adt/datetime.c:1193 utils/adt/datetime.c:2104
+#: utils/adt/date.c:144 utils/adt/datetime.c:1192 utils/adt/datetime.c:2103
 #, c-format
 msgid "date/time value \"current\" is no longer supported"
 msgstr "日期/时间值 \"current\" 不再被支持了"
 
-#: utils/adt/date.c:170 utils/adt/date.c:178 utils/adt/formatting.c:3606
-#: utils/adt/formatting.c:3615
+#: utils/adt/date.c:170 utils/adt/date.c:178 utils/adt/formatting.c:3733
+#: utils/adt/formatting.c:3742
 #, c-format
 msgid "date out of range: \"%s\""
 msgstr "时间戳超出范围: \"%s\""
 
 #: utils/adt/date.c:225 utils/adt/date.c:537 utils/adt/date.c:561
-#: utils/adt/xml.c:2092
+#: utils/adt/xml.c:2228
 #, c-format
 msgid "date out of range"
 msgstr "日期超出范围"
 
-#: utils/adt/date.c:271 utils/adt/timestamp.c:564
+#: utils/adt/date.c:271 utils/adt/timestamp.c:575
 #, c-format
 msgid "date field value out of range: %d-%02d-%02d"
 msgstr "日期字段值超出范围: %d-%02d-%02d"
 
-#: utils/adt/date.c:278 utils/adt/date.c:287 utils/adt/timestamp.c:570
+#: utils/adt/date.c:278 utils/adt/date.c:287 utils/adt/timestamp.c:581
 #, c-format
 msgid "date out of range: %d-%02d-%02d"
 msgstr "日期超出范围: %d-%02d-%02d"
 
 #: utils/adt/date.c:325 utils/adt/date.c:348 utils/adt/date.c:374
-#: utils/adt/date.c:1118 utils/adt/date.c:1164 utils/adt/date.c:1704
-#: utils/adt/date.c:1735 utils/adt/date.c:1764 utils/adt/date.c:2596
-#: utils/adt/datetime.c:1677 utils/adt/formatting.c:3472
-#: utils/adt/formatting.c:3504 utils/adt/formatting.c:3581
-#: utils/adt/json.c:1621 utils/adt/json.c:1641 utils/adt/nabstime.c:459
-#: utils/adt/nabstime.c:502 utils/adt/nabstime.c:532 utils/adt/nabstime.c:575
-#: utils/adt/timestamp.c:230 utils/adt/timestamp.c:262
-#: utils/adt/timestamp.c:692 utils/adt/timestamp.c:701
-#: utils/adt/timestamp.c:779 utils/adt/timestamp.c:812
-#: utils/adt/timestamp.c:2817 utils/adt/timestamp.c:2838
-#: utils/adt/timestamp.c:2851 utils/adt/timestamp.c:2860
-#: utils/adt/timestamp.c:2868 utils/adt/timestamp.c:2923
-#: utils/adt/timestamp.c:2946 utils/adt/timestamp.c:2959
-#: utils/adt/timestamp.c:2970 utils/adt/timestamp.c:2978
-#: utils/adt/timestamp.c:3638 utils/adt/timestamp.c:3763
-#: utils/adt/timestamp.c:3804 utils/adt/timestamp.c:3894
-#: utils/adt/timestamp.c:3940 utils/adt/timestamp.c:4043
-#: utils/adt/timestamp.c:4450 utils/adt/timestamp.c:4549
-#: utils/adt/timestamp.c:4559 utils/adt/timestamp.c:4651
-#: utils/adt/timestamp.c:4753 utils/adt/timestamp.c:4763
-#: utils/adt/timestamp.c:4995 utils/adt/timestamp.c:5009
-#: utils/adt/timestamp.c:5014 utils/adt/timestamp.c:5028
-#: utils/adt/timestamp.c:5073 utils/adt/timestamp.c:5105
-#: utils/adt/timestamp.c:5112 utils/adt/timestamp.c:5145
-#: utils/adt/timestamp.c:5149 utils/adt/timestamp.c:5218
-#: utils/adt/timestamp.c:5222 utils/adt/timestamp.c:5236
-#: utils/adt/timestamp.c:5270 utils/adt/xml.c:2114 utils/adt/xml.c:2121
-#: utils/adt/xml.c:2141 utils/adt/xml.c:2148
+#: utils/adt/date.c:1118 utils/adt/date.c:1164 utils/adt/date.c:1665
+#: utils/adt/date.c:1696 utils/adt/date.c:1725 utils/adt/date.c:2557
+#: utils/adt/datetime.c:1676 utils/adt/formatting.c:3599
+#: utils/adt/formatting.c:3631 utils/adt/formatting.c:3708
+#: utils/adt/json.c:1621 utils/adt/json.c:1641 utils/adt/timestamp.c:230
+#: utils/adt/timestamp.c:262 utils/adt/timestamp.c:703
+#: utils/adt/timestamp.c:712 utils/adt/timestamp.c:790
+#: utils/adt/timestamp.c:823 utils/adt/timestamp.c:2858
+#: utils/adt/timestamp.c:2879 utils/adt/timestamp.c:2892
+#: utils/adt/timestamp.c:2901 utils/adt/timestamp.c:2909
+#: utils/adt/timestamp.c:2964 utils/adt/timestamp.c:2987
+#: utils/adt/timestamp.c:3000 utils/adt/timestamp.c:3011
+#: utils/adt/timestamp.c:3019 utils/adt/timestamp.c:3679
+#: utils/adt/timestamp.c:3804 utils/adt/timestamp.c:3845
+#: utils/adt/timestamp.c:3935 utils/adt/timestamp.c:3979
+#: utils/adt/timestamp.c:4082 utils/adt/timestamp.c:4566
+#: utils/adt/timestamp.c:4665 utils/adt/timestamp.c:4675
+#: utils/adt/timestamp.c:4767 utils/adt/timestamp.c:4869
+#: utils/adt/timestamp.c:4879 utils/adt/timestamp.c:5099
+#: utils/adt/timestamp.c:5113 utils/adt/timestamp.c:5118
+#: utils/adt/timestamp.c:5132 utils/adt/timestamp.c:5165
+#: utils/adt/timestamp.c:5214 utils/adt/timestamp.c:5221
+#: utils/adt/timestamp.c:5254 utils/adt/timestamp.c:5258
+#: utils/adt/timestamp.c:5327 utils/adt/timestamp.c:5331
+#: utils/adt/timestamp.c:5345 utils/adt/timestamp.c:5379 utils/adt/xml.c:2250
+#: utils/adt/xml.c:2257 utils/adt/xml.c:2277 utils/adt/xml.c:2284
 #, c-format
 msgid "timestamp out of range"
 msgstr "时间戳超出范围"
@@ -20873,94 +20774,84 @@ msgid "cannot subtract infinite dates"
 msgstr "无法减去无限大的日期"
 
 #: utils/adt/date.c:590 utils/adt/date.c:621 utils/adt/date.c:639
-#: utils/adt/date.c:2633 utils/adt/date.c:2643
+#: utils/adt/date.c:2594 utils/adt/date.c:2604
 #, c-format
 msgid "date out of range for timestamp"
 msgstr "日期超出了时间戳的范围"
 
-#: utils/adt/date.c:1190
-#, c-format
-msgid "cannot convert reserved abstime value to date"
-msgstr "不能转换保留 abstime 值为 date"
-
-#: utils/adt/date.c:1208 utils/adt/date.c:1214
-#, c-format
-msgid "abstime out of range for date"
-msgstr "abstime 超过了日期范围"
-
-#: utils/adt/date.c:1327 utils/adt/date.c:2091
+#: utils/adt/date.c:1278 utils/adt/date.c:2052
 #, c-format
 msgid "time out of range"
 msgstr "时间超出范围"
 
-#: utils/adt/date.c:1383 utils/adt/timestamp.c:589
+#: utils/adt/date.c:1334 utils/adt/timestamp.c:600
 #, c-format
 msgid "time field value out of range: %d:%02d:%02g"
 msgstr "日期/时间值超出范围:  %d:%02d:%02g"
 
-#: utils/adt/date.c:1893 utils/adt/date.c:2395 utils/adt/float.c:1202
-#: utils/adt/float.c:1271 utils/adt/int.c:612 utils/adt/int.c:659
-#: utils/adt/int.c:694 utils/adt/int8.c:491 utils/adt/numeric.c:2189
-#: utils/adt/timestamp.c:3287 utils/adt/timestamp.c:3318
-#: utils/adt/timestamp.c:3349
+#: utils/adt/date.c:1854 utils/adt/date.c:2356 utils/adt/float.c:1046
+#: utils/adt/float.c:1115 utils/adt/int.c:616 utils/adt/int.c:663
+#: utils/adt/int.c:698 utils/adt/int8.c:494 utils/adt/numeric.c:2203
+#: utils/adt/timestamp.c:3328 utils/adt/timestamp.c:3359
+#: utils/adt/timestamp.c:3390
 #, c-format
 msgid "invalid preceding or following size in window function"
 msgstr "窗口函数中的前导或后导大小无效"
 
-#: utils/adt/date.c:1978 utils/adt/date.c:1991
+#: utils/adt/date.c:1939 utils/adt/date.c:1952
 #, c-format
 msgid "\"time\" units \"%s\" not recognized"
 msgstr "\"time\" 单位 \"%s\" 不被认可"
 
-#: utils/adt/date.c:2099
+#: utils/adt/date.c:2060
 #, c-format
 msgid "time zone displacement out of range"
 msgstr "时间区域置换超出范围"
 
-#: utils/adt/date.c:2728 utils/adt/date.c:2741
+#: utils/adt/date.c:2689 utils/adt/date.c:2702
 #, c-format
 msgid "\"time with time zone\" units \"%s\" not recognized"
 msgstr "\"time with time zone\" 单位 \"%s\" 不被认可"
 
-#: utils/adt/date.c:2814 utils/adt/datetime.c:915 utils/adt/datetime.c:1835
-#: utils/adt/datetime.c:4625 utils/adt/timestamp.c:503
-#: utils/adt/timestamp.c:530 utils/adt/timestamp.c:5020
-#: utils/adt/timestamp.c:5228
+#: utils/adt/date.c:2775 utils/adt/datetime.c:914 utils/adt/datetime.c:1834
+#: utils/adt/datetime.c:4631 utils/adt/timestamp.c:514
+#: utils/adt/timestamp.c:541 utils/adt/timestamp.c:4165
+#: utils/adt/timestamp.c:5124 utils/adt/timestamp.c:5337
 #, c-format
 msgid "time zone \"%s\" not recognized"
 msgstr "时区 \"%s\" 不被认可"
 
-#: utils/adt/date.c:2846 utils/adt/timestamp.c:5062 utils/adt/timestamp.c:5259
+#: utils/adt/date.c:2807 utils/adt/timestamp.c:5154 utils/adt/timestamp.c:5368
 #, c-format
 msgid "interval time zone \"%s\" must not include months or days"
 msgstr "间隔时区\"%s\"不能包含月或天"
 
-#: utils/adt/datetime.c:3761 utils/adt/datetime.c:3768
+#: utils/adt/datetime.c:3760 utils/adt/datetime.c:3767
 #, c-format
 msgid "date/time field value out of range: \"%s\""
 msgstr "日期/时间值超出范围: \"%s\""
 
-#: utils/adt/datetime.c:3770
+#: utils/adt/datetime.c:3769
 #, c-format
 msgid "Perhaps you need a different \"datestyle\" setting."
 msgstr "也许你需要不同的 \"datesytle\" 设置."
 
-#: utils/adt/datetime.c:3775
+#: utils/adt/datetime.c:3774
 #, c-format
 msgid "interval field value out of range: \"%s\""
 msgstr "间隔字段超出范围: \"%s\""
 
-#: utils/adt/datetime.c:3781
+#: utils/adt/datetime.c:3780
 #, c-format
 msgid "time zone displacement out of range: \"%s\""
 msgstr "时间区域置换超出范围: \"%s\""
 
-#: utils/adt/datetime.c:4627
+#: utils/adt/datetime.c:4633
 #, c-format
 msgid "This time zone name appears in the configuration file for time zone abbreviation \"%s\"."
 msgstr "缩写时区 \"%s\"对应的时区名出现在配置文件中."
 
-#: utils/adt/datum.c:86 utils/adt/datum.c:98
+#: utils/adt/datum.c:88 utils/adt/datum.c:100
 #, c-format
 msgid "invalid Datum pointer"
 msgstr "无效的 Datum 指针"
@@ -21027,499 +20918,483 @@ msgstr "输入数据缺少填充,或者已经被截断,又或者已被损坏
 #: utils/adt/json.c:1135 utils/adt/json.c:1149 utils/adt/json.c:1160
 #: utils/adt/json.c:1168 utils/adt/json.c:1176 utils/adt/json.c:1184
 #: utils/adt/json.c:1192 utils/adt/json.c:1200 utils/adt/json.c:1208
-#: utils/adt/json.c:1216 utils/adt/json.c:1246 utils/adt/varlena.c:296
-#: utils/adt/varlena.c:337
+#: utils/adt/json.c:1216 utils/adt/json.c:1246 utils/adt/varlena.c:318
+#: utils/adt/varlena.c:359 jsonpath_gram.y:516 jsonpath_scan.l:543
+#: jsonpath_scan.l:559 jsonpath_scan.l:570 jsonpath_scan.l:580
+#: jsonpath_scan.l:622
 #, c-format
 msgid "invalid input syntax for type %s"
 msgstr "类型%s的输入语法无效"
 
-#: utils/adt/enum.c:48 utils/adt/enum.c:58 utils/adt/enum.c:113
-#: utils/adt/enum.c:123
+#: utils/adt/enum.c:100
+#, c-format
+msgid "unsafe use of new value \"%s\" of enum type %s"
+msgstr ""
+
+#: utils/adt/enum.c:103
+#, c-format
+msgid "New enum values must be committed before they can be used."
+msgstr ""
+
+#: utils/adt/enum.c:121 utils/adt/enum.c:131 utils/adt/enum.c:189
+#: utils/adt/enum.c:199
 #, c-format
 msgid "invalid input value for enum %s: \"%s\""
 msgstr "对于枚举%s的输入值无效: \"%s\""
 
-#: utils/adt/enum.c:85 utils/adt/enum.c:148 utils/adt/enum.c:207
+#: utils/adt/enum.c:161 utils/adt/enum.c:227 utils/adt/enum.c:286
 #, c-format
 msgid "invalid internal value for enum: %u"
 msgstr "对于枚举的无效内部值: %u"
 
-#: utils/adt/enum.c:360 utils/adt/enum.c:389 utils/adt/enum.c:429
-#: utils/adt/enum.c:449
+#: utils/adt/enum.c:446 utils/adt/enum.c:475 utils/adt/enum.c:515
+#: utils/adt/enum.c:535
 #, c-format
 msgid "could not determine actual enum type"
 msgstr "无法确定实际的枚举类型"
 
-#: utils/adt/enum.c:368 utils/adt/enum.c:397
+#: utils/adt/enum.c:454 utils/adt/enum.c:483
 #, c-format
 msgid "enum %s contains no values"
 msgstr "枚举 \"%s\" 没有值"
 
 #: utils/adt/expandedrecord.c:98 utils/adt/expandedrecord.c:230
-#: utils/cache/typcache.c:1563 utils/cache/typcache.c:1719
-#: utils/cache/typcache.c:1849 utils/fmgr/funcapi.c:430
+#: utils/cache/typcache.c:1574 utils/cache/typcache.c:1730
+#: utils/cache/typcache.c:1860 utils/fmgr/funcapi.c:415
 #, c-format
 msgid "type %s is not composite"
 msgstr "类型 %s 不是复合类型"
 
-#: utils/adt/float.c:55
-#, c-format
-msgid "value out of range: overflow"
-msgstr "值超出范围: 上溢"
-
-#: utils/adt/float.c:60
-#, c-format
-msgid "value out of range: underflow"
-msgstr "值超出范围: 下溢"
-
-#: utils/adt/float.c:309
+#: utils/adt/float.c:246
 #, c-format
 msgid "\"%s\" is out of range for type real"
 msgstr "\"%s\" 超出实数类型的范围"
 
-#: utils/adt/float.c:534
+#: utils/adt/float.c:466
 #, c-format
 msgid "\"%s\" is out of range for type double precision"
 msgstr "\"%s\" 超出双精度类型的范围"
 
-#: utils/adt/float.c:1408 utils/adt/float.c:1496 utils/adt/int.c:332
-#: utils/adt/int.c:870 utils/adt/int.c:892 utils/adt/int.c:906
-#: utils/adt/int.c:920 utils/adt/int.c:952 utils/adt/int.c:1190
-#: utils/adt/int8.c:1185 utils/adt/numeric.c:3214 utils/adt/numeric.c:3223
+#: utils/adt/float.c:1252 utils/adt/float.c:1340 utils/adt/int.c:336
+#: utils/adt/int.c:874 utils/adt/int.c:896 utils/adt/int.c:910
+#: utils/adt/int.c:924 utils/adt/int.c:956 utils/adt/int.c:1194
+#: utils/adt/int8.c:1188 utils/adt/numeric.c:3358 utils/adt/numeric.c:3367
 #, c-format
 msgid "smallint out of range"
 msgstr "smallint 超出范围"
 
-#: utils/adt/float.c:1622 utils/adt/numeric.c:7802
+#: utils/adt/float.c:1466 utils/adt/numeric.c:7970
 #, c-format
 msgid "cannot take square root of a negative number"
 msgstr "无法为负数做平方根"
 
-#: utils/adt/float.c:1683 utils/adt/numeric.c:3017
+#: utils/adt/float.c:1527 utils/adt/numeric.c:3138
 #, c-format
 msgid "zero raised to a negative power is undefined"
 msgstr "被提升到负乘方的最低点没有定义."
 
-#: utils/adt/float.c:1687 utils/adt/numeric.c:3023
+#: utils/adt/float.c:1531 utils/adt/numeric.c:3144
 #, c-format
 msgid "a negative number raised to a non-integer power yields a complex result"
 msgstr "被升为非整数的平方的负数产生了一个复杂结果."
 
-#: utils/adt/float.c:1753 utils/adt/float.c:1783 utils/adt/numeric.c:8068
+#: utils/adt/float.c:1597 utils/adt/float.c:1627 utils/adt/numeric.c:8236
 #, c-format
 msgid "cannot take logarithm of zero"
 msgstr "无法取零的对数"
 
-#: utils/adt/float.c:1757 utils/adt/float.c:1787 utils/adt/numeric.c:8072
+#: utils/adt/float.c:1601 utils/adt/float.c:1631 utils/adt/numeric.c:8240
 #, c-format
 msgid "cannot take logarithm of a negative number"
 msgstr "无法取负数的对数"
 
-#: utils/adt/float.c:1817 utils/adt/float.c:1847 utils/adt/float.c:1939
-#: utils/adt/float.c:1965 utils/adt/float.c:1992 utils/adt/float.c:2018
-#: utils/adt/float.c:2165 utils/adt/float.c:2200 utils/adt/float.c:2364
-#: utils/adt/float.c:2418 utils/adt/float.c:2482 utils/adt/float.c:2537
+#: utils/adt/float.c:1661 utils/adt/float.c:1691 utils/adt/float.c:1783
+#: utils/adt/float.c:1809 utils/adt/float.c:1836 utils/adt/float.c:1862
+#: utils/adt/float.c:2009 utils/adt/float.c:2044 utils/adt/float.c:2208
+#: utils/adt/float.c:2262 utils/adt/float.c:2326 utils/adt/float.c:2381
+#: utils/adt/float.c:2569 utils/adt/float.c:2594
 #, c-format
 msgid "input is out of range"
 msgstr "输入超出范围"
 
-#: utils/adt/float.c:3743 utils/adt/numeric.c:1504
+#: utils/adt/float.c:2662
+#, c-format
+msgid "setseed parameter %g is out of allowed range [-1,1]"
+msgstr ""
+
+#: utils/adt/float.c:2880 utils/adt/float.c:2956 utils/adt/float.c:3179
+#, c-format
+msgid "value out of range: overflow"
+msgstr "值超出范围: 上溢"
+
+#: utils/adt/float.c:3861 utils/adt/numeric.c:1515
 #, c-format
 msgid "count must be greater than zero"
 msgstr "总数必须大于零"
 
-#: utils/adt/float.c:3748 utils/adt/numeric.c:1511
+#: utils/adt/float.c:3866 utils/adt/numeric.c:1522
 #, c-format
 msgid "operand, lower bound, and upper bound cannot be NaN"
 msgstr "操作数,下限和上限不能是NaN"
 
-#: utils/adt/float.c:3754
+#: utils/adt/float.c:3872
 #, c-format
 msgid "lower and upper bounds must be finite"
 msgstr "地位和高位边界必须是有限的."
 
-#: utils/adt/float.c:3788 utils/adt/numeric.c:1524
+#: utils/adt/float.c:3906 utils/adt/numeric.c:1535
 #, c-format
 msgid "lower bound cannot equal upper bound"
 msgstr "下限不能等于上限"
 
-#: utils/adt/formatting.c:488
+#: utils/adt/formatting.c:504
 #, c-format
 msgid "invalid format specification for an interval value"
 msgstr "间隔值的格式定义无效"
 
-#: utils/adt/formatting.c:489
+#: utils/adt/formatting.c:505
 #, c-format
 msgid "Intervals are not tied to specific calendar dates."
 msgstr "间隔没有与特定的日历的日期相联系"
 
-#: utils/adt/formatting.c:1059
+#: utils/adt/formatting.c:1086
 #, c-format
 msgid "\"EEEE\" must be the last pattern used"
 msgstr "\"EEEE\"必须是所使用的最后一个模式"
 
-#: utils/adt/formatting.c:1067
+#: utils/adt/formatting.c:1094
 #, c-format
 msgid "\"9\" must be ahead of \"PR\""
 msgstr "\"9\" 必须在 \"PR\" 之前"
 
-#: utils/adt/formatting.c:1083
+#: utils/adt/formatting.c:1110
 #, c-format
 msgid "\"0\" must be ahead of \"PR\""
 msgstr "\"0\" 必须在 \"PR\" 之前"
 
-#: utils/adt/formatting.c:1110
+#: utils/adt/formatting.c:1137
 #, c-format
 msgid "multiple decimal points"
 msgstr "多个小数点"
 
-#: utils/adt/formatting.c:1114 utils/adt/formatting.c:1197
+#: utils/adt/formatting.c:1141 utils/adt/formatting.c:1224
 #, c-format
 msgid "cannot use \"V\" and decimal point together"
 msgstr "不能 \"V\" 和小数点一起使用"
 
-#: utils/adt/formatting.c:1126
+#: utils/adt/formatting.c:1153
 #, c-format
 msgid "cannot use \"S\" twice"
 msgstr "无法两次使用 \"S\" "
 
-#: utils/adt/formatting.c:1130
+#: utils/adt/formatting.c:1157
 #, c-format
 msgid "cannot use \"S\" and \"PL\"/\"MI\"/\"SG\"/\"PR\" together"
 msgstr "\"S\" 不可以和 \"PL\"/\"MI\"/\"SG\"/\"PR\" 一起使用"
 
-#: utils/adt/formatting.c:1150
+#: utils/adt/formatting.c:1177
 #, c-format
 msgid "cannot use \"S\" and \"MI\" together"
 msgstr "\"S\" 不可以和 \"MI\" 一起使用"
 
-#: utils/adt/formatting.c:1160
+#: utils/adt/formatting.c:1187
 #, c-format
 msgid "cannot use \"S\" and \"PL\" together"
 msgstr "\"S\" 不可以和 \"PL\" 一起使用"
 
-#: utils/adt/formatting.c:1170
+#: utils/adt/formatting.c:1197
 #, c-format
 msgid "cannot use \"S\" and \"SG\" together"
 msgstr "\"S\" 不可以和 \"SG\" 一起使用"
 
-#: utils/adt/formatting.c:1179
+#: utils/adt/formatting.c:1206
 #, c-format
 msgid "cannot use \"PR\" and \"S\"/\"PL\"/\"MI\"/\"SG\" together"
 msgstr "\"PR\" 不可以和 \"S\"/\"PL\"/\"MI\"/\"SG\" 一起使用"
 
-#: utils/adt/formatting.c:1205
+#: utils/adt/formatting.c:1232
 #, c-format
 msgid "cannot use \"EEEE\" twice"
 msgstr "无法两次使用 \"EEEE\""
 
-#: utils/adt/formatting.c:1211
+#: utils/adt/formatting.c:1238
 #, c-format
 msgid "\"EEEE\" is incompatible with other formats"
 msgstr "\"EEEE\"与其它格式不兼容"
 
-#: utils/adt/formatting.c:1212
+#: utils/adt/formatting.c:1239
 #, c-format
 msgid "\"EEEE\" may only be used together with digit and decimal point patterns."
 msgstr "\"EEEE\"只能与数字和小数模式一同使用"
 
-#: utils/adt/formatting.c:1392
+#: utils/adt/formatting.c:1426
 #, c-format
 msgid "\"%s\" is not a number"
 msgstr "\"%s\" 不是一个数字"
 
-#: utils/adt/formatting.c:1470
+#: utils/adt/formatting.c:1504
 #, c-format
 msgid "case conversion failed: %s"
 msgstr "case转换失败: %s"
 
-#: utils/adt/formatting.c:1535
-#, c-format
-msgid "could not determine which collation to use for lower() function"
+#: utils/adt/formatting.c:1569 utils/adt/formatting.c:1692
+#: utils/adt/formatting.c:1816
+#, fuzzy, c-format
+#| msgid "could not determine which collation to use for lower() function"
+msgid "could not determine which collation to use for %s function"
 msgstr "无法确定函数lower()使用哪个排序规则"
 
-#: utils/adt/formatting.c:1657
-#, c-format
-msgid "could not determine which collation to use for upper() function"
-msgstr "无法确定函数upper()使用哪个排序规则"
-
-#: utils/adt/formatting.c:1780
-#, c-format
-msgid "could not determine which collation to use for initcap() function"
-msgstr "无法确定函数initcap()使用哪个排序规则"
-
 # fe-connect.c:2558
-#: utils/adt/formatting.c:2148
+#: utils/adt/formatting.c:2185
 #, c-format
 msgid "invalid combination of date conventions"
 msgstr "无效的日期约定格式组合"
 
-#: utils/adt/formatting.c:2149
+#: utils/adt/formatting.c:2186
 #, c-format
 msgid "Do not mix Gregorian and ISO week date conventions in a formatting template."
 msgstr "在格式模板中不要混用Gregorian和ISO周日期转换. "
 
-#: utils/adt/formatting.c:2166
+#: utils/adt/formatting.c:2203
 #, c-format
 msgid "conflicting values for \"%s\" field in formatting string"
 msgstr "在格式化字符串中对于\"%s\"字段的值冲突"
 
-#: utils/adt/formatting.c:2168
+#: utils/adt/formatting.c:2205
 #, c-format
 msgid "This value contradicts a previous setting for the same field type."
 msgstr "这个值与先前设定的同一字段类型相抵触"
 
-#: utils/adt/formatting.c:2229
+#: utils/adt/formatting.c:2266
 #, c-format
 msgid "source string too short for \"%s\" formatting field"
 msgstr "对于\"%s\" 格式化字段的源字符串太短"
 
-#: utils/adt/formatting.c:2231
+#: utils/adt/formatting.c:2268
 #, c-format
 msgid "Field requires %d characters, but only %d remain."
 msgstr "字段要求有%d个字符,但是这里只有%d个"
 
-#: utils/adt/formatting.c:2234 utils/adt/formatting.c:2248
+#: utils/adt/formatting.c:2271 utils/adt/formatting.c:2285
 #, c-format
 msgid "If your source string is not fixed-width, try using the \"FM\" modifier."
 msgstr "如果源字符串不是固定长度,请尝试使用\"FM\"修改器."
 
-#: utils/adt/formatting.c:2244 utils/adt/formatting.c:2257
-#: utils/adt/formatting.c:2387
+#: utils/adt/formatting.c:2281 utils/adt/formatting.c:2294
+#: utils/adt/formatting.c:2424
 #, c-format
 msgid "invalid value \"%s\" for \"%s\""
 msgstr "\"%s\"的值\"%s\"无效"
 
-#: utils/adt/formatting.c:2246
+#: utils/adt/formatting.c:2283
 #, c-format
 msgid "Field requires %d characters, but only %d could be parsed."
 msgstr "字段要求%d个字符, 但是只能解析%d个字符."
 
-#: utils/adt/formatting.c:2259
+#: utils/adt/formatting.c:2296
 #, c-format
 msgid "Value must be an integer."
 msgstr "值必须是一个整数"
 
-#: utils/adt/formatting.c:2264
+#: utils/adt/formatting.c:2301
 #, c-format
 msgid "value for \"%s\" in source string is out of range"
 msgstr "在源字符串中\"%s\"的值超出了范围"
 
-#: utils/adt/formatting.c:2266
+#: utils/adt/formatting.c:2303
 #, c-format
 msgid "Value must be in the range %d to %d."
 msgstr "值必须是在范围%d到%d之间."
 
-#: utils/adt/formatting.c:2389
+#: utils/adt/formatting.c:2426
 #, c-format
 msgid "The given value did not match any of the allowed values for this field."
 msgstr "给定的值与这个字段所允许的值不匹配."
 
-#: utils/adt/formatting.c:2587 utils/adt/formatting.c:2607
-#: utils/adt/formatting.c:2627 utils/adt/formatting.c:2647
-#: utils/adt/formatting.c:2666 utils/adt/formatting.c:2685
-#: utils/adt/formatting.c:2709 utils/adt/formatting.c:2727
-#: utils/adt/formatting.c:2745 utils/adt/formatting.c:2763
-#: utils/adt/formatting.c:2780 utils/adt/formatting.c:2797
+#: utils/adt/formatting.c:2624 utils/adt/formatting.c:2644
+#: utils/adt/formatting.c:2664 utils/adt/formatting.c:2684
+#: utils/adt/formatting.c:2703 utils/adt/formatting.c:2722
+#: utils/adt/formatting.c:2746 utils/adt/formatting.c:2764
+#: utils/adt/formatting.c:2782 utils/adt/formatting.c:2800
+#: utils/adt/formatting.c:2817 utils/adt/formatting.c:2834
 #, c-format
 msgid "localized string format value too long"
 msgstr "本地化字符串格式值太长"
 
-#: utils/adt/formatting.c:3084
+#: utils/adt/formatting.c:3176
 #, c-format
 msgid "formatting field \"%s\" is only supported in to_char"
 msgstr "只有在to_char中才支持格式化字段\"%s\""
 
-#: utils/adt/formatting.c:3209
+#: utils/adt/formatting.c:3317
 #, c-format
 msgid "invalid input string for \"Y,YYY\""
 msgstr "对于\"Y,YYY\", 所输入的字符串无效"
 
-#: utils/adt/formatting.c:3724
+#: utils/adt/formatting.c:3851
 #, c-format
 msgid "hour \"%d\" is invalid for the 12-hour clock"
 msgstr "对于12小时制的钟表,小时数\"%d\"无效"
 
-#: utils/adt/formatting.c:3726
+#: utils/adt/formatting.c:3853
 #, c-format
 msgid "Use the 24-hour clock, or give an hour between 1 and 12."
 msgstr "使用24小时制的钟表,或者将小时数限定在1到12之间."
 
-#: utils/adt/formatting.c:3832
+#: utils/adt/formatting.c:3959
 #, c-format
 msgid "cannot calculate day of year without year information"
 msgstr "没有年份信息无法计算年的天数"
 
-#: utils/adt/formatting.c:4737
+#: utils/adt/formatting.c:4866
 #, c-format
 msgid "\"EEEE\" not supported for input"
 msgstr "不支持为输入使用\"EEEE\""
 
-#: utils/adt/formatting.c:4749
+#: utils/adt/formatting.c:4878
 #, c-format
 msgid "\"RN\" not supported for input"
 msgstr "不支持为输入使用\"RN\""
 
-#: utils/adt/genfile.c:79
+#: utils/adt/genfile.c:81
 #, c-format
 msgid "reference to parent directory (\"..\") not allowed"
 msgstr "不允许引用源目录(\"..\") "
 
-#: utils/adt/genfile.c:90
+#: utils/adt/genfile.c:92
 #, c-format
 msgid "absolute path not allowed"
 msgstr "不允许使用绝对路径"
 
-#: utils/adt/genfile.c:95
+#: utils/adt/genfile.c:97
 #, c-format
 msgid "path must be in or below the current directory"
 msgstr "路径必须在当前目录或其子目录下"
 
-#: utils/adt/genfile.c:142 utils/adt/oracle_compat.c:185
+#: utils/adt/genfile.c:144 utils/adt/oracle_compat.c:185
 #: utils/adt/oracle_compat.c:283 utils/adt/oracle_compat.c:759
 #: utils/adt/oracle_compat.c:1054
 #, c-format
 msgid "requested length too large"
 msgstr "请求长度太大"
 
-#: utils/adt/genfile.c:159
+#: utils/adt/genfile.c:161
 #, c-format
 msgid "could not seek in file \"%s\": %m"
 msgstr "无法在文件\"%s\"进行查找: %m"
 
-#: utils/adt/genfile.c:219
+#: utils/adt/genfile.c:221
 #, c-format
 msgid "must be superuser to read files with adminpack 1.0"
 msgstr "必须是超级用户才能使用adminpack 1.0读取文件"
 
-#: utils/adt/genfile.c:220
-#, c-format
-msgid "Consider using pg_file_read(), which is part of core, instead."
-msgstr "考虑使用pg_file_read(),它是核心的一部分."
-
-#: utils/adt/geo_ops.c:939
+#: utils/adt/geo_ops.c:979 utils/adt/geo_ops.c:1025
 #, c-format
 msgid "invalid line specification: A and B cannot both be zero"
 msgstr "无效的行规格: A和B不能同时为0"
 
-#: utils/adt/geo_ops.c:947
+#: utils/adt/geo_ops.c:987 utils/adt/geo_ops.c:1090
 #, c-format
 msgid "invalid line specification: must be two distinct points"
 msgstr "无效的线规格: 必须是两个不同的点"
 
-#: utils/adt/geo_ops.c:1341 utils/adt/geo_ops.c:3439 utils/adt/geo_ops.c:4252
-#: utils/adt/geo_ops.c:5180
+#: utils/adt/geo_ops.c:1399 utils/adt/geo_ops.c:3370 utils/adt/geo_ops.c:4238
+#: utils/adt/geo_ops.c:5129
 #, c-format
 msgid "too many points requested"
 msgstr "要求了太多的点"
 
-#: utils/adt/geo_ops.c:1403
+#: utils/adt/geo_ops.c:1461
 #, c-format
 msgid "invalid number of points in external \"path\" value"
 msgstr "在外部 \"path\" 值中的点数量无效."
 
-#: utils/adt/geo_ops.c:2554
+#: utils/adt/geo_ops.c:2459
 #, c-format
 msgid "function \"dist_lb\" not implemented"
 msgstr "函数 \"dist_lb\" 没有实现"
 
-#: utils/adt/geo_ops.c:3014
+#: utils/adt/geo_ops.c:2859
 #, c-format
 msgid "function \"close_sl\" not implemented"
 msgstr "函数 \"close_sl\" 没有实现"
 
-#: utils/adt/geo_ops.c:3116
+#: utils/adt/geo_ops.c:3006
 #, c-format
 msgid "function \"close_lb\" not implemented"
 msgstr "函数 \"close_lb\" 没有实现"
 
-#: utils/adt/geo_ops.c:3405
-#, c-format
-msgid "cannot create bounding box for empty polygon"
-msgstr "无法为空多边形创建 bounding box"
-
-#: utils/adt/geo_ops.c:3486
+#: utils/adt/geo_ops.c:3417
 #, c-format
 msgid "invalid number of points in external \"polygon\" value"
 msgstr "在外部\"polygon\" 值中的点数量无效."
 
-#: utils/adt/geo_ops.c:4011
+#: utils/adt/geo_ops.c:3953
 #, c-format
 msgid "function \"poly_distance\" not implemented"
 msgstr "函数 \"poly_distance\" 没有实现"
 
-#: utils/adt/geo_ops.c:4364
+#: utils/adt/geo_ops.c:4330
 #, c-format
 msgid "function \"path_center\" not implemented"
 msgstr "函数 \"path_center\" 没有实现"
 
-#: utils/adt/geo_ops.c:4381
+#: utils/adt/geo_ops.c:4347
 #, c-format
 msgid "open path cannot be converted to polygon"
 msgstr "打开的路径不能转换为多态型"
 
-#: utils/adt/geo_ops.c:4630
+#: utils/adt/geo_ops.c:4594
 #, c-format
 msgid "invalid radius in external \"circle\" value"
 msgstr "在外部\"circle\" 值中的半径无效"
 
-#: utils/adt/geo_ops.c:5166
+#: utils/adt/geo_ops.c:5115
 #, c-format
 msgid "cannot convert circle with radius zero to polygon"
 msgstr "无法将半径为0的圆转换为多边类型"
 
-#: utils/adt/geo_ops.c:5171
+#: utils/adt/geo_ops.c:5120
 #, c-format
 msgid "must request at least 2 points"
 msgstr "必须要求至少两个点."
 
-#: utils/adt/geo_ops.c:5215
-#, c-format
-msgid "cannot convert empty polygon to circle"
-msgstr "无法转换空的多边形到圆形"
-
-#: utils/adt/int.c:160
+#: utils/adt/int.c:164
 #, c-format
 msgid "int2vector has too many elements"
 msgstr "int2vector 有太多的元素"
 
-#: utils/adt/int.c:235
+#: utils/adt/int.c:239
 #, c-format
 msgid "invalid int2vector data"
 msgstr "无效的int2vector数据"
 
-#: utils/adt/int.c:241 utils/adt/oid.c:215 utils/adt/oid.c:296
+#: utils/adt/int.c:245 utils/adt/oid.c:215 utils/adt/oid.c:296
 #, c-format
 msgid "oidvector has too many elements"
 msgstr "oidvector 有太多元素"
 
-#: utils/adt/int.c:1379 utils/adt/int8.c:1325 utils/adt/numeric.c:1412
-#: utils/adt/timestamp.c:5321 utils/adt/timestamp.c:5402
+#: utils/adt/int.c:1383 utils/adt/int8.c:1328 utils/adt/numeric.c:1423
+#: utils/adt/timestamp.c:5430 utils/adt/timestamp.c:5511
 #, c-format
 msgid "step size cannot equal zero"
 msgstr "单步执行大小不能等于0"
 
-#: utils/adt/int8.c:125 utils/adt/numutils.c:51 utils/adt/numutils.c:61
-#: utils/adt/numutils.c:105
-#, c-format
-msgid "invalid input syntax for integer: \"%s\""
-msgstr "无效的整数类型输入语法: \"%s\""
-
-#: utils/adt/int8.c:526 utils/adt/int8.c:549 utils/adt/int8.c:563
-#: utils/adt/int8.c:577 utils/adt/int8.c:608 utils/adt/int8.c:632
-#: utils/adt/int8.c:687 utils/adt/int8.c:701 utils/adt/int8.c:725
-#: utils/adt/int8.c:738 utils/adt/int8.c:807 utils/adt/int8.c:821
-#: utils/adt/int8.c:835 utils/adt/int8.c:866 utils/adt/int8.c:888
-#: utils/adt/int8.c:902 utils/adt/int8.c:916 utils/adt/int8.c:949
-#: utils/adt/int8.c:963 utils/adt/int8.c:977 utils/adt/int8.c:1008
-#: utils/adt/int8.c:1030 utils/adt/int8.c:1044 utils/adt/int8.c:1058
-#: utils/adt/int8.c:1227 utils/adt/int8.c:1269 utils/adt/numeric.c:3169
-#: utils/adt/varbit.c:1655
+#: utils/adt/int8.c:529 utils/adt/int8.c:552 utils/adt/int8.c:566
+#: utils/adt/int8.c:580 utils/adt/int8.c:611 utils/adt/int8.c:635
+#: utils/adt/int8.c:690 utils/adt/int8.c:704 utils/adt/int8.c:728
+#: utils/adt/int8.c:741 utils/adt/int8.c:810 utils/adt/int8.c:824
+#: utils/adt/int8.c:838 utils/adt/int8.c:869 utils/adt/int8.c:891
+#: utils/adt/int8.c:905 utils/adt/int8.c:919 utils/adt/int8.c:952
+#: utils/adt/int8.c:966 utils/adt/int8.c:980 utils/adt/int8.c:1011
+#: utils/adt/int8.c:1033 utils/adt/int8.c:1047 utils/adt/int8.c:1061
+#: utils/adt/int8.c:1230 utils/adt/int8.c:1272 utils/adt/numeric.c:3313
+#: utils/adt/varbit.c:1665
 #, c-format
 msgid "bigint out of range"
 msgstr "bigint 超出范围"
 
-#: utils/adt/int8.c:1282
+#: utils/adt/int8.c:1285
 #, c-format
 msgid "OID out of range"
 msgstr "OID 超出范围"
@@ -21534,28 +21409,29 @@ msgstr "值为 0x%02x 的字符必须进行转义处理."
 msgid "\"\\u\" must be followed by four hexadecimal digits."
 msgstr "\"\\u\" 后必须紧跟有效的十六进制数数字"
 
-#: utils/adt/json.c:844
+#: utils/adt/json.c:844 jsonpath_scan.l:560
 #, c-format
 msgid "Unicode high surrogate must not follow a high surrogate."
 msgstr "Unicode 的高位代理项不能紧随另一个高位代理项."
 
 #: utils/adt/json.c:855 utils/adt/json.c:865 utils/adt/json.c:917
-#: utils/adt/json.c:979 utils/adt/json.c:991
+#: utils/adt/json.c:979 utils/adt/json.c:991 jsonpath_scan.l:571
+#: jsonpath_scan.l:581 jsonpath_scan.l:623
 #, c-format
 msgid "Unicode low surrogate must follow a high surrogate."
 msgstr "Unicode 代位代理项必须紧随一个高位代理项."
 
-#: utils/adt/json.c:880 utils/adt/json.c:903
+#: utils/adt/json.c:880 utils/adt/json.c:903 jsonpath_scan.l:518
 #, c-format
 msgid "unsupported Unicode escape sequence"
 msgstr "不支持的Unicode转义序列"
 
-#: utils/adt/json.c:881
+#: utils/adt/json.c:881 jsonpath_scan.l:519
 #, c-format
 msgid "\\u0000 cannot be converted to text."
 msgstr "\\u0000不能被转换为文本。"
 
-#: utils/adt/json.c:904
+#: utils/adt/json.c:904 jsonpath_scan.l:544
 #, 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以上的码点值."
@@ -21620,113 +21496,110 @@ msgstr "令牌 \"%s\" 无效."
 msgid "JSON data, line %d: %s%s%s"
 msgstr "JSON数据, 行 %d: %s%s%s"
 
-#: utils/adt/json.c:1475 utils/adt/jsonb.c:728
+#: utils/adt/json.c:1475 utils/adt/jsonb.c:739
 #, c-format
 msgid "key value must be scalar, not array, composite, or json"
 msgstr "键值必须是标量,不能是数组、复合值或json值"
 
-#: utils/adt/json.c:2076 utils/adt/json.c:2086 utils/fmgr/funcapi.c:1564
+#: utils/adt/json.c:2076 utils/adt/json.c:2086 utils/fmgr/funcapi.c:1549
 #, c-format
 msgid "could not determine data type for argument %d"
 msgstr "无法确定参数 %d 的数据类型"
 
-#: utils/adt/json.c:2110 utils/adt/jsonb.c:1694
+#: utils/adt/json.c:2110 utils/adt/jsonb.c:1707
 #, c-format
 msgid "field name must not be null"
 msgstr "字段名不能为空"
 
-#: utils/adt/json.c:2194 utils/adt/jsonb.c:1146
+#: utils/adt/json.c:2194 utils/adt/jsonb.c:1157
 #, c-format
 msgid "argument list must have even number of elements"
 msgstr "参数列表的元素个数必须为偶数"
 
-#: utils/adt/json.c:2195
-#, c-format
-msgid "The arguments of json_build_object() must consist of alternating keys and values."
+#. translator: %s is a SQL function name
+#: utils/adt/json.c:2196 utils/adt/jsonb.c:1159
+#, fuzzy, c-format
+#| msgid "The arguments of json_build_object() must consist of alternating keys and values."
+msgid "The arguments of %s must consist of alternating keys and values."
 msgstr "json_build_object()的参数必须包含可替代的键和对应的值."
 
-#: utils/adt/json.c:2210
+#: utils/adt/json.c:2212
 #, c-format
 msgid "argument %d cannot be null"
 msgstr "参数%d不能为空"
 
-#: utils/adt/json.c:2211
+#: utils/adt/json.c:2213
 #, c-format
 msgid "Object keys should be text."
 msgstr "对象的键必须是文本"
 
-#: utils/adt/json.c:2317 utils/adt/jsonb.c:1276
+#: utils/adt/json.c:2319 utils/adt/jsonb.c:1289
 #, c-format
 msgid "array must have two columns"
 msgstr "数组必须有两列"
 
-#: utils/adt/json.c:2341 utils/adt/json.c:2425 utils/adt/jsonb.c:1300
-#: utils/adt/jsonb.c:1395
+#: utils/adt/json.c:2343 utils/adt/json.c:2427 utils/adt/jsonb.c:1313
+#: utils/adt/jsonb.c:1408
 #, c-format
 msgid "null value not allowed for object key"
 msgstr "空值不能用于对象的键当中"
 
-#: utils/adt/json.c:2414 utils/adt/jsonb.c:1384
+#: utils/adt/json.c:2416 utils/adt/jsonb.c:1397
 #, c-format
 msgid "mismatched array dimensions"
 msgstr "不匹配的数组维数"
 
-#: utils/adt/jsonb.c:258
+#: utils/adt/jsonb.c:269
 #, c-format
 msgid "string too long to represent as jsonb string"
 msgstr "用于描述jsonb字符串的字符串太长了"
 
-#: utils/adt/jsonb.c:259
+#: utils/adt/jsonb.c:270
 #, c-format
 msgid "Due to an implementation restriction, jsonb strings cannot exceed %d bytes."
 msgstr "因为实现方面的限制,jsonb字符串不能超过%d个字节."
 
-#: utils/adt/jsonb.c:1147
-#, c-format
-msgid "The arguments of jsonb_build_object() must consist of alternating keys and values."
-msgstr "jsonb_build_object()的参数必须包含可替代的键和对应的值."
-
-#: utils/adt/jsonb.c:1159
+#: utils/adt/jsonb.c:1172
 #, c-format
 msgid "argument %d: key must not be null"
 msgstr "参数%d:键不能为空"
 
-#: utils/adt/jsonb.c:1747
+#: utils/adt/jsonb.c:1760
 #, c-format
 msgid "object keys must be strings"
 msgstr "对象键必须是字符串"
 
-#: utils/adt/jsonb.c:1910
+#: utils/adt/jsonb.c:1923
 #, c-format
 msgid "cannot cast jsonb null to type %s"
 msgstr "无法把jsonb null转换成类型%s"
 
-#: utils/adt/jsonb.c:1911
+#: utils/adt/jsonb.c:1924
 #, c-format
 msgid "cannot cast jsonb string to type %s"
 msgstr "无法把jsonb string转换为类型%s"
 
-#: utils/adt/jsonb.c:1912
+#: utils/adt/jsonb.c:1925
 #, c-format
 msgid "cannot cast jsonb numeric to type %s"
 msgstr "无法把jsonb numeric转换为类型%s"
 
-#: utils/adt/jsonb.c:1913
+#: utils/adt/jsonb.c:1926
 #, c-format
 msgid "cannot cast jsonb boolean to type %s"
 msgstr "无法把jsonb boolean转换为类型%s"
 
-#: utils/adt/jsonb.c:1914
+#: utils/adt/jsonb.c:1927
 #, c-format
 msgid "cannot cast jsonb array to type %s"
 msgstr "无法把jsonb array转换为类型%s"
 
-#: utils/adt/jsonb.c:1915
+#: utils/adt/jsonb.c:1928
 #, c-format
 msgid "cannot cast jsonb object to type %s"
 msgstr "无法把jsonb object转换为类型%s"
 
-#: utils/adt/jsonb.c:1916
+#: utils/adt/jsonb.c:1929
 #, c-format
 msgid "cannot cast jsonb array or object to type %s"
 msgstr "无法把jsonb array或object转换为类型%s"
@@ -21780,12 +21653,6 @@ msgstr "无法从一个非数组里得到数组的长度"
 msgid "cannot call %s on a non-object"
 msgstr "不能在非对象上调用 %s "
 
-#: utils/adt/jsonfuncs.c:1709 utils/adt/jsonfuncs.c:3266
-#: utils/adt/jsonfuncs.c:3621
-#, c-format
-msgid "function returning record called in context that cannot accept type record"
-msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用"
-
 #: utils/adt/jsonfuncs.c:1949
 #, c-format
 msgid "cannot deconstruct an array as an object"
@@ -21915,8 +21782,9 @@ msgid "flag array element is not a string"
 msgstr "标志数组元素不是字符串"
 
 #: utils/adt/jsonfuncs.c:4996 utils/adt/jsonfuncs.c:5018
-#, c-format
-msgid "Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and \"all\""
+#, fuzzy, c-format
+#| msgid "Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and \"all\""
+msgid "Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and \"all\"."
 msgstr "可能的值有:\"string\", \"numeric\", \"boolean\", \"key\", 和 \"all\""
 
 #: utils/adt/jsonfuncs.c:5016
@@ -21924,336 +21792,404 @@ msgstr "可能的值有:\"string\", \"numeric\", \"boolean\", \"key\", 和 \"a
 msgid "wrong flag in flag array: \"%s\""
 msgstr "标志数组中的标志错误: \"%s\""
 
-#: utils/adt/levenshtein.c:133
-#, c-format
-msgid "levenshtein argument exceeds maximum length of %d characters"
-msgstr "levenshtein 参数超过了 %d 字符的最大长度"
+#: utils/adt/jsonpath.c:360
+#, fuzzy, c-format
+#| msgid "window functions are not allowed in policy expressions"
+msgid "@ is not allowed in root expressions"
+msgstr "策略表达式中不允许窗口函数"
+
+#: utils/adt/jsonpath.c:366
+#, fuzzy, c-format
+#| msgid "wrong number of array subscripts"
+msgid "LAST is allowed only in array subscripts"
+msgstr "错误的数组下标"
 
-#: utils/adt/like.c:183 utils/adt/selfuncs.c:5806
+#: utils/adt/jsonpath_exec.c:342
 #, c-format
-msgid "could not determine which collation to use for ILIKE"
-msgstr "无法确定ILIKE使用哪种排序规则"
+msgid "single boolean result is expected"
+msgstr ""
 
-#: utils/adt/like_match.c:107 utils/adt/like_match.c:167
+#: utils/adt/jsonpath_exec.c:490
 #, c-format
-msgid "LIKE pattern must not end with escape character"
-msgstr "LIKE模式不能以转义字符结束"
+msgid "\"vars\" argument is not an object"
+msgstr ""
 
-#: utils/adt/like_match.c:292 utils/adt/regexp.c:702
+#: utils/adt/jsonpath_exec.c:491
 #, c-format
-msgid "invalid escape string"
-msgstr "无效的逃逸字符串"
+msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object."
+msgstr ""
 
-#: utils/adt/like_match.c:293 utils/adt/regexp.c:703
+#: utils/adt/jsonpath_exec.c:607
 #, c-format
-msgid "Escape string must be empty or one character."
-msgstr "逃逸字符串必须为空或者一个字符."
+msgid "JSON object does not contain key \"%s\""
+msgstr ""
 
-#: utils/adt/lockfuncs.c:664
+#: utils/adt/jsonpath_exec.c:619
 #, c-format
-msgid "cannot use advisory locks during a parallel operation"
-msgstr "在并行操作期间无法使用咨询锁"
+msgid "jsonpath member accessor can only be applied to an object"
+msgstr ""
 
-#: utils/adt/mac.c:102
+#: utils/adt/jsonpath_exec.c:648
 #, c-format
-msgid "invalid octet value in \"macaddr\" value: \"%s\""
-msgstr "在 \"macaddr\" 值中的无效八位值: \"%s\""
+msgid "jsonpath wildcard array accessor can only be applied to an array"
+msgstr ""
 
-#: utils/adt/mac8.c:563
+#: utils/adt/jsonpath_exec.c:696
+#, fuzzy, c-format
+#| msgid "array subscript out of range"
+msgid "jsonpath array subscript is out of bounds"
+msgstr "数组下标超出范围"
+
+#: utils/adt/jsonpath_exec.c:753
 #, c-format
-msgid "macaddr8 data out of range to convert to macaddr"
-msgstr "macaddr8数据超出范围,无法转换为macaddr"
+msgid "jsonpath array accessor can only be applied to an array"
+msgstr ""
 
-#: utils/adt/mac8.c:564
+#: utils/adt/jsonpath_exec.c:807
 #, c-format
-msgid "Only addresses that have FF and FE as values in the 4th and 5th bytes from the left, for example xx:xx:xx:ff:fe:xx:xx:xx, are eligible to be converted from macaddr8 to macaddr."
-msgstr "只有在左边第4和第5个字节中具有FF和FE值的地址(例如,xx:xx:xx:ff:fe:xx:xx:xx)才有资格从macaddr8转换为macaddr."
+msgid "jsonpath wildcard member accessor can only be applied to an object"
+msgstr ""
 
-#: utils/adt/misc.c:239
+#: utils/adt/jsonpath_exec.c:937
 #, c-format
-msgid "PID %d is not a PostgreSQL server process"
-msgstr "PID %d 不是 PostgreSQL 服务器进程"
+msgid "jsonpath item method .%s() can only be applied to an array"
+msgstr ""
 
-#: utils/adt/misc.c:290
+#: utils/adt/jsonpath_exec.c:991 utils/adt/jsonpath_exec.c:1012
+#: utils/adt/jsonpath_exec.c:1695
 #, c-format
-msgid "must be a superuser to cancel superuser query"
-msgstr "只有超级用户才能取消超级用户的查询"
+msgid "jsonpath item method .%s() can only be applied to a numeric value"
+msgstr ""
 
-#: utils/adt/misc.c:295
+#: utils/adt/jsonpath_exec.c:1025
 #, c-format
-msgid "must be a member of the role whose query is being canceled or member of pg_signal_backend"
-msgstr "必须是其查询被取消的角色的一个成员或者 pg_signal_backend 的一个成员"
+msgid "jsonpath item method .%s() can only be applied to a string or numeric value"
+msgstr ""
 
-#: utils/adt/misc.c:314
+#: utils/adt/jsonpath_exec.c:1509
 #, c-format
-msgid "must be a superuser to terminate superuser process"
-msgstr "只有超级用户中止超级用户的进程"
+msgid "left operand of jsonpath operator %s is not a single numeric value"
+msgstr ""
 
-#: utils/adt/misc.c:319
+#: utils/adt/jsonpath_exec.c:1516
 #, c-format
-msgid "must be a member of the role whose process is being terminated or member of pg_signal_backend"
-msgstr "必须是其进程被终止的角色的一个成员或者 pg_signal_backend 的一个成员"
+msgid "right operand of jsonpath operator %s is not a single numeric value"
+msgstr ""
 
-#: utils/adt/misc.c:336
+#: utils/adt/jsonpath_exec.c:1584
 #, c-format
-msgid "failed to send signal to postmaster: %m"
-msgstr "无法发送信号到postmaster进程: %m"
+msgid "operand of unary jsonpath operator %s is not a numeric value"
+msgstr ""
 
-#: utils/adt/misc.c:355
+#: utils/adt/jsonpath_exec.c:1754
 #, c-format
-msgid "must be superuser to rotate log files with adminpack 1.0"
-msgstr "必须是超级用户才能使用adminpack 1.0旋转日志文件"
+msgid "jsonpath item method .%s() can only be applied to an object"
+msgstr ""
+
+#: utils/adt/jsonpath_exec.c:1937
+#, fuzzy, c-format
+#| msgid "could not find WAL file \"%s\""
+msgid "could not find jsonpath variable \"%s\""
+msgstr "找不到WAL文件\"%s\""
 
-#: utils/adt/misc.c:356
+#: utils/adt/jsonpath_exec.c:2097
 #, c-format
-msgid "Consider using pg_logfile_rotate(), which is part of core, instead."
-msgstr "考虑使用 pg_logfile_rotate(),它是核心的一部分,代替"
+msgid "jsonpath array subscript is not a single numeric value"
+msgstr ""
 
-#: utils/adt/misc.c:361 utils/adt/misc.c:381
+#: utils/adt/jsonpath_exec.c:2109
+#, fuzzy, c-format
+#| msgid "array subscript out of range"
+msgid "jsonpath array subscript is out of integer range"
+msgstr "数组下标超出范围"
+
+#: utils/adt/levenshtein.c:133
 #, c-format
-msgid "rotation not possible because log collection not active"
-msgstr "日志切换无法进行,因为没有激活日志收集功能"
+msgid "levenshtein argument exceeds maximum length of %d characters"
+msgstr "levenshtein 参数超过了 %d 字符的最大长度"
+
+#: utils/adt/like.c:160
+#, fuzzy, c-format
+#| msgid "could not determine which collation to use for ILIKE"
+msgid "nondeterministic collations are not supported for LIKE"
+msgstr "无法确定ILIKE使用哪种排序规则"
+
+#: utils/adt/like.c:193 utils/adt/like_support.c:964
+#, c-format
+msgid "could not determine which collation to use for ILIKE"
+msgstr "无法确定ILIKE使用哪种排序规则"
+
+#: utils/adt/like.c:201
+#, fuzzy, c-format
+#| msgid "could not determine which collation to use for ILIKE"
+msgid "nondeterministic collations are not supported for ILIKE"
+msgstr "无法确定ILIKE使用哪种排序规则"
+
+#: utils/adt/like_match.c:107 utils/adt/like_match.c:167
+#, c-format
+msgid "LIKE pattern must not end with escape character"
+msgstr "LIKE模式不能以转义字符结束"
+
+#: utils/adt/like_match.c:292 utils/adt/regexp.c:702
+#, c-format
+msgid "invalid escape string"
+msgstr "无效的逃逸字符串"
+
+#: utils/adt/like_match.c:293 utils/adt/regexp.c:703
+#, c-format
+msgid "Escape string must be empty or one character."
+msgstr "逃逸字符串必须为空或者一个字符."
+
+#: utils/adt/like_support.c:949
+#, c-format
+msgid "case insensitive matching not supported on type bytea"
+msgstr "在类型bytea上不支持对不区分大小写的匹配"
+
+#: utils/adt/like_support.c:1051
+#, c-format
+msgid "regular-expression matching not supported on type bytea"
+msgstr "在 bytea 类型上不支持正则表达式匹配"
+
+#: utils/adt/lockfuncs.c:664
+#, c-format
+msgid "cannot use advisory locks during a parallel operation"
+msgstr "在并行操作期间无法使用咨询锁"
+
+#: utils/adt/mac.c:102
+#, c-format
+msgid "invalid octet value in \"macaddr\" value: \"%s\""
+msgstr "在 \"macaddr\" 值中的无效八位值: \"%s\""
+
+#: utils/adt/mac8.c:563
+#, c-format
+msgid "macaddr8 data out of range to convert to macaddr"
+msgstr "macaddr8数据超出范围,无法转换为macaddr"
+
+#: utils/adt/mac8.c:564
+#, c-format
+msgid "Only addresses that have FF and FE as values in the 4th and 5th bytes from the left, for example xx:xx:xx:ff:fe:xx:xx:xx, are eligible to be converted from macaddr8 to macaddr."
+msgstr "只有在左边第4和第5个字节中具有FF和FE值的地址(例如,xx:xx:xx:ff:fe:xx:xx:xx)才有资格从macaddr8转换为macaddr."
 
-#: utils/adt/misc.c:418
+#: utils/adt/misc.c:225
 #, c-format
 msgid "global tablespace never has databases"
 msgstr "全局表空间没有数据库"
 
-#: utils/adt/misc.c:439
+#: utils/adt/misc.c:246
 #, c-format
 msgid "%u is not a tablespace OID"
 msgstr "%u 不是一个表空间 OID"
 
-#: utils/adt/misc.c:626
+#: utils/adt/misc.c:435
 msgid "unreserved"
 msgstr "未保留"
 
-#: utils/adt/misc.c:630
+#: utils/adt/misc.c:439
 msgid "unreserved (cannot be function or type name)"
 msgstr "未保留(不能是函数或者类型名称)"
 
-#: utils/adt/misc.c:634
+#: utils/adt/misc.c:443
 msgid "reserved (can be function or type name)"
 msgstr "已保留(可以是函数或类型名称)"
 
-#: utils/adt/misc.c:638
+#: utils/adt/misc.c:447
 msgid "reserved"
 msgstr "已保留"
 
-#: utils/adt/misc.c:812 utils/adt/misc.c:826 utils/adt/misc.c:865
-#: utils/adt/misc.c:871 utils/adt/misc.c:877 utils/adt/misc.c:900
+#: utils/adt/misc.c:621 utils/adt/misc.c:635 utils/adt/misc.c:674
+#: utils/adt/misc.c:680 utils/adt/misc.c:686 utils/adt/misc.c:709
 #, c-format
 msgid "string is not a valid identifier: \"%s\""
 msgstr "字符串不是一个合法的标识符:\"%s\""
 
-#: utils/adt/misc.c:814
+#: utils/adt/misc.c:623
 #, c-format
 msgid "String has unclosed double quotes."
 msgstr "字符串有未封闭的双引号。"
 
-#: utils/adt/misc.c:828
+#: utils/adt/misc.c:637
 #, c-format
 msgid "Quoted identifier must not be empty."
 msgstr "被引用的标识符不能为空。"
 
-#: utils/adt/misc.c:867
+#: utils/adt/misc.c:676
 #, c-format
 msgid "No valid identifier before \".\"."
 msgstr "\".\" 符号前没有合法的标识符。"
 
-#: utils/adt/misc.c:873
+#: utils/adt/misc.c:682
 #, c-format
 msgid "No valid identifier after \".\"."
 msgstr "\".\" 符号后没有合法的标识符。"
 
-#: utils/adt/misc.c:934
+#: utils/adt/misc.c:743
 #, c-format
 msgid "log format \"%s\" is not supported"
 msgstr "不支持日志格式\"%s\""
 
-#: utils/adt/misc.c:935
+#: utils/adt/misc.c:744
 #, c-format
 msgid "The supported log formats are \"stderr\" and \"csvlog\"."
 msgstr "支持的日志格式为\"stderr\"和\"csvlog\"."
 
-#: utils/adt/nabstime.c:140
-#, c-format
-msgid "invalid time zone name: \"%s\""
-msgstr "无效时区名字: \"%s\""
-
-#: utils/adt/nabstime.c:485 utils/adt/nabstime.c:558
-#, c-format
-msgid "cannot convert abstime \"invalid\" to timestamp"
-msgstr "无法把 abstime \"invalid\" 转换为 timestamp."
-
-#: utils/adt/nabstime.c:785
-#, c-format
-msgid "invalid status in external \"tinterval\" value"
-msgstr "无效的外部 \"tinterval\" 值状态"
-
-#: utils/adt/nabstime.c:855
-#, c-format
-msgid "cannot convert reltime \"invalid\" to interval"
-msgstr "无法把 reltime \"invalid\" 转换为 interval"
-
-#: utils/adt/network.c:69
+#: utils/adt/network.c:85
 #, c-format
 msgid "invalid cidr value: \"%s\""
 msgstr "无效的 cidr 值: \"%s\""
 
-#: utils/adt/network.c:70 utils/adt/network.c:200
+#: utils/adt/network.c:86 utils/adt/network.c:216
 #, c-format
 msgid "Value has bits set to right of mask."
 msgstr "这个值带有的bit集合,在掩码的右边."
 
-#: utils/adt/network.c:111 utils/adt/network.c:592 utils/adt/network.c:617
-#: utils/adt/network.c:642
+#: utils/adt/network.c:127 utils/adt/network.c:800 utils/adt/network.c:825
+#: utils/adt/network.c:850
 #, c-format
 msgid "could not format inet value: %m"
 msgstr "无法格式化 inet 值: %m"
 
 #. translator: %s is inet or cidr
-#: utils/adt/network.c:168
+#: utils/adt/network.c:184
 #, c-format
 msgid "invalid address family in external \"%s\" value"
 msgstr "在外部\"%s\"值中的地址族无效"
 
 #. translator: %s is inet or cidr
-#: utils/adt/network.c:175
+#: utils/adt/network.c:191
 #, c-format
 msgid "invalid bits in external \"%s\" value"
 msgstr "在外部\"%s\"值中的bit无效"
 
 #. translator: %s is inet or cidr
-#: utils/adt/network.c:184
+#: utils/adt/network.c:200
 #, c-format
 msgid "invalid length in external \"%s\" value"
 msgstr "在外部\"%s\"值中的长度无效"
 
-#: utils/adt/network.c:199
+#: utils/adt/network.c:215
 #, c-format
 msgid "invalid external \"cidr\" value"
 msgstr "无效的外部 \"cidr\" 值"
 
-#: utils/adt/network.c:295 utils/adt/network.c:318
+#: utils/adt/network.c:311 utils/adt/network.c:334
 #, c-format
 msgid "invalid mask length: %d"
 msgstr "无效掩码长度: %d"
 
-#: utils/adt/network.c:660
+#: utils/adt/network.c:868
 #, c-format
 msgid "could not format cidr value: %m"
 msgstr "无法格式化cidr值: %m"
 
-#: utils/adt/network.c:893
+#: utils/adt/network.c:1101
 #, c-format
 msgid "cannot merge addresses from different families"
 msgstr "无法合并来自不同族的地址"
 
-#: utils/adt/network.c:1309
+#: utils/adt/network.c:1517
 #, c-format
 msgid "cannot AND inet values of different sizes"
 msgstr "无法为不同大小的inet类型值进行与 (AND) 位运算"
 
-#: utils/adt/network.c:1341
+#: utils/adt/network.c:1549
 #, c-format
 msgid "cannot OR inet values of different sizes"
 msgstr "无法为不同大小的inet类型值进行或 (OR) 运算"
 
-#: utils/adt/network.c:1402 utils/adt/network.c:1478
+#: utils/adt/network.c:1610 utils/adt/network.c:1686
 #, c-format
 msgid "result is out of range"
 msgstr "结果超出范围"
 
-#: utils/adt/network.c:1443
+#: utils/adt/network.c:1651
 #, c-format
 msgid "cannot subtract inet values of different sizes"
 msgstr "无法为不同大小的inet类型值进行减法运算"
 
-#: utils/adt/numeric.c:830
+#: utils/adt/numeric.c:833
 #, c-format
 msgid "invalid sign in external \"numeric\" value"
 msgstr "无效的外部 \"numeric\" 值符号"
 
-#: utils/adt/numeric.c:836
+#: utils/adt/numeric.c:839
 #, c-format
 msgid "invalid scale in external \"numeric\" value"
 msgstr "外部\"numeric\"值中范围无效"
 
-#: utils/adt/numeric.c:845
+#: utils/adt/numeric.c:848
 #, c-format
 msgid "invalid digit in external \"numeric\" value"
 msgstr "无效的外部 \"numeric\" 值位数"
 
-#: utils/adt/numeric.c:1035 utils/adt/numeric.c:1049
+#: utils/adt/numeric.c:1046 utils/adt/numeric.c:1060
 #, c-format
 msgid "NUMERIC precision %d must be between 1 and %d"
 msgstr "NUMERIC %d 的精度必须在 1 和 %d 之间"
 
-#: utils/adt/numeric.c:1040
+#: utils/adt/numeric.c:1051
 #, 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:1058
+#: utils/adt/numeric.c:1069
 #, c-format
 msgid "invalid NUMERIC type modifier"
 msgstr "无效的NUMERIC类型修改器"
 
-#: utils/adt/numeric.c:1390
+#: utils/adt/numeric.c:1401
 #, c-format
 msgid "start value cannot be NaN"
 msgstr "开始值不能是NaN"
 
-#: utils/adt/numeric.c:1395
+#: utils/adt/numeric.c:1406
 #, c-format
 msgid "stop value cannot be NaN"
 msgstr "停止值不能是NaN"
 
-#: utils/adt/numeric.c:1405
+#: utils/adt/numeric.c:1416
 #, c-format
 msgid "step size cannot be NaN"
 msgstr "步长不能是NaN"
 
-#: utils/adt/numeric.c:2736 utils/adt/numeric.c:5725 utils/adt/numeric.c:6170
-#: utils/adt/numeric.c:7878 utils/adt/numeric.c:8303 utils/adt/numeric.c:8417
-#: utils/adt/numeric.c:8490
+#: utils/adt/numeric.c:2857 utils/adt/numeric.c:5869 utils/adt/numeric.c:6324
+#: utils/adt/numeric.c:8046 utils/adt/numeric.c:8471 utils/adt/numeric.c:8585
+#: utils/adt/numeric.c:8658
 #, c-format
 msgid "value overflows numeric format"
 msgstr "值溢出数字格式"
 
-#: utils/adt/numeric.c:3095
+#: utils/adt/numeric.c:3222
 #, c-format
 msgid "cannot convert NaN to integer"
 msgstr "无法转化 NaN 为整数"
 
-#: utils/adt/numeric.c:3161
+#: utils/adt/numeric.c:3305
 #, c-format
 msgid "cannot convert NaN to bigint"
 msgstr "无法转换 NaN 为 bigint"
 
-#: utils/adt/numeric.c:3206
+#: utils/adt/numeric.c:3350
 #, c-format
 msgid "cannot convert NaN to smallint"
 msgstr "无法转换 NaN 为 smallint"
 
-#: utils/adt/numeric.c:3243 utils/adt/numeric.c:3314
+#: utils/adt/numeric.c:3387 utils/adt/numeric.c:3458
 #, c-format
 msgid "cannot convert infinity to numeric"
 msgstr "无法转化无穷大为整数"
 
-#: utils/adt/numeric.c:6240
+#: utils/adt/numeric.c:6408
 #, c-format
 msgid "numeric field overflow"
 msgstr "数字字段溢出"
 
-#: utils/adt/numeric.c:6241
+#: utils/adt/numeric.c:6409
 #, 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/numutils.c:89
+#: utils/adt/numutils.c:90
 #, c-format
 msgid "value \"%s\" is out of range for 8-bit integer"
 msgstr "值 \"%s\" 超出 8 位整数范围"
@@ -22289,93 +22225,91 @@ msgstr "不允许使用空字符"
 msgid "percentile value %g is not between 0 and 1"
 msgstr "百分比值 %g 不在0和1之间"
 
-#: utils/adt/pg_locale.c:1034
+#: utils/adt/pg_locale.c:1097
 #, c-format
 msgid "Apply system library package updates."
 msgstr "应用系统库包更新。"
 
-#: utils/adt/pg_locale.c:1249
+#: utils/adt/pg_locale.c:1312
 #, c-format
 msgid "could not create locale \"%s\": %m"
 msgstr "无法创建本地化环境 \"%s\": %m"
 
-#: utils/adt/pg_locale.c:1252
+#: utils/adt/pg_locale.c:1315
 #, c-format
 msgid "The operating system could not find any locale data for the locale name \"%s\"."
 msgstr "操作系统无法找到本地化名 \"%s\"对应的任何本地化数据."
 
-#: utils/adt/pg_locale.c:1353
+#: utils/adt/pg_locale.c:1417
 #, c-format
 msgid "collations with different collate and ctype values are not supported on this platform"
 msgstr "在此平台上不支持带有不同collate和ctype值的排序规则"
 
-#: utils/adt/pg_locale.c:1362
+#: utils/adt/pg_locale.c:1426
 #, c-format
 msgid "collation provider LIBC is not supported on this platform"
 msgstr "此平台不支持排序规则提供程序LIBC"
 
-#: utils/adt/pg_locale.c:1374
+#: utils/adt/pg_locale.c:1438
 #, c-format
 msgid "collations with different collate and ctype values are not supported by ICU"
 msgstr "ICU不支持带有不同collate和ctype值的排序规则"
 
-#: utils/adt/pg_locale.c:1380 utils/adt/pg_locale.c:1468
+#: utils/adt/pg_locale.c:1444 utils/adt/pg_locale.c:1535
+#: utils/adt/pg_locale.c:1753
 #, c-format
 msgid "could not open collator for locale \"%s\": %s"
 msgstr "无法打开区域设置\"%s\"的排序器: %s"
 
 # input.c:213
-#: utils/adt/pg_locale.c:1391
+#: utils/adt/pg_locale.c:1458
 #, c-format
 msgid "ICU is not supported in this build"
 msgstr "这个版本的安装不支持使用ICU"
 
-#: utils/adt/pg_locale.c:1392
+#: utils/adt/pg_locale.c:1459
 #, c-format
 msgid "You need to rebuild PostgreSQL using --with-icu."
 msgstr "您需要使用--with-icu选项重新生成PostgreSQL"
 
-#: utils/adt/pg_locale.c:1412
+#: utils/adt/pg_locale.c:1479
 #, c-format
 msgid "collation \"%s\" has no actual version, but a version was specified"
 msgstr "排序规则\"%s\"没有实际版本,但指定了版本"
 
-#: utils/adt/pg_locale.c:1419
+#: utils/adt/pg_locale.c:1486
 #, c-format
 msgid "collation \"%s\" has version mismatch"
 msgstr "排序规则\"%s\"的版本不匹配"
 
-#: utils/adt/pg_locale.c:1421
+#: utils/adt/pg_locale.c:1488
 #, c-format
 msgid "The collation in the database was created using version %s, but the operating system provides version %s."
 msgstr "数据库中的排序规则是使用版本%s创建的,但操作系统提供版本%s."
 
-#: utils/adt/pg_locale.c:1424
+#: utils/adt/pg_locale.c:1491
 #, c-format
 msgid "Rebuild all objects affected by this collation and run ALTER COLLATION %s REFRESH VERSION, or build PostgreSQL with the right library version."
 msgstr "重新生成受此排序规则影响的所有对象,并运行ALTER COLLATION %s REFRESH VERSION,,或使用正确的库版本生成PostgreSQL."
 
-#: utils/adt/pg_locale.c:1508
+#: utils/adt/pg_locale.c:1575
 #, c-format
 msgid "could not open ICU converter for encoding \"%s\": %s"
 msgstr "无法打开编码\"%s\"的ICU转换器: %s"
 
-#: utils/adt/pg_locale.c:1539 utils/adt/pg_locale.c:1548
-#, c-format
-msgid "ucnv_toUChars failed: %s"
-msgstr "ucnv_toUChars调用失败: %s"
-
-#: utils/adt/pg_locale.c:1577 utils/adt/pg_locale.c:1586
-#, c-format
-msgid "ucnv_fromUChars failed: %s"
-msgstr "ucnv_fromUChars调用失败: %s"
+#: utils/adt/pg_locale.c:1606 utils/adt/pg_locale.c:1615
+#: utils/adt/pg_locale.c:1644 utils/adt/pg_locale.c:1654
+#, fuzzy, c-format
+#| msgid "pclose failed: %s"
+msgid "%s failed: %s"
+msgstr "pclose调用失败: %s"
 
-#: utils/adt/pg_locale.c:1758
+#: utils/adt/pg_locale.c:1926
 #, c-format
 msgid "invalid multibyte character for locale"
 msgstr "无效的多字节字符, 对于 locale"
 
-#: utils/adt/pg_locale.c:1759
+#: utils/adt/pg_locale.c:1927
 #, c-format
 msgid "The server's LC_CTYPE locale is probably incompatible with the database encoding."
 msgstr "服务器本地 LC_CTYPE 可能与数据库编码不兼容."
@@ -22385,7 +22319,7 @@ msgstr "服务器本地 LC_CTYPE 可能与数据库编码不兼容."
 msgid "function can only be called when server is in binary upgrade mode"
 msgstr "只有当服务器处于二进制升级模式时才能调用函数"
 
-#: utils/adt/pgstatfuncs.c:474
+#: utils/adt/pgstatfuncs.c:479
 #, c-format
 msgid "invalid command name: \"%s\""
 msgstr "无效的命令名:\"%s\""
@@ -22410,106 +22344,104 @@ msgstr "无法输出一个类型%s的值"
 msgid "cannot display a value of type %s"
 msgstr "无法显示类型为%s的值"
 
-#: utils/adt/rangetypes.c:405
+#: utils/adt/rangetypes.c:406
 #, c-format
 msgid "range constructor flags argument must not be null"
 msgstr "范围构造器的参数不能为NULL"
 
-#: utils/adt/rangetypes.c:992
+#: utils/adt/rangetypes.c:993
 #, c-format
 msgid "result of range difference would not be contiguous"
 msgstr "距离差结果不能是连续的"
 
-#: utils/adt/rangetypes.c:1053
+#: utils/adt/rangetypes.c:1054
 #, c-format
 msgid "result of range union would not be contiguous"
 msgstr "范围并的结果不能是连续的"
 
-#: utils/adt/rangetypes.c:1597
+#: utils/adt/rangetypes.c:1598
 #, c-format
 msgid "range lower bound must be less than or equal to range upper bound"
 msgstr "范围下限必须小于或等于其上限"
 
-#: utils/adt/rangetypes.c:1980 utils/adt/rangetypes.c:1993
-#: utils/adt/rangetypes.c:2007
+#: utils/adt/rangetypes.c:1981 utils/adt/rangetypes.c:1994
+#: utils/adt/rangetypes.c:2008
 #, c-format
 msgid "invalid range bound flags"
 msgstr "无效的范围边界标记"
 
-#: utils/adt/rangetypes.c:1981 utils/adt/rangetypes.c:1994
-#: utils/adt/rangetypes.c:2008
+#: utils/adt/rangetypes.c:1982 utils/adt/rangetypes.c:1995
+#: utils/adt/rangetypes.c:2009
 #, c-format
 msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"."
 msgstr "有效值为\"[]\", \"[)\", \"(]\", 和 \"()\"."
 
-#: utils/adt/rangetypes.c:2073 utils/adt/rangetypes.c:2090
-#: utils/adt/rangetypes.c:2103 utils/adt/rangetypes.c:2121
-#: utils/adt/rangetypes.c:2132 utils/adt/rangetypes.c:2176
-#: utils/adt/rangetypes.c:2184
+#: utils/adt/rangetypes.c:2074 utils/adt/rangetypes.c:2091
+#: utils/adt/rangetypes.c:2104 utils/adt/rangetypes.c:2122
+#: utils/adt/rangetypes.c:2133 utils/adt/rangetypes.c:2177
+#: utils/adt/rangetypes.c:2185
 #, c-format
 msgid "malformed range literal: \"%s\""
 msgstr "有缺陷的范围字串:\"%s\""
 
-#: utils/adt/rangetypes.c:2075
+#: utils/adt/rangetypes.c:2076
 #, c-format
 msgid "Junk after \"empty\" key word."
 msgstr "\"empty\" 关键字后有Junk标识."
 
-#: utils/adt/rangetypes.c:2092
+#: utils/adt/rangetypes.c:2093
 #, c-format
 msgid "Missing left parenthesis or bracket."
 msgstr "缺少一个左大括弧或左方括弧."
 
-#: utils/adt/rangetypes.c:2105
+#: utils/adt/rangetypes.c:2106
 #, c-format
 msgid "Missing comma after lower bound."
 msgstr "下界后缺少逗号."
 
-#: utils/adt/rangetypes.c:2123
+#: utils/adt/rangetypes.c:2124
 #, c-format
 msgid "Too many commas."
 msgstr "太多逗号."
 
-#: utils/adt/rangetypes.c:2134
+#: utils/adt/rangetypes.c:2135
 #, c-format
 msgid "Junk after right parenthesis or bracket."
 msgstr "右大括号或右中括弧后的内容无用."
 
-#: utils/adt/regexp.c:289 utils/adt/regexp.c:1424 utils/adt/varlena.c:4105
+#: utils/adt/regexp.c:289 utils/adt/regexp.c:1490 utils/adt/varlena.c:4476
 #, c-format
 msgid "regular expression failed: %s"
 msgstr "正则表达式失败: %s"
 
 #: utils/adt/regexp.c:426
-#, c-format
-msgid "invalid regexp option: \"%c\""
-msgstr "无效的正则表达式选项: \"%c\""
+#, fuzzy, c-format
+#| msgid "invalid regular expression: %s"
+msgid "invalid regular expression option: \"%c\""
+msgstr "无效的正则表达式: %s"
 
-#: utils/adt/regexp.c:866
+#: utils/adt/regexp.c:838
 #, c-format
-msgid "regexp_match does not support the global option"
+msgid "SQL regular expression may not contain more than two escape-double-quote separators"
+msgstr ""
+
+#. translator: %s is a SQL function name
+#: utils/adt/regexp.c:924 utils/adt/regexp.c:1307 utils/adt/regexp.c:1362
+#, fuzzy, c-format
+#| msgid "regexp_match does not support the global option"
+msgid "%s does not support the \"global\" option"
 msgstr "regexp_match 不支持全局选项"
 
-#: utils/adt/regexp.c:867
+#: utils/adt/regexp.c:926
 #, c-format
 msgid "Use the regexp_matches function instead."
 msgstr "改用regexp_matches函数"
 
-#: utils/adt/regexp.c:1049
+#: utils/adt/regexp.c:1108
 #, c-format
 msgid "too many regular expression matches"
 msgstr "匹配的正则表达式太多"
 
-#: utils/adt/regexp.c:1244
-#, c-format
-msgid "regexp_split_to_table does not support the global option"
-msgstr "regexp_split_to_table不支持全局选项"
-
-#: utils/adt/regexp.c:1297
-#, c-format
-msgid "regexp_split_to_array does not support the global option"
-msgstr "regexp_split_to_array不支持全局选项"
-
 #: utils/adt/regproc.c:106
 #, c-format
 msgid "more than one function named \"%s\""
@@ -22520,8 +22452,18 @@ msgstr "多个函数名为 \"%s\""
 msgid "more than one operator named %s"
 msgstr "多个操作符名为 %s"
 
+#: utils/adt/regproc.c:691 utils/adt/regproc.c:732 gram.y:8145
+#, c-format
+msgid "missing argument"
+msgstr "缺少参数"
+
+#: utils/adt/regproc.c:692 utils/adt/regproc.c:733 gram.y:8146
+#, c-format
+msgid "Use NONE to denote the missing argument of a unary operator."
+msgstr "使用 NONE 表示一元操作符缺少的参数."
+
 #: utils/adt/regproc.c:696 utils/adt/regproc.c:737 utils/adt/regproc.c:1865
-#: utils/adt/ruleutils.c:9134 utils/adt/ruleutils.c:9302
+#: utils/adt/ruleutils.c:9210 utils/adt/ruleutils.c:9378
 #, c-format
 msgid "too many arguments"
 msgstr "太多参数"
@@ -22533,7 +22475,7 @@ msgstr "为操作符提供两个参数类型."
 
 #: utils/adt/regproc.c:1449 utils/adt/regproc.c:1473 utils/adt/regproc.c:1574
 #: utils/adt/regproc.c:1598 utils/adt/regproc.c:1700 utils/adt/regproc.c:1705
-#: utils/adt/varlena.c:3246 utils/adt/varlena.c:3251
+#: utils/adt/varlena.c:3625 utils/adt/varlena.c:3630
 #, c-format
 msgid "invalid name syntax"
 msgstr "无效的名字语法"
@@ -22558,150 +22500,157 @@ msgstr "需要一个类型名字"
 msgid "improper type name"
 msgstr "不正确的类型名字"
 
-#: utils/adt/ri_triggers.c:337 utils/adt/ri_triggers.c:2085
-#: utils/adt/ri_triggers.c:2767
+#: utils/adt/ri_triggers.c:298 utils/adt/ri_triggers.c:1534
+#: utils/adt/ri_triggers.c:2465
 #, c-format
 msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\""
 msgstr "插入或更新表 \"%s\" 违反外键约束 \"%s\""
 
-#: utils/adt/ri_triggers.c:340 utils/adt/ri_triggers.c:2088
+#: utils/adt/ri_triggers.c:301 utils/adt/ri_triggers.c:1537
 #, c-format
 msgid "MATCH FULL does not allow mixing of null and nonnull key values."
 msgstr "MATCH FULL 不允许空和非空键值的混合."
 
-#: utils/adt/ri_triggers.c:2273
+#: utils/adt/ri_triggers.c:1932
 #, c-format
 msgid "function \"%s\" must be fired for INSERT"
 msgstr "函数 \"%s\"必须为INSERT操作触发"
 
-#: utils/adt/ri_triggers.c:2279
+#: utils/adt/ri_triggers.c:1938
 #, c-format
 msgid "function \"%s\" must be fired for UPDATE"
 msgstr "函数 \"%s\"必须为UPDATE操作触发"
 
-#: utils/adt/ri_triggers.c:2285
+#: utils/adt/ri_triggers.c:1944
 #, c-format
 msgid "function \"%s\" must be fired for DELETE"
 msgstr "函数 \"%s\"必须为DELETE操作触发"
 
-#: utils/adt/ri_triggers.c:2308
+#: utils/adt/ri_triggers.c:1967
 #, c-format
 msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\""
 msgstr "在pg_constraint上没有对于表 \"%2$s\" 上的触发器 \"%1$s\" 的项"
 
-#: utils/adt/ri_triggers.c:2310
+#: utils/adt/ri_triggers.c:1969
 #, c-format
 msgid "Remove this referential integrity trigger and its mates, then do ALTER TABLE ADD CONSTRAINT."
 msgstr "删除这个参照完整性触发器和与它相关的对象,然后执行ALTER TABLE ADD CONSTRAINT操作."
 
-#: utils/adt/ri_triggers.c:2614
+#: utils/adt/ri_triggers.c:1999 gram.y:3784
+#, c-format
+msgid "MATCH PARTIAL not yet implemented"
+msgstr "MATCH PARTIAL 仍未实现"
+
+#: utils/adt/ri_triggers.c:2291
 #, c-format
 msgid "referential integrity query on \"%s\" from constraint \"%s\" on \"%s\" gave unexpected result"
 msgstr "从在\"%3$s\"的约束\"%2$s\"中在\"%1$s\"上执行的参照完整性查询得出非期待结果."
 
-#: utils/adt/ri_triggers.c:2618
+#: utils/adt/ri_triggers.c:2295
 #, c-format
 msgid "This is most likely due to a rule having rewritten the query."
 msgstr "这很可能是由于规则正在重写查询"
 
-#: utils/adt/ri_triggers.c:2771
+#: utils/adt/ri_triggers.c:2456
+#, fuzzy, c-format
+#| msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\""
+msgid "removing partition \"%s\" violates foreign key constraint \"%s\""
+msgstr "插入或更新表 \"%s\" 违反外键约束 \"%s\""
+
+#: utils/adt/ri_triggers.c:2459
+#, fuzzy, c-format
+#| msgid "Key (%s)=(%s) is still referenced from table \"%s\"."
+msgid "Key (%s)=(%s) still referenced from table \"%s\"."
+msgstr "键值对(%s)=(%s)仍然是从表\"%s\"引用的."
+
+#: utils/adt/ri_triggers.c:2469
 #, c-format
 msgid "Key (%s)=(%s) is not present in table \"%s\"."
 msgstr "键值对(%s)=(%s)没有在表\"%s\"中出现."
 
-#: utils/adt/ri_triggers.c:2774
+#: utils/adt/ri_triggers.c:2472
 #, c-format
 msgid "Key is not present in table \"%s\"."
 msgstr "表\"%s\"中没有出现键。"
 
-#: utils/adt/ri_triggers.c:2780
+#: utils/adt/ri_triggers.c:2478
 #, c-format
 msgid "update or delete on table \"%s\" violates foreign key constraint \"%s\" on table \"%s\""
 msgstr "在 \"%1$s\" 上的更新或删除操作违反了在 \"%3$s\" 上的外键约束 \"%2$s\""
 
-#: utils/adt/ri_triggers.c:2785
+#: utils/adt/ri_triggers.c:2483
 #, c-format
 msgid "Key (%s)=(%s) is still referenced from table \"%s\"."
 msgstr "键值对(%s)=(%s)仍然是从表\"%s\"引用的."
 
-#: utils/adt/ri_triggers.c:2788
+#: utils/adt/ri_triggers.c:2486
 #, c-format
 msgid "Key is still referenced from table \"%s\"."
 msgstr "表\"%s\"中仍然有对键的引用。"
 
-#: utils/adt/rowtypes.c:103 utils/adt/rowtypes.c:481
+#: utils/adt/rowtypes.c:104 utils/adt/rowtypes.c:482
 #, c-format
 msgid "input of anonymous composite types is not implemented"
 msgstr "匿名复合类型输入仍未实现"
 
-#: utils/adt/rowtypes.c:155 utils/adt/rowtypes.c:184 utils/adt/rowtypes.c:207
-#: utils/adt/rowtypes.c:215 utils/adt/rowtypes.c:267 utils/adt/rowtypes.c:275
+#: utils/adt/rowtypes.c:156 utils/adt/rowtypes.c:185 utils/adt/rowtypes.c:208
+#: utils/adt/rowtypes.c:216 utils/adt/rowtypes.c:268 utils/adt/rowtypes.c:276
 #, c-format
 msgid "malformed record literal: \"%s\""
 msgstr "有缺陷的记录常量: \"%s\""
 
-#: utils/adt/rowtypes.c:156
+#: utils/adt/rowtypes.c:157
 #, c-format
 msgid "Missing left parenthesis."
 msgstr "缺少一个左括弧"
 
-#: utils/adt/rowtypes.c:185
+#: utils/adt/rowtypes.c:186
 #, c-format
 msgid "Too few columns."
 msgstr "字段太少."
 
-#: utils/adt/rowtypes.c:268
+#: utils/adt/rowtypes.c:269
 #, c-format
 msgid "Too many columns."
 msgstr "太多字段."
 
-#: utils/adt/rowtypes.c:276
+#: utils/adt/rowtypes.c:277
 #, c-format
 msgid "Junk after right parenthesis."
 msgstr "右括号后的内容无用."
 
-#: utils/adt/rowtypes.c:530
+#: utils/adt/rowtypes.c:531
 #, c-format
 msgid "wrong number of columns: %d, expected %d"
 msgstr "错误的字段个数: %d, 期望为 %d"
 
-#: utils/adt/rowtypes.c:558
+#: utils/adt/rowtypes.c:559
 #, c-format
 msgid "wrong data type: %u, expected %u"
 msgstr "错误的数据类型: %u, 期望为 %u"
 
-#: utils/adt/rowtypes.c:619
+#: utils/adt/rowtypes.c:620
 #, c-format
 msgid "improper binary format in record column %d"
 msgstr "在记录字段 %d 为不正确的二进制格式"
 
-#: utils/adt/rowtypes.c:910 utils/adt/rowtypes.c:1154 utils/adt/rowtypes.c:1413
-#: utils/adt/rowtypes.c:1657
+#: utils/adt/rowtypes.c:911 utils/adt/rowtypes.c:1155 utils/adt/rowtypes.c:1414
+#: utils/adt/rowtypes.c:1658
 #, c-format
 msgid "cannot compare dissimilar column types %s and %s at record column %d"
 msgstr "在记录列%3$d上不能对不相似的列类型%1$s和%2$s进行比较"
 
-#: utils/adt/rowtypes.c:999 utils/adt/rowtypes.c:1225 utils/adt/rowtypes.c:1508
-#: utils/adt/rowtypes.c:1731
+#: utils/adt/rowtypes.c:1000 utils/adt/rowtypes.c:1226
+#: utils/adt/rowtypes.c:1509 utils/adt/rowtypes.c:1694
 #, c-format
 msgid "cannot compare record types with different numbers of columns"
 msgstr "无法比较不同元素类型的数组"
 
-#: utils/adt/ruleutils.c:4825
+#: utils/adt/ruleutils.c:4885
 #, c-format
 msgid "rule \"%s\" has unsupported event type %d"
 msgstr "规则 \"%s\" 不支持事件类型 %d"
 
-#: utils/adt/selfuncs.c:5791
-#, c-format
-msgid "case insensitive matching not supported on type bytea"
-msgstr "在类型bytea上不支持对不区分大小写的匹配"
-
-#: utils/adt/selfuncs.c:5893
-#, c-format
-msgid "regular-expression matching not supported on type bytea"
-msgstr "在 bytea 类型上不支持正则表达式匹配"
-
 #: utils/adt/timestamp.c:107
 #, c-format
 msgid "TIMESTAMP(%d)%s precision must not be negative"
@@ -22712,126 +22661,121 @@ msgstr "TIMESTAMP(%d)%s 精确度不能为负数"
 msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d"
 msgstr "将TIMESTAMP(%d)%s减少到最大允许值,%d"
 
-#: utils/adt/timestamp.c:176 utils/adt/timestamp.c:416
+#: utils/adt/timestamp.c:176 utils/adt/timestamp.c:427
 #, c-format
 msgid "timestamp out of range: \"%s\""
 msgstr "时间戳超出范围: \"%s\""
 
-#: utils/adt/timestamp.c:194 utils/adt/timestamp.c:434
-#: utils/adt/timestamp.c:941
+#: utils/adt/timestamp.c:194 utils/adt/timestamp.c:445
+#: utils/adt/timestamp.c:952
 #, c-format
 msgid "date/time value \"%s\" is no longer supported"
 msgstr "日期/时间值 \"%s\" 不再被支持"
 
-#: utils/adt/timestamp.c:362
+#: utils/adt/timestamp.c:373
 #, c-format
 msgid "timestamp(%d) precision must be between %d and %d"
 msgstr "timestamp(%d) 的精确度必需在 %d 到 %d 之间"
 
-#: utils/adt/timestamp.c:484
-#, c-format
-msgid "invalid input syntax for numeric time zone: \"%s\""
-msgstr "数字时区使用了无效的输入语法: \"%s\""
-
-#: utils/adt/timestamp.c:486
+#: utils/adt/timestamp.c:497
 #, c-format
 msgid "Numeric time zones must have \"-\" or \"+\" as first character."
 msgstr "数字时区必须是以\"-\" or \"+\" 作为第一个字符."
 
-#: utils/adt/timestamp.c:499
+#: utils/adt/timestamp.c:510
 #, c-format
 msgid "numeric time zone \"%s\" out of range"
 msgstr "数字时区\"%s\"超出范围"
 
-#: utils/adt/timestamp.c:601 utils/adt/timestamp.c:611
-#: utils/adt/timestamp.c:619
+#: utils/adt/timestamp.c:612 utils/adt/timestamp.c:622
+#: utils/adt/timestamp.c:630
 #, c-format
 msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g"
 msgstr "时间戳超出范围:%d-%02d-%02d %d:%02d:%02g"
 
-#: utils/adt/timestamp.c:720
+#: utils/adt/timestamp.c:731
 #, c-format
 msgid "timestamp cannot be NaN"
 msgstr "时间戳不能是NaN"
 
-#: utils/adt/timestamp.c:738 utils/adt/timestamp.c:750
+#: utils/adt/timestamp.c:749 utils/adt/timestamp.c:761
 #, c-format
 msgid "timestamp out of range: \"%g\""
 msgstr "时间戳超出范围: \"%g\""
 
-#: utils/adt/timestamp.c:935 utils/adt/timestamp.c:1505
-#: utils/adt/timestamp.c:1918 utils/adt/timestamp.c:3016
-#: utils/adt/timestamp.c:3021 utils/adt/timestamp.c:3026
-#: utils/adt/timestamp.c:3076 utils/adt/timestamp.c:3083
-#: utils/adt/timestamp.c:3090 utils/adt/timestamp.c:3110
+#: utils/adt/timestamp.c:946 utils/adt/timestamp.c:1526
+#: utils/adt/timestamp.c:1959 utils/adt/timestamp.c:3057
+#: utils/adt/timestamp.c:3062 utils/adt/timestamp.c:3067
 #: utils/adt/timestamp.c:3117 utils/adt/timestamp.c:3124
-#: utils/adt/timestamp.c:3154 utils/adt/timestamp.c:3162
-#: utils/adt/timestamp.c:3206 utils/adt/timestamp.c:3633
-#: utils/adt/timestamp.c:3758 utils/adt/timestamp.c:4143
+#: utils/adt/timestamp.c:3131 utils/adt/timestamp.c:3151
+#: utils/adt/timestamp.c:3158 utils/adt/timestamp.c:3165
+#: utils/adt/timestamp.c:3195 utils/adt/timestamp.c:3203
+#: utils/adt/timestamp.c:3247 utils/adt/timestamp.c:3674
+#: utils/adt/timestamp.c:3799 utils/adt/timestamp.c:4259
 #, c-format
 msgid "interval out of range"
 msgstr "interval 超出范围"
 
-#: utils/adt/timestamp.c:1068 utils/adt/timestamp.c:1101
+#: utils/adt/timestamp.c:1079 utils/adt/timestamp.c:1112
 #, c-format
 msgid "invalid INTERVAL type modifier"
 msgstr "无效的INTERVAL类型修改器"
 
-#: utils/adt/timestamp.c:1084
+#: utils/adt/timestamp.c:1095
 #, c-format
 msgid "INTERVAL(%d) precision must not be negative"
 msgstr "INTERVAL(%d) 的精确度不能为负数"
 
-#: utils/adt/timestamp.c:1090
+#: utils/adt/timestamp.c:1101
 #, c-format
 msgid "INTERVAL(%d) precision reduced to maximum allowed, %d"
 msgstr "将INTERVAL(%d)减少到最大允许值,%d"
 
-#: utils/adt/timestamp.c:1462
+#: utils/adt/timestamp.c:1483
 #, c-format
 msgid "interval(%d) precision must be between %d and %d"
 msgstr "interval(%d) 的精确度必需在 %d 到 %d 之间"
 
-#: utils/adt/timestamp.c:2617
+#: utils/adt/timestamp.c:2658
 #, c-format
 msgid "cannot subtract infinite timestamps"
 msgstr "无法减去无限长的时间戳"
 
-#: utils/adt/timestamp.c:3886 utils/adt/timestamp.c:4403
-#: utils/adt/timestamp.c:4570 utils/adt/timestamp.c:4591
+#: utils/adt/timestamp.c:3927 utils/adt/timestamp.c:4519
+#: utils/adt/timestamp.c:4686 utils/adt/timestamp.c:4707
 #, c-format
 msgid "timestamp units \"%s\" not supported"
 msgstr "不支持时间戳单位 \"%s\""
 
-#: utils/adt/timestamp.c:3900 utils/adt/timestamp.c:4357
-#: utils/adt/timestamp.c:4601
+#: utils/adt/timestamp.c:3941 utils/adt/timestamp.c:4473
+#: utils/adt/timestamp.c:4717
 #, c-format
 msgid "timestamp units \"%s\" not recognized"
 msgstr "时间戳单位 \"%s\" 不被认可"
 
-#: utils/adt/timestamp.c:4032 utils/adt/timestamp.c:4398
-#: utils/adt/timestamp.c:4771 utils/adt/timestamp.c:4793
+#: utils/adt/timestamp.c:4071 utils/adt/timestamp.c:4514
+#: utils/adt/timestamp.c:4887 utils/adt/timestamp.c:4909
 #, c-format
 msgid "timestamp with time zone units \"%s\" not supported"
 msgstr "不支持带时区的时间戳单位 \"%s\""
 
-#: utils/adt/timestamp.c:4049 utils/adt/timestamp.c:4352
-#: utils/adt/timestamp.c:4802
+#: utils/adt/timestamp.c:4088 utils/adt/timestamp.c:4468
+#: utils/adt/timestamp.c:4918
 #, c-format
 msgid "timestamp with time zone units \"%s\" not recognized"
 msgstr "带时区的时间戳单位 \"%s\" 不被认可"
 
-#: utils/adt/timestamp.c:4130
+#: utils/adt/timestamp.c:4246
 #, c-format
 msgid "interval units \"%s\" not supported because months usually have fractional weeks"
 msgstr "时间间隔的单位 \"%s\"不支持使用,因为月以周来计算时,通常带有分数值"
 
-#: utils/adt/timestamp.c:4136 utils/adt/timestamp.c:4896
+#: utils/adt/timestamp.c:4252 utils/adt/timestamp.c:5012
 #, c-format
 msgid "interval units \"%s\" not supported"
 msgstr "不支持 \"%s\" 的 interval 单位"
 
-#: utils/adt/timestamp.c:4152 utils/adt/timestamp.c:4919
+#: utils/adt/timestamp.c:4268 utils/adt/timestamp.c:5035
 #, c-format
 msgid "interval units \"%s\" not recognized"
 msgstr "interval 单位 \"%s\" 不被认可"
@@ -22856,7 +22800,7 @@ msgstr "suppress_redundant_updates_trigger: 必须在更新操作前调用"
 msgid "suppress_redundant_updates_trigger: must be called for each row"
 msgstr "suppress_redundant_updates_trigger: 必须为每条记录调用"
 
-#: utils/adt/tsgistidx.c:100
+#: utils/adt/tsgistidx.c:81
 #, c-format
 msgid "gtsvector_in not implemented"
 msgstr "没有实现gtsvector_in"
@@ -22947,58 +22891,58 @@ msgstr "词太长了(%ld字节, 最大 %ld 字节)"
 msgid "string is too long for tsvector (%ld bytes, max %ld bytes)"
 msgstr "字符串对于tsvector来说太长了(当前 %ld字节, 最大允许值是%ld字节)"
 
-#: utils/adt/tsvector_op.c:323 utils/adt/tsvector_op.c:610
-#: utils/adt/tsvector_op.c:778
+#: utils/adt/tsvector_op.c:321 utils/adt/tsvector_op.c:608
+#: utils/adt/tsvector_op.c:776
 #, c-format
 msgid "lexeme array may not contain nulls"
 msgstr "词位数组不能包含空值"
 
-#: utils/adt/tsvector_op.c:853
+#: utils/adt/tsvector_op.c:851
 #, c-format
 msgid "weight array may not contain nulls"
 msgstr "权重数组不能包含空值"
 
-#: utils/adt/tsvector_op.c:877
+#: utils/adt/tsvector_op.c:875
 #, c-format
 msgid "unrecognized weight: \"%c\""
 msgstr "无法识别的权重: \"%c\""
 
-#: utils/adt/tsvector_op.c:2314
+#: utils/adt/tsvector_op.c:2312
 #, c-format
 msgid "ts_stat query must return one tsvector column"
 msgstr "ts_stat查询必须在tsvector类型列上返回"
 
-#: utils/adt/tsvector_op.c:2496
+#: utils/adt/tsvector_op.c:2494
 #, c-format
 msgid "tsvector column \"%s\" does not exist"
 msgstr "tsvector字段 \"%s\" 不存在"
 
-#: utils/adt/tsvector_op.c:2503
+#: utils/adt/tsvector_op.c:2501
 #, c-format
 msgid "column \"%s\" is not of tsvector type"
 msgstr "列\"%s\"不属于tsvector类型"
 
-#: utils/adt/tsvector_op.c:2515
+#: utils/adt/tsvector_op.c:2513
 #, c-format
 msgid "configuration column \"%s\" does not exist"
 msgstr "配置字段 \"%s\" 不存在"
 
-#: utils/adt/tsvector_op.c:2521
+#: utils/adt/tsvector_op.c:2519
 #, c-format
 msgid "column \"%s\" is not of regconfig type"
 msgstr "列\"%s\"不属于regconfig类型"
 
-#: utils/adt/tsvector_op.c:2528
+#: utils/adt/tsvector_op.c:2526
 #, c-format
 msgid "configuration column \"%s\" must not be null"
 msgstr "配置列\"%s\"不能为空"
 
-#: utils/adt/tsvector_op.c:2541
+#: utils/adt/tsvector_op.c:2539
 #, c-format
 msgid "text search configuration name \"%s\" must be schema-qualified"
 msgstr "文本搜索配置名称\"%s\"必须是模式限定的。"
 
-#: utils/adt/tsvector_op.c:2566
+#: utils/adt/tsvector_op.c:2564
 #, c-format
 msgid "column \"%s\" is not of a character type"
 msgstr "字段 \"%s\"不属于字符类型"
@@ -23018,170 +22962,184 @@ msgstr "那里没有转义的字符: \"%s\""
 msgid "wrong position info in tsvector: \"%s\""
 msgstr "在tsvector中的错误位置信息: \"%s\""
 
-#: utils/adt/txid.c:135
+#: utils/adt/txid.c:140
 #, c-format
 msgid "transaction ID %s is in the future"
 msgstr "事务ID %s 在将来"
 
-#: utils/adt/txid.c:624
+#: utils/adt/txid.c:629
 #, c-format
 msgid "invalid external txid_snapshot data"
 msgstr "无效的外部txid_snapshot数据"
 
-#: utils/adt/varbit.c:59 utils/adt/varchar.c:51
+#: utils/adt/varbit.c:60 utils/adt/varchar.c:54
 #, c-format
 msgid "length for type %s must be at least 1"
 msgstr "类型 %s 的长度至少为 1"
 
-#: utils/adt/varbit.c:64 utils/adt/varchar.c:55
+#: utils/adt/varbit.c:65 utils/adt/varchar.c:58
 #, c-format
 msgid "length for type %s cannot exceed %d"
 msgstr "类型 %s 的长度不能超过 %d"
 
-#: utils/adt/varbit.c:165 utils/adt/varbit.c:477 utils/adt/varbit.c:974
+#: utils/adt/varbit.c:166 utils/adt/varbit.c:478 utils/adt/varbit.c:984
 #, c-format
 msgid "bit string length exceeds the maximum allowed (%d)"
 msgstr "位字符串长度超过了最大允许值(%d)"
 
-#: utils/adt/varbit.c:179 utils/adt/varbit.c:322 utils/adt/varbit.c:379
+#: utils/adt/varbit.c:180 utils/adt/varbit.c:323 utils/adt/varbit.c:380
 #, c-format
 msgid "bit string length %d does not match type bit(%d)"
 msgstr "bit字符串的长度(%d)与bit类型(%d)不匹配."
 
-#: utils/adt/varbit.c:201 utils/adt/varbit.c:513
+#: utils/adt/varbit.c:202 utils/adt/varbit.c:514
 #, c-format
 msgid "\"%c\" is not a valid binary digit"
 msgstr "\"%c\" 不是一个有效的二进制数"
 
-#: utils/adt/varbit.c:226 utils/adt/varbit.c:538
+#: utils/adt/varbit.c:227 utils/adt/varbit.c:539
 #, c-format
 msgid "\"%c\" is not a valid hexadecimal digit"
 msgstr "\"%c\" 不是一个有效的十六进制数"
 
-#: utils/adt/varbit.c:313 utils/adt/varbit.c:629
+#: utils/adt/varbit.c:314 utils/adt/varbit.c:630
 #, c-format
 msgid "invalid length in external bit string"
 msgstr "无效的外部位串长度"
 
-#: utils/adt/varbit.c:491 utils/adt/varbit.c:638 utils/adt/varbit.c:732
+#: utils/adt/varbit.c:492 utils/adt/varbit.c:639 utils/adt/varbit.c:742
 #, c-format
 msgid "bit string too long for type bit varying(%d)"
 msgstr "bit字符串对于可变bit类型(%d)来说太长了."
 
-#: utils/adt/varbit.c:1067 utils/adt/varbit.c:1169 utils/adt/varlena.c:841
-#: utils/adt/varlena.c:905 utils/adt/varlena.c:1049 utils/adt/varlena.c:2912
-#: utils/adt/varlena.c:2979
+#: utils/adt/varbit.c:1077 utils/adt/varbit.c:1179 utils/adt/varlena.c:863
+#: utils/adt/varlena.c:927 utils/adt/varlena.c:1071 utils/adt/varlena.c:3291
+#: utils/adt/varlena.c:3358
 #, c-format
 msgid "negative substring length not allowed"
 msgstr "不允许子串长度为负数"
 
-#: utils/adt/varbit.c:1226
+#: utils/adt/varbit.c:1236
 #, c-format
 msgid "cannot AND bit strings of different sizes"
 msgstr "无法为不同大小的字符串进行与 (AND) 位运算"
 
-#: utils/adt/varbit.c:1268
+#: utils/adt/varbit.c:1278
 #, c-format
 msgid "cannot OR bit strings of different sizes"
 msgstr "无法为不同大小的字符串进行或 (OR) 位运算"
 
-#: utils/adt/varbit.c:1315
+#: utils/adt/varbit.c:1325
 #, c-format
 msgid "cannot XOR bit strings of different sizes"
 msgstr "无法为不同大小的字符串进行异或 (XOR) 位运算"
 
-#: utils/adt/varbit.c:1803 utils/adt/varbit.c:1861
+#: utils/adt/varbit.c:1813 utils/adt/varbit.c:1871
 #, c-format
 msgid "bit index %d out of valid range (0..%d)"
 msgstr "比特索引 %d 超出有效范围 (0..%d)"
 
-#: utils/adt/varbit.c:1812 utils/adt/varlena.c:3170
+#: utils/adt/varbit.c:1822 utils/adt/varlena.c:3549
 #, c-format
 msgid "new bit must be 0 or 1"
 msgstr "新的位必须为 0 或 1"
 
-#: utils/adt/varchar.c:155 utils/adt/varchar.c:308
+#: utils/adt/varchar.c:158 utils/adt/varchar.c:311
 #, c-format
 msgid "value too long for type character(%d)"
 msgstr "对于字符类型来说这个值太长了(%d)"
 
-#: utils/adt/varchar.c:470 utils/adt/varchar.c:623
+#: utils/adt/varchar.c:473 utils/adt/varchar.c:635
 #, c-format
 msgid "value too long for type character varying(%d)"
 msgstr "对于可变字符类型来说,值太长了(%d)"
 
-#: utils/adt/varlena.c:1415 utils/adt/varlena.c:1880
+#: utils/adt/varchar.c:733 utils/adt/varlena.c:1455
 #, c-format
 msgid "could not determine which collation to use for string comparison"
 msgstr "无法确定字符串比较中使用哪种排序规则"
 
-#: utils/adt/varlena.c:1472 utils/adt/varlena.c:1485
+# sql_help.h:61
+#: utils/adt/varchar.c:1122 utils/adt/varchar.c:1232 utils/adt/varlena.c:3024
+#: utils/adt/varlena.c:3134
+#, fuzzy, c-format
+#| msgid "including column does not support an operator class"
+msgid "nondeterministic collations are not supported for operator class \"%s\""
+msgstr "包含的列不支持运算符类"
+
+#: utils/adt/varlena.c:1165 utils/adt/varlena.c:1889
+#, fuzzy, c-format
+#| msgid "could not determine which collation to use for string comparison"
+msgid "nondeterministic collations are not supported for substring searches"
+msgstr "无法确定字符串比较中使用哪种排序规则"
+
+#: utils/adt/varlena.c:1548 utils/adt/varlena.c:1561
 #, c-format
 msgid "could not convert string to UTF-16: error code %lu"
 msgstr "无法将字符串转换为UTF-16编码: 错误码 %lu"
 
-#: utils/adt/varlena.c:1500
+#: utils/adt/varlena.c:1576
 #, c-format
 msgid "could not compare Unicode strings: %m"
 msgstr "无法比较Unicode类型字符串: %m"
 
-#: utils/adt/varlena.c:1555 utils/adt/varlena.c:2176
+#: utils/adt/varlena.c:1627 utils/adt/varlena.c:2341
 #, c-format
 msgid "collation failed: %s"
 msgstr "排序规则失败: %s"
 
-#: utils/adt/varlena.c:2394
+#: utils/adt/varlena.c:2549
 #, c-format
 msgid "sort key generation failed: %s"
 msgstr "排序键生成失败: %s"
 
-#: utils/adt/varlena.c:3056 utils/adt/varlena.c:3087 utils/adt/varlena.c:3122
-#: utils/adt/varlena.c:3158
+#: utils/adt/varlena.c:3435 utils/adt/varlena.c:3466 utils/adt/varlena.c:3501
+#: utils/adt/varlena.c:3537
 #, c-format
 msgid "index %d out of valid range, 0..%d"
 msgstr "索引 %d 超出有效范围, 0..%d"
 
-#: utils/adt/varlena.c:4201
+#: utils/adt/varlena.c:4573
 #, c-format
 msgid "field position must be greater than zero"
 msgstr "字段的位置必须大于0"
 
-#: utils/adt/varlena.c:5080
+#: utils/adt/varlena.c:5439
 #, c-format
 msgid "unterminated format() type specifier"
 msgstr "未结束的 format() 类型说明符"
 
-#: utils/adt/varlena.c:5081 utils/adt/varlena.c:5215 utils/adt/varlena.c:5336
+#: utils/adt/varlena.c:5440 utils/adt/varlena.c:5574 utils/adt/varlena.c:5695
 #, c-format
 msgid "For a single \"%%\" use \"%%%%\"."
 msgstr "对于单个 \"%%\" 应使用 \"%%%%\"。"
 
-#: utils/adt/varlena.c:5213 utils/adt/varlena.c:5334
+#: utils/adt/varlena.c:5572 utils/adt/varlena.c:5693
 #, c-format
 msgid "unrecognized format() type specifier \"%c\""
 msgstr "未识别的 format() 类型说明符 \"%c\""
 
-#: utils/adt/varlena.c:5226 utils/adt/varlena.c:5283
+#: utils/adt/varlena.c:5585 utils/adt/varlena.c:5642
 #, c-format
 msgid "too few arguments for format()"
 msgstr "format() 的参数太少"
 
-#: utils/adt/varlena.c:5379 utils/adt/varlena.c:5561
+#: utils/adt/varlena.c:5738 utils/adt/varlena.c:5920
 #, c-format
 msgid "number is out of range"
 msgstr "数字超出范围"
 
-#: utils/adt/varlena.c:5442 utils/adt/varlena.c:5470
+#: utils/adt/varlena.c:5801 utils/adt/varlena.c:5829
 #, c-format
 msgid "format specifies argument 0, but arguments are numbered from 1"
 msgstr "格式指定了参数 0, 但参数值序号从 1开始记起"
 
-#: utils/adt/varlena.c:5463
+#: utils/adt/varlena.c:5822
 #, c-format
 msgid "width argument position must be ended by \"$\""
 msgstr "width参数位置必须以\"$\"结束"
 
-#: utils/adt/varlena.c:5508
+#: utils/adt/varlena.c:5867
 #, c-format
 msgid "null values cannot be formatted as an SQL identifier"
 msgstr "null值不能格式化为SQL标识符"
@@ -23196,163 +23154,163 @@ msgstr "ntile的参数必须大于零"
 msgid "argument of nth_value must be greater than zero"
 msgstr "nth_value的参数必须大于零"
 
-#: utils/adt/xml.c:220
+#: utils/adt/xml.c:222
 #, c-format
 msgid "unsupported XML feature"
 msgstr "不支持的XML特性"
 
-#: utils/adt/xml.c:221
+#: utils/adt/xml.c:223
 #, c-format
 msgid "This functionality requires the server to be built with libxml support."
 msgstr "这个功能是需要在创建服务器时带有对libxml的支持才能实现 "
 
-#: utils/adt/xml.c:222
+#: utils/adt/xml.c:224
 #, c-format
 msgid "You need to rebuild PostgreSQL using --with-libxml."
 msgstr "您需要使用--with-libxml选项重新生成PostgreSQL"
 
-#: utils/adt/xml.c:241 utils/mb/mbutils.c:512
+#: utils/adt/xml.c:243 utils/mb/mbutils.c:512
 #, c-format
 msgid "invalid encoding name \"%s\""
 msgstr "无效的编码名称 \"%s\""
 
 # command.c:122
-#: utils/adt/xml.c:484 utils/adt/xml.c:489
+#: utils/adt/xml.c:486 utils/adt/xml.c:491
 #, c-format
 msgid "invalid XML comment"
 msgstr "无效的XML注释"
 
-#: utils/adt/xml.c:618
+#: utils/adt/xml.c:620
 #, c-format
 msgid "not an XML document"
 msgstr "不是一个XML文档"
 
-#: utils/adt/xml.c:777 utils/adt/xml.c:800
+#: utils/adt/xml.c:779 utils/adt/xml.c:802
 #, c-format
 msgid "invalid XML processing instruction"
 msgstr "无效的XML处理命令"
 
-#: utils/adt/xml.c:778
+#: utils/adt/xml.c:780
 #, c-format
 msgid "XML processing instruction target name cannot be \"%s\"."
 msgstr "XML处理命令目标名称不能是\"%s\"."
 
-#: utils/adt/xml.c:801
+#: utils/adt/xml.c:803
 #, c-format
 msgid "XML processing instruction cannot contain \"?>\"."
 msgstr "XML处理命令不能包含\"?>\"."
 
-#: utils/adt/xml.c:880
+#: utils/adt/xml.c:882
 #, c-format
 msgid "xmlvalidate is not implemented"
 msgstr "没有实现xmlvalidate"
 
-#: utils/adt/xml.c:959
+#: utils/adt/xml.c:961
 #, c-format
 msgid "could not initialize XML library"
 msgstr "无法初始化XML库"
 
-#: utils/adt/xml.c:960
+#: utils/adt/xml.c:962
 #, c-format
 msgid "libxml2 has incompatible char type: sizeof(char)=%u, sizeof(xmlChar)=%u."
 msgstr "libxml2具有不兼容的字符类型: sizeof(char)=%u, sizeof(xmlChar)=%u. "
 
-#: utils/adt/xml.c:1046
+#: utils/adt/xml.c:1048
 #, c-format
 msgid "could not set up XML error handler"
 msgstr "无法设置XML错误处理函数"
 
-#: utils/adt/xml.c:1047
+#: utils/adt/xml.c:1049
 #, c-format
 msgid "This probably indicates that the version of libxml2 being used is not compatible with the libxml2 header files that PostgreSQL was built with."
 msgstr "这可能意味着正使用的libxml2版本与PostgreSQL编译 时使用的libxml2头文件不兼容"
 
-#: utils/adt/xml.c:1800
+#: utils/adt/xml.c:1936
 msgid "Invalid character value."
 msgstr "无效的字符值"
 
-#: utils/adt/xml.c:1803
+#: utils/adt/xml.c:1939
 msgid "Space required."
 msgstr "要求空格"
 
-#: utils/adt/xml.c:1806
+#: utils/adt/xml.c:1942
 msgid "standalone accepts only 'yes' or 'no'."
 msgstr "单机只接受'yes'或'no'."
 
-#: utils/adt/xml.c:1809
+#: utils/adt/xml.c:1945
 msgid "Malformed declaration: missing version."
 msgstr "有缺陷的声明: 丢失版本."
 
-#: utils/adt/xml.c:1812
+#: utils/adt/xml.c:1948
 msgid "Missing encoding in text declaration."
 msgstr "在文本声明中丢失编码"
 
-#: utils/adt/xml.c:1815
+#: utils/adt/xml.c:1951
 msgid "Parsing XML declaration: '?>' expected."
 msgstr "正在解析XML声明: 期望'?>' "
 
-#: utils/adt/xml.c:1818
+#: utils/adt/xml.c:1954
 #, c-format
 msgid "Unrecognized libxml error code: %d."
 msgstr "未知的libxml错误码: %d"
 
-#: utils/adt/xml.c:2093
+#: utils/adt/xml.c:2229
 #, c-format
 msgid "XML does not support infinite date values."
 msgstr "XML不支持无限日期值"
 
-#: utils/adt/xml.c:2115 utils/adt/xml.c:2142
+#: utils/adt/xml.c:2251 utils/adt/xml.c:2278
 #, c-format
 msgid "XML does not support infinite timestamp values."
 msgstr "XML不支持无限时间戳值"
 
-#: utils/adt/xml.c:2554
+#: utils/adt/xml.c:2690
 #, c-format
 msgid "invalid query"
 msgstr "无效的查询"
 
-#: utils/adt/xml.c:3877
+#: utils/adt/xml.c:4037
 #, c-format
 msgid "invalid array for XML namespace mapping"
 msgstr "对于XML命名空间映射的无效数组"
 
-#: utils/adt/xml.c:3878
+#: utils/adt/xml.c:4038
 #, c-format
 msgid "The array must be two-dimensional with length of the second axis equal to 2."
 msgstr "数组必须是第二个坐标轴等于2的两维数组"
 
-#: utils/adt/xml.c:3902
+#: utils/adt/xml.c:4062
 #, c-format
 msgid "empty XPath expression"
 msgstr "空的XPath表达式"
 
-#: utils/adt/xml.c:3954
+#: utils/adt/xml.c:4114
 #, c-format
 msgid "neither namespace name nor URI may be null"
 msgstr "URI或者命名空间名称不可为空."
 
 # fe-misc.c:702
-#: utils/adt/xml.c:3961
+#: utils/adt/xml.c:4121
 #, c-format
 msgid "could not register XML namespace with name \"%s\" and URI \"%s\""
 msgstr "无法以名称\"%s\"和URI\"%s\"来注册XML命名空间"
 
-#: utils/adt/xml.c:4312
+#: utils/adt/xml.c:4472
 #, c-format
 msgid "DEFAULT namespace is not supported"
 msgstr "不支持默认命名空间"
 
-#: utils/adt/xml.c:4341
+#: utils/adt/xml.c:4501
 #, c-format
 msgid "row path filter must not be empty string"
 msgstr "行路径筛选器不能为空字符串"
 
-#: utils/adt/xml.c:4372
+#: utils/adt/xml.c:4532
 #, c-format
 msgid "column path filter must not be empty string"
 msgstr "列路径筛选器不能为空字符串"
 
-#: utils/adt/xml.c:4558
+#: utils/adt/xml.c:4682
 #, c-format
 msgid "more than one value returned by column XPath expression"
 msgstr "列XPath表达式返回了多个值"
@@ -23373,72 +23331,47 @@ msgstr "没有有效的 %s 类型输入函数"
 msgid "no output function available for type %s"
 msgstr "没有有效的 %s 类型输出函数"
 
-#: utils/cache/partcache.c:202
+#: utils/cache/partcache.c:195
 #, c-format
 msgid "operator class \"%s\" of access method %s is missing support function %d for type %s"
 msgstr "访问方法%2$s的运算符类\"%1$s\"缺少类型%4$s的支持函数%3$d"
 
-#: utils/cache/plancache.c:723
+#: utils/cache/plancache.c:718
 #, c-format
 msgid "cached plan must not change result type"
 msgstr "已缓冲的计划不能改变结果类型"
 
-#: utils/cache/relcache.c:5800
+#: utils/cache/relcache.c:5751
 #, c-format
 msgid "could not create relation-cache initialization file \"%s\": %m"
 msgstr "无法创建 relation-cache 初始化文件 \"%s\": %m"
 
-#: utils/cache/relcache.c:5802
+#: utils/cache/relcache.c:5753
 #, c-format
 msgid "Continuing anyway, but there's something wrong."
 msgstr "仍继续, 但肯定有些错误存在."
 
-#: utils/cache/relcache.c:6156
+#: utils/cache/relcache.c:6107
 #, c-format
 msgid "could not remove cache file \"%s\": %m"
 msgstr "无法删除缓存文件 \"%s\": %m"
 
-#: utils/cache/relmapper.c:513
+#: utils/cache/relmapper.c:531
 #, c-format
 msgid "cannot PREPARE a transaction that modified relation mapping"
 msgstr "不支持对修改关系映射的事务进行PREPARE操作"
 
-#: utils/cache/relmapper.c:655 utils/cache/relmapper.c:755
-#, c-format
-msgid "could not open relation mapping file \"%s\": %m"
-msgstr "无法打开关系映射文件 \"%s\": %m"
-
-#: utils/cache/relmapper.c:669
-#, c-format
-msgid "could not read relation mapping file \"%s\": %m"
-msgstr "无法读取关系映射文件 \"%s\": %m"
-
-#: utils/cache/relmapper.c:680
+#: utils/cache/relmapper.c:761
 #, c-format
 msgid "relation mapping file \"%s\" contains invalid data"
 msgstr "在关系映射文件\"%s\"中包含无效的数据"
 
-#: utils/cache/relmapper.c:690
+#: utils/cache/relmapper.c:771
 #, c-format
 msgid "relation mapping file \"%s\" contains incorrect checksum"
 msgstr "在关系映射文件\"%s\"中包含不正确的检验和"
 
-#: utils/cache/relmapper.c:789
-#, c-format
-msgid "could not write to relation mapping file \"%s\": %m"
-msgstr "无法对关系映射文件 \"%s\" 进行写操作: %m"
-
-#: utils/cache/relmapper.c:804
-#, c-format
-msgid "could not fsync relation mapping file \"%s\": %m"
-msgstr "无法将关系映射文件\"%s\"的内容刷新到磁盘: %m"
-
-#: utils/cache/relmapper.c:811
-#, c-format
-msgid "could not close relation mapping file \"%s\": %m"
-msgstr "无法关闭关系映射文件\"%s\": %m"
-
-#: utils/cache/typcache.c:1623 utils/fmgr/funcapi.c:435
+#: utils/cache/typcache.c:1634 utils/fmgr/funcapi.c:420
 #, c-format
 msgid "record type has not been registered"
 msgstr "记录类型没有注册"
@@ -23453,184 +23386,177 @@ msgstr "TRAP: ExceptionalCondition: 错误参数\n"
 msgid "TRAP: %s(\"%s\", File: \"%s\", Line: %d)\n"
 msgstr "TRAP: %s(\"%s\", 文件: \"%s\", 行数: %d)\n"
 
-#: utils/error/elog.c:322 utils/error/elog.c:1304
+#: utils/error/elog.c:319 utils/error/elog.c:1293
 #, c-format
 msgid "error occurred at %s:%d before error message processing is available\n"
 msgstr "能得到错误消息处理之前, 错误出现在%s:%d\n"
 
-#: utils/error/elog.c:1882
+#: utils/error/elog.c:1871
 #, c-format
 msgid "could not reopen file \"%s\" as stderr: %m"
 msgstr "无法作为标准错误重新打开文件 \"%s\": %m"
 
-#: utils/error/elog.c:1895
+#: utils/error/elog.c:1884
 #, c-format
 msgid "could not reopen file \"%s\" as stdout: %m"
 msgstr "无法作为标准输出重新打开文件 \"%s\": %m"
 
-#: utils/error/elog.c:2387 utils/error/elog.c:2404 utils/error/elog.c:2420
+#: utils/error/elog.c:2376 utils/error/elog.c:2393 utils/error/elog.c:2409
 msgid "[unknown]"
 msgstr "[未知]"
 
-#: utils/error/elog.c:2880 utils/error/elog.c:3183 utils/error/elog.c:3291
+#: utils/error/elog.c:2869 utils/error/elog.c:3172 utils/error/elog.c:3280
 msgid "missing error text"
 msgstr "缺少错误信息"
 
-#: utils/error/elog.c:2883 utils/error/elog.c:2886 utils/error/elog.c:3294
-#: utils/error/elog.c:3297
+#: utils/error/elog.c:2872 utils/error/elog.c:2875 utils/error/elog.c:3283
+#: utils/error/elog.c:3286
 #, c-format
 msgid " at character %d"
 msgstr " 第 %d 个字符处"
 
-#: utils/error/elog.c:2896 utils/error/elog.c:2903
+#: utils/error/elog.c:2885 utils/error/elog.c:2892
 msgid "DETAIL:  "
 msgstr "详细信息:  "
 
-#: utils/error/elog.c:2910
+#: utils/error/elog.c:2899
 msgid "HINT:  "
 msgstr "提示:  "
 
-#: utils/error/elog.c:2917
+#: utils/error/elog.c:2906
 msgid "QUERY:  "
 msgstr "查询:  "
 
-#: utils/error/elog.c:2924
+#: utils/error/elog.c:2913
 msgid "CONTEXT:  "
 msgstr "上下文:  "
 
-#: utils/error/elog.c:2934
+#: utils/error/elog.c:2923
 #, c-format
 msgid "LOCATION:  %s, %s:%d\n"
 msgstr "位置:  %s, %s:%d\n"
 
-#: utils/error/elog.c:2941
+#: utils/error/elog.c:2930
 #, c-format
 msgid "LOCATION:  %s:%d\n"
 msgstr "位置:  %s:%d\n"
 
-#: utils/error/elog.c:2955
+#: utils/error/elog.c:2944
 msgid "STATEMENT:  "
 msgstr "语句:  "
 
-#. translator: This string will be truncated at 47
-#. characters expanded.
-#: utils/error/elog.c:3412
-#, c-format
-msgid "operating system error %d"
-msgstr "操作系统错误 %d"
-
-#: utils/error/elog.c:3610
+#: utils/error/elog.c:3333
 msgid "DEBUG"
 msgstr "调试"
 
-#: utils/error/elog.c:3614
+#: utils/error/elog.c:3337
 msgid "LOG"
 msgstr "日志"
 
-#: utils/error/elog.c:3617
+#: utils/error/elog.c:3340
 msgid "INFO"
 msgstr "信息"
 
-#: utils/error/elog.c:3620
+#: utils/error/elog.c:3343
 msgid "NOTICE"
 msgstr "注意"
 
-#: utils/error/elog.c:3623
+#: utils/error/elog.c:3346
 msgid "WARNING"
 msgstr "警告"
 
-#: utils/error/elog.c:3626
+#: utils/error/elog.c:3349
 msgid "ERROR"
 msgstr "错误"
 
-#: utils/error/elog.c:3629
+#: utils/error/elog.c:3352
 msgid "FATAL"
 msgstr "致命错误"
 
-#: utils/error/elog.c:3632
+#: utils/error/elog.c:3355
 msgid "PANIC"
 msgstr "比致命错误还过分的错误"
 
-#: utils/fmgr/dfmgr.c:121
+#: utils/fmgr/dfmgr.c:130
 #, c-format
 msgid "could not find function \"%s\" in file \"%s\""
 msgstr "在文件 \"%2$s\" 中无法找到函数 \"%1$s\""
 
-#: utils/fmgr/dfmgr.c:239
+#: utils/fmgr/dfmgr.c:247
 #, c-format
 msgid "could not load library \"%s\": %s"
 msgstr "无法加载库 \"%s\": %s"
 
-#: utils/fmgr/dfmgr.c:271
+#: utils/fmgr/dfmgr.c:279
 #, c-format
 msgid "incompatible library \"%s\": missing magic block"
 msgstr "库\"%s\"不兼容:丢失魔法块"
 
-#: utils/fmgr/dfmgr.c:273
+#: utils/fmgr/dfmgr.c:281
 #, c-format
 msgid "Extension libraries are required to use the PG_MODULE_MAGIC macro."
 msgstr "需要扩展库来使用宏PG_MODULE_MAGIC。"
 
-#: utils/fmgr/dfmgr.c:319
+#: utils/fmgr/dfmgr.c:327
 #, c-format
 msgid "incompatible library \"%s\": version mismatch"
 msgstr "库 \"%s\"不兼容:版本不匹配"
 
-#: utils/fmgr/dfmgr.c:321
+#: utils/fmgr/dfmgr.c:329
 #, c-format
 msgid "Server is version %d, library is version %s."
 msgstr "服务器版本是%d,库的版本是%s."
 
-#: utils/fmgr/dfmgr.c:338
+#: utils/fmgr/dfmgr.c:346
 #, c-format
 msgid "Server has FUNC_MAX_ARGS = %d, library has %d."
 msgstr "服务器有FUNC_MAX_ARGS = %d, 库有%d"
 
-#: utils/fmgr/dfmgr.c:347
+#: utils/fmgr/dfmgr.c:355
 #, c-format
 msgid "Server has INDEX_MAX_KEYS = %d, library has %d."
 msgstr "服务器有INDEX_MAX_KEYS = %d, 库有%d"
 
-#: utils/fmgr/dfmgr.c:356
+#: utils/fmgr/dfmgr.c:364
 #, c-format
 msgid "Server has NAMEDATALEN = %d, library has %d."
 msgstr "服务器有NAMEDATALEN = %d, 库有%d"
 
-#: utils/fmgr/dfmgr.c:365
+#: utils/fmgr/dfmgr.c:373
 #, c-format
 msgid "Server has FLOAT4PASSBYVAL = %s, library has %s."
 msgstr "服务器有FLOAT4PASSBYVAL = %s, 库有%s."
 
-#: utils/fmgr/dfmgr.c:374
+#: utils/fmgr/dfmgr.c:382
 #, c-format
 msgid "Server has FLOAT8PASSBYVAL = %s, library has %s."
 msgstr "服务器有FLOAT8PASSBYVAL = %s, 库有%s."
 
-#: utils/fmgr/dfmgr.c:381
+#: utils/fmgr/dfmgr.c:389
 msgid "Magic block has unexpected length or padding difference."
 msgstr "Magic块带有未期望的长度或者填充的方式不同."
 
-#: utils/fmgr/dfmgr.c:384
+#: utils/fmgr/dfmgr.c:392
 #, c-format
 msgid "incompatible library \"%s\": magic block mismatch"
 msgstr "不兼容的库\"%s\": 魔法块不匹配"
 
-#: utils/fmgr/dfmgr.c:548
+#: utils/fmgr/dfmgr.c:556
 #, c-format
 msgid "access to library \"%s\" is not allowed"
 msgstr "不允许对库 \"%s\"进行访问"
 
-#: utils/fmgr/dfmgr.c:574
+#: utils/fmgr/dfmgr.c:582
 #, c-format
 msgid "invalid macro name in dynamic library path: %s"
 msgstr "动态库路径中无效的宏名字: %s"
 
-#: utils/fmgr/dfmgr.c:614
+#: utils/fmgr/dfmgr.c:622
 #, c-format
 msgid "zero-length component in parameter \"dynamic_library_path\""
 msgstr "在参数\"dynamic_library_path\"的组件长度为零"
 
-#: utils/fmgr/dfmgr.c:633
+#: utils/fmgr/dfmgr.c:641
 #, c-format
 msgid "component in parameter \"dynamic_library_path\" is not an absolute path"
 msgstr "在参数\"dynamic_library_path\"中的组成部分不是绝对路径."
@@ -23655,72 +23581,67 @@ msgstr "SQL可调用函数需要一个附带的PG_FUNCTION_INFO_V1(funcname)."
 msgid "unrecognized API version %d reported by info function \"%s\""
 msgstr "信息函数\"%2$s\"报告无法识别的API版本%1$d."
 
-#: utils/fmgr/fmgr.c:2210
+#: utils/fmgr/fmgr.c:2032
 #, c-format
 msgid "language validation function %u called for language %u instead of %u"
 msgstr "语言校验函数 %u 调用的目标语言是 %u ,而不是 %u"
 
-#: utils/fmgr/funcapi.c:358
+#: utils/fmgr/funcapi.c:343
 #, c-format
 msgid "could not determine actual result type for function \"%s\" declared to return type %s"
 msgstr "无法确定声明为返回类型%2$s的函数\"%1$s\"的实际结果类型"
 
-#: utils/fmgr/funcapi.c:1403 utils/fmgr/funcapi.c:1435
+#: utils/fmgr/funcapi.c:1388 utils/fmgr/funcapi.c:1420
 #, c-format
 msgid "number of aliases does not match number of columns"
 msgstr "别名个数与字段个数不匹配"
 
-#: utils/fmgr/funcapi.c:1429
+#: utils/fmgr/funcapi.c:1414
 #, c-format
 msgid "no column alias was provided"
 msgstr "没有提供字段别名"
 
-#: utils/fmgr/funcapi.c:1453
+#: utils/fmgr/funcapi.c:1438
 #, c-format
 msgid "could not determine row description for function returning record"
 msgstr "无法确定函数返回记录的行描述"
 
-#: utils/init/miscinit.c:108
+#: utils/init/miscinit.c:110
 #, c-format
 msgid "data directory \"%s\" does not exist"
 msgstr "数据目录 \"%s\" 不存在"
 
-#: utils/init/miscinit.c:113
+#: utils/init/miscinit.c:115
 #, c-format
 msgid "could not read permissions of directory \"%s\": %m"
 msgstr "没有读取目录 \"%s\" 的权限: %m"
 
-#: utils/init/miscinit.c:121
+#: utils/init/miscinit.c:123
 #, c-format
 msgid "specified data directory \"%s\" is not a directory"
 msgstr "所指定的数据目录 \"%s\"不是一个目录."
 
-#: utils/init/miscinit.c:137
+#: utils/init/miscinit.c:139
 #, c-format
 msgid "data directory \"%s\" has wrong ownership"
 msgstr "data目录 \"%s\"的所有者权限错误."
 
-#: utils/init/miscinit.c:139
+#: utils/init/miscinit.c:141
 #, c-format
 msgid "The server must be started by the user that owns the data directory."
 msgstr "服务器必须由拥有data目录的用户启动"
 
-#: utils/init/miscinit.c:157
+#: utils/init/miscinit.c:159
 #, c-format
 msgid "data directory \"%s\" has invalid permissions"
 msgstr "数据目录\"%s\"的权限无效"
 
-#: utils/init/miscinit.c:159
+#: utils/init/miscinit.c:161
 #, c-format
 msgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)."
 msgstr "权限应该为 u=rwx (0700) 或者u=rwx,g=rx (0750)."
 
-#: utils/init/miscinit.c:218
-#, c-format
-msgid "could not change directory to \"%s\": %m"
-msgstr "无法跳转到目录 \"%s\" 中: %m"
-
-#: utils/init/miscinit.c:554 utils/misc/guc.c:6370
+#: utils/init/miscinit.c:547 utils/misc/guc.c:6944
 #, c-format
 msgid "cannot set parameter \"%s\" within security-restricted operation"
 msgstr "无法在对安全有严格限制的操作中设置参数\"%s\" "
@@ -23805,209 +23726,225 @@ msgstr "是否其它 postgres (PID %d) 使用套接字文件 \"%s\"?"
 msgid "Is another postmaster (PID %d) using socket file \"%s\"?"
 msgstr "是否其它 postmaster (PID %d) 使用套接字文件 \"%s\"?"
 
-#: utils/init/miscinit.c:1069
-#, 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:1072
-#, c-format
-msgid "If you're sure there are no old server processes still running, remove the shared memory block or just delete the file \"%s\"."
-msgstr "如果你确认没有旧的服务器进程在运行, 删除共享内存块,或者只删除文件 \"%s\"."
-
-#: utils/init/miscinit.c:1088
+#: utils/init/miscinit.c:1084
 #, c-format
 msgid "could not remove old lock file \"%s\": %m"
 msgstr "无法删除旧的锁文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:1090
+#: utils/init/miscinit.c:1086
 #, 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:1127 utils/init/miscinit.c:1141
-#: utils/init/miscinit.c:1152
+#: utils/init/miscinit.c:1123 utils/init/miscinit.c:1137
+#: utils/init/miscinit.c:1148
 #, c-format
 msgid "could not write lock file \"%s\": %m"
 msgstr "无法写入锁文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:1284 utils/init/miscinit.c:1427 utils/misc/guc.c:9211
+#: utils/init/miscinit.c:1280 utils/init/miscinit.c:1423 utils/misc/guc.c:9851
 #, c-format
 msgid "could not read from file \"%s\": %m"
 msgstr "无法读取文件 \"%s\": %m"
 
-#: utils/init/miscinit.c:1415
+#: utils/init/miscinit.c:1411
 #, c-format
 msgid "could not open file \"%s\": %m; continuing anyway"
 msgstr "无法打开文件\"%s\":%m;仍然继续"
 
-#: utils/init/miscinit.c:1440
+#: utils/init/miscinit.c:1436
 #, c-format
 msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld"
 msgstr "锁文件\"%s\"包含错误的PID:应该是%ld而不是%ld"
 
-#: utils/init/miscinit.c:1479 utils/init/miscinit.c:1495
+#: utils/init/miscinit.c:1475 utils/init/miscinit.c:1491
 #, c-format
 msgid "\"%s\" is not a valid data directory"
 msgstr "\"%s\" 不是一个有效的数据目录"
 
-#: utils/init/miscinit.c:1481
+#: utils/init/miscinit.c:1477
 #, c-format
 msgid "File \"%s\" is missing."
 msgstr "文件 \"%s\" 丢失."
 
-#: utils/init/miscinit.c:1497
+#: utils/init/miscinit.c:1493
 #, c-format
 msgid "File \"%s\" does not contain valid data."
 msgstr "文件 \"%s\" 没有包含有效数据."
 
-#: utils/init/miscinit.c:1499
+#: utils/init/miscinit.c:1495
 #, c-format
 msgid "You might need to initdb."
 msgstr "您需要初始化数据库 (initdb)."
 
-#: utils/init/miscinit.c:1507
+#: utils/init/miscinit.c:1503
 #, c-format
 msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s."
 msgstr "数据目录是以 PostgreSQL 版本 %s 初始化的, 它于当前版本 %s 不兼容."
 
-#: utils/init/miscinit.c:1574
+#: utils/init/miscinit.c:1570
 #, c-format
 msgid "loaded library \"%s\""
 msgstr "已加载的库 \"%s\""
 
-#: utils/init/postinit.c:252
-#, c-format
-msgid "replication connection authorized: user=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)"
+#: utils/init/postinit.c:255
+#, fuzzy, c-format
+#| msgid "replication connection authorized: user=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)"
+msgid "replication connection authorized: user=%s application_name=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)"
 msgstr "复制连接已经授权: user =%s SSL 已启用 (protocol=%s, cipher=%s, bits=%d, compression=%s)"
 
 # help.c:48
-#: utils/init/postinit.c:257 utils/init/postinit.c:274
+#: utils/init/postinit.c:261 utils/init/postinit.c:267
+#: utils/init/postinit.c:289 utils/init/postinit.c:295
 msgid "off"
 msgstr "关闭"
 
 # help.c:48
-#: utils/init/postinit.c:257 utils/init/postinit.c:274
+#: utils/init/postinit.c:261 utils/init/postinit.c:267
+#: utils/init/postinit.c:289 utils/init/postinit.c:295
 msgid "on"
 msgstr "开启"
 
-#: utils/init/postinit.c:261
+#: utils/init/postinit.c:262
+#, c-format
+msgid "replication connection authorized: user=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)"
+msgstr "复制连接已经授权: user =%s SSL 已启用 (protocol=%s, cipher=%s, bits=%d, compression=%s)"
+
+#: utils/init/postinit.c:272
+#, fuzzy, c-format
+#| msgid "replication connection authorized: user=%s"
+msgid "replication connection authorized: user=%s application_name=%s"
+msgstr "复制连接已经授权: 用户=%s"
+
+#: utils/init/postinit.c:275
 #, c-format
 msgid "replication connection authorized: user=%s"
 msgstr "复制连接已经授权: 用户=%s"
 
-#: utils/init/postinit.c:269
+#: utils/init/postinit.c:284
+#, fuzzy, c-format
+#| msgid "connection authorized: user=%s database=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)"
+msgid "connection authorized: user=%s database=%s application_name=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)"
+msgstr "连接授权: user=%s database=%s SSL 启用 ((protocol=%s, cipher=%s, bits=%d, compression=%s)"
+
+#: utils/init/postinit.c:290
 #, c-format
 msgid "connection authorized: user=%s database=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)"
 msgstr "连接授权: user=%s database=%s SSL 启用 ((protocol=%s, cipher=%s, bits=%d, compression=%s)"
 
-#: utils/init/postinit.c:278
+#: utils/init/postinit.c:300
+#, fuzzy, c-format
+#| msgid "connection authorized: user=%s database=%s"
+msgid "connection authorized: user=%s database=%s application_name=%s"
+msgstr "联接认证: 主机=%s 数据库=%s"
+
+#: utils/init/postinit.c:302
 #, c-format
 msgid "connection authorized: user=%s database=%s"
 msgstr "联接认证: 主机=%s 数据库=%s"
 
-#: utils/init/postinit.c:310
+#: utils/init/postinit.c:334
 #, c-format
 msgid "database \"%s\" has disappeared from pg_database"
 msgstr "关于数据库\"%s\"的记录在系统目录视图pg_database中不存在"
 
-#: utils/init/postinit.c:312
+#: utils/init/postinit.c:336
 #, c-format
 msgid "Database OID %u now seems to belong to \"%s\"."
 msgstr "数据库OID%u现在属于\"%s\"."
 
-#: utils/init/postinit.c:332
+#: utils/init/postinit.c:356
 #, c-format
 msgid "database \"%s\" is not currently accepting connections"
 msgstr "数据库 \"%s\" 当前不接受联接"
 
-#: utils/init/postinit.c:345
+#: utils/init/postinit.c:369
 #, c-format
 msgid "permission denied for database \"%s\""
 msgstr "访问数据库\"%s\"的权限不够"
 
-#: utils/init/postinit.c:346
+#: utils/init/postinit.c:370
 #, c-format
 msgid "User does not have CONNECT privilege."
 msgstr "用户没有CONNECT权限."
 
 # command.c:981
-#: utils/init/postinit.c:363
+#: utils/init/postinit.c:387
 #, c-format
 msgid "too many connections for database \"%s\""
 msgstr "到数据库 \"%s\"的连接太多了"
 
-#: utils/init/postinit.c:385 utils/init/postinit.c:392
+#: utils/init/postinit.c:409 utils/init/postinit.c:416
 #, c-format
 msgid "database locale is incompatible with operating system"
 msgstr "数据库所使用的语言环境和操作系统的不兼容"
 
-#: utils/init/postinit.c:386
+#: utils/init/postinit.c:410
 #, c-format
 msgid "The database was initialized with LC_COLLATE \"%s\",  which is not recognized by setlocale()."
 msgstr "数据库集群是以 LC_COLLATE \"%s\"来初始化的,这个排序规则无法由setlocale()识别"
 
-#: utils/init/postinit.c:388 utils/init/postinit.c:395
+#: utils/init/postinit.c:412 utils/init/postinit.c:419
 #, c-format
 msgid "Recreate the database with another locale or install the missing locale."
 msgstr "以另外一种语言环境重新创建数据库,或者安装丢失的语言环境."
 
-#: utils/init/postinit.c:393
+#: utils/init/postinit.c:417
 #, c-format
 msgid "The database was initialized with LC_CTYPE \"%s\",  which is not recognized by setlocale()."
 msgstr "数据库集群是带 LC_CTYPE \"%s\" 初始化的, 但此 LC_CTYPE 是不被 setlocale() 认可的."
 
-#: utils/init/postinit.c:726
+#: utils/init/postinit.c:764
 #, c-format
 msgid "no roles are defined in this database system"
 msgstr "当前数据库系统中没有定义角色"
 
-#: utils/init/postinit.c:727
+#: utils/init/postinit.c:765
 #, c-format
 msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;."
 msgstr "您应该立即运行 CREATE USER \"%s\" SUPERUSER;."
 
-#: utils/init/postinit.c:763
+#: utils/init/postinit.c:801
 #, c-format
 msgid "new replication connections are not allowed during database shutdown"
 msgstr "在数据库服务器关闭期间不允许接受新的复制连接"
 
-#: utils/init/postinit.c:767
+#: utils/init/postinit.c:805
 #, c-format
 msgid "must be superuser to connect during database shutdown"
 msgstr "只有超级用户才能在数据库关闭期间连接数据库"
 
-#: utils/init/postinit.c:777
+#: utils/init/postinit.c:815
 #, c-format
 msgid "must be superuser to connect in binary upgrade mode"
 msgstr "只有超级用户才能以二进制升级模式进行连接"
 
-#: utils/init/postinit.c:791
+#: utils/init/postinit.c:828
 #, c-format
 msgid "remaining connection slots are reserved for non-replication superuser connections"
 msgstr "已保留的连接位置为执行非复制请求的超级用户预留"
 
-#: utils/init/postinit.c:801
+#: utils/init/postinit.c:838
 #, c-format
 msgid "must be superuser or replication role to start walsender"
 msgstr "只有超级用户或者拥有复制角色的用户才能启动 walsender"
 
-#: utils/init/postinit.c:870
+#: utils/init/postinit.c:907
 #, c-format
 msgid "database %u does not exist"
 msgstr "数据库%u不存在"
 
-#: utils/init/postinit.c:959
+#: utils/init/postinit.c:996
 #, c-format
 msgid "It seems to have just been dropped or renamed."
 msgstr "它已经被删除或者改名了."
 
-#: utils/init/postinit.c:977
+#: utils/init/postinit.c:1014
 #, c-format
 msgid "The database subdirectory \"%s\" is missing."
 msgstr "数据库子目录 \"%s\" 丢失."
 
-#: utils/init/postinit.c:982
+#: utils/init/postinit.c:1019
 #, c-format
 msgid "could not access directory \"%s\": %m"
 msgstr "无法访问目录 \"%s\": %m"
@@ -24074,1682 +24011,1844 @@ msgstr "对于编码\"%s\"的字节值无效: 0x%02x"
 msgid "bind_textdomain_codeset failed"
 msgstr "操作bind_textdomain_codeset 失败了"
 
-#: utils/mb/wchar.c:2015
+#: utils/mb/wchar.c:2033
 #, c-format
 msgid "invalid byte sequence for encoding \"%s\": %s"
 msgstr "无效的 \"%s\" 编码字节顺序: %s"
 
-#: utils/mb/wchar.c:2048
+#: utils/mb/wchar.c:2066
 #, c-format
 msgid "character with byte sequence %s in encoding \"%s\" has no equivalent in encoding \"%s\""
 msgstr "编码\"%2$s\"的字符0x%1$s在编码\"%3$s\"没有相对应值"
 
-#: utils/misc/guc.c:572
+#: utils/misc/guc.c:636
 msgid "Ungrouped"
 msgstr "取消组"
 
-#: utils/misc/guc.c:574
+#: utils/misc/guc.c:638
 msgid "File Locations"
 msgstr "文件位置"
 
-#: utils/misc/guc.c:576
+#: utils/misc/guc.c:640
 msgid "Connections and Authentication"
 msgstr "联接和认证"
 
-#: utils/misc/guc.c:578
+#: utils/misc/guc.c:642
 msgid "Connections and Authentication / Connection Settings"
 msgstr "联接和认证 / 联接设置"
 
-#: utils/misc/guc.c:580
+#: utils/misc/guc.c:644
 msgid "Connections and Authentication / Authentication"
 msgstr "连接和身份验证 / 身份验证"
 
-#: utils/misc/guc.c:582
+#: utils/misc/guc.c:646
 msgid "Connections and Authentication / SSL"
 msgstr "联接和身份认证 / SSL"
 
-#: utils/misc/guc.c:584
+#: utils/misc/guc.c:648
 msgid "Resource Usage"
 msgstr "资源使用"
 
-#: utils/misc/guc.c:586
+#: utils/misc/guc.c:650
 msgid "Resource Usage / Memory"
 msgstr "资源使用 / 内存"
 
-#: utils/misc/guc.c:588
+#: utils/misc/guc.c:652
 msgid "Resource Usage / Disk"
 msgstr "资源使用/磁盘"
 
-#: utils/misc/guc.c:590
+#: utils/misc/guc.c:654
 msgid "Resource Usage / Kernel Resources"
 msgstr "资源使用 / 内核资源"
 
-#: utils/misc/guc.c:592
+#: utils/misc/guc.c:656
 msgid "Resource Usage / Cost-Based Vacuum Delay"
 msgstr "资源使用 / 基于开销的Vacuum延迟"
 
-#: utils/misc/guc.c:594
+#: utils/misc/guc.c:658
 msgid "Resource Usage / Background Writer"
 msgstr "资源使用 / 后台写入进程"
 
-#: utils/misc/guc.c:596
+#: utils/misc/guc.c:660
 msgid "Resource Usage / Asynchronous Behavior"
 msgstr "资源使用 / 异步系统行为"
 
-#: utils/misc/guc.c:598
+#: utils/misc/guc.c:662
 msgid "Write-Ahead Log"
 msgstr "Write-Ahead 日志"
 
-#: utils/misc/guc.c:600
+#: utils/misc/guc.c:664
 msgid "Write-Ahead Log / Settings"
 msgstr "Write-Ahead 日志 / 设置"
 
-#: utils/misc/guc.c:602
+#: utils/misc/guc.c:666
 msgid "Write-Ahead Log / Checkpoints"
 msgstr "Write-Ahead 日志 / Checkpoints"
 
-#: utils/misc/guc.c:604
+#: utils/misc/guc.c:668
 msgid "Write-Ahead Log / Archiving"
 msgstr "Write-Ahead 日志 / 归档"
 
-#: utils/misc/guc.c:606
+#: utils/misc/guc.c:670
+#, fuzzy
+#| msgid "Write-Ahead Log / Archiving"
+msgid "Write-Ahead Log / Archive Recovery"
+msgstr "Write-Ahead 日志 / 归档"
+
+#: utils/misc/guc.c:672
+#, fuzzy
+#| msgid "Write-Ahead Log / Checkpoints"
+msgid "Write-Ahead Log / Recovery Target"
+msgstr "Write-Ahead 日志 / Checkpoints"
+
+#: utils/misc/guc.c:674
 msgid "Replication"
 msgstr "复制"
 
-#: utils/misc/guc.c:608
+#: utils/misc/guc.c:676
 msgid "Replication / Sending Servers"
 msgstr "复制/发送服务器"
 
-#: utils/misc/guc.c:610
+#: utils/misc/guc.c:678
 msgid "Replication / Master Server"
 msgstr "复制/主服务器"
 
-#: utils/misc/guc.c:612
+#: utils/misc/guc.c:680
 msgid "Replication / Standby Servers"
 msgstr "复制 / 备用服务器"
 
-#: utils/misc/guc.c:614
+#: utils/misc/guc.c:682
 msgid "Replication / Subscribers"
 msgstr "复制 / 订阅者"
 
-#: utils/misc/guc.c:616
+#: utils/misc/guc.c:684
 msgid "Query Tuning"
 msgstr "查询调整"
 
-#: utils/misc/guc.c:618
+#: utils/misc/guc.c:686
 msgid "Query Tuning / Planner Method Configuration"
 msgstr "查询调整 / 规划器方法配置"
 
-#: utils/misc/guc.c:620
+#: utils/misc/guc.c:688
 msgid "Query Tuning / Planner Cost Constants"
 msgstr "查询调整 / Planner Cost Constants"
 
-#: utils/misc/guc.c:622
+#: utils/misc/guc.c:690
 msgid "Query Tuning / Genetic Query Optimizer"
 msgstr "查询调整 / 基因查询优化"
 
-#: utils/misc/guc.c:624
+#: utils/misc/guc.c:692
 msgid "Query Tuning / Other Planner Options"
 msgstr "查询调整 / 其它规划器选项"
 
-#: utils/misc/guc.c:626
+#: utils/misc/guc.c:694
 msgid "Reporting and Logging"
 msgstr "报告和日志"
 
-#: utils/misc/guc.c:628
+#: utils/misc/guc.c:696
 msgid "Reporting and Logging / Where to Log"
 msgstr "报告和日志 / 日志位置"
 
-#: utils/misc/guc.c:630
+#: utils/misc/guc.c:698
 msgid "Reporting and Logging / When to Log"
 msgstr "报告和日志 / 日志时间"
 
-#: utils/misc/guc.c:632
+#: utils/misc/guc.c:700
 msgid "Reporting and Logging / What to Log"
 msgstr "报告和日志 / 日志内容"
 
-#: utils/misc/guc.c:634
+#: utils/misc/guc.c:702
 msgid "Process Title"
 msgstr "进程标题"
 
-#: utils/misc/guc.c:636
+#: utils/misc/guc.c:704
 msgid "Statistics"
 msgstr "统计信息"
 
-#: utils/misc/guc.c:638
+#: utils/misc/guc.c:706
 msgid "Statistics / Monitoring"
 msgstr "统计信息 / 监控"
 
-#: utils/misc/guc.c:640
+#: utils/misc/guc.c:708
 msgid "Statistics / Query and Index Statistics Collector"
 msgstr "统计信息 / 查询和索引统计收集器"
 
-#: utils/misc/guc.c:642
+#: utils/misc/guc.c:710
 msgid "Autovacuum"
 msgstr "Autovacuum"
 
-#: utils/misc/guc.c:644
+#: utils/misc/guc.c:712
 msgid "Client Connection Defaults"
 msgstr "客户端联接默认"
 
-#: utils/misc/guc.c:646
+#: utils/misc/guc.c:714
 msgid "Client Connection Defaults / Statement Behavior"
 msgstr "客户端联接默认 / 语句动作"
 
-#: utils/misc/guc.c:648
+#: utils/misc/guc.c:716
 msgid "Client Connection Defaults / Locale and Formatting"
 msgstr "客户端联接默认 / 本地化和格式化"
 
-#: utils/misc/guc.c:650
+#: utils/misc/guc.c:718
 msgid "Client Connection Defaults / Shared Library Preloading"
 msgstr "客户端联接默认 / 共享库预先加载"
 
-#: utils/misc/guc.c:652
+#: utils/misc/guc.c:720
 msgid "Client Connection Defaults / Other Defaults"
 msgstr "客户端联接默认 / 其它默认"
 
-#: utils/misc/guc.c:654
+#: utils/misc/guc.c:722
 msgid "Lock Management"
 msgstr "锁管理"
 
-#: utils/misc/guc.c:656
+#: utils/misc/guc.c:724
 msgid "Version and Platform Compatibility"
 msgstr "版本和平台兼容性"
 
-#: utils/misc/guc.c:658
+#: utils/misc/guc.c:726
 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions"
 msgstr "版本和平台兼容性 / 上一个 PostgreSQL 版本"
 
-#: utils/misc/guc.c:660
+#: utils/misc/guc.c:728
 msgid "Version and Platform Compatibility / Other Platforms and Clients"
 msgstr "版本和平台兼容性 / 其它平台和客户端"
 
-#: utils/misc/guc.c:662
+#: utils/misc/guc.c:730
 msgid "Error Handling"
 msgstr "错误处理"
 
-#: utils/misc/guc.c:664
+#: utils/misc/guc.c:732
 msgid "Preset Options"
 msgstr "预置选项"
 
-#: utils/misc/guc.c:666
+#: utils/misc/guc.c:734
 msgid "Customized Options"
 msgstr "定制选项"
 
-#: utils/misc/guc.c:668
+#: utils/misc/guc.c:736
 msgid "Developer Options"
 msgstr "开发人员选项"
 
-#: utils/misc/guc.c:722
+#: utils/misc/guc.c:788
 msgid "Valid units for this parameter are \"B\", \"kB\", \"MB\", \"GB\", and \"TB\"."
 msgstr "这个参数的有效单位是\"B\", \"kB\", \"MB\", \"GB\"和\"TB\"."
 
-#: utils/misc/guc.c:764
-msgid "Valid units for this parameter are \"ms\", \"s\", \"min\", \"h\", and \"d\"."
+#: utils/misc/guc.c:825
+#, fuzzy
+#| msgid "Valid units for this parameter are \"ms\", \"s\", \"min\", \"h\", and \"d\"."
+msgid "Valid units for this parameter are \"us\", \"ms\", \"s\", \"min\", \"h\", and \"d\"."
 msgstr "这个参数可使用的有效单元是\"ms\", \"s\", \"min\", \"h\", 和\"d\"."
 
-#: utils/misc/guc.c:823
+#: utils/misc/guc.c:887
 msgid "Enables the planner's use of sequential-scan plans."
 msgstr "启用查询计划器的顺序扫描计划."
 
-#: utils/misc/guc.c:832
+#: utils/misc/guc.c:897
 msgid "Enables the planner's use of index-scan plans."
 msgstr "启用查询计划器的索引扫描计划."
 
-#: utils/misc/guc.c:841
+#: utils/misc/guc.c:907
 msgid "Enables the planner's use of index-only-scan plans."
 msgstr "启用查询计划器的仅索引扫描计划."
 
-#: utils/misc/guc.c:850
+#: utils/misc/guc.c:917
 msgid "Enables the planner's use of bitmap-scan plans."
 msgstr "启用查询计划器的位图扫描计划."
 
-#: utils/misc/guc.c:859
+#: utils/misc/guc.c:927
 msgid "Enables the planner's use of TID scan plans."
 msgstr "启用查询计划器的TID扫描计划."
 
-#: utils/misc/guc.c:868
+#: utils/misc/guc.c:937
 msgid "Enables the planner's use of explicit sort steps."
 msgstr "启用查询计划器的显式排序步骤."
 
-#: utils/misc/guc.c:877
+#: utils/misc/guc.c:947
 msgid "Enables the planner's use of hashed aggregation plans."
 msgstr "启用查询计划器的哈希聚合计划."
 
-#: utils/misc/guc.c:886
+#: utils/misc/guc.c:957
 msgid "Enables the planner's use of materialization."
 msgstr "启用查询计划器的实体化使用."
 
-#: utils/misc/guc.c:895
+#: utils/misc/guc.c:967
 msgid "Enables the planner's use of nested-loop join plans."
 msgstr "启用查询计划器的嵌套循环连接计划."
 
-#: utils/misc/guc.c:904
+#: utils/misc/guc.c:977
 msgid "Enables the planner's use of merge join plans."
 msgstr "启用查询计划器的合并连接计划."
 
-#: utils/misc/guc.c:913
+#: utils/misc/guc.c:987
 msgid "Enables the planner's use of hash join plans."
 msgstr "启用查询计划器的哈希连接计划."
 
-#: utils/misc/guc.c:922
+#: utils/misc/guc.c:997
 msgid "Enables the planner's use of gather merge plans."
 msgstr "允许查询计划器使用收集合并计划."
 
-#: utils/misc/guc.c:931
+#: utils/misc/guc.c:1007
 msgid "Enables partitionwise join."
 msgstr "启用分区连接."
 
-#: utils/misc/guc.c:940
+#: utils/misc/guc.c:1017
 msgid "Enables partitionwise aggregation and grouping."
 msgstr "启用分区聚合和分组."
 
-#: utils/misc/guc.c:949
+#: utils/misc/guc.c:1027
 msgid "Enables the planner's use of parallel append plans."
 msgstr "启用查询计划器使用并行追加计划."
 
-#: utils/misc/guc.c:958
+#: utils/misc/guc.c:1037
 msgid "Enables the planner's use of parallel hash plans."
 msgstr "启用查询计划器使用并行哈希计划."
 
-#: utils/misc/guc.c:967
+#: utils/misc/guc.c:1047
 msgid "Enable plan-time and run-time partition pruning."
 msgstr "启用计划时间和运行时分区修剪."
 
-#: utils/misc/guc.c:968
+#: utils/misc/guc.c:1048
 msgid "Allows the query planner and executor to compare partition bounds to conditions in the query to determine which partitions must be scanned."
 msgstr "允许查询计划器和执行器将分区边界与查询中的条件进行比较,以确定必须扫描哪些分区"
 
-#: utils/misc/guc.c:978
+#: utils/misc/guc.c:1059
 msgid "Enables genetic query optimization."
 msgstr "启用基因查询优化."
 
-#: utils/misc/guc.c:979
+#: utils/misc/guc.c:1060
 msgid "This algorithm attempts to do planning without exhaustive searching."
 msgstr "算法企图执行不带有无穷搜索的计划."
 
-#: utils/misc/guc.c:989
+#: utils/misc/guc.c:1071
 msgid "Shows whether the current user is a superuser."
 msgstr "显示当前用户是否是超级用户."
 
-#: utils/misc/guc.c:999
+#: utils/misc/guc.c:1081
 msgid "Enables advertising the server via Bonjour."
 msgstr "启用通过Bonjour的方式来宣布数据库服务器在网络中的存在."
 
-#: utils/misc/guc.c:1008
+#: utils/misc/guc.c:1090
 msgid "Collects transaction commit time."
 msgstr "收集事务提交时间。"
 
-#: utils/misc/guc.c:1017
+#: utils/misc/guc.c:1099
 msgid "Enables SSL connections."
 msgstr "启用 SSL 联接."
 
-#: utils/misc/guc.c:1026
+#: utils/misc/guc.c:1108
 msgid "Also use ssl_passphrase_command during server reload."
 msgstr "在服务器重新加载期间也使用ssl_passphrase_command"
 
-#: utils/misc/guc.c:1035
+#: utils/misc/guc.c:1117
 msgid "Give priority to server ciphersuite order."
 msgstr "为服务器密码组的顺序提供优先."
 
-#: utils/misc/guc.c:1044
+#: utils/misc/guc.c:1126
 msgid "Forces synchronization of updates to disk."
 msgstr "强制和磁盘同步更新"
 
-#: utils/misc/guc.c:1045
+#: utils/misc/guc.c:1127
 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 cluster will recover to a consistent state after an operating system or hardware crash."
 msgstr "服务器将在多个位置使用系统调用fsync()来确定更新操作已经将数据写入磁盘.这将确保在操作系统或硬件崩溃后数据库集群将恢复到一个一致性状态. "
 
-#: utils/misc/guc.c:1056
+#: utils/misc/guc.c:1138
 msgid "Continues processing after a checksum failure."
 msgstr "校验失败后继续处理."
 
-#: utils/misc/guc.c:1057
+#: utils/misc/guc.c:1139
 msgid "Detection of a checksum failure normally causes PostgreSQL to report an error, aborting the current transaction. Setting ignore_checksum_failure to true causes the system to ignore the failure (but still report a warning), and continue processing. This behavior could cause crashes or other serious problems. Only has an effect if checksums are enabled."
 msgstr "发现校验失败通常会使PostgreSQL报告一个错误, 并中止当前事务.将参数zero_damaged_pages设置为true可以使系统忽略失败(只报告一个警告信息),并且能够继续处理当前事务.这种情况将导致系统崩溃或者其它严重问题,这也只有在启用校验时才有效."
 
-#: utils/misc/guc.c:1071
+#: utils/misc/guc.c:1153
 msgid "Continues processing past damaged page headers."
 msgstr "继续处理已损坏的页头."
 
-#: utils/misc/guc.c:1072
+#: utils/misc/guc.c:1154
 msgid "Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting zero_damaged_pages to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page."
 msgstr "对已损坏页头的检测通常会使PostgreSQL报告一个错误, 并中止当前事务.将参数zero_damaged_pages设置为true可以使系统只报告一个警告信息,不输出已损坏的页,并且能够继续处理当前事务.这种情况将使毁坏数据,因为这样通常会使所有的记录在已损坏的页上存放."
 
-#: utils/misc/guc.c:1085
+#: utils/misc/guc.c:1167
 msgid "Writes full pages to WAL when first modified after a checkpoint."
 msgstr "在检查点事件发生后发生第一次修改数据时,把所有的页写到WAL文件中"
 
-#: utils/misc/guc.c:1086
+#: utils/misc/guc.c:1168
 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 are not enough to recover.  This option writes pages when first modified after a checkpoint to WAL so full recovery is possible."
 msgstr "在操作系统崩溃过程中正在写入的页上的数据可能已经部分写入磁盘.在恢复期间,在WAL文件中所保存的已改变记录不足以进行恢复.当对WAL发生检查点事件后进行第一次修改操作时这个选项可以写入页。这样将允许进行完全恢复."
 
-#: utils/misc/guc.c:1099
+#: utils/misc/guc.c:1181
 msgid "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modifications."
 msgstr "在检查点事件发生后发生第一次修改数据甚至是非关键修改时,把所有的页写到WAL文件中"
 
-#: utils/misc/guc.c:1109
+#: utils/misc/guc.c:1191
 msgid "Compresses full-page writes written in WAL file."
 msgstr "压缩写入WAL文件的整页写。"
 
-#: utils/misc/guc.c:1119
+#: utils/misc/guc.c:1201
+msgid "Writes zeroes to new WAL files before first use."
+msgstr ""
+
+#: utils/misc/guc.c:1211
+msgid "Recycles WAL files by renaming them."
+msgstr ""
+
+#: utils/misc/guc.c:1221
 msgid "Logs each checkpoint."
 msgstr "记录每一个检查点事件"
 
-#: utils/misc/guc.c:1128
+#: utils/misc/guc.c:1230
 msgid "Logs each successful connection."
 msgstr "记录每一个成功的联接."
 
-#: utils/misc/guc.c:1137
+#: utils/misc/guc.c:1239
 msgid "Logs end of a session, including duration."
 msgstr "对会话的结束时间和整个会话的持续时间进行日志记录"
 
-#: utils/misc/guc.c:1146
+#: utils/misc/guc.c:1248
 msgid "Logs each replication command."
 msgstr "记录每一个复制命令。"
 
-#: utils/misc/guc.c:1155
+#: utils/misc/guc.c:1257
 msgid "Shows whether the running server has assertion checks enabled."
 msgstr "显示正在运行的服务器是否启用了断言检查。"
 
-#: utils/misc/guc.c:1170
+#: utils/misc/guc.c:1272
 msgid "Terminate session on any error."
 msgstr "只要遇错即终止会话."
 
-#: utils/misc/guc.c:1179
+#: utils/misc/guc.c:1281
 msgid "Reinitialize server after backend crash."
 msgstr "后端服务器崩溃时重新初始化服务器."
 
-#: utils/misc/guc.c:1189
+#: utils/misc/guc.c:1291
 msgid "Logs the duration of each completed SQL statement."
 msgstr "记录每一条完成了的 SQL 语句过程."
 
-#: utils/misc/guc.c:1198
+#: utils/misc/guc.c:1300
 msgid "Logs each query's parse tree."
 msgstr "对每个查询的分析树进行日志记录"
 
-#: utils/misc/guc.c:1207
+#: utils/misc/guc.c:1309
 msgid "Logs each query's rewritten parse tree."
 msgstr "对每个查询的重写分析树进行日志记录"
 
-#: utils/misc/guc.c:1216
+#: utils/misc/guc.c:1318
 msgid "Logs each query's execution plan."
 msgstr "记录每一个查询的执行计划"
 
-#: utils/misc/guc.c:1225
+#: utils/misc/guc.c:1327
 msgid "Indents parse and plan tree displays."
 msgstr "显示缩进的解析和计划树"
 
-#: utils/misc/guc.c:1234
+#: utils/misc/guc.c:1336
 msgid "Writes parser performance statistics to the server log."
 msgstr "把分析器性能统计信息写入到服务器日志中."
 
-#: utils/misc/guc.c:1243
+#: utils/misc/guc.c:1345
 msgid "Writes planner performance statistics to the server log."
 msgstr "把规划器性能统计信息写入到服务器日志中."
 
-#: utils/misc/guc.c:1252
+#: utils/misc/guc.c:1354
 msgid "Writes executor performance statistics to the server log."
 msgstr "把执行器 (executor) 性能统计信息写入到服务器日志中."
 
-#: utils/misc/guc.c:1261
+#: utils/misc/guc.c:1363
 msgid "Writes cumulative performance statistics to the server log."
 msgstr "把 cumulative 性能统计信息写入到服务器日志中."
 
-#: utils/misc/guc.c:1271
+#: utils/misc/guc.c:1373
 msgid "Logs system resource usage statistics (memory and CPU) on various B-tree operations."
 msgstr "基于可变的B-树操作的日志系统资源使用统计 (内存和CPU) ."
 
-#: utils/misc/guc.c:1283
+#: utils/misc/guc.c:1385
 msgid "Collects information about executing commands."
 msgstr "收集执行命令的统计信息."
 
-#: utils/misc/guc.c:1284
+#: utils/misc/guc.c:1386
 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:1294
+#: utils/misc/guc.c:1396
 msgid "Collects statistics on database activity."
 msgstr "在数据库上正在执行的事务上收集统计信息."
 
-#: utils/misc/guc.c:1303
+#: utils/misc/guc.c:1405
 msgid "Collects timing statistics for database I/O activity."
 msgstr "为数据库I/O活动进行时间统计."
 
-#: utils/misc/guc.c:1313
+#: utils/misc/guc.c:1415
 msgid "Updates the process title to show the active SQL command."
 msgstr "更新进程标题来显示处于活动状态的SQL命令"
 
-#: utils/misc/guc.c:1314
+#: utils/misc/guc.c:1416
 msgid "Enables updating of the process title every time a new SQL command is received by the server."
 msgstr "每一次服务器开始运行新的SQL命令时启用进程标题的更新."
 
-#: utils/misc/guc.c:1327
+#: utils/misc/guc.c:1429
 msgid "Starts the autovacuum subprocess."
 msgstr "启动autovacuum子进程."
 
-#: utils/misc/guc.c:1337
+#: utils/misc/guc.c:1439
 msgid "Generates debugging output for LISTEN and NOTIFY."
 msgstr "为 LISTEN 和 NOTIFY 生成出错信息."
 
-#: utils/misc/guc.c:1349
+#: utils/misc/guc.c:1451
 msgid "Emits information about lock usage."
 msgstr "发出有关锁使用的信息."
 
-#: utils/misc/guc.c:1359
+#: utils/misc/guc.c:1461
 msgid "Emits information about user lock usage."
 msgstr "发出有关用户锁使用情况的信息."
 
-#: utils/misc/guc.c:1369
+#: utils/misc/guc.c:1471
 msgid "Emits information about lightweight lock usage."
 msgstr "发出有关轻量锁使用的相关信息."
 
-#: utils/misc/guc.c:1379
+#: utils/misc/guc.c:1481
 msgid "Dumps information about all current locks when a deadlock timeout occurs."
 msgstr "输出死锁超时发生时所有当前锁的相关信息."
 
-#: utils/misc/guc.c:1391
+#: utils/misc/guc.c:1493
 msgid "Logs long lock waits."
 msgstr "对长时间的锁等待记日志"
 
-#: utils/misc/guc.c:1401
+#: utils/misc/guc.c:1503
 msgid "Logs the host name in the connection logs."
 msgstr "在联接日志中记录主机名."
 
-#: utils/misc/guc.c:1402
+#: utils/misc/guc.c:1504
 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 on your host name resolution setup it might impose a non-negligible performance penalty."
 msgstr "在缺省情况下,连接日志只显示每个正在连接主机的IP地址.如果想要显示主机名,那么必须把它打开,但是这取决于主机名解析的设置,这在性能上不会有影响."
 
-#: utils/misc/guc.c:1413
+#: utils/misc/guc.c:1515
 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"."
 msgstr "\"expr=NULL\" 看作为 \"expr IS NULL\"."
 
-#: utils/misc/guc.c:1414
+#: utils/misc/guc.c:1516
 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 null value, and false otherwise. The correct behavior of expr = NULL is to always return null (unknown)."
 msgstr "当打开选项, expr = NULL (或 NULL = expr)形式的表达式会被当作expr IS NUL而进行处理, 那就是说,如果expr计算为空值那么会返回true,否则返回为false。表达式expr = NULL的正确行为应该是永远返回为空(未知)"
 
-#: utils/misc/guc.c:1426
+#: utils/misc/guc.c:1528
 msgid "Enables per-database user names."
 msgstr "启用每个数据库的用户名"
 
-#: utils/misc/guc.c:1435
+#: utils/misc/guc.c:1537
 msgid "Sets the default read-only status of new transactions."
 msgstr "为新事物设置默认的只读状态."
 
-#: utils/misc/guc.c:1444
+#: utils/misc/guc.c:1546
 msgid "Sets the current transaction's read-only status."
 msgstr "设置当前事务的只读状态."
 
-#: utils/misc/guc.c:1454
+#: utils/misc/guc.c:1556
 msgid "Sets the default deferrable status of new transactions."
 msgstr "为新事物设置默认的可延迟状态."
 
-#: utils/misc/guc.c:1463
+#: utils/misc/guc.c:1565
 msgid "Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures."
 msgstr "是否要延期执行一个只读可串行化事务,直到执行时不会出现任何可串行化失败."
 
-#: utils/misc/guc.c:1473
+#: utils/misc/guc.c:1575
 msgid "Enable row security."
 msgstr "启用行安全。"
 
 # sql_help.h:117
-#: utils/misc/guc.c:1474
+#: utils/misc/guc.c:1576
 msgid "When enabled, row security will be applied to all users."
 msgstr "当被启用时,行安全性将被应用到所有用户。"
 
-#: utils/misc/guc.c:1482
+#: utils/misc/guc.c:1584
 msgid "Check function bodies during CREATE FUNCTION."
 msgstr "在创建函数过程中检查函数体."
 
-#: utils/misc/guc.c:1491
+#: utils/misc/guc.c:1593
 msgid "Enable input of NULL elements in arrays."
 msgstr "在数组中启用空值成员输入"
 
-#: utils/misc/guc.c:1492
+#: utils/misc/guc.c:1594
 msgid "When turned on, unquoted NULL in an array input value means a null value; otherwise it is taken literally."
 msgstr "当打开这个选项的时候,在数组输入值中没有引用的NULL表示空值;否则是按照字面上的含义进行解释."
 
-#: utils/misc/guc.c:1502
-msgid "Create new tables with OIDs by default."
-msgstr "缺省下使用OIDs来创建表."
+#: utils/misc/guc.c:1610
+#, fuzzy
+#| msgid "SSL renegotiation is no longer supported; this can only be 0."
+msgid "WITH OIDS is no longer supported; this can only be false."
+msgstr "SSL 重协商已经不再被支持,这里只能是 0。"
 
-#: utils/misc/guc.c:1511
+#: utils/misc/guc.c:1620
 msgid "Start a subprocess to capture stderr output and/or csvlogs into log files."
 msgstr "启动一个子进程用来捕获stderr输出或csvlogs,写到到日志文件中."
 
-#: utils/misc/guc.c:1520
+#: utils/misc/guc.c:1629
 msgid "Truncate existing log files of same name during log rotation."
 msgstr "在日志切换期间截断相同名称的日志文件"
 
-#: utils/misc/guc.c:1531
+#: utils/misc/guc.c:1640
 msgid "Emit information about resource usage in sorting."
 msgstr "发出在排序中关于资源使用的信息."
 
-#: utils/misc/guc.c:1545
+#: utils/misc/guc.c:1654
 msgid "Generate debugging output for synchronized scanning."
 msgstr "为同步扫描生成调试信息."
 
-#: utils/misc/guc.c:1560
+#: utils/misc/guc.c:1669
 msgid "Enable bounded sorting using heap sort."
 msgstr "使用堆排序来启用有界排序."
 
-#: utils/misc/guc.c:1573
+#: utils/misc/guc.c:1682
 msgid "Emit WAL-related debugging output."
 msgstr "发出与WAL相关的调试信息输出"
 
-#: utils/misc/guc.c:1585
+#: utils/misc/guc.c:1694
 msgid "Datetimes are integer based."
 msgstr "日期时间类型值是基于整数类型的"
 
-#: utils/misc/guc.c:1596
+#: utils/misc/guc.c:1705
 msgid "Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive."
 msgstr "设置 Kerberos和GSSAPI的用户名是否应该区分大小写."
 
-#: utils/misc/guc.c:1606
+#: utils/misc/guc.c:1715
 msgid "Warn about backslash escapes in ordinary string literals."
 msgstr "在顺序字符串文字中关于反斜线转义的警告"
 
-#: utils/misc/guc.c:1616
+#: utils/misc/guc.c:1725
 msgid "Causes '...' strings to treat backslashes literally."
 msgstr "使字符串'...' 按照字面含义处理反斜线"
 
-#: utils/misc/guc.c:1627
+#: utils/misc/guc.c:1736
 msgid "Enable synchronized sequential scans."
 msgstr "启用同步序列扫描"
 
-#: utils/misc/guc.c:1637
+#: utils/misc/guc.c:1746
+#, fuzzy
+#| msgid "Sets the current transaction's read-only status."
+msgid "Sets whether to include or exclude transaction with recovery target."
+msgstr "设置当前事务的只读状态."
+
+#: utils/misc/guc.c:1756
 msgid "Allows connections and queries during recovery."
 msgstr "允许在恢复期间进行连接和查询."
 
-#: utils/misc/guc.c:1647
+#: utils/misc/guc.c:1766
 msgid "Allows feedback from a hot standby to the primary that will avoid query conflicts."
 msgstr "允许来自热备节点到主节点的响应,以避免查询冲突."
 
-#: utils/misc/guc.c:1657
+#: utils/misc/guc.c:1776
 msgid "Allows modifications of the structure of system tables."
 msgstr "允许修改系统表的结构."
 
-#: utils/misc/guc.c:1668
+#: utils/misc/guc.c:1787
 msgid "Disables reading from system indexes."
 msgstr "禁止从系统索引中进行读操作"
 
-#: utils/misc/guc.c:1669
+#: utils/misc/guc.c:1788
 msgid "It does not prevent updating the indexes, so it is safe to use.  The worst consequence is slowness."
 msgstr "这不能防止更新索引,所以应该安全的使用。最糟糕的结果是使系统性能变慢."
 
-#: utils/misc/guc.c:1680
+#: utils/misc/guc.c:1799
 msgid "Enables backward compatibility mode for privilege checks on large objects."
 msgstr "为在大对象上的权限检查启用向后兼容模式."
 
-#: utils/misc/guc.c:1681
+#: utils/misc/guc.c:1800
 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:1691
+#: utils/misc/guc.c:1810
 msgid "Emit a warning for constructs that changed meaning since PostgreSQL 9.4."
 msgstr "为从PostgreSQL 9.4以来改变了含义的结构发出一个警告。"
 
-#: utils/misc/guc.c:1701
+#: utils/misc/guc.c:1820
 msgid "When generating SQL fragments, quote all identifiers."
 msgstr "在生成SQL片段时,对所有标识符加引号括起来."
 
-#: utils/misc/guc.c:1711
+#: utils/misc/guc.c:1830
 msgid "Shows whether data checksums are turned on for this cluster."
 msgstr "显示当前簇是否开启数据校验和."
 
-#: utils/misc/guc.c:1722
+#: utils/misc/guc.c:1841
 msgid "Add sequence number to syslog messages to avoid duplicate suppression."
 msgstr "向 syslog 消息中增加序号以避免抑制重复。"
 
-#: utils/misc/guc.c:1732
+#: utils/misc/guc.c:1851
 msgid "Split messages sent to syslog by lines and to fit into 1024 bytes."
 msgstr "将发送给 syslog 的消息用行分离并且让每个部分适合于 1024 字节。"
 
-#: utils/misc/guc.c:1742
+#: utils/misc/guc.c:1861
 msgid "Controls whether Gather and Gather Merge also run subplans."
 msgstr "控制收集和收集合并是否也运行子计划."
 
-#: utils/misc/guc.c:1743
+#: utils/misc/guc.c:1862
 msgid "Should gather nodes also run subplans, or just gather tuples?"
 msgstr "收集节点也应该运行子计划,或者只是收集元组?"
 
-#: utils/misc/guc.c:1752
+#: utils/misc/guc.c:1872
 msgid "Allow JIT compilation."
 msgstr "允许JIT编译."
 
-#: utils/misc/guc.c:1762
+#: utils/misc/guc.c:1883
 msgid "Register JIT compiled function with debugger."
 msgstr "向调试器注册JIT编译函数."
 
-#: utils/misc/guc.c:1779
+#: utils/misc/guc.c:1900
 msgid "Write out LLVM bitcode to facilitate JIT debugging."
 msgstr "写出LLVM比特码,便于JIT调试."
 
-#: utils/misc/guc.c:1790
+#: utils/misc/guc.c:1911
 msgid "Allow JIT compilation of expressions."
 msgstr "允许JIT编译表达式."
 
-#: utils/misc/guc.c:1801
+#: utils/misc/guc.c:1922
 msgid "Register JIT compiled function with perf profiler."
 msgstr "用性能分析器注册JIT编译函数."
 
-#: utils/misc/guc.c:1818
+#: utils/misc/guc.c:1939
 msgid "Allow JIT compilation of tuple deforming."
 msgstr "允许对元组变形进行JIT编译."
 
-#: utils/misc/guc.c:1829
+#: utils/misc/guc.c:1950
 msgid "Whether to continue running after a failure to sync data files."
 msgstr "同步数据文件失败后是否继续运行."
 
-#: utils/misc/guc.c:1847
+#: utils/misc/guc.c:1968
 msgid "Forces a switch to the next WAL file if a new file has not been started within N seconds."
 msgstr "如果新的文件没有在N秒内启动,那么强制切换到下一个WAL文件."
 
-#: utils/misc/guc.c:1858
+#: utils/misc/guc.c:1979
 msgid "Waits N seconds on connection startup after authentication."
 msgstr "完成认证后,在启动的连接上等待N秒"
 
-#: utils/misc/guc.c:1859 utils/misc/guc.c:2410
+#: utils/misc/guc.c:1980 utils/misc/guc.c:2526
 msgid "This allows attaching a debugger to the process."
 msgstr "允许将调试器添加到进程"
 
-#: utils/misc/guc.c:1868
+#: utils/misc/guc.c:1989
 msgid "Sets the default statistics target."
 msgstr "设置默认统计对象."
 
-#: utils/misc/guc.c:1869
+#: utils/misc/guc.c:1990
 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:1878
+#: utils/misc/guc.c:1999
 msgid "Sets the FROM-list size beyond which subqueries are not collapsed."
 msgstr "所设置的FROM列表大小超过子查询所允许的最大长度"
 
-#: utils/misc/guc.c:1880
+#: utils/misc/guc.c:2001
 msgid "The planner will merge subqueries into upper queries if the resulting FROM list would have no more than this many items."
 msgstr "如果所产生的FROM列表成员不超过上层查询的相应的数量,那么计划器会把子查询合并到上层查询中."
 
-#: utils/misc/guc.c:1890
+#: utils/misc/guc.c:2012
 msgid "Sets the FROM-list size beyond which JOIN constructs are not flattened."
 msgstr "设置的FROM列表大小超过没有展平的JOIN结构大小."
 
-#: utils/misc/guc.c:1892
+#: utils/misc/guc.c:2014
 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."
 msgstr "无论什么时候产生不超过这个数量的成员,计划器都将显式的JOIN结构展平到FROM子句后面的成员列表中."
 
-#: utils/misc/guc.c:1902
+#: utils/misc/guc.c:2025
 msgid "Sets the threshold of FROM items beyond which GEQO is used."
 msgstr "设置超过GEQO使用的FROM列表成员数量门限值."
 
-#: utils/misc/guc.c:1911
+#: utils/misc/guc.c:2035
 msgid "GEQO: effort is used to set the default for other GEQO parameters."
 msgstr "GEQO: 为其它GEQO参数设置缺省值"
 
-#: utils/misc/guc.c:1920
+#: utils/misc/guc.c:2045
 msgid "GEQO: number of individuals in the population."
 msgstr "GEQO: 人群 (population) 个体 (individual) 数"
 
-#: utils/misc/guc.c:1921 utils/misc/guc.c:1930
+#: utils/misc/guc.c:2046 utils/misc/guc.c:2056
 msgid "Zero selects a suitable default value."
 msgstr "没有选择出一个合适的缺省值"
 
-#: utils/misc/guc.c:1929
+#: utils/misc/guc.c:2055
 msgid "GEQO: number of iterations of the algorithm."
 msgstr "GEQO: 算法的迭代次数"
 
-#: utils/misc/guc.c:1940
+#: utils/misc/guc.c:2067
 msgid "Sets the time to wait on a lock before checking for deadlock."
 msgstr "在检查死锁前设置在一个锁上的等待时间."
 
-#: utils/misc/guc.c:1951
+#: utils/misc/guc.c:2078
 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data."
 msgstr "当热备服务器在处理已归档的WAL数据时,在取消查询请求前设置最大的延迟."
 
-#: utils/misc/guc.c:1962
+#: utils/misc/guc.c:2089
 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data."
 msgstr "当热备服务器在处理通过流复制的WAL数据时,在取消查询请求前设置最大的延迟."
 
-#: utils/misc/guc.c:1973
-msgid "Sets the maximum interval between WAL receiver status reports to the primary."
+#: utils/misc/guc.c:2100
+#, fuzzy
+#| msgid "cannot manipulate replication origins during recovery"
+msgid "Sets the minimum delay for applying changes during recovery."
+msgstr "无法在恢复期间操作复制源头"
+
+#: utils/misc/guc.c:2111
+#, fuzzy
+#| msgid "Sets the maximum interval between WAL receiver status reports to the primary."
+msgid "Sets the maximum interval between WAL receiver status reports to the sending server."
 msgstr "为WAL接受进程的状态报告(向主节点)设置最大时间间隔."
 
-#: utils/misc/guc.c:1984
-msgid "Sets the maximum wait time to receive data from the primary."
+#: utils/misc/guc.c:2122
+#, fuzzy
+#| msgid "Sets the maximum wait time to receive data from the primary."
+msgid "Sets the maximum wait time to receive data from the sending server."
 msgstr "设置从主节点上接收数据的最大等待时间."
 
-#: utils/misc/guc.c:1995
+#: utils/misc/guc.c:2133
 msgid "Sets the maximum number of concurrent connections."
 msgstr "设置并发联接的最大个数."
 
-#: utils/misc/guc.c:2006
+#: utils/misc/guc.c:2144
 msgid "Sets the number of connection slots reserved for superusers."
 msgstr "设置为超级用户保留的联接数."
 
-#: utils/misc/guc.c:2020
+#: utils/misc/guc.c:2158
 msgid "Sets the number of shared memory buffers used by the server."
 msgstr "设置服务器使用的共享内存缓冲区的数量."
 
-#: utils/misc/guc.c:2031
+#: utils/misc/guc.c:2169
 msgid "Sets the maximum number of temporary buffers used by each session."
 msgstr "设置每个会话可使用的临时缓冲区的最大数量."
 
-#: utils/misc/guc.c:2042
+#: utils/misc/guc.c:2180
 msgid "Sets the TCP port the server listens on."
 msgstr "设置服务器监听的 TCP 端口号."
 
-#: utils/misc/guc.c:2052
+#: utils/misc/guc.c:2190
 msgid "Sets the access permissions of the Unix-domain socket."
 msgstr "设置 Unix-domain 套接字的访问权限."
 
-#: utils/misc/guc.c:2053
+#: utils/misc/guc.c:2191
 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 accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)"
 msgstr "Unix-domain 套接字使用普通的Unix文件许可集合.参数值应该是数值模式定义, 它的形式应该是系统调用chmod和umask可接受的.(为了使用习惯上以0开头的八进制格式数值)"
 
-#: utils/misc/guc.c:2067
+#: utils/misc/guc.c:2205
 msgid "Sets the file permissions for log files."
 msgstr "设置日志文件的文件访问权限."
 
-#: utils/misc/guc.c:2068
+#: utils/misc/guc.c:2206
 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 octal format the number must start with a 0 (zero).)"
 msgstr "参数值期望使用数值模式来指定, 它的形式应该是系统调用chmod和umask可接受的.(为了使用习惯上以0开头的八进制格式数值)"
 
-#: utils/misc/guc.c:2082
+#: utils/misc/guc.c:2220
 msgid "Mode of the data directory."
 msgstr "数据目录的模式."
 
-#: utils/misc/guc.c:2083
+#: utils/misc/guc.c:2221
 msgid "The parameter value is a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)"
 msgstr "参数使用数值模式来指定, 它的形式应该是系统调用chmod和umask可接受的.(为了使用习惯上以0开头的八进制格式数值)"
 
-#: utils/misc/guc.c:2096
+#: utils/misc/guc.c:2234
 msgid "Sets the maximum memory to be used for query workspaces."
 msgstr "设置查询工作空间使用的最大内存数."
 
-#: utils/misc/guc.c:2097
+#: utils/misc/guc.c:2235
 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:2109
+#: utils/misc/guc.c:2247
 msgid "Sets the maximum memory to be used for maintenance operations."
 msgstr "设置维护操作使用的最大内存数."
 
-#: utils/misc/guc.c:2110
+#: utils/misc/guc.c:2248
 msgid "This includes operations such as VACUUM and CREATE INDEX."
 msgstr "此处动作包括 VACUUM 和 CREATE INDEX."
 
-#: utils/misc/guc.c:2125
+#: utils/misc/guc.c:2263
 msgid "Sets the maximum stack depth, in kilobytes."
 msgstr "设置最大的堆栈深度,单位是千字节."
 
-#: utils/misc/guc.c:2136
+#: utils/misc/guc.c:2274
 msgid "Limits the total size of all temporary files used by each process."
 msgstr "限制每个进程使用的所有临时文件的总大小."
 
-#: utils/misc/guc.c:2137
+#: utils/misc/guc.c:2275
 msgid "-1 means no limit."
 msgstr "-1 意指没有限制."
 
-#: utils/misc/guc.c:2147
+#: utils/misc/guc.c:2285
 msgid "Vacuum cost for a page found in the buffer cache."
 msgstr "在缓冲区缓存中找到对于一个页进行清理的开销."
 
-#: utils/misc/guc.c:2157
+#: utils/misc/guc.c:2295
 msgid "Vacuum cost for a page not found in the buffer cache."
 msgstr "在缓冲区缓存中没有找到对于一个页进行清理的开销."
 
-#: utils/misc/guc.c:2167
+#: utils/misc/guc.c:2305
 msgid "Vacuum cost for a page dirtied by vacuum."
 msgstr "由vacuum进程对脏页进行清理的开销."
 
-#: utils/misc/guc.c:2177
+#: utils/misc/guc.c:2315
 msgid "Vacuum cost amount available before napping."
 msgstr "在暂停前可用的清理开销总量."
 
-#: utils/misc/guc.c:2187
-msgid "Vacuum cost delay in milliseconds."
-msgstr "Vacuum开销延迟是以毫秒为单位"
-
-#: utils/misc/guc.c:2198
-msgid "Vacuum cost delay in milliseconds, for autovacuum."
-msgstr "对于autovacuum来说,Vacuum开销延迟是以毫秒为单位"
-
-#: utils/misc/guc.c:2209
+#: utils/misc/guc.c:2325
 msgid "Vacuum cost amount available before napping, for autovacuum."
 msgstr "对于autovacuum进程,在暂停前前进行清理有效开销总量."
 
-#: utils/misc/guc.c:2219
+#: utils/misc/guc.c:2335
 msgid "Sets the maximum number of simultaneously open files for each server process."
 msgstr "设置每一个服务器进程同时打开文件的最大个数."
 
-#: utils/misc/guc.c:2232
+#: utils/misc/guc.c:2348
 msgid "Sets the maximum number of simultaneously prepared transactions."
 msgstr "设置同步的已准备好事务的最大个数."
 
-#: utils/misc/guc.c:2243
+#: utils/misc/guc.c:2359
 msgid "Sets the minimum OID of tables for tracking locks."
 msgstr "设置跟踪锁的表的最小OID."
 
-#: utils/misc/guc.c:2244
+#: utils/misc/guc.c:2360
 msgid "Is used to avoid output on system tables."
 msgstr "用于避免输出到系统表."
 
-#: utils/misc/guc.c:2253
+#: utils/misc/guc.c:2369
 msgid "Sets the OID of the table with unconditionally lock tracing."
 msgstr "设置无条件锁追踪的表的OID."
 
-#: utils/misc/guc.c:2265
+#: utils/misc/guc.c:2381
 msgid "Sets the maximum allowed duration of any statement."
 msgstr "设置任何语句执行时间的最大值 (单位毫秒)."
 
-#: utils/misc/guc.c:2266 utils/misc/guc.c:2277 utils/misc/guc.c:2288
+#: utils/misc/guc.c:2382 utils/misc/guc.c:2393 utils/misc/guc.c:2404
 msgid "A value of 0 turns off the timeout."
 msgstr "值为 0 的时候关闭超时."
 
-#: utils/misc/guc.c:2276
+#: utils/misc/guc.c:2392
 msgid "Sets the maximum allowed duration of any wait for a lock."
 msgstr "等待锁的的最长时间值."
 
-#: utils/misc/guc.c:2287
+#: utils/misc/guc.c:2403
 msgid "Sets the maximum allowed duration of any idling transaction."
 msgstr "设定任何空载事务的最大允许持续时间。"
 
-#: utils/misc/guc.c:2298
+#: utils/misc/guc.c:2414
 msgid "Minimum age at which VACUUM should freeze a table row."
 msgstr "VACUUM应该冻结一行记录的最小时间."
 
-#: utils/misc/guc.c:2308
+#: utils/misc/guc.c:2424
 msgid "Age at which VACUUM should scan whole table to freeze tuples."
 msgstr "这是VACUUM应该扫描整个表来冻结元组的时候."
 
-#: utils/misc/guc.c:2318
+#: utils/misc/guc.c:2434
 msgid "Minimum age at which VACUUM should freeze a MultiXactId in a table row."
 msgstr "VACUUM用于冻结表中某行对应的MultiXactId的最小时间范围."
 
-#: utils/misc/guc.c:2328
+#: utils/misc/guc.c:2444
 msgid "Multixact age at which VACUUM should scan whole table to freeze tuples."
 msgstr "这是VACUUM应该扫描整个表来冻结元组的事务时间范围."
 
-#: utils/misc/guc.c:2338
+#: utils/misc/guc.c:2454
 msgid "Number of transactions by which VACUUM and HOT cleanup should be deferred, if any."
 msgstr "VACUUM和热清理操作应该延迟的事务数量."
 
-#: utils/misc/guc.c:2351
+#: utils/misc/guc.c:2467
 msgid "Sets the maximum number of locks per transaction."
 msgstr "设置每一个事物锁的最大个数."
 
-#: utils/misc/guc.c:2352
+#: utils/misc/guc.c:2468
 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 locked at any one time."
 msgstr "持有共享锁表的大小是基于最多max_locks_per_transaction * max_connections个不同对象需要在任何时刻被锁定的假设来指定的."
 
-#: utils/misc/guc.c:2363
+#: utils/misc/guc.c:2479
 msgid "Sets the maximum number of predicate locks per transaction."
 msgstr "设置每一个事物的断言锁的最大个数."
 
-#: utils/misc/guc.c:2364
+#: utils/misc/guc.c:2480
 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 to be locked at any one time."
 msgstr "共享断言锁表的大小是基于最多max_locks_per_transaction * max_connections个不同对象需要在任何时刻被锁定的假设来指定的."
 
-#: utils/misc/guc.c:2375
+#: utils/misc/guc.c:2491
 msgid "Sets the maximum number of predicate-locked pages and tuples per relation."
 msgstr "设置每个关系的断言锁定页和元组的最大数目."
 
-#: utils/misc/guc.c:2376
+#: utils/misc/guc.c:2492
 msgid "If more than this total of pages and tuples in the same relation are locked by a connection, those locks are replaced by a relation-level lock."
 msgstr "如果一个连接锁定了同一关系中超过此总数的页和元组,则这些锁将替换为关系级别锁."
 
-#: utils/misc/guc.c:2386
+#: utils/misc/guc.c:2502
 msgid "Sets the maximum number of predicate-locked tuples per page."
 msgstr "设置每页断言锁定元组的最大数目."
 
-#: utils/misc/guc.c:2387
+#: utils/misc/guc.c:2503
 msgid "If more than this number of tuples on the same page are locked by a connection, those locks are replaced by a page-level lock."
 msgstr "如果一个连接锁定了同一页上超过此数目的元组,则这些锁将被页级锁替换."
 
-#: utils/misc/guc.c:2397
+#: utils/misc/guc.c:2513
 msgid "Sets the maximum allowed time to complete client authentication."
 msgstr "设置完成客户端认证的需要等待的最长时间"
 
-#: utils/misc/guc.c:2409
+#: utils/misc/guc.c:2525
 msgid "Waits N seconds on connection startup before authentication."
 msgstr "在认证前在连接启动上需要等待N秒"
 
-#: utils/misc/guc.c:2420
+#: utils/misc/guc.c:2536
 msgid "Sets the number of WAL files held for standby servers."
 msgstr "设置用于备用服务器而持有WAL文件的数量."
 
-#: utils/misc/guc.c:2430
+#: utils/misc/guc.c:2546
 msgid "Sets the minimum size to shrink the WAL to."
 msgstr "设置要把WAL收缩到的最小尺寸。"
 
-#: utils/misc/guc.c:2442
+#: utils/misc/guc.c:2558
 msgid "Sets the WAL size that triggers a checkpoint."
 msgstr "设置触发一次检查点的WAL尺寸。"
 
-#: utils/misc/guc.c:2454
+#: utils/misc/guc.c:2570
 msgid "Sets the maximum time between automatic WAL checkpoints."
 msgstr "设置两次自动WAL检查点事件之间需要等待的最大时间"
 
-#: utils/misc/guc.c:2465
+#: utils/misc/guc.c:2581
 msgid "Enables warnings if checkpoint segments are filled more frequently than this."
 msgstr "如果检查点段的填充频度超过了最大值,启用警告功能。"
 
-#: utils/misc/guc.c:2467
+#: utils/misc/guc.c:2583
 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 seconds. Zero turns off the warning."
 msgstr "如果检查点事件是由于填充检查点段比这个数量的秒数更加频繁所引起,那么会向服务器日志写一条消息. 如果把参数设置为0,那么可以关掉警告功能."
 
-#: utils/misc/guc.c:2479 utils/misc/guc.c:2636 utils/misc/guc.c:2664
+#: utils/misc/guc.c:2595 utils/misc/guc.c:2753 utils/misc/guc.c:2782
 msgid "Number of pages after which previously performed writes are flushed to disk."
 msgstr "页面数,在此之后以前执行的写操作会被刷写到磁盘。"
 
-#: utils/misc/guc.c:2490
+#: utils/misc/guc.c:2606
 msgid "Sets the number of disk-page buffers in shared memory for WAL."
 msgstr "为 WAL 设置共享内存中磁盘页缓冲区的个数."
 
-#: utils/misc/guc.c:2501
+#: utils/misc/guc.c:2617
 msgid "Time between WAL flushes performed in the WAL writer."
 msgstr "WAL 写入器中执行 WAL 刷写之间的时间。"
 
-#: utils/misc/guc.c:2512
+#: utils/misc/guc.c:2628
 msgid "Amount of WAL written out by WAL writer that triggers a flush."
 msgstr "触发一次刷写的 WAL 写入器写出的 WAL 数量。"
 
-#: utils/misc/guc.c:2524
+#: utils/misc/guc.c:2639
 msgid "Sets the maximum number of simultaneously running WAL sender processes."
 msgstr "设置同时运行的WAL发送进程最大数量"
 
-#: utils/misc/guc.c:2535
+#: utils/misc/guc.c:2650
 msgid "Sets the maximum number of simultaneously defined replication slots."
 msgstr "设置同步的已定义复制槽的最大数."
 
-#: utils/misc/guc.c:2545
+#: utils/misc/guc.c:2660
 msgid "Sets the maximum time to wait for WAL replication."
 msgstr "设置最大时间,等待WAL复制."
 
-#: utils/misc/guc.c:2556
+#: utils/misc/guc.c:2671
 msgid "Sets the delay in microseconds between transaction commit and flushing WAL to disk."
 msgstr "设置事物提交和刷新 WAL 到磁盘间的延迟时间, 单位微秒."
 
-#: utils/misc/guc.c:2568
+#: utils/misc/guc.c:2683
 msgid "Sets the minimum concurrent open transactions before performing commit_delay."
 msgstr "在执行commit_delay前,设置最少的可同步打开事务的数量."
 
-#: utils/misc/guc.c:2579
+#: utils/misc/guc.c:2694
 msgid "Sets the number of digits displayed for floating-point values."
 msgstr "设置浮点数显示的位数."
 
-#: utils/misc/guc.c:2580
-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 appropriate)."
+#: utils/misc/guc.c:2695
+#, fuzzy
+#| 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 appropriate)."
+msgid "This affects real, double precision, and geometric data types. A zero or negative parameter value is added to the standard number of digits (FLT_DIG or DBL_DIG as appropriate). Any value greater than zero selects precise output mode."
 msgstr "这将影响实数,双精度类型和几何数据类型.参数被加到位数的标准数量(视情况而定,可能是FLT_DIG或DBL_DIG)"
 
-#: utils/misc/guc.c:2591
+#: utils/misc/guc.c:2707
 msgid "Sets the minimum execution time above which statements will be logged."
 msgstr "设置最小执行时间,执行时间大于等于这个值的语句都将被记录."
 
-#: utils/misc/guc.c:2593
-msgid "Zero prints all queries. -1 turns this feature off."
+#: utils/misc/guc.c:2709
+#, fuzzy
+#| msgid "Zero prints all queries. -1 turns this feature off."
+msgid "Zero prints all queries, subject to log_statement_sample_rate. -1 turns this feature off."
 msgstr "如果值设置为0,那么打印出所有查询. 如果设置为-1,那么将把这个功能特性关闭"
 
-#: utils/misc/guc.c:2603
+#: utils/misc/guc.c:2720
 msgid "Sets the minimum execution time above which autovacuum actions will be logged."
 msgstr "设置最小执行时间,如果autovacuum操作时间大于等于这个值,那么将记录这些操作."
 
-#: utils/misc/guc.c:2605
+#: utils/misc/guc.c:2722
 msgid "Zero prints all actions. -1 turns autovacuum logging off."
 msgstr "0表示打印出所有的操作.-1表示关闭对autovacuum的日志记录功能"
 
-#: utils/misc/guc.c:2615
+#: utils/misc/guc.c:2732
 msgid "Background writer sleep time between rounds."
 msgstr "后台写入进程 (Background writer) 两次运行之间的休眠时间."
 
-#: utils/misc/guc.c:2626
+#: utils/misc/guc.c:2743
 msgid "Background writer maximum number of LRU pages to flush per round."
 msgstr "后台写入进程 (Background writer) 每次可刷新LRU页的最大数量"
 
-#: utils/misc/guc.c:2649
+#: utils/misc/guc.c:2766
 msgid "Number of simultaneous requests that can be handled efficiently by the disk subsystem."
 msgstr "可以由磁盘子系统有效处理的并发请求数量."
 
-#: utils/misc/guc.c:2650
+#: utils/misc/guc.c:2767
 msgid "For RAID arrays, this should be approximately the number of drive spindles in the array."
 msgstr "对于RAID磁盘阵列来说,同步可处理的请求与磁盘阵列中磁盘数量应该相近."
 
-#: utils/misc/guc.c:2677
+#: utils/misc/guc.c:2795
 msgid "Maximum number of concurrent worker processes."
 msgstr "最大并发工作进程数."
 
-#: utils/misc/guc.c:2689
+#: utils/misc/guc.c:2807
 msgid "Maximum number of logical replication worker processes."
 msgstr "逻辑复制工作进程的最大数目."
 
-#: utils/misc/guc.c:2701
+#: utils/misc/guc.c:2819
 msgid "Maximum number of table synchronization workers per subscription."
 msgstr "每个订阅的表同步工作线程的最大数目."
 
-#: utils/misc/guc.c:2711
+#: utils/misc/guc.c:2829
 msgid "Automatic log file rotation will occur after N minutes."
 msgstr "在N分钟后将会产生自动日志文件切换."
 
-#: utils/misc/guc.c:2722
+#: utils/misc/guc.c:2840
 msgid "Automatic log file rotation will occur after N kilobytes."
 msgstr "当写入了N千字节会发生自动日志文件切换"
 
-#: utils/misc/guc.c:2733
+#: utils/misc/guc.c:2851
 msgid "Shows the maximum number of function arguments."
 msgstr "显示函数参数的最大个数."
 
-#: utils/misc/guc.c:2744
+#: utils/misc/guc.c:2862
 msgid "Shows the maximum number of index keys."
 msgstr "显示索引键值的最大个数."
 
-#: utils/misc/guc.c:2755
+#: utils/misc/guc.c:2873
 msgid "Shows the maximum identifier length."
 msgstr "显示标识符最大长度"
 
-#: utils/misc/guc.c:2766
+#: utils/misc/guc.c:2884
 msgid "Shows the size of a disk block."
 msgstr "显示一个磁盘块的大小"
 
-#: utils/misc/guc.c:2777
+#: utils/misc/guc.c:2895
 msgid "Shows the number of pages per disk file."
 msgstr "显示在每个磁盘文件中页的数量."
 
-#: utils/misc/guc.c:2788
+#: utils/misc/guc.c:2906
 msgid "Shows the block size in the write ahead log."
 msgstr "显示预写日志中的块大小."
 
-#: utils/misc/guc.c:2799
+#: utils/misc/guc.c:2917
 msgid "Sets the time to wait before retrying to retrieve WAL after a failed attempt."
 msgstr "设置在尝试失败后重试检索WAL之前要等待的时间。"
 
-#: utils/misc/guc.c:2811
+#: utils/misc/guc.c:2929
 msgid "Shows the size of write ahead log segments."
 msgstr "显示预写日志段的大小."
 
-#: utils/misc/guc.c:2824
+#: utils/misc/guc.c:2942
 msgid "Time to sleep between autovacuum runs."
 msgstr "两次运行autovacuum进程的休眠时间"
 
-#: utils/misc/guc.c:2834
+#: utils/misc/guc.c:2952
 msgid "Minimum number of tuple updates or deletes prior to vacuum."
 msgstr "设置激活清理操作所需要最小数量的更新或删除元组."
 
-#: utils/misc/guc.c:2843
+#: utils/misc/guc.c:2961
 msgid "Minimum number of tuple inserts, updates, or deletes prior to analyze."
 msgstr "分析前可插入,更新或删除元组的最小数量"
 
-#: utils/misc/guc.c:2853
+#: utils/misc/guc.c:2971
 msgid "Age at which to autovacuum a table to prevent transaction ID wraparound."
 msgstr "这是应该自动清理一张表以避免事务ID重叠的时间段."
 
-#: utils/misc/guc.c:2864
+#: utils/misc/guc.c:2982
 msgid "Multixact age at which to autovacuum a table to prevent multixact wraparound."
 msgstr "自动清理一张表以避免事务ID重叠的时间范围."
 
-#: utils/misc/guc.c:2874
+#: utils/misc/guc.c:2992
 msgid "Sets the maximum number of simultaneously running autovacuum worker processes."
 msgstr "设置最大可同时运行的autovacuum工作进程数量"
 
-#: utils/misc/guc.c:2884
+#: utils/misc/guc.c:3002
 msgid "Sets the maximum number of parallel processes per maintenance operation."
 msgstr "设置每个维护操作的最大并行进程数."
 
-#: utils/misc/guc.c:2894
+#: utils/misc/guc.c:3012
 msgid "Sets the maximum number of parallel processes per executor node."
 msgstr "设定一个执行器节点上的最大并行进程数。"
 
-#: utils/misc/guc.c:2904
+#: utils/misc/guc.c:3023
 msgid "Sets the maximum number of parallel workers that can be active at one time."
 msgstr "设置一次可以激活的最大并行工作数."
 
-#: utils/misc/guc.c:2914
+#: utils/misc/guc.c:3034
 msgid "Sets the maximum memory to be used by each autovacuum worker process."
 msgstr "设置每个自动清理(autovacuum)工作进程要使用的最大内存数."
 
-#: utils/misc/guc.c:2925
+#: utils/misc/guc.c:3045
 msgid "Time before a snapshot is too old to read pages changed after the snapshot was taken."
 msgstr "快照在被取得多久以后,会变得对于读取改变的页面太旧。"
 
-#: utils/misc/guc.c:2926
+#: utils/misc/guc.c:3046
 msgid "A value of -1 disables this feature."
 msgstr "值为 -1 将禁用这个特性."
 
-#: utils/misc/guc.c:2936
+#: utils/misc/guc.c:3056
 msgid "Time between issuing TCP keepalives."
 msgstr "启动TCP存活定时器的间隔"
 
-#: utils/misc/guc.c:2937 utils/misc/guc.c:2948
+#: utils/misc/guc.c:3057 utils/misc/guc.c:3068 utils/misc/guc.c:3192
 msgid "A value of 0 uses the system default."
 msgstr "值为0的时候表示系统缺省值"
 
-#: utils/misc/guc.c:2947
+#: utils/misc/guc.c:3067
 msgid "Time between TCP keepalive retransmits."
 msgstr "在两次TCP存活启动器重新传送之间需要花费的时间"
 
-#: utils/misc/guc.c:2958
+#: utils/misc/guc.c:3078
 msgid "SSL renegotiation is no longer supported; this can only be 0."
 msgstr "SSL 重协商已经不再被支持,这里只能是 0。"
 
-#: utils/misc/guc.c:2969
+#: utils/misc/guc.c:3089
 msgid "Maximum number of TCP keepalive retransmits."
 msgstr "设置每一个事物锁的最大个数."
 
-#: utils/misc/guc.c:2970
+#: utils/misc/guc.c:3090
 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 default."
 msgstr "用于控制连续存活器再次传输数量,这些存活器重在连接被认为断开前会丢失.值0用于表示系统缺省."
 
-#: utils/misc/guc.c:2981
+#: utils/misc/guc.c:3101
 msgid "Sets the maximum allowed result for exact search by GIN."
 msgstr "设置由GIN进行的精确搜索所允许的最大允许结果."
 
-#: utils/misc/guc.c:2992
+#: utils/misc/guc.c:3112
 msgid "Sets the planner's assumption about the total size of the data caches."
 msgstr "设置查询计划器对数据缓存总大小的假设."
 
-#: utils/misc/guc.c:2993
+#: utils/misc/guc.c:3113
 msgid "That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. This is measured in disk pages, which are normally 8 kB each."
 msgstr "PostgreSQL数据文件使用的缓存(内核缓存和共享缓冲区)的总大小,这是以磁盘页为单位测量的,通常每个磁盘页为8KB."
 
-#: utils/misc/guc.c:3004
+#: utils/misc/guc.c:3124
 msgid "Sets the minimum amount of table data for a parallel scan."
 msgstr "为并行扫描设置表数据的最小量."
 
-#: utils/misc/guc.c:3005
+#: utils/misc/guc.c:3125
 msgid "If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered."
 msgstr "如果查询计划器估计它将读取的表页太小,无法达到此限制,则不会考虑并行扫描."
 
-#: utils/misc/guc.c:3015
+#: utils/misc/guc.c:3135
 msgid "Sets the minimum amount of index data for a parallel scan."
 msgstr "设置并行扫描的最小索引数据量."
 
-#: utils/misc/guc.c:3016
+#: utils/misc/guc.c:3136
 msgid "If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered."
 msgstr "如果查询计划器估计它将读取的索引页太小,无法达到此限制,则不会考虑并行扫描."
 
-#: utils/misc/guc.c:3027
+#: utils/misc/guc.c:3147
 msgid "Shows the server version as an integer."
 msgstr "以整数的形式显示服务器版本信息."
 
-#: utils/misc/guc.c:3038
+#: utils/misc/guc.c:3158
 msgid "Log the use of temporary files larger than this number of kilobytes."
 msgstr "记录对超过这个数量(以千字节为单位)的临时文件的使用."
 
-#: utils/misc/guc.c:3039
+#: utils/misc/guc.c:3159
 msgid "Zero logs all files. The default is -1 (turning this feature off)."
 msgstr "如果设置为0,打印所有查询. 默认值为 -1 (表示关闭此功能)."
 
-#: utils/misc/guc.c:3049
+#: utils/misc/guc.c:3169
 msgid "Sets the size reserved for pg_stat_activity.query, in bytes."
 msgstr "设置为pg_stat_activity.query所保留的空间大小,以字节为单位."
 
-#: utils/misc/guc.c:3060
+#: utils/misc/guc.c:3180
 msgid "Sets the maximum size of the pending list for GIN index."
 msgstr "为GIN索引设置待处理列表的最大尺寸。"
 
-#: utils/misc/guc.c:3080
+#: utils/misc/guc.c:3191
+msgid "TCP user timeout."
+msgstr ""
+
+#: utils/misc/guc.c:3211
 msgid "Sets the planner's estimate of the cost of a sequentially fetched disk page."
 msgstr "设置计划器对顺序获取磁盘页的开销估算"
 
-#: utils/misc/guc.c:3090
+#: utils/misc/guc.c:3222
 msgid "Sets the planner's estimate of the cost of a nonsequentially fetched disk page."
 msgstr "设置计划器对非顺序获取磁盘页的开销估算."
 
-#: utils/misc/guc.c:3100
+#: utils/misc/guc.c:3233
 msgid "Sets the planner's estimate of the cost of processing each tuple (row)."
 msgstr "设置计划器对处理每个元组(也就是记录)的开销估算"
 
-#: utils/misc/guc.c:3110
+#: utils/misc/guc.c:3244
 msgid "Sets the planner's estimate of the cost of processing each index entry during an index scan."
 msgstr "设置计划器在索引扫描期间对处理每个索引项的开销估算."
 
-#: utils/misc/guc.c:3120
+#: utils/misc/guc.c:3255
 msgid "Sets the planner's estimate of the cost of processing each operator or function call."
 msgstr "设置计划器对处理每个操作符和函数调用的开销估算."
 
-#: utils/misc/guc.c:3130
+#: utils/misc/guc.c:3266
 msgid "Sets the planner's estimate of the cost of passing each tuple (row) from worker to master backend."
 msgstr "设定规划器对于从工作者向主控后端传递每一个元组(行)的代价估计。"
 
-#: utils/misc/guc.c:3140
+#: utils/misc/guc.c:3277
 msgid "Sets the planner's estimate of the cost of starting up worker processes for parallel query."
 msgstr "设定规划器对于启动并行查询的工作者进程的代价估计。"
 
-#: utils/misc/guc.c:3151
+#: utils/misc/guc.c:3289
 msgid "Perform JIT compilation if query is more expensive."
 msgstr "如果查询更昂贵,则执行JIT编译."
 
-#: utils/misc/guc.c:3152
+#: utils/misc/guc.c:3290
 msgid "-1 disables JIT compilation."
 msgstr "使用-1禁用JIT编译."
 
-#: utils/misc/guc.c:3161
+#: utils/misc/guc.c:3300
 msgid "Optimize JITed functions if query is more expensive."
 msgstr "如果查询成本更高,则优化JITed函数"
 
-#: utils/misc/guc.c:3162
+#: utils/misc/guc.c:3301
 msgid "-1 disables optimization."
 msgstr "使用-1禁用优化."
 
-#: utils/misc/guc.c:3171
+#: utils/misc/guc.c:3311
 msgid "Perform JIT inlining if query is more expensive."
 msgstr "如果查询更昂贵,则执行JIT内联."
 
-#: utils/misc/guc.c:3172
+#: utils/misc/guc.c:3312
 msgid "-1 disables inlining."
 msgstr "使用-1禁用内联."
 
-#: utils/misc/guc.c:3181
+#: utils/misc/guc.c:3322
 msgid "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved."
 msgstr "设置计划器对于通过游标取回记录部分的估算."
 
-#: utils/misc/guc.c:3192
+#: utils/misc/guc.c:3334
 msgid "GEQO: selective pressure within the population."
 msgstr "GEQO: 在总体中的选择性压力"
 
-#: utils/misc/guc.c:3202
+#: utils/misc/guc.c:3345
 msgid "GEQO: seed for random path selection."
 msgstr "GEQO:用于随机路径选择的种子."
 
-#: utils/misc/guc.c:3212
+#: utils/misc/guc.c:3356
 msgid "Multiple of the average buffer usage to free per round."
 msgstr "每一次释放平均缓冲区使用量的倍数大小"
 
-#: utils/misc/guc.c:3222
+#: utils/misc/guc.c:3366
 msgid "Sets the seed for random-number generation."
 msgstr "设置生成随机数的种子."
 
-#: utils/misc/guc.c:3233
+#: utils/misc/guc.c:3377
+msgid "Vacuum cost delay in milliseconds."
+msgstr "Vacuum开销延迟是以毫秒为单位"
+
+#: utils/misc/guc.c:3388
+msgid "Vacuum cost delay in milliseconds, for autovacuum."
+msgstr "对于autovacuum来说,Vacuum开销延迟是以毫秒为单位"
+
+#: utils/misc/guc.c:3399
 msgid "Number of tuple updates or deletes prior to vacuum as a fraction of reltuples."
 msgstr "在清理前需要插入,删除或更新元组的数量,这个数量是作为表大小的百分比"
 
-#: utils/misc/guc.c:3242
+#: utils/misc/guc.c:3408
 msgid "Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."
 msgstr "在分析前插入,更新或删除元组的数量,这个数量以表大小的百分比的形式出现"
 
-#: utils/misc/guc.c:3252
+#: utils/misc/guc.c:3418
 msgid "Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval."
 msgstr "在检查点事件期间花费在将缓冲区中脏页刷新到磁盘的时间, 这个时间作为检查点间隔的百分比。"
 
-#: utils/misc/guc.c:3262
+#: utils/misc/guc.c:3428
 msgid "Number of tuple inserts prior to index cleanup as a fraction of reltuples."
 msgstr "在索引清理之前作为元组的一部分插入的元组数."
 
-#: utils/misc/guc.c:3281
+#: utils/misc/guc.c:3438
+msgid "Fraction of statements exceeding log_min_duration_statement to be logged."
+msgstr ""
+
+#: utils/misc/guc.c:3439
+msgid "If you only want a sample, use a value between 0.0 (never log) and 1.0 (always log)."
+msgstr ""
+
+#: utils/misc/guc.c:3449
+#, fuzzy
+#| msgid "Sets the transaction isolation level of each new transaction."
+msgid "Set the fraction of transactions to log for new transactions."
+msgstr "设置每一个新事物的隔离 (isolation) 级别."
+
+#: utils/misc/guc.c:3450
+msgid "Logs all statements from a fraction of transactions. Use a value between 0.0 (never log) and 1.0 (log all statements for all transactions)."
+msgstr ""
+
+#: utils/misc/guc.c:3470
 msgid "Sets the shell command that will be called to archive a WAL file."
 msgstr "设置用于对WAL文件进行归档的shell命令"
 
-#: utils/misc/guc.c:3291
+#: utils/misc/guc.c:3480
+#, fuzzy
+#| msgid "Sets the shell command that will be called to archive a WAL file."
+msgid "Sets the shell command that will retrieve an archived WAL file."
+msgstr "设置用于对WAL文件进行归档的shell命令"
+
+#: utils/misc/guc.c:3490
+#, fuzzy
+#| msgid "Sets the shell command that will be called to archive a WAL file."
+msgid "Sets the shell command that will be executed at every restart point."
+msgstr "设置用于对WAL文件进行归档的shell命令"
+
+#: utils/misc/guc.c:3500
+#, fuzzy
+#| msgid "Sets the shell command that will be called to archive a WAL file."
+msgid "Sets the shell command that will be executed once at the end of recovery."
+msgstr "设置用于对WAL文件进行归档的shell命令"
+
+#: utils/misc/guc.c:3510
+msgid "Specifies the timeline to recovery into."
+msgstr ""
+
+#: utils/misc/guc.c:3520
+msgid "Set to 'immediate' to end recovery as soon as a consistent state is reached."
+msgstr ""
+
+#: utils/misc/guc.c:3529
+msgid "Sets the transaction ID up to which recovery will proceed."
+msgstr ""
+
+#: utils/misc/guc.c:3538
+msgid "Sets the time stamp up to which recovery will proceed."
+msgstr ""
+
+#: utils/misc/guc.c:3547
+msgid "Sets the named restore point up to which recovery will proceed."
+msgstr ""
+
+#: utils/misc/guc.c:3556
+msgid "Sets the LSN of the write-ahead log location up to which recovery will proceed."
+msgstr ""
+
+#: utils/misc/guc.c:3566
+msgid "Specifies a file name whose presence ends recovery in the standby."
+msgstr ""
+
+#: utils/misc/guc.c:3576
+msgid "Sets the connection string to be used to connect to the sending server."
+msgstr ""
+
+#: utils/misc/guc.c:3587
+#, fuzzy
+#| msgid "Sets the number of connection slots reserved for superusers."
+msgid "Sets the name of the replication slot to use on the sending server."
+msgstr "设置为超级用户保留的联接数."
+
+#: utils/misc/guc.c:3597
 msgid "Sets the client's character set encoding."
 msgstr "设置客户端编码"
 
-#: utils/misc/guc.c:3302
+#: utils/misc/guc.c:3608
 msgid "Controls information prefixed to each log line."
 msgstr "将控制信息作为每条日志文本的前缀"
 
-#: utils/misc/guc.c:3303
+#: utils/misc/guc.c:3609
 msgid "If blank, no prefix is used."
 msgstr "如果是空的,那么不使用前缀"
 
-#: utils/misc/guc.c:3312
+#: utils/misc/guc.c:3618
 msgid "Sets the time zone to use in log messages."
 msgstr "设置在日志消息中使用的时间区域"
 
-#: utils/misc/guc.c:3322
+#: utils/misc/guc.c:3628
 msgid "Sets the display format for date and time values."
 msgstr "设置日期和时间值的显示格式."
 
-#: utils/misc/guc.c:3323
+#: utils/misc/guc.c:3629
 msgid "Also controls interpretation of ambiguous date inputs."
 msgstr "控制对模糊日期输入的解释."
 
-#: utils/misc/guc.c:3334
+#: utils/misc/guc.c:3640
+#, fuzzy
+#| msgid "Sets the default tablespace to create tables and indexes in."
+msgid "Sets the default table access method for new tables."
+msgstr "设置用于创建表和索引的缺省表空间."
+
+#: utils/misc/guc.c:3651
 msgid "Sets the default tablespace to create tables and indexes in."
 msgstr "设置用于创建表和索引的缺省表空间."
 
-#: utils/misc/guc.c:3335
+#: utils/misc/guc.c:3652
 msgid "An empty string selects the database's default tablespace."
 msgstr "使用空字符串表示数据库的缺省表空间."
 
-#: utils/misc/guc.c:3345
+#: utils/misc/guc.c:3662
 msgid "Sets the tablespace(s) to use for temporary tables and sort files."
 msgstr "将表空间设置为用于存放临时表和排序文件"
 
-#: utils/misc/guc.c:3356
+#: utils/misc/guc.c:3673
 msgid "Sets the path for dynamically loadable modules."
 msgstr "设置动态加载摸组的路径."
 
-#: utils/misc/guc.c:3357
+#: utils/misc/guc.c:3674
 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 slash), the system will search this path for the specified file."
 msgstr "如果一个动态加载模块需要打开并且指定名字没有路径 (例如, 名字中没包含斜杠), 系统将在此路径中查找指定的文件."
 
-#: utils/misc/guc.c:3370
+#: utils/misc/guc.c:3687
 msgid "Sets the location of the Kerberos server key file."
 msgstr "设置 Kerberos 服务器密钥文件位置."
 
-#: utils/misc/guc.c:3381
+#: utils/misc/guc.c:3698
 msgid "Sets the Bonjour service name."
 msgstr "设置Bonjour服务名称."
 
-#: utils/misc/guc.c:3393
+#: utils/misc/guc.c:3710
 msgid "Shows the collation order locale."
 msgstr "显示排序规则顺序的语言环境"
 
-#: utils/misc/guc.c:3404
+#: utils/misc/guc.c:3721
 msgid "Shows the character classification and case conversion locale."
 msgstr "显示字符分类和按条件转换的语言环境."
 
-#: utils/misc/guc.c:3415
+#: utils/misc/guc.c:3732
 msgid "Sets the language in which messages are displayed."
 msgstr "设置信息显示语言."
 
-#: utils/misc/guc.c:3425
+#: utils/misc/guc.c:3742
 msgid "Sets the locale for formatting monetary amounts."
 msgstr "为货币数量格式设置 locale."
 
-#: utils/misc/guc.c:3435
+#: utils/misc/guc.c:3752
 msgid "Sets the locale for formatting numbers."
 msgstr "为数字格式设置 locale"
 
-#: utils/misc/guc.c:3445
+#: utils/misc/guc.c:3762
 msgid "Sets the locale for formatting date and time values."
 msgstr "为日期和时间值格式设置 locale"
 
-#: utils/misc/guc.c:3455
+#: utils/misc/guc.c:3772
 msgid "Lists shared libraries to preload into each backend."
 msgstr "列出预先加载到每个后台进程的共享库."
 
-#: utils/misc/guc.c:3466
+#: utils/misc/guc.c:3783
 msgid "Lists shared libraries to preload into server."
 msgstr "列出预装入服务器的共享库."
 
-#: utils/misc/guc.c:3477
+#: utils/misc/guc.c:3794
 msgid "Lists unprivileged shared libraries to preload into each backend."
 msgstr "列出预先加载到每个后台进程的非优先的共享库."
 
-#: utils/misc/guc.c:3488
+#: utils/misc/guc.c:3805
 msgid "Sets the schema search order for names that are not schema-qualified."
 msgstr "为不是模式限定的名称设置模式搜索顺序"
 
-#: utils/misc/guc.c:3500
+#: utils/misc/guc.c:3817
 msgid "Sets the server (database) character set encoding."
 msgstr "设置服务器 (数据库) 字符编码."
 
-#: utils/misc/guc.c:3512
+#: utils/misc/guc.c:3829
 msgid "Shows the server version."
 msgstr "显示服务器版本信息."
 
-#: utils/misc/guc.c:3524
+#: utils/misc/guc.c:3841
 msgid "Sets the current role."
 msgstr "设置当前的角色"
 
-#: utils/misc/guc.c:3536
+#: utils/misc/guc.c:3853
 msgid "Sets the session user name."
 msgstr "设置会话用户名称."
 
-#: utils/misc/guc.c:3547
+#: utils/misc/guc.c:3864
 msgid "Sets the destination for server log output."
 msgstr "设置服务器日志输出目标."
 
-#: utils/misc/guc.c:3548
+#: utils/misc/guc.c:3865
 msgid "Valid values are combinations of \"stderr\", \"syslog\", \"csvlog\", and \"eventlog\", depending on the platform."
 msgstr "有效值为 \"stderr\", \"syslog\", \"csvlog\", and \"eventlog\" 的组合, 这取决于平台的种类."
 
-#: utils/misc/guc.c:3559
+#: utils/misc/guc.c:3876
 msgid "Sets the destination directory for log files."
 msgstr "设置日志文件目的目录."
 
-#: utils/misc/guc.c:3560
+#: utils/misc/guc.c:3877
 msgid "Can be specified as relative to the data directory or as absolute path."
 msgstr "可以指定为data目录的相对目录或绝对目录."
 
-#: utils/misc/guc.c:3570
+#: utils/misc/guc.c:3887
 msgid "Sets the file name pattern for log files."
 msgstr "设置日志文件的文件名字模式."
 
-#: utils/misc/guc.c:3581
+#: utils/misc/guc.c:3898
 msgid "Sets the program name used to identify PostgreSQL messages in syslog."
 msgstr "设置在系统日志 (syslog) 中确认 PostgreSQL 信息的程序名."
 
-#: utils/misc/guc.c:3592
+#: utils/misc/guc.c:3909
 msgid "Sets the application name used to identify PostgreSQL messages in the event log."
 msgstr "设置在事件日志 (syslog) 中用于标识 PostgreSQL 消息的程序名."
 
-#: utils/misc/guc.c:3603
+#: utils/misc/guc.c:3920
 msgid "Sets the time zone for displaying and interpreting time stamps."
 msgstr "设置显示和解释时间戳的时区."
 
-#: utils/misc/guc.c:3613
+#: utils/misc/guc.c:3930
 msgid "Selects a file of time zone abbreviations."
 msgstr "选择时间区域缩写的文件"
 
-#: utils/misc/guc.c:3623
-msgid "Sets the current transaction's isolation level."
-msgstr "设置当前事物的隔离级别."
-
-#: utils/misc/guc.c:3634
+#: utils/misc/guc.c:3940
 msgid "Sets the owning group of the Unix-domain socket."
 msgstr "设置 Unix-domain 套接字的属组."
 
-#: utils/misc/guc.c:3635
+#: utils/misc/guc.c:3941
 msgid "The owning user of the socket is always the user that starts the server."
 msgstr "套接字的属主用户也是起动服务的用户."
 
-#: utils/misc/guc.c:3645
+#: utils/misc/guc.c:3951
 msgid "Sets the directories where Unix-domain sockets will be created."
 msgstr "设置用于创建Unix-domain套接字的目录."
 
-#: utils/misc/guc.c:3660
+#: utils/misc/guc.c:3966
 msgid "Sets the host name or IP address(es) to listen to."
 msgstr "设置监听的主机名或 IP 地址."
 
-#: utils/misc/guc.c:3675
+#: utils/misc/guc.c:3981
 msgid "Sets the server's data directory."
 msgstr "设置服务器的数据目录"
 
-#: utils/misc/guc.c:3686
+#: utils/misc/guc.c:3992
 msgid "Sets the server's main configuration file."
 msgstr "设置服务器的主配置文件"
 
-#: utils/misc/guc.c:3697
+#: utils/misc/guc.c:4003
 msgid "Sets the server's \"hba\" configuration file."
 msgstr "设置服务器的 \"hba\" 配置文件"
 
-#: utils/misc/guc.c:3708
+#: utils/misc/guc.c:4014
 msgid "Sets the server's \"ident\" configuration file."
 msgstr "设置服务器的 \"ident\" 配置文件"
 
-#: utils/misc/guc.c:3719
+#: utils/misc/guc.c:4025
 msgid "Writes the postmaster PID to the specified file."
 msgstr "把 postmaster PID 写到指定文件."
 
-#: utils/misc/guc.c:3730
+#: utils/misc/guc.c:4036
+msgid "Name of the SSL library."
+msgstr ""
+
+#: utils/misc/guc.c:4051
 msgid "Location of the SSL server certificate file."
 msgstr "SSL服务器证书文件的位置"
 
-#: utils/misc/guc.c:3740
+#: utils/misc/guc.c:4061
 msgid "Location of the SSL server private key file."
 msgstr "SSL服务器私钥文件的位置."
 
-#: utils/misc/guc.c:3750
+#: utils/misc/guc.c:4071
 msgid "Location of the SSL certificate authority file."
 msgstr "SSL证书授权文件的位置."
 
-#: utils/misc/guc.c:3760
+#: utils/misc/guc.c:4081
 msgid "Location of the SSL certificate revocation list file."
 msgstr "SSL证书撤销列表文件的位置."
 
-#: utils/misc/guc.c:3770
+#: utils/misc/guc.c:4091
 msgid "Writes temporary statistics files to the specified directory."
 msgstr "将临时统计信息文件写到指定的目录"
 
-#: utils/misc/guc.c:3781
+#: utils/misc/guc.c:4102
 msgid "Number of synchronous standbys and list of names of potential synchronous ones."
 msgstr "同步后备的数量以及潜在的同步后备的名称列表。"
 
 # describe.c:97
-#: utils/misc/guc.c:3792
+#: utils/misc/guc.c:4113
 msgid "Sets default text search configuration."
 msgstr "设置缺省文本搜索配置"
 
-#: utils/misc/guc.c:3802
+#: utils/misc/guc.c:4123
 msgid "Sets the list of allowed SSL ciphers."
 msgstr "设置日志信息的冗长."
 
-#: utils/misc/guc.c:3817
+#: utils/misc/guc.c:4138
 msgid "Sets the curve to use for ECDH."
 msgstr "设置该曲线,用于ECDH."
 
-#: utils/misc/guc.c:3832
+#: utils/misc/guc.c:4153
 msgid "Location of the SSL DH parameters file."
 msgstr "SSL DH参数文件的位置."
 
-#: utils/misc/guc.c:3843
+#: utils/misc/guc.c:4164
 msgid "Command to obtain passphrases for SSL."
 msgstr "获取SSL密码的命令"
 
-#: utils/misc/guc.c:3853
+#: utils/misc/guc.c:4174
 msgid "Sets the application name to be reported in statistics and logs."
 msgstr "设置在统计和日志中出现的应用程序名称."
 
-#: utils/misc/guc.c:3864
+#: utils/misc/guc.c:4185
 msgid "Sets the name of the cluster, which is included in the process title."
 msgstr "设定集簇的名称,它会被包括在进程的标题中。"
 
-#: utils/misc/guc.c:3875
+#: utils/misc/guc.c:4196
 msgid "Sets the WAL resource managers for which WAL consistency checks are done."
 msgstr "设置对其进行WAL一致性检查的WAL资源管理器"
 
-#: utils/misc/guc.c:3876
+#: utils/misc/guc.c:4197
 msgid "Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay."
 msgstr "将记录所有数据块的整页图像,并对照WAL重放结果进行交叉检查."
 
-#: utils/misc/guc.c:3886
+#: utils/misc/guc.c:4207
 msgid "JIT provider to use."
 msgstr "要使用的JIT提供程序."
 
-#: utils/misc/guc.c:3906
+#: utils/misc/guc.c:4227
 msgid "Sets whether \"\\'\" is allowed in string literals."
 msgstr "在字符串常量中设置是否允许使用\"\\'\""
 
-#: utils/misc/guc.c:3916
+#: utils/misc/guc.c:4237
 msgid "Sets the output format for bytea."
 msgstr "设置bytea类型数据的输出格式"
 
-#: utils/misc/guc.c:3926
+#: utils/misc/guc.c:4247
 msgid "Sets the message levels that are sent to the client."
 msgstr "设置发送到客户端的信息级别."
 
-#: utils/misc/guc.c:3927 utils/misc/guc.c:3980 utils/misc/guc.c:3991
-#: utils/misc/guc.c:4057
+#: utils/misc/guc.c:4248 utils/misc/guc.c:4313 utils/misc/guc.c:4324
+#: utils/misc/guc.c:4400
 msgid "Each level includes all the levels that follow it. The later the level, the fewer messages are sent."
 msgstr "每一层都包含在这一层后面的层次, 对于越往后的层次,就会发送越少的消息."
 
-#: utils/misc/guc.c:3937
+#: utils/misc/guc.c:4258
 msgid "Enables the planner to use constraints to optimize queries."
 msgstr "使计划器可以使用约束来优化查询."
 
-#: utils/misc/guc.c:3938
+#: utils/misc/guc.c:4259
 msgid "Table scans will be skipped if their constraints guarantee that no rows match the query."
 msgstr "如果约束能够确保没有列符合查询条件,那么将跳过表扫描."
 
-#: utils/misc/guc.c:3948
+#: utils/misc/guc.c:4270
 msgid "Sets the transaction isolation level of each new transaction."
 msgstr "设置每一个新事物的隔离 (isolation) 级别."
 
-#: utils/misc/guc.c:3958
+#: utils/misc/guc.c:4280
+msgid "Sets the current transaction's isolation level."
+msgstr "设置当前事物的隔离级别."
+
+#: utils/misc/guc.c:4291
 msgid "Sets the display format for interval values."
 msgstr "设置时间间隔值的显示格式."
 
-#: utils/misc/guc.c:3969
+#: utils/misc/guc.c:4302
 msgid "Sets the verbosity of logged messages."
 msgstr "设置日志信息的冗长."
 
-#: utils/misc/guc.c:3979
+#: utils/misc/guc.c:4312
 msgid "Sets the message levels that are logged."
 msgstr "设置日志记录的信息级别."
 
-#: utils/misc/guc.c:3990
+#: utils/misc/guc.c:4323
 msgid "Causes all statements generating error at or above this level to be logged."
 msgstr "在此级别或以上级别, 所有语句产生的错误将被记录."
 
-#: utils/misc/guc.c:4001
+#: utils/misc/guc.c:4334
 msgid "Sets the type of statements logged."
 msgstr "设置记录语句的类型."
 
-#: utils/misc/guc.c:4011
+#: utils/misc/guc.c:4344
 msgid "Sets the syslog \"facility\" to be used when syslog enabled."
 msgstr "当启用系统日志 (syslog), 设置系统日志使用 \"facility\"."
 
-#: utils/misc/guc.c:4026
+#: utils/misc/guc.c:4359
 msgid "Sets the session's behavior for triggers and rewrite rules."
 msgstr "为触发器和重写规则设置会话的行为"
 
-#: utils/misc/guc.c:4036
+#: utils/misc/guc.c:4369
 msgid "Sets the current transaction's synchronization level."
 msgstr "设置当前事物的同步级别."
 
-#: utils/misc/guc.c:4046
+#: utils/misc/guc.c:4379
 msgid "Allows archiving of WAL files using archive_command."
 msgstr "允许使用archive_command参数对WAL文件进行归档."
 
-#: utils/misc/guc.c:4056
+#: utils/misc/guc.c:4389
+msgid "Sets the action to perform upon reaching the recovery target."
+msgstr ""
+
+#: utils/misc/guc.c:4399
 msgid "Enables logging of recovery-related debugging information."
 msgstr "启用日志功能,对与恢复操作相关的调试信息进行记录."
 
-#: utils/misc/guc.c:4072
+#: utils/misc/guc.c:4415
 msgid "Collects function-level statistics on database activity."
 msgstr "在数据库运行的事务中收集函数级别统计信息."
 
-#: utils/misc/guc.c:4082
+#: utils/misc/guc.c:4425
 msgid "Set the level of information written to the WAL."
 msgstr "设置写入WAL文件的信息的内容详细级别"
 
-#: utils/misc/guc.c:4092
+#: utils/misc/guc.c:4435
 msgid "Selects the dynamic shared memory implementation used."
 msgstr "选择过去的动态共享内存实现."
 
-#: utils/misc/guc.c:4102
+#: utils/misc/guc.c:4445
+#, fuzzy
+#| msgid "Selects the dynamic shared memory implementation used."
+msgid "Selects the shared memory implementation used for the main shared memory region."
+msgstr "选择过去的动态共享内存实现."
+
+#: utils/misc/guc.c:4455
 msgid "Selects the method used for forcing WAL updates to disk."
 msgstr "选择用于强制将WAL缓冲区的内容更新到磁盘的方法."
 
-#: utils/misc/guc.c:4112
+#: utils/misc/guc.c:4465
 msgid "Sets how binary values are to be encoded in XML."
 msgstr "设置在XML中如何对二进制的值进行编码."
 
-#: utils/misc/guc.c:4122
+#: utils/misc/guc.c:4475
 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:4133
+#: utils/misc/guc.c:4486
 msgid "Use of huge pages on Linux or Windows."
 msgstr "在Linux或Windows上使用大页面."
 
-#: utils/misc/guc.c:4143
+#: utils/misc/guc.c:4496
 msgid "Forces use of parallel query facilities."
 msgstr "强制使用并行查询功能。"
 
-#: utils/misc/guc.c:4144
+#: utils/misc/guc.c:4497
 msgid "If possible, run query using a parallel worker and with parallel restrictions."
 msgstr "如果可能,使用一个并行工作者并且加上并行限制来运行查询。"
 
-#: utils/misc/guc.c:4153
+#: utils/misc/guc.c:4507
 msgid "Encrypt passwords."
 msgstr "加密口令."
 
-#: utils/misc/guc.c:4154
+#: utils/misc/guc.c:4508
 msgid "When a password is specified in CREATE USER or ALTER USER without writing either ENCRYPTED or UNENCRYPTED, this parameter determines whether the password is to be encrypted."
 msgstr "当在 CREATE USER 或者 ALTER USER 语句中指定的口令没有用 ENCRYPTED 或者 UNENCRYPTED, 此参数确定口令是否加密."
 
-#: utils/misc/guc.c:4956
+#: utils/misc/guc.c:4519
+#, fuzzy
+#| msgid "Enables the planner's use of merge join plans."
+msgid "Controls the planner's selection of custom or generic plan."
+msgstr "启用查询计划器的合并连接计划."
+
+#: utils/misc/guc.c:4520
+msgid "Prepared statements can have custom and generic plans, and the planner will attempt to choose which is better.  This can be set to override the default behavior."
+msgstr ""
+
+#: utils/misc/guc.c:4532
+#, fuzzy
+#| msgid "Sets the minimum size to shrink the WAL to."
+msgid "Sets the minimum SSL/TLS protocol version to use."
+msgstr "设置要把WAL收缩到的最小尺寸。"
+
+#: utils/misc/guc.c:4544
+msgid "Sets the maximum SSL/TLS protocol version to use."
+msgstr ""
+
+#: utils/misc/guc.c:5367
 #, c-format
 msgid "%s: could not access directory \"%s\": %s\n"
 msgstr "%s: 无法访问目录 \"%s\": %s\n"
 
-#: utils/misc/guc.c:4961
+#: utils/misc/guc.c:5372
 #, c-format
 msgid "Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n"
 msgstr "运行 initdb 或者 pg_basebackup 以初始化一个 PostgreSQL 数据目录.\n"
 
-#: utils/misc/guc.c:4981
+#: utils/misc/guc.c:5392
 #, c-format
 msgid ""
 "%s does not know where to find the server configuration file.\n"
@@ -25758,12 +25857,12 @@ msgstr ""
 "%s 不知道在哪里可以找到数据库系统配置文件.\n"
 "你必须通过 --config-file 或 -D 选项指定或者通过设置 PGDATA 环境变量.\n"
 
-#: utils/misc/guc.c:5000
+#: utils/misc/guc.c:5411
 #, c-format
 msgid "%s: could not access the server configuration file \"%s\": %s\n"
 msgstr "%s:无法访问服务器配置文件 \"%s\": %s\n"
 
-#: utils/misc/guc.c:5026
+#: utils/misc/guc.c:5437
 #, c-format
 msgid ""
 "%s does not know where to find the database system data.\n"
@@ -25772,7 +25871,7 @@ msgstr ""
 "%s 不知道在哪里可以找到数据库系统数据.\n"
 "可以在 \"%s\" 中指定 \"data_directory\", 或者通过 -D 选项指定或者通过设置 PGDATA 环境变量.\n"
 
-#: utils/misc/guc.c:5074
+#: utils/misc/guc.c:5485
 #, c-format
 msgid ""
 "%s does not know where to find the \"hba\" configuration file.\n"
@@ -25781,7 +25880,7 @@ msgstr ""
 "%s 不知道在哪里可以找到 \"hba\" 配置文件.\n"
 "可以在 \"%s\" 中指定 \"hba_file\", 或者通过 -D 选项指定或者通过设置PGDATA 环境变量.\n"
 
-#: utils/misc/guc.c:5097
+#: utils/misc/guc.c:5508
 #, c-format
 msgid ""
 "%s does not know where to find the \"ident\" configuration file.\n"
@@ -25790,150 +25889,182 @@ msgstr ""
 "%s 不知道在哪里可以找到 \"ident\" 配置文件.\n"
 "可以在 \"%s\" 中指定 \"ident_file\", 或者通过 -D 选项指定或者通过设置PGDATA 环境变量.\n"
 
-#: utils/misc/guc.c:5772 utils/misc/guc.c:5819
+#: utils/misc/guc.c:6350
 msgid "Value exceeds integer range."
 msgstr "值已超过整数范围"
 
-#: utils/misc/guc.c:6042
-#, c-format
-msgid "parameter \"%s\" requires a numeric value"
-msgstr "参数 \"%s\" 需要一个数字值"
+#: utils/misc/guc.c:6586
+#, fuzzy, c-format
+#| msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)"
+msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d .. %d)"
+msgstr "%d 超出了参数 \"%s\" (%d .. %d) 的有效范围"
 
-#: utils/misc/guc.c:6051
-#, c-format
-msgid "%g is outside the valid range for parameter \"%s\" (%g .. %g)"
+#: utils/misc/guc.c:6622
+#, fuzzy, c-format
+#| msgid "%g is outside the valid range for parameter \"%s\" (%g .. %g)"
+msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)"
 msgstr "%g 超出了参数 \"%s\" (%g .. %g) 的有效范围"
 
-#: utils/misc/guc.c:6204 utils/misc/guc.c:7574
+#: utils/misc/guc.c:6778 utils/misc/guc.c:8148
 #, c-format
 msgid "cannot set parameters during a parallel operation"
 msgstr "在并行操作期间不能设置参数"
 
-#: utils/misc/guc.c:6211 utils/misc/guc.c:6963 utils/misc/guc.c:7016
-#: utils/misc/guc.c:7067 utils/misc/guc.c:7403 utils/misc/guc.c:8170
-#: utils/misc/guc.c:8338 utils/misc/guc.c:10015
+#: utils/misc/guc.c:6785 utils/misc/guc.c:7537 utils/misc/guc.c:7590
+#: utils/misc/guc.c:7641 utils/misc/guc.c:7977 utils/misc/guc.c:8744
+#: utils/misc/guc.c:9010 utils/misc/guc.c:10648
 #, c-format
 msgid "unrecognized configuration parameter \"%s\""
 msgstr "未认可的配置参数 \"%s\""
 
-#: utils/misc/guc.c:6226 utils/misc/guc.c:7415
+#: utils/misc/guc.c:6800 utils/misc/guc.c:7989
 #, c-format
 msgid "parameter \"%s\" cannot be changed"
 msgstr "参数 \"%s\" 不可以改变"
 
-#: utils/misc/guc.c:6259
+#: utils/misc/guc.c:6823 utils/misc/guc.c:7017 utils/misc/guc.c:7107
+#: utils/misc/guc.c:7197 utils/misc/guc.c:7305 utils/misc/guc.c:7400
+#: guc-file.l:353
+#, c-format
+msgid "parameter \"%s\" cannot be changed without restarting the server"
+msgstr "在没有启动服务器的情况下,不能改变参数 \"%s\" "
+
+#: utils/misc/guc.c:6833
 #, c-format
 msgid "parameter \"%s\" cannot be changed now"
 msgstr "参数 \"%s\" 现在不能改变"
 
-#: utils/misc/guc.c:6277 utils/misc/guc.c:6324 utils/misc/guc.c:10031
+#: utils/misc/guc.c:6851 utils/misc/guc.c:6898 utils/misc/guc.c:10664
 #, c-format
 msgid "permission denied to set parameter \"%s\""
 msgstr "设置参数 \"%s\" 权限不允许"
 
-#: utils/misc/guc.c:6314
+#: utils/misc/guc.c:6888
 #, c-format
 msgid "parameter \"%s\" cannot be set after connection start"
 msgstr "联接启动后, 参数 \"%s\" 不能设置"
 
-#: utils/misc/guc.c:6362
+#: utils/misc/guc.c:6936
 #, c-format
 msgid "cannot set parameter \"%s\" within security-definer function"
 msgstr "无法在安全定义者操作中设置参数\"%s\" "
 
-#: utils/misc/guc.c:6971 utils/misc/guc.c:7021 utils/misc/guc.c:8345
+#: utils/misc/guc.c:7545 utils/misc/guc.c:7595 utils/misc/guc.c:9017
 #, c-format
 msgid "must be superuser or a member of pg_read_all_settings to examine \"%s\""
 msgstr "必须是超级用户或pg_read_all_settings的成员才能检查\"%s\""
 
-#: utils/misc/guc.c:7112
+#: utils/misc/guc.c:7686
 #, c-format
 msgid "SET %s takes only one argument"
 msgstr "SET %s 只能带一个参数"
 
-#: utils/misc/guc.c:7363
+#: utils/misc/guc.c:7937
 #, c-format
 msgid "must be superuser to execute ALTER SYSTEM command"
 msgstr "只有超级用户才能执行命令ALTER SYSTEM"
 
-#: utils/misc/guc.c:7448
+#: utils/misc/guc.c:8022
 #, c-format
 msgid "parameter value for ALTER SYSTEM must not contain a newline"
 msgstr "用于 ALTER SYSTEM 的参数值不能包含新行"
 
-#: utils/misc/guc.c:7493
+#: utils/misc/guc.c:8067
 #, c-format
 msgid "could not parse contents of file \"%s\""
 msgstr "无法解析文件\"%s\"的内容"
 
-#: utils/misc/guc.c:7650
+#: utils/misc/guc.c:8224
 #, c-format
 msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented"
 msgstr "SET LOCAL TRANSACTION SNAPSHOT没有实现"
 
-#: utils/misc/guc.c:7734
+#: utils/misc/guc.c:8308
 #, c-format
 msgid "SET requires parameter name"
 msgstr "SET 需要参数名字"
 
-#: utils/misc/guc.c:7867
+#: utils/misc/guc.c:8441
 #, c-format
 msgid "attempt to redefine parameter \"%s\""
 msgstr "尝试重新定义参数 \"%s\""
 
-#: utils/misc/guc.c:9648
+#: utils/misc/guc.c:10281
 #, c-format
 msgid "parameter \"%s\" could not be set"
 msgstr "参数\"%s\" 不能被设置"
 
-#: utils/misc/guc.c:9735
+#: utils/misc/guc.c:10368
 #, c-format
 msgid "could not parse setting for parameter \"%s\""
 msgstr "无法分析参数 \"%s\" 的设置"
 
-#: utils/misc/guc.c:10093 utils/misc/guc.c:10127
+#: utils/misc/guc.c:10726 utils/misc/guc.c:10760
 #, c-format
 msgid "invalid value for parameter \"%s\": %d"
 msgstr "参数 \"%s\" 的值无效: %d"
 
-#: utils/misc/guc.c:10161
+#: utils/misc/guc.c:10794
 #, c-format
 msgid "invalid value for parameter \"%s\": %g"
 msgstr "参数 \"%s\" 的值无效: %g"
 
-#: utils/misc/guc.c:10445
+#: utils/misc/guc.c:11064
 #, c-format
 msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session."
 msgstr "在当前会话中,如果有任何临时表被访问,就不能改变\"temp_buffers\"中的内容."
 
 # input.c:213
-#: utils/misc/guc.c:10457
+#: utils/misc/guc.c:11076
 #, c-format
 msgid "Bonjour is not supported by this build"
 msgstr "这个版本的安装不支持使用Bonjour "
 
 # input.c:213
-#: utils/misc/guc.c:10470
+#: utils/misc/guc.c:11089
 #, c-format
 msgid "SSL is not supported by this build"
 msgstr "这个版本的安装不支持使用SSL"
 
-#: utils/misc/guc.c:10482
+#: utils/misc/guc.c:11101
 #, c-format
 msgid "Cannot enable parameter when \"log_statement_stats\" is true."
 msgstr "当 \"log_statement_stats\" 为 true 时, 不能启动参数."
 
-#: utils/misc/guc.c:10494
+#: utils/misc/guc.c:11113
 #, c-format
 msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true."
 msgstr "当 \"log_parser_stats\", \"log_planner_stats\", 或者 \"log_executor_stats\" 为 true 时, 无法启用 \"log_statement_stats\"."
 
-#: utils/misc/guc.c:10710
-#, c-format
-msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()"
+#: utils/misc/guc.c:11357
+#, fuzzy, c-format
+#| msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()"
+msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()."
 msgstr "在没有posix_fadvise()的平台上,effective_io_concurrency必须设置为0"
 
-#: utils/misc/help_config.c:131
+#: utils/misc/guc.c:11471
+#, fuzzy, c-format
+#| msgid "recovery_target_timeline is not a valid number: \"%s\""
+msgid "recovery_target_timeline is not a valid number."
+msgstr "recovery_target_timeline 不是一个有效的数字: \"%s\""
+
+#: utils/misc/guc.c:11511
+#, fuzzy, c-format
+#| msgid "multiple values specified for netmask"
+msgid "multiple recovery targets specified"
+msgstr "网络掩码指定了多个值"
+
+#: utils/misc/guc.c:11512
+#, c-format
+msgid "At most one of recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid may be set."
+msgstr ""
+
+#: utils/misc/guc.c:11520
+#, c-format
+msgid "The only allowed value is \"immediate\"."
+msgstr "唯一有效的值是\"immediate\"."
+
+#: utils/misc/help_config.c:130
 #, c-format
 msgid "internal error: unrecognized run-time parameter type\n"
 msgstr "内部错误: 未知的运行时参数类型\n"
@@ -25943,8 +26074,8 @@ msgstr "内部错误: 未知的运行时参数类型\n"
 msgid "query-specified return tuple and function return type are not compatible"
 msgstr "查询指定返回的元组和函数返回类型不兼容"
 
-#: utils/misc/pg_controldata.c:59 utils/misc/pg_controldata.c:137
-#: utils/misc/pg_controldata.c:241 utils/misc/pg_controldata.c:308
+#: utils/misc/pg_controldata.c:60 utils/misc/pg_controldata.c:138
+#: utils/misc/pg_controldata.c:242 utils/misc/pg_controldata.c:309
 #, c-format
 msgid "calculated CRC checksum does not match value stored in file"
 msgstr "计算得到的 CRC 校验与存储在文件中的值不匹配"
@@ -26039,7 +26170,7 @@ msgstr "在时间区域文件\"%s\"中的第%d行中,@INCLUDE没有带文件
 msgid "Failed while creating memory context \"%s\"."
 msgstr "创建内存上下文 \"%s\" 失败."
 
-#: utils/mmgr/dsa.c:519 utils/mmgr/dsa.c:1325
+#: utils/mmgr/dsa.c:519 utils/mmgr/dsa.c:1332
 #, c-format
 msgid "could not attach to dynamic shared area"
 msgstr "无法附加到动态共享区域"
@@ -26082,7 +26213,7 @@ msgstr "不能删除处于活动状态的portal \"%s\""
 msgid "cannot PREPARE a transaction that has created a cursor WITH HOLD"
 msgstr "无法对一个已经创建带有WITH HOLD游标的事务执行PREPARE操作."
 
-#: utils/mmgr/portalmem.c:1263
+#: utils/mmgr/portalmem.c:1269
 #, c-format
 msgid "cannot perform transaction commands inside a cursor loop that is not read-only"
 msgstr "不能在非只读的游标循环内执行事务命令"
@@ -26151,52 +26282,580 @@ msgstr "无法从元组存储临时文件读取: %m"
 msgid "could not write to tuplestore temporary file: %m"
 msgstr "无法写入元组存储临时文件: %m"
 
-#: utils/time/snapmgr.c:622
+#: utils/time/snapmgr.c:624
 #, c-format
 msgid "The source transaction is not running anymore."
 msgstr "源事务已不再运行."
 
-#: utils/time/snapmgr.c:1200
+#: utils/time/snapmgr.c:1202
 #, c-format
 msgid "cannot export a snapshot from a subtransaction"
 msgstr "子事务中无法导出一个快照"
 
-#: utils/time/snapmgr.c:1359 utils/time/snapmgr.c:1364
-#: utils/time/snapmgr.c:1369 utils/time/snapmgr.c:1384
-#: utils/time/snapmgr.c:1389 utils/time/snapmgr.c:1394
-#: utils/time/snapmgr.c:1409 utils/time/snapmgr.c:1414
-#: utils/time/snapmgr.c:1419 utils/time/snapmgr.c:1519
-#: utils/time/snapmgr.c:1535 utils/time/snapmgr.c:1560
+#: utils/time/snapmgr.c:1361 utils/time/snapmgr.c:1366
+#: utils/time/snapmgr.c:1371 utils/time/snapmgr.c:1386
+#: utils/time/snapmgr.c:1391 utils/time/snapmgr.c:1396
+#: utils/time/snapmgr.c:1411 utils/time/snapmgr.c:1416
+#: utils/time/snapmgr.c:1421 utils/time/snapmgr.c:1523
+#: utils/time/snapmgr.c:1539 utils/time/snapmgr.c:1564
 #, c-format
 msgid "invalid snapshot data in file \"%s\""
 msgstr "文件 \"%s\" 中存在无效快照数据"
 
-#: utils/time/snapmgr.c:1456
+#: utils/time/snapmgr.c:1458
 #, c-format
 msgid "SET TRANSACTION SNAPSHOT must be called before any query"
 msgstr "SET TRANSACTION SNAPSHOT 必须在任何查询之前调用"
 
-#: utils/time/snapmgr.c:1465
+#: utils/time/snapmgr.c:1467
 #, c-format
 msgid "a snapshot-importing transaction must have isolation level SERIALIZABLE or REPEATABLE READ"
 msgstr "一个snapshot-importing事务的隔离级只能是SERIALIZABLE或者REPEATABLE READ"
 
-#: utils/time/snapmgr.c:1474 utils/time/snapmgr.c:1483
+#: utils/time/snapmgr.c:1476 utils/time/snapmgr.c:1485
 #, c-format
 msgid "invalid snapshot identifier: \"%s\""
 msgstr "无效快照标识符: \"%s\""
 
-#: utils/time/snapmgr.c:1573
+#: utils/time/snapmgr.c:1577
 #, c-format
 msgid "a serializable transaction cannot import a snapshot from a non-serializable transaction"
 msgstr "一个可串行化事务不能从非可串行化事务中导入一个快照"
 
-#: utils/time/snapmgr.c:1577
+#: utils/time/snapmgr.c:1581
 #, c-format
 msgid "a non-read-only serializable transaction cannot import a snapshot from a read-only transaction"
 msgstr "非只读可串行化事务无法导入来自只读事务的快照"
 
-#: utils/time/snapmgr.c:1592
+#: utils/time/snapmgr.c:1596
 #, c-format
 msgid "cannot import a snapshot from a different database"
 msgstr "无法导入来自不同数据库的快照"
+
+#: gram.y:1030
+#, c-format
+msgid "UNENCRYPTED PASSWORD is no longer supported"
+msgstr "UNENCRYPTED PASSWORD 不再被支持"
+
+#: gram.y:1031
+#, c-format
+msgid "Remove UNENCRYPTED to store the password in encrypted form instead."
+msgstr "删除 UNENCRYPTED 以加密形式存储密码."
+
+#: gram.y:1093
+#, c-format
+msgid "unrecognized role option \"%s\""
+msgstr "无法识别的角色选项\"%s\""
+
+#: gram.y:1340 gram.y:1355
+#, c-format
+msgid "CREATE SCHEMA IF NOT EXISTS cannot include schema elements"
+msgstr "CREATE SCHEMA IF NOT EXISTS不能包含方案(schema)元素"
+
+#: gram.y:1501
+#, c-format
+msgid "current database cannot be changed"
+msgstr "不能改变当前使用的数据库"
+
+#: gram.y:1625
+#, c-format
+msgid "time zone interval must be HOUR or HOUR TO MINUTE"
+msgstr "时区间隔必须为 HOUR 或者 HOUR TO MINUTE"
+
+#: gram.y:2143
+#, c-format
+msgid "column number must be in range from 1 to %d"
+msgstr "列号必须是在范围1到%d之间"
+
+#: gram.y:2675
+#, c-format
+msgid "sequence option \"%s\" not supported here"
+msgstr "此处不支持序列选项\"%s\""
+
+#: gram.y:2704
+#, c-format
+msgid "modulus for hash partition provided more than once"
+msgstr "哈希分区的模数提供了多次"
+
+#: gram.y:2713
+#, c-format
+msgid "remainder for hash partition provided more than once"
+msgstr "哈希分区的剩余部分提供了多次"
+
+#: gram.y:2720
+#, c-format
+msgid "unrecognized hash partition bound specification \"%s\""
+msgstr "不可识别的哈希分区绑定规范\"%s\""
+
+#: gram.y:2728
+#, c-format
+msgid "modulus for hash partition must be specified"
+msgstr "必须指定哈希分区的模数"
+
+#: gram.y:2732
+#, c-format
+msgid "remainder for hash partition must be specified"
+msgstr "必须指定哈希分区的剩余部分"
+
+#: gram.y:2933 gram.y:2966
+#, c-format
+msgid "STDIN/STDOUT not allowed with PROGRAM"
+msgstr "STDIN/STDOUT 不允许与PROGRAM一起使用"
+
+#: gram.y:2939
+#, fuzzy, c-format
+#| msgid "%s is not allowed with GROUP BY clause"
+msgid "WHERE clause not allowed with COPY TO"
+msgstr "%s不能用于GROUP BY子句中"
+
+#: gram.y:3271 gram.y:3278 gram.y:11480 gram.y:11488
+#, c-format
+msgid "GLOBAL is deprecated in temporary table creation"
+msgstr "GLOBAL在临时表中的创建中已经被废弃使用"
+
+#: gram.y:3518
+#, c-format
+msgid "for a generated column, GENERATED ALWAYS must be specified"
+msgstr ""
+
+#: gram.y:5274
+#, c-format
+msgid "unrecognized row security option \"%s\""
+msgstr "无法识别的行安全选项\"%s\""
+
+#: gram.y:5275
+#, c-format
+msgid "Only PERMISSIVE or RESTRICTIVE policies are supported currently."
+msgstr "当前仅支持 PERMISSIVE 或 RESTRICTIVE 策略 "
+
+#: gram.y:5388
+msgid "duplicate trigger events specified"
+msgstr "重复指定触发器事件"
+
+#: gram.y:5536
+#, c-format
+msgid "conflicting constraint properties"
+msgstr "约束属性冲突"
+
+#: gram.y:5632
+#, c-format
+msgid "CREATE ASSERTION is not yet implemented"
+msgstr "CREATE ASSERTION 仍未实现"
+
+#: gram.y:6015
+#, c-format
+msgid "RECHECK is no longer required"
+msgstr "不再需要RECHECK选项了"
+
+# describe.c:289
+#: gram.y:6016
+#, c-format
+msgid "Update your data type."
+msgstr "更改您的数据类型"
+
+#: gram.y:7753
+#, c-format
+msgid "aggregates cannot have output arguments"
+msgstr "聚合函数不能使用输出参数"
+
+#: gram.y:10025 gram.y:10043
+#, c-format
+msgid "WITH CHECK OPTION not supported on recursive views"
+msgstr "递归视图不能使用WITH CHECK OPTION"
+
+#: gram.y:11588
+#, c-format
+msgid "LIMIT #,# syntax is not supported"
+msgstr "不支持 LIMIT #,# 语法"
+
+#: gram.y:11589
+#, c-format
+msgid "Use separate LIMIT and OFFSET clauses."
+msgstr "LIMIT和OFFSET子句要分隔开"
+
+#: gram.y:11887 gram.y:11912
+#, c-format
+msgid "VALUES in FROM must have an alias"
+msgstr "FROM中的VALUES子句必须有一个别名"
+
+#: gram.y:11888 gram.y:11913
+#, c-format
+msgid "For example, FROM (VALUES ...) [AS] foo."
+msgstr "例如, FROM (SELECT ...) [AS] foo."
+
+#: gram.y:11893 gram.y:11918
+#, c-format
+msgid "subquery in FROM must have an alias"
+msgstr "FROM 中的子查询必须有一个别名"
+
+#: gram.y:11894 gram.y:11919
+#, c-format
+msgid "For example, FROM (SELECT ...) [AS] foo."
+msgstr "例如, FROM (SELECT ...) [AS] foo."
+
+#: gram.y:12372
+#, c-format
+msgid "only one DEFAULT value is allowed"
+msgstr "只允许一个默认值"
+
+#: gram.y:12381
+#, c-format
+msgid "only one PATH value per column is allowed"
+msgstr "每列只允许一个路径值"
+
+#: gram.y:12390
+#, c-format
+msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\""
+msgstr "列\"%s\"的 NULL / NOT NULL 声明冲突或冗余"
+
+#: gram.y:12399
+#, c-format
+msgid "unrecognized column option \"%s\""
+msgstr "无法识别的列选项\"%s\""
+
+#: gram.y:12653
+#, c-format
+msgid "precision for type float must be at least 1 bit"
+msgstr "浮点类型的精确度必须至少 1 位"
+
+#: gram.y:12662
+#, c-format
+msgid "precision for type float must be less than 54 bits"
+msgstr "浮点类型的精确度必须小于 54 位"
+
+#: gram.y:13153
+#, c-format
+msgid "wrong number of parameters on left side of OVERLAPS expression"
+msgstr "OVERLAPS 表达式左边的参数个数不对"
+
+#: gram.y:13158
+#, c-format
+msgid "wrong number of parameters on right side of OVERLAPS expression"
+msgstr "OVERLAPS 表达式右边的参数个数不对"
+
+#: gram.y:13333
+#, c-format
+msgid "UNIQUE predicate is not yet implemented"
+msgstr "没有实现UNIQUE谓词"
+
+#: gram.y:13680
+#, c-format
+msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP"
+msgstr "WITHIN GROUP不允许多个 ORDER BY 子句"
+
+#: gram.y:13685
+#, c-format
+msgid "cannot use DISTINCT with WITHIN GROUP"
+msgstr "不能将 DISTINCT 和 WITHIN GROUP混在一起使用"
+
+#: gram.y:13690
+#, c-format
+msgid "cannot use VARIADIC with WITHIN GROUP"
+msgstr "不能将 VARIADIC 和 WITHIN GROUP在一起混用"
+
+#: gram.y:14148 gram.y:14171
+#, c-format
+msgid "frame start cannot be UNBOUNDED FOLLOWING"
+msgstr "框架的起始位置不能被执行UNBOUNDED FOLLOWING操作."
+
+#: gram.y:14153
+#, c-format
+msgid "frame starting from following row cannot end with current row"
+msgstr "从后面记录启动的窗口框架(frame)不能以当前记录结束"
+
+#: gram.y:14176
+#, c-format
+msgid "frame end cannot be UNBOUNDED PRECEDING"
+msgstr "框架的结束位置不能被执行UNBOUNDED FOLLOWING操作."
+
+#: gram.y:14182
+#, c-format
+msgid "frame starting from current row cannot have preceding rows"
+msgstr "从当前记录启动的窗口框架(frame)不能拥有正在处理的记录"
+
+#: gram.y:14189
+#, c-format
+msgid "frame starting from following row cannot have preceding rows"
+msgstr "从后面记录启动的窗口框架(frame)不能拥有正在处理的记录"
+
+#: gram.y:14832
+#, c-format
+msgid "type modifier cannot have parameter name"
+msgstr "类型修改器不能有参数名称"
+
+#: gram.y:14838
+#, c-format
+msgid "type modifier cannot have ORDER BY"
+msgstr "类型修改器不能有ORDER BY"
+
+#: gram.y:14903 gram.y:14910
+#, c-format
+msgid "%s cannot be used as a role name here"
+msgstr "在这里%s不能被用做一个角色名"
+
+#: gram.y:15583 gram.y:15772
+msgid "improper use of \"*\""
+msgstr "对\"*\"的使用不正确"
+
+#: gram.y:15836
+#, 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:15873
+#, c-format
+msgid "multiple ORDER BY clauses not allowed"
+msgstr "不允许多个 ORDER BY 子句"
+
+#: gram.y:15884
+#, c-format
+msgid "multiple OFFSET clauses not allowed"
+msgstr "不允许多个 OFFSET 子句"
+
+#: gram.y:15893
+#, c-format
+msgid "multiple LIMIT clauses not allowed"
+msgstr "不允许多个 LIMIT 子句"
+
+#: gram.y:15902
+#, c-format
+msgid "multiple WITH clauses not allowed"
+msgstr "不允许使用多个WITH子句"
+
+#: gram.y:16106
+#, c-format
+msgid "OUT and INOUT arguments aren't allowed in TABLE functions"
+msgstr "在TABLE函数中不允许使用OUT或INOUT模式的参数"
+
+#: gram.y:16207
+#, c-format
+msgid "multiple COLLATE clauses not allowed"
+msgstr "不允许多个 COLLATE 子句"
+
+#. translator: %s is CHECK, UNIQUE, or similar
+#: gram.y:16245 gram.y:16258
+#, c-format
+msgid "%s constraints cannot be marked DEFERRABLE"
+msgstr "%s约束不能标为DEFERRABLE"
+
+#. translator: %s is CHECK, UNIQUE, or similar
+#: gram.y:16271
+#, c-format
+msgid "%s constraints cannot be marked NOT VALID"
+msgstr "%s约束不能标为NOT VALID"
+
+#. translator: %s is CHECK, UNIQUE, or similar
+#: gram.y:16284
+#, c-format
+msgid "%s constraints cannot be marked NO INHERIT"
+msgstr "%s约束不能标为NO INHERIT"
+
+#: guc-file.l:316
+#, c-format
+msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %u"
+msgstr "未认可的配置参数 \"%s\", 文件\"%s\", 行%u"
+
+#: guc-file.l:389
+#, c-format
+msgid "parameter \"%s\" removed from configuration file, reset to default"
+msgstr "参数\"%s\"已从配置文件中删除,重新设置为缺省"
+
+#: guc-file.l:455
+#, c-format
+msgid "parameter \"%s\" changed to \"%s\""
+msgstr "参数 \"%s\"被改为\"%s\""
+
+#: guc-file.l:497
+#, c-format
+msgid "configuration file \"%s\" contains errors"
+msgstr "配置文件 \"%s\" 有错"
+
+#: guc-file.l:502
+#, c-format
+msgid "configuration file \"%s\" contains errors; unaffected changes were applied"
+msgstr "配置文件 \"%s\" 有错; 使用了不受影响的内容变动"
+
+#: guc-file.l:507
+#, c-format
+msgid "configuration file \"%s\" contains errors; no changes were applied"
+msgstr "配置文件 \"%s\" 有错; 没有内容变动"
+
+#: guc-file.l:580
+#, c-format
+msgid "could not open configuration file \"%s\": maximum nesting depth exceeded"
+msgstr "无法打开配置文件 \"%s\": 已超过最大的嵌套深度"
+
+#: guc-file.l:607
+#, c-format
+msgid "skipping missing configuration file \"%s\""
+msgstr "忽略丢失的配置文件\"%s\""
+
+#: guc-file.l:861
+#, c-format
+msgid "syntax error in file \"%s\" line %u, near end of line"
+msgstr "在文件 \"%s\" 第 %u 行, 行尾附近语法错误"
+
+#: guc-file.l:871
+#, c-format
+msgid "syntax error in file \"%s\" line %u, near token \"%s\""
+msgstr "在文件 \"%s\" 第 %u 行, 记号 \"%s\" 附近语法错误"
+
+#: guc-file.l:891
+#, c-format
+msgid "too many syntax errors found, abandoning file \"%s\""
+msgstr "发现太多的语法错误, 放弃文件 \"%s\""
+
+#: guc-file.l:943
+#, c-format
+msgid "could not open configuration directory \"%s\": %m"
+msgstr "无法打开配置文件目录 \"%s\": %m"
+
+#: jsonpath_gram.y:517
+#, fuzzy, c-format
+#| msgid "unrecognized parameter \"%s\" in file \"%s\""
+msgid "unrecognized flag character \"%c\" in LIKE_REGEX predicate"
+msgstr "文件\"%2$s\"中出现未识别的参数 \"%1$s\""
+
+#. translator: %s is typically "syntax error"
+#: jsonpath_scan.l:300
+#, fuzzy, c-format
+#| msgid "%s at end of input"
+msgid "%s at end of jsonpath input"
+msgstr "%s 在输入的末尾"
+
+#. translator: first %s is typically "syntax error"
+#: jsonpath_scan.l:307
+#, fuzzy, c-format
+#| msgid "%s at or near \"%s\""
+msgid "%s at or near \"%s\" of jsonpath input"
+msgstr "%s 在 \"%s\" 或附近的"
+
+#: repl_gram.y:336 repl_gram.y:368
+#, c-format
+msgid "invalid timeline %u"
+msgstr "无效时间线%u"
+
+#: repl_scanner.l:129
+msgid "invalid streaming start location"
+msgstr "无效的流起始位置"
+
+#: repl_scanner.l:180 scan.l:703
+msgid "unterminated quoted string"
+msgstr "未结束的引用字符串"
+
+#: scan.l:463
+msgid "unterminated /* comment"
+msgstr "/* 注释没有结束"
+
+#: scan.l:494
+msgid "unterminated bit string literal"
+msgstr "未结束的bit字符串常量"
+
+#: scan.l:515
+msgid "unterminated hexadecimal string literal"
+msgstr "未结束的16进制字符串常量"
+
+#: scan.l:565
+#, c-format
+msgid "unsafe use of string constant with Unicode escapes"
+msgstr "这种使用带有Unicode转义字符的字符串常量的方法不安全."
+
+#: scan.l:566
+#, c-format
+msgid "String constants with Unicode escapes cannot be used when standard_conforming_strings is off."
+msgstr "当参数standard_conforming_strings处于关闭状态时,无法使用带有Unicode转义字符的字符串常量."
+
+#: scan.l:612 scan.l:811
+msgid "invalid Unicode escape character"
+msgstr "无效Unicode转义字符"
+
+#: scan.l:638 scan.l:646 scan.l:654 scan.l:655 scan.l:656 scan.l:1400
+#: scan.l:1427 scan.l:1431 scan.l:1469 scan.l:1473 scan.l:1495 scan.l:1505
+msgid "invalid Unicode surrogate pair"
+msgstr "无效的Unicode代理项对(surrogate pair)"
+
+#: scan.l:660
+#, c-format
+msgid "invalid Unicode escape"
+msgstr "无效的Unicode转义字符"
+
+#: scan.l:661
+#, c-format
+msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX."
+msgstr "Unicode转义字符必须是\\uXXXX或\\UXXXXXXXX."
+
+#: scan.l:672
+#, c-format
+msgid "unsafe use of \\' in a string literal"
+msgstr "在字符串常量中使用\\不安全"
+
+#: scan.l:673
+#, c-format
+msgid "Use '' to write quotes in strings. \\' is insecure in client-only encodings."
+msgstr "使用''在字符串中表示引号,在只有客户端使用的编码中使用\\'不安全."
+
+#: scan.l:748
+msgid "unterminated dollar-quoted string"
+msgstr "未结束的用$符号引用的字符串"
+
+#: scan.l:765 scan.l:791 scan.l:806
+msgid "zero-length delimited identifier"
+msgstr "长度为0的分隔标示符"
+
+#: scan.l:826 syncrep_scanner.l:91
+msgid "unterminated quoted identifier"
+msgstr "未结束的引用标识符"
+
+#: scan.l:989
+msgid "operator too long"
+msgstr "操作符太长"
+
+#. translator: %s is typically the translation of "syntax error"
+#: scan.l:1141
+#, c-format
+msgid "%s at end of input"
+msgstr "%s 在输入的末尾"
+
+#. translator: first %s is typically the translation of "syntax error"
+#: scan.l:1149
+#, c-format
+msgid "%s at or near \"%s\""
+msgstr "%s 在 \"%s\" 或附近的"
+
+#: scan.l:1314 scan.l:1346
+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:1342 scan.l:1487
+msgid "invalid Unicode escape value"
+msgstr "无效的Unicode转义值"
+
+#: scan.l:1551
+#, c-format
+msgid "nonstandard use of \\' in a string literal"
+msgstr "在字符串常量中以不标准的方法使用\\'"
+
+#: scan.l:1552
+#, c-format
+msgid "Use '' to write quotes in strings, or use the escape string syntax (E'...')."
+msgstr "使用''或者转义字符串语法(E'...')将字符串引起来."
+
+#: scan.l:1561
+#, c-format
+msgid "nonstandard use of \\\\ in a string literal"
+msgstr "在字符串常量中以不标准的方法使用\\\\ "
+
+#: scan.l:1562
+#, c-format
+msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'."
+msgstr "为反斜线使用转移字符串语法,例如.,E'\\\\'."
+
+#: scan.l:1576
+#, c-format
+msgid "nonstandard use of escape in a string literal"
+msgstr "在字符串常量中以不标准的方法使用转义字符"
+
+#: scan.l:1577
+#, c-format
+msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'."
+msgstr "对转移字符使用转义字符串语法,例如 E'\\r\\n'."
index 29cea7853d9e1d63a03387004e16aada2494bc88..e9063a854fd76c30ba80bde63a350d55eeead172 100644 (file)
@@ -1,8 +1,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: psql (PostgreSQL) 11\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2019-05-16 10:02+0800\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2019-06-04 12:13+0000\n"
 "PO-Revision-Date: 2019-05-17 17:50+0800\n"
 "Last-Translator: Jie Zhang <zhangjie2@cn.fujitsu.com>\n"
 "Language-Team: Chinese (Simplified) <zhangjie2@cn.fujitsu.com>\n"
@@ -15,51 +15,73 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.5.7\n"
 
-# command.c:240
-#: ../../common/exec.c:127 ../../common/exec.c:241 ../../common/exec.c:284
+#: ../../../src/common/logging.c:188
+#, c-format
+msgid "fatal: "
+msgstr ""
+
+#: ../../../src/common/logging.c:195
+#, c-format
+msgid "error: "
+msgstr ""
+
+#: ../../../src/common/logging.c:202
 #, c-format
-msgid "could not identify current directory: %s"
+msgid "warning: "
+msgstr ""
+
+# command.c:240
+#: ../../common/exec.c:138 ../../common/exec.c:255 ../../common/exec.c:301
+#, fuzzy, c-format
+#| msgid "could not identify current directory: %s"
+msgid "could not identify current directory: %m"
 msgstr "无法识别目前目录:%s"
 
 # command.c:122
-#: ../../common/exec.c:146
+#: ../../common/exec.c:157
 #, c-format
 msgid "invalid binary \"%s\""
 msgstr "无效的二进制码 \"%s\""
 
 # command.c:1103
-#: ../../common/exec.c:195
+#: ../../common/exec.c:207
 #, c-format
 msgid "could not read binary \"%s\""
 msgstr "无法读取二进制码 \"%s\""
 
-#: ../../common/exec.c:202
+#: ../../common/exec.c:215
 #, c-format
 msgid "could not find a \"%s\" to execute"
 msgstr "未能找到一个 \"%s\" 来执行"
 
-#: ../../common/exec.c:257 ../../common/exec.c:293
+#: ../../common/exec.c:271 ../../common/exec.c:310
 #, c-format
-msgid "could not change directory to \"%s\": %s"
-msgstr "无法跳转到目录 \"%s\" 中: %s"
+msgid "could not change directory to \"%s\": %m"
+msgstr "无法跳转到目录 \"%s\" 中: %m"
 
-# command.c:1103
-#: ../../common/exec.c:272
+#: ../../common/exec.c:288
 #, c-format
-msgid "could not read symbolic link \"%s\""
-msgstr "无法读取符号链接 \"%s\""
+msgid "could not read symbolic link \"%s\": %m"
+msgstr "无法读取符号链接 \"%s\": %m"
 
-#: ../../common/exec.c:523
-#, c-format
-msgid "pclose failed: %s"
+#: ../../common/exec.c:541
+#, fuzzy, c-format
+#| msgid "pclose failed: %s"
+msgid "pclose failed: %m"
 msgstr "pclose调用失败: %s"
 
+#: ../../common/exec.c:670 ../../common/exec.c:715 ../../common/exec.c:807
+#: command.c:1218 input.c:228 mainloop.c:82 mainloop.c:386
+#, c-format
+msgid "out of memory"
+msgstr "内存用尽"
+
 # command.c:681
 # common.c:85
 # common.c:99
 # mainloop.c:71
 #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75
-#: ../../common/fe_memutils.c:98 input.c:227 mainloop.c:82 mainloop.c:386
+#: ../../common/fe_memutils.c:98
 #, c-format
 msgid "out of memory\n"
 msgstr "内存耗尽\n"
@@ -75,7 +97,7 @@ msgstr "无法复制空指针 (内部错误)\n"
 msgid "could not look up effective user ID %ld: %s"
 msgstr "无法找到有效的用户ID %ld: %s"
 
-#: ../../common/username.c:45 command.c:554
+#: ../../common/username.c:45 command.c:555
 msgid "user does not exist"
 msgstr "用户不存在"
 
@@ -99,22 +121,18 @@ msgstr "没有找到命令"
 msgid "child process exited with exit code %d"
 msgstr "子进程结束,结束代码 %d"
 
-#: ../../common/wait_error.c:61
+#: ../../common/wait_error.c:62
 #, c-format
 msgid "child process was terminated by exception 0x%X"
 msgstr "子进程被异常(exception) 0x%X 终止"
 
-#: ../../common/wait_error.c:71
-#, c-format
-msgid "child process was terminated by signal %s"
-msgstr "子进程被信号 %s 终止"
-
-#: ../../common/wait_error.c:75
-#, c-format
-msgid "child process was terminated by signal %d"
+#: ../../common/wait_error.c:66
+#, fuzzy, c-format
+#| msgid "child process was terminated by signal %d"
+msgid "child process was terminated by signal %d: %s"
 msgstr "子进程被信号 %d 终止"
 
-#: ../../common/wait_error.c:80
+#: ../../common/wait_error.c:72
 #, c-format
 msgid "child process exited with unrecognized status %d"
 msgstr "子进程结束,不明状态代码 %d"
@@ -126,110 +144,138 @@ msgid "(%lu row)"
 msgid_plural "(%lu rows)"
 msgstr[0] "(%lu 行记录)"
 
-#: ../../fe_utils/print.c:2939
+#: ../../fe_utils/print.c:3058
 #, c-format
 msgid "Interrupted\n"
 msgstr "已中断\n"
 
-#: ../../fe_utils/print.c:3003
+#: ../../fe_utils/print.c:3122
 #, c-format
 msgid "Cannot add header to table content: column count of %d exceeded.\n"
 msgstr "无法对表的内容增加标题:已经超过%d列的数量.\n"
 
-#: ../../fe_utils/print.c:3043
+#: ../../fe_utils/print.c:3162
 #, c-format
 msgid "Cannot add cell to table content: total cell count of %d exceeded.\n"
 msgstr "无法对表的内容添加单元: 总共有%d个单元超过.\n"
 
-#: ../../fe_utils/print.c:3292
+#: ../../fe_utils/print.c:3417
 #, c-format
 msgid "invalid output format (internal error): %d"
 msgstr "无效的输出格式 (内部错误): %d"
 
-# command.c:120
-#: command.c:220
-#, c-format
-msgid "Invalid command \\%s. Try \\? for help.\n"
-msgstr "无效的命令 \\%s,用 \\? 查看帮助。\n"
+#: ../../fe_utils/psqlscan.l:729
+#, fuzzy, c-format
+#| msgid "skipping recursive expansion of variable \"%s\"\n"
+msgid "skipping recursive expansion of variable \"%s\""
+msgstr "跳过变量 \"%s\"的递归扩展\n"
 
 # command.c:122
-#: command.c:222
-#, c-format
-msgid "invalid command \\%s\n"
+#: command.c:221
+#, fuzzy, c-format
+#| msgid "invalid command \\%s\n"
+msgid "invalid command \\%s"
 msgstr "无效的命令 \\%s\n"
 
+#: command.c:223
+#, fuzzy, c-format
+#| msgid "Use \\? for help."
+msgid "Try \\? for help."
+msgstr "使用\\?获取帮助."
+
 # command.c:131
-#: command.c:240
-#, c-format
-msgid "\\%s: extra argument \"%s\" ignored\n"
+#: command.c:241
+#, fuzzy, c-format
+#| msgid "\\%s: extra argument \"%s\" ignored\n"
+msgid "\\%s: extra argument \"%s\" ignored"
 msgstr "\\%s:忽略多余的参数 \"%s\" \n"
 
-#: command.c:292
-#, c-format
-msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block\n"
+#: command.c:293
+#, fuzzy, c-format
+#| msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block\n"
+msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block"
 msgstr "忽略\\%s命令;使用\\endif或Ctrl-C退出当前\\if块\n"
 
 # command.c:240
-#: command.c:552
-#, c-format
-msgid "could not get home directory for user ID %ld: %s\n"
+#: command.c:553
+#, fuzzy, c-format
+#| msgid "could not get home directory for user ID %ld: %s\n"
+msgid "could not get home directory for user ID %ld: %s"
 msgstr "无法获取用户ID %ld: %s对应的home 目录\n"
 
 # command.c:256
-#: command.c:570
-#, c-format
-msgid "\\%s: could not change directory to \"%s\": %s\n"
+#: command.c:571
+#, fuzzy, c-format
+#| msgid "\\%s: could not change directory to \"%s\": %s\n"
+msgid "\\%s: could not change directory to \"%s\": %m"
 msgstr "\\%s: 无法切换目录至 \"%s\": %s\n"
 
 # common.c:636
 # common.c:871
-#: command.c:595 common.c:696 common.c:754 common.c:1337
+#: command.c:596
 #, c-format
 msgid "You are currently not connected to a database.\n"
 msgstr "你目前没有连接到数据库。\n"
 
-#: command.c:602
+#: command.c:609
+#, fuzzy, c-format
+#| msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n"
+msgid "You are connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n"
+msgstr "以用户 \"%2$s\" 的身份, 在主机\"%3$s\", 端口\"%4$s\"连接到数据库 \"%1$s\"\n"
+
+#: command.c:612
 #, c-format
 msgid "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n"
 msgstr "以用户 \"%2$s\" 的身份,通过套接字\"%3$s\"在端口\"%4$s\"连接到数据库 \"%1$s\"\n"
 
-#: command.c:605
+#: command.c:618
+#, fuzzy, c-format
+#| msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n"
+msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n"
+msgstr "以用户 \"%2$s\" 的身份, 在主机\"%3$s\", 端口\"%4$s\"连接到数据库 \"%1$s\"\n"
+
+#: command.c:621
 #, c-format
 msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n"
 msgstr "以用户 \"%2$s\" 的身份, 在主机\"%3$s\", 端口\"%4$s\"连接到数据库 \"%1$s\"\n"
 
 # command.c:370
 # command.c:760
-#: command.c:895 command.c:991 command.c:2376
-#, c-format
-msgid "no query buffer\n"
+#: command.c:930 command.c:1026 command.c:2411
+#, fuzzy, c-format
+#| msgid "no query buffer\n"
+msgid "no query buffer"
 msgstr "没有查询缓存区\n"
 
-#: command.c:928 command.c:4648
-#, c-format
-msgid "invalid line number: %s\n"
+#: command.c:963 command.c:4801
+#, fuzzy, c-format
+#| msgid "invalid line number: %s\n"
+msgid "invalid line number: %s"
 msgstr "行号无效: %s\n"
 
 # describe.c:117
-#: command.c:982
-#, c-format
-msgid "The server (version %s) does not support editing function source.\n"
+#: command.c:1017
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support editing function source.\n"
+msgid "The server (version %s) does not support editing function source."
 msgstr "服务器(版本%s)不支持编辑函数源码.\n"
 
 # describe.c:117
-#: command.c:985
-#, c-format
-msgid "The server (version %s) does not support editing view definitions.\n"
+#: command.c:1020
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support editing view definitions.\n"
+msgid "The server (version %s) does not support editing view definitions."
 msgstr "服务器(版本%s)不支持编辑视图定义。\n"
 
-#: command.c:1067
+#: command.c:1102
 msgid "No changes"
 msgstr "没有发生更改"
 
 # command.c:433
-#: command.c:1144
-#, c-format
-msgid "%s: invalid encoding name or conversion procedure not found\n"
+#: command.c:1179
+#, fuzzy, c-format
+#| msgid "%s: invalid encoding name or conversion procedure not found\n"
+msgid "%s: invalid encoding name or conversion procedure not found"
 msgstr "%s:无效的编码名称或找不到转换程序\n"
 
 # command.c:953
@@ -237,19 +283,15 @@ msgstr "%s:无效的编码名称或找不到转换程序\n"
 # common.c:605
 # common.c:660
 # common.c:903
-#: command.c:1179 command.c:1818 command.c:3033 command.c:4750 common.c:174
-#: common.c:245 common.c:542 common.c:1383 common.c:1411 common.c:1519
-#: common.c:1622 common.c:1660 copy.c:492 copy.c:711 large_obj.c:156
-#: large_obj.c:191 large_obj.c:253
+#: command.c:1214 command.c:1853 command.c:3089 command.c:4903 common.c:175
+#: common.c:224 common.c:521 common.c:1362 common.c:1390 common.c:1498
+#: common.c:1601 common.c:1639 copy.c:490 copy.c:709 help.c:63 large_obj.c:157
+#: large_obj.c:192 large_obj.c:254
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: command.c:1183
-msgid "out of memory"
-msgstr "内存用尽"
-
-#: command.c:1186
+#: command.c:1221
 msgid "There is no previous error."
 msgstr "没有之前的错误。"
 
@@ -260,39 +302,45 @@ msgstr "没有之前的错误。"
 # command.c:612
 # command.c:740
 # command.c:771
-#: command.c:1374 command.c:1679 command.c:1693 command.c:1710 command.c:1870
-#: command.c:2107 command.c:2343 command.c:2383
-#, c-format
-msgid "\\%s: missing required argument\n"
+#: command.c:1409 command.c:1714 command.c:1728 command.c:1745 command.c:1905
+#: command.c:2142 command.c:2378 command.c:2418
+#, fuzzy, c-format
+#| msgid "\\%s: missing required argument\n"
+msgid "\\%s: missing required argument"
 msgstr "\\%s:缺少所需参数\n"
 
-#: command.c:1505
-#, c-format
-msgid "\\elif: cannot occur after \\else\n"
+#: command.c:1540
+#, fuzzy, c-format
+#| msgid "\\elif: cannot occur after \\else\n"
+msgid "\\elif: cannot occur after \\else"
 msgstr "\\elif:不能出现在\\else之后\n"
 
-#: command.c:1510
-#, c-format
-msgid "\\elif: no matching \\if\n"
+#: command.c:1545
+#, fuzzy, c-format
+#| msgid "\\elif: no matching \\if\n"
+msgid "\\elif: no matching \\if"
 msgstr "\\elif: 不匹配\\if\n"
 
-#: command.c:1574
-#, c-format
-msgid "\\else: cannot occur after \\else\n"
+#: command.c:1609
+#, fuzzy, c-format
+#| msgid "\\else: cannot occur after \\else\n"
+msgid "\\else: cannot occur after \\else"
 msgstr "\\else: 不能出现在 \\else\n"
 
-#: command.c:1579
-#, c-format
-msgid "\\else: no matching \\if\n"
+#: command.c:1614
+#, fuzzy, c-format
+#| msgid "\\else: no matching \\if\n"
+msgid "\\else: no matching \\if"
 msgstr "\\else: 不匹配\\if\n"
 
-#: command.c:1619
-#, c-format
-msgid "\\endif: no matching \\if\n"
+#: command.c:1654
+#, fuzzy, c-format
+#| msgid "\\endif: no matching \\if\n"
+msgid "\\endif: no matching \\if"
 msgstr "\\endif:不匹配\\if\n"
 
 # command.c:598
-#: command.c:1774
+#: command.c:1809
 msgid "Query buffer is empty."
 msgstr "查询缓存区是空的。"
 
@@ -300,72 +348,79 @@ msgstr "查询缓存区是空的。"
 # command.c:939
 # startup.c:187
 # startup.c:205
-#: command.c:1796
+#: command.c:1831
 msgid "Enter new password: "
 msgstr "输入新的密码:"
 
-#: command.c:1797
+#: command.c:1832
 msgid "Enter it again: "
 msgstr "再次输入:"
 
-#: command.c:1801
-#, c-format
-msgid "Passwords didn't match.\n"
+#: command.c:1836
+#, fuzzy, c-format
+#| msgid "Passwords didn't match.\n"
+msgid "Passwords didn't match."
 msgstr "两次密码不匹配。\n"
 
 # startup.c:492
-#: command.c:1900
-#, c-format
-msgid "\\%s: could not read value for variable\n"
+#: command.c:1935
+#, fuzzy, c-format
+#| msgid "\\%s: could not read value for variable\n"
+msgid "\\%s: could not read value for variable"
 msgstr "\\%s:无法读取变量的值\n"
 
 # command.c:632
-#: command.c:2003
+#: command.c:2038
 msgid "Query buffer reset (cleared)."
 msgstr "查询缓存区重置(已清空)。"
 
 # command.c:646
-#: command.c:2025
+#: command.c:2060
 #, c-format
 msgid "Wrote history to file \"%s\".\n"
 msgstr "写入历史记录到文件 \"%s\".\n"
 
-#: command.c:2112
-#, c-format
-msgid "\\%s: environment variable name must not contain \"=\"\n"
+#: command.c:2147
+#, fuzzy, c-format
+#| msgid "\\%s: environment variable name must not contain \"=\"\n"
+msgid "\\%s: environment variable name must not contain \"=\""
 msgstr "\\%s: 环境变量不能包含 \"=\"\n"
 
 # describe.c:117
-#: command.c:2173
-#, c-format
-msgid "The server (version %s) does not support showing function source.\n"
+#: command.c:2208
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support showing function source.\n"
+msgid "The server (version %s) does not support showing function source."
 msgstr "服务器(版本%s)不支持显示函数源码.\n"
 
 # describe.c:117
-#: command.c:2176
-#, c-format
-msgid "The server (version %s) does not support showing view definitions.\n"
+#: command.c:2211
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support showing view definitions.\n"
+msgid "The server (version %s) does not support showing view definitions."
 msgstr "服务器(版本%s)不支持显示视图定义。\n"
 
 # copy.c:122
-#: command.c:2183
-#, c-format
-msgid "function name is required\n"
+#: command.c:2218
+#, fuzzy, c-format
+#| msgid "function name is required\n"
+msgid "function name is required"
 msgstr "需要函数名\n"
 
 # copy.c:122
-#: command.c:2185
-#, c-format
-msgid "view name is required\n"
+#: command.c:2220
+#, fuzzy, c-format
+#| msgid "view name is required\n"
+msgid "view name is required"
 msgstr "需要视图名\n"
 
 # command.c:726
-#: command.c:2315
+#: command.c:2350
 msgid "Timing is on."
 msgstr "启用计时功能."
 
 # command.c:728
-#: command.c:2317
+#: command.c:2352
 msgid "Timing is off."
 msgstr "停止计时功能."
 
@@ -382,20 +437,20 @@ msgstr "停止计时功能."
 # common.c:170
 # copy.c:530
 # copy.c:575
-#: command.c:2402 command.c:2430 command.c:3401 command.c:3404 command.c:3407
-#: command.c:3413 command.c:3415 command.c:3423 command.c:3433 command.c:3442
-#: command.c:3456 command.c:3473 command.c:3531 common.c:70 copy.c:332
-#: copy.c:392 copy.c:405 psqlscanslash.l:783 psqlscanslash.l:794
-#: psqlscanslash.l:804
-#, c-format
-msgid "%s: %s\n"
-msgstr "%s: %s\n"
+#: command.c:2437 command.c:2465 command.c:3485 command.c:3488 command.c:3491
+#: command.c:3497 command.c:3499 command.c:3507 command.c:3517 command.c:3526
+#: command.c:3540 command.c:3557 command.c:3615 common.c:71 copy.c:333
+#: copy.c:405 psqlscanslash.l:784 psqlscanslash.l:795 psqlscanslash.l:805
+#, fuzzy, c-format
+#| msgid "%s: %s"
+msgid "%s: %m"
+msgstr "%s: %s"
 
 # command.c:915
 # command.c:939
 # startup.c:187
 # startup.c:205
-#: command.c:2814 startup.c:214 startup.c:265
+#: command.c:2849 startup.c:240 startup.c:291
 msgid "Password: "
 msgstr "口令:"
 
@@ -403,52 +458,68 @@ msgstr "口令:"
 # command.c:939
 # startup.c:187
 # startup.c:205
-#: command.c:2819 startup.c:262
+#: command.c:2854 startup.c:288
 #, c-format
 msgid "Password for user %s: "
 msgstr "用户 %s 的口令:"
 
-#: command.c:2869
-#, c-format
-msgid "All connection parameters must be supplied because no database connection exists\n"
+#: command.c:2905
+#, fuzzy, c-format
+#| msgid "All connection parameters must be supplied because no database connection exists\n"
+msgid "All connection parameters must be supplied because no database connection exists"
 msgstr "没有可用的数据库连接,所以必须提供所有的连接参数\n"
 
 # command.c:957
-#: command.c:3037
-#, c-format
-msgid "Previous connection kept\n"
+#: command.c:3093
+#, fuzzy, c-format
+#| msgid "Previous connection kept\n"
+msgid "Previous connection kept"
 msgstr "保留上一次连接\n"
 
 # command.c:969
-#: command.c:3041
+#: command.c:3097
 #, c-format
 msgid "\\connect: %s"
 msgstr "\\连接:%s"
 
 # command.c:981
-#: command.c:3077
+#: command.c:3136
+#, fuzzy, c-format
+#| msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n"
+msgid "You are now connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n"
+msgstr "您现在已经连接到数据库 \"%s\", 用户 \"%s\",主机 \"%s\",端口号 \"%s\".\n"
+
+# command.c:981
+#: command.c:3139
 #, c-format
 msgid "You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n"
 msgstr "您现在已经连接到数据库 \"%s\", 用户名 \"%s\" , 套接字 \"%s\", 端口号 \"%s\".\n"
 
 # command.c:981
-#: command.c:3080
+#: command.c:3145
+#, fuzzy, c-format
+#| msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n"
+msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n"
+msgstr "您现在已经连接到数据库 \"%s\", 用户 \"%s\",主机 \"%s\",端口号 \"%s\".\n"
+
+# command.c:981
+#: command.c:3148
 #, c-format
 msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n"
 msgstr "您现在已经连接到数据库 \"%s\", 用户 \"%s\",主机 \"%s\",端口号 \"%s\".\n"
 
 # command.c:981
-#: command.c:3084
+#: command.c:3153
 #, c-format
 msgid "You are now connected to database \"%s\" as user \"%s\".\n"
 msgstr "您现在已经连接到数据库 \"%s\",用户 \"%s\".\n"
 
-#: command.c:3117
+#: command.c:3186
 #, c-format
 msgid "%s (%s, server %s)\n"
 msgstr "%s (%s, 服务器 %s)\n"
 
-#: command.c:3125
+#: command.c:3194
 #, c-format
 msgid ""
 "WARNING: %s major version %s, server major version %s.\n"
@@ -458,26 +529,31 @@ msgstr ""
 "     一些psql功能可能无法正常使用.\n"
 
 # startup.c:652
-#: command.c:3162
+#: command.c:3232
 #, c-format
 msgid "SSL connection (protocol: %s, cipher: %s, bits: %s, compression: %s)\n"
 msgstr "SSL 连接(协议:%s,密码:%s,密钥位:%s,压缩:%s)\n"
 
-#: command.c:3163 command.c:3164 command.c:3165
+#: command.c:3233 command.c:3234 command.c:3235
 msgid "unknown"
 msgstr "未知"
 
 # help.c:48
-#: command.c:3166 help.c:45
+#: command.c:3236 help.c:46
 msgid "off"
 msgstr "关闭"
 
 # help.c:48
-#: command.c:3166 help.c:45
+#: command.c:3236 help.c:46
 msgid "on"
 msgstr "开启"
 
-#: command.c:3186
+#: command.c:3250
+#, c-format
+msgid "GSSAPI Encrypted connection\n"
+msgstr ""
+
+#: command.c:3270
 #, c-format
 msgid ""
 "WARNING: Console code page (%u) differs from Windows code page (%u)\n"
@@ -488,271 +564,305 @@ msgstr ""
 "         8-bit 字符可能无法正常工作。请查阅 psql 参考\n"
 "         页 \"Windows 用户注意事项\" 的详细说明。\n"
 
-#: command.c:3290
-#, c-format
-msgid "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a line number\n"
+#: command.c:3374
+#, fuzzy, c-format
+#| msgid "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a line number\n"
+msgid "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a line number"
 msgstr "必须设置环境变量 PSQL_EDITOR_LINENUMBER_ARG,用于指定行号\n"
 
 # command.c:1103
-#: command.c:3319
-#, c-format
-msgid "could not start editor \"%s\"\n"
+#: command.c:3403
+#, fuzzy, c-format
+#| msgid "could not start editor \"%s\"\n"
+msgid "could not start editor \"%s\""
 msgstr "无法启动编辑器 \"%s\"\n"
 
 # command.c:1105
-#: command.c:3321
-#, c-format
-msgid "could not start /bin/sh\n"
+#: command.c:3405
+#, fuzzy, c-format
+#| msgid "could not start /bin/sh\n"
+msgid "could not start /bin/sh"
 msgstr "无法启动 /bin/sh\n"
 
 # command.c:1148
-#: command.c:3359
-#, c-format
-msgid "could not locate temporary directory: %s\n"
+#: command.c:3443
+#, fuzzy, c-format
+#| msgid "could not locate temporary directory: %s\n"
+msgid "could not locate temporary directory: %s"
 msgstr "找不到临时目录:%s\n"
 
 # command.c:1148
-#: command.c:3386
+#: command.c:3470
 #, c-format
-msgid "could not open temporary file \"%s\": %s\n"
-msgstr "无法打开临时文件 \"%s\": %s\n"
+msgid "could not open temporary file \"%s\": %m"
+msgstr "无法打开临时文件 \"%s\": %m"
 
-# command.c:1340
-#: command.c:3660
+#: command.c:3763
 #, c-format
-msgid "\\pset: allowed formats are unaligned, aligned, wrapped, html, asciidoc, latex, latex-longtable, troff-ms\n"
+msgid "\\pset: ambiguous abbreviation \"%s\" matches both \"%s\" and \"%s\""
+msgstr ""
+
+# command.c:1340
+#: command.c:3783
+#, fuzzy, c-format
+#| msgid "\\pset: allowed formats are unaligned, aligned, wrapped, html, asciidoc, latex, latex-longtable, troff-ms\n"
+msgid "\\pset: allowed formats are aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped"
 msgstr "\\pset: 允许的格式是 unaligned, aligned, wrapped, html, asciidoc, latex, latex-longtable, troff-ms\n"
 
-#: command.c:3678
-#, c-format
-msgid "\\pset: allowed line styles are ascii, old-ascii, unicode\n"
+#: command.c:3802
+#, fuzzy, c-format
+#| msgid "\\pset: allowed line styles are ascii, old-ascii, unicode\n"
+msgid "\\pset: allowed line styles are ascii, old-ascii, unicode"
 msgstr "\\pset: 所允许使用的文本风格是ASCII, OLD-ASCII, UNICODE\n"
 
-#: command.c:3693
-#, c-format
-msgid "\\pset: allowed Unicode border line styles are single, double\n"
+#: command.c:3817
+#, fuzzy, c-format
+#| msgid "\\pset: allowed Unicode border line styles are single, double\n"
+msgid "\\pset: allowed Unicode border line styles are single, double"
 msgstr "\\pset:允许的 Unicode 边界线型是 single 和 double\n"
 
-#: command.c:3708
-#, c-format
-msgid "\\pset: allowed Unicode column line styles are single, double\n"
+#: command.c:3832
+#, fuzzy, c-format
+#| msgid "\\pset: allowed Unicode column line styles are single, double\n"
+msgid "\\pset: allowed Unicode column line styles are single, double"
 msgstr "\\pset:允许的 Unicode 列线型是 single 和 double\n"
 
-#: command.c:3723
-#, c-format
-msgid "\\pset: allowed Unicode header line styles are single, double\n"
+#: command.c:3847
+#, fuzzy, c-format
+#| msgid "\\pset: allowed Unicode header line styles are single, double\n"
+msgid "\\pset: allowed Unicode header line styles are single, double"
 msgstr "\\pset:允许的 Unicode 页眉线型是 single 和 double\n"
 
-# command.c:1493
-#: command.c:3888 command.c:4067
+#: command.c:3890
 #, c-format
-msgid "\\pset: unknown option: %s\n"
+msgid "\\pset: csv_fieldsep must be a single one-byte character"
+msgstr ""
+
+#: command.c:3895
+#, c-format
+msgid "\\pset: csv_fieldsep cannot be a double quote, a newline, or a carriage return"
+msgstr ""
+
+# command.c:1493
+#: command.c:4032 command.c:4218
+#, fuzzy, c-format
+#| msgid "\\pset: unknown option: %s\n"
+msgid "\\pset: unknown option: %s"
 msgstr "\\pset: 不明选项: %s\n"
 
 # command.c:1355
-#: command.c:3906
+#: command.c:4050
 #, c-format
 msgid "Border style is %d.\n"
 msgstr "边缘风格是 %d。\n"
 
-#: command.c:3912
+#: command.c:4056
 #, c-format
 msgid "Target width is unset.\n"
 msgstr "目标宽度未设置.\n"
 
-#: command.c:3914
+#: command.c:4058
 #, c-format
 msgid "Target width is %d.\n"
 msgstr "目标宽度为 %d.\n"
 
 # command.c:1364
-#: command.c:3921
+#: command.c:4065
 #, c-format
 msgid "Expanded display is on.\n"
 msgstr "扩展显示已打开。\n"
 
 # command.c:1364
-#: command.c:3923
+#: command.c:4067
 #, c-format
 msgid "Expanded display is used automatically.\n"
 msgstr "扩展显示已自动打开。\n"
 
 # command.c:1365
-#: command.c:3925
+#: command.c:4069
 #, c-format
 msgid "Expanded display is off.\n"
 msgstr "扩展显示已关闭。\n"
 
 # command.c:1389
-#: command.c:3932 command.c:3940
+#: command.c:4075
+#, fuzzy, c-format
+#| msgid "Field separator is \"%s\".\n"
+msgid "Field separator for CSV is \"%s\".\n"
+msgstr "栏位分隔符号是 \"%s\"。\n"
+
+# command.c:1389
+#: command.c:4083 command.c:4091
 #, c-format
 msgid "Field separator is zero byte.\n"
 msgstr "栏位分隔符号是0字节\n"
 
 # command.c:1389
-#: command.c:3934
+#: command.c:4085
 #, c-format
 msgid "Field separator is \"%s\".\n"
 msgstr "栏位分隔符号是 \"%s\"。\n"
 
 # command.c:1485
-#: command.c:3947
+#: command.c:4098
 #, c-format
 msgid "Default footer is on.\n"
 msgstr "打开默认步进器。\n"
 
 # command.c:1487
-#: command.c:3949
+#: command.c:4100
 #, c-format
 msgid "Default footer is off.\n"
 msgstr "关闭默认步进器。\n"
 
 # command.c:1345
-#: command.c:3955
+#: command.c:4106
 #, c-format
 msgid "Output format is %s.\n"
 msgstr "输出格式是 %s。\n"
 
 # command.c:1355
-#: command.c:3961
+#: command.c:4112
 #, c-format
 msgid "Line style is %s.\n"
 msgstr "文本的风格是%s. \n"
 
 # command.c:1377
-#: command.c:3968
+#: command.c:4119
 #, c-format
 msgid "Null display is \"%s\".\n"
 msgstr " \"%s\" 是空值显示。\n"
 
-#: command.c:3976
+#: command.c:4127
 #, c-format
 msgid "Locale-adjusted numeric output is on.\n"
 msgstr "启动语言环境调整后的数值输出。\n"
 
-#: command.c:3978
+#: command.c:4129
 #, c-format
 msgid "Locale-adjusted numeric output is off.\n"
 msgstr "关闭语言环境调整后的数值输出。\n"
 
 # command.c:1470
-#: command.c:3985
+#: command.c:4136
 #, c-format
 msgid "Pager is used for long output.\n"
 msgstr "显示大量数据时使用分页器。\n"
 
 # command.c:1472
-#: command.c:3987
+#: command.c:4138
 #, c-format
 msgid "Pager is always used.\n"
 msgstr "总是使用分页器。\n"
 
 # command.c:1474
-#: command.c:3989
+#: command.c:4140
 #, c-format
 msgid "Pager usage is off.\n"
 msgstr "不使用分页器。\n"
 
-#: command.c:3995
+#: command.c:4146
 #, 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:4005 command.c:4015
+#: command.c:4156 command.c:4166
 #, c-format
 msgid "Record separator is zero byte.\n"
 msgstr "记录分隔符号是 0字节。\n"
 
 # command.c:1403
-#: command.c:4007
+#: command.c:4158
 #, c-format
 msgid "Record separator is <newline>.\n"
 msgstr "记录分隔符号是 <newline>。\n"
 
 # command.c:1405
-#: command.c:4009
+#: command.c:4160
 #, c-format
 msgid "Record separator is \"%s\".\n"
 msgstr "记录分隔符号是 \"%s\"。\n"
 
 # command.c:1452
-#: command.c:4022
+#: command.c:4173
 #, c-format
 msgid "Table attributes are \"%s\".\n"
 msgstr "表属性是 \"%s\".\n"
 
 # command.c:1454
-#: command.c:4025
+#: command.c:4176
 #, c-format
 msgid "Table attributes unset.\n"
 msgstr "未设置数据表属性。\n"
 
 # command.c:1434
-#: command.c:4032
+#: command.c:4183
 #, c-format
 msgid "Title is \"%s\".\n"
 msgstr "标题是 \"%s\"。\n"
 
 # command.c:1436
-#: command.c:4034
+#: command.c:4185
 #, c-format
 msgid "Title is unset.\n"
 msgstr "无标题。\n"
 
 # command.c:1418
-#: command.c:4041
+#: command.c:4192
 #, c-format
 msgid "Tuples only is on.\n"
 msgstr "开启只显示元组。\n"
 
 # command.c:1418
-#: command.c:4043
+#: command.c:4194
 #, c-format
 msgid "Tuples only is off.\n"
 msgstr "关闭只显示元组。\n"
 
 # command.c:1355
-#: command.c:4049
+#: command.c:4200
 #, c-format
 msgid "Unicode border line style is \"%s\".\n"
 msgstr "Unicode 边界线型是 \"%s\"。\n"
 
 # command.c:1355
-#: command.c:4055
+#: command.c:4206
 #, c-format
 msgid "Unicode column line style is \"%s\".\n"
 msgstr "Unicode 列线型是 \"%s\"。\n"
 
 # command.c:1355
-#: command.c:4061
+#: command.c:4212
 #, c-format
 msgid "Unicode header line style is \"%s\".\n"
 msgstr "Unicode 页眉线型是 \"%s\"。\n"
 
 # command.c:1532
-#: command.c:4221
-#, c-format
-msgid "\\!: failed\n"
+#: command.c:4374
+#, fuzzy, c-format
+#| msgid "\\!: failed\n"
+msgid "\\!: failed"
 msgstr "\\!:失败\n"
 
-#: command.c:4246 common.c:802
-#, c-format
-msgid "\\watch cannot be used with an empty query\n"
+#: command.c:4399 common.c:781
+#, fuzzy, c-format
+#| msgid "\\watch cannot be used with an empty query\n"
+msgid "\\watch cannot be used with an empty query"
 msgstr "\\watch命令不能用于空查询\n"
 
-#: command.c:4287
+#: command.c:4440
 #, c-format
 msgid "%s\t%s (every %gs)\n"
 msgstr "%s\t%s (每 %gs)\n"
 
-#: command.c:4290
+#: command.c:4443
 #, c-format
 msgid "%s (every %gs)\n"
 msgstr "%s (每 %gs)\n"
 
-#: command.c:4344 command.c:4351 common.c:702 common.c:709 common.c:1366
+#: command.c:4497 command.c:4504 common.c:681 common.c:688 common.c:1345
 #, c-format
 msgid ""
 "********* QUERY **********\n"
@@ -765,113 +875,131 @@ msgstr ""
 "**************************\n"
 "\n"
 
-#: command.c:4543
-#, c-format
-msgid "\"%s.%s\" is not a view\n"
+#: command.c:4696
+#, fuzzy, c-format
+#| msgid "\"%s.%s\" is not a view\n"
+msgid "\"%s.%s\" is not a view"
 msgstr "\"%s.%s\"不是一个视图\n"
 
-#: command.c:4559
-#, c-format
-msgid "could not parse reloptions array\n"
+#: command.c:4712
+#, fuzzy, c-format
+#| msgid "could not parse reloptions array\n"
+msgid "could not parse reloptions array"
 msgstr "无法解析 reloptions 数组\n"
 
-#: common.c:159
-#, c-format
-msgid "cannot escape without active connection\n"
+#: common.c:160
+#, fuzzy, c-format
+#| msgid "cannot escape without active connection\n"
+msgid "cannot escape without active connection"
 msgstr "没有数据库连接时无法escape\n"
 
-#: common.c:200
-#, c-format
-msgid "shell command argument contains a newline or carriage return: \"%s\"\n"
+#: common.c:201
+#, fuzzy, c-format
+#| msgid "shell command argument contains a newline or carriage return: \"%s\"\n"
+msgid "shell command argument contains a newline or carriage return: \"%s\""
 msgstr "shell命令参数包含换行符或回车符: \"%s\"\n"
 
 # common.c:298
-#: common.c:416
-#, c-format
-msgid "connection to server was lost\n"
+#: common.c:395
+#, fuzzy, c-format
+#| msgid "connection to server was lost\n"
+msgid "connection to server was lost"
 msgstr "与数据库的连接已经断开\n"
 
 # common.c:302
-#: common.c:420
+#: common.c:399
 #, c-format
 msgid "The connection to the server was lost. Attempting reset: "
 msgstr "与服务器的连接已断开,正在试图重置: "
 
 # common.c:307
-#: common.c:425
+#: common.c:404
 #, c-format
 msgid "Failed.\n"
 msgstr "失败。\n"
 
 # common.c:314
-#: common.c:432
+#: common.c:411
 #, c-format
 msgid "Succeeded.\n"
 msgstr "完成。\n"
 
 # fe-exec.c:1371
-#: common.c:532 common.c:1084 common.c:1301
-#, c-format
-msgid "unexpected PQresultStatus: %d\n"
+#: common.c:511 common.c:1063 common.c:1280
+#, fuzzy, c-format
+#| msgid "unexpected PQresultStatus: %d\n"
+msgid "unexpected PQresultStatus: %d"
 msgstr "意外的 PQresultStatus: %d\n"
 
 # common.c:930
-#: common.c:641
+#: common.c:620
 #, c-format
 msgid "Time: %.3f ms\n"
 msgstr "时间:%.3f ms\n"
 
 # common.c:930
-#: common.c:656
+#: common.c:635
 #, c-format
 msgid "Time: %.3f ms (%02d:%06.3f)\n"
 msgstr "时间:%.3f ms (%02d:%06.3f)\n"
 
-#: common.c:665
+#: common.c:644
 #, c-format
 msgid "Time: %.3f ms (%02d:%02d:%06.3f)\n"
 msgstr "时间: %.3f ms (%02d:%02d:%06.3f)\n"
 
-#: common.c:672
+#: common.c:651
 #, c-format
 msgid "Time: %.3f ms (%.0f d %02d:%02d:%06.3f)\n"
 msgstr "时间:%.3f ms (%.0f d %02d:%02d:%06.3f)\n"
 
-#: common.c:809
-#, c-format
-msgid "\\watch cannot be used with COPY\n"
+# common.c:636
+# common.c:871
+#: common.c:675 common.c:733 common.c:1316
+#, fuzzy, c-format
+#| msgid "You are currently not connected to a database.\n"
+msgid "You are currently not connected to a database."
+msgstr "你目前没有连接到数据库。\n"
+
+#: common.c:788
+#, fuzzy, c-format
+#| msgid "\\watch cannot be used with COPY\n"
+msgid "\\watch cannot be used with COPY"
 msgstr "\\watch不能用于COPY命令中\n"
 
 # fe-exec.c:1371
-#: common.c:814
-#, c-format
-msgid "unexpected result status for \\watch\n"
+#: common.c:793
+#, fuzzy, c-format
+#| msgid "unexpected result status for \\watch\n"
+msgid "unexpected result status for \\watch"
 msgstr "\\Watch出现意外的结果状态\n"
 
 # common.c:691
-#: common.c:844
+#: common.c:823
 #, c-format
 msgid "Asynchronous notification \"%s\" with payload \"%s\" received from server process with PID %d.\n"
 msgstr "从PID为%3$d的服务器进程接收到带有字节流量\"%2$s\"的异步通知消息\"%1$s\".\n"
 
 # common.c:691
-#: common.c:847
+#: common.c:826
 #, c-format
 msgid "Asynchronous notification \"%s\" received from server process with PID %d.\n"
 msgstr "收到来自服务器 \"%s\" 进程 PID %d 非同步通知。\n"
 
-#: common.c:910
-#, c-format
-msgid "no rows returned for \\gset\n"
+#: common.c:889
+#, fuzzy, c-format
+#| msgid "no rows returned for \\gset\n"
+msgid "no rows returned for \\gset"
 msgstr "\\gset没有记录行返回\n"
 
-#: common.c:915
-#, c-format
-msgid "more than one row returned for \\gset\n"
+#: common.c:894
+#, fuzzy, c-format
+#| msgid "more than one row returned for \\gset\n"
+msgid "more than one row returned for \\gset"
 msgstr "\\gset返回超过1个记录行\n"
 
 # common.c:879
-#: common.c:1346
+#: common.c:1325
 #, c-format
 msgid ""
 "***(Single step mode: verify command)*******************************************\n"
@@ -883,24 +1011,27 @@ msgstr ""
 "***(按 Enter 键继续或键入 x 来取消)********************\n"
 
 # describe.c:117
-#: common.c:1401
-#, c-format
-msgid "The server (version %s) does not support savepoints for ON_ERROR_ROLLBACK.\n"
+#: common.c:1380
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support savepoints for ON_ERROR_ROLLBACK.\n"
+msgid "The server (version %s) does not support savepoints for ON_ERROR_ROLLBACK."
 msgstr "服务器(版本 %s)不支持保存点(Savepoint)ON_ERROR_ROLLBACK。\n"
 
-#: common.c:1464
-#, c-format
-msgid "STATEMENT:  %s\n"
+#: common.c:1443
+#, fuzzy, c-format
+#| msgid "STATEMENT:  %s\n"
+msgid "STATEMENT:  %s"
 msgstr "语句:%s\n"
 
 # large_obj.c:58
-#: common.c:1507
-#, c-format
-msgid "unexpected transaction status (%d)\n"
+#: common.c:1486
+#, fuzzy, c-format
+#| msgid "unexpected transaction status (%d)\n"
+msgid "unexpected transaction status (%d)"
 msgstr "意外的事务状态值 (%d)\n"
 
 # describe.c:744
-#: common.c:1644 describe.c:1941
+#: common.c:1623 describe.c:2002
 msgid "Column"
 msgstr "栏位"
 
@@ -908,74 +1039,97 @@ msgstr "栏位"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: common.c:1645 describe.c:175 describe.c:390 describe.c:408 describe.c:453
-#: describe.c:470 describe.c:959 describe.c:1123 describe.c:1664
-#: describe.c:1688 describe.c:1942 describe.c:3529 describe.c:3734
-#: describe.c:4925
+#: common.c:1624 describe.c:179 describe.c:394 describe.c:412 describe.c:457
+#: describe.c:474 describe.c:963 describe.c:1127 describe.c:1712
+#: describe.c:1736 describe.c:2003 describe.c:3673 describe.c:3858
+#: describe.c:4091 describe.c:5297
 msgid "Type"
 msgstr "类型"
 
-#: common.c:1694
+#: common.c:1673
 #, c-format
 msgid "The command has no result, or the result has no columns.\n"
 msgstr "命令没有结果,或者结果没有列.\n"
 
 # copy.c:122
-#: copy.c:99
-#, c-format
-msgid "\\copy: arguments required\n"
+#: copy.c:100
+#, fuzzy, c-format
+#| msgid "\\copy: arguments required\n"
+msgid "\\copy: arguments required"
 msgstr "\\copy:需要参数\n"
 
 # copy.c:408
-#: copy.c:254
-#, c-format
-msgid "\\copy: parse error at \"%s\"\n"
+#: copy.c:255
+#, fuzzy, c-format
+#| msgid "\\copy: parse error at \"%s\"\n"
+msgid "\\copy: parse error at \"%s\""
 msgstr "\\copy:在 \"%s\" 发生解读错误\n"
 
 # copy.c:410
-#: copy.c:256
-#, c-format
-msgid "\\copy: parse error at end of line\n"
+#: copy.c:257
+#, fuzzy, c-format
+#| msgid "\\copy: parse error at end of line\n"
+msgid "\\copy: parse error at end of line"
 msgstr "\\copy:在行尾发生解读错误\n"
 
-#: copy.c:329
+#: copy.c:330
 #, c-format
-msgid "could not execute command \"%s\": %s\n"
-msgstr "无法执行命令 \"%s\": %s\n"
+msgid "could not execute command \"%s\": %m"
+msgstr "无法执行命令 \"%s\": %m"
 
-#: copy.c:345
+#: copy.c:346
 #, c-format
-msgid "could not stat file \"%s\": %s\n"
-msgstr "无法获取文件 \"%s\":%s 的状态\n"
+msgid "could not stat file \"%s\": %m"
+msgstr "无法取文件 \"%s\" 的状态: %m"
 
 # copy.c:541
-#: copy.c:349
-#, c-format
-msgid "%s: cannot copy from/to a directory\n"
+#: copy.c:350
+#, fuzzy, c-format
+#| msgid "%s: cannot copy from/to a directory\n"
+msgid "%s: cannot copy from/to a directory"
 msgstr "%s:无法从目录复制或复制到目录\n"
 
-#: copy.c:386
+#: copy.c:387
 #, c-format
-msgid "could not close pipe to external command: %s\n"
-msgstr "无法为外部命令: %s关闭管道\n"
+msgid "could not close pipe to external command: %m"
+msgstr "无法为外部命令: %m关闭管道"
 
-# command.c:1103
-#: copy.c:455 copy.c:466
+# command.c:788
+# command.c:808
+# command.c:1163
+# command.c:1170
+# command.c:1180
+# command.c:1192
+# command.c:1205
+# command.c:1219
+# command.c:1241
+# command.c:1272
+# common.c:170
+# copy.c:530
+# copy.c:575
+#: copy.c:392
 #, c-format
-msgid "could not write COPY data: %s\n"
+msgid "%s: %s"
+msgstr "%s: %s"
+
+# command.c:1103
+#: copy.c:455 copy.c:465
+#, fuzzy, c-format
+#| msgid "could not write COPY data: %s\n"
+msgid "could not write COPY data: %m"
 msgstr "无法写入 COPY 数据:%s\n"
 
-#: copy.c:473
+#: copy.c:471
 #, c-format
 msgid "COPY data transfer failed: %s"
 msgstr "COPY 数据转换失败:%s"
 
-#: copy.c:534
+#: copy.c:532
 msgid "canceled by user"
 msgstr "依用户取消"
 
 # copy.c:668
-#: copy.c:545
+#: copy.c:543
 msgid ""
 "Enter data to be copied followed by a newline.\n"
 "End with a backslash and a period on a line by itself, or an EOF signal."
@@ -983,58 +1137,67 @@ msgstr ""
 "输入要复制的数据并且换行。\n"
 "在独立的一行上输入一个反斜线和一个句点结束,或者以一个EOF信号结束."
 
-#: copy.c:673
+#: copy.c:671
 msgid "aborted because of read failure"
 msgstr "因读取失败已被中止"
 
-#: copy.c:707
+#: copy.c:705
 msgid "trying to exit copy mode"
 msgstr "正在尝试退出"
 
-#: crosstabview.c:123
-#, c-format
-msgid "\\crosstabview: statement did not return a result set\n"
+#: crosstabview.c:124
+#, fuzzy, c-format
+#| msgid "\\crosstabview: statement did not return a result set\n"
+msgid "\\crosstabview: statement did not return a result set"
 msgstr "\\crosstabview:语句未返回结果集\n"
 
-#: crosstabview.c:129
-#, c-format
-msgid "\\crosstabview: query must return at least three columns\n"
+#: crosstabview.c:130
+#, fuzzy, c-format
+#| msgid "\\crosstabview: query must return at least three columns\n"
+msgid "\\crosstabview: query must return at least three columns"
 msgstr "\\crosstabview:查询必须返回至少三列\n"
 
-#: crosstabview.c:156
-#, c-format
-msgid "\\crosstabview: vertical and horizontal headers must be different columns\n"
+#: crosstabview.c:157
+#, fuzzy, c-format
+#| msgid "\\crosstabview: vertical and horizontal headers must be different columns\n"
+msgid "\\crosstabview: vertical and horizontal headers must be different columns"
 msgstr "\\crosstabview: 垂直和水平表头必须是不同的列\n"
 
-#: crosstabview.c:172
-#, c-format
-msgid "\\crosstabview: data column must be specified when query returns more than three columns\n"
+#: crosstabview.c:173
+#, fuzzy, c-format
+#| msgid "\\crosstabview: data column must be specified when query returns more than three columns\n"
+msgid "\\crosstabview: data column must be specified when query returns more than three columns"
 msgstr "\\crosstabview: 当查询返回三列以上时,必须指定数据列\n"
 
-#: crosstabview.c:228
-#, c-format
-msgid "\\crosstabview: maximum number of columns (%d) exceeded\n"
+#: crosstabview.c:229
+#, fuzzy, c-format
+#| msgid "\\crosstabview: maximum number of columns (%d) exceeded\n"
+msgid "\\crosstabview: maximum number of columns (%d) exceeded"
 msgstr "\\crosstabview: 超过最大列数(%d)\n"
 
-#: crosstabview.c:397
-#, c-format
-msgid "\\crosstabview: query result contains multiple data values for row \"%s\", column \"%s\"\n"
+#: crosstabview.c:398
+#, fuzzy, c-format
+#| msgid "\\crosstabview: query result contains multiple data values for row \"%s\", column \"%s\"\n"
+msgid "\\crosstabview: query result contains multiple data values for row \"%s\", column \"%s\""
 msgstr "\\crosstabview: 查询结果包含行\"%s\"、列\"%s\"的多个数据值\n"
 
 # fe-exec.c:2108 fe-exec.c:2141
-#: crosstabview.c:645
-#, c-format
-msgid "\\crosstabview: column number %d is out of range 1..%d\n"
+#: crosstabview.c:646
+#, fuzzy, c-format
+#| msgid "\\crosstabview: column number %d is out of range 1..%d\n"
+msgid "\\crosstabview: column number %d is out of range 1..%d"
 msgstr "\\crosstabview: 列号码 %d 超出了范围 1..%d\n"
 
-#: crosstabview.c:670
-#, c-format
-msgid "\\crosstabview: ambiguous column name: \"%s\"\n"
+#: crosstabview.c:671
+#, fuzzy, c-format
+#| msgid "\\crosstabview: ambiguous column name: \"%s\"\n"
+msgid "\\crosstabview: ambiguous column name: \"%s\""
 msgstr "\\crosstabview: 不明确的列名: \"%s\"\n"
 
-#: crosstabview.c:678
-#, c-format
-msgid "\\crosstabview: column name not found: \"%s\"\n"
+#: crosstabview.c:679
+#, fuzzy, c-format
+#| msgid "\\crosstabview: column name not found: \"%s\"\n"
+msgid "\\crosstabview: column name not found: \"%s\""
 msgstr "\\crosstabview: 找不到列名: \"%s\"\n"
 
 # describe.c:82
@@ -1046,11 +1209,11 @@ msgstr "\\crosstabview: 找不到列名: \"%s\"\n"
 # describe.c:1476
 # describe.c:1585
 # describe.c:1633
-#: describe.c:75 describe.c:370 describe.c:675 describe.c:807 describe.c:951
-#: describe.c:1112 describe.c:1184 describe.c:3518 describe.c:3732
-#: describe.c:3823 describe.c:4090 describe.c:4235 describe.c:4476
-#: describe.c:4551 describe.c:4562 describe.c:4624 describe.c:5049
-#: describe.c:5132
+#: describe.c:77 describe.c:374 describe.c:679 describe.c:811 describe.c:955
+#: describe.c:1116 describe.c:1188 describe.c:3662 describe.c:3845
+#: describe.c:4089 describe.c:4180 describe.c:4447 describe.c:4607
+#: describe.c:4848 describe.c:4923 describe.c:4934 describe.c:4996
+#: describe.c:5421 describe.c:5504
 msgid "Schema"
 msgstr "架构模式"
 
@@ -1066,24 +1229,24 @@ msgstr "架构模式"
 # describe.c:1586
 # describe.c:1634
 # describe.c:1727
-#: describe.c:76 describe.c:173 describe.c:240 describe.c:248 describe.c:371
-#: describe.c:676 describe.c:808 describe.c:869 describe.c:952 describe.c:1185
-#: describe.c:3519 describe.c:3655 describe.c:3733 describe.c:3824
-#: describe.c:3903 describe.c:4091 describe.c:4160 describe.c:4236
-#: describe.c:4477 describe.c:4552 describe.c:4563 describe.c:4625
-#: describe.c:4822 describe.c:4906 describe.c:5130 describe.c:5302
-#: describe.c:5527
+#: describe.c:78 describe.c:176 describe.c:244 describe.c:252 describe.c:375
+#: describe.c:680 describe.c:812 describe.c:873 describe.c:956 describe.c:1189
+#: describe.c:3663 describe.c:3846 describe.c:4012 describe.c:4090
+#: describe.c:4181 describe.c:4260 describe.c:4448 describe.c:4532
+#: describe.c:4608 describe.c:4849 describe.c:4924 describe.c:4935
+#: describe.c:4997 describe.c:5194 describe.c:5278 describe.c:5502
+#: describe.c:5674 describe.c:5899
 msgid "Name"
 msgstr "名称"
 
 # describe.c:177
-#: describe.c:77 describe.c:383 describe.c:401 describe.c:447 describe.c:464
+#: describe.c:79 describe.c:387 describe.c:405 describe.c:451 describe.c:468
 msgid "Result data type"
 msgstr "结果数据类型"
 
 # describe.c:178
-#: describe.c:85 describe.c:98 describe.c:102 describe.c:384 describe.c:402
-#: describe.c:448 describe.c:465
+#: describe.c:87 describe.c:100 describe.c:104 describe.c:388 describe.c:406
+#: describe.c:452 describe.c:469
 msgid "Argument data types"
 msgstr "参数数据类型"
 
@@ -1097,46 +1260,53 @@ msgstr "参数数据类型"
 # describe.c:1488
 # describe.c:1733
 # large_obj.c:256
-#: describe.c:110 describe.c:117 describe.c:183 describe.c:271 describe.c:510
-#: describe.c:724 describe.c:823 describe.c:894 describe.c:1187 describe.c:1960
-#: describe.c:3307 describe.c:3554 describe.c:3686 describe.c:3760
-#: describe.c:3833 describe.c:3916 describe.c:3999 describe.c:4103
-#: describe.c:4169 describe.c:4237 describe.c:4378 describe.c:4420
-#: describe.c:4493 describe.c:4555 describe.c:4564 describe.c:4626
-#: describe.c:4848 describe.c:4928 describe.c:5063 describe.c:5133
-#: large_obj.c:289 large_obj.c:299
+#: describe.c:112 describe.c:119 describe.c:187 describe.c:275 describe.c:514
+#: describe.c:728 describe.c:827 describe.c:898 describe.c:1191 describe.c:2021
+#: describe.c:3451 describe.c:3698 describe.c:3892 describe.c:4043
+#: describe.c:4117 describe.c:4190 describe.c:4273 describe.c:4356
+#: describe.c:4475 describe.c:4541 describe.c:4609 describe.c:4750
+#: describe.c:4792 describe.c:4865 describe.c:4927 describe.c:4936
+#: describe.c:4998 describe.c:5220 describe.c:5300 describe.c:5435
+#: describe.c:5505 large_obj.c:290 large_obj.c:300
 msgid "Description"
 msgstr "描述"
 
 # describe.c:97
-#: describe.c:135
+#: describe.c:137
 msgid "List of aggregate functions"
 msgstr "聚集函数列表"
 
 # describe.c:117
-#: describe.c:160
-#, c-format
-msgid "The server (version %s) does not support access methods.\n"
+#: describe.c:162
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support access methods.\n"
+msgid "The server (version %s) does not support access methods."
 msgstr "服务器(版本%s) 不支持访问方法.\n"
 
 # describe.c:543
 # describe.c:1477
-#: describe.c:174
+#: describe.c:177
 msgid "Index"
 msgstr "索引"
 
-#: describe.c:182 describe.c:4827
+# describe.c:1483
+#: describe.c:178 describe.c:3679 describe.c:3871 describe.c:5422
+msgid "Table"
+msgstr "数据表"
+
+#: describe.c:186 describe.c:5199
 msgid "Handler"
 msgstr "处理函数"
 
-#: describe.c:201
+#: describe.c:205
 msgid "List of access methods"
 msgstr "访问方法列表"
 
 # describe.c:117
-#: describe.c:227
-#, c-format
-msgid "The server (version %s) does not support tablespaces.\n"
+#: describe.c:231
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support tablespaces.\n"
+msgid "The server (version %s) does not support tablespaces."
 msgstr "服务器(版本%s) 不支持使用表空间.\n"
 
 # describe.c:128
@@ -1144,180 +1314,182 @@ msgstr "服务器(版本%s) 不支持使用表空间.\n"
 # describe.c:362
 # describe.c:1478
 # describe.c:1727
-#: describe.c:241 describe.c:249 describe.c:498 describe.c:714 describe.c:870
-#: describe.c:1111 describe.c:3530 describe.c:3659 describe.c:3905
-#: describe.c:4161 describe.c:4823 describe.c:4907 describe.c:5303
-#: describe.c:5429 describe.c:5528 large_obj.c:288
+#: describe.c:245 describe.c:253 describe.c:502 describe.c:718 describe.c:874
+#: describe.c:1115 describe.c:3674 describe.c:3847 describe.c:4016
+#: describe.c:4262 describe.c:4533 describe.c:5195 describe.c:5279
+#: describe.c:5675 describe.c:5801 describe.c:5900 large_obj.c:289
 msgid "Owner"
 msgstr "拥有者"
 
 # describe.c:128
-#: describe.c:242 describe.c:250
+#: describe.c:246 describe.c:254
 msgid "Location"
 msgstr "所在地"
 
-#: describe.c:261 describe.c:3126
+#: describe.c:265 describe.c:3269
 msgid "Options"
 msgstr "选项"
 
 # describe.c:257
-#: describe.c:266 describe.c:687 describe.c:886 describe.c:3546 describe.c:3550
+#: describe.c:270 describe.c:691 describe.c:890 describe.c:3690 describe.c:3694
 msgid "Size"
 msgstr "大小"
 
 # describe.c:150
-#: describe.c:288
+#: describe.c:292
 msgid "List of tablespaces"
 msgstr "表空间列表"
 
-#: describe.c:330
-#, c-format
-msgid "\\df only takes [anptwS+] as options\n"
+#: describe.c:334
+#, fuzzy, c-format
+#| msgid "\\df only takes [anptwS+] as options\n"
+msgid "\\df only takes [anptwS+] as options"
 msgstr "\\df 只能将 [anptwS+]作为选项\n"
 
-#: describe.c:338 describe.c:349
-#, c-format
-msgid "\\df does not take a \"%c\" option with server version %s\n"
+#: describe.c:342 describe.c:353
+#, fuzzy, c-format
+#| msgid "\\df does not take a \"%c\" option with server version %s\n"
+msgid "\\df does not take a \"%c\" option with server version %s"
 msgstr "\\df 不能有带着服务器版本%2$s 的选项\"%1$c\"\n"
 
 #. translator: "agg" is short for "aggregate"
-#: describe.c:386 describe.c:404 describe.c:450 describe.c:467
+#: describe.c:390 describe.c:408 describe.c:454 describe.c:471
 msgid "agg"
 msgstr "agg"
 
-#: describe.c:387 describe.c:405
+#: describe.c:391 describe.c:409
 msgid "window"
 msgstr "窗口"
 
-#: describe.c:388
+#: describe.c:392
 msgid "proc"
 msgstr "proc"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:389 describe.c:407 describe.c:452 describe.c:469
+#: describe.c:393 describe.c:411 describe.c:456 describe.c:473
 msgid "func"
 msgstr "函数"
 
 # describe.c:575
-#: describe.c:406 describe.c:451 describe.c:468 describe.c:1321
+#: describe.c:410 describe.c:455 describe.c:472 describe.c:1325
 msgid "trigger"
 msgstr "触发器"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:480
+#: describe.c:484
 msgid "immutable"
 msgstr "不可更改"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:481
+#: describe.c:485
 msgid "stable"
 msgstr "稳定"
 
-#: describe.c:482
+#: describe.c:486
 msgid "volatile"
 msgstr "不稳定性"
 
-#: describe.c:483
+#: describe.c:487
 msgid "Volatility"
 msgstr "挥发性"
 
-#: describe.c:491
+#: describe.c:495
 msgid "restricted"
 msgstr "受限制的"
 
-#: describe.c:492
+#: describe.c:496
 msgid "safe"
 msgstr "安全的"
 
-#: describe.c:493
+#: describe.c:497
 msgid "unsafe"
 msgstr "不安全的"
 
-#: describe.c:494
+#: describe.c:498
 msgid "Parallel"
 msgstr "平行"
 
 # sql_help.h:221
-#: describe.c:499
+#: describe.c:503
 msgid "definer"
 msgstr "定义者"
 
-#: describe.c:500
+#: describe.c:504
 msgid "invoker"
 msgstr "调用者"
 
-#: describe.c:501
+#: describe.c:505
 msgid "Security"
 msgstr "安全"
 
 # describe.c:186
-#: describe.c:508
+#: describe.c:512
 msgid "Language"
 msgstr "程序语言"
 
 # describe.c:187
-#: describe.c:509
+#: describe.c:513
 msgid "Source code"
 msgstr "原始程式"
 
 # describe.c:221
-#: describe.c:638
+#: describe.c:642
 msgid "List of functions"
 msgstr "函数列表"
 
 # describe.c:257
-#: describe.c:686
+#: describe.c:690
 msgid "Internal name"
 msgstr "内部名称"
 
-#: describe.c:708
+#: describe.c:712
 msgid "Elements"
 msgstr "成员"
 
 # describe.c:289
-#: describe.c:765
+#: describe.c:769
 msgid "List of data types"
 msgstr "数据类型列表"
 
 # describe.c:321
-#: describe.c:809
+#: describe.c:813
 msgid "Left arg type"
 msgstr "左参数类型"
 
 # describe.c:321
-#: describe.c:810
+#: describe.c:814
 msgid "Right arg type"
 msgstr "右参数类型"
 
 # describe.c:322
-#: describe.c:811
+#: describe.c:815
 msgid "Result type"
 msgstr "结果类型"
 
 # describe.c:1691
-#: describe.c:816 describe.c:3911 describe.c:3976 describe.c:3982
-#: describe.c:4377
+#: describe.c:820 describe.c:4268 describe.c:4333 describe.c:4339
+#: describe.c:4749
 msgid "Function"
 msgstr "函数"
 
 # describe.c:336
-#: describe.c:841
+#: describe.c:845
 msgid "List of operators"
 msgstr "运算子列表"
 
 # describe.c:365
-#: describe.c:871
+#: describe.c:875
 msgid "Encoding"
 msgstr "字元编码"
 
 # describe.c:128
-#: describe.c:876 describe.c:4092
+#: describe.c:880 describe.c:4449
 msgid "Collate"
 msgstr "校对规则"
 
@@ -1325,77 +1497,83 @@ msgstr "校对规则"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: describe.c:877 describe.c:4093
+#: describe.c:881 describe.c:4450
 msgid "Ctype"
 msgstr "Ctype"
 
 # describe.c:1342
-#: describe.c:890
+#: describe.c:894
 msgid "Tablespace"
 msgstr "表空间"
 
 # describe.c:381
-#: describe.c:912
+#: describe.c:916
 msgid "List of databases"
 msgstr "数据库列表"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:953 describe.c:958 describe.c:1114 describe.c:3520
-#: describe.c:3527
+#: describe.c:957 describe.c:1118 describe.c:3664
 msgid "table"
 msgstr "数据表"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:954 describe.c:3521
+#: describe.c:958 describe.c:3665
 msgid "view"
 msgstr "视图"
 
-#: describe.c:955 describe.c:3522
+#: describe.c:959 describe.c:3666
 msgid "materialized view"
 msgstr "物化视图"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:956 describe.c:1116 describe.c:3524
+#: describe.c:960 describe.c:1120 describe.c:3668
 msgid "sequence"
 msgstr "序列数"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:957 describe.c:3526
+#: describe.c:961 describe.c:3670
 msgid "foreign table"
 msgstr "所引用的外表"
 
+#: describe.c:962 describe.c:3671 describe.c:3856
+#, fuzzy
+#| msgid "partition_name"
+msgid "partitioned table"
+msgstr "分区名"
+
 # sql_help.h:325
-#: describe.c:970
+#: describe.c:974
 msgid "Column privileges"
 msgstr "列特权"
 
-#: describe.c:1001 describe.c:1035
+#: describe.c:1005 describe.c:1039
 msgid "Policies"
 msgstr "策略"
 
 # describe.c:133
 # describe.c:415
 # describe.c:1733
-#: describe.c:1067 describe.c:5584 describe.c:5588
+#: describe.c:1071 describe.c:5956 describe.c:5960
 msgid "Access privileges"
 msgstr "存取权限"
 
 # describe.c:117
-#: describe.c:1098
-#, c-format
-msgid "The server (version %s) does not support altering default privileges.\n"
+#: describe.c:1102
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support altering default privileges.\n"
+msgid "The server (version %s) does not support altering default privileges."
 msgstr "服务器(版本%s)不支持修改默认权限.\n"
 
 # describe.c:498
-#: describe.c:1118
+#: describe.c:1122
 msgid "function"
 msgstr "函数"
 
@@ -1403,7 +1581,7 @@ msgstr "函数"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: describe.c:1120
+#: describe.c:1124
 msgid "type"
 msgstr "类型Ctype"
 
@@ -1416,437 +1594,474 @@ msgstr "类型Ctype"
 # describe.c:1476
 # describe.c:1585
 # describe.c:1633
-#: describe.c:1122
+#: describe.c:1126
 msgid "schema"
 msgstr "架构模式"
 
 # sql_help.h:325
-#: describe.c:1146
+#: describe.c:1150
 msgid "Default access privileges"
 msgstr "默认的访问权限"
 
 # describe.c:469
-#: describe.c:1186
+#: describe.c:1190
 msgid "Object"
 msgstr "对象"
 
-#: describe.c:1200
+#: describe.c:1204
 msgid "table constraint"
 msgstr "表约束"
 
-#: describe.c:1222
+#: describe.c:1226
 msgid "domain constraint"
 msgstr "域约束"
 
-#: describe.c:1250
+#: describe.c:1254
 msgid "operator class"
 msgstr "操作符类"
 
 # sql_help.h:269
-#: describe.c:1279
+#: describe.c:1283
 msgid "operator family"
 msgstr "操作符家族"
 
 # describe.c:559
-#: describe.c:1301
+#: describe.c:1305
 msgid "rule"
 msgstr "规则"
 
 # describe.c:593
-#: describe.c:1343
+#: describe.c:1347
 msgid "Object descriptions"
 msgstr "对象描述"
 
 # describe.c:641
-#: describe.c:1399 describe.c:3618
-#, c-format
-msgid "Did not find any relation named \"%s\".\n"
+#: describe.c:1403 describe.c:3762
+#, fuzzy, c-format
+#| msgid "Did not find any relation named \"%s\".\n"
+msgid "Did not find any relation named \"%s\"."
 msgstr "没有找到任何名称为 \"%s\" 的关联。\n"
 
 # describe.c:641
-#: describe.c:1402 describe.c:3621
-#, c-format
-msgid "Did not find any relations.\n"
+#: describe.c:1406 describe.c:3765
+#, fuzzy, c-format
+#| msgid "Did not find any relations.\n"
+msgid "Did not find any relations."
 msgstr "没有找到任何关系.\n"
 
 # describe.c:728
-#: describe.c:1619
-#, c-format
-msgid "Did not find any relation with OID %s.\n"
+#: describe.c:1661
+#, fuzzy, c-format
+#| msgid "Did not find any relation with OID %s.\n"
+msgid "Did not find any relation with OID %s."
 msgstr "没有找到任何OID为 %s 的关联。\n"
 
-#: describe.c:1665 describe.c:1689
+#: describe.c:1713 describe.c:1737
 msgid "Start"
 msgstr "起始值"
 
-#: describe.c:1666 describe.c:1690
+#: describe.c:1714 describe.c:1738
 msgid "Minimum"
 msgstr "最小值"
 
-#: describe.c:1667 describe.c:1691
+#: describe.c:1715 describe.c:1739
 msgid "Maximum"
 msgstr "最大值"
 
-#: describe.c:1668 describe.c:1692
+#: describe.c:1716 describe.c:1740
 msgid "Increment"
 msgstr "增量"
 
 # describe.c:1262
 # describe.c:1637
 # describe.c:1694
-#: describe.c:1669 describe.c:1693 describe.c:1818 describe.c:3827
-#: describe.c:3993
+#: describe.c:1717 describe.c:1741 describe.c:1872 describe.c:4184
+#: describe.c:4350 describe.c:4464 describe.c:4469
 msgid "yes"
 msgstr "是"
 
 # describe.c:1262
 # describe.c:1638
 # describe.c:1692
-#: describe.c:1670 describe.c:1694 describe.c:1819 describe.c:3827
-#: describe.c:3990
+#: describe.c:1718 describe.c:1742 describe.c:1873 describe.c:4184
+#: describe.c:4347 describe.c:4464
 msgid "no"
 msgstr "否"
 
-#: describe.c:1671 describe.c:1695
+#: describe.c:1719 describe.c:1743
 msgid "Cycles?"
 msgstr "循环?"
 
-#: describe.c:1672 describe.c:1696
+#: describe.c:1720 describe.c:1744
 msgid "Cache"
 msgstr "缓存"
 
-#: describe.c:1739
+#: describe.c:1787
 #, c-format
 msgid "Owned by: %s"
 msgstr "属于: %s"
 
-#: describe.c:1743
+#: describe.c:1791
 #, c-format
 msgid "Sequence for identity column: %s"
 msgstr "标识列的序列: %s"
 
 # describe.c:867
-#: describe.c:1750
+#: describe.c:1798
 #, c-format
 msgid "Sequence \"%s.%s\""
 msgstr "序列数 \"%s.%s\""
 
 # describe.c:933
-#: describe.c:1880 describe.c:1926
+#: describe.c:1934
 #, c-format
 msgid "Unlogged table \"%s.%s\""
 msgstr "不记录日志的表 \"%s.%s\""
 
 # describe.c:859
-#: describe.c:1883 describe.c:1929
+#: describe.c:1937
 #, c-format
 msgid "Table \"%s.%s\""
 msgstr "数据表 \"%s.%s\""
 
 # describe.c:863
-#: describe.c:1887
+#: describe.c:1941
 #, c-format
 msgid "View \"%s.%s\""
 msgstr "视图 \"%s.%s\""
 
 # describe.c:933
-#: describe.c:1892
+#: describe.c:1946
 #, c-format
 msgid "Unlogged materialized view \"%s.%s\""
 msgstr "不记录日志的物化视图 \"%s.%s\""
 
-#: describe.c:1895
+#: describe.c:1949
 #, c-format
 msgid "Materialized view \"%s.%s\""
 msgstr "物化视图 \"%s.%s\""
 
 # describe.c:871
-#: describe.c:1901
+#: describe.c:1954
 #, c-format
 msgid "Unlogged index \"%s.%s\""
 msgstr "不记录日志的索引 \"%s.%s\""
 
 # describe.c:871
-#: describe.c:1904
+#: describe.c:1957
 #, c-format
 msgid "Index \"%s.%s\""
 msgstr "索引 \"%s.%s\""
 
+# describe.c:871
+#: describe.c:1962
+#, fuzzy, c-format
+#| msgid "Unlogged index \"%s.%s\""
+msgid "Unlogged partitioned index \"%s.%s\""
+msgstr "不记录日志的索引 \"%s.%s\""
+
+# describe.c:871
+#: describe.c:1965
+#, fuzzy, c-format
+#| msgid "Unlogged index \"%s.%s\""
+msgid "Partitioned index \"%s.%s\""
+msgstr "不记录日志的索引 \"%s.%s\""
+
 # describe.c:875
-#: describe.c:1909
+#: describe.c:1970
 #, c-format
 msgid "Special relation \"%s.%s\""
 msgstr "特殊关联 \"%s.%s\""
 
 # describe.c:879
-#: describe.c:1913
+#: describe.c:1974
 #, c-format
 msgid "TOAST table \"%s.%s\""
 msgstr "TOAST 数据表 \"%s.%s\""
 
 # describe.c:883
-#: describe.c:1917
+#: describe.c:1978
 #, c-format
 msgid "Composite type \"%s.%s\""
 msgstr "合成类型 \"%s.%s\""
 
 # describe.c:933
-#: describe.c:1921
+#: describe.c:1982
 #, c-format
 msgid "Foreign table \"%s.%s\""
 msgstr "引用的外部表 \"%s.%s\""
 
+# describe.c:933
+#: describe.c:1987
+#, fuzzy, c-format
+#| msgid "Unlogged table \"%s.%s\""
+msgid "Unlogged partitioned table \"%s.%s\""
+msgstr "不记录日志的表 \"%s.%s\""
+
+# describe.c:933
+#: describe.c:1990
+#, fuzzy, c-format
+#| msgid "Foreign table \"%s.%s\""
+msgid "Partitioned table \"%s.%s\""
+msgstr "引用的外部表 \"%s.%s\""
+
 # describe.c:128
-#: describe.c:1945 describe.c:3740
+#: describe.c:2006 describe.c:4097
 msgid "Collation"
 msgstr "校对规则"
 
-#: describe.c:1946 describe.c:3747
+#: describe.c:2007 describe.c:4104
 msgid "Nullable"
 msgstr "可空的"
 
 # describe.c:1639
-#: describe.c:1947 describe.c:3748
+#: describe.c:2008 describe.c:4105
 msgid "Default"
 msgstr "预设"
 
-#: describe.c:1950
+#: describe.c:2011
 msgid "Key?"
 msgstr "键值?"
 
 # describe.c:1636
-#: describe.c:1952
+#: describe.c:2013
 msgid "Definition"
 msgstr "定义"
 
-#: describe.c:1954 describe.c:4843 describe.c:4927 describe.c:4998
-#: describe.c:5062
+#: describe.c:2015 describe.c:5215 describe.c:5299 describe.c:5370
+#: describe.c:5434
 msgid "FDW options"
 msgstr "FDW选项"
 
 # describe.c:1635
-#: describe.c:1956
+#: describe.c:2017
 msgid "Storage"
 msgstr "存储"
 
-#: describe.c:1958
+#: describe.c:2019
 msgid "Stats target"
 msgstr "统计目标"
 
-#: describe.c:2072
+#: describe.c:2137
 #, c-format
 msgid "Partition of: %s %s"
 msgstr "分区: %s %s"
 
-#: describe.c:2080
+#: describe.c:2145
 msgid "No partition constraint"
 msgstr "无分区约束"
 
-#: describe.c:2082
+#: describe.c:2147
 #, c-format
 msgid "Partition constraint: %s"
 msgstr "分区约束: %s"
 
-#: describe.c:2105
+#: describe.c:2170
 #, c-format
 msgid "Partition key: %s"
 msgstr "分区键值: %s"
 
 # describe.c:925
-#: describe.c:2174
+#: describe.c:2239
 msgid "primary key, "
 msgstr "主键(PK),"
 
 # describe.c:927
-#: describe.c:2176
+#: describe.c:2241
 msgid "unique, "
 msgstr "唯一的,"
 
 # describe.c:933
-#: describe.c:2182
+#: describe.c:2247
 #, c-format
 msgid "for table \"%s.%s\""
 msgstr "给数据表 \"%s.%s\""
 
 # describe.c:937
-#: describe.c:2186
+#: describe.c:2251
 #, c-format
 msgid ", predicate (%s)"
 msgstr ", 叙述 (%s)"
 
 # describe.c:940
-#: describe.c:2189
+#: describe.c:2254
 msgid ", clustered"
 msgstr ", 已丛集"
 
-#: describe.c:2192
+#: describe.c:2257
 msgid ", invalid"
 msgstr ", 无效的"
 
-#: describe.c:2195
+#: describe.c:2260
 msgid ", deferrable"
 msgstr ",可延迟"
 
-#: describe.c:2198
+#: describe.c:2263
 msgid ", initially deferred"
 msgstr ",开始被延迟"
 
-#: describe.c:2201
+#: describe.c:2266
 msgid ", replica identity"
 msgstr ",复制标识"
 
 # describe.c:1138
-#: describe.c:2260
+#: describe.c:2325
 msgid "Indexes:"
 msgstr "索引:"
 
 # describe.c:1174
-#: describe.c:2344
+#: describe.c:2409
 msgid "Check constraints:"
 msgstr "检查约束限制"
 
 # describe.c:1189
-#: describe.c:2380
+#: describe.c:2477
 msgid "Foreign-key constraints:"
 msgstr "外部键(FK)限制:"
 
-#: describe.c:2411
+#: describe.c:2540
 msgid "Referenced by:"
 msgstr "由引用:"
 
-#: describe.c:2461
+#: describe.c:2590
 msgid "Policies:"
 msgstr "策略:"
 
-#: describe.c:2464
+#: describe.c:2593
 msgid "Policies (forced row security enabled):"
 msgstr "策略(强制行安全性启用):"
 
-#: describe.c:2467
+#: describe.c:2596
 msgid "Policies (row security enabled): (none)"
 msgstr "策略(行安全性启用):(无)"
 
-#: describe.c:2470
+#: describe.c:2599
 msgid "Policies (forced row security enabled): (none)"
 msgstr "策略(强制行安全性启用):(无)"
 
-#: describe.c:2473
+#: describe.c:2602
 msgid "Policies (row security disabled):"
 msgstr "策略(行安全性禁用):"
 
-#: describe.c:2535
+#: describe.c:2665
 msgid "Statistics objects:"
 msgstr "统计信息对象:"
 
 # describe.c:983
 # describe.c:1204
-#: describe.c:2638 describe.c:2742
+#: describe.c:2774 describe.c:2878
 msgid "Rules:"
 msgstr "规则:"
 
-#: describe.c:2641
+#: describe.c:2777
 msgid "Disabled rules:"
 msgstr "已停用规则:"
 
-#: describe.c:2644
+#: describe.c:2780
 msgid "Rules firing always:"
 msgstr "永远触发规则"
 
-#: describe.c:2647
+#: describe.c:2783
 msgid "Rules firing on replica only:"
 msgstr "只有在复制时触发规则:"
 
 # describe.c:1636
-#: describe.c:2687
+#: describe.c:2823
 msgid "Publications:"
 msgstr "出版物:"
 
 # describe.c:977
-#: describe.c:2725
+#: describe.c:2861
 msgid "View definition:"
 msgstr "视图定义:"
 
 # describe.c:1223
-#: describe.c:2864
+#: describe.c:3000
 msgid "Triggers:"
 msgstr "触发器:"
 
-#: describe.c:2868
+#: describe.c:3004
 msgid "Disabled user triggers:"
 msgstr "禁用用户触发器:"
 
-#: describe.c:2870
+#: describe.c:3006
 msgid "Disabled triggers:"
 msgstr "停用触发器:"
 
-#: describe.c:2873
+#: describe.c:3009
 msgid "Disabled internal triggers:"
 msgstr "禁用内部触发器:"
 
-#: describe.c:2876
+#: describe.c:3012
 msgid "Triggers firing always:"
 msgstr "永远激活触发器"
 
-#: describe.c:2879
+#: describe.c:3015
 msgid "Triggers firing on replica only:"
 msgstr "只有在复制时激活触发器"
 
-#: describe.c:2938
+#: describe.c:3074
 #, c-format
 msgid "Server: %s"
 msgstr "服务器 %s"
 
-#: describe.c:2946
+#: describe.c:3082
 #, c-format
 msgid "FDW options: (%s)"
 msgstr "FDW选项: (%s)"
 
 # describe.c:1245
-#: describe.c:2965
+#: describe.c:3101
 msgid "Inherits"
 msgstr "继承"
 
-#: describe.c:3024
+#: describe.c:3160
 #, c-format
 msgid "Number of partitions: %d"
 msgstr "分区数: %d"
 
-#: describe.c:3033
+#: describe.c:3169
 #, c-format
 msgid "Number of child tables: %d (Use \\d+ to list them.)"
 msgstr "子表的数量:%d(可以使用 \\d+ 来列出它们)"
 
-#: describe.c:3035
+#: describe.c:3171
 #, c-format
 msgid "Number of partitions: %d (Use \\d+ to list them.)"
 msgstr "分区的数量:%d(可以使用 \\d+ 来列出它们)"
 
-#: describe.c:3043
+#: describe.c:3179
 msgid "Child tables"
 msgstr "子表"
 
 # describe.c:128
-#: describe.c:3043
+#: describe.c:3179
 msgid "Partitions"
 msgstr "分区"
 
-#: describe.c:3086
+#: describe.c:3222
 #, c-format
 msgid "Typed table of type: %s"
 msgstr "类型的已确定类型表(typed table):%s"
 
 # describe.c:1636
-#: describe.c:3102
+#: describe.c:3238
 msgid "Replica Identity"
 msgstr "复制标识"
 
 # describe.c:1259
-#: describe.c:3115
+#: describe.c:3251
 msgid "Has OIDs: yes"
 msgstr "有 OIDs:yes"
 
+#: describe.c:3260
+#, fuzzy, c-format
+#| msgid "List of access methods"
+msgid "Access method: %s"
+msgstr "访问方法列表"
+
 # describe.c:1342
-#: describe.c:3195
+#: describe.c:3339
 #, c-format
 msgid "Tablespace: \"%s\""
 msgstr "表空间:\"%s\""
@@ -1854,418 +2069,479 @@ msgstr "表空间:\"%s\""
 # describe.c:1342
 #. translator: before this string there's an index description like
 #. '"foo_pkey" PRIMARY KEY, btree (a)'
-#: describe.c:3207
+#: describe.c:3351
 #, c-format
 msgid ", tablespace \"%s\""
 msgstr ", 表空间 \"%s\""
 
 # describe.c:1431
-#: describe.c:3300
+#: describe.c:3444
 msgid "List of roles"
 msgstr "角色列表"
 
 # describe.c:1375
-#: describe.c:3302
+#: describe.c:3446
 msgid "Role name"
 msgstr "角色名称"
 
-#: describe.c:3303
+#: describe.c:3447
 msgid "Attributes"
 msgstr "属性"
 
-#: describe.c:3304
+#: describe.c:3448
 msgid "Member of"
 msgstr "成员属于"
 
 # describe.c:1377
-#: describe.c:3315
+#: describe.c:3459
 msgid "Superuser"
 msgstr "超级用户"
 
-#: describe.c:3318
+#: describe.c:3462
 msgid "No inheritance"
 msgstr "没有继承"
 
-#: describe.c:3321
+#: describe.c:3465
 msgid "Create role"
 msgstr "建立角色"
 
-#: describe.c:3324
+#: describe.c:3468
 msgid "Create DB"
 msgstr "建立 DB"
 
-#: describe.c:3327
+#: describe.c:3471
 msgid "Cannot login"
 msgstr "无法登录"
 
 # describe.c:1636
-#: describe.c:3331
+#: describe.c:3475
 msgid "Replication"
 msgstr "复制"
 
-#: describe.c:3335
+#: describe.c:3479
 msgid "Bypass RLS"
 msgstr "绕过RLS"
 
 # help.c:123
-#: describe.c:3344
+#: describe.c:3488
 msgid "No connections"
 msgstr "没有连接"
 
 # help.c:123
-#: describe.c:3346
+#: describe.c:3490
 #, c-format
 msgid "%d connection"
 msgid_plural "%d connections"
 msgstr[0] "%d个连接"
 
-#: describe.c:3356
+#: describe.c:3500
 msgid "Password valid until "
 msgstr "密码有效直至"
 
 # describe.c:117
-#: describe.c:3406
-#, c-format
-msgid "The server (version %s) does not support per-database role settings.\n"
+#: describe.c:3550
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support per-database role settings.\n"
+msgid "The server (version %s) does not support per-database role settings."
 msgstr "服务器(版本%s) 每个数据库角色设置.\n"
 
 # describe.c:1375
-#: describe.c:3419
+#: describe.c:3563
 msgid "Role"
 msgstr "角色"
 
-#: describe.c:3420
+#: describe.c:3564
 msgid "Database"
 msgstr "数据库"
 
-#: describe.c:3421
+#: describe.c:3565
 msgid "Settings"
 msgstr "设置"
 
 # describe.c:641
-#: describe.c:3442
-#, c-format
-msgid "Did not find any settings for role \"%s\" and database \"%s\".\n"
+#: describe.c:3586
+#, fuzzy, c-format
+#| msgid "Did not find any settings for role \"%s\" and database \"%s\".\n"
+msgid "Did not find any settings for role \"%s\" and database \"%s\"."
 msgstr "找不到角色\"%s\"和数据库\"%s\"的任何设置.\n"
 
 # describe.c:641
-#: describe.c:3445
-#, c-format
-msgid "Did not find any settings for role \"%s\".\n"
+#: describe.c:3589
+#, fuzzy, c-format
+#| msgid "Did not find any settings for role \"%s\".\n"
+msgid "Did not find any settings for role \"%s\"."
 msgstr "找不到角色\"%s\"的任何设置.\n"
 
 # describe.c:641
-#: describe.c:3448
-#, c-format
-msgid "Did not find any settings.\n"
+#: describe.c:3592
+#, fuzzy, c-format
+#| msgid "Did not find any settings.\n"
+msgid "Did not find any settings."
 msgstr "找不到任何设置.\n"
 
 # describe.c:1549
-#: describe.c:3453
+#: describe.c:3597
 msgid "List of settings"
 msgstr "设置的列表"
 
 # describe.c:543
 # describe.c:1477
-#: describe.c:3523 describe.c:3528
+#: describe.c:3667
 msgid "index"
 msgstr "索引"
 
 # describe.c:1478
-#: describe.c:3525
+#: describe.c:3669
 msgid "special"
 msgstr "特殊"
 
-# describe.c:1483
-#: describe.c:3535 describe.c:5050
-msgid "Table"
-msgstr "数据表"
+#: describe.c:3672 describe.c:3857
+#, fuzzy
+#| msgid "partition_name"
+msgid "partitioned index"
+msgstr "分区名"
 
 # describe.c:1549
-#: describe.c:3626
+#: describe.c:3770
 msgid "List of relations"
 msgstr "关联列表"
 
-#: describe.c:3663
+# describe.c:117
+#: describe.c:3818
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support collations.\n"
+msgid "The server (version %s) does not support declarative table partitioning."
+msgstr "服务器(版本%s)不支持排序校对。\n"
+
+# describe.c:1549
+#: describe.c:3829
+#, fuzzy
+#| msgid "List of publications"
+msgid "List of partitioned indexes"
+msgstr "出版物列表"
+
+# describe.c:1653
+#: describe.c:3831
+#, fuzzy
+#| msgid "List of foreign tables"
+msgid "List of partitioned tables"
+msgstr "引用表列表"
+
+# describe.c:1549
+#: describe.c:3835
+#, fuzzy
+#| msgid "List of relations"
+msgid "List of partitioned relations"
+msgstr "关联列表"
+
+# describe.c:1375
+#: describe.c:3866
+#, fuzzy
+#| msgid "Token name"
+msgid "Parent name"
+msgstr "标志名称"
+
+# describe.c:128
+#: describe.c:3879
+#, fuzzy
+#| msgid "Partitions"
+msgid "Leaf partition size"
+msgstr "分区"
+
+#: describe.c:3882 describe.c:3888
+msgid "Total size"
+msgstr ""
+
+#: describe.c:4020
 msgid "Trusted"
 msgstr "信任"
 
 # describe.c:257
-#: describe.c:3671
+#: describe.c:4028
 msgid "Internal language"
 msgstr "内部语言"
 
-#: describe.c:3672
+#: describe.c:4029
 msgid "Call handler"
 msgstr "调用函数"
 
-#: describe.c:3673 describe.c:4830
+#: describe.c:4030 describe.c:5202
 msgid "Validator"
 msgstr "验证"
 
-#: describe.c:3676
+#: describe.c:4033
 msgid "Inline handler"
 msgstr "内联函数"
 
 # describe.c:1431
-#: describe.c:3704
+#: describe.c:4061
 msgid "List of languages"
 msgstr "语言列表"
 
-#: describe.c:3749
+#: describe.c:4106
 msgid "Check"
 msgstr "检查"
 
 # describe.c:1602
-#: describe.c:3791
+#: describe.c:4148
 msgid "List of domains"
 msgstr "共同值域列表"
 
 # describe.c:1635
-#: describe.c:3825
+#: describe.c:4182
 msgid "Source"
 msgstr "来源"
 
 # describe.c:1636
-#: describe.c:3826
+#: describe.c:4183
 msgid "Destination"
 msgstr "目的地"
 
 # describe.c:1639
-#: describe.c:3828
+#: describe.c:4185
 msgid "Default?"
 msgstr "预设?"
 
 # describe.c:1653
-#: describe.c:3865
+#: describe.c:4222
 msgid "List of conversions"
 msgstr "字元编码转换列表"
 
-#: describe.c:3904
+#: describe.c:4261
 msgid "Event"
 msgstr "Event"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:3906
+#: describe.c:4263
 msgid "enabled"
 msgstr "启用"
 
 # describe.c:1636
-#: describe.c:3907
+#: describe.c:4264
 msgid "replica"
 msgstr "replica"
 
-#: describe.c:3908
+#: describe.c:4265
 msgid "always"
 msgstr "经常"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:3909
+#: describe.c:4266
 msgid "disabled"
 msgstr "禁用"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: describe.c:3910 describe.c:5529
+#: describe.c:4267 describe.c:5901
 msgid "Enabled"
 msgstr "使能"
 
-#: describe.c:3912
+#: describe.c:4269
 msgid "Tags"
 msgstr "标签"
 
 # describe.c:1549
-#: describe.c:3931
+#: describe.c:4288
 msgid "List of event triggers"
 msgstr "事件触发器列表"
 
 # describe.c:1688
-#: describe.c:3960
+#: describe.c:4317
 msgid "Source type"
 msgstr "来源类型"
 
 # describe.c:1689
-#: describe.c:3961
+#: describe.c:4318
 msgid "Target type"
 msgstr "目标类型"
 
 # describe.c:1693
-#: describe.c:3992
+#: describe.c:4349
 msgid "in assignment"
 msgstr "在指派中"
 
 # describe.c:1695
-#: describe.c:3994
+#: describe.c:4351
 msgid "Implicit?"
 msgstr "隐含的?"
 
 # describe.c:1703
-#: describe.c:4049
+#: describe.c:4406
 msgid "List of casts"
 msgstr "类型转换列表"
 
 # describe.c:117
-#: describe.c:4077
-#, c-format
-msgid "The server (version %s) does not support collations.\n"
+#: describe.c:4434
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support collations.\n"
+msgid "The server (version %s) does not support collations."
 msgstr "服务器(版本%s)不支持排序校对。\n"
 
-#: describe.c:4098
+#: describe.c:4455 describe.c:4459
 msgid "Provider"
 msgstr "提供者"
 
+#: describe.c:4465 describe.c:4470
+msgid "Deterministic?"
+msgstr ""
+
 # describe.c:1549
-#: describe.c:4133
+#: describe.c:4505
 msgid "List of collations"
 msgstr "校对列表"
 
 # describe.c:1753
-#: describe.c:4192
+#: describe.c:4564
 msgid "List of schemas"
 msgstr "架构模式列表"
 
 # describe.c:117
-#: describe.c:4217 describe.c:4464 describe.c:4535 describe.c:4606
-#, c-format
-msgid "The server (version %s) does not support full text search.\n"
+#: describe.c:4589 describe.c:4836 describe.c:4907 describe.c:4978
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support full text search.\n"
+msgid "The server (version %s) does not support full text search."
 msgstr "服务器(版本%s)不支持使用全文搜索.\n"
 
 # describe.c:150
-#: describe.c:4252
+#: describe.c:4624
 msgid "List of text search parsers"
 msgstr "文本剖析器列表"
 
 # describe.c:641
-#: describe.c:4297
-#, c-format
-msgid "Did not find any text search parser named \"%s\".\n"
+#: describe.c:4669
+#, fuzzy, c-format
+#| msgid "Did not find any text search parser named \"%s\".\n"
+msgid "Did not find any text search parser named \"%s\"."
 msgstr "没有找到任何命名为 \"%s\" 的文本剖析器。\n"
 
 # describe.c:641
-#: describe.c:4300
-#, c-format
-msgid "Did not find any text search parsers.\n"
+#: describe.c:4672
+#, fuzzy, c-format
+#| msgid "Did not find any text search parsers.\n"
+msgid "Did not find any text search parsers."
 msgstr "找不到任何文本搜索解析器.\n"
 
-#: describe.c:4375
+#: describe.c:4747
 msgid "Start parse"
 msgstr "开始剖析"
 
-#: describe.c:4376
+#: describe.c:4748
 msgid "Method"
 msgstr "方法"
 
-#: describe.c:4380
+#: describe.c:4752
 msgid "Get next token"
 msgstr "取得下一个标志符"
 
-#: describe.c:4382
+#: describe.c:4754
 msgid "End parse"
 msgstr "结束剖析"
 
-#: describe.c:4384
+#: describe.c:4756
 msgid "Get headline"
 msgstr "取得首行"
 
-#: describe.c:4386
+#: describe.c:4758
 msgid "Get token types"
 msgstr "取得标志符类型"
 
-#: describe.c:4397
+#: describe.c:4769
 #, c-format
 msgid "Text search parser \"%s.%s\""
 msgstr "文本搜索剖析器 \"%s.%s\""
 
-#: describe.c:4400
+#: describe.c:4772
 #, c-format
 msgid "Text search parser \"%s\""
 msgstr "文本搜索剖析器 \"%s\""
 
 # describe.c:1375
-#: describe.c:4419
+#: describe.c:4791
 msgid "Token name"
 msgstr "标志名称"
 
-#: describe.c:4430
+#: describe.c:4802
 #, c-format
 msgid "Token types for parser \"%s.%s\""
 msgstr "标志符别型给剖析器 \"%s.%s\""
 
-#: describe.c:4433
+#: describe.c:4805
 #, c-format
 msgid "Token types for parser \"%s\""
 msgstr "标志符类型给剖析器 \"%s\""
 
-#: describe.c:4487
+#: describe.c:4859
 msgid "Template"
 msgstr "模版"
 
 # help.c:88
-#: describe.c:4488
+#: describe.c:4860
 msgid "Init options"
 msgstr "初始选项"
 
 # describe.c:1549
-#: describe.c:4510
+#: describe.c:4882
 msgid "List of text search dictionaries"
 msgstr "文本搜索字典列表"
 
-#: describe.c:4553
+#: describe.c:4925
 msgid "Init"
 msgstr "初始化"
 
 # describe.c:257
-#: describe.c:4554
+#: describe.c:4926
 msgid "Lexize"
 msgstr "词汇"
 
 # describe.c:1753
-#: describe.c:4581
+#: describe.c:4953
 msgid "List of text search templates"
 msgstr "文本搜索样式列表"
 
 # describe.c:97
-#: describe.c:4641
+#: describe.c:5013
 msgid "List of text search configurations"
 msgstr "文本搜索组态列表"
 
 # describe.c:641
-#: describe.c:4687
-#, c-format
-msgid "Did not find any text search configuration named \"%s\".\n"
+#: describe.c:5059
+#, fuzzy, c-format
+#| msgid "Did not find any text search configuration named \"%s\".\n"
+msgid "Did not find any text search configuration named \"%s\"."
 msgstr "没有找到任何命名为 \"%s\" 的文本搜索组态。\n"
 
 # describe.c:641
-#: describe.c:4690
-#, c-format
-msgid "Did not find any text search configurations.\n"
+#: describe.c:5062
+#, fuzzy, c-format
+#| msgid "Did not find any text search configurations.\n"
+msgid "Did not find any text search configurations."
 msgstr "未找到任何文本搜索配置.\n"
 
-#: describe.c:4756
+#: describe.c:5128
 msgid "Token"
 msgstr "标志符"
 
-#: describe.c:4757
+#: describe.c:5129
 msgid "Dictionaries"
 msgstr "字典"
 
-#: describe.c:4768
+#: describe.c:5140
 #, c-format
 msgid "Text search configuration \"%s.%s\""
 msgstr "文本搜索组态 \"%s.%s\""
 
-#: describe.c:4771
+#: describe.c:5143
 #, c-format
 msgid "Text search configuration \"%s\""
 msgstr "文本搜索组态 \"%s\""
 
 # describe.c:859
-#: describe.c:4775
+#: describe.c:5147
 #, c-format
 msgid ""
 "\n"
@@ -2275,7 +2551,7 @@ msgstr ""
 "剖析器:\"%s.%s\""
 
 # describe.c:1342
-#: describe.c:4778
+#: describe.c:5150
 #, c-format
 msgid ""
 "\n"
@@ -2285,239 +2561,240 @@ msgstr ""
 "剖析器:\"%s\""
 
 # describe.c:117
-#: describe.c:4812
-#, c-format
-msgid "The server (version %s) does not support foreign-data wrappers.\n"
+#: describe.c:5184
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support foreign-data wrappers.\n"
+msgid "The server (version %s) does not support foreign-data wrappers."
 msgstr "服务器(版本%s)不支持使用外部数据封装器。\n"
 
 # describe.c:289
-#: describe.c:4870
+#: describe.c:5242
 msgid "List of foreign-data wrappers"
 msgstr "外部数据封装器列表"
 
 # describe.c:117
-#: describe.c:4895
-#, c-format
-msgid "The server (version %s) does not support foreign servers.\n"
+#: describe.c:5267
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support foreign servers.\n"
+msgid "The server (version %s) does not support foreign servers."
 msgstr "服务器(版本%s)不支持使用外部服务器.\n"
 
-#: describe.c:4908
+#: describe.c:5280
 msgid "Foreign-data wrapper"
 msgstr "外部数据封装器"
 
-#: describe.c:4926 describe.c:5131
+#: describe.c:5298 describe.c:5503
 msgid "Version"
 msgstr "版本"
 
 # describe.c:1653
-#: describe.c:4952
+#: describe.c:5324
 msgid "List of foreign servers"
 msgstr "外部服务器列表"
 
 # describe.c:117
-#: describe.c:4977
-#, c-format
-msgid "The server (version %s) does not support user mappings.\n"
+#: describe.c:5349
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support user mappings.\n"
+msgid "The server (version %s) does not support user mappings."
 msgstr "服务器(版本%s)不支持使用用户映射。\n"
 
 # describe.c:1377
-#: describe.c:4987 describe.c:5051
+#: describe.c:5359 describe.c:5423
 msgid "Server"
 msgstr "服务器"
 
-#: describe.c:4988
+#: describe.c:5360
 msgid "User name"
 msgstr "用户名: "
 
 # describe.c:1602
-#: describe.c:5013
+#: describe.c:5385
 msgid "List of user mappings"
 msgstr "列出用户映射"
 
 # describe.c:117
-#: describe.c:5038
-#, c-format
-msgid "The server (version %s) does not support foreign tables.\n"
+#: describe.c:5410
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support foreign tables.\n"
+msgid "The server (version %s) does not support foreign tables."
 msgstr "服务器(版本%s)不支持使用引用表.\n"
 
 # describe.c:1653
-#: describe.c:5091
+#: describe.c:5463
 msgid "List of foreign tables"
 msgstr "引用表列表"
 
 # describe.c:117
-#: describe.c:5116 describe.c:5173
-#, c-format
-msgid "The server (version %s) does not support extensions.\n"
+#: describe.c:5488 describe.c:5545
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support extensions.\n"
+msgid "The server (version %s) does not support extensions."
 msgstr "服务器(版本%s) 不支持使用扩展.\n"
 
 # describe.c:1653
-#: describe.c:5148
+#: describe.c:5520
 msgid "List of installed extensions"
 msgstr "已安装扩展列表"
 
 # describe.c:641
-#: describe.c:5201
-#, c-format
-msgid "Did not find any extension named \"%s\".\n"
+#: describe.c:5573
+#, fuzzy, c-format
+#| msgid "Did not find any extension named \"%s\".\n"
+msgid "Did not find any extension named \"%s\"."
 msgstr "没有找到任何名称为 \"%s\" 的扩展。\n"
 
 # describe.c:641
-#: describe.c:5204
-#, c-format
-msgid "Did not find any extensions.\n"
+#: describe.c:5576
+#, fuzzy, c-format
+#| msgid "Did not find any extensions.\n"
+msgid "Did not find any extensions."
 msgstr "没有找到任何扩展.\n"
 
 # describe.c:593
-#: describe.c:5248
+#: describe.c:5620
 msgid "Object description"
 msgstr "对象描述"
 
-#: describe.c:5258
+#: describe.c:5630
 #, c-format
 msgid "Objects in extension \"%s\""
 msgstr "对象用于扩展 \"%s\""
 
 # describe.c:117
-#: describe.c:5287 describe.c:5358
-#, c-format
-msgid "The server (version %s) does not support publications.\n"
+#: describe.c:5659 describe.c:5730
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support publications.\n"
+msgid "The server (version %s) does not support publications."
 msgstr "服务器(版本%s)不支持出版物.\n"
 
-#: describe.c:5304 describe.c:5430
+#: describe.c:5676 describe.c:5802
 msgid "All tables"
 msgstr "所有表"
 
-#: describe.c:5305 describe.c:5431
+#: describe.c:5677 describe.c:5803
 msgid "Inserts"
 msgstr "插入"
 
-#: describe.c:5306 describe.c:5432
+#: describe.c:5678 describe.c:5804
 msgid "Updates"
 msgstr "更新"
 
-#: describe.c:5307 describe.c:5433
+#: describe.c:5679 describe.c:5805
 msgid "Deletes"
 msgstr "删除"
 
-#: describe.c:5311 describe.c:5435
+#: describe.c:5683 describe.c:5807
 msgid "Truncates"
 msgstr "截断"
 
 # describe.c:1549
-#: describe.c:5328
+#: describe.c:5700
 msgid "List of publications"
 msgstr "出版物列表"
 
 # describe.c:641
-#: describe.c:5396
-#, c-format
-msgid "Did not find any publication named \"%s\".\n"
+#: describe.c:5768
+#, fuzzy, c-format
+#| msgid "Did not find any publication named \"%s\".\n"
+msgid "Did not find any publication named \"%s\"."
 msgstr "没有找到任何名称为 \"%s\" 的出版物.\n"
 
 # describe.c:641
-#: describe.c:5399
-#, c-format
-msgid "Did not find any publications.\n"
+#: describe.c:5771
+#, fuzzy, c-format
+#| msgid "Did not find any publications.\n"
+msgid "Did not find any publications."
 msgstr "没有找到任何出版物.\n"
 
-#: describe.c:5426
+#: describe.c:5798
 #, c-format
 msgid "Publication %s"
 msgstr "出版物 %s"
 
 # describe.c:1483
-#: describe.c:5470
+#: describe.c:5842
 msgid "Tables:"
 msgstr "数据表"
 
 # describe.c:117
-#: describe.c:5514
-#, c-format
-msgid "The server (version %s) does not support subscriptions.\n"
+#: describe.c:5886
+#, fuzzy, c-format
+#| msgid "The server (version %s) does not support subscriptions.\n"
+msgid "The server (version %s) does not support subscriptions."
 msgstr "服务器(版本%s)不支持订阅。\n"
 
 # describe.c:1636
-#: describe.c:5530
+#: describe.c:5902
 msgid "Publication"
 msgstr "出版"
 
-#: describe.c:5537
+#: describe.c:5909
 msgid "Synchronous commit"
 msgstr "同步提交"
 
 # help.c:123
-#: describe.c:5538
+#: describe.c:5910
 msgid "Conninfo"
 msgstr "连接信息"
 
 # describe.c:221
-#: describe.c:5560
+#: describe.c:5932
 msgid "List of subscriptions"
 msgstr "订阅列表"
 
-# command.c:953
-# common.c:216
-# common.c:605
-# common.c:660
-# common.c:903
-#: help.c:62
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
-
 # help.c:83
-#: help.c:73
+#: help.c:74
 #, c-format
 msgid ""
 "psql is the PostgreSQL interactive terminal.\n"
 "\n"
 msgstr "psql是PostgreSQL 的交互式客户端工具。\n"
 
-#: help.c:74 help.c:345 help.c:419 help.c:462
+#: help.c:75 help.c:349 help.c:425 help.c:468
 #, c-format
 msgid "Usage:\n"
 msgstr "使用方法:\n"
 
 # help.c:86
-#: help.c:75
+#: help.c:76
 #, c-format
 msgid ""
 "  psql [OPTION]... [DBNAME [USERNAME]]\n"
 "\n"
 msgstr "  psql [选项]... [数据库名称 [用户名称]]\n"
 
-#: help.c:77
+#: help.c:78
 #, c-format
 msgid "General options:\n"
 msgstr "通用选项:\n"
 
 # help.c:94
-#: help.c:82
+#: help.c:83
 #, c-format
 msgid "  -c, --command=COMMAND    run only single command (SQL or internal) and exit\n"
 msgstr "  -c,--command=命令        执行单一命令(SQL或内部指令)然后结束\n"
 
 # help.c:93
-#: help.c:83
+#: help.c:84
 #, c-format
 msgid "  -d, --dbname=DBNAME      database name to connect to (default: \"%s\")\n"
 msgstr "  -d, --dbname=DBNAME      指定要连接的数据库 (默认:\"%s\")\n"
 
 # help.c:95
-#: help.c:84
+#: 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:85
+#: help.c:86
 #, c-format
 msgid "  -l, --list               list available databases, then exit\n"
 msgstr "  -l, --list               列出所有可用的数据库,然后退出\n"
 
 # help.c:97
-#: help.c:86
+#: help.c:87
 #, c-format
 msgid ""
 "  -v, --set=, --variable=NAME=VALUE\n"
@@ -2528,18 +2805,18 @@ msgstr ""
 "                           设置psql变量NAME为VALUE\n"
 "                           (例如,-v ON_ERROR_STOP=1)\n"
 
-#: help.c:89
+#: help.c:90
 #, c-format
 msgid "  -V, --version            output version information, then exit\n"
 msgstr "  -V, --version            输出版本信息, 然后退出\n"
 
 # help.c:98
-#: help.c:90
+#: help.c:91
 #, c-format
 msgid "  -X, --no-psqlrc          do not read startup file (~/.psqlrc)\n"
 msgstr "  -X, --no-psqlrc          不读取启动文档(~/.psqlrc)\n"
 
-#: help.c:91
+#: help.c:92
 #, c-format
 msgid ""
 "  -1 (\"one\"), --single-transaction\n"
@@ -2548,23 +2825,23 @@ msgstr ""
 "  -1 (\"one\"), --single-transaction\n"
 "                           作为一个单一事务来执行命令文件(如果是非交互型的)\n"
 
-#: help.c:93
+#: help.c:94
 #, c-format
 msgid "  -?, --help[=options]     show this help, then exit\n"
 msgstr "  -?, --help[=options]     显示此帮助,然后退出\n"
 
-#: help.c:94
+#: help.c:95
 #, c-format
 msgid "      --help=commands      list backslash commands, then exit\n"
 msgstr "      --help=commands      列出反斜线命令,然后退出\n"
 
-#: help.c:95
+#: help.c:96
 #, c-format
 msgid "      --help=variables     list special variables, then exit\n"
 msgstr "      --help=variables     列出特殊变量,然后退出\n"
 
 # help.c:102
-#: help.c:97
+#: help.c:98
 #, c-format
 msgid ""
 "\n"
@@ -2574,67 +2851,67 @@ msgstr ""
 "输入和输出选项:\n"
 
 # help.c:103
-#: help.c:98
+#: 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:99
+#: help.c:100
 #, c-format
 msgid "  -b, --echo-errors        echo failed commands\n"
 msgstr "  -b, --echo-errors        回显失败的命令\n"
 
 # help.c:104
-#: help.c:100
+#: 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:101
+#: 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:102
+#: 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:103
+#: 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:104
+#: 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:105
+#: 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:106
+#: 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:107
+#: help.c:108
 #, c-format
 msgid "  -S, --single-line        single-line mode (end of line terminates SQL command)\n"
 msgstr "  -S, --single-line        单行模式 (一行就是一条 SQL 命令)\n"
 
 # help.c:112
-#: help.c:109
+#: help.c:110
 #, c-format
 msgid ""
 "\n"
@@ -2644,13 +2921,20 @@ msgstr ""
 "输出格式选项 :\n"
 
 # help.c:113
-#: help.c:110
+#: help.c:111
 #, c-format
 msgid "  -A, --no-align           unaligned table output mode\n"
 msgstr "  -A, --no-align           使用非对齐表格输出模式\n"
 
+# help.c:234
+#: help.c:112
+#, fuzzy, c-format
+#| msgid "  \\a                     toggle between unaligned and aligned output mode\n"
+msgid "      --csv                CSV (Comma-Separated Values) table output mode\n"
+msgstr "  \\a                     在非对齐模式和对齐模式之间切换\n"
+
 # help.c:119
-#: help.c:111
+#: help.c:113
 #, c-format
 msgid ""
 "  -F, --field-separator=STRING\n"
@@ -2660,19 +2944,19 @@ msgstr ""
 "                           为字段设置分隔符,用于不整齐的输出(默认:\"%s\")\n"
 
 # help.c:114
-#: help.c:114
+#: help.c:116
 #, c-format
 msgid "  -H, --html               HTML table output mode\n"
 msgstr "  -H, --html               HTML 表格输出模式\n"
 
 # help.c:118
-#: help.c:115
+#: help.c:117
 #, c-format
 msgid "  -P, --pset=VAR[=ARG]     set printing option VAR to ARG (see \\pset command)\n"
 msgstr "  -P, --pset=变量[=参数]   设置将变量打印到参数的选项(查阅 \\pset 命令)\n"
 
 # help.c:121
-#: help.c:116
+#: help.c:118
 #, c-format
 msgid ""
 "  -R, --record-separator=STRING\n"
@@ -2682,25 +2966,25 @@ msgstr ""
 "                           为不整齐的输出设置字录的分隔符(默认:换行符号)\n"
 
 # help.c:115
-#: help.c:118
+#: help.c:120
 #, c-format
 msgid "  -t, --tuples-only        print rows only\n"
 msgstr "  -t, --tuples-only        只打印记录i\n"
 
 # help.c:116
-#: help.c:119
+#: help.c:121
 #, c-format
 msgid "  -T, --table-attr=TEXT    set HTML table tag attributes (e.g., width, border)\n"
 msgstr "  -T, --table-attr=文本    设定 HTML 表格标记属性(例如,宽度,边界)\n"
 
 # help.c:117
-#: help.c:120
+#: help.c:122
 #, c-format
 msgid "  -x, --expanded           turn on expanded table output\n"
 msgstr "  -x, --expanded           打开扩展表格输出\n"
 
 # help.c:119
-#: help.c:121
+#: help.c:123
 #, c-format
 msgid ""
 "  -z, --field-separator-zero\n"
@@ -2710,7 +2994,7 @@ msgstr ""
 "                           为不整齐的输出设置字段分隔符为字节0\n"
 
 # help.c:121
-#: help.c:123
+#: help.c:125
 #, c-format
 msgid ""
 "  -0, --record-separator-zero\n"
@@ -2719,7 +3003,7 @@ msgstr ""
 "  -0, --record-separator-zero\n"
 "                           为不整齐的输出设置记录分隔符为字节0\n"
 
-#: help.c:126
+#: help.c:128
 #, c-format
 msgid ""
 "\n"
@@ -2729,40 +3013,40 @@ msgstr ""
 "联接选项:\n"
 
 # help.c:126
-#: help.c:129
+#: help.c:131
 #, c-format
 msgid "  -h, --host=HOSTNAME      database server host or socket directory (default: \"%s\")\n"
 msgstr "  -h, --host=主机名        数据库服务器主机或socket目录(默认:\"%s\")\n"
 
 # help.c:127
-#: help.c:130
+#: help.c:132
 msgid "local socket"
 msgstr "本地接口"
 
 # help.c:130
-#: help.c:133
+#: help.c:135
 #, c-format
 msgid "  -p, --port=PORT          database server port (default: \"%s\")\n"
 msgstr "  -p, --port=端口          数据库服务器的端口(默认:\"%s\")\n"
 
 # help.c:136
-#: help.c:139
+#: help.c:141
 #, c-format
 msgid "  -U, --username=USERNAME  database user name (default: \"%s\")\n"
 msgstr "  -U, --username=用户名    指定数据库用户名(默认:\"%s\")\n"
 
-#: help.c:140
+#: help.c:142
 #, c-format
 msgid "  -w, --no-password        never prompt for password\n"
 msgstr "  -w, --no-password        永远不提示输入口令\n"
 
-#: help.c:141
+#: help.c:143
 #, c-format
 msgid "  -W, --password           force password prompt (should happen automatically)\n"
 msgstr "  -W, --password           强制口令提示 (自动)\n"
 
 # help.c:140
-#: help.c:143
+#: help.c:145
 #, c-format
 msgid ""
 "\n"
@@ -2776,525 +3060,541 @@ msgstr ""
 "或者参考PostgreSQL文档中的psql章节.\n"
 "\n"
 
-#: help.c:146
-#, c-format
-msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
+#: help.c:148
+#, fuzzy, c-format
+#| msgid "Report bugs to <pgsql-bugs@postgresql.org>.\n"
+msgid "Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgstr "臭虫报告至 <pgsql-bugs@postgresql.org>.\n"
 
 # help.c:174
-#: help.c:172
+#: help.c:174
 #, c-format
 msgid "General\n"
 msgstr "一般性\n"
 
 # help.c:179
-#: help.c:173
+#: help.c:175
 #, c-format
 msgid "  \\copyright             show PostgreSQL usage and distribution terms\n"
 msgstr "  \\copyright              显示PostgreSQL的使用和发行许可条款\n"
 
-#: help.c:174
+#: help.c:176
 #, c-format
 msgid "  \\crosstabview [COLUMNS] execute query and display results in crosstab\n"
 msgstr "  \\crosstabview [COLUMNS] 执行查询并且以交叉表显示结果\n"
 
-#: help.c:175
+#: help.c:177
 #, c-format
 msgid "  \\errverbose            show most recent error message at maximum verbosity\n"
 msgstr "  \\errverbose            以最冗长的形式显示最近的错误消息\n"
 
 # help.c:194
-#: help.c:176
+#: help.c:178
 #, 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:177
+#: help.c:179
 #, c-format
 msgid "  \\gdesc                 describe result of query, without executing it\n"
 msgstr "  \\gdesc                 描述查询结果,而不执行它\n"
 
 # help.c:194
-#: help.c:178
+#: help.c:180
 #, c-format
 msgid "  \\gexec                 execute query, then execute each value in its result\n"
 msgstr "  \\gexec                 执行策略,然后执行其结果中的每个值\n"
 
 # help.c:194
-#: help.c:179
+#: help.c:181
 #, c-format
 msgid "  \\gset [PREFIX]         execute query and store results in psql variables\n"
 msgstr "  \\gset [PREFIX]         执行查询并把结果存到psql变量中\n"
 
 # help.c:234
-#: help.c:180
+#: help.c:182
 #, c-format
 msgid "  \\gx [FILE]             as \\g, but forces expanded output mode\n"
 msgstr "  \\gx [FILE]             就像\\g,但强制扩展输出模式\n"
 
 # help.c:183
-#: help.c:181
+#: help.c:183
 #, c-format
 msgid "  \\q                     quit psql\n"
 msgstr "  \\q             退出 psql\n"
 
-#: help.c:182
+#: help.c:184
 #, c-format
 msgid "  \\watch [SEC]           execute query every SEC seconds\n"
 msgstr "  \\watch [SEC]          每隔SEC秒执行一次查询\n"
 
-#: help.c:185
+#: help.c:187
 #, c-format
 msgid "Help\n"
 msgstr "帮助\n"
 
-#: help.c:187
+#: help.c:189
 #, c-format
 msgid "  \\? [commands]          show help on backslash commands\n"
 msgstr "  \\? [commands]          显示反斜线命令的帮助\n"
 
-#: help.c:188
+#: help.c:190
 #, c-format
 msgid "  \\? options             show help on psql command-line options\n"
 msgstr "  \\? options             显示 psql 命令行选项的帮助\n"
 
-#: help.c:189
+#: help.c:191
 #, c-format
 msgid "  \\? variables           show help on special variables\n"
 msgstr "  \\? variables           显示特殊变量的帮助\n"
 
 # help.c:182
-#: help.c:190
+#: help.c:192
 #, c-format
 msgid "  \\h [NAME]              help on syntax of SQL commands, * for all commands\n"
 msgstr "  \\h [名称]          SQL命令语法上的说明,用*显示全部命令的语法说明\n"
 
 # help.c:192
-#: help.c:193
+#: help.c:195
 #, c-format
 msgid "Query Buffer\n"
 msgstr "查询缓存区\n"
 
 # help.c:193
-#: help.c:194
+#: help.c:196
 #, c-format
 msgid "  \\e [FILE] [LINE]       edit the query buffer (or file) with external editor\n"
 msgstr "  \\e [FILE] [LINE]        使用外部编辑器编辑查询缓存区(或文件)\n"
 
 # help.c:193
-#: help.c:195
+#: help.c:197
 #, c-format
 msgid "  \\ef [FUNCNAME [LINE]]  edit function definition with external editor\n"
 msgstr "  \\ef [FUNCNAME [LINE]]   使用外部编辑器编辑函数定义\n"
 
 # help.c:193
-#: help.c:196
+#: help.c:198
 #, c-format
 msgid "  \\ev [VIEWNAME [LINE]]  edit view definition with external editor\n"
 msgstr "  \\ev [VIEWNAME [LINE]]  用外部编辑器编辑视图定义\n"
 
 # help.c:195
-#: help.c:197
+#: help.c:199
 #, c-format
 msgid "  \\p                     show the contents of the query buffer\n"
 msgstr "  \\p                    显示查询缓存区的内容\n"
 
 # help.c:196
-#: help.c:198
+#: help.c:200
 #, c-format
 msgid "  \\r                     reset (clear) the query buffer\n"
 msgstr "  \\r                     重置(清除)查询缓存区\n"
 
 # help.c:198
-#: help.c:200
+#: help.c:202
 #, c-format
 msgid "  \\s [FILE]              display history or save it to file\n"
 msgstr "  \\s [文件]              显示历史记录或将历史记录保存在文件中\n"
 
 # help.c:200
-#: help.c:202
+#: help.c:204
 #, c-format
 msgid "  \\w FILE                write query buffer to file\n"
 msgstr "  \\w 文件                将查询缓存区的内容写入文件\n"
 
 # help.c:203
-#: help.c:205
+#: help.c:207
 #, c-format
 msgid "Input/Output\n"
 msgstr "输入/输出\n"
 
 # help.c:251
-#: help.c:206
+#: help.c:208
 #, c-format
 msgid "  \\copy ...              perform SQL COPY with data stream to the client host\n"
 msgstr "  \\copy ...              执行 SQL COPY,将数据流发送到客户端主机\n"
 
 # help.c:204
-#: help.c:207
+#: help.c:209
 #, c-format
 msgid "  \\echo [STRING]         write string to standard output\n"
 msgstr "  \\echo [字符串]         将字符串写到标准输出\n"
 
 # help.c:205
-#: help.c:208
+#: help.c:210
 #, c-format
 msgid "  \\i FILE                execute commands from file\n"
 msgstr "  \\i 文件                从文件中执行命令\n"
 
 # help.c:206
-#: help.c:209
+#: help.c:211
 #, c-format
 msgid "  \\ir FILE               as \\i, but relative to location of current script\n"
 msgstr "  \\ir FILE               与 \\i类似, 但是相对于当前脚本的位置\n"
 
 # help.c:206
-#: help.c:210
+#: help.c:212
 #, c-format
 msgid "  \\o [FILE]              send all query results to file or |pipe\n"
 msgstr "  \\o [文件]              将全部查询结果写入文件或 |管道\n"
 
 # help.c:207
-#: help.c:211
+#: help.c:213
 #, c-format
 msgid "  \\qecho [STRING]        write string to query output stream (see \\o)\n"
 msgstr "  \\qecho [字符串]        将字符串写到查询输出串流(参考 \\o)\n"
 
 # help.c:123
-#: help.c:214
+#: help.c:216
 #, c-format
 msgid "Conditional\n"
 msgstr "条件\n"
 
-#: help.c:215
+#: help.c:217
 #, c-format
 msgid "  \\if EXPR               begin conditional block\n"
 msgstr "  \\if EXPR               开始条件块\n"
 
-#: help.c:216
+#: help.c:218
 #, c-format
 msgid "  \\elif EXPR             alternative within current conditional block\n"
 msgstr "  \\elif EXPR             当前条件块内的备选方案\n"
 
 # help.c:206
-#: help.c:217
+#: help.c:219
 #, c-format
 msgid "  \\else                  final alternative within current conditional block\n"
 msgstr "  \\else                  当前条件块内的最终备选方案\n"
 
-#: help.c:218
+#: help.c:220
 #, c-format
 msgid "  \\endif                 end conditional block\n"
 msgstr "  \\endif                 条件块的结尾\n"
 
 # help.c:211
-#: help.c:221
+#: help.c:223
 #, c-format
 msgid "Informational\n"
 msgstr "资讯性\n"
 
-#: help.c:222
+#: help.c:224
 #, c-format
 msgid "  (options: S = show system objects, + = additional detail)\n"
 msgstr "  (选项: S = 显示系统对象, + = 其余的详细信息)\n"
 
 # help.c:226
-#: help.c:223
+#: help.c:225
 #, c-format
 msgid "  \\d[S+]                 list tables, views, and sequences\n"
 msgstr "  \\d[S+]                 列出表,视图和序列\n"
 
 # help.c:212
-#: help.c:224
+#: help.c:226
 #, c-format
 msgid "  \\d[S+]  NAME           describe table, view, sequence, or index\n"
 msgstr "  \\d[S+]  名称           描述表,视图,序列,或索引\n"
 
 # help.c:215
-#: help.c:225
+#: help.c:227
 #, c-format
 msgid "  \\da[S]  [PATTERN]      list aggregates\n"
 msgstr "  \\da[S]  [模式]         列出聚合函数\n"
 
 # help.c:218
-#: help.c:226
+#: help.c:228
 #, c-format
 msgid "  \\dA[+]  [PATTERN]      list access methods\n"
 msgstr "  \\dA[+]  [模式]         列出访问方法\n"
 
 # help.c:228
-#: help.c:227
+#: help.c:229
 #, c-format
 msgid "  \\db[+]  [PATTERN]      list tablespaces\n"
 msgstr "  \\db[+]  [模式]         列出表空间\n"
 
 # help.c:217
-#: help.c:228
+#: help.c:230
 #, c-format
 msgid "  \\dc[S+] [PATTERN]      list conversions\n"
 msgstr "  \\dc[S+] [模式]         列表转换\n"
 
 # help.c:218
-#: help.c:229
+#: help.c:231
 #, c-format
 msgid "  \\dC[+]  [PATTERN]      list casts\n"
 msgstr "  \\dC[+]  [模式]         列出类型强制转换\n"
 
 # help.c:219
-#: help.c:230
+#: help.c:232
 #, c-format
 msgid "  \\dd[S]  [PATTERN]      show object descriptions not displayed elsewhere\n"
 msgstr "  \\dd[S]  [模式]         显示没有在别处显示的对象描述\n"
 
 # help.c:220
-#: help.c:231
+#: help.c:233
 #, c-format
 msgid "  \\dD[S+] [PATTERN]      list domains\n"
 msgstr "  \\dD[S+] [模式]         列出共同值域\n"
 
 # help.c:218
-#: help.c:232
+#: help.c:234
 #, c-format
 msgid "  \\ddp    [PATTERN]      list default privileges\n"
 msgstr "  \\ddp    [模式]         列出默认权限\n"
 
 # help.c:228
-#: help.c:233
+#: help.c:235
 #, c-format
 msgid "  \\dE[S+] [PATTERN]      list foreign tables\n"
 msgstr "  \\dE[S+] [模式]         列出引用表\n"
 
 # help.c:228
-#: help.c:234
+#: help.c:236
 #, c-format
 msgid "  \\det[+] [PATTERN]      list foreign tables\n"
 msgstr "  \\det[+] [模式]         列出引用表\n"
 
 # help.c:228
-#: help.c:235
+#: help.c:237
 #, c-format
 msgid "  \\des[+] [PATTERN]      list foreign servers\n"
 msgstr "  \\des[+] [模式]         列出外部服务器\n"
 
 # help.c:228
-#: help.c:236
+#: help.c:238
 #, c-format
 msgid "  \\deu[+] [PATTERN]      list user mappings\n"
 msgstr "  \\deu[+] [模式]         列出用户映射\n"
 
 # help.c:222
-#: help.c:237
+#: help.c:239
 #, c-format
 msgid "  \\dew[+] [PATTERN]      list foreign-data wrappers\n"
 msgstr " \\dew[+] [模式]          列出外部数据封装器\n"
 
 # help.c:215
-#: help.c:238
+#: help.c:240
 #, c-format
 msgid "  \\df[anptw][S+] [PATRN] list [only agg/normal/procedures/trigger/window] functions\n"
 msgstr "  \\df[anptw][S+] [PATRN] 列出[只包括 聚合/常规/程序/触发器/窗口]函数 \n"
 
 # help.c:221
-#: help.c:239
+#: help.c:241
 #, c-format
 msgid "  \\dF[+]  [PATTERN]      list text search configurations\n"
 msgstr "  \\dF[+]  [模式]         列出文本搜索配置\n"
 
 # help.c:228
-#: help.c:240
+#: help.c:242
 #, c-format
 msgid "  \\dFd[+] [PATTERN]      list text search dictionaries\n"
 msgstr "  \\dFd[+] [模式]         列出文本搜索字典\n"
 
 # help.c:228
-#: help.c:241
+#: help.c:243
 #, c-format
 msgid "  \\dFp[+] [PATTERN]      list text search parsers\n"
 msgstr " \\dFp[+] [模式]          列出文本搜索解析器\n"
 
 # help.c:228
-#: help.c:242
+#: help.c:244
 #, c-format
 msgid "  \\dFt[+] [PATTERN]      list text search templates\n"
 msgstr "  \\dFt[+] [模式]         列出文本搜索模版\n"
 
 # help.c:222
-#: help.c:243
+#: help.c:245
 #, c-format
 msgid "  \\dg[S+] [PATTERN]      list roles\n"
 msgstr "  \\dg[S+] [模式]         列出角色\n"
 
 # help.c:220
-#: help.c:244
+#: help.c:246
 #, c-format
 msgid "  \\di[S+] [PATTERN]      list indexes\n"
 msgstr " \\di[S+] [模式]          列出索引\n"
 
 # help.c:225
-#: help.c:245
+#: help.c:247
 #, c-format
 msgid "  \\dl                    list large objects, same as \\lo_list\n"
 msgstr "  \\dl                    列出大对象, 功能与\\lo_list相同\n"
 
 # help.c:228
-#: help.c:246
+#: help.c:248
 #, c-format
 msgid "  \\dL[S+] [PATTERN]      list procedural languages\n"
 msgstr "  \\dL[S+] [模式]         列出所有过程语言\n"
 
 # help.c:228
-#: help.c:247
+#: help.c:249
 #, c-format
 msgid "  \\dm[S+] [PATTERN]      list materialized views\n"
 msgstr "  \\dm[S+] [模式]         列出所有物化视图\n"
 
 # help.c:228
-#: help.c:248
+#: help.c:250
 #, c-format
 msgid "  \\dn[S+] [PATTERN]      list schemas\n"
 msgstr "  \\dn[S+] [模式]         列出所有模式\n"
 
 # help.c:224
-#: help.c:249
+#: help.c:251
 #, c-format
 msgid "  \\do[S]  [PATTERN]      list operators\n"
 msgstr "  \\do[S]  [模式]         列出运算符\n"
 
 # help.c:220
-#: help.c:250
+#: help.c:252
 #, c-format
 msgid "  \\dO[S+] [PATTERN]      list collations\n"
 msgstr "  \\dO[S+] [模式]         列出所有校对规则\n"
 
 # help.c:226
-#: help.c:251
+#: help.c:253
 #, c-format
 msgid "  \\dp     [PATTERN]      list table, view, and sequence access privileges\n"
 msgstr "  \\dp     [模式]         列出表,视图和序列的访问权限\n"
 
-#: help.c:252
+# help.c:220
+#: help.c:254
+#, fuzzy, c-format
+#| msgid "  \\dRp[+] [PATTERN]      list replication publications\n"
+msgid "  \\dP[tin+] [PATTERN]    list [only table/index] partitioned relations\n"
+msgstr "  \\dRp[+] [模式]         列出复制出版物\n"
+
+#: help.c:255
 #, c-format
 msgid "  \\drds [PATRN1 [PATRN2]] list per-database role settings\n"
 msgstr "  \\drds [模式1 [模式2]]  列出每个数据库的角色设置\n"
 
 # help.c:220
-#: help.c:253
+#: help.c:256
 #, c-format
 msgid "  \\dRp[+] [PATTERN]      list replication publications\n"
 msgstr "  \\dRp[+] [模式]         列出复制出版物\n"
 
 # help.c:217
-#: help.c:254
+#: help.c:257
 #, c-format
 msgid "  \\dRs[+] [PATTERN]      list replication subscriptions\n"
 msgstr "  \\dRs[+] [模式]         列出复制订阅\n"
 
 # help.c:228
-#: help.c:255
+#: help.c:258
 #, c-format
 msgid "  \\ds[S+] [PATTERN]      list sequences\n"
 msgstr "  \\ds[S+] [模式]         列出序列\n"
 
 # help.c:228
-#: help.c:256
+#: help.c:259
 #, c-format
 msgid "  \\dt[S+] [PATTERN]      list tables\n"
 msgstr "  \\dt[S+] [模式]         列出表\n"
 
 # help.c:220
-#: help.c:257
+#: help.c:260
 #, c-format
 msgid "  \\dT[S+] [PATTERN]      list data types\n"
 msgstr "  \\dT[S+] [模式]         列出数据类型\n"
 
 # help.c:228
-#: help.c:258
+#: help.c:261
 #, c-format
 msgid "  \\du[S+] [PATTERN]      list roles\n"
 msgstr "  \\du[S+] [模式]         列出角色\n"
 
 # help.c:228
-#: help.c:259
+#: help.c:262
 #, c-format
 msgid "  \\dv[S+] [PATTERN]      list views\n"
 msgstr "  \\dv[S+] [模式]         列出视图\n"
 
 # help.c:217
-#: help.c:260
+#: help.c:263
 #, c-format
 msgid "  \\dx[+]  [PATTERN]      list extensions\n"
 msgstr "  \\dx[+]  [模式]         列出扩展\n"
 
 # help.c:218
-#: help.c:261
+#: help.c:264
 #, c-format
 msgid "  \\dy     [PATTERN]      list event triggers\n"
 msgstr "  \\dy     [模式]         列出所有事件触发器\n"
 
 # help.c:228
-#: help.c:262
+#: help.c:265
 #, c-format
 msgid "  \\l[+]   [PATTERN]      list databases\n"
 msgstr "  \\l[+]   [模式]         列出所有数据库\n"
 
 # help.c:193
-#: help.c:263
+#: help.c:266
 #, c-format
 msgid "  \\sf[+]  FUNCNAME       show a function's definition\n"
 msgstr "  \\sf[+]  FUNCNAME       显示一个函数的定义\n"
 
 # help.c:193
-#: help.c:264
+#: help.c:267
 #, c-format
 msgid "  \\sv[+]  VIEWNAME       show a view's definition\n"
 msgstr "  \\sv[+]  VIEWNAME       显示一个视图的定义\n"
 
 # help.c:218
-#: help.c:265
+#: help.c:268
 #, c-format
 msgid "  \\z      [PATTERN]      same as \\dp\n"
 msgstr "  \\z      [模式]         和\\dp的功能相同\n"
 
 # help.c:233
-#: help.c:268
+#: help.c:271
 #, c-format
 msgid "Formatting\n"
 msgstr "格式化\n"
 
 # help.c:234
-#: help.c:269
+#: help.c:272
 #, c-format
 msgid "  \\a                     toggle between unaligned and aligned output mode\n"
 msgstr "  \\a                     在非对齐模式和对齐模式之间切换\n"
 
 # help.c:235
-#: help.c:270
+#: help.c:273
 #, c-format
 msgid "  \\C [STRING]            set table title, or unset if none\n"
 msgstr "  \\C [字符串]            设置表的标题,或如果没有的标题就取消\n"
 
 # help.c:236
-#: help.c:271
+#: help.c:274
 #, c-format
 msgid "  \\f [STRING]            show or set field separator for unaligned query output\n"
 msgstr "  \\f [字符串]            显示或设定非对齐模式查询输出的字段分隔符\n"
 
 # help.c:237
-#: help.c:272
+#: help.c:275
 #, c-format
 msgid "  \\H                     toggle HTML output mode (currently %s)\n"
 msgstr "  \\H                     切换HTML输出模式 (目前是 %s)\n"
 
 # help.c:239
-#: help.c:274
-#, c-format
+#: help.c:277
+#, fuzzy, c-format
+#| msgid ""
+#| "  \\pset [NAME [VALUE]]   set table output option\n"
+#| "                         (NAME := {border|columns|expanded|fieldsep|fieldsep_zero|\n"
+#| "                         footer|format|linestyle|null|numericlocale|pager|\n"
+#| "                         pager_min_lines|recordsep|recordsep_zero|tableattr|title|\n"
+#| "                         tuples_only|unicode_border_linestyle|\n"
+#| "                         unicode_column_linestyle|unicode_header_linestyle})\n"
 msgid ""
 "  \\pset [NAME [VALUE]]   set table output option\n"
-"                         (NAME := {border|columns|expanded|fieldsep|fieldsep_zero|\n"
-"                         footer|format|linestyle|null|numericlocale|pager|\n"
-"                         pager_min_lines|recordsep|recordsep_zero|tableattr|title|\n"
-"                         tuples_only|unicode_border_linestyle|\n"
-"                         unicode_column_linestyle|unicode_header_linestyle})\n"
+"                         (border|columns|csv_fieldsep|expanded|fieldsep|\n"
+"                         fieldsep_zero|footer|format|linestyle|null|\n"
+"                         numericlocale|pager|pager_min_lines|recordsep|\n"
+"                         recordsep_zero|tableattr|title|tuples_only|\n"
+"                         unicode_border_linestyle|unicode_column_linestyle|\n"
+"                         unicode_header_linestyle)\n"
 msgstr ""
 "  \\pset [NAME [VALUE]]   设置表输出选项\n"
 "                         (NAME := {border|columns|expanded|fieldsep|fieldsep_zero|\n"
@@ -3304,31 +3604,31 @@ msgstr ""
 "                         unicode_column_linestyle|unicode_header_linestyle})\n"
 
 # help.c:243
-#: help.c:280
+#: help.c:284
 #, c-format
 msgid "  \\t [on|off]            show only rows (currently %s)\n"
 msgstr "  \\t [开|关]             只显示记录 (目前是 %s)\n"
 
 # help.c:245
-#: help.c:282
+#: help.c:286
 #, c-format
 msgid "  \\T [STRING]            set HTML <table> tag attributes, or unset if none\n"
 msgstr "  \\T [字符串]            设置HTML <表格>标签属性, 或者如果没有的话取消设置\n"
 
 # help.c:246
-#: help.c:283
+#: help.c:287
 #, 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:287
+#: help.c:291
 #, c-format
 msgid "Connection\n"
 msgstr "连接\n"
 
 # help.c:175
-#: help.c:289
+#: help.c:293
 #, c-format
 msgid ""
 "  \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n"
@@ -3338,7 +3638,7 @@ msgstr ""
 "                         连接到新数据库(当前是\"%s\")\n"
 
 # help.c:175
-#: help.c:293
+#: help.c:297
 #, c-format
 msgid ""
 "  \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n"
@@ -3347,82 +3647,82 @@ msgstr ""
 "  \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n"
 "                         连接到新数据库(当前无连接)\n"
 
-#: help.c:295
+#: help.c:299
 #, c-format
 msgid "  \\conninfo              display information about current connection\n"
 msgstr "  \\conninfo              显示当前连接的相关信息\n"
 
 # help.c:180
-#: help.c:296
+#: help.c:300
 #, c-format
 msgid "  \\encoding [ENCODING]   show or set client encoding\n"
 msgstr "  \\encoding [编码名称]  显示或设定客户端编码\n"
 
-#: help.c:297
+#: help.c:301
 #, c-format
 msgid "  \\password [USERNAME]   securely change the password for a user\n"
 msgstr "  \\password [USERNAME]   安全地为用户更改口令\n"
 
-#: help.c:300
+#: help.c:304
 #, c-format
 msgid "Operating System\n"
 msgstr "操作系统\n"
 
 # help.c:178
-#: help.c:301
+#: help.c:305
 #, c-format
 msgid "  \\cd [DIR]              change the current working directory\n"
 msgstr "  \\cd [目录]             更改目前的工作目录\n"
 
 # help.c:188
-#: help.c:302
+#: help.c:306
 #, c-format
 msgid "  \\setenv NAME [VALUE]   set or unset environment variable\n"
 msgstr "  \\setenv NAME [VALUE]   设置或清空环境变量\n"
 
 # help.c:186
-#: help.c:303
+#: help.c:307
 #, c-format
 msgid "  \\timing [on|off]       toggle timing of commands (currently %s)\n"
 msgstr " \\timing [开|关]         切换命令计时开关 (目前是 %s)\n"
 
 # help.c:189
-#: help.c:305
+#: help.c:309
 #, c-format
 msgid "  \\! [COMMAND]           execute command in shell or start interactive shell\n"
 msgstr "  \\! [命令]              在 shell中执行命令或启动一个交互式shell\n"
 
-#: help.c:308
+#: help.c:312
 #, c-format
 msgid "Variables\n"
 msgstr "变量\n"
 
 # help.c:188
-#: help.c:309
+#: help.c:313
 #, c-format
 msgid "  \\prompt [TEXT] NAME    prompt user to set internal variable\n"
 msgstr "  \\prompt [文本] 名称    提示用户设定内部变量\n"
 
 # help.c:184
-#: help.c:310
+#: help.c:314
 #, c-format
 msgid "  \\set [NAME [VALUE]]    set internal variable, or list all if no parameters\n"
 msgstr "  \\set [名称 [值数]]     设定内部变量,若无参数则列出全部变量\n"
 
 # help.c:188
-#: help.c:311
+#: help.c:315
 #, c-format
 msgid "  \\unset NAME            unset (delete) internal variable\n"
 msgstr "  \\unset 名称            清空(删除)内部变量\n"
 
 # large_obj.c:264
-#: help.c:314
+#: help.c:318
 #, c-format
 msgid "Large Objects\n"
 msgstr "大对象\n"
 
 # help.c:252
-#: help.c:315
+#: help.c:319
 #, c-format
 msgid ""
 "  \\lo_export LOBOID FILE\n"
@@ -3435,7 +3735,7 @@ msgstr ""
 "  \\lo_list\n"
 "  \\lo_unlink LOBOID      大对象运算\n"
 
-#: help.c:342
+#: help.c:346
 #, c-format
 msgid ""
 "List of specially treated variables\n"
@@ -3444,12 +3744,12 @@ msgstr ""
 "特殊对待的变量的列表\n"
 "\n"
 
-#: help.c:344
+#: help.c:348
 #, c-format
 msgid "psql variables:\n"
 msgstr "psql变量:\n"
 
-#: help.c:346
+#: help.c:350
 #, c-format
 msgid ""
 "  psql --set=NAME=VALUE\n"
@@ -3460,7 +3760,7 @@ msgstr ""
 "  或者在 psql 中的 \\set NAME VALUE\n"
 "\n"
 
-#: help.c:348
+#: help.c:352
 #, c-format
 msgid ""
 "  AUTOCOMMIT\n"
@@ -3469,7 +3769,7 @@ msgstr ""
 "  AUTOCOMMIT\n"
 "    如果被设置,成功的SQL命令将会被自动提交\n"
 
-#: help.c:350
+#: help.c:354
 #, c-format
 msgid ""
 "  COMP_KEYWORD_CASE\n"
@@ -3482,7 +3782,7 @@ msgstr ""
 
 # common.c:636
 # common.c:871
-#: help.c:353
+#: help.c:357
 #, c-format
 msgid ""
 "  DBNAME\n"
@@ -3491,7 +3791,7 @@ msgstr ""
 "  DBNAME\n"
 "    当前已连接的数据库名\n"
 
-#: help.c:355
+#: help.c:359
 #, c-format
 msgid ""
 "  ECHO\n"
@@ -3502,7 +3802,7 @@ msgstr ""
 "    控制哪些输入被写入到标准输出\n"
 "    [all, errors, none, queries]\n"
 
-#: help.c:358
+#: help.c:362
 #, c-format
 msgid ""
 "  ECHO_HIDDEN\n"
@@ -3514,7 +3814,7 @@ msgstr ""
 "    如果被设置为 \"noexec\",只显示但不执行\n"
 
 # help.c:180
-#: help.c:361
+#: help.c:365
 #, c-format
 msgid ""
 "  ENCODING\n"
@@ -3523,7 +3823,7 @@ msgstr ""
 "  ENCODING\n"
 "    当前的客户端字符集编码\n"
 
-#: help.c:363
+#: help.c:367
 #, c-format
 msgid ""
 "  ERROR\n"
@@ -3532,7 +3832,7 @@ msgstr ""
 "  错误\n"
 "    如果上次查询失败,则为true,否则为false\n"
 
-#: help.c:365
+#: help.c:369
 #, c-format
 msgid ""
 "  FETCH_COUNT\n"
@@ -3541,7 +3841,14 @@ msgstr ""
 "  FETCH_COUNT\n"
 "    一次取得并显示的结果行的数量 (0=无限)\n"
 
-#: help.c:367
+#: help.c:371
+#, c-format
+msgid ""
+"  HIDE_TABLEAM\n"
+"    if set, table access methods are not displayed\n"
+msgstr ""
+
+#: help.c:373
 #, c-format
 msgid ""
 "  HISTCONTROL\n"
@@ -3550,7 +3857,7 @@ msgstr ""
 "  HISTCONTROL\n"
 "    控制命令历史 [ignorespace, ignoredups, ignoreboth]\n"
 
-#: help.c:369
+#: help.c:375
 #, c-format
 msgid ""
 "  HISTFILE\n"
@@ -3559,7 +3866,7 @@ msgstr ""
 "  HISTFILE\n"
 "    用来存储命令历史的文件名\n"
 
-#: help.c:371
+#: help.c:377
 #, c-format
 msgid ""
 "  HISTSIZE\n"
@@ -3569,7 +3876,7 @@ msgstr ""
 "    保存在命令历史中的最大命令数\n"
 
 # help.c:178
-#: help.c:373
+#: help.c:379
 #, c-format
 msgid ""
 "  HOST\n"
@@ -3578,7 +3885,7 @@ msgstr ""
 "  HOST\n"
 "    当前连接的数据库服务器主机\n"
 
-#: help.c:375
+#: help.c:381
 #, c-format
 msgid ""
 "  IGNOREEOF\n"
@@ -3587,7 +3894,7 @@ msgstr ""
 "  IGNOREEOF\n"
 "    终止交互式会话所需的EOF数\n"
 
-#: help.c:377
+#: help.c:383
 #, c-format
 msgid ""
 "  LASTOID\n"
@@ -3596,7 +3903,7 @@ msgstr ""
 "  LASTOID\n"
 "    最后一个受影响的 OID 的值\n"
 
-#: help.c:379
+#: help.c:385
 #, c-format
 msgid ""
 "  LAST_ERROR_MESSAGE\n"
@@ -3607,7 +3914,7 @@ msgstr ""
 "  LAST_ERROR_SQLSTATE\n"
 "    最后一个错误的消息和SQL状态,如果没有,则为空字符串和\"00000\"\n"
 
-#: help.c:382
+#: help.c:388
 #, c-format
 msgid ""
 "  ON_ERROR_ROLLBACK\n"
@@ -3616,7 +3923,7 @@ msgstr ""
 "  ON_ERROR_ROLLBACK\n"
 "    如果被设置,则错误不会停止一个事务(使用隐式保存点)\n"
 
-#: help.c:384
+#: help.c:390
 #, c-format
 msgid ""
 "  ON_ERROR_STOP\n"
@@ -3625,7 +3932,7 @@ msgstr ""
 "  ON_ERROR_STOP\n"
 "    发生错误后停止批量执行\n"
 
-#: help.c:386
+#: help.c:392
 #, c-format
 msgid ""
 "  PORT\n"
@@ -3634,7 +3941,7 @@ msgstr ""
 "  PORT\n"
 "    当前连接的服务器端口\n"
 
-#: help.c:388
+#: help.c:394
 #, c-format
 msgid ""
 "  PROMPT1\n"
@@ -3643,7 +3950,7 @@ msgstr ""
 "  PROMPT1\n"
 "    指定标准的 psql 提示符\n"
 
-#: help.c:390
+#: help.c:396
 #, c-format
 msgid ""
 "  PROMPT2\n"
@@ -3652,7 +3959,7 @@ msgstr ""
 "  PROMPT2\n"
 "    指定在语句跨行时使用的提示符\n"
 
-#: help.c:392
+#: help.c:398
 #, c-format
 msgid ""
 "  PROMPT3\n"
@@ -3662,7 +3969,7 @@ msgstr ""
 "    指定 COPY ... FROM STDIN 期间使用的提示符\n"
 
 # help.c:106
-#: help.c:394
+#: help.c:400
 #, c-format
 msgid ""
 "  QUIET\n"
@@ -3671,7 +3978,7 @@ msgstr ""
 "  QUIET\n"
 "    静默地运行(和-q选项相同)\n"
 
-#: help.c:396
+#: help.c:402
 #, c-format
 msgid ""
 "  ROW_COUNT\n"
@@ -3680,7 +3987,7 @@ msgstr ""
 "  ROW_COUNT\n"
 "    上一个查询返回或影响的行数,或0\n"
 
-#: help.c:398
+#: help.c:404
 #, c-format
 msgid ""
 "  SERVER_VERSION_NAME\n"
@@ -3691,7 +3998,7 @@ msgstr ""
 "  SERVER_VERSION_NUM\n"
 "    服务器版本(短字符串或数字格式)\n"
 
-#: help.c:401
+#: help.c:407
 #, c-format
 msgid ""
 "  SHOW_CONTEXT\n"
@@ -3700,7 +4007,7 @@ msgstr ""
 "  SHOW_CONTEXT\n"
 "    控制消息上下文域的显示 [never, errors, always]\n"
 
-#: help.c:403
+#: help.c:409
 #, c-format
 msgid ""
 "  SINGLELINE\n"
@@ -3709,7 +4016,7 @@ msgstr ""
 "  SINGLELINE\n"
 "    设置的话,行尾会终止SQL命令模式(与-S选项相同)\n"
 
-#: help.c:405
+#: help.c:411
 #, c-format
 msgid ""
 "  SINGLESTEP\n"
@@ -3718,7 +4025,7 @@ msgstr ""
 "  SINGLESTEP\n"
 "    单步模式(与-s选项相同)\n"
 
-#: help.c:407
+#: help.c:413
 #, c-format
 msgid ""
 "  SQLSTATE\n"
@@ -3728,7 +4035,7 @@ msgstr ""
 "    上次查询的SQL状态,如果没有错误,则为\"00000\"\n"
 
 # help.c:178
-#: help.c:409
+#: help.c:415
 #, c-format
 msgid ""
 "  USER\n"
@@ -3737,16 +4044,19 @@ msgstr ""
 "  USER\n"
 "    当前连接上的数据库用户\n"
 
-#: help.c:411
-#, c-format
+#: help.c:417
+#, fuzzy, c-format
+#| msgid ""
+#| "  VERBOSITY\n"
+#| "    controls verbosity of error reports [default, verbose, terse]\n"
 msgid ""
 "  VERBOSITY\n"
-"    controls verbosity of error reports [default, verbose, terse]\n"
+"    controls verbosity of error reports [default, verbose, terse, sqlstate]\n"
 msgstr ""
 "  VERBOSITY\n"
 "    控制错误报告的冗长程度 [default, verbose, terse]\n"
 
-#: help.c:413
+#: help.c:419
 #, c-format
 msgid ""
 "  VERSION\n"
@@ -3760,7 +4070,7 @@ msgstr ""
 "    psql版本(详细字符串、短字符串或数字格式)\n"
 
 # describe.c:1549
-#: help.c:418
+#: help.c:424
 #, c-format
 msgid ""
 "\n"
@@ -3769,7 +4079,7 @@ msgstr ""
 "\n"
 "显示设置:\n"
 
-#: help.c:420
+#: help.c:426
 #, c-format
 msgid ""
 "  psql --pset=NAME[=VALUE]\n"
@@ -3780,7 +4090,7 @@ msgstr ""
 "  或者 psql 中的 \\pset NAME [VALUE]\n"
 "\n"
 
-#: help.c:422
+#: help.c:428
 #, c-format
 msgid ""
 "  border\n"
@@ -3789,7 +4099,7 @@ msgstr ""
 "  border\n"
 "    边界样式(数字)\n"
 
-#: help.c:424
+#: help.c:430
 #, c-format
 msgid ""
 "  columns\n"
@@ -3799,7 +4109,7 @@ msgstr ""
 "    用于回卷格式的目标宽度\n"
 
 # help.c:117
-#: help.c:426
+#: help.c:432
 #, c-format
 msgid ""
 "  expanded (or x)\n"
@@ -3809,7 +4119,7 @@ msgstr ""
 "    扩展输出 [on, off, auto]\n"
 
 # help.c:119
-#: help.c:428
+#: help.c:434
 #, c-format
 msgid ""
 "  fieldsep\n"
@@ -3819,7 +4129,7 @@ msgstr ""
 "    用于非对齐输出的域分隔符(默认是 \"%s\")\n"
 
 # help.c:119
-#: help.c:431
+#: help.c:437
 #, c-format
 msgid ""
 "  fieldsep_zero\n"
@@ -3828,7 +4138,7 @@ msgstr ""
 "  fieldsep_zero\n"
 "    将用于非对齐模式中的域分隔符设置为零字节\n"
 
-#: help.c:433
+#: help.c:439
 #, c-format
 msgid ""
 "  footer\n"
@@ -3838,7 +4148,7 @@ msgstr ""
 "    启用或禁用表格页脚的显示 [on, off]\n"
 
 # command.c:1340
-#: help.c:435
+#: help.c:441
 #, c-format
 msgid ""
 "  format\n"
@@ -3847,7 +4157,7 @@ msgstr ""
 "  format\n"
 "    设置输出格式 [unaligned, aligned, wrapped, html, asciidoc, ...]\n"
 
-#: help.c:437
+#: help.c:443
 #, c-format
 msgid ""
 "  linestyle\n"
@@ -3856,7 +4166,7 @@ msgstr ""
 "  linestyle\n"
 "    设置边界线绘制风格 [ascii, old-ascii, unicode]\n"
 
-#: help.c:439
+#: help.c:445
 #, c-format
 msgid ""
 "  null\n"
@@ -3865,7 +4175,7 @@ msgstr ""
 "  null\n"
 "    设置代替空值被打印的字符串\n"
 
-#: help.c:441
+#: help.c:447
 #, c-format
 msgid ""
 "  numericlocale\n"
@@ -3874,7 +4184,7 @@ msgstr ""
 "  numericlocale\n"
 "    允许显示特定于区域设置的字符以分隔数字组\n"
 
-#: help.c:443
+#: help.c:449
 #, c-format
 msgid ""
 "  pager\n"
@@ -3884,7 +4194,7 @@ msgstr ""
 "    控制何时使用一个外部分页器 [yes, no, always]\n"
 
 # help.c:121
-#: help.c:445
+#: help.c:451
 #, c-format
 msgid ""
 "  recordsep\n"
@@ -3894,7 +4204,7 @@ msgstr ""
 "    用于非对齐输出中的记录(行)分隔符\n"
 
 # help.c:121
-#: help.c:447
+#: help.c:453
 #, c-format
 msgid ""
 "  recordsep_zero\n"
@@ -3903,7 +4213,7 @@ msgstr ""
 "  recordsep_zero\n"
 "    将用于非对齐输出中的记录分隔符设置为零字节\n"
 
-#: help.c:449
+#: help.c:455
 #, c-format
 msgid ""
 "  tableattr (or T)\n"
@@ -3915,7 +4225,7 @@ msgstr ""
 "    或者 latex-longtable 格式中左对齐数据类型的比例列宽\n"
 
 # help.c:235
-#: help.c:452
+#: help.c:458
 #, c-format
 msgid ""
 "  title\n"
@@ -3924,7 +4234,7 @@ msgstr ""
 "  title\n"
 "    为任何后续被打印的表设置表标题\n"
 
-#: help.c:454
+#: help.c:460
 #, c-format
 msgid ""
 "  tuples_only\n"
@@ -3933,7 +4243,7 @@ msgstr ""
 "  tuples_only\n"
 "    如果被设置,只有真实的表数据会被显示\n"
 
-#: help.c:456
+#: help.c:462
 #, c-format
 msgid ""
 "  unicode_border_linestyle\n"
@@ -3946,7 +4256,7 @@ msgstr ""
 "  unicode_header_linestyle\n"
 "    设置 Unicode 线绘制的风格 [single, double]\n"
 
-#: help.c:461
+#: help.c:467
 #, c-format
 msgid ""
 "\n"
@@ -3955,7 +4265,7 @@ msgstr ""
 "\n"
 "环境变量:\n"
 
-#: help.c:465
+#: help.c:471
 #, c-format
 msgid ""
 "  NAME=VALUE [NAME=VALUE] psql ...\n"
@@ -3966,7 +4276,7 @@ msgstr ""
 "  或者 psql 中的 \\setenv NAME [VALUE]\n"
 "\n"
 
-#: help.c:467
+#: help.c:473
 #, c-format
 msgid ""
 "  set NAME=VALUE\n"
@@ -3979,7 +4289,7 @@ msgstr ""
 "  或者 psql 中的 \\setenv NAME [VALUE]\n"
 "\n"
 
-#: help.c:470
+#: help.c:476
 #, c-format
 msgid ""
 "  COLUMNS\n"
@@ -3988,7 +4298,7 @@ msgstr ""
 "  COLUMNS\n"
 "    回卷格式的列数\n"
 
-#: help.c:472
+#: help.c:478
 #, c-format
 msgid ""
 "  PGAPPNAME\n"
@@ -3997,7 +4307,7 @@ msgstr ""
 "  PGAPPNAME\n"
 "    和application_name连接参数相同\n"
 
-#: help.c:474
+#: help.c:480
 #, c-format
 msgid ""
 "  PGDATABASE\n"
@@ -4006,7 +4316,7 @@ msgstr ""
 "  PGDATABASE\n"
 "    和dbname连接参数相同\n"
 
-#: help.c:476
+#: help.c:482
 #, c-format
 msgid ""
 "  PGHOST\n"
@@ -4015,7 +4325,7 @@ msgstr ""
 "  PGHOST\n"
 "    与主机连接参数相同\n"
 
-#: help.c:478
+#: help.c:484
 #, c-format
 msgid ""
 "  PGPASSWORD\n"
@@ -4024,7 +4334,7 @@ msgstr ""
 "  PGPASSWORD\n"
 "    连接口令(不推荐)\n"
 
-#: help.c:480
+#: help.c:486
 #, c-format
 msgid ""
 "  PGPASSFILE\n"
@@ -4033,7 +4343,7 @@ msgstr ""
 "  PGPASSFILE\n"
 "    口令文件名\n"
 
-#: help.c:482
+#: help.c:488
 #, c-format
 msgid ""
 "  PGPORT\n"
@@ -4043,7 +4353,7 @@ msgstr ""
 "    与端口连接参数相同\n"
 
 # help.c:136
-#: help.c:484
+#: help.c:490
 #, c-format
 msgid ""
 "  PGUSER\n"
@@ -4052,7 +4362,7 @@ msgstr ""
 "  PGUSER\n"
 "    与用户连接参数相同\n"
 
-#: help.c:486
+#: help.c:492
 #, c-format
 msgid ""
 "  PSQL_EDITOR, EDITOR, VISUAL\n"
@@ -4061,7 +4371,7 @@ msgstr ""
 "  PSQL_EDITOR, EDITOR, VISUAL\n"
 "    \\e, \\ef, 和 \\ev 命令使用的编辑器\n"
 
-#: help.c:488
+#: help.c:494
 #, c-format
 msgid ""
 "  PSQL_EDITOR_LINENUMBER_ARG\n"
@@ -4070,7 +4380,7 @@ msgstr ""
 "  PSQL_EDITOR_LINENUMBER_ARG\n"
 "    调用编辑器时如何指定一个行号\n"
 
-#: help.c:490
+#: help.c:496
 #, c-format
 msgid ""
 "  PSQL_HISTORY\n"
@@ -4079,7 +4389,7 @@ msgstr ""
 "  PSQL_HISTORY\n"
 "    命令历史文件的可选位置\n"
 
-#: help.c:492
+#: help.c:498
 #, c-format
 msgid ""
 "  PSQL_PAGER, PAGER\n"
@@ -4088,7 +4398,7 @@ msgstr ""
 "  PSQL_PAGER, PAGER\n"
 "  外部分页程序的名称\n"
 
-#: help.c:494
+#: help.c:500
 #, c-format
 msgid ""
 "  PSQLRC\n"
@@ -4097,7 +4407,7 @@ msgstr ""
 "  PSQLRC\n"
 "    用户的.psqlrc文件的可选位置\n"
 
-#: help.c:496
+#: help.c:502
 #, c-format
 msgid ""
 "  SHELL\n"
@@ -4107,7 +4417,7 @@ msgstr ""
 "    \\! 命令使用的shell\n"
 
 # help.c:200
-#: help.c:498
+#: help.c:504
 #, c-format
 msgid ""
 "  TMPDIR\n"
@@ -4117,19 +4427,27 @@ msgstr ""
 "    临时文件的目录\n"
 
 # help.c:285
-#: help.c:542
+#: help.c:548
 msgid "Available help:\n"
 msgstr "可用的说明:\n"
 
 # help.c:344
-#: help.c:626
-#, c-format
+#: help.c:636
+#, fuzzy, c-format
+#| msgid ""
+#| "Command:     %s\n"
+#| "Description: %s\n"
+#| "Syntax:\n"
+#| "%s\n"
+#| "\n"
 msgid ""
 "Command:     %s\n"
 "Description: %s\n"
 "Syntax:\n"
 "%s\n"
 "\n"
+"URL: %s\n"
+"\n"
 msgstr ""
 "命令:       %s\n"
 "描述:       %s\n"
@@ -4138,7 +4456,7 @@ msgstr ""
 "\n"
 
 # help.c:357
-#: help.c:642
+#: help.c:655
 #, c-format
 msgid ""
 "No help available for \"%s\".\n"
@@ -4148,53 +4466,60 @@ msgstr ""
 "请尝试用不带参数的 \\h 来看一下是否有可使用的帮助信息.\n"
 
 # input.c:210
-#: input.c:216
-#, c-format
-msgid "could not read from input file: %s\n"
+#: input.c:218
+#, fuzzy, c-format
+#| msgid "could not read from input file: %s\n"
+msgid "could not read from input file: %m"
 msgstr "无法从输入档案读取:%s\n"
 
 # input.c:210
-#: input.c:471 input.c:510
-#, c-format
-msgid "could not save history to file \"%s\": %s\n"
+#: input.c:472 input.c:510
+#, fuzzy, c-format
+#| msgid "could not save history to file \"%s\": %s\n"
+msgid "could not save history to file \"%s\": %m"
 msgstr "无法将历史记录储存到 \"%s\":%s\n"
 
 # input.c:213
-#: input.c:530
-#, c-format
-msgid "history is not supported by this installation\n"
+#: input.c:529
+#, fuzzy, c-format
+#| msgid "history is not supported by this installation\n"
+msgid "history is not supported by this installation"
 msgstr "这个安装不支援命令记录\n"
 
 # large_obj.c:36
-#: large_obj.c:64
-#, c-format
-msgid "%s: not connected to a database\n"
+#: large_obj.c:65
+#, fuzzy, c-format
+#| msgid "%s: not connected to a database\n"
+msgid "%s: not connected to a database"
 msgstr "%s:尚未与数据库连接\n"
 
 # large_obj.c:55
-#: large_obj.c:83
-#, c-format
-msgid "%s: current transaction is aborted\n"
+#: large_obj.c:84
+#, fuzzy, c-format
+#| msgid "%s: current transaction is aborted\n"
+msgid "%s: current transaction is aborted"
 msgstr "%s:目前的事务被中止\n"
 
 # large_obj.c:58
-#: large_obj.c:86
-#, c-format
-msgid "%s: unknown transaction status\n"
+#: large_obj.c:87
+#, fuzzy, c-format
+#| msgid "%s: unknown transaction status\n"
+msgid "%s: unknown transaction status"
 msgstr "%s:不明事务状态\n"
 
-#: large_obj.c:287 large_obj.c:298
+#: large_obj.c:288 large_obj.c:299
 msgid "ID"
 msgstr "ID"
 
 # large_obj.c:264
-#: large_obj.c:308
+#: large_obj.c:309
 msgid "Large objects"
 msgstr "大型对象"
 
 #: mainloop.c:136
-#, c-format
-msgid "\\if: escaped\n"
+#, fuzzy, c-format
+#| msgid "\\if: escaped\n"
+msgid "\\if: escaped"
 msgstr "\\if: 逃脱\n"
 
 # mainloop.c:172
@@ -4252,28 +4577,26 @@ msgid "Use control-C to quit."
 msgstr "使用control-C退出."
 
 #: mainloop.c:449 mainloop.c:591
-#, c-format
-msgid "query ignored; use \\endif or Ctrl-C to exit current \\if block\n"
+#, fuzzy, c-format
+#| msgid "query ignored; use \\endif or Ctrl-C to exit current \\if block\n"
+msgid "query ignored; use \\endif or Ctrl-C to exit current \\if block"
 msgstr "查询被忽略;使用\\endif或Ctrl-C退出当前\\if块\n"
 
 #: mainloop.c:609
-#, c-format
-msgid "reached EOF without finding closing \\endif(s)\n"
+#, fuzzy, c-format
+#| msgid "reached EOF without finding closing \\endif(s)\n"
+msgid "reached EOF without finding closing \\endif(s)"
 msgstr "已到达EOF,但未找到结束符\\endif\n"
 
-#: psqlscan.l:724
-#, c-format
-msgid "skipping recursive expansion of variable \"%s\"\n"
-msgstr "跳过变量 \"%s\"的递归扩展\n"
-
-#: psqlscanslash.l:637
+#: psqlscanslash.l:638
 #, c-format
-msgid "unterminated quoted string\n"
-msgstr "未结束的引用字符串\n"
+msgid "unterminated quoted string"
+msgstr "未结束的引用字符串"
 
-#: psqlscanslash.l:810
-#, c-format
-msgid "%s: out of memory\n"
+#: psqlscanslash.l:811
+#, fuzzy, c-format
+#| msgid "%s: out of memory\n"
+msgid "%s: out of memory"
 msgstr "%s: 内存溢出\n"
 
 # describe.c:82
@@ -4295,199 +4618,199 @@ msgstr "%s: 内存溢出\n"
 #: sql_help.c:238 sql_help.c:240 sql_help.c:242 sql_help.c:245 sql_help.c:247
 #: sql_help.c:249 sql_help.c:251 sql_help.c:263 sql_help.c:264 sql_help.c:265
 #: sql_help.c:267 sql_help.c:316 sql_help.c:318 sql_help.c:320 sql_help.c:322
-#: sql_help.c:391 sql_help.c:396 sql_help.c:398 sql_help.c:441 sql_help.c:443
-#: sql_help.c:446 sql_help.c:448 sql_help.c:515 sql_help.c:520 sql_help.c:525
-#: sql_help.c:530 sql_help.c:535 sql_help.c:587 sql_help.c:589 sql_help.c:591
-#: sql_help.c:593 sql_help.c:595 sql_help.c:598 sql_help.c:600 sql_help.c:603
-#: sql_help.c:614 sql_help.c:616 sql_help.c:657 sql_help.c:659 sql_help.c:661
-#: sql_help.c:664 sql_help.c:666 sql_help.c:668 sql_help.c:701 sql_help.c:705
-#: sql_help.c:709 sql_help.c:728 sql_help.c:731 sql_help.c:734 sql_help.c:763
-#: sql_help.c:775 sql_help.c:783 sql_help.c:786 sql_help.c:789 sql_help.c:804
-#: sql_help.c:807 sql_help.c:836 sql_help.c:841 sql_help.c:846 sql_help.c:851
-#: sql_help.c:856 sql_help.c:878 sql_help.c:880 sql_help.c:882 sql_help.c:884
-#: sql_help.c:887 sql_help.c:889 sql_help.c:930 sql_help.c:974 sql_help.c:979
-#: sql_help.c:984 sql_help.c:989 sql_help.c:994 sql_help.c:1013 sql_help.c:1024
-#: sql_help.c:1026 sql_help.c:1045 sql_help.c:1055 sql_help.c:1057
-#: sql_help.c:1059 sql_help.c:1071 sql_help.c:1075 sql_help.c:1077
-#: sql_help.c:1088 sql_help.c:1090 sql_help.c:1092 sql_help.c:1108
-#: sql_help.c:1110 sql_help.c:1114 sql_help.c:1117 sql_help.c:1118
-#: sql_help.c:1119 sql_help.c:1122 sql_help.c:1124 sql_help.c:1257
+#: sql_help.c:391 sql_help.c:396 sql_help.c:398 sql_help.c:440 sql_help.c:442
+#: sql_help.c:445 sql_help.c:447 sql_help.c:515 sql_help.c:520 sql_help.c:525
+#: sql_help.c:530 sql_help.c:535 sql_help.c:588 sql_help.c:590 sql_help.c:592
+#: sql_help.c:594 sql_help.c:596 sql_help.c:599 sql_help.c:601 sql_help.c:604
+#: sql_help.c:615 sql_help.c:617 sql_help.c:658 sql_help.c:660 sql_help.c:662
+#: sql_help.c:665 sql_help.c:667 sql_help.c:669 sql_help.c:702 sql_help.c:706
+#: sql_help.c:710 sql_help.c:729 sql_help.c:732 sql_help.c:735 sql_help.c:764
+#: sql_help.c:776 sql_help.c:784 sql_help.c:787 sql_help.c:790 sql_help.c:805
+#: sql_help.c:808 sql_help.c:837 sql_help.c:842 sql_help.c:847 sql_help.c:852
+#: sql_help.c:857 sql_help.c:879 sql_help.c:881 sql_help.c:883 sql_help.c:885
+#: sql_help.c:888 sql_help.c:890 sql_help.c:931 sql_help.c:975 sql_help.c:980
+#: sql_help.c:985 sql_help.c:990 sql_help.c:995 sql_help.c:1014 sql_help.c:1025
+#: sql_help.c:1027 sql_help.c:1046 sql_help.c:1056 sql_help.c:1058
+#: sql_help.c:1060 sql_help.c:1072 sql_help.c:1076 sql_help.c:1078
+#: sql_help.c:1089 sql_help.c:1091 sql_help.c:1093 sql_help.c:1109
+#: sql_help.c:1111 sql_help.c:1115 sql_help.c:1118 sql_help.c:1119
+#: sql_help.c:1120 sql_help.c:1123 sql_help.c:1125 sql_help.c:1257
 #: sql_help.c:1259 sql_help.c:1262 sql_help.c:1265 sql_help.c:1267
-#: sql_help.c:1269 sql_help.c:1272 sql_help.c:1275 sql_help.c:1387
-#: sql_help.c:1389 sql_help.c:1391 sql_help.c:1394 sql_help.c:1415
-#: sql_help.c:1418 sql_help.c:1421 sql_help.c:1424 sql_help.c:1428
-#: sql_help.c:1430 sql_help.c:1432 sql_help.c:1434 sql_help.c:1448
-#: sql_help.c:1451 sql_help.c:1453 sql_help.c:1455 sql_help.c:1465
-#: sql_help.c:1467 sql_help.c:1477 sql_help.c:1479 sql_help.c:1489
-#: sql_help.c:1492 sql_help.c:1514 sql_help.c:1516 sql_help.c:1518
-#: sql_help.c:1521 sql_help.c:1523 sql_help.c:1525 sql_help.c:1528
-#: sql_help.c:1578 sql_help.c:1620 sql_help.c:1623 sql_help.c:1625
-#: sql_help.c:1627 sql_help.c:1629 sql_help.c:1631 sql_help.c:1634
+#: sql_help.c:1269 sql_help.c:1272 sql_help.c:1275 sql_help.c:1384
+#: sql_help.c:1386 sql_help.c:1388 sql_help.c:1391 sql_help.c:1412
+#: sql_help.c:1415 sql_help.c:1418 sql_help.c:1421 sql_help.c:1425
+#: sql_help.c:1427 sql_help.c:1429 sql_help.c:1431 sql_help.c:1445
+#: sql_help.c:1448 sql_help.c:1450 sql_help.c:1452 sql_help.c:1462
+#: sql_help.c:1464 sql_help.c:1474 sql_help.c:1476 sql_help.c:1486
+#: sql_help.c:1489 sql_help.c:1511 sql_help.c:1513 sql_help.c:1515
+#: sql_help.c:1518 sql_help.c:1520 sql_help.c:1522 sql_help.c:1525
+#: sql_help.c:1575 sql_help.c:1617 sql_help.c:1620 sql_help.c:1622
+#: sql_help.c:1624 sql_help.c:1626 sql_help.c:1628 sql_help.c:1631
 #: sql_help.c:1681 sql_help.c:1697 sql_help.c:1918 sql_help.c:1987
-#: sql_help.c:2006 sql_help.c:2019 sql_help.c:2075 sql_help.c:2081
-#: sql_help.c:2091 sql_help.c:2111 sql_help.c:2136 sql_help.c:2154
-#: sql_help.c:2183 sql_help.c:2275 sql_help.c:2316 sql_help.c:2339
-#: sql_help.c:2360 sql_help.c:2361 sql_help.c:2396 sql_help.c:2416
-#: sql_help.c:2438 sql_help.c:2452 sql_help.c:2472 sql_help.c:2495
-#: sql_help.c:2525 sql_help.c:2550 sql_help.c:2596 sql_help.c:2867
-#: sql_help.c:2880 sql_help.c:2897 sql_help.c:2913 sql_help.c:2953
-#: sql_help.c:3005 sql_help.c:3009 sql_help.c:3011 sql_help.c:3017
-#: sql_help.c:3035 sql_help.c:3062 sql_help.c:3097 sql_help.c:3109
-#: sql_help.c:3118 sql_help.c:3162 sql_help.c:3176 sql_help.c:3204
-#: sql_help.c:3212 sql_help.c:3220 sql_help.c:3228 sql_help.c:3236
-#: sql_help.c:3244 sql_help.c:3252 sql_help.c:3260 sql_help.c:3269
-#: sql_help.c:3280 sql_help.c:3288 sql_help.c:3296 sql_help.c:3304
-#: sql_help.c:3312 sql_help.c:3322 sql_help.c:3331 sql_help.c:3340
-#: sql_help.c:3348 sql_help.c:3358 sql_help.c:3369 sql_help.c:3377
-#: sql_help.c:3386 sql_help.c:3397 sql_help.c:3406 sql_help.c:3414
-#: sql_help.c:3422 sql_help.c:3430 sql_help.c:3438 sql_help.c:3446
-#: sql_help.c:3454 sql_help.c:3462 sql_help.c:3470 sql_help.c:3478
-#: sql_help.c:3486 sql_help.c:3503 sql_help.c:3512 sql_help.c:3520
-#: sql_help.c:3537 sql_help.c:3552 sql_help.c:3820 sql_help.c:3871
-#: sql_help.c:3900 sql_help.c:3908 sql_help.c:4341 sql_help.c:4389
-#: sql_help.c:4530
+#: sql_help.c:2006 sql_help.c:2019 sql_help.c:2076 sql_help.c:2083
+#: sql_help.c:2093 sql_help.c:2113 sql_help.c:2138 sql_help.c:2156
+#: sql_help.c:2185 sql_help.c:2280 sql_help.c:2322 sql_help.c:2345
+#: sql_help.c:2366 sql_help.c:2367 sql_help.c:2404 sql_help.c:2424
+#: sql_help.c:2446 sql_help.c:2460 sql_help.c:2480 sql_help.c:2503
+#: sql_help.c:2533 sql_help.c:2558 sql_help.c:2604 sql_help.c:2882
+#: sql_help.c:2895 sql_help.c:2912 sql_help.c:2928 sql_help.c:2968
+#: sql_help.c:3020 sql_help.c:3024 sql_help.c:3026 sql_help.c:3032
+#: sql_help.c:3050 sql_help.c:3077 sql_help.c:3112 sql_help.c:3124
+#: sql_help.c:3133 sql_help.c:3177 sql_help.c:3191 sql_help.c:3219
+#: sql_help.c:3227 sql_help.c:3235 sql_help.c:3243 sql_help.c:3251
+#: sql_help.c:3259 sql_help.c:3267 sql_help.c:3275 sql_help.c:3284
+#: sql_help.c:3295 sql_help.c:3303 sql_help.c:3311 sql_help.c:3319
+#: sql_help.c:3327 sql_help.c:3337 sql_help.c:3346 sql_help.c:3355
+#: sql_help.c:3363 sql_help.c:3373 sql_help.c:3384 sql_help.c:3392
+#: sql_help.c:3401 sql_help.c:3412 sql_help.c:3421 sql_help.c:3429
+#: sql_help.c:3437 sql_help.c:3445 sql_help.c:3453 sql_help.c:3461
+#: sql_help.c:3469 sql_help.c:3477 sql_help.c:3485 sql_help.c:3493
+#: sql_help.c:3501 sql_help.c:3518 sql_help.c:3527 sql_help.c:3535
+#: sql_help.c:3552 sql_help.c:3567 sql_help.c:3837 sql_help.c:3888
+#: sql_help.c:3917 sql_help.c:3925 sql_help.c:4358 sql_help.c:4406
+#: sql_help.c:4547
 msgid "name"
 msgstr "名称"
 
 #: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:327 sql_help.c:1768
-#: sql_help.c:3177 sql_help.c:4127
+#: sql_help.c:3192 sql_help.c:4144
 msgid "aggregate_signature"
 msgstr "aggregate_signature"
 
 #: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:118 sql_help.c:250
-#: sql_help.c:268 sql_help.c:399 sql_help.c:447 sql_help.c:524 sql_help.c:570
-#: sql_help.c:588 sql_help.c:615 sql_help.c:665 sql_help.c:730 sql_help.c:785
-#: sql_help.c:806 sql_help.c:845 sql_help.c:890 sql_help.c:931 sql_help.c:983
-#: sql_help.c:1015 sql_help.c:1025 sql_help.c:1058 sql_help.c:1078
-#: sql_help.c:1091 sql_help.c:1125 sql_help.c:1266 sql_help.c:1388
-#: sql_help.c:1431 sql_help.c:1452 sql_help.c:1466 sql_help.c:1478
-#: sql_help.c:1491 sql_help.c:1522 sql_help.c:1579 sql_help.c:1628
+#: sql_help.c:268 sql_help.c:399 sql_help.c:446 sql_help.c:524 sql_help.c:571
+#: sql_help.c:589 sql_help.c:616 sql_help.c:666 sql_help.c:731 sql_help.c:786
+#: sql_help.c:807 sql_help.c:846 sql_help.c:891 sql_help.c:932 sql_help.c:984
+#: sql_help.c:1016 sql_help.c:1026 sql_help.c:1059 sql_help.c:1079
+#: sql_help.c:1092 sql_help.c:1126 sql_help.c:1266 sql_help.c:1385
+#: sql_help.c:1428 sql_help.c:1449 sql_help.c:1463 sql_help.c:1475
+#: sql_help.c:1488 sql_help.c:1519 sql_help.c:1576 sql_help.c:1625
 msgid "new_name"
 msgstr "新的名称"
 
 #: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:120 sql_help.c:248
-#: sql_help.c:266 sql_help.c:397 sql_help.c:483 sql_help.c:529 sql_help.c:617
-#: sql_help.c:626 sql_help.c:684 sql_help.c:704 sql_help.c:733 sql_help.c:788
-#: sql_help.c:850 sql_help.c:888 sql_help.c:988 sql_help.c:1027 sql_help.c:1056
-#: sql_help.c:1076 sql_help.c:1089 sql_help.c:1123 sql_help.c:1326
-#: sql_help.c:1390 sql_help.c:1433 sql_help.c:1454 sql_help.c:1517
-#: sql_help.c:1626 sql_help.c:2853
+#: sql_help.c:266 sql_help.c:397 sql_help.c:482 sql_help.c:529 sql_help.c:618
+#: sql_help.c:627 sql_help.c:685 sql_help.c:705 sql_help.c:734 sql_help.c:789
+#: sql_help.c:851 sql_help.c:889 sql_help.c:989 sql_help.c:1028 sql_help.c:1057
+#: sql_help.c:1077 sql_help.c:1090 sql_help.c:1124 sql_help.c:1326
+#: sql_help.c:1387 sql_help.c:1430 sql_help.c:1451 sql_help.c:1514
+#: sql_help.c:1623 sql_help.c:2868
 msgid "new_owner"
 msgstr "新的属主"
 
 #: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:252 sql_help.c:319
-#: sql_help.c:449 sql_help.c:534 sql_help.c:667 sql_help.c:708 sql_help.c:736
-#: sql_help.c:791 sql_help.c:855 sql_help.c:993 sql_help.c:1060 sql_help.c:1093
-#: sql_help.c:1268 sql_help.c:1435 sql_help.c:1456 sql_help.c:1468
-#: sql_help.c:1480 sql_help.c:1524 sql_help.c:1630
+#: sql_help.c:448 sql_help.c:534 sql_help.c:668 sql_help.c:709 sql_help.c:737
+#: sql_help.c:792 sql_help.c:856 sql_help.c:994 sql_help.c:1061 sql_help.c:1094
+#: sql_help.c:1268 sql_help.c:1432 sql_help.c:1453 sql_help.c:1465
+#: sql_help.c:1477 sql_help.c:1521 sql_help.c:1627
 msgid "new_schema"
 msgstr "新的模式"
 
 # describe.c:1174
-#: sql_help.c:44 sql_help.c:1832 sql_help.c:3178 sql_help.c:4156
+#: sql_help.c:44 sql_help.c:1832 sql_help.c:3193 sql_help.c:4173
 msgid "where aggregate_signature is:"
 msgstr "其中 aggregate_signature 是:"
 
 #: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:337 sql_help.c:350
 #: sql_help.c:354 sql_help.c:370 sql_help.c:373 sql_help.c:376 sql_help.c:516
-#: sql_help.c:521 sql_help.c:526 sql_help.c:531 sql_help.c:536 sql_help.c:837
-#: sql_help.c:842 sql_help.c:847 sql_help.c:852 sql_help.c:857 sql_help.c:975
-#: sql_help.c:980 sql_help.c:985 sql_help.c:990 sql_help.c:995 sql_help.c:1786
+#: sql_help.c:521 sql_help.c:526 sql_help.c:531 sql_help.c:536 sql_help.c:838
+#: sql_help.c:843 sql_help.c:848 sql_help.c:853 sql_help.c:858 sql_help.c:976
+#: sql_help.c:981 sql_help.c:986 sql_help.c:991 sql_help.c:996 sql_help.c:1786
 #: sql_help.c:1803 sql_help.c:1809 sql_help.c:1833 sql_help.c:1836
 #: sql_help.c:1839 sql_help.c:1988 sql_help.c:2007 sql_help.c:2010
-#: sql_help.c:2276 sql_help.c:2473 sql_help.c:3179 sql_help.c:3182
-#: sql_help.c:3185 sql_help.c:3270 sql_help.c:3359 sql_help.c:3387
-#: sql_help.c:3705 sql_help.c:4038 sql_help.c:4133 sql_help.c:4140
-#: sql_help.c:4146 sql_help.c:4157 sql_help.c:4160 sql_help.c:4163
+#: sql_help.c:2281 sql_help.c:2481 sql_help.c:3194 sql_help.c:3197
+#: sql_help.c:3200 sql_help.c:3285 sql_help.c:3374 sql_help.c:3402
+#: sql_help.c:3722 sql_help.c:4055 sql_help.c:4150 sql_help.c:4157
+#: sql_help.c:4163 sql_help.c:4174 sql_help.c:4177 sql_help.c:4180
 msgid "argmode"
 msgstr "参数模式"
 
 # describe.c:480
 #: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:338 sql_help.c:351
 #: sql_help.c:355 sql_help.c:371 sql_help.c:374 sql_help.c:377 sql_help.c:517
-#: sql_help.c:522 sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:838
-#: sql_help.c:843 sql_help.c:848 sql_help.c:853 sql_help.c:858 sql_help.c:976
-#: sql_help.c:981 sql_help.c:986 sql_help.c:991 sql_help.c:996 sql_help.c:1787
+#: sql_help.c:522 sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:839
+#: sql_help.c:844 sql_help.c:849 sql_help.c:854 sql_help.c:859 sql_help.c:977
+#: sql_help.c:982 sql_help.c:987 sql_help.c:992 sql_help.c:997 sql_help.c:1787
 #: sql_help.c:1804 sql_help.c:1810 sql_help.c:1834 sql_help.c:1837
 #: sql_help.c:1840 sql_help.c:1989 sql_help.c:2008 sql_help.c:2011
-#: sql_help.c:2277 sql_help.c:2474 sql_help.c:3180 sql_help.c:3183
-#: sql_help.c:3186 sql_help.c:3271 sql_help.c:3360 sql_help.c:3388
-#: sql_help.c:4134 sql_help.c:4141 sql_help.c:4147 sql_help.c:4158
-#: sql_help.c:4161 sql_help.c:4164
+#: sql_help.c:2282 sql_help.c:2482 sql_help.c:3195 sql_help.c:3198
+#: sql_help.c:3201 sql_help.c:3286 sql_help.c:3375 sql_help.c:3403
+#: sql_help.c:4151 sql_help.c:4158 sql_help.c:4164 sql_help.c:4175
+#: sql_help.c:4178 sql_help.c:4181
 msgid "argname"
 msgstr "参数名称"
 
 # describe.c:1689
 #: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:339 sql_help.c:352
 #: sql_help.c:356 sql_help.c:372 sql_help.c:375 sql_help.c:378 sql_help.c:518
-#: sql_help.c:523 sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:839
-#: sql_help.c:844 sql_help.c:849 sql_help.c:854 sql_help.c:859 sql_help.c:977
-#: sql_help.c:982 sql_help.c:987 sql_help.c:992 sql_help.c:997 sql_help.c:1788
+#: sql_help.c:523 sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:840
+#: sql_help.c:845 sql_help.c:850 sql_help.c:855 sql_help.c:860 sql_help.c:978
+#: sql_help.c:983 sql_help.c:988 sql_help.c:993 sql_help.c:998 sql_help.c:1788
 #: sql_help.c:1805 sql_help.c:1811 sql_help.c:1835 sql_help.c:1838
-#: sql_help.c:1841 sql_help.c:2278 sql_help.c:2475 sql_help.c:3181
-#: sql_help.c:3184 sql_help.c:3187 sql_help.c:3272 sql_help.c:3361
-#: sql_help.c:3389 sql_help.c:4135 sql_help.c:4142 sql_help.c:4148
-#: sql_help.c:4159 sql_help.c:4162 sql_help.c:4165
+#: sql_help.c:1841 sql_help.c:2283 sql_help.c:2483 sql_help.c:3196
+#: sql_help.c:3199 sql_help.c:3202 sql_help.c:3287 sql_help.c:3376
+#: sql_help.c:3404 sql_help.c:4152 sql_help.c:4159 sql_help.c:4165
+#: sql_help.c:4176 sql_help.c:4179 sql_help.c:4182
 msgid "argtype"
 msgstr "参数类型"
 
-#: sql_help.c:112 sql_help.c:394 sql_help.c:472 sql_help.c:484 sql_help.c:925
-#: sql_help.c:1073 sql_help.c:1449 sql_help.c:1573 sql_help.c:1605
-#: sql_help.c:1652 sql_help.c:1889 sql_help.c:1895 sql_help.c:2186
-#: sql_help.c:2227 sql_help.c:2234 sql_help.c:2243 sql_help.c:2317
-#: sql_help.c:2526 sql_help.c:2618 sql_help.c:2882 sql_help.c:3063
-#: sql_help.c:3085 sql_help.c:3572 sql_help.c:3739 sql_help.c:4588
+#: sql_help.c:112 sql_help.c:394 sql_help.c:471 sql_help.c:483 sql_help.c:926
+#: sql_help.c:1074 sql_help.c:1446 sql_help.c:1570 sql_help.c:1602
+#: sql_help.c:1650 sql_help.c:1889 sql_help.c:1896 sql_help.c:2188
+#: sql_help.c:2230 sql_help.c:2237 sql_help.c:2246 sql_help.c:2323
+#: sql_help.c:2534 sql_help.c:2626 sql_help.c:2897 sql_help.c:3078
+#: sql_help.c:3100 sql_help.c:3588 sql_help.c:3756 sql_help.c:4608
 msgid "option"
 msgstr "选项"
 
-#: sql_help.c:113 sql_help.c:926 sql_help.c:1574 sql_help.c:2318
-#: sql_help.c:2527 sql_help.c:3064
+#: sql_help.c:113 sql_help.c:927 sql_help.c:1571 sql_help.c:2324
+#: sql_help.c:2535 sql_help.c:3079
 msgid "where option can be:"
 msgstr "选项可以是"
 
-#: sql_help.c:114 sql_help.c:2118
+#: sql_help.c:114 sql_help.c:2120
 msgid "allowconn"
 msgstr "allowconn"
 
-#: sql_help.c:115 sql_help.c:927 sql_help.c:1575 sql_help.c:2119
-#: sql_help.c:2528 sql_help.c:3065
+#: sql_help.c:115 sql_help.c:928 sql_help.c:1572 sql_help.c:2121
+#: sql_help.c:2536 sql_help.c:3080
 msgid "connlimit"
 msgstr "连接限制"
 
-#: sql_help.c:116 sql_help.c:2120
+#: sql_help.c:116 sql_help.c:2122
 msgid "istemplate"
 msgstr "istemplate"
 
 # describe.c:1342
-#: sql_help.c:122 sql_help.c:605 sql_help.c:670 sql_help.c:1271 sql_help.c:1319
+#: sql_help.c:122 sql_help.c:606 sql_help.c:671 sql_help.c:1271 sql_help.c:1319
 msgid "new_tablespace"
 msgstr "新的表空间"
 
 # sql_help.h:366
-#: sql_help.c:124 sql_help.c:127 sql_help.c:129 sql_help.c:543 sql_help.c:545
-#: sql_help.c:546 sql_help.c:862 sql_help.c:864 sql_help.c:865 sql_help.c:934
-#: sql_help.c:938 sql_help.c:941 sql_help.c:1002 sql_help.c:1004
-#: sql_help.c:1005 sql_help.c:1136 sql_help.c:1139 sql_help.c:1582
-#: sql_help.c:1586 sql_help.c:1589 sql_help.c:2287 sql_help.c:2479
-#: sql_help.c:3925 sql_help.c:4330
+#: sql_help.c:124 sql_help.c:127 sql_help.c:129 sql_help.c:544 sql_help.c:546
+#: sql_help.c:547 sql_help.c:863 sql_help.c:865 sql_help.c:866 sql_help.c:935
+#: sql_help.c:939 sql_help.c:942 sql_help.c:1003 sql_help.c:1005
+#: sql_help.c:1006 sql_help.c:1137 sql_help.c:1140 sql_help.c:1579
+#: sql_help.c:1583 sql_help.c:1586 sql_help.c:2293 sql_help.c:2487
+#: sql_help.c:3942 sql_help.c:4347
 msgid "configuration_parameter"
 msgstr "配置参数"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:125 sql_help.c:395 sql_help.c:467 sql_help.c:473 sql_help.c:485
-#: sql_help.c:544 sql_help.c:597 sql_help.c:676 sql_help.c:682 sql_help.c:863
-#: sql_help.c:886 sql_help.c:935 sql_help.c:1003 sql_help.c:1074
-#: sql_help.c:1113 sql_help.c:1116 sql_help.c:1121 sql_help.c:1137
-#: sql_help.c:1138 sql_help.c:1301 sql_help.c:1321 sql_help.c:1371
-#: sql_help.c:1393 sql_help.c:1450 sql_help.c:1583 sql_help.c:1606
-#: sql_help.c:2187 sql_help.c:2228 sql_help.c:2235 sql_help.c:2244
-#: sql_help.c:2288 sql_help.c:2289 sql_help.c:2348 sql_help.c:2380
-#: sql_help.c:2480 sql_help.c:2481 sql_help.c:2498 sql_help.c:2619
-#: sql_help.c:2649 sql_help.c:2749 sql_help.c:2761 sql_help.c:2774
-#: sql_help.c:2817 sql_help.c:2839 sql_help.c:2856 sql_help.c:2883
-#: sql_help.c:3086 sql_help.c:3740 sql_help.c:4331 sql_help.c:4332
+#: sql_help.c:125 sql_help.c:395 sql_help.c:466 sql_help.c:472 sql_help.c:484
+#: sql_help.c:545 sql_help.c:598 sql_help.c:677 sql_help.c:683 sql_help.c:864
+#: sql_help.c:887 sql_help.c:936 sql_help.c:1004 sql_help.c:1075
+#: sql_help.c:1114 sql_help.c:1117 sql_help.c:1122 sql_help.c:1138
+#: sql_help.c:1139 sql_help.c:1301 sql_help.c:1321 sql_help.c:1368
+#: sql_help.c:1390 sql_help.c:1447 sql_help.c:1580 sql_help.c:1603
+#: sql_help.c:2189 sql_help.c:2231 sql_help.c:2238 sql_help.c:2247
+#: sql_help.c:2294 sql_help.c:2295 sql_help.c:2354 sql_help.c:2388
+#: sql_help.c:2488 sql_help.c:2489 sql_help.c:2506 sql_help.c:2627
+#: sql_help.c:2657 sql_help.c:2762 sql_help.c:2775 sql_help.c:2789
+#: sql_help.c:2830 sql_help.c:2854 sql_help.c:2871 sql_help.c:2898
+#: sql_help.c:3101 sql_help.c:3757 sql_help.c:4348 sql_help.c:4349
 msgid "value"
 msgstr "值"
 
@@ -4495,9 +4818,9 @@ msgstr "值"
 msgid "target_role"
 msgstr "目标角色"
 
-#: sql_help.c:198 sql_help.c:2170 sql_help.c:2574 sql_help.c:2579
-#: sql_help.c:3687 sql_help.c:3694 sql_help.c:3708 sql_help.c:3714
-#: sql_help.c:4020 sql_help.c:4027 sql_help.c:4041 sql_help.c:4047
+#: sql_help.c:198 sql_help.c:2172 sql_help.c:2582 sql_help.c:2587
+#: sql_help.c:3704 sql_help.c:3711 sql_help.c:3725 sql_help.c:3731
+#: sql_help.c:4037 sql_help.c:4044 sql_help.c:4058 sql_help.c:4064
 msgid "schema_name"
 msgstr "模式名称"
 
@@ -4512,34 +4835,34 @@ msgstr "简写形式的可授予或回收权限是下列内容之一"
 # describe.c:1375
 #: sql_help.c:201 sql_help.c:202 sql_help.c:203 sql_help.c:204 sql_help.c:205
 #: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210
-#: sql_help.c:568 sql_help.c:604 sql_help.c:669 sql_help.c:809 sql_help.c:945
-#: sql_help.c:1270 sql_help.c:1593 sql_help.c:2321 sql_help.c:2322
-#: sql_help.c:2323 sql_help.c:2324 sql_help.c:2325 sql_help.c:2454
-#: sql_help.c:2531 sql_help.c:2532 sql_help.c:2533 sql_help.c:2534
-#: sql_help.c:2535 sql_help.c:3068 sql_help.c:3069 sql_help.c:3070
-#: sql_help.c:3071 sql_help.c:3072 sql_help.c:3721 sql_help.c:3722
-#: sql_help.c:3723 sql_help.c:4021 sql_help.c:4025 sql_help.c:4028
-#: sql_help.c:4030 sql_help.c:4032 sql_help.c:4034 sql_help.c:4036
-#: sql_help.c:4042 sql_help.c:4044 sql_help.c:4046 sql_help.c:4048
-#: sql_help.c:4050 sql_help.c:4052 sql_help.c:4053 sql_help.c:4054
-#: sql_help.c:4351
+#: sql_help.c:569 sql_help.c:605 sql_help.c:670 sql_help.c:810 sql_help.c:946
+#: sql_help.c:1270 sql_help.c:1590 sql_help.c:2327 sql_help.c:2328
+#: sql_help.c:2329 sql_help.c:2330 sql_help.c:2331 sql_help.c:2462
+#: sql_help.c:2539 sql_help.c:2540 sql_help.c:2541 sql_help.c:2542
+#: sql_help.c:2543 sql_help.c:3083 sql_help.c:3084 sql_help.c:3085
+#: sql_help.c:3086 sql_help.c:3087 sql_help.c:3738 sql_help.c:3739
+#: sql_help.c:3740 sql_help.c:4038 sql_help.c:4042 sql_help.c:4045
+#: sql_help.c:4047 sql_help.c:4049 sql_help.c:4051 sql_help.c:4053
+#: sql_help.c:4059 sql_help.c:4061 sql_help.c:4063 sql_help.c:4065
+#: sql_help.c:4067 sql_help.c:4069 sql_help.c:4070 sql_help.c:4071
+#: sql_help.c:4368
 msgid "role_name"
 msgstr "角色名称"
 
-#: sql_help.c:236 sql_help.c:460 sql_help.c:1286 sql_help.c:1288
-#: sql_help.c:1339 sql_help.c:1350 sql_help.c:1375 sql_help.c:1622
-#: sql_help.c:2139 sql_help.c:2143 sql_help.c:2247 sql_help.c:2251
-#: sql_help.c:2343 sql_help.c:2745 sql_help.c:2757 sql_help.c:2770
-#: sql_help.c:2778 sql_help.c:2789 sql_help.c:2821 sql_help.c:3771
-#: sql_help.c:3786 sql_help.c:3788 sql_help.c:4216 sql_help.c:4217
-#: sql_help.c:4226 sql_help.c:4267 sql_help.c:4268 sql_help.c:4269
-#: sql_help.c:4270 sql_help.c:4271 sql_help.c:4272 sql_help.c:4305
-#: sql_help.c:4306 sql_help.c:4311 sql_help.c:4316 sql_help.c:4455
-#: sql_help.c:4456 sql_help.c:4465 sql_help.c:4506 sql_help.c:4507
-#: sql_help.c:4508 sql_help.c:4509 sql_help.c:4510 sql_help.c:4511
-#: sql_help.c:4558 sql_help.c:4560 sql_help.c:4606 sql_help.c:4662
-#: sql_help.c:4663 sql_help.c:4672 sql_help.c:4713 sql_help.c:4714
-#: sql_help.c:4715 sql_help.c:4716 sql_help.c:4717 sql_help.c:4718
+#: sql_help.c:236 sql_help.c:459 sql_help.c:1286 sql_help.c:1288
+#: sql_help.c:1336 sql_help.c:1347 sql_help.c:1372 sql_help.c:1619
+#: sql_help.c:2141 sql_help.c:2145 sql_help.c:2250 sql_help.c:2255
+#: sql_help.c:2349 sql_help.c:2757 sql_help.c:2770 sql_help.c:2784
+#: sql_help.c:2793 sql_help.c:2805 sql_help.c:2834 sql_help.c:3788
+#: sql_help.c:3803 sql_help.c:3805 sql_help.c:4233 sql_help.c:4234
+#: sql_help.c:4243 sql_help.c:4284 sql_help.c:4285 sql_help.c:4286
+#: sql_help.c:4287 sql_help.c:4288 sql_help.c:4289 sql_help.c:4322
+#: sql_help.c:4323 sql_help.c:4328 sql_help.c:4333 sql_help.c:4472
+#: sql_help.c:4473 sql_help.c:4482 sql_help.c:4523 sql_help.c:4524
+#: sql_help.c:4525 sql_help.c:4526 sql_help.c:4527 sql_help.c:4528
+#: sql_help.c:4575 sql_help.c:4577 sql_help.c:4634 sql_help.c:4690
+#: sql_help.c:4691 sql_help.c:4700 sql_help.c:4741 sql_help.c:4742
+#: sql_help.c:4743 sql_help.c:4744 sql_help.c:4745 sql_help.c:4746
 msgid "expression"
 msgstr "表达式"
 
@@ -4547,11 +4870,11 @@ msgstr "表达式"
 msgid "domain_constraint"
 msgstr "域_约束"
 
-#: sql_help.c:241 sql_help.c:243 sql_help.c:246 sql_help.c:475 sql_help.c:476
+#: sql_help.c:241 sql_help.c:243 sql_help.c:246 sql_help.c:474 sql_help.c:475
 #: sql_help.c:1263 sql_help.c:1307 sql_help.c:1308 sql_help.c:1309
-#: sql_help.c:1338 sql_help.c:1349 sql_help.c:1366 sql_help.c:1774
-#: sql_help.c:1776 sql_help.c:2142 sql_help.c:2246 sql_help.c:2250
-#: sql_help.c:2777 sql_help.c:2788 sql_help.c:3783
+#: sql_help.c:1335 sql_help.c:1346 sql_help.c:1363 sql_help.c:1774
+#: sql_help.c:1776 sql_help.c:2144 sql_help.c:2249 sql_help.c:2254
+#: sql_help.c:2792 sql_help.c:2804 sql_help.c:3800
 msgid "constraint_name"
 msgstr "约束名称"
 
@@ -4559,7 +4882,7 @@ msgstr "约束名称"
 msgid "new_constraint_name"
 msgstr "new_constraint_name(新约束名)"
 
-#: sql_help.c:317 sql_help.c:1072
+#: sql_help.c:317 sql_help.c:1073
 msgid "new_version"
 msgstr "新版本"
 
@@ -4583,82 +4906,82 @@ msgstr "member_object的位置:"
 #: sql_help.c:1807 sql_help.c:1814 sql_help.c:1815 sql_help.c:1816
 #: sql_help.c:1817 sql_help.c:1818 sql_help.c:1819 sql_help.c:1820
 #: sql_help.c:1821 sql_help.c:1822 sql_help.c:1823 sql_help.c:1824
-#: sql_help.c:1829 sql_help.c:1830 sql_help.c:4123 sql_help.c:4128
-#: sql_help.c:4129 sql_help.c:4130 sql_help.c:4131 sql_help.c:4137
-#: sql_help.c:4138 sql_help.c:4143 sql_help.c:4144 sql_help.c:4149
-#: sql_help.c:4150 sql_help.c:4151 sql_help.c:4152 sql_help.c:4153
-#: sql_help.c:4154
+#: sql_help.c:1829 sql_help.c:1830 sql_help.c:4140 sql_help.c:4145
+#: sql_help.c:4146 sql_help.c:4147 sql_help.c:4148 sql_help.c:4154
+#: sql_help.c:4155 sql_help.c:4160 sql_help.c:4161 sql_help.c:4166
+#: sql_help.c:4167 sql_help.c:4168 sql_help.c:4169 sql_help.c:4170
+#: sql_help.c:4171
 msgid "object_name"
 msgstr "对象_名称"
 
-#: sql_help.c:326 sql_help.c:1767 sql_help.c:4126
+#: sql_help.c:326 sql_help.c:1767 sql_help.c:4143
 msgid "aggregate_name"
 msgstr "aggregate_name"
 
 # describe.c:1688
 #: sql_help.c:328 sql_help.c:1769 sql_help.c:2053 sql_help.c:2057
-#: sql_help.c:2059 sql_help.c:3195
+#: sql_help.c:2059 sql_help.c:3210
 msgid "source_type"
 msgstr "类型指派中的源数据类型"
 
 # describe.c:1689
 #: sql_help.c:329 sql_help.c:1770 sql_help.c:2054 sql_help.c:2058
-#: sql_help.c:2060 sql_help.c:3196
+#: sql_help.c:2060 sql_help.c:3211
 msgid "target_type"
 msgstr "类型指派中的目标数据类型"
 
 # describe.c:498
-#: sql_help.c:336 sql_help.c:773 sql_help.c:1785 sql_help.c:2055
-#: sql_help.c:2094 sql_help.c:2157 sql_help.c:2397 sql_help.c:2428
-#: sql_help.c:2959 sql_help.c:4037 sql_help.c:4132 sql_help.c:4245
-#: sql_help.c:4249 sql_help.c:4253 sql_help.c:4256 sql_help.c:4484
-#: sql_help.c:4488 sql_help.c:4492 sql_help.c:4495 sql_help.c:4691
-#: sql_help.c:4695 sql_help.c:4699 sql_help.c:4702
+#: sql_help.c:336 sql_help.c:774 sql_help.c:1785 sql_help.c:2055
+#: sql_help.c:2096 sql_help.c:2159 sql_help.c:2405 sql_help.c:2436
+#: sql_help.c:2974 sql_help.c:4054 sql_help.c:4149 sql_help.c:4262
+#: sql_help.c:4266 sql_help.c:4270 sql_help.c:4273 sql_help.c:4501
+#: sql_help.c:4505 sql_help.c:4509 sql_help.c:4512 sql_help.c:4719
+#: sql_help.c:4723 sql_help.c:4727 sql_help.c:4730
 msgid "function_name"
 msgstr "函数名称"
 
 # describe.c:512
-#: sql_help.c:341 sql_help.c:766 sql_help.c:1792 sql_help.c:2421
+#: sql_help.c:341 sql_help.c:767 sql_help.c:1792 sql_help.c:2429
 msgid "operator_name"
 msgstr "操作符名称"
 
 # describe.c:321
-#: sql_help.c:342 sql_help.c:702 sql_help.c:706 sql_help.c:710 sql_help.c:1793
-#: sql_help.c:2398 sql_help.c:3313
+#: sql_help.c:342 sql_help.c:703 sql_help.c:707 sql_help.c:711 sql_help.c:1793
+#: sql_help.c:2406 sql_help.c:3328
 msgid "left_type"
 msgstr "操作符左边操作数的类型"
 
 # describe.c:321
-#: sql_help.c:343 sql_help.c:703 sql_help.c:707 sql_help.c:711 sql_help.c:1794
-#: sql_help.c:2399 sql_help.c:3314
+#: sql_help.c:343 sql_help.c:704 sql_help.c:708 sql_help.c:712 sql_help.c:1794
+#: sql_help.c:2407 sql_help.c:3329
 msgid "right_type"
 msgstr "操作符右边操作数的类型"
 
-#: sql_help.c:345 sql_help.c:347 sql_help.c:729 sql_help.c:732 sql_help.c:735
-#: sql_help.c:764 sql_help.c:776 sql_help.c:784 sql_help.c:787 sql_help.c:790
-#: sql_help.c:1355 sql_help.c:1796 sql_help.c:1798 sql_help.c:2418
-#: sql_help.c:2439 sql_help.c:2794 sql_help.c:3323 sql_help.c:3332
+#: sql_help.c:345 sql_help.c:347 sql_help.c:730 sql_help.c:733 sql_help.c:736
+#: sql_help.c:765 sql_help.c:777 sql_help.c:785 sql_help.c:788 sql_help.c:791
+#: sql_help.c:1352 sql_help.c:1796 sql_help.c:1798 sql_help.c:2426
+#: sql_help.c:2447 sql_help.c:2810 sql_help.c:3338 sql_help.c:3347
 msgid "index_method"
 msgstr "访问索引的方法"
 
-#: sql_help.c:349 sql_help.c:1802 sql_help.c:4139
+#: sql_help.c:349 sql_help.c:1802 sql_help.c:4156
 msgid "procedure_name"
 msgstr "程序名称 "
 
 # describe.c:1375
-#: sql_help.c:353 sql_help.c:1808 sql_help.c:3704 sql_help.c:4145
+#: sql_help.c:353 sql_help.c:1808 sql_help.c:3721 sql_help.c:4162
 msgid "routine_name"
 msgstr "程序名称"
 
-#: sql_help.c:365 sql_help.c:1325 sql_help.c:1825 sql_help.c:2284
-#: sql_help.c:2478 sql_help.c:2752 sql_help.c:2926 sql_help.c:3494
-#: sql_help.c:3718 sql_help.c:4051
+#: sql_help.c:365 sql_help.c:1325 sql_help.c:1825 sql_help.c:2289
+#: sql_help.c:2486 sql_help.c:2765 sql_help.c:2941 sql_help.c:3509
+#: sql_help.c:3735 sql_help.c:4068
 msgid "type_name"
 msgstr "类型名称"
 
-#: sql_help.c:366 sql_help.c:1826 sql_help.c:2283 sql_help.c:2477
-#: sql_help.c:2927 sql_help.c:3153 sql_help.c:3495 sql_help.c:3710
-#: sql_help.c:4043
+#: sql_help.c:366 sql_help.c:1826 sql_help.c:2288 sql_help.c:2485
+#: sql_help.c:2942 sql_help.c:3168 sql_help.c:3510 sql_help.c:3727
+#: sql_help.c:4060
 msgid "lang_name"
 msgstr "语言名称"
 
@@ -4667,184 +4990,189 @@ msgid "and aggregate_signature is:"
 msgstr "aggregate_signature指的是:"
 
 # describe.c:498
-#: sql_help.c:392 sql_help.c:1920 sql_help.c:2184
+#: sql_help.c:392 sql_help.c:1920 sql_help.c:2186
 msgid "handler_function"
 msgstr "handler_function(处理_函数)"
 
 # describe.c:498
-#: sql_help.c:393 sql_help.c:2185
+#: sql_help.c:393 sql_help.c:2187
 msgid "validator_function"
 msgstr "validator_function(验证_函数)"
 
 # describe.c:128
-#: sql_help.c:442 sql_help.c:519 sql_help.c:658 sql_help.c:840 sql_help.c:978
-#: sql_help.c:1258 sql_help.c:1346 sql_help.c:1347 sql_help.c:1363
-#: sql_help.c:1364 sql_help.c:1515 sql_help.c:2785 sql_help.c:2786
-#: sql_help.c:2802 sql_help.c:2803
+#: sql_help.c:441 sql_help.c:519 sql_help.c:659 sql_help.c:841 sql_help.c:979
+#: sql_help.c:1258 sql_help.c:1512
 msgid "action"
 msgstr "操作"
 
 # describe.c:1375
-#: sql_help.c:444 sql_help.c:451 sql_help.c:455 sql_help.c:456 sql_help.c:459
-#: sql_help.c:461 sql_help.c:462 sql_help.c:463 sql_help.c:465 sql_help.c:468
-#: sql_help.c:470 sql_help.c:471 sql_help.c:662 sql_help.c:672 sql_help.c:674
-#: sql_help.c:677 sql_help.c:679 sql_help.c:1054 sql_help.c:1260
+#: sql_help.c:443 sql_help.c:450 sql_help.c:454 sql_help.c:455 sql_help.c:458
+#: sql_help.c:460 sql_help.c:461 sql_help.c:462 sql_help.c:464 sql_help.c:467
+#: sql_help.c:469 sql_help.c:470 sql_help.c:663 sql_help.c:673 sql_help.c:675
+#: sql_help.c:678 sql_help.c:680 sql_help.c:1055 sql_help.c:1260
 #: sql_help.c:1278 sql_help.c:1282 sql_help.c:1283 sql_help.c:1287
 #: sql_help.c:1289 sql_help.c:1290 sql_help.c:1291 sql_help.c:1293
 #: sql_help.c:1296 sql_help.c:1297 sql_help.c:1299 sql_help.c:1302
-#: sql_help.c:1304 sql_help.c:1351 sql_help.c:1353 sql_help.c:1360
-#: sql_help.c:1369 sql_help.c:1374 sql_help.c:1621 sql_help.c:1624
-#: sql_help.c:1658 sql_help.c:1773 sql_help.c:1886 sql_help.c:1891
-#: sql_help.c:1905 sql_help.c:1906 sql_help.c:1907 sql_help.c:2225
-#: sql_help.c:2238 sql_help.c:2281 sql_help.c:2342 sql_help.c:2346
-#: sql_help.c:2378 sql_help.c:2604 sql_help.c:2632 sql_help.c:2633
-#: sql_help.c:2736 sql_help.c:2744 sql_help.c:2753 sql_help.c:2756
-#: sql_help.c:2765 sql_help.c:2769 sql_help.c:2790 sql_help.c:2792
-#: sql_help.c:2799 sql_help.c:2815 sql_help.c:2820 sql_help.c:2837
-#: sql_help.c:2962 sql_help.c:3098 sql_help.c:3689 sql_help.c:3690
-#: sql_help.c:3770 sql_help.c:3785 sql_help.c:3787 sql_help.c:3789
-#: sql_help.c:4022 sql_help.c:4023 sql_help.c:4125 sql_help.c:4276
-#: sql_help.c:4515 sql_help.c:4557 sql_help.c:4559 sql_help.c:4561
-#: sql_help.c:4594 sql_help.c:4722
+#: sql_help.c:1304 sql_help.c:1348 sql_help.c:1350 sql_help.c:1357
+#: sql_help.c:1366 sql_help.c:1371 sql_help.c:1618 sql_help.c:1621
+#: sql_help.c:1658 sql_help.c:1773 sql_help.c:1886 sql_help.c:1892
+#: sql_help.c:1905 sql_help.c:1906 sql_help.c:1907 sql_help.c:2228
+#: sql_help.c:2241 sql_help.c:2286 sql_help.c:2348 sql_help.c:2352
+#: sql_help.c:2385 sql_help.c:2612 sql_help.c:2640 sql_help.c:2641
+#: sql_help.c:2748 sql_help.c:2756 sql_help.c:2766 sql_help.c:2769
+#: sql_help.c:2779 sql_help.c:2783 sql_help.c:2806 sql_help.c:2808
+#: sql_help.c:2815 sql_help.c:2828 sql_help.c:2833 sql_help.c:2851
+#: sql_help.c:2977 sql_help.c:3113 sql_help.c:3706 sql_help.c:3707
+#: sql_help.c:3787 sql_help.c:3802 sql_help.c:3804 sql_help.c:3806
+#: sql_help.c:4039 sql_help.c:4040 sql_help.c:4142 sql_help.c:4293
+#: sql_help.c:4532 sql_help.c:4574 sql_help.c:4576 sql_help.c:4578
+#: sql_help.c:4622 sql_help.c:4750
 msgid "column_name"
 msgstr "列名称"
 
 # describe.c:1375
-#: sql_help.c:445 sql_help.c:663 sql_help.c:1261
+#: sql_help.c:444 sql_help.c:664 sql_help.c:1261
 msgid "new_column_name"
 msgstr "new_column_name(新列名)"
 
-#: sql_help.c:450 sql_help.c:540 sql_help.c:671 sql_help.c:861 sql_help.c:999
-#: sql_help.c:1277 sql_help.c:1531
+#: sql_help.c:449 sql_help.c:540 sql_help.c:672 sql_help.c:862 sql_help.c:1000
+#: sql_help.c:1277 sql_help.c:1528
 msgid "where action is one of:"
 msgstr "操作可以是下列选项之一"
 
 # describe.c:526
-#: sql_help.c:452 sql_help.c:457 sql_help.c:1046 sql_help.c:1279
-#: sql_help.c:1284 sql_help.c:1533 sql_help.c:1537 sql_help.c:2137
-#: sql_help.c:2226 sql_help.c:2417 sql_help.c:2597 sql_help.c:2737
-#: sql_help.c:3007 sql_help.c:3872
+#: sql_help.c:451 sql_help.c:456 sql_help.c:1047 sql_help.c:1279
+#: sql_help.c:1284 sql_help.c:1530 sql_help.c:1534 sql_help.c:2139
+#: sql_help.c:2229 sql_help.c:2425 sql_help.c:2605 sql_help.c:2749
+#: sql_help.c:3022 sql_help.c:3889
 msgid "data_type"
 msgstr "数据_类型"
 
 # describe.c:128
-#: sql_help.c:453 sql_help.c:458 sql_help.c:1280 sql_help.c:1285
-#: sql_help.c:1534 sql_help.c:1538 sql_help.c:2138 sql_help.c:2229
-#: sql_help.c:2344 sql_help.c:2738 sql_help.c:2746 sql_help.c:2758
-#: sql_help.c:2771 sql_help.c:3008 sql_help.c:3014 sql_help.c:3780
+#: sql_help.c:452 sql_help.c:457 sql_help.c:1280 sql_help.c:1285
+#: sql_help.c:1531 sql_help.c:1535 sql_help.c:2140 sql_help.c:2232
+#: sql_help.c:2350 sql_help.c:2750 sql_help.c:2758 sql_help.c:2771
+#: sql_help.c:2785 sql_help.c:3023 sql_help.c:3029 sql_help.c:3797
 msgid "collation"
 msgstr "校对规则"
 
-#: sql_help.c:454 sql_help.c:1281 sql_help.c:2230 sql_help.c:2239
-#: sql_help.c:2739 sql_help.c:2754 sql_help.c:2766
+#: sql_help.c:453 sql_help.c:1281 sql_help.c:2233 sql_help.c:2242
+#: sql_help.c:2751 sql_help.c:2767 sql_help.c:2780
 msgid "column_constraint"
 msgstr "列约束"
 
-#: sql_help.c:464 sql_help.c:602 sql_help.c:673 sql_help.c:1298
+#: sql_help.c:463 sql_help.c:603 sql_help.c:674 sql_help.c:1298
 msgid "integer"
 msgstr "整数"
 
-#: sql_help.c:466 sql_help.c:469 sql_help.c:675 sql_help.c:678 sql_help.c:1300
+#: sql_help.c:465 sql_help.c:468 sql_help.c:676 sql_help.c:679 sql_help.c:1300
 #: sql_help.c:1303
 msgid "attribute_option"
 msgstr "属性选项"
 
-#: sql_help.c:474 sql_help.c:1305 sql_help.c:2231 sql_help.c:2240
-#: sql_help.c:2740 sql_help.c:2755 sql_help.c:2767
+#: sql_help.c:473 sql_help.c:1305 sql_help.c:2234 sql_help.c:2243
+#: sql_help.c:2752 sql_help.c:2768 sql_help.c:2781
 msgid "table_constraint"
 msgstr "表约束"
 
 # describe.c:575
-#: sql_help.c:477 sql_help.c:478 sql_help.c:479 sql_help.c:480 sql_help.c:1310
+#: sql_help.c:476 sql_help.c:477 sql_help.c:478 sql_help.c:479 sql_help.c:1310
 #: sql_help.c:1311 sql_help.c:1312 sql_help.c:1313 sql_help.c:1827
 msgid "trigger_name"
 msgstr "触发器_名称"
 
-#: sql_help.c:481 sql_help.c:482 sql_help.c:1323 sql_help.c:1324
-#: sql_help.c:2232 sql_help.c:2237 sql_help.c:2743 sql_help.c:2764
+#: sql_help.c:480 sql_help.c:481 sql_help.c:1323 sql_help.c:1324
+#: sql_help.c:2235 sql_help.c:2240 sql_help.c:2755 sql_help.c:2778
 msgid "parent_table"
 msgstr "父表"
 
 # describe.c:498
-#: sql_help.c:539 sql_help.c:594 sql_help.c:660 sql_help.c:860 sql_help.c:998
-#: sql_help.c:1494 sql_help.c:2169
+#: sql_help.c:539 sql_help.c:595 sql_help.c:661 sql_help.c:861 sql_help.c:999
+#: sql_help.c:1491 sql_help.c:2171
 msgid "extension_name"
 msgstr "extension_name(扩展名)"
 
-#: sql_help.c:541 sql_help.c:1000 sql_help.c:2285
+#: sql_help.c:541 sql_help.c:1001 sql_help.c:2290
 msgid "execution_cost"
 msgstr "执行函数的开销"
 
-#: sql_help.c:542 sql_help.c:1001 sql_help.c:2286
+#: sql_help.c:542 sql_help.c:1002 sql_help.c:2291
 msgid "result_rows"
 msgstr "返回记录的数量"
 
+# describe.c:498
+#: sql_help.c:543 sql_help.c:2292
+#, fuzzy
+#| msgid "start_function"
+msgid "support_function"
+msgstr "启动_函数"
+
 # describe.c:1636
-#: sql_help.c:563 sql_help.c:565 sql_help.c:924 sql_help.c:932 sql_help.c:936
-#: sql_help.c:939 sql_help.c:942 sql_help.c:1572 sql_help.c:1580
-#: sql_help.c:1584 sql_help.c:1587 sql_help.c:1590 sql_help.c:2575
-#: sql_help.c:2577 sql_help.c:2580 sql_help.c:2581 sql_help.c:3688
-#: sql_help.c:3692 sql_help.c:3695 sql_help.c:3697 sql_help.c:3699
-#: sql_help.c:3701 sql_help.c:3703 sql_help.c:3709 sql_help.c:3711
-#: sql_help.c:3713 sql_help.c:3715 sql_help.c:3717 sql_help.c:3719
+#: sql_help.c:564 sql_help.c:566 sql_help.c:925 sql_help.c:933 sql_help.c:937
+#: sql_help.c:940 sql_help.c:943 sql_help.c:1569 sql_help.c:1577
+#: sql_help.c:1581 sql_help.c:1584 sql_help.c:1587 sql_help.c:2583
+#: sql_help.c:2585 sql_help.c:2588 sql_help.c:2589 sql_help.c:3705
+#: sql_help.c:3709 sql_help.c:3712 sql_help.c:3714 sql_help.c:3716
+#: sql_help.c:3718 sql_help.c:3720 sql_help.c:3726 sql_help.c:3728
+#: sql_help.c:3730 sql_help.c:3732 sql_help.c:3734 sql_help.c:3736
 msgid "role_specification"
 msgstr "role_specification"
 
-#: sql_help.c:564 sql_help.c:566 sql_help.c:1603 sql_help.c:2112
-#: sql_help.c:2583 sql_help.c:3083 sql_help.c:3528 sql_help.c:4361
+#: sql_help.c:565 sql_help.c:567 sql_help.c:1600 sql_help.c:2114
+#: sql_help.c:2591 sql_help.c:3098 sql_help.c:3543 sql_help.c:4378
 msgid "user_name"
 msgstr "用户名"
 
-#: sql_help.c:567 sql_help.c:944 sql_help.c:1592 sql_help.c:2582
-#: sql_help.c:3720
+#: sql_help.c:568 sql_help.c:945 sql_help.c:1589 sql_help.c:2590
+#: sql_help.c:3737
 msgid "where role_specification can be:"
 msgstr "这里role_specification可以是:"
 
-#: sql_help.c:569
+#: sql_help.c:570
 msgid "group_name"
 msgstr "组名称"
 
 # describe.c:1342
-#: sql_help.c:590 sql_help.c:1372 sql_help.c:2117 sql_help.c:2349
-#: sql_help.c:2381 sql_help.c:2750 sql_help.c:2762 sql_help.c:2775
-#: sql_help.c:2818 sql_help.c:2840 sql_help.c:2852 sql_help.c:3716
-#: sql_help.c:4049
+#: sql_help.c:591 sql_help.c:1369 sql_help.c:2119 sql_help.c:2355
+#: sql_help.c:2389 sql_help.c:2763 sql_help.c:2776 sql_help.c:2790
+#: sql_help.c:2831 sql_help.c:2855 sql_help.c:2867 sql_help.c:3733
+#: sql_help.c:4066
 msgid "tablespace_name"
 msgstr "表空间的名称"
 
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:592 sql_help.c:680 sql_help.c:1318 sql_help.c:1327
-#: sql_help.c:1367 sql_help.c:1707
+#: sql_help.c:593 sql_help.c:681 sql_help.c:1318 sql_help.c:1327
+#: sql_help.c:1364 sql_help.c:1707
 msgid "index_name"
 msgstr "索引名称"
 
-#: sql_help.c:596 sql_help.c:599 sql_help.c:681 sql_help.c:683 sql_help.c:1320
-#: sql_help.c:1322 sql_help.c:1370 sql_help.c:2347 sql_help.c:2379
-#: sql_help.c:2748 sql_help.c:2760 sql_help.c:2773 sql_help.c:2816
-#: sql_help.c:2838
+#: sql_help.c:597 sql_help.c:600 sql_help.c:682 sql_help.c:684 sql_help.c:1320
+#: sql_help.c:1322 sql_help.c:1367 sql_help.c:2353 sql_help.c:2387
+#: sql_help.c:2761 sql_help.c:2774 sql_help.c:2788 sql_help.c:2829
+#: sql_help.c:2853
 msgid "storage_parameter"
 msgstr "存储参数"
 
 # describe.c:1375
-#: sql_help.c:601
+#: sql_help.c:602
 msgid "column_number"
 msgstr "列数"
 
 # large_obj.c:264
-#: sql_help.c:625 sql_help.c:1790 sql_help.c:4136
+#: sql_help.c:626 sql_help.c:1790 sql_help.c:4153
 msgid "large_object_oid"
 msgstr "大对象的OID"
 
-#: sql_help.c:712 sql_help.c:2402
+#: sql_help.c:713 sql_help.c:2410
 msgid "res_proc"
 msgstr "限制选择性估算函数"
 
-#: sql_help.c:713 sql_help.c:2403
+#: sql_help.c:714 sql_help.c:2411
 msgid "join_proc"
 msgstr "连接选择性估算函数"
 
-#: sql_help.c:765 sql_help.c:777 sql_help.c:2420
+#: sql_help.c:766 sql_help.c:778 sql_help.c:2428
 msgid "strategy_number"
 msgstr "访问索引所用方法的编号"
 
@@ -4852,56 +5180,56 @@ msgstr "访问索引所用方法的编号"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: sql_help.c:767 sql_help.c:768 sql_help.c:771 sql_help.c:772 sql_help.c:778
-#: sql_help.c:779 sql_help.c:781 sql_help.c:782 sql_help.c:2422 sql_help.c:2423
-#: sql_help.c:2426 sql_help.c:2427
+#: sql_help.c:768 sql_help.c:769 sql_help.c:772 sql_help.c:773 sql_help.c:779
+#: sql_help.c:780 sql_help.c:782 sql_help.c:783 sql_help.c:2430 sql_help.c:2431
+#: sql_help.c:2434 sql_help.c:2435
 msgid "op_type"
 msgstr "操作数类型"
 
-#: sql_help.c:769 sql_help.c:2424
+#: sql_help.c:770 sql_help.c:2432
 msgid "sort_family_name"
 msgstr "sort_family_name(排序家族名)"
 
-#: sql_help.c:770 sql_help.c:780 sql_help.c:2425
+#: sql_help.c:771 sql_help.c:781 sql_help.c:2433
 msgid "support_number"
 msgstr "访问索引所使用函数的编号"
 
 # describe.c:1689
-#: sql_help.c:774 sql_help.c:2056 sql_help.c:2429 sql_help.c:2929
-#: sql_help.c:2931
+#: sql_help.c:775 sql_help.c:2056 sql_help.c:2437 sql_help.c:2944
+#: sql_help.c:2946
 msgid "argument_type"
 msgstr "参数类型"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:805 sql_help.c:808 sql_help.c:879 sql_help.c:881 sql_help.c:883
-#: sql_help.c:1014 sql_help.c:1053 sql_help.c:1490 sql_help.c:1493
+#: sql_help.c:806 sql_help.c:809 sql_help.c:880 sql_help.c:882 sql_help.c:884
+#: sql_help.c:1015 sql_help.c:1054 sql_help.c:1487 sql_help.c:1490
 #: sql_help.c:1657 sql_help.c:1706 sql_help.c:1775 sql_help.c:1800
-#: sql_help.c:1813 sql_help.c:1828 sql_help.c:1885 sql_help.c:1890
-#: sql_help.c:2224 sql_help.c:2236 sql_help.c:2340 sql_help.c:2377
-#: sql_help.c:2453 sql_help.c:2496 sql_help.c:2552 sql_help.c:2603
-#: sql_help.c:2634 sql_help.c:2735 sql_help.c:2751 sql_help.c:2763
-#: sql_help.c:2836 sql_help.c:2955 sql_help.c:3132 sql_help.c:3349
-#: sql_help.c:3398 sql_help.c:3504 sql_help.c:3686 sql_help.c:3691
-#: sql_help.c:3736 sql_help.c:3768 sql_help.c:4019 sql_help.c:4024
-#: sql_help.c:4124 sql_help.c:4231 sql_help.c:4233 sql_help.c:4282
-#: sql_help.c:4321 sql_help.c:4470 sql_help.c:4472 sql_help.c:4521
-#: sql_help.c:4555 sql_help.c:4593 sql_help.c:4677 sql_help.c:4679
-#: sql_help.c:4728
+#: sql_help.c:1813 sql_help.c:1828 sql_help.c:1885 sql_help.c:1891
+#: sql_help.c:2227 sql_help.c:2239 sql_help.c:2346 sql_help.c:2384
+#: sql_help.c:2461 sql_help.c:2504 sql_help.c:2560 sql_help.c:2611
+#: sql_help.c:2642 sql_help.c:2747 sql_help.c:2764 sql_help.c:2777
+#: sql_help.c:2850 sql_help.c:2970 sql_help.c:3147 sql_help.c:3364
+#: sql_help.c:3413 sql_help.c:3519 sql_help.c:3703 sql_help.c:3708
+#: sql_help.c:3753 sql_help.c:3785 sql_help.c:4036 sql_help.c:4041
+#: sql_help.c:4141 sql_help.c:4248 sql_help.c:4250 sql_help.c:4299
+#: sql_help.c:4338 sql_help.c:4487 sql_help.c:4489 sql_help.c:4538
+#: sql_help.c:4572 sql_help.c:4621 sql_help.c:4705 sql_help.c:4707
+#: sql_help.c:4756
 msgid "table_name"
 msgstr "表名"
 
-#: sql_help.c:810 sql_help.c:2455
+#: sql_help.c:811 sql_help.c:2463
 msgid "using_expression"
 msgstr "using_expression"
 
-#: sql_help.c:811 sql_help.c:2456
+#: sql_help.c:812 sql_help.c:2464
 msgid "check_expression"
 msgstr "check_expression"
 
 # sql_help.h:366
-#: sql_help.c:885 sql_help.c:2497
+#: sql_help.c:886 sql_help.c:2505
 msgid "publication_parameter"
 msgstr "出版参数"
 
@@ -4909,73 +5237,73 @@ msgstr "出版参数"
 # command.c:939
 # startup.c:187
 # startup.c:205
-#: sql_help.c:928 sql_help.c:1576 sql_help.c:2319 sql_help.c:2529
-#: sql_help.c:3066
+#: sql_help.c:929 sql_help.c:1573 sql_help.c:2325 sql_help.c:2537
+#: sql_help.c:3081
 msgid "password"
 msgstr "口令"
 
-#: sql_help.c:929 sql_help.c:1577 sql_help.c:2320 sql_help.c:2530
-#: sql_help.c:3067
+#: sql_help.c:930 sql_help.c:1574 sql_help.c:2326 sql_help.c:2538
+#: sql_help.c:3082
 msgid "timestamp"
 msgstr "时间戳"
 
-#: sql_help.c:933 sql_help.c:937 sql_help.c:940 sql_help.c:943 sql_help.c:1581
-#: sql_help.c:1585 sql_help.c:1588 sql_help.c:1591 sql_help.c:3696
-#: sql_help.c:4029
+#: sql_help.c:934 sql_help.c:938 sql_help.c:941 sql_help.c:944 sql_help.c:1578
+#: sql_help.c:1582 sql_help.c:1585 sql_help.c:1588 sql_help.c:3713
+#: sql_help.c:4046
 msgid "database_name"
 msgstr "数据库名称"
 
-#: sql_help.c:1047 sql_help.c:2598
+#: sql_help.c:1048 sql_help.c:2606
 msgid "increment"
 msgstr "增量"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:1048 sql_help.c:2599
+#: sql_help.c:1049 sql_help.c:2607
 msgid "minvalue"
 msgstr "最小值"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:1049 sql_help.c:2600
+#: sql_help.c:1050 sql_help.c:2608
 msgid "maxvalue"
 msgstr "最大值"
 
-#: sql_help.c:1050 sql_help.c:2601 sql_help.c:4229 sql_help.c:4319
-#: sql_help.c:4468 sql_help.c:4610 sql_help.c:4675
+#: sql_help.c:1051 sql_help.c:2609 sql_help.c:4246 sql_help.c:4336
+#: sql_help.c:4485 sql_help.c:4638 sql_help.c:4703
 msgid "start"
 msgstr "起始值"
 
-#: sql_help.c:1051 sql_help.c:1295
+#: sql_help.c:1052 sql_help.c:1295
 msgid "restart"
 msgstr "重新启动后的序列值"
 
-#: sql_help.c:1052 sql_help.c:2602
+#: sql_help.c:1053 sql_help.c:2610
 msgid "cache"
 msgstr "缓存"
 
-#: sql_help.c:1109 sql_help.c:2646
+#: sql_help.c:1110 sql_help.c:2654
 msgid "conninfo"
 msgstr "连接信息"
 
-#: sql_help.c:1111 sql_help.c:2647
+#: sql_help.c:1112 sql_help.c:2655
 msgid "publication_name"
 msgstr "publication_name(出版名)"
 
 # describe.c:1636
-#: sql_help.c:1112
+#: sql_help.c:1113
 msgid "set_publication_option"
 msgstr "设置出版选项"
 
 # help.c:88
-#: sql_help.c:1115
+#: sql_help.c:1116
 msgid "refresh_option"
 msgstr "refresh选项"
 
 # sql_help.h:366
-#: sql_help.c:1120 sql_help.c:2648
+#: sql_help.c:1121 sql_help.c:2656
 msgid "subscription_parameter"
 msgstr "订阅参数"
 
@@ -4983,14 +5311,14 @@ msgstr "订阅参数"
 msgid "partition_name"
 msgstr "分区名"
 
-#: sql_help.c:1274 sql_help.c:2241 sql_help.c:2768
+#: sql_help.c:1274 sql_help.c:2244 sql_help.c:2782
 msgid "partition_bound_spec"
 msgstr "分区绑定规范"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:1292 sql_help.c:1341 sql_help.c:2780
+#: sql_help.c:1292 sql_help.c:1338 sql_help.c:2796
 msgid "sequence_options"
 msgstr "序列选项"
 
@@ -5009,168 +5337,183 @@ msgstr "table_constraint_using_index(表约束使用索引)"
 msgid "rewrite_rule_name"
 msgstr "重写规则名称"
 
-#: sql_help.c:1328 sql_help.c:2805
+#: sql_help.c:1328 sql_help.c:2821
 msgid "and partition_bound_spec is:"
 msgstr "并且分区绑定的规范是:"
 
-#: sql_help.c:1329 sql_help.c:1331 sql_help.c:1333 sql_help.c:1335
-#: sql_help.c:1336 sql_help.c:2806 sql_help.c:2808 sql_help.c:2810
-#: sql_help.c:2812 sql_help.c:2813
+#: sql_help.c:1329 sql_help.c:1330 sql_help.c:1331 sql_help.c:2822
+#: sql_help.c:2823 sql_help.c:2824
+#, fuzzy
+#| msgid "partition_bound_spec"
+msgid "partition_bound_expr"
+msgstr "分区绑定规范"
+
+#: sql_help.c:1332 sql_help.c:1333 sql_help.c:2825 sql_help.c:2826
 msgid "numeric_literal"
 msgstr "数字_文字"
 
-#: sql_help.c:1330 sql_help.c:1332 sql_help.c:1334 sql_help.c:2807
-#: sql_help.c:2809 sql_help.c:2811
-msgid "string_literal"
-msgstr "字符串_文字"
-
 # describe.c:1174
-#: sql_help.c:1337
+#: sql_help.c:1334
 msgid "and column_constraint is:"
 msgstr "并且列的约束是:"
 
 # describe.c:1639
-#: sql_help.c:1340 sql_help.c:2248 sql_help.c:2279 sql_help.c:2476
-#: sql_help.c:2779
+#: sql_help.c:1337 sql_help.c:2251 sql_help.c:2284 sql_help.c:2484
+#: sql_help.c:2794
 msgid "default_expr"
 msgstr "默认_表达式"
 
-#: sql_help.c:1342 sql_help.c:1343 sql_help.c:1352 sql_help.c:1354
-#: sql_help.c:1358 sql_help.c:2781 sql_help.c:2782 sql_help.c:2791
-#: sql_help.c:2793 sql_help.c:2797
+#: sql_help.c:1339 sql_help.c:1340 sql_help.c:1349 sql_help.c:1351
+#: sql_help.c:1355 sql_help.c:2797 sql_help.c:2798 sql_help.c:2807
+#: sql_help.c:2809 sql_help.c:2813
 msgid "index_parameters"
 msgstr "索引参数"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:1344 sql_help.c:1361 sql_help.c:2783 sql_help.c:2800
+#: sql_help.c:1341 sql_help.c:1358 sql_help.c:2799 sql_help.c:2816
 msgid "reftable"
 msgstr "所引用的表"
 
 # describe.c:744
-#: sql_help.c:1345 sql_help.c:1362 sql_help.c:2784 sql_help.c:2801
+#: sql_help.c:1342 sql_help.c:1359 sql_help.c:2800 sql_help.c:2817
 msgid "refcolumn"
 msgstr "所引用的列"
 
-#: sql_help.c:1348 sql_help.c:2249 sql_help.c:2787
+#: sql_help.c:1343 sql_help.c:1344 sql_help.c:1360 sql_help.c:1361
+#: sql_help.c:2801 sql_help.c:2802 sql_help.c:2818 sql_help.c:2819
+#, fuzzy
+#| msgid "initial_condition"
+msgid "referential_action"
+msgstr "初始条件"
+
+#: sql_help.c:1345 sql_help.c:2253 sql_help.c:2803
 msgid "and table_constraint is:"
 msgstr "表约束是:"
 
-#: sql_help.c:1356 sql_help.c:2795
+#: sql_help.c:1353 sql_help.c:2811
 msgid "exclude_element"
 msgstr "排除项"
 
 # describe.c:512
-#: sql_help.c:1357 sql_help.c:2796 sql_help.c:4227 sql_help.c:4317
-#: sql_help.c:4466 sql_help.c:4608 sql_help.c:4673
+#: sql_help.c:1354 sql_help.c:2812 sql_help.c:4244 sql_help.c:4334
+#: sql_help.c:4483 sql_help.c:4636 sql_help.c:4701
 msgid "operator"
 msgstr "运算子"
 
 # describe.c:937
-#: sql_help.c:1359 sql_help.c:2350 sql_help.c:2798
+#: sql_help.c:1356 sql_help.c:2356 sql_help.c:2814
 msgid "predicate"
 msgstr "述词"
 
-#: sql_help.c:1365
+#: sql_help.c:1362
 msgid "and table_constraint_using_index is:"
 msgstr "table_constraint_using_index 是:"
 
-#: sql_help.c:1368 sql_help.c:2814
+#: sql_help.c:1365 sql_help.c:2827
 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:"
 msgstr "在UNIQUE, PRIMARY KEY和EXCLUDE中的索引参数是:"
 
-#: sql_help.c:1373 sql_help.c:2819
+#: sql_help.c:1370 sql_help.c:2832
 msgid "exclude_element in an EXCLUDE constraint is:"
 msgstr "在EXCLUDE约束中的排除项是:"
 
-#: sql_help.c:1376 sql_help.c:2345 sql_help.c:2747 sql_help.c:2759
-#: sql_help.c:2772 sql_help.c:2822 sql_help.c:3781
+#: sql_help.c:1373 sql_help.c:2351 sql_help.c:2759 sql_help.c:2772
+#: sql_help.c:2786 sql_help.c:2835 sql_help.c:3798
 msgid "opclass"
 msgstr "操作符类型的名称"
 
 # describe.c:1342
-#: sql_help.c:1392 sql_help.c:1395 sql_help.c:2855
+#: sql_help.c:1389 sql_help.c:1392 sql_help.c:2870
 msgid "tablespace_option"
 msgstr "表空间_选项"
 
-#: sql_help.c:1416 sql_help.c:1419 sql_help.c:1425 sql_help.c:1429
+#: sql_help.c:1413 sql_help.c:1416 sql_help.c:1422 sql_help.c:1426
 msgid "token_type"
 msgstr "符号类型"
 
-#: sql_help.c:1417 sql_help.c:1420
+#: sql_help.c:1414 sql_help.c:1417
 msgid "dictionary_name"
 msgstr "字典名称"
 
-#: sql_help.c:1422 sql_help.c:1426
+#: sql_help.c:1419 sql_help.c:1423
 msgid "old_dictionary"
 msgstr "旧的字典"
 
-#: sql_help.c:1423 sql_help.c:1427
+#: sql_help.c:1420 sql_help.c:1424
 msgid "new_dictionary"
 msgstr "新的字典"
 
-#: sql_help.c:1519 sql_help.c:1532 sql_help.c:1535 sql_help.c:1536
-#: sql_help.c:3006
+#: sql_help.c:1516 sql_help.c:1529 sql_help.c:1532 sql_help.c:1533
+#: sql_help.c:3021
 msgid "attribute_name"
 msgstr "属性_名称"
 
-#: sql_help.c:1520
+#: sql_help.c:1517
 msgid "new_attribute_name"
 msgstr "new_attribute_name(新属性名)"
 
-#: sql_help.c:1526 sql_help.c:1530
+#: sql_help.c:1523 sql_help.c:1527
 msgid "new_enum_value"
 msgstr "new_enum_value(新枚举名)"
 
-#: sql_help.c:1527
+#: sql_help.c:1524
 msgid "neighbor_enum_value"
 msgstr "相邻的枚举值"
 
-#: sql_help.c:1529
+#: sql_help.c:1526
 msgid "existing_enum_value"
 msgstr "现有枚举值"
 
-#: sql_help.c:1604 sql_help.c:2233 sql_help.c:2242 sql_help.c:2614
-#: sql_help.c:3084 sql_help.c:3529 sql_help.c:3702 sql_help.c:3737
-#: sql_help.c:4035
+#: sql_help.c:1601 sql_help.c:2236 sql_help.c:2245 sql_help.c:2622
+#: sql_help.c:3099 sql_help.c:3544 sql_help.c:3719 sql_help.c:3754
+#: sql_help.c:4052
 msgid "server_name"
 msgstr "服务器名称"
 
 # help.c:88
-#: sql_help.c:1632 sql_help.c:1635 sql_help.c:3099
+#: sql_help.c:1629 sql_help.c:1632 sql_help.c:3114
 msgid "view_option_name"
 msgstr "view_option_name(视图选项名)"
 
 # help.c:88
-#: sql_help.c:1633 sql_help.c:3100
+#: sql_help.c:1630 sql_help.c:3115
 msgid "view_option_value"
 msgstr "view_option_value(视图选项值)"
 
-#: sql_help.c:1653 sql_help.c:1654 sql_help.c:4589 sql_help.c:4590
+#: sql_help.c:1651 sql_help.c:1652 sql_help.c:4609 sql_help.c:4610
 msgid "table_and_columns"
 msgstr "表和列"
 
-#: sql_help.c:1655 sql_help.c:1896 sql_help.c:3575 sql_help.c:4591
+#: sql_help.c:1653 sql_help.c:1897 sql_help.c:3591 sql_help.c:4611
 msgid "where option can be one of:"
 msgstr "选项可以是下列内容之一:"
 
-#: sql_help.c:1656 sql_help.c:4592
+#: sql_help.c:1654 sql_help.c:1655 sql_help.c:1899 sql_help.c:1902
+#: sql_help.c:2081 sql_help.c:3592 sql_help.c:3593 sql_help.c:3594
+#: sql_help.c:3595 sql_help.c:3596 sql_help.c:3597 sql_help.c:3598
+#: sql_help.c:4612 sql_help.c:4613 sql_help.c:4614 sql_help.c:4615
+#: sql_help.c:4616 sql_help.c:4617 sql_help.c:4618 sql_help.c:4619
+msgid "boolean"
+msgstr "布尔"
+
+#: sql_help.c:1656 sql_help.c:4620
 msgid "and table_and_columns is:"
 msgstr "并且表和列:"
 
-#: sql_help.c:1672 sql_help.c:4377 sql_help.c:4379 sql_help.c:4403
+#: sql_help.c:1672 sql_help.c:4394 sql_help.c:4396 sql_help.c:4420
 msgid "transaction_mode"
 msgstr "事务模式"
 
-#: sql_help.c:1673 sql_help.c:4380 sql_help.c:4404
+#: sql_help.c:1673 sql_help.c:4397 sql_help.c:4421
 msgid "where transaction_mode is one of:"
 msgstr "事务模式可以是下列选项之一:"
 
-#: sql_help.c:1682 sql_help.c:4237 sql_help.c:4246 sql_help.c:4250
-#: sql_help.c:4254 sql_help.c:4257 sql_help.c:4476 sql_help.c:4485
-#: sql_help.c:4489 sql_help.c:4493 sql_help.c:4496 sql_help.c:4683
-#: sql_help.c:4692 sql_help.c:4696 sql_help.c:4700 sql_help.c:4703
+#: sql_help.c:1682 sql_help.c:4254 sql_help.c:4263 sql_help.c:4267
+#: sql_help.c:4271 sql_help.c:4274 sql_help.c:4493 sql_help.c:4502
+#: sql_help.c:4506 sql_help.c:4510 sql_help.c:4513 sql_help.c:4711
+#: sql_help.c:4720 sql_help.c:4724 sql_help.c:4728 sql_help.c:4731
 msgid "argument"
 msgstr "参数"
 
@@ -5179,7 +5522,7 @@ msgid "relation_name"
 msgstr "relation_name(关系名)"
 
 # describe.c:1375
-#: sql_help.c:1777 sql_help.c:3698 sql_help.c:4031
+#: sql_help.c:1777 sql_help.c:3715 sql_help.c:4048
 msgid "domain_name"
 msgstr "域_名称"
 
@@ -5197,36 +5540,38 @@ msgstr "规则_名称"
 msgid "text"
 msgstr "文本"
 
-#: sql_help.c:1856 sql_help.c:3881 sql_help.c:4069
+#: sql_help.c:1856 sql_help.c:3898 sql_help.c:4086
 msgid "transaction_id"
 msgstr "事务_ID"
 
 # describe.c:1375
-#: sql_help.c:1887 sql_help.c:1893 sql_help.c:3807
+#: sql_help.c:1887 sql_help.c:1894 sql_help.c:3824
 msgid "filename"
 msgstr "文件名"
 
-#: sql_help.c:1888 sql_help.c:1894 sql_help.c:2554 sql_help.c:2555
-#: sql_help.c:2556
+#: sql_help.c:1888 sql_help.c:1895 sql_help.c:2562 sql_help.c:2563
+#: sql_help.c:2564
 msgid "command"
 msgstr "命令"
 
-#: sql_help.c:1892 sql_help.c:2382 sql_help.c:2841 sql_help.c:3101
-#: sql_help.c:3119 sql_help.c:3772
+# help.c:123
+#: sql_help.c:1890 sql_help.c:2561 sql_help.c:2973 sql_help.c:3150
+#: sql_help.c:3808 sql_help.c:4237 sql_help.c:4239 sql_help.c:4327
+#: sql_help.c:4329 sql_help.c:4476 sql_help.c:4478 sql_help.c:4581
+#: sql_help.c:4694 sql_help.c:4696
+msgid "condition"
+msgstr "条件"
+
+#: sql_help.c:1893 sql_help.c:2390 sql_help.c:2856 sql_help.c:3116
+#: sql_help.c:3134 sql_help.c:3789
 msgid "query"
 msgstr "查询"
 
 # help.c:211
-#: sql_help.c:1897
+#: sql_help.c:1898
 msgid "format_name"
 msgstr "格式_名称"
 
-#: sql_help.c:1898 sql_help.c:1899 sql_help.c:1902 sql_help.c:3576
-#: sql_help.c:3577 sql_help.c:3578 sql_help.c:3579 sql_help.c:3580
-#: sql_help.c:3581
-msgid "boolean"
-msgstr "布尔"
-
 #: sql_help.c:1900
 msgid "delimiter_character"
 msgstr "分隔字符"
@@ -5349,11 +5694,11 @@ msgid "base_type"
 msgstr "基础_类型"
 
 # help.c:127
-#: sql_help.c:2076
+#: sql_help.c:2077
 msgid "locale"
 msgstr "本地化语言"
 
-#: sql_help.c:2077 sql_help.c:2115
+#: sql_help.c:2078 sql_help.c:2117
 msgid "lc_collate"
 msgstr "排序规则"
 
@@ -5361,256 +5706,253 @@ msgstr "排序规则"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: sql_help.c:2078 sql_help.c:2116
+#: sql_help.c:2079 sql_help.c:2118
 msgid "lc_ctype"
 msgstr "字符分类"
 
-#: sql_help.c:2079 sql_help.c:4122
+#: sql_help.c:2080 sql_help.c:4139
 msgid "provider"
 msgstr "provider(提供者)"
 
-#: sql_help.c:2080 sql_help.c:2171
+#: sql_help.c:2082 sql_help.c:2173
 msgid "version"
 msgstr "version(版本)"
 
 # describe.c:1636
-#: sql_help.c:2082
+#: sql_help.c:2084
 msgid "existing_collation"
 msgstr "existing_collation(当前的本地化语言)"
 
 # describe.c:187
-#: sql_help.c:2092
+#: sql_help.c:2094
 msgid "source_encoding"
 msgstr "源_编码"
 
 # describe.c:365
-#: sql_help.c:2093
+#: sql_help.c:2095
 msgid "dest_encoding"
 msgstr "目的_编码"
 
-#: sql_help.c:2113 sql_help.c:2881
+#: sql_help.c:2115 sql_help.c:2896
 msgid "template"
 msgstr "模版"
 
 # describe.c:365
-#: sql_help.c:2114
+#: sql_help.c:2116
 msgid "encoding"
 msgstr "字符集编码"
 
-#: sql_help.c:2140
+#: sql_help.c:2142
 msgid "constraint"
 msgstr "约束"
 
 # describe.c:1174
-#: sql_help.c:2141
+#: sql_help.c:2143
 msgid "where constraint is:"
 msgstr "约束是:"
 
-#: sql_help.c:2155 sql_help.c:2551 sql_help.c:2954
+#: sql_help.c:2157 sql_help.c:2559 sql_help.c:2969
 msgid "event"
 msgstr "事件"
 
-#: sql_help.c:2156
+#: sql_help.c:2158
 msgid "filter_variable"
 msgstr "过滤器变量"
 
-#: sql_help.c:2172
+#: sql_help.c:2174
 msgid "old_version"
 msgstr "老版本"
 
 # describe.c:1174
-#: sql_help.c:2245 sql_help.c:2776
+#: sql_help.c:2248 sql_help.c:2791
 msgid "where column_constraint is:"
 msgstr "列的约束是:"
 
+#: sql_help.c:2252 sql_help.c:2795
+msgid "generation_expr"
+msgstr ""
+
 # describe.c:1689
-#: sql_help.c:2280
+#: sql_help.c:2285
 msgid "rettype"
 msgstr "返回类型"
 
-#: sql_help.c:2282
+#: sql_help.c:2287
 msgid "column_type"
 msgstr "列的类型"
 
 # describe.c:977
-#: sql_help.c:2290 sql_help.c:2482
+#: sql_help.c:2296 sql_help.c:2490
 msgid "definition"
 msgstr "定义"
 
-#: sql_help.c:2291 sql_help.c:2483
+#: sql_help.c:2297 sql_help.c:2491
 msgid "obj_file"
 msgstr "目标文件"
 
-#: sql_help.c:2292 sql_help.c:2484
+#: sql_help.c:2298 sql_help.c:2492
 msgid "link_symbol"
 msgstr "链接_符号"
 
-#: sql_help.c:2326 sql_help.c:2536 sql_help.c:3073
+#: sql_help.c:2332 sql_help.c:2544 sql_help.c:3088
 msgid "uid"
 msgstr "uid"
 
-#: sql_help.c:2341
+#: sql_help.c:2347 sql_help.c:2386 sql_help.c:2760 sql_help.c:2773
+#: sql_help.c:2787 sql_help.c:2852
 msgid "method"
 msgstr "方法"
 
-#: sql_help.c:2362
+#: sql_help.c:2368
 msgid "call_handler"
 msgstr "调用函数"
 
-#: sql_help.c:2363
+#: sql_help.c:2369
 msgid "inline_handler"
 msgstr "匿名代码块"
 
 # describe.c:498
-#: sql_help.c:2364
+#: sql_help.c:2370
 msgid "valfunction"
 msgstr "验证函数"
 
-#: sql_help.c:2400
+#: sql_help.c:2408
 msgid "com_op"
 msgstr "交换操作符"
 
-#: sql_help.c:2401
+#: sql_help.c:2409
 msgid "neg_op"
 msgstr "取负操作符"
 
-#: sql_help.c:2419
+#: sql_help.c:2427
 msgid "family_name"
 msgstr "操作符群的名称"
 
 # describe.c:1635
-#: sql_help.c:2430
+#: sql_help.c:2438
 msgid "storage_type"
 msgstr "存储类型"
 
-# help.c:123
-#: sql_help.c:2553 sql_help.c:2958 sql_help.c:3135 sql_help.c:3791
-#: sql_help.c:4220 sql_help.c:4222 sql_help.c:4310 sql_help.c:4312
-#: sql_help.c:4459 sql_help.c:4461 sql_help.c:4564 sql_help.c:4666
-#: sql_help.c:4668
-msgid "condition"
-msgstr "条件"
-
-#: sql_help.c:2557 sql_help.c:2961
+#: sql_help.c:2565 sql_help.c:2976
 msgid "where event can be one of:"
 msgstr "事件可以下述之一:"
 
-#: sql_help.c:2576 sql_help.c:2578
+#: sql_help.c:2584 sql_help.c:2586
 msgid "schema_element"
 msgstr "模式中对象"
 
-#: sql_help.c:2615
+#: sql_help.c:2623
 msgid "server_type"
 msgstr "服务器类型"
 
-#: sql_help.c:2616
+#: sql_help.c:2624
 msgid "server_version"
 msgstr "服务器版本"
 
-#: sql_help.c:2617 sql_help.c:3700 sql_help.c:4033
+#: sql_help.c:2625 sql_help.c:3717 sql_help.c:4050
 msgid "fdw_name"
 msgstr "外部数据封装器的名称"
 
-#: sql_help.c:2630
+#: sql_help.c:2638
 msgid "statistics_name"
 msgstr "统计信息_名称"
 
-#: sql_help.c:2631
+#: sql_help.c:2639
 msgid "statistics_kind"
 msgstr "统计信息_方式"
 
 # describe.c:498
-#: sql_help.c:2645
+#: sql_help.c:2653
 msgid "subscription_name"
 msgstr "订阅_名称"
 
 # describe.c:1688
-#: sql_help.c:2741
+#: sql_help.c:2753
 msgid "source_table"
 msgstr "源表"
 
 # help.c:88
-#: sql_help.c:2742
+#: sql_help.c:2754
 msgid "like_option"
 msgstr "like选项"
 
-#: sql_help.c:2804
+#: sql_help.c:2820
 msgid "and like_option is:"
 msgstr "like_选项是"
 
-#: sql_help.c:2854
+#: sql_help.c:2869
 msgid "directory"
 msgstr "目录"
 
-#: sql_help.c:2868
+#: sql_help.c:2883
 msgid "parser_name"
 msgstr "解析器名称 "
 
-#: sql_help.c:2869
+#: sql_help.c:2884
 msgid "source_config"
 msgstr "已存在的文本搜索配置名称"
 
 # describe.c:498
-#: sql_help.c:2898
+#: sql_help.c:2913
 msgid "start_function"
 msgstr "启动_函数"
 
 # sql_help.h:249
-#: sql_help.c:2899
+#: sql_help.c:2914
 msgid "gettoken_function"
 msgstr "获取下一个符号函数的名称"
 
 # describe.c:498
-#: sql_help.c:2900
+#: sql_help.c:2915
 msgid "end_function"
 msgstr "结束_函数"
 
 # describe.c:498
-#: sql_help.c:2901
+#: sql_help.c:2916
 msgid "lextypes_function"
 msgstr "语义类型_函数"
 
 # describe.c:498
-#: sql_help.c:2902
+#: sql_help.c:2917
 msgid "headline_function"
 msgstr "标题_函数"
 
 # describe.c:498
-#: sql_help.c:2914
+#: sql_help.c:2929
 msgid "init_function"
 msgstr "初始化_函数"
 
 # describe.c:498
-#: sql_help.c:2915
+#: sql_help.c:2930
 msgid "lexize_function"
 msgstr "LEXIZE函数"
 
 # describe.c:498
-#: sql_help.c:2928
+#: sql_help.c:2943
 msgid "from_sql_function_name"
 msgstr "from_sql_function_name"
 
 # describe.c:498
-#: sql_help.c:2930
+#: sql_help.c:2945
 msgid "to_sql_function_name"
 msgstr "to_sql_function_name"
 
-#: sql_help.c:2956
+#: sql_help.c:2971
 msgid "referenced_table_name"
 msgstr "被引用表的名称"
 
-#: sql_help.c:2957
+#: sql_help.c:2972
 msgid "transition_relation_name"
 msgstr "transition_relation_name(转换关系名)"
 
-#: sql_help.c:2960
+#: sql_help.c:2975
 msgid "arguments"
 msgstr "参数"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:3010 sql_help.c:4155
+#: sql_help.c:3025 sql_help.c:4172
 msgid "label"
 msgstr "标签"
 
@@ -5618,1244 +5960,1249 @@ msgstr "标签"
 # describe.c:745
 # describe.c:1478
 # describe.c:1587
-#: sql_help.c:3012
+#: sql_help.c:3027
 msgid "subtype"
 msgstr "子类型"
 
 # describe.c:512
-#: sql_help.c:3013
+#: sql_help.c:3028
 msgid "subtype_operator_class"
 msgstr "subtype_operator_class(子类型_操作符_类)"
 
 # describe.c:498
-#: sql_help.c:3015
+#: sql_help.c:3030
 msgid "canonical_function"
 msgstr "标准_函数"
 
 # describe.c:498
-#: sql_help.c:3016
+#: sql_help.c:3031
 msgid "subtype_diff_function"
 msgstr "subtype_diff_function(子类型_区分_函数)"
 
 # describe.c:498
-#: sql_help.c:3018
+#: sql_help.c:3033
 msgid "input_function"
 msgstr "输入_函数"
 
 # describe.c:498
-#: sql_help.c:3019
+#: sql_help.c:3034
 msgid "output_function"
 msgstr "输出_函数"
 
 # sql_help.h:249
-#: sql_help.c:3020
+#: sql_help.c:3035
 msgid "receive_function"
 msgstr "接收_函数"
 
 # describe.c:498
-#: sql_help.c:3021
+#: sql_help.c:3036
 msgid "send_function"
 msgstr "发送_函数"
 
-#: sql_help.c:3022
+#: sql_help.c:3037
 msgid "type_modifier_input_function"
 msgstr "类型修改器数组输入函数名称"
 
-#: sql_help.c:3023
+#: sql_help.c:3038
 msgid "type_modifier_output_function"
 msgstr "类型修改器输出函数名称"
 
 # describe.c:498
-#: sql_help.c:3024
+#: sql_help.c:3039
 msgid "analyze_function"
 msgstr "分析_函数"
 
-#: sql_help.c:3025
+#: sql_help.c:3040
 msgid "internallength"
 msgstr "内部长度"
 
 # describe.c:1693
-#: sql_help.c:3026
+#: sql_help.c:3041
 msgid "alignment"
 msgstr "顺序排列(alignment)"
 
 # describe.c:1635
-#: sql_help.c:3027
+#: sql_help.c:3042
 msgid "storage"
 msgstr "存储"
 
-#: sql_help.c:3028
+#: sql_help.c:3043
 msgid "like_type"
 msgstr "LIKE类型(like_type)"
 
-#: sql_help.c:3029
+#: sql_help.c:3044
 msgid "category"
 msgstr "类型"
 
-#: sql_help.c:3030
+#: sql_help.c:3045
 msgid "preferred"
 msgstr "优先"
 
 # describe.c:1639
-#: sql_help.c:3031
+#: sql_help.c:3046
 msgid "default"
 msgstr "默认"
 
-#: sql_help.c:3032
+#: sql_help.c:3047
 msgid "element"
 msgstr "成员项"
 
-#: sql_help.c:3033
+#: sql_help.c:3048
 msgid "delimiter"
 msgstr "分隔符"
 
-#: sql_help.c:3034
+#: sql_help.c:3049
 msgid "collatable"
 msgstr "要校对的"
 
-#: sql_help.c:3131 sql_help.c:3767 sql_help.c:4215 sql_help.c:4304
-#: sql_help.c:4454 sql_help.c:4554 sql_help.c:4661
+#: sql_help.c:3146 sql_help.c:3784 sql_help.c:4232 sql_help.c:4321
+#: sql_help.c:4471 sql_help.c:4571 sql_help.c:4689
 msgid "with_query"
 msgstr "with查询语句(with_query)"
 
-#: sql_help.c:3133 sql_help.c:3769 sql_help.c:4234 sql_help.c:4240
-#: sql_help.c:4243 sql_help.c:4247 sql_help.c:4251 sql_help.c:4259
-#: sql_help.c:4473 sql_help.c:4479 sql_help.c:4482 sql_help.c:4486
-#: sql_help.c:4490 sql_help.c:4498 sql_help.c:4556 sql_help.c:4680
-#: sql_help.c:4686 sql_help.c:4689 sql_help.c:4693 sql_help.c:4697
-#: sql_help.c:4705
+#: sql_help.c:3148 sql_help.c:3786 sql_help.c:4251 sql_help.c:4257
+#: sql_help.c:4260 sql_help.c:4264 sql_help.c:4268 sql_help.c:4276
+#: sql_help.c:4490 sql_help.c:4496 sql_help.c:4499 sql_help.c:4503
+#: sql_help.c:4507 sql_help.c:4515 sql_help.c:4573 sql_help.c:4708
+#: sql_help.c:4714 sql_help.c:4717 sql_help.c:4721 sql_help.c:4725
+#: sql_help.c:4733
 msgid "alias"
 msgstr "别名"
 
-#: sql_help.c:3134
+#: sql_help.c:3149
 msgid "using_list"
 msgstr "USING列表(using_list)"
 
-#: sql_help.c:3136 sql_help.c:3607 sql_help.c:3848 sql_help.c:4565
+#: sql_help.c:3151 sql_help.c:3624 sql_help.c:3865 sql_help.c:4582
 msgid "cursor_name"
 msgstr "游标名称"
 
-#: sql_help.c:3137 sql_help.c:3775 sql_help.c:4566
+#: sql_help.c:3152 sql_help.c:3792 sql_help.c:4583
 msgid "output_expression"
 msgstr "输出表达式"
 
-#: sql_help.c:3138 sql_help.c:3776 sql_help.c:4218 sql_help.c:4307
-#: sql_help.c:4457 sql_help.c:4567 sql_help.c:4664
+#: sql_help.c:3153 sql_help.c:3793 sql_help.c:4235 sql_help.c:4324
+#: sql_help.c:4474 sql_help.c:4584 sql_help.c:4692
 msgid "output_name"
 msgstr "输出名称"
 
-#: sql_help.c:3154
+#: sql_help.c:3169
 msgid "code"
 msgstr "编码"
 
-#: sql_help.c:3553
+#: sql_help.c:3568
 msgid "parameter"
 msgstr "参数"
 
-#: sql_help.c:3573 sql_help.c:3574 sql_help.c:3873
+#: sql_help.c:3589 sql_help.c:3590 sql_help.c:3890
 msgid "statement"
 msgstr "语句"
 
 # help.c:123
-#: sql_help.c:3606 sql_help.c:3847
+#: sql_help.c:3623 sql_help.c:3864
 msgid "direction"
 msgstr "方向"
 
-#: sql_help.c:3608 sql_help.c:3849
+#: sql_help.c:3625 sql_help.c:3866
 msgid "where direction can be empty or one of:"
 msgstr "方向可以为空或者是下列选项之一:"
 
-#: sql_help.c:3609 sql_help.c:3610 sql_help.c:3611 sql_help.c:3612
-#: sql_help.c:3613 sql_help.c:3850 sql_help.c:3851 sql_help.c:3852
-#: sql_help.c:3853 sql_help.c:3854 sql_help.c:4228 sql_help.c:4230
-#: sql_help.c:4318 sql_help.c:4320 sql_help.c:4467 sql_help.c:4469
-#: sql_help.c:4609 sql_help.c:4611 sql_help.c:4674 sql_help.c:4676
+#: sql_help.c:3626 sql_help.c:3627 sql_help.c:3628 sql_help.c:3629
+#: sql_help.c:3630 sql_help.c:3867 sql_help.c:3868 sql_help.c:3869
+#: sql_help.c:3870 sql_help.c:3871 sql_help.c:4245 sql_help.c:4247
+#: sql_help.c:4335 sql_help.c:4337 sql_help.c:4484 sql_help.c:4486
+#: sql_help.c:4637 sql_help.c:4639 sql_help.c:4702 sql_help.c:4704
 msgid "count"
 msgstr "查询所用返回记录的最大数量"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:3693 sql_help.c:4026
+#: sql_help.c:3710 sql_help.c:4043
 msgid "sequence_name"
 msgstr "序列名称"
 
-#: sql_help.c:3706 sql_help.c:4039
+#: sql_help.c:3723 sql_help.c:4056
 msgid "arg_name"
 msgstr "参数名称"
 
 # describe.c:1689
-#: sql_help.c:3707 sql_help.c:4040
+#: sql_help.c:3724 sql_help.c:4057
 msgid "arg_type"
 msgstr "参数类型"
 
-#: sql_help.c:3712 sql_help.c:4045
+#: sql_help.c:3729 sql_help.c:4062
 msgid "loid"
 msgstr "loid"
 
 # sql_help.h:277
-#: sql_help.c:3735
+#: sql_help.c:3752
 msgid "remote_schema"
 msgstr "remote_schema"
 
 # help.c:127
-#: sql_help.c:3738
+#: sql_help.c:3755
 msgid "local_schema"
 msgstr "local_schema"
 
-#: sql_help.c:3773
+#: sql_help.c:3790
 msgid "conflict_target"
 msgstr "冲突目标"
 
 # describe.c:498
-#: sql_help.c:3774
+#: sql_help.c:3791
 msgid "conflict_action"
 msgstr "冲突行动"
 
-#: sql_help.c:3777
+#: sql_help.c:3794
 msgid "where conflict_target can be one of:"
 msgstr "这里conflict_target可以是下列之一:"
 
 # describe.c:1375
-#: sql_help.c:3778
+#: sql_help.c:3795
 msgid "index_column_name"
 msgstr "索引列名称"
 
-#: sql_help.c:3779
+#: sql_help.c:3796
 msgid "index_expression"
 msgstr "索引表达式"
 
 # describe.c:937
-#: sql_help.c:3782
+#: sql_help.c:3799
 msgid "index_predicate"
 msgstr "index_predicate"
 
-#: sql_help.c:3784
+#: sql_help.c:3801
 msgid "and conflict_action is one of:"
 msgstr "并且conflict_action是下列之一:"
 
-#: sql_help.c:3790 sql_help.c:4562
+#: sql_help.c:3807 sql_help.c:4579
 msgid "sub-SELECT"
 msgstr "sub-SELECT"
 
-#: sql_help.c:3799 sql_help.c:3862 sql_help.c:4538
+#: sql_help.c:3816 sql_help.c:3879 sql_help.c:4555
 msgid "channel"
 msgstr "通道"
 
-#: sql_help.c:3821
+#: sql_help.c:3838
 msgid "lockmode"
 msgstr "锁模式"
 
-#: sql_help.c:3822
+#: sql_help.c:3839
 msgid "where lockmode is one of:"
 msgstr "锁模式可以是下列选项之一:"
 
-#: sql_help.c:3863
+#: sql_help.c:3880
 msgid "payload"
 msgstr "消息中负载流量(payload)"
 
-#: sql_help.c:3890
+#: sql_help.c:3907
 msgid "old_role"
 msgstr "旧的角色"
 
-#: sql_help.c:3891
+#: sql_help.c:3908
 msgid "new_role"
 msgstr "新的角色"
 
 # sql_help.h:382
-#: sql_help.c:3916 sql_help.c:4077 sql_help.c:4085
+#: sql_help.c:3933 sql_help.c:4094 sql_help.c:4102
 msgid "savepoint_name"
 msgstr "保存点名称"
 
-#: sql_help.c:4219 sql_help.c:4261 sql_help.c:4263 sql_help.c:4309
-#: sql_help.c:4458 sql_help.c:4500 sql_help.c:4502 sql_help.c:4665
-#: sql_help.c:4707 sql_help.c:4709
+#: sql_help.c:4236 sql_help.c:4278 sql_help.c:4280 sql_help.c:4326
+#: sql_help.c:4475 sql_help.c:4517 sql_help.c:4519 sql_help.c:4693
+#: sql_help.c:4735 sql_help.c:4737
 msgid "from_item"
 msgstr "from列表中项"
 
-#: sql_help.c:4221 sql_help.c:4273 sql_help.c:4460 sql_help.c:4512
-#: sql_help.c:4667 sql_help.c:4719
+#: sql_help.c:4238 sql_help.c:4290 sql_help.c:4477 sql_help.c:4529
+#: sql_help.c:4695 sql_help.c:4747
 msgid "grouping_element"
 msgstr "grouping_element"
 
-#: sql_help.c:4223 sql_help.c:4313 sql_help.c:4462 sql_help.c:4669
+#: sql_help.c:4240 sql_help.c:4330 sql_help.c:4479 sql_help.c:4697
 msgid "window_name"
 msgstr "窗口名称"
 
 # describe.c:977
-#: sql_help.c:4224 sql_help.c:4314 sql_help.c:4463 sql_help.c:4670
+#: sql_help.c:4241 sql_help.c:4331 sql_help.c:4480 sql_help.c:4698
 msgid "window_definition"
 msgstr "窗口定义"
 
-#: sql_help.c:4225 sql_help.c:4239 sql_help.c:4277 sql_help.c:4315
-#: sql_help.c:4464 sql_help.c:4478 sql_help.c:4516 sql_help.c:4671
-#: sql_help.c:4685 sql_help.c:4723
+#: sql_help.c:4242 sql_help.c:4256 sql_help.c:4294 sql_help.c:4332
+#: sql_help.c:4481 sql_help.c:4495 sql_help.c:4533 sql_help.c:4699
+#: sql_help.c:4713 sql_help.c:4751
 msgid "select"
 msgstr "查询"
 
-#: sql_help.c:4232 sql_help.c:4471 sql_help.c:4678
+#: sql_help.c:4249 sql_help.c:4488 sql_help.c:4706
 msgid "where from_item can be one of:"
 msgstr "from 列表中的项可以是下列内容之一"
 
-#: sql_help.c:4235 sql_help.c:4241 sql_help.c:4244 sql_help.c:4248
-#: sql_help.c:4260 sql_help.c:4474 sql_help.c:4480 sql_help.c:4483
-#: sql_help.c:4487 sql_help.c:4499 sql_help.c:4681 sql_help.c:4687
-#: sql_help.c:4690 sql_help.c:4694 sql_help.c:4706
+#: sql_help.c:4252 sql_help.c:4258 sql_help.c:4261 sql_help.c:4265
+#: sql_help.c:4277 sql_help.c:4491 sql_help.c:4497 sql_help.c:4500
+#: sql_help.c:4504 sql_help.c:4516 sql_help.c:4709 sql_help.c:4715
+#: sql_help.c:4718 sql_help.c:4722 sql_help.c:4734
 msgid "column_alias"
 msgstr "列的别名"
 
-#: sql_help.c:4236 sql_help.c:4475 sql_help.c:4682
+#: sql_help.c:4253 sql_help.c:4492 sql_help.c:4710
 msgid "sampling_method"
 msgstr "sampling_method"
 
-#: sql_help.c:4238 sql_help.c:4477 sql_help.c:4684
+#: sql_help.c:4255 sql_help.c:4494 sql_help.c:4712
 msgid "seed"
 msgstr "种子"
 
-#: sql_help.c:4242 sql_help.c:4275 sql_help.c:4481 sql_help.c:4514
-#: sql_help.c:4688 sql_help.c:4721
+#: sql_help.c:4259 sql_help.c:4292 sql_help.c:4498 sql_help.c:4531
+#: sql_help.c:4716 sql_help.c:4749
 msgid "with_query_name"
 msgstr "WITH查询语句名称(with_query_name)"
 
 # describe.c:977
-#: sql_help.c:4252 sql_help.c:4255 sql_help.c:4258 sql_help.c:4491
-#: sql_help.c:4494 sql_help.c:4497 sql_help.c:4698 sql_help.c:4701
-#: sql_help.c:4704
+#: sql_help.c:4269 sql_help.c:4272 sql_help.c:4275 sql_help.c:4508
+#: sql_help.c:4511 sql_help.c:4514 sql_help.c:4726 sql_help.c:4729
+#: sql_help.c:4732
 msgid "column_definition"
 msgstr "列定义"
 
-#: sql_help.c:4262 sql_help.c:4501 sql_help.c:4708
+#: sql_help.c:4279 sql_help.c:4518 sql_help.c:4736
 msgid "join_type"
 msgstr "连接操作的类型"
 
-#: sql_help.c:4264 sql_help.c:4503 sql_help.c:4710
+#: sql_help.c:4281 sql_help.c:4520 sql_help.c:4738
 msgid "join_condition"
 msgstr "用连接操作的条件"
 
-#: sql_help.c:4265 sql_help.c:4504 sql_help.c:4711
+#: sql_help.c:4282 sql_help.c:4521 sql_help.c:4739
 msgid "join_column"
 msgstr "用于连接操作的列"
 
-#: sql_help.c:4266 sql_help.c:4505 sql_help.c:4712
+#: sql_help.c:4283 sql_help.c:4522 sql_help.c:4740
 msgid "and grouping_element can be one of:"
 msgstr "并且grouping_element可以是下列之一:"
 
-#: sql_help.c:4274 sql_help.c:4513 sql_help.c:4720
+#: sql_help.c:4291 sql_help.c:4530 sql_help.c:4748
 msgid "and with_query is:"
 msgstr "with查询语句是:"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:4278 sql_help.c:4517 sql_help.c:4724
+#: sql_help.c:4295 sql_help.c:4534 sql_help.c:4752
 msgid "values"
 msgstr "值"
 
-#: sql_help.c:4279 sql_help.c:4518 sql_help.c:4725
+#: sql_help.c:4296 sql_help.c:4535 sql_help.c:4753
 msgid "insert"
 msgstr "insert"
 
-#: sql_help.c:4280 sql_help.c:4519 sql_help.c:4726
+#: sql_help.c:4297 sql_help.c:4536 sql_help.c:4754
 msgid "update"
 msgstr "update"
 
-#: sql_help.c:4281 sql_help.c:4520 sql_help.c:4727
+#: sql_help.c:4298 sql_help.c:4537 sql_help.c:4755
 msgid "delete"
 msgstr "delete"
 
 # describe.c:415
 # describe.c:543
 # describe.c:1477
-#: sql_help.c:4308
+#: sql_help.c:4325
 msgid "new_table"
 msgstr "新的表"
 
-#: sql_help.c:4333
+#: sql_help.c:4350
 msgid "timezone"
 msgstr "时区"
 
-#: sql_help.c:4378
+#: sql_help.c:4395
 msgid "snapshot_id"
 msgstr "快照id"
 
-#: sql_help.c:4563
+#: sql_help.c:4580
 msgid "from_list"
 msgstr "from列表(from_list)"
 
-#: sql_help.c:4607
+#: sql_help.c:4635
 msgid "sort_expression"
 msgstr "排序表达式"
 
 # sql_help.h:25
 # sql_help.h:373
-#: sql_help.c:4734 sql_help.c:5549
+#: sql_help.c:4762 sql_help.c:5740
 msgid "abort the current transaction"
 msgstr "中止目前的事务"
 
 # sql_help.h:29
-#: sql_help.c:4739
+#: sql_help.c:4768
 msgid "change the definition of an aggregate function"
 msgstr "更改聚集函数的定义"
 
 # sql_help.h:45
-#: sql_help.c:4744
+#: sql_help.c:4774
 msgid "change the definition of a collation"
 msgstr "更改校对规则的定义"
 
 # sql_help.h:33
-#: sql_help.c:4749
+#: sql_help.c:4780
 msgid "change the definition of a conversion"
 msgstr "更改一个字符编码转换的定义"
 
 # sql_help.h:37
-#: sql_help.c:4754
+#: sql_help.c:4786
 msgid "change a database"
 msgstr "更改一个数据库"
 
 # sql_help.h:325
-#: sql_help.c:4759
+#: sql_help.c:4792
 msgid "define default access privileges"
 msgstr "定义默认的访问权限"
 
 # sql_help.h:41
-#: sql_help.c:4764
+#: sql_help.c:4798
 msgid "change the definition of a domain"
 msgstr "更改共同值域的定义"
 
 # sql_help.h:85
-#: sql_help.c:4769
+#: sql_help.c:4804
 msgid "change the definition of an event trigger"
 msgstr "更改事件触发器的定义"
 
 # sql_help.h:33
-#: sql_help.c:4774
+#: sql_help.c:4810
 msgid "change the definition of an extension"
 msgstr "更改扩展的定义"
 
 # sql_help.h:85
-#: sql_help.c:4779
+#: sql_help.c:4816
 msgid "change the definition of a foreign-data wrapper"
 msgstr "更改外部数据封装器的定义"
 
 # sql_help.h:85
-#: sql_help.c:4784
+#: sql_help.c:4822
 msgid "change the definition of a foreign table"
 msgstr "更改外部表的定义"
 
 # sql_help.h:45
-#: sql_help.c:4789
+#: sql_help.c:4828
 msgid "change the definition of a function"
 msgstr "更改函数的定义"
 
-#: sql_help.c:4794
+#: sql_help.c:4834
 msgid "change role name or membership"
 msgstr "更改角色名称或成员状态"
 
 # sql_help.h:53
-#: sql_help.c:4799
+#: sql_help.c:4840
 msgid "change the definition of an index"
 msgstr "更改索引的定义"
 
 # sql_help.h:57
-#: sql_help.c:4804
+#: sql_help.c:4846
 msgid "change the definition of a procedural language"
 msgstr "更改程序语言的定义"
 
 # sql_help.h:77
-#: sql_help.c:4809
+#: sql_help.c:4852
 msgid "change the definition of a large object"
 msgstr "更改大对象的定义"
 
 # sql_help.h:53
-#: sql_help.c:4814
+#: sql_help.c:4858
 msgid "change the definition of a materialized view"
 msgstr "更改物化视图的定义"
 
 # sql_help.h:65
-#: sql_help.c:4819
+#: sql_help.c:4864
 msgid "change the definition of an operator"
 msgstr "更改运算子的定义"
 
 # sql_help.h:61
-#: sql_help.c:4824
+#: sql_help.c:4870
 msgid "change the definition of an operator class"
 msgstr "更改运算子类别的定义"
 
 # sql_help.h:65
-#: sql_help.c:4829
+#: sql_help.c:4876
 msgid "change the definition of an operator family"
 msgstr "更改一个运算子家族的识别"
 
 # sql_help.h:41
-#: sql_help.c:4834
+#: sql_help.c:4882
 msgid "change the definition of a row level security policy"
 msgstr "更改一条行级安全性策略的定义"
 
 # sql_help.h:77
-#: sql_help.c:4839
+#: sql_help.c:4888
 msgid "change the definition of a procedure"
 msgstr "更改程序的定义"
 
 # sql_help.h:45
-#: sql_help.c:4844
+#: sql_help.c:4894
 msgid "change the definition of a publication"
 msgstr "更改出版的定义"
 
 # sql_help.h:37
-#: sql_help.c:4849 sql_help.c:4934
+#: sql_help.c:4900 sql_help.c:5002
 msgid "change a database role"
 msgstr "更改数据库角色"
 
 # sql_help.h:77
-#: sql_help.c:4854
+#: sql_help.c:4906
 msgid "change the definition of a routine"
 msgstr "更改程序的定义"
 
 # sql_help.h:77
-#: sql_help.c:4859
+#: sql_help.c:4912
 msgid "change the definition of a rule"
 msgstr "更改规则的定义"
 
 # sql_help.h:69
-#: sql_help.c:4864
+#: sql_help.c:4918
 msgid "change the definition of a schema"
 msgstr "更改架构模式的定义"
 
 # sql_help.h:73
-#: sql_help.c:4869
+#: sql_help.c:4924
 msgid "change the definition of a sequence generator"
 msgstr "更改序列数产生器的定义"
 
 # sql_help.h:85
-#: sql_help.c:4874
+#: sql_help.c:4930
 msgid "change the definition of a foreign server"
 msgstr "更改外部服务器的定义"
 
 # sql_help.h:33
-#: sql_help.c:4879
+#: sql_help.c:4936
 msgid "change the definition of an extended statistics object"
 msgstr "更改扩展统计信息对象的定义"
 
 # sql_help.h:45
-#: sql_help.c:4884
+#: sql_help.c:4942
 msgid "change the definition of a subscription"
 msgstr "更改订阅的定义"
 
 # sql_help.h:366
-#: sql_help.c:4889
+#: sql_help.c:4948
 msgid "change a server configuration parameter"
 msgstr "更改服务器的配置参数"
 
 # sql_help.h:77
-#: sql_help.c:4894
+#: sql_help.c:4954
 msgid "change the definition of a table"
 msgstr "更改数据表的定义"
 
 # sql_help.h:81
-#: sql_help.c:4899
+#: sql_help.c:4960
 msgid "change the definition of a tablespace"
 msgstr "更改表空间的定义"
 
 # sql_help.h:33
-#: sql_help.c:4904
+#: sql_help.c:4966
 msgid "change the definition of a text search configuration"
 msgstr "更改一个文本搜索组态的定义"
 
 # sql_help.h:45
-#: sql_help.c:4909
+#: sql_help.c:4972
 msgid "change the definition of a text search dictionary"
 msgstr "更改一个文本搜索字典的定义"
 
 # sql_help.h:81
-#: sql_help.c:4914
+#: sql_help.c:4978
 msgid "change the definition of a text search parser"
 msgstr "更改一个文本搜索剖析器的定义"
 
 # sql_help.h:69
-#: sql_help.c:4919
+#: sql_help.c:4984
 msgid "change the definition of a text search template"
 msgstr "更改一个文本搜索模版的定义"
 
 # sql_help.h:85
-#: sql_help.c:4924
+#: sql_help.c:4990
 msgid "change the definition of a trigger"
 msgstr "更改触发器的定义"
 
 # sql_help.h:89
-#: sql_help.c:4929
+#: sql_help.c:4996
 msgid "change the definition of a type"
 msgstr "更改数据类型的定义"
 
 # sql_help.h:41
-#: sql_help.c:4939
+#: sql_help.c:5008
 msgid "change the definition of a user mapping"
 msgstr "更改用户映射的定义"
 
 # sql_help.h:53
-#: sql_help.c:4944
+#: sql_help.c:5014
 msgid "change the definition of a view"
 msgstr "更改视图的定义"
 
 # sql_help.h:97
-#: sql_help.c:4949
+#: sql_help.c:5020
 msgid "collect statistics about a database"
 msgstr "收集数据库的统计信息"
 
 # sql_help.h:101
 # sql_help.h:413
-#: sql_help.c:4954 sql_help.c:5614
+#: sql_help.c:5026 sql_help.c:5818
 msgid "start a transaction block"
 msgstr "开始一个事务区块"
 
 # sql_help.h:261
-#: sql_help.c:4959
+#: sql_help.c:5032
 msgid "invoke a procedure"
 msgstr "调用过程"
 
 # sql_help.h:105
-#: sql_help.c:4964
+#: sql_help.c:5038
 msgid "force a write-ahead log checkpoint"
 msgstr "强制一个预写日志检查点"
 
 # sql_help.h:109
-#: sql_help.c:4969
+#: sql_help.c:5044
 msgid "close a cursor"
 msgstr "关闭游标"
 
 # sql_help.h:113
-#: sql_help.c:4974
+#: sql_help.c:5050
 msgid "cluster a table according to an index"
 msgstr "按照索引进行表的聚集"
 
 # sql_help.h:117
-#: sql_help.c:4979
+#: sql_help.c:5056
 msgid "define or change the comment of an object"
 msgstr "定义或更改一个对象的注解"
 
 # sql_help.h:121
 # sql_help.h:309
-#: sql_help.c:4984 sql_help.c:5449
+#: sql_help.c:5062 sql_help.c:5620
 msgid "commit the current transaction"
 msgstr "确认目前的事务"
 
-#: sql_help.c:4989
+#: sql_help.c:5068
 msgid "commit a transaction that was earlier prepared for two-phase commit"
 msgstr "提交一项事务这是两阶段提交的先前准备"
 
 # sql_help.h:125
-#: sql_help.c:4994
+#: sql_help.c:5074
 msgid "copy data between a file and a table"
 msgstr "在档案和数据表间复制数据"
 
 # sql_help.h:133
-#: sql_help.c:4999
+#: sql_help.c:5080
 msgid "define a new access method"
 msgstr "定义新的访问方法"
 
 # sql_help.h:129
-#: sql_help.c:5004
+#: sql_help.c:5086
 msgid "define a new aggregate function"
 msgstr "定义一个新的聚集函数"
 
 # sql_help.h:133
-#: sql_help.c:5009
+#: sql_help.c:5092
 msgid "define a new cast"
 msgstr "建立新的类型转换"
 
 # sql_help.h:153
-#: sql_help.c:5014
+#: sql_help.c:5098
 msgid "define a new collation"
 msgstr "建立新的校对规则"
 
 # sql_help.h:141
-#: sql_help.c:5019
+#: sql_help.c:5104
 msgid "define a new encoding conversion"
 msgstr "定义一个新的字元编码转换"
 
 # sql_help.h:145
-#: sql_help.c:5024
+#: sql_help.c:5110
 msgid "create a new database"
 msgstr "建立新的数据库"
 
 # sql_help.h:149
-#: sql_help.c:5029
+#: sql_help.c:5116
 msgid "define a new domain"
 msgstr "建立新的共同值域"
 
 # sql_help.h:201
-#: sql_help.c:5034
+#: sql_help.c:5122
 msgid "define a new event trigger"
 msgstr "定义新的事件触发器"
 
-#: sql_help.c:5039
+#: sql_help.c:5128
 msgid "install an extension"
 msgstr "安装一个扩展"
 
 # sql_help.h:205
-#: sql_help.c:5044
+#: sql_help.c:5134
 msgid "define a new foreign-data wrapper"
 msgstr "定义一个新的外部数据封装器"
 
 # sql_help.h:201
-#: sql_help.c:5049
+#: sql_help.c:5140
 msgid "define a new foreign table"
 msgstr "建立新的外部表"
 
 # sql_help.h:153
-#: sql_help.c:5054
+#: sql_help.c:5146
 msgid "define a new function"
 msgstr "建立新的函数"
 
 # sql_help.h:189
-#: sql_help.c:5059 sql_help.c:5109 sql_help.c:5194
+#: sql_help.c:5152 sql_help.c:5212 sql_help.c:5314
 msgid "define a new database role"
 msgstr "定义一个新数据库角色"
 
 # sql_help.h:161
-#: sql_help.c:5064
+#: sql_help.c:5158
 msgid "define a new index"
 msgstr "建立新的索引"
 
 # sql_help.h:165
-#: sql_help.c:5069
+#: sql_help.c:5164
 msgid "define a new procedural language"
 msgstr "建立新的程序语言"
 
 # sql_help.h:213
-#: sql_help.c:5074
+#: sql_help.c:5170
 msgid "define a new materialized view"
 msgstr "建立新的物化视图"
 
 # sql_help.h:173
-#: sql_help.c:5079
+#: sql_help.c:5176
 msgid "define a new operator"
 msgstr "建立新的运算子"
 
 # sql_help.h:169
-#: sql_help.c:5084
+#: sql_help.c:5182
 msgid "define a new operator class"
 msgstr "建立新的运算子类别"
 
 # sql_help.h:173
-#: sql_help.c:5089
+#: sql_help.c:5188
 msgid "define a new operator family"
 msgstr "定义一个新的运算子家族"
 
 # sql_help.h:201
-#: sql_help.c:5094
+#: sql_help.c:5194
 msgid "define a new row level security policy for a table"
 msgstr "为一个表定义一条新的行级安全性策略"
 
 # sql_help.h:165
-#: sql_help.c:5099
+#: sql_help.c:5200
 msgid "define a new procedure"
 msgstr "建立新的程序"
 
 # sql_help.h:153
-#: sql_help.c:5104
+#: sql_help.c:5206
 msgid "define a new publication"
 msgstr "建立新的出版"
 
 # sql_help.h:177
-#: sql_help.c:5114
+#: sql_help.c:5218
 msgid "define a new rewrite rule"
 msgstr "建立新的重写规则"
 
 # sql_help.h:181
-#: sql_help.c:5119
+#: sql_help.c:5224
 msgid "define a new schema"
 msgstr "建立新的架构模式"
 
 # sql_help.h:185
-#: sql_help.c:5124
+#: sql_help.c:5230
 msgid "define a new sequence generator"
 msgstr "建立新的序列数产生器"
 
 # sql_help.h:201
-#: sql_help.c:5129
+#: sql_help.c:5236
 msgid "define a new foreign server"
 msgstr "建立新的触发器"
 
 # sql_help.h:133
-#: sql_help.c:5134
+#: sql_help.c:5242
 msgid "define extended statistics"
 msgstr "建立新的扩展统计"
 
 # sql_help.h:153
-#: sql_help.c:5139
+#: sql_help.c:5248
 msgid "define a new subscription"
 msgstr "建立新的订阅"
 
 # sql_help.h:189
-#: sql_help.c:5144
+#: sql_help.c:5254
 msgid "define a new table"
 msgstr "建立新的数据表"
 
 # sql_help.h:193
 # sql_help.h:389
-#: sql_help.c:5149 sql_help.c:5579
+#: sql_help.c:5260 sql_help.c:5776
 msgid "define a new table from the results of a query"
 msgstr "以查询结果建立新的数据表"
 
 # sql_help.h:197
-#: sql_help.c:5154
+#: sql_help.c:5266
 msgid "define a new tablespace"
 msgstr "建立新的表空间"
 
 # sql_help.h:129
-#: sql_help.c:5159
+#: sql_help.c:5272
 msgid "define a new text search configuration"
 msgstr "定义一个新文本搜索组态"
 
 # sql_help.h:129
-#: sql_help.c:5164
+#: sql_help.c:5278
 msgid "define a new text search dictionary"
 msgstr "定义一个新文本搜索字典"
 
 # sql_help.h:197
-#: sql_help.c:5169
+#: sql_help.c:5284
 msgid "define a new text search parser"
 msgstr "定义一个新文本搜索剖析器"
 
 # sql_help.h:181
-#: sql_help.c:5174
+#: sql_help.c:5290
 msgid "define a new text search template"
 msgstr "定义一个新文本搜索模版"
 
 # sql_help.h:173
-#: sql_help.c:5179
+#: sql_help.c:5296
 msgid "define a new transform"
 msgstr "定义一个新的转换"
 
 # sql_help.h:201
-#: sql_help.c:5184
+#: sql_help.c:5302
 msgid "define a new trigger"
 msgstr "建立新的触发器"
 
 # sql_help.h:205
-#: sql_help.c:5189
+#: sql_help.c:5308
 msgid "define a new data type"
 msgstr "建立新的数据类型"
 
-#: sql_help.c:5199
+#: sql_help.c:5320
 msgid "define a new mapping of a user to a foreign server"
 msgstr "将用户的新映射定义到一个外部服务器"
 
 # sql_help.h:213
-#: sql_help.c:5204
+#: sql_help.c:5326
 msgid "define a new view"
 msgstr "建立新的视图"
 
 # sql_help.h:217
-#: sql_help.c:5209
+#: sql_help.c:5332
 msgid "deallocate a prepared statement"
 msgstr "释放一个已预备好的叙述区块"
 
 # sql_help.h:221
-#: sql_help.c:5214
+#: sql_help.c:5338
 msgid "define a cursor"
 msgstr "建立一个 cursor"
 
 # sql_help.h:225
-#: sql_help.c:5219
+#: sql_help.c:5344
 msgid "delete rows of a table"
 msgstr "删除数据表中的数据列"
 
-#: sql_help.c:5224
+#: sql_help.c:5350
 msgid "discard session state"
 msgstr "抛弃 session 状态"
 
-#: sql_help.c:5229
+#: sql_help.c:5356
 msgid "execute an anonymous code block"
 msgstr "执行一个匿名代码块"
 
 # sql_help.h:233
-#: sql_help.c:5234
+#: sql_help.c:5362
 msgid "remove an access method"
 msgstr "移除一种访问方法"
 
 # sql_help.h:229
-#: sql_help.c:5239
+#: sql_help.c:5368
 msgid "remove an aggregate function"
 msgstr "移除一个聚集函数"
 
 # sql_help.h:233
-#: sql_help.c:5244
+#: sql_help.c:5374
 msgid "remove a cast"
 msgstr "移除一个类型转换"
 
 # sql_help.h:249
-#: sql_help.c:5249
+#: sql_help.c:5380
 msgid "remove a collation"
 msgstr "移除一个校对规则"
 
 # sql_help.h:237
-#: sql_help.c:5254
+#: sql_help.c:5386
 msgid "remove a conversion"
 msgstr "移除一个字元编码转换"
 
 # sql_help.h:241
-#: sql_help.c:5259
+#: sql_help.c:5392
 msgid "remove a database"
 msgstr "移除数据库"
 
 # sql_help.h:245
-#: sql_help.c:5264
+#: sql_help.c:5398
 msgid "remove a domain"
 msgstr "移除一个共同值域"
 
 # sql_help.h:293
-#: sql_help.c:5269
+#: sql_help.c:5404
 msgid "remove an event trigger"
 msgstr "移除事件触发器"
 
 # sql_help.h:237
-#: sql_help.c:5274
+#: sql_help.c:5410
 msgid "remove an extension"
 msgstr "移除一个扩展"
 
 # sql_help.h:297
-#: sql_help.c:5279
+#: sql_help.c:5416
 msgid "remove a foreign-data wrapper"
 msgstr "删除一个外部数据封装器"
 
 # sql_help.h:285
-#: sql_help.c:5284
+#: sql_help.c:5422
 msgid "remove a foreign table"
 msgstr "移除外部引用表"
 
 # sql_help.h:249
-#: sql_help.c:5289
+#: sql_help.c:5428
 msgid "remove a function"
 msgstr "移除函数"
 
 # sql_help.h:241
-#: sql_help.c:5294 sql_help.c:5349 sql_help.c:5434
+#: sql_help.c:5434 sql_help.c:5500 sql_help.c:5602
 msgid "remove a database role"
 msgstr "移除一个数据库成员"
 
 # sql_help.h:257
-#: sql_help.c:5299
+#: sql_help.c:5440
 msgid "remove an index"
 msgstr "移除一个索引"
 
 # sql_help.h:261
-#: sql_help.c:5304
+#: sql_help.c:5446
 msgid "remove a procedural language"
 msgstr "移除一个程序语言"
 
 # sql_help.h:305
-#: sql_help.c:5309
+#: sql_help.c:5452
 msgid "remove a materialized view"
 msgstr "移除一个物化视图"
 
 # sql_help.h:269
-#: sql_help.c:5314
+#: sql_help.c:5458
 msgid "remove an operator"
 msgstr "移除运算子"
 
 # sql_help.h:265
-#: sql_help.c:5319
+#: sql_help.c:5464
 msgid "remove an operator class"
 msgstr "移除一个运算子类别"
 
 # sql_help.h:269
-#: sql_help.c:5324
+#: sql_help.c:5470
 msgid "remove an operator family"
 msgstr "移除一个运算子家族"
 
-#: sql_help.c:5329
+#: sql_help.c:5476
 msgid "remove database objects owned by a database role"
 msgstr "依照一个数据库角色拥有的数据库对象来移除"
 
 # sql_help.h:285
-#: sql_help.c:5334
+#: sql_help.c:5482
 msgid "remove a row level security policy from a table"
 msgstr "从一个表移除一条行级安全性策略"
 
 # sql_help.h:261
-#: sql_help.c:5339
+#: sql_help.c:5488
 msgid "remove a procedure"
 msgstr "移除一个程序"
 
 # sql_help.h:249
-#: sql_help.c:5344
+#: sql_help.c:5494
 msgid "remove a publication"
 msgstr "移除出版"
 
 # sql_help.h:249
-#: sql_help.c:5354
+#: sql_help.c:5506
 msgid "remove a routine"
 msgstr "移除程序"
 
 # sql_help.h:273
-#: sql_help.c:5359
+#: sql_help.c:5512
 msgid "remove a rewrite rule"
 msgstr "移除一个重写规则"
 
 # sql_help.h:277
-#: sql_help.c:5364
+#: sql_help.c:5518
 msgid "remove a schema"
 msgstr "移除一个模式"
 
 # sql_help.h:281
-#: sql_help.c:5369
+#: sql_help.c:5524
 msgid "remove a sequence"
 msgstr "移除序列"
 
 # sql_help.h:237
-#: sql_help.c:5374
+#: sql_help.c:5530
 msgid "remove a foreign server descriptor"
 msgstr "删除一个外部服务器描述符"
 
 # sql_help.h:237
-#: sql_help.c:5379
+#: sql_help.c:5536
 msgid "remove extended statistics"
 msgstr "移除一个扩展统计"
 
 # sql_help.h:249
-#: sql_help.c:5384
+#: sql_help.c:5542
 msgid "remove a subscription"
 msgstr "移除一个订阅"
 
 # sql_help.h:285
-#: sql_help.c:5389
+#: sql_help.c:5548
 msgid "remove a table"
 msgstr "移除数据表"
 
 # sql_help.h:289
-#: sql_help.c:5394
+#: sql_help.c:5554
 msgid "remove a tablespace"
 msgstr "移除一个表空间"
 
 # sql_help.h:301
-#: sql_help.c:5399
+#: sql_help.c:5560
 msgid "remove a text search configuration"
 msgstr "移除一个文本搜索配置"
 
 # sql_help.h:301
-#: sql_help.c:5404
+#: sql_help.c:5566
 msgid "remove a text search dictionary"
 msgstr "移除一个文本搜索字典"
 
 # sql_help.h:289
-#: sql_help.c:5409
+#: sql_help.c:5572
 msgid "remove a text search parser"
 msgstr "移除一个文本搜索剖析器"
 
 # sql_help.h:277
-#: sql_help.c:5414
+#: sql_help.c:5578
 msgid "remove a text search template"
 msgstr "移除一个文本搜索模版"
 
 # sql_help.h:269
-#: sql_help.c:5419
+#: sql_help.c:5584
 msgid "remove a transform"
 msgstr "移除一个转换"
 
 # sql_help.h:293
-#: sql_help.c:5424
+#: sql_help.c:5590
 msgid "remove a trigger"
 msgstr "移除触发器"
 
 # sql_help.h:297
-#: sql_help.c:5429
+#: sql_help.c:5596
 msgid "remove a data type"
 msgstr "移除数据类型"
 
-#: sql_help.c:5439
+#: sql_help.c:5608
 msgid "remove a user mapping for a foreign server"
 msgstr "为外部服务器删除用户映射"
 
 # sql_help.h:305
-#: sql_help.c:5444
+#: sql_help.c:5614
 msgid "remove a view"
 msgstr "移除一个视图"
 
 # sql_help.h:313
-#: sql_help.c:5454
+#: sql_help.c:5626
 msgid "execute a prepared statement"
 msgstr "执行一个已准备好的语句块"
 
 # sql_help.h:317
-#: sql_help.c:5459
+#: sql_help.c:5632
 msgid "show the execution plan of a statement"
 msgstr "显示一个语句块的执行计划"
 
 # sql_help.h:321
-#: sql_help.c:5464
+#: sql_help.c:5638
 msgid "retrieve rows from a query using a cursor"
 msgstr "从使用游标的查询读取数据"
 
 # sql_help.h:325
-#: sql_help.c:5469
+#: sql_help.c:5644
 msgid "define access privileges"
 msgstr "定义存取权限"
 
 # sql_help.h:85
-#: sql_help.c:5474
+#: sql_help.c:5650
 msgid "import table definitions from a foreign server"
 msgstr "从一个外部服务器导入表定义"
 
 # sql_help.h:329
-#: sql_help.c:5479
+#: sql_help.c:5656
 msgid "create new rows in a table"
 msgstr "在表中创建新数据行"
 
 # sql_help.h:333
-#: sql_help.c:5484
+#: sql_help.c:5662
 msgid "listen for a notification"
 msgstr "等待通知"
 
 # sql_help.h:337
-#: sql_help.c:5489
+#: sql_help.c:5668
 msgid "load a shared library file"
 msgstr "加载一个共享库文件"
 
 # sql_help.h:341
-#: sql_help.c:5494
+#: sql_help.c:5674
 msgid "lock a table"
 msgstr "锁定数据表"
 
 # sql_help.h:345
-#: sql_help.c:5499
+#: sql_help.c:5680
 msgid "position a cursor"
 msgstr "移动游标位置"
 
 # sql_help.h:349
-#: sql_help.c:5504
+#: sql_help.c:5686
 msgid "generate a notification"
 msgstr "产生通知"
 
 # sql_help.h:353
-#: sql_help.c:5509
+#: sql_help.c:5692
 msgid "prepare a statement for execution"
 msgstr "预先编译语句以执行"
 
 # sql_help.h:25
 # sql_help.h:373
-#: sql_help.c:5514
+#: sql_help.c:5698
 msgid "prepare the current transaction for two-phase commit"
 msgstr "准备将当前事务进行二段式提交"
 
-#: sql_help.c:5519
+#: sql_help.c:5704
 msgid "change the ownership of database objects owned by a database role"
 msgstr "依照一个数据库角色拥有的的数据库对象来更变所有权"
 
-#: sql_help.c:5524
+#: sql_help.c:5710
 msgid "replace the contents of a materialized view"
 msgstr "替换物化视图的内容"
 
 # sql_help.h:357
-#: sql_help.c:5529
+#: sql_help.c:5716
 msgid "rebuild indexes"
 msgstr "重新建构索引"
 
 # sql_help.h:361
-#: sql_help.c:5534
+#: sql_help.c:5722
 msgid "destroy a previously defined savepoint"
 msgstr "删除先前建立的储存点(Savepoint)"
 
 # sql_help.h:365
-#: sql_help.c:5539
+#: sql_help.c:5728
 msgid "restore the value of a run-time parameter to the default value"
 msgstr "将执行时期参数还原成预设值"
 
 # sql_help.h:369
-#: sql_help.c:5544
+#: sql_help.c:5734
 msgid "remove access privileges"
 msgstr "移除存取权限"
 
-#: sql_help.c:5554
+#: sql_help.c:5746
 msgid "cancel a transaction that was earlier prepared for two-phase commit"
 msgstr "取消一个可以为两阶段提交容易配置的事务"
 
 # sql_help.h:377
-#: sql_help.c:5559
+#: sql_help.c:5752
 msgid "roll back to a savepoint"
 msgstr "还原至一个储存点(Savepoint)"
 
 # sql_help.h:381
-#: sql_help.c:5564
+#: sql_help.c:5758
 msgid "define a new savepoint within the current transaction"
 msgstr "在当前事务中建立新的储存点(Savepoint)"
 
 # sql_help.h:117
-#: sql_help.c:5569
+#: sql_help.c:5764
 msgid "define or change a security label applied to an object"
 msgstr "定义或更改一个对象的安全标签"
 
 # sql_help.h:385
-#: sql_help.c:5574 sql_help.c:5619 sql_help.c:5649
+#: sql_help.c:5770 sql_help.c:5824 sql_help.c:5860
 msgid "retrieve rows from a table or view"
 msgstr "从数据表或视图中读取数据"
 
 # sql_help.h:393
-#: sql_help.c:5584
+#: sql_help.c:5782
 msgid "change a run-time parameter"
 msgstr "更改一个运行期参数"
 
 # sql_help.h:397
-#: sql_help.c:5589
+#: sql_help.c:5788
 msgid "set constraint check timing for the current transaction"
 msgstr "为当前事务设定约束限制检查的时间模式"
 
 # sql_help.h:405
-#: sql_help.c:5594
+#: sql_help.c:5794
 msgid "set the current user identifier of the current session"
 msgstr "为当前会话的当前用户的设置身份标识"
 
 # sql_help.h:401
-#: sql_help.c:5599
+#: sql_help.c:5800
 msgid "set the session user identifier and the current user identifier of the current session"
 msgstr "为当前会话设置会话用户标识符和当前用户标识符"
 
 # sql_help.h:405
-#: sql_help.c:5604
+#: sql_help.c:5806
 msgid "set the characteristics of the current transaction"
 msgstr "设定当前事务属性"
 
 # sql_help.h:409
-#: sql_help.c:5609
+#: sql_help.c:5812
 msgid "show the value of a run-time parameter"
 msgstr "显示运行期的参数值"
 
 # sql_help.h:425
-#: sql_help.c:5624
+#: sql_help.c:5830
 msgid "empty a table or set of tables"
 msgstr "空的数据表或数据表集合"
 
 # sql_help.h:421
-#: sql_help.c:5629
+#: sql_help.c:5836
 msgid "stop listening for a notification"
 msgstr "停止监听通知"
 
 # sql_help.h:425
-#: sql_help.c:5634
+#: sql_help.c:5842
 msgid "update rows of a table"
 msgstr "更新数据表中的数据列"
 
 # sql_help.h:429
-#: sql_help.c:5639
+#: sql_help.c:5848
 msgid "garbage-collect and optionally analyze a database"
 msgstr "垃圾收集(GC)并选择地分析数据库"
 
-#: sql_help.c:5644
+#: sql_help.c:5854
 msgid "compute a set of rows"
 msgstr "计算一个数据列的集合"
 
-#: startup.c:190
-#, c-format
-msgid "%s: -1 can only be used in non-interactive mode\n"
+#: startup.c:216
+#, fuzzy, c-format
+#| msgid "%s: -1 can only be used in non-interactive mode\n"
+msgid "-1 can only be used in non-interactive mode"
 msgstr "%s: -1 只能用于非交互模式下\n"
 
-# command.c:1148
-#: startup.c:305
+#: startup.c:303
+#, c-format
+msgid "could not connect to server: %s"
+msgstr "无法连接到服务器:%s"
+
+#: startup.c:331
 #, c-format
-msgid "%s: could not open log file \"%s\": %s\n"
-msgstr "%s:无法开启日志文件 \"%s\":%s\n"
+msgid "could not open log file \"%s\": %m"
+msgstr "无法打开事务日志文件 \"%s\": %m"
 
-#: startup.c:412
+#: startup.c:442
 #, c-format
 msgid ""
 "Type \"help\" for help.\n"
@@ -6865,60 +7212,73 @@ msgstr ""
 "\n"
 
 # startup.c:446
-#: startup.c:561
-#, c-format
-msgid "%s: could not set printing parameter \"%s\"\n"
+#: startup.c:592
+#, fuzzy, c-format
+#| msgid "%s: could not set printing parameter \"%s\"\n"
+msgid "could not set printing parameter \"%s\""
 msgstr "%s:无法设定列打印参数 \"%s\"\n"
 
 # startup.c:533
 # startup.c:539
-#: startup.c:663
+#: startup.c:697
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "尝试 \"%s --help\" 以得到更多信息。\n"
 
 # startup.c:557
-#: startup.c:680
-#, c-format
-msgid "%s: warning: extra command-line argument \"%s\" ignored\n"
+#: startup.c:714
+#, fuzzy, c-format
+#| msgid "%s: warning: extra command-line argument \"%s\" ignored\n"
+msgid "extra command-line argument \"%s\" ignored"
 msgstr "%s:警告:忽略多余的命令行参数 \"%s\"\n"
 
-#: startup.c:729
-#, c-format
-msgid "%s: could not find own program executable\n"
+#: startup.c:763
+#, fuzzy, c-format
+#| msgid "%s: could not find own program executable\n"
+msgid "could not find own program executable"
 msgstr "%s: 找不到可执行文件\n"
 
-#: tab-complete.c:4543
-#, c-format
+#: tab-complete.c:4380
+#, fuzzy, c-format
+#| msgid ""
+#| "tab completion query failed: %s\n"
+#| "Query was:\n"
+#| "%s\n"
 msgid ""
 "tab completion query failed: %s\n"
 "Query was:\n"
-"%s\n"
+"%s"
 msgstr ""
 "自动补全查询失败: %s\n"
 "查询是:\n"
 "%s\n"
 
-#: variables.c:139
-#, c-format
-msgid "unrecognized value \"%s\" for \"%s\": Boolean expected\n"
+#: variables.c:141
+#, fuzzy, c-format
+#| msgid "unrecognized value \"%s\" for \"%s\": Boolean expected\n"
+msgid "unrecognized value \"%s\" for \"%s\": Boolean expected"
 msgstr "\"%2$s\"的不能识别的值\"%1$s\":应为布尔值\n"
 
-#: variables.c:176
-#, c-format
-msgid "invalid value \"%s\" for \"%s\": integer expected\n"
+#: variables.c:178
+#, fuzzy, c-format
+#| msgid "invalid value \"%s\" for \"%s\": integer expected\n"
+msgid "invalid value \"%s\" for \"%s\": integer expected"
 msgstr "\"%s\"的值\"%s\"无效: 应为整数\n"
 
-#: variables.c:224
-#, c-format
-msgid "invalid variable name: \"%s\"\n"
+#: variables.c:226
+#, fuzzy, c-format
+#| msgid "invalid variable name: \"%s\"\n"
+msgid "invalid variable name: \"%s\""
 msgstr "无效的语言环境名称: \"%s\"\n"
 
-#: variables.c:393
-#, c-format
+#: variables.c:395
+#, fuzzy, c-format
+#| msgid ""
+#| "unrecognized value \"%s\" for \"%s\"\n"
+#| "Available values are: %s.\n"
 msgid ""
 "unrecognized value \"%s\" for \"%s\"\n"
-"Available values are: %s.\n"
+"Available values are: %s."
 msgstr ""
 "\"%2$s\"的不能识别的值\"%1$s\"\n"
 "可用值为\"%3$s\".\n"