summaryrefslogtreecommitdiffstats
path: root/src/bin
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/bin/pg_ctl/pg_ctl.c4
-rw-r--r--src/bin/pg_dump/pg_dump.c52
-rw-r--r--src/bin/pg_dump/pg_dump.h3
-rw-r--r--src/bin/pg_dump/po/ru.po162
-rw-r--r--src/bin/pg_dump/t/002_pg_dump.pl6
-rw-r--r--src/bin/pg_rewind/po/ru.po64
-rw-r--r--src/bin/pg_rewind/t/003_extrafiles.pl13
-rw-r--r--src/bin/pg_upgrade/po/ru.po15
-rw-r--r--src/bin/pg_upgrade/po/uk.po258
-rw-r--r--src/bin/pg_upgrade/t/002_pg_upgrade.pl14
-rw-r--r--src/bin/pg_waldump/po/de.po6
-rw-r--r--src/bin/pg_waldump/po/ru.po64
-rw-r--r--src/bin/pgbench/pgbench.c15
-rw-r--r--src/bin/pgbench/t/001_pgbench_with_server.pl30
-rw-r--r--src/bin/psql/po/ja.po4
-rw-r--r--src/bin/psql/po/ru.po8
-rw-r--r--src/bin/scripts/po/uk.po166
17 files changed, 488 insertions, 396 deletions
diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c
index dd78e5b..f58320b 100644
--- a/src/bin/pg_ctl/pg_ctl.c
+++ b/src/bin/pg_ctl/pg_ctl.c
@@ -559,11 +559,11 @@ start_postmaster(void)
else
close(fd);
- cmd = psprintf("\"%s\" /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"",
+ cmd = psprintf("\"%s\" /D /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"",
comspec, exec_path, pgdata_opt, post_opts, DEVNULL, log_file);
}
else
- cmd = psprintf("\"%s\" /C \"\"%s\" %s%s < \"%s\" 2>&1\"",
+ cmd = psprintf("\"%s\" /D /C \"\"%s\" %s%s < \"%s\" 2>&1\"",
comspec, exec_path, pgdata_opt, post_opts, DEVNULL);
if (!CreateRestrictedProcess(cmd, &pi, false))
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 5e7317b..cf34bfd 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -1576,13 +1576,10 @@ checkExtensionMembership(DumpableObject *dobj, Archive *fout)
addObjectDependency(dobj, ext->dobj.dumpId);
/*
- * In 9.6 and above, mark the member object to have any non-initial ACL,
- * policies, and security labels dumped.
- *
- * Note that any initial ACLs (see pg_init_privs) will be removed when we
- * extract the information about the object. We don't provide support for
- * initial policies and security labels and it seems unlikely for those to
- * ever exist, but we may have to revisit this later.
+ * In 9.6 and above, mark the member object to have any non-initial ACLs
+ * dumped. (Any initial ACLs will be removed later, using data from
+ * pg_init_privs, so that we'll dump only the delta from the extension's
+ * initial setup.)
*
* Prior to 9.6, we do not include any extension member components.
*
@@ -1590,6 +1587,13 @@ checkExtensionMembership(DumpableObject *dobj, Archive *fout)
* individually, since the idea is to exactly reproduce the database
* contents rather than replace the extension contents with something
* different.
+ *
+ * Note: it might be interesting someday to implement storage and delta
+ * dumping of extension members' RLS policies and/or security labels.
+ * However there is a pitfall for RLS policies: trying to dump them
+ * requires getting a lock on their tables, and the calling user might not
+ * have privileges for that. We need no lock to examine a table's ACLs,
+ * so the current feature doesn't have a problem of that sort.
*/
if (fout->dopt->binary_upgrade)
dobj->dump = ext->dobj.dump;
@@ -1598,9 +1602,7 @@ checkExtensionMembership(DumpableObject *dobj, Archive *fout)
if (fout->remoteVersion < 90600)
dobj->dump = DUMP_COMPONENT_NONE;
else
- dobj->dump = ext->dobj.dump_contains & (DUMP_COMPONENT_ACL |
- DUMP_COMPONENT_SECLABEL |
- DUMP_COMPONENT_POLICY);
+ dobj->dump = ext->dobj.dump_contains & (DUMP_COMPONENT_ACL);
}
return true;
@@ -1932,6 +1934,26 @@ selectDumpablePublicationObject(DumpableObject *dobj, Archive *fout)
}
/*
+ * selectDumpableStatisticsObject: policy-setting subroutine
+ * Mark an extended statistics object as to be dumped or not
+ *
+ * We dump an extended statistics object if the schema it's in and the table
+ * it's for are being dumped. (This'll need more thought if statistics
+ * objects ever support cross-table stats.)
+ */
+static void
+selectDumpableStatisticsObject(StatsExtInfo *sobj, Archive *fout)
+{
+ if (checkExtensionMembership(&sobj->dobj, fout))
+ return; /* extension membership overrides all else */
+
+ sobj->dobj.dump = sobj->dobj.namespace->dobj.dump_contains;
+ if (sobj->stattable == NULL ||
+ !(sobj->stattable->dobj.dump & DUMP_COMPONENT_DEFINITION))
+ sobj->dobj.dump = DUMP_COMPONENT_NONE;
+}
+
+/*
* selectDumpableObject: policy-setting subroutine
* Mark a generic dumpable object as to be dumped or not
*
@@ -7094,6 +7116,7 @@ getExtendedStatistics(Archive *fout)
int i_stxname;
int i_stxnamespace;
int i_stxowner;
+ int i_stxrelid;
int i_stattarget;
int i;
@@ -7105,11 +7128,11 @@ getExtendedStatistics(Archive *fout)
if (fout->remoteVersion < 130000)
appendPQExpBuffer(query, "SELECT tableoid, oid, stxname, "
- "stxnamespace, stxowner, (-1) AS stxstattarget "
+ "stxnamespace, stxowner, stxrelid, (-1) AS stxstattarget "
"FROM pg_catalog.pg_statistic_ext");
else
appendPQExpBuffer(query, "SELECT tableoid, oid, stxname, "
- "stxnamespace, stxowner, stxstattarget "
+ "stxnamespace, stxowner, stxrelid, stxstattarget "
"FROM pg_catalog.pg_statistic_ext");
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -7121,6 +7144,7 @@ getExtendedStatistics(Archive *fout)
i_stxname = PQfnumber(res, "stxname");
i_stxnamespace = PQfnumber(res, "stxnamespace");
i_stxowner = PQfnumber(res, "stxowner");
+ i_stxrelid = PQfnumber(res, "stxrelid");
i_stattarget = PQfnumber(res, "stxstattarget");
statsextinfo = (StatsExtInfo *) pg_malloc(ntups * sizeof(StatsExtInfo));
@@ -7135,10 +7159,12 @@ getExtendedStatistics(Archive *fout)
statsextinfo[i].dobj.namespace =
findNamespace(atooid(PQgetvalue(res, i, i_stxnamespace)));
statsextinfo[i].rolname = getRoleName(PQgetvalue(res, i, i_stxowner));
+ statsextinfo[i].stattable =
+ findTableByOid(atooid(PQgetvalue(res, i, i_stxrelid)));
statsextinfo[i].stattarget = atoi(PQgetvalue(res, i, i_stattarget));
/* Decide whether we want to dump it */
- selectDumpableObject(&(statsextinfo[i].dobj), fout);
+ selectDumpableStatisticsObject(&(statsextinfo[i]), fout);
}
PQclear(res);
diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h
index 0cdcc01..18c9517 100644
--- a/src/bin/pg_dump/pg_dump.h
+++ b/src/bin/pg_dump/pg_dump.h
@@ -418,7 +418,8 @@ typedef struct _indexAttachInfo
typedef struct _statsExtInfo
{
DumpableObject dobj;
- const char *rolname;
+ const char *rolname; /* owner */
+ TableInfo *stattable; /* link to table the stats are for */
int stattarget; /* statistics target */
} StatsExtInfo;
diff --git a/src/bin/pg_dump/po/ru.po b/src/bin/pg_dump/po/ru.po
index 0738e01..c0dd159 100644
--- a/src/bin/pg_dump/po/ru.po
+++ b/src/bin/pg_dump/po/ru.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pg_dump (PostgreSQL current)\n"
"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
-"POT-Creation-Date: 2023-11-03 09:09+0300\n"
+"POT-Creation-Date: 2024-02-02 18:11+0300\n"
"PO-Revision-Date: 2023-08-30 14:18+0300\n"
"Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n"
"Language-Team: Russian <pgsql-ru-general@postgresql.org>\n"
@@ -629,7 +629,7 @@ msgstr "восстановление большого объекта с OID %u"
msgid "could not create large object %u: %s"
msgstr "не удалось создать большой объект %u: %s"
-#: pg_backup_archiver.c:1375 pg_dump.c:3607
+#: pg_backup_archiver.c:1375 pg_dump.c:3629
#, c-format
msgid "could not open large object %u: %s"
msgstr "не удалось открыть большой объект %u: %s"
@@ -1113,7 +1113,7 @@ msgstr "ошибка в PQputCopyEnd: %s"
msgid "COPY failed for table \"%s\": %s"
msgstr "сбой команды COPY для таблицы \"%s\": %s"
-#: pg_backup_db.c:522 pg_dump.c:2106
+#: pg_backup_db.c:522 pg_dump.c:2128
#, c-format
msgid "unexpected extra results during COPY of table \"%s\""
msgstr "неожиданные лишние результаты получены при COPY для таблицы \"%s\""
@@ -1918,115 +1918,115 @@ msgstr "В данный момент вы не подключены к базе
msgid "cross-database references are not implemented: %s"
msgstr "ссылки между базами не реализованы: %s"
-#: pg_dump.c:1981
+#: pg_dump.c:2003
#, c-format
msgid "dumping contents of table \"%s.%s\""
msgstr "выгрузка содержимого таблицы \"%s.%s\""
-#: pg_dump.c:2087
+#: pg_dump.c:2109
#, c-format
msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed."
msgstr "Ошибка выгрузки таблицы \"%s\": сбой в PQgetCopyData()."
-#: pg_dump.c:2088 pg_dump.c:2098
+#: pg_dump.c:2110 pg_dump.c:2120
#, c-format
msgid "Error message from server: %s"
msgstr "Сообщение об ошибке с сервера: %s"
# skip-rule: language-mix
-#: pg_dump.c:2089 pg_dump.c:2099
+#: pg_dump.c:2111 pg_dump.c:2121
#, c-format
msgid "Command was: %s"
msgstr "Выполнялась команда: %s"
-#: pg_dump.c:2097
+#: pg_dump.c:2119
#, c-format
msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed."
msgstr "Ошибка выгрузки таблицы \"%s\": сбой в PQgetResult()."
-#: pg_dump.c:2179
+#: pg_dump.c:2201
#, c-format
msgid "wrong number of fields retrieved from table \"%s\""
msgstr "из таблицы \"%s\" получено неверное количество полей"
-#: pg_dump.c:2875
+#: pg_dump.c:2897
#, c-format
msgid "saving database definition"
msgstr "сохранение определения базы данных"
-#: pg_dump.c:2971
+#: pg_dump.c:2993
#, c-format
msgid "unrecognized locale provider: %s"
msgstr "нераспознанный провайдер локали: %s"
-#: pg_dump.c:3317
+#: pg_dump.c:3339
#, c-format
msgid "saving encoding = %s"
msgstr "сохранение кодировки (%s)"
-#: pg_dump.c:3342
+#: pg_dump.c:3364
#, c-format
msgid "saving standard_conforming_strings = %s"
msgstr "сохранение standard_conforming_strings (%s)"
-#: pg_dump.c:3381
+#: pg_dump.c:3403
#, c-format
msgid "could not parse result of current_schemas()"
msgstr "не удалось разобрать результат current_schemas()"
-#: pg_dump.c:3400
+#: pg_dump.c:3422
#, c-format
msgid "saving search_path = %s"
msgstr "сохранение search_path = %s"
-#: pg_dump.c:3438
+#: pg_dump.c:3460
#, c-format
msgid "reading large objects"
msgstr "чтение больших объектов"
-#: pg_dump.c:3576
+#: pg_dump.c:3598
#, c-format
msgid "saving large objects"
msgstr "сохранение больших объектов"
-#: pg_dump.c:3617
+#: pg_dump.c:3639
#, c-format
msgid "error reading large object %u: %s"
msgstr "ошибка чтения большого объекта %u: %s"
-#: pg_dump.c:3723
+#: pg_dump.c:3745
#, c-format
msgid "reading row-level security policies"
msgstr "чтение политик защиты на уровне строк"
-#: pg_dump.c:3864
+#: pg_dump.c:3886
#, c-format
msgid "unexpected policy command type: %c"
msgstr "нераспознанный тип команды в политике: %c"
-#: pg_dump.c:4314 pg_dump.c:4632 pg_dump.c:11835 pg_dump.c:17724
-#: pg_dump.c:17726 pg_dump.c:18347
+#: pg_dump.c:4336 pg_dump.c:4654 pg_dump.c:11861 pg_dump.c:17750
+#: pg_dump.c:17752 pg_dump.c:18373
#, c-format
msgid "could not parse %s array"
msgstr "не удалось разобрать массив %s"
-#: pg_dump.c:4500
+#: pg_dump.c:4522
#, c-format
msgid "subscriptions not dumped because current user is not a superuser"
msgstr ""
"подписки не выгружены, так как текущий пользователь не суперпользователь"
-#: pg_dump.c:5014
+#: pg_dump.c:5036
#, c-format
msgid "could not find parent extension for %s %s"
msgstr "не удалось найти родительское расширение для %s %s"
-#: pg_dump.c:5159
+#: pg_dump.c:5181
#, c-format
msgid "schema with OID %u does not exist"
msgstr "схема с OID %u не существует"
-#: pg_dump.c:6615 pg_dump.c:16988
+#: pg_dump.c:6637 pg_dump.c:17014
#, c-format
msgid ""
"failed sanity check, parent table with OID %u of sequence with OID %u not "
@@ -2035,7 +2035,7 @@ msgstr ""
"нарушение целостности: по OID %u не удалось найти родительскую таблицу "
"последовательности с OID %u"
-#: pg_dump.c:6758
+#: pg_dump.c:6780
#, c-format
msgid ""
"failed sanity check, table OID %u appearing in pg_partitioned_table not found"
@@ -2043,18 +2043,18 @@ msgstr ""
"нарушение целостности: таблица с OID %u, фигурирующим в "
"pg_partitioned_table, не найдена"
-#: pg_dump.c:6989 pg_dump.c:7256 pg_dump.c:7727 pg_dump.c:8394 pg_dump.c:8515
-#: pg_dump.c:8669
+#: pg_dump.c:7011 pg_dump.c:7282 pg_dump.c:7753 pg_dump.c:8420 pg_dump.c:8541
+#: pg_dump.c:8695
#, c-format
msgid "unrecognized table OID %u"
msgstr "нераспознанный OID таблицы %u"
-#: pg_dump.c:6993
+#: pg_dump.c:7015
#, c-format
msgid "unexpected index data for table \"%s\""
msgstr "неожиданно получены данные индекса для таблицы \"%s\""
-#: pg_dump.c:7488
+#: pg_dump.c:7514
#, c-format
msgid ""
"failed sanity check, parent table with OID %u of pg_rewrite entry with OID "
@@ -2063,7 +2063,7 @@ msgstr ""
"нарушение целостности: по OID %u не удалось найти родительскую таблицу для "
"записи pg_rewrite с OID %u"
-#: pg_dump.c:7779
+#: pg_dump.c:7805
#, c-format
msgid ""
"query produced null referenced table name for foreign key trigger \"%s\" on "
@@ -2072,32 +2072,32 @@ msgstr ""
"запрос выдал NULL вместо имени целевой таблицы для триггера внешнего ключа "
"\"%s\" в таблице \"%s\" (OID целевой таблицы: %u)"
-#: pg_dump.c:8398
+#: pg_dump.c:8424
#, c-format
msgid "unexpected column data for table \"%s\""
msgstr "неожиданно получены данные столбцов для таблицы \"%s\""
-#: pg_dump.c:8428
+#: pg_dump.c:8454
#, c-format
msgid "invalid column numbering in table \"%s\""
msgstr "неверная нумерация столбцов в таблице \"%s\""
-#: pg_dump.c:8477
+#: pg_dump.c:8503
#, c-format
msgid "finding table default expressions"
msgstr "поиск выражений по умолчанию для таблиц"
-#: pg_dump.c:8519
+#: pg_dump.c:8545
#, c-format
msgid "invalid adnum value %d for table \"%s\""
msgstr "неверное значение adnum (%d) в таблице \"%s\""
-#: pg_dump.c:8619
+#: pg_dump.c:8645
#, c-format
msgid "finding table check constraints"
msgstr "поиск ограничений-проверок для таблиц"
-#: pg_dump.c:8673
+#: pg_dump.c:8699
#, c-format
msgid "expected %d check constraint on table \"%s\" but found %d"
msgid_plural "expected %d check constraints on table \"%s\" but found %d"
@@ -2108,54 +2108,54 @@ msgstr[1] ""
msgstr[2] ""
"ожидалось %d ограничений-проверок для таблицы \"%s\", но найдено: %d"
-#: pg_dump.c:8677
+#: pg_dump.c:8703
#, c-format
msgid "The system catalogs might be corrupted."
msgstr "Возможно, повреждены системные каталоги."
-#: pg_dump.c:9367
+#: pg_dump.c:9393
#, c-format
msgid "role with OID %u does not exist"
msgstr "роль с OID %u не существует"
-#: pg_dump.c:9479 pg_dump.c:9508
+#: pg_dump.c:9505 pg_dump.c:9534
#, c-format
msgid "unsupported pg_init_privs entry: %u %u %d"
msgstr "неподдерживаемая запись в pg_init_privs: %u %u %d"
-#: pg_dump.c:10329
+#: pg_dump.c:10355
#, c-format
msgid "typtype of data type \"%s\" appears to be invalid"
msgstr "у типа данных \"%s\" по-видимому неправильный тип типа"
# TO REVEIW
-#: pg_dump.c:11904
+#: pg_dump.c:11930
#, c-format
msgid "unrecognized provolatile value for function \"%s\""
msgstr "недопустимое значение provolatile для функции \"%s\""
# TO REVEIW
-#: pg_dump.c:11954 pg_dump.c:13817
+#: pg_dump.c:11980 pg_dump.c:13843
#, c-format
msgid "unrecognized proparallel value for function \"%s\""
msgstr "недопустимое значение proparallel для функции \"%s\""
-#: pg_dump.c:12086 pg_dump.c:12192 pg_dump.c:12199
+#: pg_dump.c:12112 pg_dump.c:12218 pg_dump.c:12225
#, c-format
msgid "could not find function definition for function with OID %u"
msgstr "не удалось найти определение функции для функции с OID %u"
-#: pg_dump.c:12125
+#: pg_dump.c:12151
#, c-format
msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field"
msgstr "неприемлемое значение в поле pg_cast.castfunc или pg_cast.castmethod"
-#: pg_dump.c:12128
+#: pg_dump.c:12154
#, c-format
msgid "bogus value in pg_cast.castmethod field"
msgstr "неприемлемое значение в поле pg_cast.castmethod"
-#: pg_dump.c:12218
+#: pg_dump.c:12244
#, c-format
msgid ""
"bogus transform definition, at least one of trffromsql and trftosql should "
@@ -2164,62 +2164,62 @@ msgstr ""
"неприемлемое определение преобразования (trffromsql или trftosql должно быть "
"ненулевым)"
-#: pg_dump.c:12235
+#: pg_dump.c:12261
#, c-format
msgid "bogus value in pg_transform.trffromsql field"
msgstr "неприемлемое значение в поле pg_transform.trffromsql"
-#: pg_dump.c:12256
+#: pg_dump.c:12282
#, c-format
msgid "bogus value in pg_transform.trftosql field"
msgstr "неприемлемое значение в поле pg_transform.trftosql"
-#: pg_dump.c:12401
+#: pg_dump.c:12427
#, c-format
msgid "postfix operators are not supported anymore (operator \"%s\")"
msgstr "постфиксные операторы больше не поддерживаются (оператор \"%s\")"
-#: pg_dump.c:12571
+#: pg_dump.c:12597
#, c-format
msgid "could not find operator with OID %s"
msgstr "оператор с OID %s не найден"
-#: pg_dump.c:12639
+#: pg_dump.c:12665
#, c-format
msgid "invalid type \"%c\" of access method \"%s\""
msgstr "неверный тип \"%c\" метода доступа \"%s\""
-#: pg_dump.c:13293 pg_dump.c:13346
+#: pg_dump.c:13319 pg_dump.c:13372
#, c-format
msgid "unrecognized collation provider: %s"
msgstr "нераспознанный провайдер правил сортировки: %s"
-#: pg_dump.c:13302 pg_dump.c:13311 pg_dump.c:13321 pg_dump.c:13330
+#: pg_dump.c:13328 pg_dump.c:13337 pg_dump.c:13347 pg_dump.c:13356
#, c-format
msgid "invalid collation \"%s\""
msgstr "неверное правило сортировки \"%s\""
-#: pg_dump.c:13736
+#: pg_dump.c:13762
#, c-format
msgid "unrecognized aggfinalmodify value for aggregate \"%s\""
msgstr "нераспознанное значение aggfinalmodify для агрегата \"%s\""
-#: pg_dump.c:13792
+#: pg_dump.c:13818
#, c-format
msgid "unrecognized aggmfinalmodify value for aggregate \"%s\""
msgstr "нераспознанное значение aggmfinalmodify для агрегата \"%s\""
-#: pg_dump.c:14510
+#: pg_dump.c:14536
#, c-format
msgid "unrecognized object type in default privileges: %d"
msgstr "нераспознанный тип объекта в определении прав по умолчанию: %d"
-#: pg_dump.c:14526
+#: pg_dump.c:14552
#, c-format
msgid "could not parse default ACL list (%s)"
msgstr "не удалось разобрать список прав по умолчанию (%s)"
-#: pg_dump.c:14608
+#: pg_dump.c:14634
#, c-format
msgid ""
"could not parse initial ACL list (%s) or default (%s) for object \"%s\" (%s)"
@@ -2227,20 +2227,20 @@ msgstr ""
"не удалось разобрать изначальный список ACL (%s) или ACL по умолчанию (%s) "
"для объекта \"%s\" (%s)"
-#: pg_dump.c:14633
+#: pg_dump.c:14659
#, c-format
msgid "could not parse ACL list (%s) or default (%s) for object \"%s\" (%s)"
msgstr ""
"не удалось разобрать список ACL (%s) или ACL по умолчанию (%s) для объекта "
"\"%s\" (%s)"
-#: pg_dump.c:15171
+#: pg_dump.c:15197
#, c-format
msgid "query to obtain definition of view \"%s\" returned no data"
msgstr ""
"запрос на получение определения представления \"%s\" не возвратил данные"
-#: pg_dump.c:15174
+#: pg_dump.c:15200
#, c-format
msgid ""
"query to obtain definition of view \"%s\" returned more than one definition"
@@ -2248,49 +2248,49 @@ msgstr ""
"запрос на получение определения представления \"%s\" возвратил несколько "
"определений"
-#: pg_dump.c:15181
+#: pg_dump.c:15207
#, c-format
msgid "definition of view \"%s\" appears to be empty (length zero)"
msgstr "определение представления \"%s\" пустое (длина равна нулю)"
-#: pg_dump.c:15265
+#: pg_dump.c:15291
#, c-format
msgid "WITH OIDS is not supported anymore (table \"%s\")"
msgstr "свойство WITH OIDS больше не поддерживается (таблица \"%s\")"
-#: pg_dump.c:16194
+#: pg_dump.c:16220
#, c-format
msgid "invalid column number %d for table \"%s\""
msgstr "неверный номер столбца %d для таблицы \"%s\""
-#: pg_dump.c:16272
+#: pg_dump.c:16298
#, c-format
msgid "could not parse index statistic columns"
msgstr "не удалось разобрать столбцы статистики в индексе"
-#: pg_dump.c:16274
+#: pg_dump.c:16300
#, c-format
msgid "could not parse index statistic values"
msgstr "не удалось разобрать значения статистики в индексе"
-#: pg_dump.c:16276
+#: pg_dump.c:16302
#, c-format
msgid "mismatched number of columns and values for index statistics"
msgstr ""
"столбцы, задающие статистику индекса, не соответствуют значениям по "
"количеству"
-#: pg_dump.c:16494
+#: pg_dump.c:16520
#, c-format
msgid "missing index for constraint \"%s\""
msgstr "отсутствует индекс для ограничения \"%s\""
-#: pg_dump.c:16722
+#: pg_dump.c:16748
#, c-format
msgid "unrecognized constraint type: %c"
msgstr "нераспознанный тип ограничения: %c"
-#: pg_dump.c:16823 pg_dump.c:17052
+#: pg_dump.c:16849 pg_dump.c:17078
#, c-format
msgid "query to get data of sequence \"%s\" returned %d row (expected 1)"
msgid_plural ""
@@ -2305,22 +2305,22 @@ msgstr[2] ""
"запрос на получение данных последовательности \"%s\" вернул %d строк "
"(ожидалась 1)"
-#: pg_dump.c:16855
+#: pg_dump.c:16881
#, c-format
msgid "unrecognized sequence type: %s"
msgstr "нераспознанный тип последовательности: %s"
-#: pg_dump.c:17144
+#: pg_dump.c:17170
#, c-format
msgid "unexpected tgtype value: %d"
msgstr "неожиданное значение tgtype: %d"
-#: pg_dump.c:17216
+#: pg_dump.c:17242
#, c-format
msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\""
msgstr "неверная строка аргументов (%s) для триггера \"%s\" таблицы \"%s\""
-#: pg_dump.c:17485
+#: pg_dump.c:17511
#, c-format
msgid ""
"query to get rule \"%s\" for table \"%s\" failed: wrong number of rows "
@@ -2329,27 +2329,27 @@ msgstr ""
"запрос на получение правила \"%s\" для таблицы \"%s\" возвратил неверное "
"число строк"
-#: pg_dump.c:17638
+#: pg_dump.c:17664
#, c-format
msgid "could not find referenced extension %u"
msgstr "не удалось найти упомянутое расширение %u"
-#: pg_dump.c:17728
+#: pg_dump.c:17754
#, c-format
msgid "mismatched number of configurations and conditions for extension"
msgstr "конфигурации расширения не соответствуют условиям по количеству"
-#: pg_dump.c:17860
+#: pg_dump.c:17886
#, c-format
msgid "reading dependency data"
msgstr "чтение информации о зависимостях"
-#: pg_dump.c:17946
+#: pg_dump.c:17972
#, c-format
msgid "no referencing object %u %u"
msgstr "нет подчинённого объекта %u %u"
-#: pg_dump.c:17957
+#: pg_dump.c:17983
#, c-format
msgid "no referenced object %u %u"
msgstr "нет вышестоящего объекта %u %u"
diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl
index 6006276..d012b74 100644
--- a/src/bin/pg_dump/t/002_pg_dump.pl
+++ b/src/bin/pg_dump/t/002_pg_dump.pl
@@ -3136,13 +3136,13 @@ my %tests = (
'CREATE STATISTICS extended_stats_no_options' => {
create_order => 97,
create_sql => 'CREATE STATISTICS dump_test.test_ext_stats_no_options
- ON col1, col2 FROM dump_test.test_fifth_table',
+ ON col1, col2 FROM dump_test.test_table',
regexp => qr/^
- \QCREATE STATISTICS dump_test.test_ext_stats_no_options ON col1, col2 FROM dump_test.test_fifth_table;\E
+ \QCREATE STATISTICS dump_test.test_ext_stats_no_options ON col1, col2 FROM dump_test.test_table;\E
/xms,
like =>
{ %full_runs, %dump_test_schema_runs, section_post_data => 1, },
- unlike => { exclude_dump_test_schema => 1, },
+ unlike => { exclude_dump_test_schema => 1, exclude_test_table => 1, },
},
'CREATE STATISTICS extended_stats_options' => {
diff --git a/src/bin/pg_rewind/po/ru.po b/src/bin/pg_rewind/po/ru.po
index f41d400..4c95c7c 100644
--- a/src/bin/pg_rewind/po/ru.po
+++ b/src/bin/pg_rewind/po/ru.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pg_rewind (PostgreSQL current)\n"
"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
-"POT-Creation-Date: 2023-11-03 09:09+0300\n"
+"POT-Creation-Date: 2024-02-02 18:11+0300\n"
"PO-Revision-Date: 2023-08-30 15:22+0300\n"
"Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n"
"Language-Team: Russian <pgsql-ru-general@postgresql.org>\n"
@@ -904,59 +904,59 @@ msgid "Timeline IDs must be less than child timeline's ID."
msgstr ""
"Идентификаторы линий времени должны быть меньше идентификатора линии-потомка."
-#: xlogreader.c:592
+#: xlogreader.c:620
#, c-format
msgid "invalid record offset at %X/%X"
msgstr "неверное смещение записи в позиции %X/%X"
-#: xlogreader.c:600
+#: xlogreader.c:628
#, c-format
msgid "contrecord is requested by %X/%X"
msgstr "в позиции %X/%X запрошено продолжение записи"
-#: xlogreader.c:641 xlogreader.c:1106
+#: xlogreader.c:669 xlogreader.c:1134
#, c-format
msgid "invalid record length at %X/%X: wanted %u, got %u"
msgstr "неверная длина записи в позиции %X/%X: ожидалось %u, получено %u"
-#: xlogreader.c:730
+#: xlogreader.c:758
#, c-format
msgid "there is no contrecord flag at %X/%X"
msgstr "нет флага contrecord в позиции %X/%X"
-#: xlogreader.c:743
+#: xlogreader.c:771
#, c-format
msgid "invalid contrecord length %u (expected %lld) at %X/%X"
msgstr "неверная длина contrecord: %u (ожидалась %lld) в позиции %X/%X"
-#: xlogreader.c:1114
+#: xlogreader.c:1142
#, c-format
msgid "invalid resource manager ID %u at %X/%X"
msgstr "неверный ID менеджера ресурсов %u в позиции %X/%X"
-#: xlogreader.c:1127 xlogreader.c:1143
+#: xlogreader.c:1155 xlogreader.c:1171
#, c-format
msgid "record with incorrect prev-link %X/%X at %X/%X"
msgstr "запись с неверной ссылкой назад %X/%X в позиции %X/%X"
-#: xlogreader.c:1181
+#: xlogreader.c:1209
#, c-format
msgid "incorrect resource manager data checksum in record at %X/%X"
msgstr ""
"некорректная контрольная сумма данных менеджера ресурсов в записи в позиции "
"%X/%X"
-#: xlogreader.c:1218
+#: xlogreader.c:1246
#, c-format
msgid "invalid magic number %04X in log segment %s, offset %u"
msgstr "неверное магическое число %04X в сегменте журнала %s, смещение %u"
-#: xlogreader.c:1232 xlogreader.c:1273
+#: xlogreader.c:1260 xlogreader.c:1301
#, c-format
msgid "invalid info bits %04X in log segment %s, offset %u"
msgstr "неверные информационные биты %04X в сегменте журнала %s, смещение %u"
-#: xlogreader.c:1247
+#: xlogreader.c:1275
#, c-format
msgid ""
"WAL file is from different database system: WAL file database system "
@@ -965,7 +965,7 @@ msgstr ""
"файл WAL принадлежит другой СУБД: в нём указан идентификатор системы БД "
"%llu, а идентификатор системы pg_control: %llu"
-#: xlogreader.c:1255
+#: xlogreader.c:1283
#, c-format
msgid ""
"WAL file is from different database system: incorrect segment size in page "
@@ -974,7 +974,7 @@ msgstr ""
"файл WAL принадлежит другой СУБД: некорректный размер сегмента в заголовке "
"страницы"
-#: xlogreader.c:1261
+#: xlogreader.c:1289
#, c-format
msgid ""
"WAL file is from different database system: incorrect XLOG_BLCKSZ in page "
@@ -983,35 +983,35 @@ msgstr ""
"файл WAL принадлежит другой СУБД: некорректный XLOG_BLCKSZ в заголовке "
"страницы"
-#: xlogreader.c:1292
+#: xlogreader.c:1320
#, c-format
msgid "unexpected pageaddr %X/%X in log segment %s, offset %u"
msgstr "неожиданный pageaddr %X/%X в сегменте журнала %s, смещение %u"
-#: xlogreader.c:1317
+#: xlogreader.c:1345
#, c-format
msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u"
msgstr ""
"нарушение последовательности ID линии времени %u (после %u) в сегменте "
"журнала %s, смещение %u"
-#: xlogreader.c:1722
+#: xlogreader.c:1750
#, c-format
msgid "out-of-order block_id %u at %X/%X"
msgstr "идентификатор блока %u идёт не по порядку в позиции %X/%X"
-#: xlogreader.c:1746
+#: xlogreader.c:1774
#, c-format
msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X"
msgstr "BKPBLOCK_HAS_DATA установлен, но данных в позиции %X/%X нет"
-#: xlogreader.c:1753
+#: xlogreader.c:1781
#, c-format
msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X"
msgstr ""
"BKPBLOCK_HAS_DATA не установлен, но длина данных равна %u в позиции %X/%X"
-#: xlogreader.c:1789
+#: xlogreader.c:1817
#, c-format
msgid ""
"BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at "
@@ -1020,21 +1020,21 @@ msgstr ""
"BKPIMAGE_HAS_HOLE установлен, но для пропуска заданы смещение %u и длина %u "
"при длине образа блока %u в позиции %X/%X"
-#: xlogreader.c:1805
+#: xlogreader.c:1833
#, 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"
-#: xlogreader.c:1819
+#: xlogreader.c:1847
#, c-format
msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X"
msgstr ""
"BKPIMAGE_COMPRESSED установлен, но длина образа блока равна %u в позиции %X/"
"%X"
-#: xlogreader.c:1834
+#: xlogreader.c:1862
#, c-format
msgid ""
"neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image "
@@ -1043,41 +1043,41 @@ msgstr ""
"ни BKPIMAGE_HAS_HOLE, ни BKPIMAGE_COMPRESSED не установлены, но длина образа "
"блока равна %u в позиции %X/%X"
-#: xlogreader.c:1850
+#: xlogreader.c:1878
#, c-format
msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X"
msgstr ""
"BKPBLOCK_SAME_REL установлен, но предыдущее значение не задано в позиции %X/"
"%X"
-#: xlogreader.c:1862
+#: xlogreader.c:1890
#, c-format
msgid "invalid block_id %u at %X/%X"
msgstr "неверный идентификатор блока %u в позиции %X/%X"
-#: xlogreader.c:1929
+#: xlogreader.c:1957
#, c-format
msgid "record with invalid length at %X/%X"
msgstr "запись с неверной длиной в позиции %X/%X"
-#: xlogreader.c:1954
+#: xlogreader.c:1982
#, c-format
msgid "could not locate backup block with ID %d in WAL record"
msgstr "не удалось найти копию блока с ID %d в записи журнала WAL"
-#: xlogreader.c:2038
+#: xlogreader.c:2066
#, c-format
msgid "could not restore image at %X/%X with invalid block %d specified"
msgstr ""
"не удалось восстановить образ в позиции %X/%X с указанным неверным блоком %d"
-#: xlogreader.c:2045
+#: xlogreader.c:2073
#, c-format
msgid "could not restore image at %X/%X with invalid state, block %d"
msgstr ""
"не удалось восстановить образ в позиции %X/%X с неверным состоянием, блок %d"
-#: xlogreader.c:2072 xlogreader.c:2089
+#: xlogreader.c:2100 xlogreader.c:2117
#, c-format
msgid ""
"could not restore image at %X/%X compressed with %s not supported by build, "
@@ -1086,7 +1086,7 @@ msgstr ""
"не удалось восстановить образ в позиции %X/%X, сжатый методом %s, который не "
"поддерживается этой сборкой, блок %d"
-#: xlogreader.c:2098
+#: xlogreader.c:2126
#, c-format
msgid ""
"could not restore image at %X/%X compressed with unknown method, block %d"
@@ -1094,7 +1094,7 @@ msgstr ""
"не удалось восстановить образ в позиции %X/%X, сжатый неизвестным методом, "
"блок %d"
-#: xlogreader.c:2106
+#: xlogreader.c:2134
#, c-format
msgid "could not decompress image at %X/%X, block %d"
msgstr "не удалось развернуть образ в позиции %X/%X, блок %d"
diff --git a/src/bin/pg_rewind/t/003_extrafiles.pl b/src/bin/pg_rewind/t/003_extrafiles.pl
index b1c47ea..100c212 100644
--- a/src/bin/pg_rewind/t/003_extrafiles.pl
+++ b/src/bin/pg_rewind/t/003_extrafiles.pl
@@ -78,6 +78,19 @@ sub run_test
},
$test_primary_datadir);
@paths = sort @paths;
+
+ # File::Find converts backslashes to slashes in the newer Perl
+ # versions. To support all Perl versions, do the same conversion
+ # for Windows before comparing the paths.
+ if ($windows_os)
+ {
+ for my $filename (@paths)
+ {
+ $filename =~ s{\\}{/}g;
+ }
+ $test_primary_datadir =~ s{\\}{/}g;
+ }
+
is_deeply(
\@paths,
[
diff --git a/src/bin/pg_upgrade/po/ru.po b/src/bin/pg_upgrade/po/ru.po
index 4eeef71..cd50ed2 100644
--- a/src/bin/pg_upgrade/po/ru.po
+++ b/src/bin/pg_upgrade/po/ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pg_upgrade (PostgreSQL) 10\n"
"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
-"POT-Creation-Date: 2023-11-03 09:09+0300\n"
+"POT-Creation-Date: 2024-02-02 18:11+0300\n"
"PO-Revision-Date: 2023-11-03 09:24+0300\n"
"Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n"
"Language-Team: Russian <pgsql-ru-general@postgresql.org>\n"
@@ -273,8 +273,8 @@ msgstr ""
"pg_database.datallowconn должно быть false\n"
#: check.c:785 check.c:910 check.c:1012 check.c:1138 check.c:1219 check.c:1278
-#: check.c:1339 check.c:1404 check.c:1523 function.c:187 version.c:192
-#: version.c:232 version.c:378
+#: check.c:1339 check.c:1373 check.c:1404 check.c:1523 function.c:187
+#: version.c:192 version.c:232 version.c:378
#, c-format
msgid "fatal\n"
msgstr "сбой\n"
@@ -472,11 +472,6 @@ msgstr ""
msgid "Checking for removed \"%s\" data type in user tables"
msgstr "Проверка удалённого типа данных \"%s\" в пользовательских таблицах"
-#: check.c:1373
-#, c-format
-msgid "fatal"
-msgstr "сбой"
-
#: check.c:1374
#, c-format
msgid ""
@@ -2100,6 +2095,10 @@ msgstr ""
"эти расширения.\n"
"\n"
+#, c-format
+#~ msgid "fatal"
+#~ msgstr "сбой"
+
#~ msgid ""
#~ "When checking a pre-PG 9.1 live old server, you must specify the old "
#~ "server's port number.\n"
diff --git a/src/bin/pg_upgrade/po/uk.po b/src/bin/pg_upgrade/po/uk.po
index 8710602..eefdc2f 100644
--- a/src/bin/pg_upgrade/po/uk.po
+++ b/src/bin/pg_upgrade/po/uk.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: postgresql\n"
"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
-"POT-Creation-Date: 2022-08-12 10:49+0000\n"
-"PO-Revision-Date: 2022-09-13 11:52\n"
+"POT-Creation-Date: 2023-12-17 22:33+0000\n"
+"PO-Revision-Date: 2023-12-18 17:41\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Language: uk_UA\n"
@@ -17,28 +17,28 @@ msgstr ""
"X-Crowdin-File: /REL_15_STABLE/pg_upgrade.pot\n"
"X-Crowdin-File-ID: 916\n"
-#: check.c:72
+#: check.c:75
#, c-format
msgid "Performing Consistency Checks on Old Live Server\n"
"------------------------------------------------\n"
msgstr "Перевірка цілістності на старому працюючому сервері\n"
"------------------------------------------------\n"
-#: check.c:78
+#: check.c:81
#, c-format
msgid "Performing Consistency Checks\n"
"-----------------------------\n"
msgstr "Проведення перевірок цілістності\n"
"-----------------------------\n"
-#: check.c:218
+#: check.c:231
#, c-format
msgid "\n"
"*Clusters are compatible*\n"
msgstr "\n"
"*Кластери сумісні*\n"
-#: check.c:226
+#: check.c:239
#, c-format
msgid "\n"
"If pg_upgrade fails after this point, you must re-initdb the\n"
@@ -47,7 +47,7 @@ msgstr "\n"
"Якщо робота pg_upgrade після цієї точки перерветься, вам потрібно буде заново виконати initdb \n"
"для нового кластера, перед продовженням.\n"
-#: check.c:267
+#: check.c:280
#, c-format
msgid "Optimizer statistics are not transferred by pg_upgrade.\n"
"Once you start the new server, consider running:\n"
@@ -56,14 +56,14 @@ msgstr "Статистика оптимізатора не передаєтьс
"Після запуску нового серверу, розгляньте можливість запуску:\n"
" %s/vacuumdb %s--all --analyze-in-stages\n\n"
-#: check.c:273
+#: check.c:286
#, c-format
msgid "Running this script will delete the old cluster's data files:\n"
" %s\n"
msgstr "При запуску цього скрипту файли даних старого кластера будуть видалені:\n"
" %s\n"
-#: check.c:278
+#: check.c:291
#, c-format
msgid "Could not create a script to delete the old cluster's data files\n"
"because user-defined tablespaces or the new cluster's data directory\n"
@@ -74,150 +74,150 @@ msgstr "Не вдалося створити скрипт для видален
"простори або каталог даних нового кластера. Вміст старого кластера\n"
"треба буде видалити вручну.\n"
-#: check.c:290
+#: check.c:303
#, c-format
msgid "Checking cluster versions"
msgstr "Перевірка версій кластерів"
-#: check.c:302
+#: check.c:315
#, c-format
msgid "This utility can only upgrade from PostgreSQL version %s and later.\n"
msgstr "Ця утиліта може виконувати оновлення тільки з версії PostgreSQL %s і новіше.\n"
-#: check.c:307
+#: check.c:320
#, c-format
msgid "This utility can only upgrade to PostgreSQL version %s.\n"
msgstr "Ця утиліта може тільки підвищувати версію PostgreSQL до %s.\n"
-#: check.c:316
+#: check.c:329
#, c-format
msgid "This utility cannot be used to downgrade to older major PostgreSQL versions.\n"
msgstr "Ця утиліта не може не може використовуватись щоб понижувати версію до більш старих основних версій PostgreSQL.\n"
-#: check.c:321
+#: check.c:334
#, c-format
msgid "Old cluster data and binary directories are from different major versions.\n"
msgstr "Каталог даних і двійковий каталог старого кластера з різних основних версій.\n"
-#: check.c:324
+#: check.c:337
#, c-format
msgid "New cluster data and binary directories are from different major versions.\n"
msgstr "Каталог даних і двійковий каталог нового кластера з різних основних версій.\n"
-#: check.c:339
+#: check.c:352
#, c-format
msgid "When checking a live server, the old and new port numbers must be different.\n"
msgstr "Для перевірки працюючого сервера, старий і новий номер порта повинні бути різними.\n"
-#: check.c:354
+#: check.c:367
#, c-format
msgid "encodings for database \"%s\" do not match: old \"%s\", new \"%s\"\n"
msgstr "кодування для бази даних \"%s\" не збігаються: старе \"%s\", нове \"%s\"\n"
-#: check.c:359
+#: check.c:372
#, c-format
msgid "lc_collate values for database \"%s\" do not match: old \"%s\", new \"%s\"\n"
msgstr "значення lc_collate для бази даних \"%s\" не збігаються: старе \"%s\", нове \"%s\"\n"
-#: check.c:362
+#: check.c:375
#, c-format
msgid "lc_ctype values for database \"%s\" do not match: old \"%s\", new \"%s\"\n"
msgstr "значення lc_ctype для бази даних \"%s\" не збігаються: старе \"%s\", нове \"%s\"\n"
-#: check.c:365
+#: check.c:378
#, c-format
msgid "locale providers for database \"%s\" do not match: old \"%s\", new \"%s\"\n"
msgstr "постачальники локалей для бази даних \"%s\" не збігаються: старий \"%s\", новий \"%s\"\n"
-#: check.c:372
+#: check.c:385
#, c-format
msgid "ICU locale values for database \"%s\" do not match: old \"%s\", new \"%s\"\n"
msgstr "значення локалі ICU для бази даних \"%s\" не збігаються: старий \"%s\", новий \"%s\n"
-#: check.c:447
+#: check.c:460
#, c-format
msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"\n"
msgstr "Новий кластер бази даних \"%s\" не порожній: знайдено відношення \"%s.%s\"\n"
-#: check.c:499
+#: check.c:512
#, c-format
msgid "Checking for new cluster tablespace directories"
msgstr "Перевірка каталогів табличних просторів кластера"
-#: check.c:510
+#: check.c:523
#, c-format
msgid "new cluster tablespace directory already exists: \"%s\"\n"
msgstr "каталог нового кластерного табличного простору вже існує: \"%s\"\n"
-#: check.c:543
+#: check.c:556
#, c-format
msgid "\n"
"WARNING: new data directory should not be inside the old data directory, i.e. %s\n"
msgstr "\n"
"ПОПЕРЕДЖЕННЯ: новий каталог даних не повинен бути всередині старого каталогу даних, наприклад %s\n"
-#: check.c:567
+#: check.c:580
#, c-format
msgid "\n"
"WARNING: user-defined tablespace locations should not be inside the data directory, i.e. %s\n"
msgstr "\n"
"ПОПЕРЕДЖЕННЯ: користувацькі розташування табличних просторів не повинні бути всередині каталогу даних, наприклад %s\n"
-#: check.c:577
+#: check.c:590
#, c-format
msgid "Creating script to delete old cluster"
msgstr "Створення скрипту для видалення старого кластеру"
-#: check.c:580 check.c:755 check.c:875 check.c:974 check.c:1105 check.c:1184
-#: check.c:1447 file.c:338 function.c:165 option.c:465 version.c:116
-#: version.c:288 version.c:423
+#: check.c:593 check.c:768 check.c:888 check.c:987 check.c:1118 check.c:1197
+#: check.c:1500 file.c:338 function.c:165 option.c:465 version.c:116
+#: version.c:292 version.c:429
#, c-format
msgid "could not open file \"%s\": %s\n"
msgstr "не вдалося відкрити файл \"%s\": %s\n"
-#: check.c:631
+#: check.c:644
#, c-format
msgid "could not add execute permission to file \"%s\": %s\n"
msgstr "не вдалося додати право виконання для файлу \"%s\": %s\n"
-#: check.c:651
+#: check.c:664
#, c-format
msgid "Checking database user is the install user"
msgstr "Перевірка, чи є користувач бази даних стартовим користувачем"
-#: check.c:667
+#: check.c:680
#, c-format
msgid "database user \"%s\" is not the install user\n"
msgstr "користувач бази даних \"%s\" не є стартовим користувачем\n"
-#: check.c:678
+#: check.c:691
#, c-format
msgid "could not determine the number of users\n"
msgstr "не вдалося визначити кількість користувачів\n"
-#: check.c:686
+#: check.c:699
#, c-format
msgid "Only the install user can be defined in the new cluster.\n"
msgstr "В новому кластері може бути визначеним тільки стартовий користувач.\n"
-#: check.c:716
+#: check.c:729
#, c-format
msgid "Checking database connection settings"
msgstr "Перевірка параметрів підключення до бази даних"
-#: check.c:742
+#: check.c:755
#, c-format
msgid "template0 must not allow connections, i.e. its pg_database.datallowconn must be false\n"
msgstr "template0 не повинна дозволяти підключення, тобто pg_database.datallowconn повинно бути false\n"
-#: check.c:772 check.c:897 check.c:999 check.c:1125 check.c:1206 check.c:1263
-#: check.c:1322 check.c:1351 check.c:1470 function.c:187 version.c:190
-#: version.c:228 version.c:372
+#: check.c:785 check.c:910 check.c:1012 check.c:1138 check.c:1219 check.c:1278
+#: check.c:1339 check.c:1373 check.c:1404 check.c:1523 function.c:187
+#: version.c:192 version.c:232 version.c:378
#, c-format
msgid "fatal\n"
msgstr "збій\n"
-#: check.c:773
+#: check.c:786
#, c-format
msgid "All non-template0 databases must allow connections, i.e. their\n"
"pg_database.datallowconn must be true. Your installation contains\n"
@@ -234,27 +234,27 @@ msgstr "Всі бази даних, окрім template0, повинні доз
"Список баз даних з проблемою знаходиться у файлі:\n"
" %s\n\n"
-#: check.c:798
+#: check.c:811
#, c-format
msgid "Checking for prepared transactions"
msgstr "Перевірка підготовлених транзакцій"
-#: check.c:807
+#: check.c:820
#, c-format
msgid "The source cluster contains prepared transactions\n"
msgstr "Початковий кластер містить підготовлені транзакції\n"
-#: check.c:809
+#: check.c:822
#, c-format
msgid "The target cluster contains prepared transactions\n"
msgstr "Цільовий кластер містить підготовлені транзакції\n"
-#: check.c:835
+#: check.c:848
#, c-format
msgid "Checking for contrib/isn with bigint-passing mismatch"
msgstr "Перевірка невідповідності при передаванні bigint в contrib/isn"
-#: check.c:898
+#: check.c:911
#, c-format
msgid "Your installation contains \"contrib/isn\" functions which rely on the\n"
"bigint data type. Your old and new clusters pass bigint values\n"
@@ -266,12 +266,12 @@ msgid "Your installation contains \"contrib/isn\" functions which rely on the\n"
msgstr "Ваша інсталяція містить функції \"contrib/isn\", що використовують тип даних bigint. Старі та нові кластери передають значення bigint по-різному, тому цей кластер наразі неможливо оновити. Ви можете вручну вивантажити бази даних зі старого кластеру, що використовує засоби \"contrib/isn\", видалити їх, виконати оновлення, а потім відновити їх. Список проблемних функцій подано у файлі:\n"
" %s\n\n"
-#: check.c:921
+#: check.c:934
#, c-format
msgid "Checking for user-defined postfix operators"
msgstr "Перевірка постфіксних операторів визначених користувачем"
-#: check.c:1000
+#: check.c:1013
#, c-format
msgid "Your installation contains user-defined postfix operators, which are not\n"
"supported anymore. Consider dropping the postfix operators and replacing\n"
@@ -283,12 +283,12 @@ msgstr "Ваша інсталяція містить користувацькі
"Список користувацьких постфіксних операторів знаходиться у файлі:\n"
" %s\n\n"
-#: check.c:1024
+#: check.c:1037
#, c-format
msgid "Checking for incompatible polymorphic functions"
msgstr "Перевірка несумісних поліморфних функцій"
-#: check.c:1126
+#: check.c:1139
#, c-format
msgid "Your installation contains user-defined objects that refer to internal\n"
"polymorphic functions with arguments of type \"anyarray\" or \"anyelement\".\n"
@@ -305,12 +305,12 @@ msgstr "У вашій інсталяції містяться користува
"Список проблемних об'єктів знаходиться у файлі:\n"
" %s\n\n"
-#: check.c:1151
+#: check.c:1164
#, c-format
msgid "Checking for tables WITH OIDS"
msgstr "Перевірка таблиць WITH OIDS"
-#: check.c:1207
+#: check.c:1220
#, c-format
msgid "Your installation contains tables declared WITH OIDS, which is not\n"
"supported anymore. Consider removing the oid column using\n"
@@ -322,12 +322,12 @@ msgstr "Ваша інсталяція містить таблиці, створ
"Список проблемних таблиць подано у файлі:\n"
" %s\n\n"
-#: check.c:1235
+#: check.c:1248
#, c-format
msgid "Checking for system-defined composite types in user tables"
msgstr "Перевірка складених типів визначених системою у таблицях користувача"
-#: check.c:1264
+#: check.c:1279
#, c-format
msgid "Your installation contains system-defined composite type(s) in user tables.\n"
"These type OIDs are not stable across PostgreSQL versions,\n"
@@ -341,12 +341,12 @@ msgstr "Ваша інсталяція містить складені типи
"Список проблемних стовпців знаходиться у файлі:\n"
" %s\n\n"
-#: check.c:1292
+#: check.c:1307
#, c-format
msgid "Checking for reg* data types in user tables"
msgstr "Перевірка типів даних reg* в користувацьких таблицях"
-#: check.c:1323
+#: check.c:1340
#, c-format
msgid "Your installation contains one of the reg* data types in user tables.\n"
"These data types reference system OIDs that are not preserved by\n"
@@ -360,12 +360,32 @@ msgstr "Ваша інсталяція містить один з типів да
"Список проблемних стовпців знаходиться у файлі:\n"
" %s\n\n"
-#: check.c:1345
+#: check.c:1364
+#, c-format
+msgid "Checking for removed \"%s\" data type in user tables"
+msgstr "Перевірка видаленого типу даних \"%s\" в користувацьких таблицях"
+
+#: check.c:1374
+#, c-format
+msgid "Your installation contains the \"%s\" data type in user tables.\n"
+"The \"%s\" type has been removed in PostgreSQL version %s,\n"
+"so this cluster cannot currently be upgraded. You can drop the\n"
+"problem columns, or change them to another data type, and restart\n"
+"the upgrade. A list of the problem columns is in the file:\n"
+" %s\n\n"
+msgstr "Користувацькі таблиці у вашій інсталяції містять тип даних \"%s\".\n"
+"Тип \"%s\" був видалений з версії PostgreSQL %s, тому цей кластер \n"
+"наразі не може бути оновлений. Ви можете видалите проблемні \n"
+"стовпці або змінити їх на інший тип даних, і перезапустити\n"
+"оновлення. Список проблемних стовпців є у файлі:\n"
+" %s\n\n"
+
+#: check.c:1396
#, c-format
msgid "Checking for incompatible \"jsonb\" data type"
msgstr "Перевірка несумісного типу даних \"jsonb\""
-#: check.c:1352
+#: check.c:1405
#, c-format
msgid "Your installation contains the \"jsonb\" data type in user tables.\n"
"The internal format of \"jsonb\" changed during 9.4 beta so this\n"
@@ -380,27 +400,27 @@ msgstr "Ваша інсталяція містить тип даних \"jsonb\"
"Список проблемних стовпців знаходиться у файлі:\n"
" %s\n\n"
-#: check.c:1374
+#: check.c:1427
#, c-format
msgid "Checking for roles starting with \"pg_\""
msgstr "Перевірка ролей, які починаються з \"pg_\""
-#: check.c:1384
+#: check.c:1437
#, c-format
msgid "The source cluster contains roles starting with \"pg_\"\n"
msgstr "Початковий кластер містить ролі, які починаються з \"pg_\"\n"
-#: check.c:1386
+#: check.c:1439
#, c-format
msgid "The target cluster contains roles starting with \"pg_\"\n"
msgstr "Цільовий кластер містить ролі, які починаються з \"pg_\"\n"
-#: check.c:1407
+#: check.c:1460
#, c-format
msgid "Checking for user-defined encoding conversions"
msgstr "Перевірка користувацьких перетворення кодувань"
-#: check.c:1471
+#: check.c:1524
#, c-format
msgid "Your installation contains user-defined encoding conversions.\n"
"The conversion function parameters changed in PostgreSQL version 14\n"
@@ -415,17 +435,17 @@ msgstr "Ваша інсталяція містить користувацькі
"Список перетворень кодувань знаходиться у файлі:\n"
" %s\n\n"
-#: check.c:1498
+#: check.c:1551
#, c-format
msgid "failed to get the current locale\n"
msgstr "не вдалося отримати поточну локаль\n"
-#: check.c:1507
+#: check.c:1560
#, c-format
msgid "failed to get system locale name for \"%s\"\n"
msgstr "не вдалося отримати системне ім'я локалі для \"%s\"\n"
-#: check.c:1513
+#: check.c:1566
#, c-format
msgid "failed to restore old locale \"%s\"\n"
msgstr "не вдалося відновити стару локаль \"%s\"\n"
@@ -492,194 +512,194 @@ msgstr "%d: проблема pg_resetwal\n"
msgid "%d: controldata retrieval problem\n"
msgstr "%d: проблема з отриманням контрольних даних\n"
-#: controldata.c:572
+#: controldata.c:571
#, c-format
msgid "The source cluster lacks some required control information:\n"
msgstr "У початковому кластері відсутня необхідна контрольна інформація:\n"
-#: controldata.c:575
+#: controldata.c:574
#, c-format
msgid "The target cluster lacks some required control information:\n"
msgstr "У цільовому кластері відсутня необхідна контрольна інформація:\n"
-#: controldata.c:578
+#: controldata.c:577
#, c-format
msgid " checkpoint next XID\n"
msgstr " наступний XID контрольної точки\n"
-#: controldata.c:581
+#: controldata.c:580
#, c-format
msgid " latest checkpoint next OID\n"
msgstr " наступний OID останньої контрольної точки\n"
-#: controldata.c:584
+#: controldata.c:583
#, c-format
msgid " latest checkpoint next MultiXactId\n"
msgstr " наступний MultiXactId останньої контрольної точки\n"
-#: controldata.c:588
+#: controldata.c:587
#, c-format
msgid " latest checkpoint oldest MultiXactId\n"
msgstr " найстарший MultiXactId останньої контрольної точки\n"
-#: controldata.c:591
+#: controldata.c:590
#, c-format
msgid " latest checkpoint oldestXID\n"
msgstr " найстарший oldestXID останньої контрольної точки\n"
-#: controldata.c:594
+#: controldata.c:593
#, c-format
msgid " latest checkpoint next MultiXactOffset\n"
msgstr " наступний MultiXactOffset останньої контрольної точки\n"
-#: controldata.c:597
+#: controldata.c:596
#, c-format
msgid " first WAL segment after reset\n"
msgstr " перший сегмет WAL після скидання\n"
-#: controldata.c:600
+#: controldata.c:599
#, c-format
msgid " float8 argument passing method\n"
msgstr " метод передачі аргументу float8\n"
-#: controldata.c:603
+#: controldata.c:602
#, c-format
msgid " maximum alignment\n"
msgstr " максимальне вирівнювання\n"
-#: controldata.c:606
+#: controldata.c:605
#, c-format
msgid " block size\n"
msgstr " розмір блоку\n"
-#: controldata.c:609
+#: controldata.c:608
#, c-format
msgid " large relation segment size\n"
msgstr " розмір сегменту великого відношення\n"
-#: controldata.c:612
+#: controldata.c:611
#, c-format
msgid " WAL block size\n"
msgstr " розмір блоку WAL\n"
-#: controldata.c:615
+#: controldata.c:614
#, c-format
msgid " WAL segment size\n"
msgstr " розмір сегменту WAL\n"
-#: controldata.c:618
+#: controldata.c:617
#, c-format
msgid " maximum identifier length\n"
msgstr " максимальна довжина ідентифікатора\n"
-#: controldata.c:621
+#: controldata.c:620
#, c-format
msgid " maximum number of indexed columns\n"
msgstr " максимальна кількість індексованих стовпців\n"
-#: controldata.c:624
+#: controldata.c:623
#, c-format
msgid " maximum TOAST chunk size\n"
msgstr " максимальний розмір порції TOAST\n"
-#: controldata.c:628
+#: controldata.c:627
#, c-format
msgid " large-object chunk size\n"
msgstr " розмір порції великого об'єкту\n"
-#: controldata.c:631
+#: controldata.c:630
#, c-format
msgid " dates/times are integers?\n"
msgstr " дата/час представлені цілими числами?\n"
-#: controldata.c:635
+#: controldata.c:634
#, c-format
msgid " data checksum version\n"
msgstr " версія контрольних сум даних\n"
-#: controldata.c:637
+#: controldata.c:636
#, c-format
msgid "Cannot continue without required control information, terminating\n"
msgstr "Не можна продовжити без необхідної контрольної інформації, завершення\n"
-#: controldata.c:652
+#: controldata.c:651
#, c-format
msgid "old and new pg_controldata alignments are invalid or do not match\n"
"Likely one cluster is a 32-bit install, the other 64-bit\n"
msgstr "старе і нове вирівнювання в pg_controldata неприпустимі або не збігаються\n"
"Ймовірно, один кластер встановлений у 32-бітній системі, а інший - у 64-бітній\n"
-#: controldata.c:656
+#: controldata.c:655
#, c-format
msgid "old and new pg_controldata block sizes are invalid or do not match\n"
msgstr "старий і новий розмір блоків в pg_controldata неприпустимі або не збігаються\n"
-#: controldata.c:659
+#: controldata.c:658
#, c-format
msgid "old and new pg_controldata maximum relation segment sizes are invalid or do not match\n"
msgstr "старий і новий максимальний розмір сегментів відношень в pg_controldata неприпустимі або не збігаються\n"
-#: controldata.c:662
+#: controldata.c:661
#, c-format
msgid "old and new pg_controldata WAL block sizes are invalid or do not match\n"
msgstr "старий і новий розмір блоків WAL в pg_controldata неприпустимі або не збігаються\n"
-#: controldata.c:665
+#: controldata.c:664
#, c-format
msgid "old and new pg_controldata WAL segment sizes are invalid or do not match\n"
msgstr "старий і новий розмір сегментів WAL в pg_controldata неприпустимі або не збігаються\n"
-#: controldata.c:668
+#: controldata.c:667
#, c-format
msgid "old and new pg_controldata maximum identifier lengths are invalid or do not match\n"
msgstr "стара і нова максимальна довжина ідентифікаторів в pg_controldata неприпустимі або не збігаються\n"
-#: controldata.c:671
+#: controldata.c:670
#, c-format
msgid "old and new pg_controldata maximum indexed columns are invalid or do not match\n"
msgstr "стара і нова максимальна кількість індексованих стовпців в pg_controldata неприпустимі або не збігаються\n"
-#: controldata.c:674
+#: controldata.c:673
#, c-format
msgid "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not match\n"
msgstr "старий і новий максимальний розмір порції TOAST в pg_controldata неприпустимі або не збігаються\n"
-#: controldata.c:679
+#: controldata.c:678
#, c-format
msgid "old and new pg_controldata large-object chunk sizes are invalid or do not match\n"
msgstr "старий і новий розмір порції великого об'єкту в pg_controldata неприпустимі або не збігаються\n"
-#: controldata.c:682
+#: controldata.c:681
#, c-format
msgid "old and new pg_controldata date/time storage types do not match\n"
msgstr "старий і новий тип сховища дати/часу в pg_controldata неприпустимі або не збігаються\n"
-#: controldata.c:695
+#: controldata.c:694
#, c-format
msgid "old cluster does not use data checksums but the new one does\n"
msgstr "старий кластер не використовує контрольні суми даних, але новий використовує\n"
-#: controldata.c:698
+#: controldata.c:697
#, c-format
msgid "old cluster uses data checksums but the new one does not\n"
msgstr "старий кластер використовує контрольні суми даних, але новий не використовує\n"
-#: controldata.c:700
+#: controldata.c:699
#, c-format
msgid "old and new cluster pg_controldata checksum versions do not match\n"
msgstr "стара і нова версія контрольних сум кластера в pg_controldata не збігаються\n"
-#: controldata.c:711
+#: controldata.c:710
#, c-format
msgid "Adding \".old\" suffix to old global/pg_control"
msgstr "Додавання суфікса \".old\" до старого файла global/pg_control"
-#: controldata.c:716
+#: controldata.c:715
#, c-format
msgid "Unable to rename %s to %s.\n"
msgstr "Не вдалося перейменувати %s на %s.\n"
-#: controldata.c:719
+#: controldata.c:718
#, c-format
msgid "\n"
"If you want to start the old cluster, you will need to remove\n"
@@ -957,17 +977,17 @@ msgid "\n"
msgstr "\n"
"цільові бази даних:\n"
-#: info.c:605
+#: info.c:604
#, c-format
msgid "Database: %s\n"
msgstr "База даних: %s\n"
-#: info.c:607
+#: info.c:606
#, c-format
msgid "\n\n"
msgstr "\n\n"
-#: info.c:618
+#: info.c:617
#, c-format
msgid "relname: %s.%s: reloid: %u reltblspace: %s\n"
msgstr "ім'я_відношення: %s.%s: oid_відношення: %u табл_простір: %s\n"
@@ -1578,7 +1598,7 @@ msgstr "ok"
msgid "Checking for incompatible \"line\" data type"
msgstr "Перевірка несумісного типу даних \"line\""
-#: version.c:191
+#: version.c:193
#, c-format
msgid "Your installation contains the \"line\" data type in user tables.\n"
"This data type changed its internal and input/output format\n"
@@ -1594,12 +1614,12 @@ msgstr "Ваша інсталяція містить тип даних \"line\"
"Список проблемних стовпців знаходиться у файлі:\n"
" %s\n\n"
-#: version.c:222
+#: version.c:224
#, c-format
msgid "Checking for invalid \"unknown\" user columns"
msgstr "Перевірка неприпустимих користувацьких стовпців \"unknown\""
-#: version.c:229
+#: version.c:233
#, c-format
msgid "Your installation contains the \"unknown\" data type in user tables.\n"
"This data type is no longer allowed in tables, so this\n"
@@ -1614,17 +1634,17 @@ msgstr "Ваша інсталяція містить \"unknown\" тип дани
"Список проблемних стовпців знаходиться у файлі:\n"
" %s\n\n"
-#: version.c:253
+#: version.c:257
#, c-format
msgid "Checking for hash indexes"
msgstr "Перевірка геш-індексів"
-#: version.c:331
+#: version.c:335
#, c-format
msgid "warning"
msgstr "попередження"
-#: version.c:333
+#: version.c:337
#, c-format
msgid "\n"
"Your installation contains hash indexes. These indexes have different\n"
@@ -1636,7 +1656,7 @@ msgstr "\n"
"формати в старому і новому кластерах, тож їх потрібно повторно індексувати\n"
"за допомогою команди REINDEX. Після оновлення вам буде надано інструкції REINDEX.\n\n"
-#: version.c:339
+#: version.c:343
#, c-format
msgid "\n"
"Your installation contains hash indexes. These indexes have different\n"
@@ -1653,12 +1673,12 @@ msgstr "\n"
"після виконання суперкористувачем бази даних в psql, повторно створить\n"
"всі неприпустимі індекси; до цього ніякі геш-індекси не будуть використовуватись.\n\n"
-#: version.c:365
+#: version.c:369
#, c-format
msgid "Checking for invalid \"sql_identifier\" user columns"
msgstr "Перевірка неприпустимих користувацьких стовпців \"sql_identifier\""
-#: version.c:373
+#: version.c:379
#, c-format
msgid "Your installation contains the \"sql_identifier\" data type in user tables.\n"
"The on-disk format for this data type has changed, so this\n"
@@ -1673,17 +1693,17 @@ msgstr "Ваша інсталяція містить \"sql_identifier\" тип
"Список проблемних стовпців знаходиться у файлі:\n"
" %s\n\n"
-#: version.c:397
+#: version.c:403
#, c-format
msgid "Checking for extension updates"
msgstr "Перевірка оновлень розширення"
-#: version.c:449
+#: version.c:455
#, c-format
msgid "notice"
msgstr "повідомлення"
-#: version.c:450
+#: version.c:456
#, c-format
msgid "\n"
"Your installation contains extensions that should be updated\n"
diff --git a/src/bin/pg_upgrade/t/002_pg_upgrade.pl b/src/bin/pg_upgrade/t/002_pg_upgrade.pl
index 6b0f42c..ceca3ac 100644
--- a/src/bin/pg_upgrade/t/002_pg_upgrade.pl
+++ b/src/bin/pg_upgrade/t/002_pg_upgrade.pl
@@ -221,7 +221,7 @@ if (defined($ENV{oldinstall}))
my $dump_data = slurp_file($dump1_file);
- my $newregresssrc = "$srcdir/src/test/regress";
+ my $newregresssrc = dirname($ENV{REGRESS_SHLIB});
foreach (@libpaths)
{
my $libpath = $_;
@@ -364,15 +364,9 @@ push(@dump_command, '--extra-float-digits', '0')
if ($oldnode->pg_version < 12);
$newnode->command_ok(\@dump_command, 'dump after running pg_upgrade');
-# No need to apply filters on the dumps if working on the same version
-# for the old and new nodes.
-my $dump1_filtered = $dump1_file;
-my $dump2_filtered = $dump2_file;
-if ($oldnode->pg_version != $newnode->pg_version)
-{
- $dump1_filtered = filter_dump(1, $oldnode->pg_version, $dump1_file);
- $dump2_filtered = filter_dump(0, $oldnode->pg_version, $dump2_file);
-}
+# Filter the contents of the dumps.
+my $dump1_filtered = filter_dump(1, $oldnode->pg_version, $dump1_file);
+my $dump2_filtered = filter_dump(0, $oldnode->pg_version, $dump2_file);
# Compare the two dumps, there should be no differences.
my $compare_res = compare($dump1_filtered, $dump2_filtered);
diff --git a/src/bin/pg_waldump/po/de.po b/src/bin/pg_waldump/po/de.po
index 7e3e141..4b73d64 100644
--- a/src/bin/pg_waldump/po/de.po
+++ b/src/bin/pg_waldump/po/de.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: pg_waldump (PostgreSQL) 15\n"
"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
"POT-Creation-Date: 2022-09-26 04:48+0000\n"
-"PO-Revision-Date: 2022-05-20 10:51+0200\n"
+"PO-Revision-Date: 2023-11-08 21:52+0100\n"
"Last-Translator: Peter Eisentraut <peter@eisentraut.org>\n"
"Language-Team: German <pgsql-translators@postgresql.org>\n"
"Language: de\n"
@@ -265,12 +265,12 @@ msgstr "ungültiger Wert »%s« für Option %s"
#: pg_waldump.c:858
#, c-format
msgid "custom resource manager \"%s\" does not exist"
-msgstr "Custom-Resouce-Manager »%s« existiert nicht"
+msgstr "Custom-Resource-Manager »%s« existiert nicht"
#: pg_waldump.c:879
#, c-format
msgid "resource manager \"%s\" does not exist"
-msgstr "Resouce-Manager »%s« existiert nicht"
+msgstr "Resource-Manager »%s« existiert nicht"
#: pg_waldump.c:894
#, c-format
diff --git a/src/bin/pg_waldump/po/ru.po b/src/bin/pg_waldump/po/ru.po
index 6d05882..7a0e293 100644
--- a/src/bin/pg_waldump/po/ru.po
+++ b/src/bin/pg_waldump/po/ru.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pg_waldump (PostgreSQL) 10\n"
"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
-"POT-Creation-Date: 2023-11-03 09:09+0300\n"
+"POT-Creation-Date: 2024-02-02 18:11+0300\n"
"PO-Revision-Date: 2023-08-30 15:41+0300\n"
"Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n"
"Language-Team: Russian <pgsql-ru-general@postgresql.org>\n"
@@ -409,59 +409,59 @@ msgstr "ошибка в записи WAL в позиции %X/%X: %s"
msgid "Try \"%s --help\" for more information."
msgstr "Для дополнительной информации попробуйте \"%s --help\"."
-#: xlogreader.c:592
+#: xlogreader.c:620
#, c-format
msgid "invalid record offset at %X/%X"
msgstr "неверное смещение записи в позиции %X/%X"
-#: xlogreader.c:600
+#: xlogreader.c:628
#, c-format
msgid "contrecord is requested by %X/%X"
msgstr "в позиции %X/%X запрошено продолжение записи"
-#: xlogreader.c:641 xlogreader.c:1106
+#: xlogreader.c:669 xlogreader.c:1134
#, c-format
msgid "invalid record length at %X/%X: wanted %u, got %u"
msgstr "неверная длина записи в позиции %X/%X: ожидалось %u, получено %u"
-#: xlogreader.c:730
+#: xlogreader.c:758
#, c-format
msgid "there is no contrecord flag at %X/%X"
msgstr "нет флага contrecord в позиции %X/%X"
-#: xlogreader.c:743
+#: xlogreader.c:771
#, c-format
msgid "invalid contrecord length %u (expected %lld) at %X/%X"
msgstr "неверная длина contrecord: %u (ожидалась %lld) в позиции %X/%X"
-#: xlogreader.c:1114
+#: xlogreader.c:1142
#, c-format
msgid "invalid resource manager ID %u at %X/%X"
msgstr "неверный ID менеджера ресурсов %u в позиции %X/%X"
-#: xlogreader.c:1127 xlogreader.c:1143
+#: xlogreader.c:1155 xlogreader.c:1171
#, c-format
msgid "record with incorrect prev-link %X/%X at %X/%X"
msgstr "запись с неверной ссылкой назад %X/%X в позиции %X/%X"
-#: xlogreader.c:1181
+#: xlogreader.c:1209
#, c-format
msgid "incorrect resource manager data checksum in record at %X/%X"
msgstr ""
"некорректная контрольная сумма данных менеджера ресурсов в записи в позиции "
"%X/%X"
-#: xlogreader.c:1218
+#: xlogreader.c:1246
#, c-format
msgid "invalid magic number %04X in log segment %s, offset %u"
msgstr "неверное магическое число %04X в сегменте журнала %s, смещение %u"
-#: xlogreader.c:1232 xlogreader.c:1273
+#: xlogreader.c:1260 xlogreader.c:1301
#, c-format
msgid "invalid info bits %04X in log segment %s, offset %u"
msgstr "неверные информационные биты %04X в сегменте журнала %s, смещение %u"
-#: xlogreader.c:1247
+#: xlogreader.c:1275
#, c-format
msgid ""
"WAL file is from different database system: WAL file database system "
@@ -470,7 +470,7 @@ msgstr ""
"файл WAL принадлежит другой СУБД: в нём указан идентификатор системы БД "
"%llu, а идентификатор системы pg_control: %llu"
-#: xlogreader.c:1255
+#: xlogreader.c:1283
#, c-format
msgid ""
"WAL file is from different database system: incorrect segment size in page "
@@ -479,7 +479,7 @@ msgstr ""
"файл WAL принадлежит другой СУБД: некорректный размер сегмента в заголовке "
"страницы"
-#: xlogreader.c:1261
+#: xlogreader.c:1289
#, c-format
msgid ""
"WAL file is from different database system: incorrect XLOG_BLCKSZ in page "
@@ -488,35 +488,35 @@ msgstr ""
"файл WAL принадлежит другой СУБД: некорректный XLOG_BLCKSZ в заголовке "
"страницы"
-#: xlogreader.c:1292
+#: xlogreader.c:1320
#, c-format
msgid "unexpected pageaddr %X/%X in log segment %s, offset %u"
msgstr "неожиданный pageaddr %X/%X в сегменте журнала %s, смещение %u"
-#: xlogreader.c:1317
+#: xlogreader.c:1345
#, c-format
msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u"
msgstr ""
"нарушение последовательности ID линии времени %u (после %u) в сегменте "
"журнала %s, смещение %u"
-#: xlogreader.c:1722
+#: xlogreader.c:1750
#, c-format
msgid "out-of-order block_id %u at %X/%X"
msgstr "идентификатор блока %u идёт не по порядку в позиции %X/%X"
-#: xlogreader.c:1746
+#: xlogreader.c:1774
#, c-format
msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X"
msgstr "BKPBLOCK_HAS_DATA установлен, но данных в позиции %X/%X нет"
-#: xlogreader.c:1753
+#: xlogreader.c:1781
#, c-format
msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X"
msgstr ""
"BKPBLOCK_HAS_DATA не установлен, но длина данных равна %u в позиции %X/%X"
-#: xlogreader.c:1789
+#: xlogreader.c:1817
#, c-format
msgid ""
"BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at "
@@ -525,21 +525,21 @@ msgstr ""
"BKPIMAGE_HAS_HOLE установлен, но для пропуска заданы смещение %u и длина %u "
"при длине образа блока %u в позиции %X/%X"
-#: xlogreader.c:1805
+#: xlogreader.c:1833
#, 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"
-#: xlogreader.c:1819
+#: xlogreader.c:1847
#, c-format
msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X"
msgstr ""
"BKPIMAGE_COMPRESSED установлен, но длина образа блока равна %u в позиции %X/"
"%X"
-#: xlogreader.c:1834
+#: xlogreader.c:1862
#, c-format
msgid ""
"neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image "
@@ -548,41 +548,41 @@ msgstr ""
"ни BKPIMAGE_HAS_HOLE, ни BKPIMAGE_COMPRESSED не установлены, но длина образа "
"блока равна %u в позиции %X/%X"
-#: xlogreader.c:1850
+#: xlogreader.c:1878
#, c-format
msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X"
msgstr ""
"BKPBLOCK_SAME_REL установлен, но предыдущее значение не задано в позиции %X/"
"%X"
-#: xlogreader.c:1862
+#: xlogreader.c:1890
#, c-format
msgid "invalid block_id %u at %X/%X"
msgstr "неверный идентификатор блока %u в позиции %X/%X"
-#: xlogreader.c:1929
+#: xlogreader.c:1957
#, c-format
msgid "record with invalid length at %X/%X"
msgstr "запись с неверной длиной в позиции %X/%X"
-#: xlogreader.c:1954
+#: xlogreader.c:1982
#, c-format
msgid "could not locate backup block with ID %d in WAL record"
msgstr "не удалось найти копию блока с ID %d в записи журнала WAL"
-#: xlogreader.c:2038
+#: xlogreader.c:2066
#, c-format
msgid "could not restore image at %X/%X with invalid block %d specified"
msgstr ""
"не удалось восстановить образ в позиции %X/%X с указанным неверным блоком %d"
-#: xlogreader.c:2045
+#: xlogreader.c:2073
#, c-format
msgid "could not restore image at %X/%X with invalid state, block %d"
msgstr ""
"не удалось восстановить образ в позиции %X/%X с неверным состоянием, блок %d"
-#: xlogreader.c:2072 xlogreader.c:2089
+#: xlogreader.c:2100 xlogreader.c:2117
#, c-format
msgid ""
"could not restore image at %X/%X compressed with %s not supported by build, "
@@ -591,7 +591,7 @@ msgstr ""
"не удалось восстановить образ в позиции %X/%X, сжатый методом %s, который не "
"поддерживается этой сборкой, блок %d"
-#: xlogreader.c:2098
+#: xlogreader.c:2126
#, c-format
msgid ""
"could not restore image at %X/%X compressed with unknown method, block %d"
@@ -599,7 +599,7 @@ msgstr ""
"не удалось восстановить образ в позиции %X/%X, сжатый неизвестным методом, "
"блок %d"
-#: xlogreader.c:2106
+#: xlogreader.c:2134
#, c-format
msgid "could not decompress image at %X/%X, block %d"
msgstr "не удалось развернуть образ в позиции %X/%X, блок %d"
diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c
index 895afcb..e5ee1a0 100644
--- a/src/bin/pgbench/pgbench.c
+++ b/src/bin/pgbench/pgbench.c
@@ -3778,10 +3778,21 @@ advanceConnectionState(TState *thread, CState *st, StatsData *agg)
case CSTATE_START_COMMAND:
command = sql_script[st->use_file].commands[st->command];
- /* Transition to script end processing if done */
+ /*
+ * Transition to script end processing if done, but close up
+ * shop if a pipeline is open at this point.
+ */
if (command == NULL)
{
- st->state = CSTATE_END_TX;
+ if (PQpipelineStatus(st->con) == PQ_PIPELINE_OFF)
+ st->state = CSTATE_END_TX;
+ else
+ {
+ pg_log_error("client %d aborted: end of script reached with pipeline open",
+ st->id);
+ st->state = CSTATE_ABORTED;
+ }
+
break;
}
diff --git a/src/bin/pgbench/t/001_pgbench_with_server.pl b/src/bin/pgbench/t/001_pgbench_with_server.pl
index 027c513..85eb5bc 100644
--- a/src/bin/pgbench/t/001_pgbench_with_server.pl
+++ b/src/bin/pgbench/t/001_pgbench_with_server.pl
@@ -841,9 +841,37 @@ select 1 \gset f
}
});
+# Try \startpipeline without \endpipeline in a single transaction
+$node->pgbench(
+ '-t 1 -n -M extended',
+ 2,
+ [],
+ [qr{end of script reached with pipeline open}],
+ 'error: call \startpipeline without \endpipeline in a single transaction',
+ {
+ '001_pgbench_pipeline_5' => q{
+-- startpipeline only with single transaction
+\startpipeline
+}
+ });
+
+# Try \startpipeline without \endpipeline
+$node->pgbench(
+ '-t 2 -n -M extended',
+ 2,
+ [],
+ [qr{end of script reached with pipeline open}],
+ 'error: call \startpipeline without \endpipeline',
+ {
+ '001_pgbench_pipeline_6' => q{
+-- startpipeline only
+\startpipeline
+}
+ });
+
# Working \startpipeline in prepared query mode with serializable
$node->pgbench(
- '-c4 -j2 -t 10 -n -M prepared',
+ '-c4 -t 10 -n -M prepared',
0,
[
qr{type: .*/001_pgbench_pipeline_serializable},
diff --git a/src/bin/psql/po/ja.po b/src/bin/psql/po/ja.po
index b707ff5..b07e77d 100644
--- a/src/bin/psql/po/ja.po
+++ b/src/bin/psql/po/ja.po
@@ -12,7 +12,7 @@ msgstr ""
"Project-Id-Version: psql (PostgreSQL 15)\n"
"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
"POT-Creation-Date: 2023-02-06 15:59+0900\n"
-"PO-Revision-Date: 2023-02-06 17:39+0900\n"
+"PO-Revision-Date: 2023-11-22 10:50+0900\n"
"Last-Translator: Kyotaro Horiguchi <horikyota.ntt@gmail.com>\n"
"Language-Team: Japan PostgreSQL Users Group <jpug-doc@ml.postgresql.jp>\n"
"Language: ja\n"
@@ -161,7 +161,7 @@ msgstr "割り込み\n"
#: ../../fe_utils/print.c:3173
#, c-format
msgid "Cannot add header to table content: column count of %d exceeded.\n"
-msgstr "テーブルの内容にヘッダーを追加できません: 列数 %d が制限値を超えています。\n"
+msgstr "テーブルの内容にヘッダーを追加できません: 列数の上限値%dを超えています。\n"
#: ../../fe_utils/print.c:3213
#, c-format
diff --git a/src/bin/psql/po/ru.po b/src/bin/psql/po/ru.po
index 3026961..b8153a8 100644
--- a/src/bin/psql/po/ru.po
+++ b/src/bin/psql/po/ru.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: psql (PostgreSQL current)\n"
"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
-"POT-Creation-Date: 2023-11-03 09:09+0300\n"
+"POT-Creation-Date: 2024-02-02 18:11+0300\n"
"PO-Revision-Date: 2023-02-03 15:12+0300\n"
"Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n"
"Language-Team: Russian <pgsql-ru-general@postgresql.org>\n"
@@ -288,7 +288,7 @@ msgstr ""
#: command.c:1317 command.c:2120 command.c:3306 command.c:3505 command.c:5603
#: common.c:181 common.c:230 common.c:399 common.c:1082 common.c:1100
#: common.c:1174 common.c:1281 common.c:1319 common.c:1407 common.c:1443
-#: copy.c:488 copy.c:722 help.c:66 large_obj.c:157 large_obj.c:192
+#: copy.c:488 copy.c:723 help.c:66 large_obj.c:157 large_obj.c:192
#: large_obj.c:254 startup.c:304
#, c-format
msgid "%s"
@@ -1019,11 +1019,11 @@ msgstr ""
"Вводите данные для копирования, разделяя строки переводом строки.\n"
"Закончите ввод строкой '\\.' или сигналом EOF."
-#: copy.c:684
+#: copy.c:685
msgid "aborted because of read failure"
msgstr "прерывание из-за ошибки чтения"
-#: copy.c:718
+#: copy.c:719
msgid "trying to exit copy mode"
msgstr "попытка выйти из режима копирования"
diff --git a/src/bin/scripts/po/uk.po b/src/bin/scripts/po/uk.po
index 59346f8..b8c10b9 100644
--- a/src/bin/scripts/po/uk.po
+++ b/src/bin/scripts/po/uk.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: postgresql\n"
"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
-"POT-Creation-Date: 2022-08-12 10:50+0000\n"
-"PO-Revision-Date: 2022-09-13 11:52\n"
+"POT-Creation-Date: 2023-12-17 22:34+0000\n"
+"PO-Revision-Date: 2023-12-18 17:41\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Language: uk_UA\n"
@@ -94,12 +94,22 @@ msgstr "неприпустиме значення \"%s\" для параметр
msgid "%s must be in range %d..%d"
msgstr "%s має бути в діапазоні %d..%d"
-#: ../../fe_utils/parallel_slot.c:301
+#: ../../fe_utils/parallel_slot.c:319
#, c-format
-msgid "too many jobs for this platform"
-msgstr "занадто багато завдань для цієї платформи"
+msgid "too many jobs for this platform: %d"
+msgstr "занадто багато завдань для цієї платформи: %d"
-#: ../../fe_utils/parallel_slot.c:519
+#: ../../fe_utils/parallel_slot.c:328
+#, c-format
+msgid "socket file descriptor out of range for select(): %d"
+msgstr "дескриптор файлу сокету поза діапазоном для select(): %d"
+
+#: ../../fe_utils/parallel_slot.c:330
+#, c-format
+msgid "Try fewer jobs."
+msgstr "Спробуйте менше робочих завдань."
+
+#: ../../fe_utils/parallel_slot.c:552
#, c-format
msgid "processing of database \"%s\" failed: %s"
msgstr "обробка бази даних \"%s\" не вдалась: %s"
@@ -177,130 +187,130 @@ msgstr "кластеризувати таблицю \"%s\" у базі дани
msgid "clustering of database \"%s\" failed: %s"
msgstr "кластеризувати базу даних \"%s\" не вдалося: %s"
-#: clusterdb.c:246
+#: clusterdb.c:248
#, c-format
msgid "%s: clustering database \"%s\"\n"
msgstr "%s: кластеризація бази даних \"%s\"\n"
-#: clusterdb.c:262
+#: clusterdb.c:264
#, c-format
msgid "%s clusters all previously clustered tables in a database.\n\n"
msgstr "%s кластеризація усіх попередньо кластеризованих таблиць в базі даних.\n\n"
-#: clusterdb.c:263 createdb.c:283 createuser.c:346 dropdb.c:172 dropuser.c:170
-#: pg_isready.c:226 reindexdb.c:760 vacuumdb.c:964
+#: clusterdb.c:265 createdb.c:281 createuser.c:346 dropdb.c:172 dropuser.c:170
+#: pg_isready.c:226 reindexdb.c:762 vacuumdb.c:964
#, c-format
msgid "Usage:\n"
msgstr "Використання:\n"
-#: clusterdb.c:264 reindexdb.c:761 vacuumdb.c:965
+#: clusterdb.c:266 reindexdb.c:763 vacuumdb.c:965
#, c-format
msgid " %s [OPTION]... [DBNAME]\n"
msgstr " %s [OPTION]... [DBNAME]\n"
-#: clusterdb.c:265 createdb.c:285 createuser.c:348 dropdb.c:174 dropuser.c:172
-#: pg_isready.c:229 reindexdb.c:762 vacuumdb.c:966
+#: clusterdb.c:267 createdb.c:283 createuser.c:348 dropdb.c:174 dropuser.c:172
+#: pg_isready.c:229 reindexdb.c:764 vacuumdb.c:966
#, c-format
msgid "\n"
"Options:\n"
msgstr "\n"
"Параметри:\n"
-#: clusterdb.c:266
+#: clusterdb.c:268
#, c-format
msgid " -a, --all cluster all databases\n"
msgstr " -a, --all кластеризація усіх баз даних\n"
-#: clusterdb.c:267
+#: clusterdb.c:269
#, c-format
msgid " -d, --dbname=DBNAME database to cluster\n"
msgstr " -d, --dbname=ІМ'Я_БД база даних для кластеризації\n"
-#: clusterdb.c:268 createuser.c:352 dropdb.c:175 dropuser.c:173
+#: clusterdb.c:270 createuser.c:352 dropdb.c:175 dropuser.c:173
#, c-format
msgid " -e, --echo show the commands being sent to the server\n"
msgstr " -e, --echo показати команди, надіслані серверу\n"
-#: clusterdb.c:269
+#: clusterdb.c:271
#, c-format
msgid " -q, --quiet don't write any messages\n"
msgstr " -q, --quiet не виводити жодних повідомлень\n"
-#: clusterdb.c:270
+#: clusterdb.c:272
#, c-format
msgid " -t, --table=TABLE cluster specific table(s) only\n"
msgstr " -t, --table=ТАБЛИЦЯ кластеризувати тільки вказані таблиці\n"
-#: clusterdb.c:271
+#: clusterdb.c:273
#, c-format
msgid " -v, --verbose write a lot of output\n"
msgstr " -v, --verbose виводити багато інформації\n"
-#: clusterdb.c:272 createuser.c:364 dropdb.c:178 dropuser.c:176
+#: clusterdb.c:274 createuser.c:364 dropdb.c:178 dropuser.c:176
#, c-format
msgid " -V, --version output version information, then exit\n"
msgstr " -V, --version вивести інформацію про версію і вийти\n"
-#: clusterdb.c:273 createuser.c:369 dropdb.c:180 dropuser.c:178
+#: clusterdb.c:275 createuser.c:369 dropdb.c:180 dropuser.c:178
#, c-format
msgid " -?, --help show this help, then exit\n"
msgstr " -?, --help показати цю довідку, потім вийти\n"
-#: clusterdb.c:274 createdb.c:300 createuser.c:370 dropdb.c:181 dropuser.c:179
-#: pg_isready.c:235 reindexdb.c:777 vacuumdb.c:991
+#: clusterdb.c:276 createdb.c:298 createuser.c:370 dropdb.c:181 dropuser.c:179
+#: pg_isready.c:235 reindexdb.c:779 vacuumdb.c:991
#, c-format
msgid "\n"
"Connection options:\n"
msgstr "\n"
"Налаштування з'єднання:\n"
-#: clusterdb.c:275 createuser.c:371 dropdb.c:182 dropuser.c:180 vacuumdb.c:992
+#: clusterdb.c:277 createuser.c:371 dropdb.c:182 dropuser.c:180 vacuumdb.c:992
#, c-format
msgid " -h, --host=HOSTNAME database server host or socket directory\n"
msgstr " -h, --host=HOSTNAME хост сервера бази даних або каталог сокетів\n"
-#: clusterdb.c:276 createuser.c:372 dropdb.c:183 dropuser.c:181 vacuumdb.c:993
+#: clusterdb.c:278 createuser.c:372 dropdb.c:183 dropuser.c:181 vacuumdb.c:993
#, c-format
msgid " -p, --port=PORT database server port\n"
msgstr " -p, --port=PORT порт сервера бази даних\n"
-#: clusterdb.c:277 dropdb.c:184 vacuumdb.c:994
+#: clusterdb.c:279 dropdb.c:184 vacuumdb.c:994
#, c-format
msgid " -U, --username=USERNAME user name to connect as\n"
msgstr " -U, --username=ІМ'Я_КОРИСТУВАЧА ім'я користувача для з'єднання з сервером\n"
-#: clusterdb.c:278 createuser.c:374 dropdb.c:185 dropuser.c:183 vacuumdb.c:995
+#: clusterdb.c:280 createuser.c:374 dropdb.c:185 dropuser.c:183 vacuumdb.c:995
#, c-format
msgid " -w, --no-password never prompt for password\n"
msgstr " -w, --no-password ніколи не запитувати пароль\n"
-#: clusterdb.c:279 createuser.c:375 dropdb.c:186 dropuser.c:184 vacuumdb.c:996
+#: clusterdb.c:281 createuser.c:375 dropdb.c:186 dropuser.c:184 vacuumdb.c:996
#, c-format
msgid " -W, --password force password prompt\n"
msgstr " -W, --password запросити пароль\n"
-#: clusterdb.c:280 dropdb.c:187 vacuumdb.c:997
+#: clusterdb.c:282 dropdb.c:187 vacuumdb.c:997
#, c-format
msgid " --maintenance-db=DBNAME alternate maintenance database\n"
msgstr " --maintenance-db=DBNAME альтернативна бази даних для обслуговування\n"
-#: clusterdb.c:281
+#: clusterdb.c:283
#, c-format
msgid "\n"
"Read the description of the SQL command CLUSTER for details.\n"
msgstr "\n"
"Для деталей читайте опис команди SQL CLUSTER.\n"
-#: clusterdb.c:282 createdb.c:308 createuser.c:376 dropdb.c:188 dropuser.c:185
-#: pg_isready.c:240 reindexdb.c:785 vacuumdb.c:999
+#: clusterdb.c:284 createdb.c:306 createuser.c:376 dropdb.c:188 dropuser.c:185
+#: pg_isready.c:240 reindexdb.c:787 vacuumdb.c:999
#, c-format
msgid "\n"
"Report bugs to <%s>.\n"
msgstr "\n"
"Повідомляти про помилки на <%s>.\n"
-#: clusterdb.c:283 createdb.c:309 createuser.c:377 dropdb.c:189 dropuser.c:186
-#: pg_isready.c:241 reindexdb.c:786 vacuumdb.c:1000
+#: clusterdb.c:285 createdb.c:307 createuser.c:377 dropdb.c:189 dropuser.c:186
+#: pg_isready.c:241 reindexdb.c:788 vacuumdb.c:1000
#, c-format
msgid "%s home page: <%s>\n"
msgstr "Домашня сторінка %s: <%s>\n"
@@ -336,139 +346,129 @@ msgstr "%s (%s/%s) "
msgid "Please answer \"%s\" or \"%s\".\n"
msgstr "Відповідь має бути \"%s\" або \"%s\".\n"
-#: createdb.c:165
-#, c-format
-msgid "only one of --locale and --lc-ctype can be specified"
-msgstr "тільки --locale або --lc-ctype може бути вказаний"
-
-#: createdb.c:167
-#, c-format
-msgid "only one of --locale and --lc-collate can be specified"
-msgstr "можна вказати лише одне: або --locale, або --lc-collate"
-
-#: createdb.c:175
+#: createdb.c:173
#, c-format
msgid "\"%s\" is not a valid encoding name"
msgstr "\"%s\" не є невірним ім'ям кодування"
-#: createdb.c:245
+#: createdb.c:243
#, c-format
msgid "database creation failed: %s"
msgstr "створити базу даних не вдалося: %s"
-#: createdb.c:264
+#: createdb.c:262
#, c-format
msgid "comment creation failed (database was created): %s"
msgstr "не вдалося створити коментарі (база даних була створена): %s"
-#: createdb.c:282
+#: createdb.c:280
#, c-format
msgid "%s creates a PostgreSQL database.\n\n"
msgstr "%s створює базу даних PostgreSQL.\n\n"
-#: createdb.c:284
+#: createdb.c:282
#, c-format
msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n"
msgstr " %s [OPTION]... [DBNAME] [DESCRIPTION]\n"
-#: createdb.c:286
+#: createdb.c:284
#, c-format
msgid " -D, --tablespace=TABLESPACE default tablespace for the database\n"
msgstr " -D, --tablespace=ТАБЛИЧНИЙ_ПРОСТІР табличний простір для бази даних за замовчуванням\n"
-#: createdb.c:287 reindexdb.c:766
+#: createdb.c:285 reindexdb.c:768
#, c-format
msgid " -e, --echo show the commands being sent to the server\n"
msgstr " -e, --echo показати команди, надіслані серверу\n"
-#: createdb.c:288
+#: createdb.c:286
#, c-format
msgid " -E, --encoding=ENCODING encoding for the database\n"
msgstr " -E, --encoding=КОДУВАННЯ кодування бази даних\n"
-#: createdb.c:289
+#: createdb.c:287
#, c-format
msgid " -l, --locale=LOCALE locale settings for the database\n"
msgstr " -l, --locale=ЛОКАЛЬ параметри локалі бази даних\n"
-#: createdb.c:290
+#: createdb.c:288
#, c-format
msgid " --lc-collate=LOCALE LC_COLLATE setting for the database\n"
msgstr " --lc-collate=ЛОКАЛЬ параметр LC_COLLATE для бази даних\n"
-#: createdb.c:291
+#: createdb.c:289
#, c-format
msgid " --lc-ctype=LOCALE LC_CTYPE setting for the database\n"
msgstr " --lc-ctype=ЛОКАЛЬ параметр LC_CTYPE для бази даних\n"
-#: createdb.c:292
+#: createdb.c:290
#, c-format
msgid " --icu-locale=LOCALE ICU locale setting for the database\n"
msgstr " --icu-locale=LOCALE параметр локалі ICU бази даних\n"
-#: createdb.c:293
+#: createdb.c:291
#, c-format
msgid " --locale-provider={libc|icu}\n"
" locale provider for the database's default collation\n"
msgstr " --locale-provider={libc|icu}\n"
" провайдер локалі для сортування бази даних за замовчуванням\n"
-#: createdb.c:295
+#: createdb.c:293
#, c-format
msgid " -O, --owner=OWNER database user to own the new database\n"
msgstr " -O, --власник=ВЛАСНИК користувач-власник нової бази даних\n"
-#: createdb.c:296
+#: createdb.c:294
#, c-format
msgid " -S, --strategy=STRATEGY database creation strategy wal_log or file_copy\n"
msgstr " -S, --strategy=STRATEGY стратегія створення бази даних для wal_log або file_copy\n"
-#: createdb.c:297
+#: createdb.c:295
#, c-format
msgid " -T, --template=TEMPLATE template database to copy\n"
msgstr " -T, --шаблон=ШАБЛОН шаблонна база даних для копіювання\n"
-#: createdb.c:298 reindexdb.c:775
+#: createdb.c:296 reindexdb.c:777
#, c-format
msgid " -V, --version output version information, then exit\n"
msgstr " -V, --version вивести інформацію про версію, потім вийти\n"
-#: createdb.c:299 reindexdb.c:776
+#: createdb.c:297 reindexdb.c:778
#, c-format
msgid " -?, --help show this help, then exit\n"
msgstr " -?, --help показати цю довідку, потім вийти\n"
-#: createdb.c:301 reindexdb.c:778
+#: createdb.c:299 reindexdb.c:780
#, c-format
msgid " -h, --host=HOSTNAME database server host or socket directory\n"
msgstr " -h, --host=ІМ'Я_ХОСТА хост сервера бази даних або каталог сокетів\n"
-#: createdb.c:302 reindexdb.c:779
+#: createdb.c:300 reindexdb.c:781
#, c-format
msgid " -p, --port=PORT database server port\n"
msgstr " -p, --port=ПОРТ порт сервера бази даних\n"
-#: createdb.c:303 reindexdb.c:780
+#: createdb.c:301 reindexdb.c:782
#, c-format
msgid " -U, --username=USERNAME user name to connect as\n"
msgstr " -U, --username=ІМ'Я_КОРИСТУВАЧА ім'я користувача для з'єднання з сервером\n"
-#: createdb.c:304 reindexdb.c:781
+#: createdb.c:302 reindexdb.c:783
#, c-format
msgid " -w, --no-password never prompt for password\n"
msgstr " -w, --no-password ніколи не запитувати пароль\n"
-#: createdb.c:305 reindexdb.c:782
+#: createdb.c:303 reindexdb.c:784
#, c-format
msgid " -W, --password force password prompt\n"
msgstr " -W, --password запросити пароль\n"
-#: createdb.c:306 reindexdb.c:783
+#: createdb.c:304 reindexdb.c:785
#, c-format
msgid " --maintenance-db=DBNAME alternate maintenance database\n"
msgstr " --maintenance-db=DBNAME альтернативна бази даних для обслуговування\n"
-#: createdb.c:307
+#: createdb.c:305
#, c-format
msgid "\n"
"By default, a database with the same name as the current user is created.\n"
@@ -864,72 +864,72 @@ msgstr "переіндексування системних каталогів
msgid "reindexing of table \"%s\" in database \"%s\" failed: %s"
msgstr "переіндексувати таблиці \"%s\" в базі даних \"%s\" не вдалося: %s"
-#: reindexdb.c:742
+#: reindexdb.c:744
#, c-format
msgid "%s: reindexing database \"%s\"\n"
msgstr "%s: переіндексування бази даних \"%s\"\n"
-#: reindexdb.c:759
+#: reindexdb.c:761
#, c-format
msgid "%s reindexes a PostgreSQL database.\n\n"
msgstr "%s переіндексовує базу даних PostgreSQL.\n\n"
-#: reindexdb.c:763
+#: reindexdb.c:765
#, c-format
msgid " -a, --all reindex all databases\n"
msgstr " -a, --all переіндексувати всі бази даних\n"
-#: reindexdb.c:764
+#: reindexdb.c:766
#, c-format
msgid " --concurrently reindex concurrently\n"
msgstr " --concurrently переіндексувати одночасно\n"
-#: reindexdb.c:765
+#: reindexdb.c:767
#, c-format
msgid " -d, --dbname=DBNAME database to reindex\n"
msgstr " -d, --dbname=DBNAME база даних для переіндексування\n"
-#: reindexdb.c:767
+#: reindexdb.c:769
#, c-format
msgid " -i, --index=INDEX recreate specific index(es) only\n"
msgstr " -i, --index=INDEX повторно створити лише вказані індекси\n"
-#: reindexdb.c:768
+#: reindexdb.c:770
#, c-format
msgid " -j, --jobs=NUM use this many concurrent connections to reindex\n"
msgstr " -j, --jobs=NUM використати цю кількість паралельних підключень для переіндексування\n"
-#: reindexdb.c:769
+#: reindexdb.c:771
#, c-format
msgid " -q, --quiet don't write any messages\n"
msgstr " -q, --quiet не писати жодних повідомлень\n"
-#: reindexdb.c:770
+#: reindexdb.c:772
#, c-format
msgid " -s, --system reindex system catalogs only\n"
msgstr " -s, --system переіндексувати тільки системні каталоги\n"
-#: reindexdb.c:771
+#: reindexdb.c:773
#, c-format
msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n"
msgstr " -S, --schema=SCHEMA переіндексувати лише вказані схеми\n"
-#: reindexdb.c:772
+#: reindexdb.c:774
#, c-format
msgid " -t, --table=TABLE reindex specific table(s) only\n"
msgstr " -t, --table=TABLE переіндексувати лише вказані таблиці\n"
-#: reindexdb.c:773
+#: reindexdb.c:775
#, c-format
msgid " --tablespace=TABLESPACE tablespace where indexes are rebuilt\n"
msgstr " --tablespace=TABLESPACE табличний простір для перебудованих індексів\n"
-#: reindexdb.c:774
+#: reindexdb.c:776
#, c-format
msgid " -v, --verbose write a lot of output\n"
msgstr " -v, --verbose виводити багато повідомлень\n"
-#: reindexdb.c:784
+#: reindexdb.c:786
#, c-format
msgid "\n"
"Read the description of the SQL command REINDEX for details.\n"